猫史档案馆


【Python作品分享】人工智能教你打字-v05(打字游戏)【作品秀】

用户:有感笔电有感笔电查看:2 回复:3 评论:2 创建时间:2021-10-08T16:31:50


【作品展示】

center_image

 

【作品介绍】

打字游戏更新啦!感谢大家支持!

这次更新了打字标准和打字字数,分数。

修复以前BUG

玩法说明:回车键退出,在键盘上打出屏幕上显示的字母,即可获胜。

别忘了 点赞,关注,收藏

like and subscribe!

 

【作品源代码】

import pygame
import sys
import random
import time
import easygui as eg
pygame.init()
screen = pygame.display.set_mode((1000, 200))
pygame.display.set_caption("打字游戏")
myFont = pygame.font.SysFont("Consolas", 200)
letterList = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
              "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
letterWait = []
num = 0 #记录正确字母的个数
num_keydown = 0
q = False

num_letter = []
num_letter_keydown = []
for i in range(26):
    num_letter.append(0)
    num_letter_keydown.append(0)

t = int(eg.enterbox(msg='你要练习多少个字母?'))
score_a = int(eg.enterbox(msg = "你的标准是多少?"))
#eg.msgbox(msg = "你准备好了吗?",choices = ("没喵,"好了!"))
t1 = time.time()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            q = True
            break          

        if event.type == pygame.KEYDOWN:
            num_keydown = num_keydown + 1 
            
            if event.key == 13:  #13 is the ASCII of "enter"
                q = True
                break
            elif len(letterWait) > 0:
                index = ord(letterWait[0]) - 97
                num_letter_keydown[index] = num_letter_keydown[index] + 1
                if event.key == ord(letterWait[0]):
                    letterWait.remove(letterWait[0])
                    num = num+1
                    num_letter[index] = num_letter[index] + 1
                    if num == t:
                        q = True
                        break
    if q:
        break

    t2 = time.time()
    if t2-t1 > 1:  # one second
        t1 = t2
        l1 = random.choice(letterList)
        letterWait.append(l1)

    screen.fill((255, 255, 255))  # white color to clear the screen
    n = len(letterWait)
    color = (100, 100, 100)

    for i in range(n):
        x = 20 + i * 100
        y = 20
        letter = letterWait[i]        
        textImage = myFont.render(letter, True, color)
        screen.blit(textImage, (x, y))

    pygame.display.update()

score = num/num_keydown*100
if score > score_a:
    text = "You win! Percentage: " + str(num/num_keydown*100) + "%"
else:
   text = "Oops, you lose! Percentage: " + str(num/num_keydown*100) + "%"

print(text)
aFont = pygame.font.SysFont("Consolas", 20)
newText = aFont.render(text,True,color)
screen.blit(newText,(400,10))
pygame.display.update()

pygame.time.delay(5000) 

pygame.quit()  
sys.exit()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
有感笔电有感笔电

大家快来回帖啊!

这对我很重要!

谢谢

 

点赞0


评论


一缕余晖一缕余晖

标题党(

点赞0


评论


Python-happyyyyPython-happyyyy

啊这

点赞0


评论