<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
當下的孩子們多少會被電子產品“侵襲”,那麼既然都要玩遊戲,為什麼不選既能玩又能收穫知識的呢?
興趣是最大的學習推動力,當學習英語變成一款小遊戲時,不僅能夠玩遊戲,激發調動孩子的積極性,還能夠讓孩子們在娛樂中潛移默化地掌握英語的學習技巧哦~
今天木子為大家敲了一款簡單的英語版《神奇的猜字小遊戲》,分享給大家,希望能幫到大家。如果您是一位熱心於輔導孩子學習英語的家長,上面這款遊戲也不妨用一用,試一試哦~
(文中程式碼僅供娛樂,真要輔導孩子邊玩兒遊戲邊學習英語,請大家找找這方面的app啦隨便一款都很可的。噗又是自我調節的一天,真實的自我認知,哈哈哈.jpg)
小編使用的環境:Python3、Pycharm社群版、Pygame模組部分自帶就不一一 展示啦。
模組安裝:pip install -i https://pypi.douban.com/simple/ +pygame
圖片的話可以自己準備,但是要注意的大小尺寸問題還有圖片是.png模式的哈。
單詞的話這個要自己準備,我這裡就準備了幾個單詞的,大家可以從最簡單的開始哈。
主程式:
# File Name:神奇的猜數位遊戲.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!
(其實學習程式設計也要敲程式碼的啦,有點兒英語基礎的話更好學習的啦~)
1)遊戲介面
2)遊戲開始
3)遊戲失敗次數
失敗每一次會出現一部分,然後拼出來一個人,五次全部拼錯,就掛了。正常的通關是不會出現這個小人的。
以上就是Python+Pygame實戰之英文版猜字遊戲的實現的詳細內容,更多關於Python Pygame猜字遊戲的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45