最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Pygame實(shí)戰(zhàn)之英文版猜字游戲的實(shí)現(xiàn)

 更新時(shí)間:2022年08月11日 08:59:09   作者:顧木子吖  
這篇文章主要為大家介紹了如何利用Python中的Pygame模塊實(shí)現(xiàn)英文版猜單詞游戲,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python游戲開發(fā)有一定幫助,需要的可以參考一下

導(dǎo)語

當(dāng)下的孩子們多少會(huì)被電子產(chǎn)品“侵襲”,那么既然都要玩游戲,為什么不選既能玩又能收獲知識(shí)的呢?

興趣是最大的學(xué)習(xí)推動(dòng)力,當(dāng)學(xué)習(xí)英語變成一款小游戲時(shí),不僅能夠玩游戲,激發(fā)調(diào)動(dòng)孩子的積極性,還能夠讓孩子們?cè)趭蕵分袧撘颇卣莆沼⒄Z的學(xué)習(xí)技巧哦~

今天木子為大家敲了一款簡單的英語版《神奇的猜字小游戲》,分享給大家,希望能幫到大家。如果您是一位熱心于輔導(dǎo)孩子學(xué)習(xí)英語的家長,上面這款游戲也不妨用一用,試一試哦~

(文中代碼僅供娛樂,真要輔導(dǎo)孩子邊玩兒游戲邊學(xué)習(xí)英語,請(qǐng)大家找找這方面的app啦隨便一款都很可的。噗又是自我調(diào)節(jié)的一天,真實(shí)的自我認(rèn)知,哈哈哈.jpg)

一、運(yùn)行環(huán)境

小編使用的環(huán)境:Python3、Pycharm社區(qū)版、Pygame模塊部分自帶就不一一 展示啦。

模塊安裝:pip install -i https://pypi.douban.com/simple/ +pygame

二、素材(圖片等)

圖片的話可以自己準(zhǔn)備,但是要注意的大小尺寸問題還有圖片是.png模式的哈。

單詞的話這個(gè)要自己準(zhǔn)備,我這里就準(zhǔn)備了幾個(gè)單詞的,大家可以從最簡單的開始哈。

三、代碼展示

主程序:

# File Name:神奇的猜數(shù)字游戲.py                              
import pygame
import random

pygame.init()
winHeight = 480
winWidth = 700
win=pygame.display.set_mode((winWidth,winHeight))

BLACK = (0,0, 0)
WHITE = (255,255,255)
RED = (255,0, 0)
GREEN = (0,255,0)
BLUE = (0,0,255)
LIGHT_BLUE = (102,255,255)

btn_font = pygame.font.SysFont("arial", 20)
guess_font = pygame.font.SysFont("monospace", 24)
lost_font = pygame.font.SysFont('arial', 45)
word = ''
buttons = []
guessed = []
hangmanPics = [pygame.image.load('hangman0.png'), pygame.image.load('hangman1.png'), pygame.image.load('hangman2.png'), pygame.image.load('hangman3.png'), pygame.image.load('hangman4.png'), pygame.image.load('hangman5.png'), pygame.image.load('hangman6.png')]

limbs = 0


def redraw_game_window():
    global guessed
    global hangmanPics
    global limbs
    win.fill(GREEN)
    # Buttons
    for i in range(len(buttons)):
        if buttons[i][4]:
            pygame.draw.circle(win, BLACK, (buttons[i][1], buttons[i][2]), buttons[i][3])
            pygame.draw.circle(win, buttons[i][0], (buttons[i][1], buttons[i][2]), buttons[i][3] - 2
                               )
            label = btn_font.render(chr(buttons[i][5]), 1, BLACK)
            win.blit(label, (buttons[i][1] - (label.get_width() / 2), buttons[i][2] - (label.get_height() / 2)))

    spaced = spacedOut(word, guessed)
    label1 = guess_font.render(spaced, 1, BLACK)
    rect = label1.get_rect()
    length = rect[2]
    
    win.blit(label1,(winWidth/2 - length/2, 400))

    pic = hangmanPics[limbs]
    win.blit(pic, (winWidth/2 - pic.get_width()/2 + 20, 150))
    pygame.display.update()


def randomWord():
    file = open('words.txt')
    f = file.readlines()
    i = random.randrange(0, len(f) - 1)

    return f[i][:-1]


def hang(guess):
    global word
    if guess.lower() not in word.lower():
        return True
    else:
        return False


def spacedOut(word, guessed=[]):
    spacedWord = ''
    guessedLetters = guessed
    for x in range(len(word)):
        if word[x] != ' ':
            spacedWord += '_ '
            for i in range(len(guessedLetters)):
                if word[x].upper() == guessedLetters[i]:
                    spacedWord = spacedWord[:-2]
                    spacedWord += word[x].upper() + ' '
        elif word[x] == ' ':
            spacedWord += ' '
    return spacedWord
            

def buttonHit(x, y):
    for i in range(len(buttons)):
        if x < buttons[i][1] + 20 and x > buttons[i][1] - 20:
            if y < buttons[i][2] + 20 and y > buttons[i][2] - 20:
                return buttons[i][5]
    return None


def end(winner=False):
    global limbs
    lostTxt = 'You Lost, press any key to play again...'
    winTxt = 'WINNER!, press any key to play again...'
    redraw_game_window()
    pygame.time.delay(1000)
    win.fill(GREEN)

    if winner == True:
        label = lost_font.render(winTxt, 1, BLACK)
    else:
        label = lost_font.render(lostTxt, 1, BLACK)

    wordTxt = lost_font.render(word.upper(), 1, BLACK)
    wordWas = lost_font.render('The phrase was: ', 1, BLACK)

    win.blit(wordTxt, (winWidth/2 - wordTxt.get_width()/2, 295))
    win.blit(wordWas, (winWidth/2 - wordWas.get_width()/2, 245))
    win.blit(label, (winWidth / 2 - label.get_width() / 2, 140))
    pygame.display.update()
    again = True
    while again:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
            if event.type == pygame.KEYDOWN:
                again = False
    reset()


def reset():
    global limbs
    global guessed
    global buttons
    global word
    for i in range(len(buttons)):
        buttons[i][4] = True

    limbs = 0
    guessed = []
    word = randomWord()

#MAINLINE


# Setup buttons
increase = round(winWidth / 13)
for i in range(26):
    if i < 13:
        y = 40
        x = 25 + (increase * i)
    else:
        x = 25 + (increase * (i - 13))
        y = 85
    buttons.append([LIGHT_BLUE, x, y, 20, True, 65 + i])
    # buttons.append([color, x_pos, y_pos, radius, visible, char])

word = randomWord()
inPlay = True

while inPlay:
    redraw_game_window()
    pygame.time.delay(10)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            inPlay = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                inPlay = False
        if event.type == pygame.MOUSEBUTTONDOWN:
            clickPos = pygame.mouse.get_pos()
            letter = buttonHit(clickPos[0], clickPos[1])
            if letter != None:
                guessed.append(chr(letter))
                buttons[letter - 65][4] = False
                if hang(chr(letter)):
                    if limbs != 5:
                        limbs += 1
                    else:
                        end()
                else:
                    print(spacedOut(word, guessed))
                    if spacedOut(word, guessed).count('_') == 0:
                        end(True)

pygame.quit()

# always quit pygame when done!

四、效果展示

(其實(shí)學(xué)習(xí)編程也要敲代碼的啦,有點(diǎn)兒英語基礎(chǔ)的話更好學(xué)習(xí)的啦~)

1)游戲界面

2)游戲開始

3)游戲失敗次數(shù)

失敗每一次會(huì)出現(xiàn)一部分,然后拼出來一個(gè)人,五次全部拼錯(cuò),就掛了。正常的通關(guān)是不會(huì)出現(xiàn)這個(gè)小人的。

以上就是Python+Pygame實(shí)戰(zhàn)之英文版猜字游戲的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Python Pygame猜字游戲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python自動(dòng)查詢12306余票并發(fā)送郵箱提醒腳本

    python自動(dòng)查詢12306余票并發(fā)送郵箱提醒腳本

    這篇文章主要為大家詳細(xì)介紹了Python自動(dòng)查詢12306余票并發(fā)送郵箱提醒腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • PyAutoGUI圖形用戶界面自動(dòng)化的超詳細(xì)教程

    PyAutoGUI圖形用戶界面自動(dòng)化的超詳細(xì)教程

    PyautoGUI是一個(gè)純Python的自動(dòng)化工具,能實(shí)現(xiàn)用程序自動(dòng)控制鼠標(biāo)和鍵盤操作,下面這篇文章主要給大家介紹了關(guān)于PyAutoGUI圖形用戶界面自動(dòng)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Python處理JSON數(shù)據(jù)并生成條形圖

    Python處理JSON數(shù)據(jù)并生成條形圖

    本文詳細(xì)介紹如何利用Python進(jìn)行數(shù)據(jù)分析,嘗試處理一份JSON數(shù)據(jù)并生成條形圖的過程,有需要的朋友們可以參考學(xué)習(xí)。
    2016-08-08
  • 使用實(shí)現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯

    使用實(shí)現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯

    今天小編就為大家分享一篇使用實(shí)現(xiàn)XlsxWriter創(chuàng)建Excel文件并編輯,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python切換pip安裝源的方法詳解

    Python切換pip安裝源的方法詳解

    眾所周知pip是Python中非常方便易用的安裝包管理器,但是在實(shí)際安裝中,卻是非常的慢,該如何解決呢?那么下面這篇文章就給大家介紹了Python切換pip安裝源的方法,文中介紹的很詳細(xì),對(duì)大家學(xué)習(xí)或者理解具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起看看吧。
    2016-11-11
  • python分割列表(list)的方法示例

    python分割列表(list)的方法示例

    這篇文章主要給大家介紹了python分割列表(list)的方法,文中給出了詳細(xì)的示例代碼大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • python?Tkinter實(shí)例詳解

    python?Tkinter實(shí)例詳解

    tkinter(Tk?interface)是Python的標(biāo)準(zhǔn)GUl庫,支持跨平臺(tái)的GUl程序開發(fā)。tkinter適合小型的GUl程序編寫,也特別適合初學(xué)者學(xué)習(xí)GUl編程,這篇文章主要介紹了python?Tkinter詳解,需要的朋友可以參考下
    2023-03-03
  • Pytorch可視化的幾種實(shí)現(xiàn)方法

    Pytorch可視化的幾種實(shí)現(xiàn)方法

    本文主要介紹了Pytorch可視化,主要介紹了3中使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 詳解python中的hashlib模塊的使用

    詳解python中的hashlib模塊的使用

    這篇文章主要介紹了python中的hashlib模塊的使用,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04
  • 使用Python快速提取PPT中的文本內(nèi)容的代碼示例

    使用Python快速提取PPT中的文本內(nèi)容的代碼示例

    本文將介紹如何使用Python程序提取PowerPoint演示文稿中的文本內(nèi)容,包括幻燈片中的主體文本、幻燈片備注文本以及幻燈片,文中通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03

最新評(píng)論

丰宁| 黄山市| 澜沧| 灌阳县| 额济纳旗| 淮滨县| 九寨沟县| 松潘县| 镇宁| 郎溪县| 枣阳市| 米脂县| 铁岭县| 长汀县| 顺昌县| 五指山市| 屏东县| 襄汾县| 昭苏县| 辛集市| 清原| 马鞍山市| 游戏| 囊谦县| 会泽县| 咸丰县| 奈曼旗| 政和县| 龙山县| 青冈县| 汤阴县| 永年县| 深圳市| 永靖县| 鸡东县| 武清区| 道真| 建瓯市| 望江县| 漯河市| 开化县|