首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python:游戏:测试打字速度

Python:游戏:测试打字速度

作者头像
丹枫无迹
发布于 2019-09-11 11:32:20
发布于 2019-09-11 11:32:20
1.9K08
代码可运行
举报
文章被收录于专栏:学无止境学无止境
运行总次数:8
代码可运行

现在写书的人真是一点责任心都没有,最近看了几本书,其中的代码都存在错误。

最近迷恋 Python 游戏,买了《Python游戏编程入门》[美] Jonathan S·Harbour 著 一书来看。

其中第四章:Bomb Catcher游戏中,测试打字速度的程序代码严重有误。

改程序屏幕上随机显示一个字母,按键输入该字母后随机显示下一个,计算平均一分钟可以输入多少个字母,原代码中计算速度的一块有误,附上我修改后的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
import random
import time
import pygame
from pygame.locals import *


def print_text(font, x, y, text, color=(255, 255, 255)):
    imgText = font.render(text, True, color)
    screen.blit(imgText, (x, y))


pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption('Keyboard Demo')
font1 = pygame.font.Font(None, 24)
font2 = pygame.font.Font(None, 200)
white = (255, 255, 255)
yellow = (255, 255, 0)

key_flag = False
correct_answer = 97     # a
seconds = 11
score = 0
speed = 0
clock_start = 0
game_over = True

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()
        elif event.type == KEYDOWN:
            key_flag = True
        elif event.type == KEYUP:
            key_flag = False

    keys = pygame.key.get_pressed()     # keys 是一个元组,穷举了所有的按键,未按下为 0,按下为 1
    if keys[K_ESCAPE]:
        sys.exit()
    if keys[K_RETURN]:
        if game_over:
            game_over = False
            clock_start = time.time()
            score = 0
            seconds = 11
            speed = 0
            clock = clock_start

    if not game_over:
        current = time.time() - clock_start
        if seconds < current:
            game_over = True
        else:
            if keys[correct_answer]:
                correct_answer = random.randint(97, 122)
                clock_start = time.time()
                score += 1
                speed = 60 * score / (clock_start - clock)

    screen.fill((0, 100, 0))
    print_text(font1, 0, 0, "Let's see how fast you can type!")
    print_text(font1, 0, 20, "Try to keep up for 10 seconds...")

    if key_flag:
        print_text(font1, 500, 0, "<key>")

    if not game_over:
        print_text(font1, 0, 80, "Time: " + str(int(seconds-current)))

    print_text(font1, 0, 100, "Speed: " + str(int(speed)) + " letters/min")

    if game_over:
        print_text(font1, 0, 160, "Press Enter to start...")

    print_text(font2, 0, 240, chr(correct_answer-32), yellow)

    pygame.display.update()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用python写一个简单的贪吃蛇游戏(附代码)「建议收藏」
不知道有多少同学跟我一样,最初接触编程的动机就是为了自己做个游戏玩? 今天要给大家分享的是一个 pygame 写的“贪吃蛇”小游戏:
全栈程序员站长
2022/09/07
43.8K1
用python写一个简单的贪吃蛇游戏(附代码)「建议收藏」
【python游戏编程之旅】第三篇---pygame事件与设备轮询
本系列博客介绍以python+pygame库进行小游戏的开发。有写的不对之处还望各位海涵。
马三小伙儿
2018/09/12
1.2K0
【python游戏编程之旅】第三篇---pygame事件与设备轮询
Python贪吃蛇 (完整代码+详细注释+粘贴即食)
1) 蛇的移动,首先根据方向来判断,这里使用pos变量来记录方向 pos(1, 0) //表示当前蛇向右的方向 pos(-1, 0) //表示当前蛇向左的方向 pos(0, 1) //表示当前蛇向下的方向 pos(0, -1) //表示当前蛇向上的方向 2) 怎么能控制蛇的速度呢? 其实是控制时间来刷新,我们知道所有的动作都在一个循环里面完成的,也就是代码都一直在运行着。
全栈程序员站长
2022/08/28
27K2
Python贪吃蛇 (完整代码+详细注释+粘贴即食)
Python编写的20个小游戏完整版
这个游戏中,玩家需要在10次之内猜出一个1到100之间的随机数字。每次猜测后,程序会告诉玩家猜的数字是偏大还是偏小,直到玩家猜中这个数字或者用完所有的猜测次数为止。如果玩家在规定次数内猜中了这个数字,则游戏胜利;否则游戏失败。
疯狂的KK
2023/05/23
8.1K0
Python编写的20个小游戏完整版
【python游戏编程之旅】第五篇---嗷大喵爱吃鱼小游戏开发实例
本系列博客介绍以python+pygame库进行小游戏的开发。有写的不对之处还望各位海涵。
马三小伙儿
2018/09/12
8100
【python游戏编程之旅】第五篇---嗷大喵爱吃鱼小游戏开发实例
边玩边学,30个Python小游戏(含源码)
经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对?
小F
2023/08/21
9.2K4
边玩边学,30个Python小游戏(含源码)
【python游戏编程之旅】第九篇---嗷大喵快跑小游戏开发实例
本系列博客介绍以python+pygame库进行小游戏的开发。有写的不对之处还望各位海涵。
马三小伙儿
2018/09/12
3.2K0
【python游戏编程之旅】第九篇---嗷大喵快跑小游戏开发实例
【闲来无事,py写game】一个问答游戏Trivia -来自《Python游戏编程入门》
正文之前 嗯,没错,我只是为了规范化,就写这么多了!要洗澡了,明早有事! 正文 Trivia是一款书籍阅读类软件,支持Android 2.3.3。具体的内容是: 从网是络上收集比较人们比较容易忽视
用户1687088
2018/05/07
1.4K0
【闲来无事,py写game】一个问答游戏Trivia -来自《Python游戏编程入门》
python贪吃蛇编程代码大全_200行python代码实现贪吃蛇游戏
本文实例为大家分享了python实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下
全栈程序员站长
2022/09/15
10.5K1
python贪吃蛇编程代码大全_200行python代码实现贪吃蛇游戏
100行代码,使用 Pygame 制作一个贪吃蛇小游戏!
相信我们大家都玩过贪吃蛇游戏,今天我们就从头一起来写一个贪吃蛇小游戏,只需要100多行的代码就完成了
周萝卜
2021/10/13
4K1
Python:游戏:300行代码实现俄罗斯方块
俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块。但是想到旋转,停靠,消除等操作,感觉好像很难啊,等真正写完了发现,一共也就 300 行代码,并没有什么难的。
丹枫无迹
2019/01/22
6K0
Python小游戏(滑雪)
源码分享: import sys import cfg import pygame import random '''滑雪者类''' class SkierClass(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) # 滑雪者的朝向(-2到2) self.direction = 0 self.imagepaths
红目香薰
2022/11/29
1.2K0
Python小游戏(滑雪)
Python小游戏(打乒乓)
源码奉上: import sys import cfg import pygame from modules import * '''定义按钮''' def Button(screen, position, text, button_size=(200, 50)): left, top = position bwidth, bheight = button_size pygame.draw.line(screen, (150, 150, 150), (left, top
红目香薰
2022/11/29
6920
Python小游戏(打乒乓)
用Python写了一个水果忍者小游戏
今天小五就用python简单的模拟一下这个游戏。在这个简单的项目中,我们用鼠标选择水果来切割,同时炸弹也会隐藏在水果中,如果切开了三次炸弹,玩家就会失败。
用户8544541
2022/01/27
7140
用Python写了一个水果忍者小游戏
Python游戏开发,pygame模块,Python实现乒乓球小游戏
开始界面其实很简单,只需要定义两个按钮,然后当检测到玩家点击按钮时,将按钮对应的值传到接下来的游戏主循环中即可。代码实现如下:
玖柒的小窝
2021/12/14
1.3K0
Python游戏开发,pygame模块,Python实现乒乓球小游戏
K哥教你用Python摸鱼
玩法:这让我想起了魂斗罗那第几关的boss,有点类似,不过魂斗罗那个难度肯定高点。
Python进击者
2022/03/14
9660
Python | 写了个钟&
这是一个模拟时钟软件。实现原理是利用time模块获取系统时间,然后利用pygame模块强大的图形处理能力,将时间变成钟表样式。这中间需要用到数学模块。
LogicPanda
2018/08/30
1.2K0
Python | 写了个钟&
Python | Time Marker时间标签(附详细注释)
如果您之前关注过我的内容,可以回忆一下我之前发过两篇关于文章,如果没有可以进入下面链接:
LogicPanda
2018/08/30
9000
Python | Time Marker时间标签(附详细注释)
Python五子棋人机对战
了解过python的都知道python最高境界就是人工智能,AI技术,but但凡接触到AI那都感觉很高大上的,新手小白肯定看不懂… 别急,我给大家带来了一个伪AI技术,注释也写的很明白,保证小白都能一看就懂!!!! 唔,是的,伪AI技术,人机五子棋。(跟电脑下棋)实现一个人就可以跟电脑下棋。 具体怎么让电脑产生攻击力的… 代码的注释写的很清楚。 。。。
全栈程序员站长
2022/07/04
7960
面向 python 小白的贪吃蛇游戏
作为 python 小白,总是觉得自己要做好百分之二百的准备,才能开始写程序。以至于常常整天在那看各种语法教程,学了几个月还是只会print('hello world')。
Python进阶者
2019/07/10
1.4K0
推荐阅读
相关推荐
用python写一个简单的贪吃蛇游戏(附代码)「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档