python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)

导语 当下的孩子们多少会被电子产品“侵袭”,那么既然都要玩游戏,为什么不选既能玩又能收获知
识的呢?
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

兴趣是最大的学习推动力,当学习英语变成一款小游戏时,不仅能够玩游戏,激发调动孩子的
积极性,还能够让孩子们在娱乐中潜移默化地掌握英语的学习技巧哦~
今天木子为大家敲了一款简单的英语版《神奇的猜字小游戏》,分享给大家,希望能帮到大
家。如果您是一位热心于辅导孩子学习英语的家长,上面这款游戏也不妨用一用,试一试哦~

所有文章完整的素材+源码都在 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

(文中代码仅供娱乐,真要辅导孩子边玩儿游戏边学习英语,请大家找找这方面的app啦~随便一
款都很可的。噗~又是自我调节的一天,真实的自我认知,哈哈哈.jpg
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片


正文 一、运行环境 小编使用的环境:Python3、Pycharm社区版、Pygame模块部分自带就不一一 展示啦。
模块安装:pip install -i https://pypi.douban.com/simple/ +pygame

二、素材(图片等) 图片的话可以自己准备,但是要注意的大小尺寸问题还有图片是.png模式的哈。
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

单词的话这个要自己准备,我这里就准备了几个单词的,大家可以从最简单的开始哈。
【python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)】python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

三、代码展示 主程序:
# File Name:神奇的猜数字游戏.py import pygame import randompygame.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 = 0def 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 Falsedef 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 spacedWorddef 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 Nonedef 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] = Truelimbs = 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 = Truewhile 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!

python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片
四、效果展示 (其实学习编程也要敲代码的啦,有点儿英语基础的话更好学习的啦~)
1)游戏界面
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

2)游戏开始
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

3)游戏失败次数
失败每一次会出现一部分,然后拼出来一个人,6次全部拼错,就挂了。正常的通关是不会出现这
个小人的。
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

总结 安啦!这款小游戏就正式结束啦,其实这款游戏有一个不咋好的名字,所以就偷偷改了。嘿嘿
我可真是个小机灵鬼儿。想要资料的,老规矩撒自己来拿 免费滴哈
完整的免费源码领取处:找我吖!文末公众hao可自行领取,滴滴我也可!
推荐往期文章—— 项目1.1扑克牌游戏
【Pygame实战】打扑克牌嘛?赢了输了?这款打牌游戏,竟让我废寝忘食。
项目1.0超级玛丽
程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】
项目1.1扫雷
Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......
项目8.6末世生存游戏
【Pygame实战】末世来临,真正从零开始的残酷生存游戏,你能活多久?
文章汇总—— 汇总合集Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在?文章汇总哦!!欢迎阅读喜欢的文章~)
python合集|【Pygame实战】再次祭出舍不得分享的学习小技巧,用游戏玩出英文能力(O基础也能轻松get)
文章图片

    推荐阅读