1.3 Python基础实战:打字小游戏项目

第三节:打字小游戏项目

课程目标

  • 应用之前学习的知识
  • 学习如何开发简单的Python程序
  • 增强编程实践能力和问题解决能力

课程内容

1. 项目介绍
  • 项目概述
    • 介绍打字小游戏的基本概念和玩法。
2. 需求分析
  • 功能需求
    • 随机显示单词
    • 记录用户输入
    • 判断输入是否正确
    • 计算打字速度和准确率
3. 设计思路
  • 程序结构
    • 主函数:控制游戏流程
    • 输入处理:获取用户输入
    • 结果判断:比较用户输入和标准答案
    • 性能统计:计算打字速度和准确率
4. 编码实现
  • 主函数
    • 控制游戏的开始和结束。
  • 单词生成
    • 使用列表存储单词,随机选择单词显示。
  • 输入处理
    • 使用input()函数获取用户输入。
  • 结果判断
    • 比较用户输入和随机单词,判断是否正确。
  • 性能统计
    • 使用时间函数记录打字时间,计算速度和准确率。
5. 测试与调试
  • 测试
    • 测试程序的各个功能是否正常工作。
  • 调试
    • 根据测试结果,调整和优化代码。

相关代码

import random
import time
class Dazi():
    def __init__(self,words) -> None:
        self.words = words
    def show(self):
        self.word = random.choice(self.words)
        print("请输入单词:",self.word)
    def get_user_input(self):
        start_time = time.time() # 获取当前时间 (开始)
        self.user_input = input()
        end_time = time.time() # 获取当前时间 (结束)
        self.expense_time = end_time - start_time
    def junge(self):
        if self.user_input == self.word:
            print("输入正确")
        else:
            print("输入错误")
    def evaluate(self):
        # 时间
        print(f"【花费时间】{self.expense_time}")
        # 速度
        v = len(self.user_input) / self.expense_time
        print(f"【速度】{v}")
        # 正确率
        # game
        # wer
        # ga
        # gale
        # gamedf
        max_len = max(len(self.user_input),len(self.word))
        min_len = min(len(self.user_input),len(self.word))
        zhengqueshu = 0
        for i in range(min_len):
            if self.user_input[i] == self.word[i]:
                zhengqueshu += 1
        acc = zhengqueshu/max_len
        print(f"【正确率】{acc}")
    def play(self):
        print("游戏开始!")
        # 1. 随机显示单词
        self.show()
        # 2. 记录用户的输入
        self.get_user_input()
        # 3. 判断用户输入是否正确
        self.junge()
        # 4. 评估
        self.evaluate()
words = ["python", "programming", "game", "challenge"]
dazi = Dazi(words)
dazi.play()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值