当下的孩子们多少会被电子产品“侵袭”,那么既然都要玩游戏,为什么不选既能玩又能收获知
识的呢?👇👇👇👇👇👇
兴趣是最大的学习推动力,当学习英语变成一款小游戏时,不仅能够玩游戏,激发调动孩子的
积极性,还能够让孩子们在娱乐中潜移默化地掌握英语的学习技巧哦~
今天木子为大家敲了一款简单的英语版《神奇的猜字小游戏》,分享给大家,希望能帮到大
家。如果您是一位热心于辅导孩子学习英语的家长,上面这款游戏也不妨用一用,试一试哦~
所有文章完整的素材+源码都在👇👇
(文中代码仅供娱乐,真要辅导孩子边玩儿游戏边学习英语,请大家找找这方面的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!
(其实学习编程也要敲代码的啦,有点儿英语基础的话更好学习的啦~)
失败每一次会出现一部分,然后拼出来一个人,6次全部拼错,就挂了。正常的通关是不会出现这
个小人的。
安啦!这款小游戏就正式结束啦,其实这款游戏有一个不咋好的名字,所以就偷偷改了。嘿嘿
我可真是个小机灵鬼儿。想要资料的,老规矩撒自己来拿 免费滴哈👇
项目1.1 扑克牌游戏
【Pygame实战】打扑克牌嘛?赢了输了?这款打牌游戏,竟让我废寝忘食。
项目1.0 超级玛丽
程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】
项目1.1 扫雷
Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......
项目8.6 末世生存游戏
【Pygame实战】末世来临,真正从零开始的残酷生存游戏,你能活多久?
汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~)