首页 > 其他分享 >创建一个类实现一个打字小游戏(利用time.time()计算参赛者的打字时间,进而利用时间计算速率,利用random实现随机抽取)

创建一个类实现一个打字小游戏(利用time.time()计算参赛者的打字时间,进而利用时间计算速率,利用random实现随机抽取)

时间:2024-10-09 16:22:21浏览次数:8  
标签:play word 游戏 self 打字 单词 利用 time

# 打字小游戏  面向过程,面向对象
# 游戏类 ==》 属性、行为
#
# 1.外部传入一些数据,数据   单词列表  [movies,add,open]
# 2.随机的抽取这个单词列表中的一个单词,作为本局游戏的单词!
# 3.游戏开始,游戏的展示 ,游戏的结束 ,游戏时间,游戏的正确率等
import  random #随机给出列表里的一个单词
import time #计算游戏时间
class PlayWord:
    def __init__(self,words): # words是一个列表类型的数据
        self.words = words
        self.spend_time = 0
        self.play_word = ''
        self.user_word = ''

    def show(self):
        #展示当前游戏的单词,本局游戏的单词
        #游戏开始的提示
        #随机抽取一个列表中的单词
        self.play_word = random.choice(self.words)
        print("游戏开始本局游戏单词:",self.play_word)

    # 游戏正式开始方法
    def play(self):
        #记录游戏开始的时间,以及用户输入单词的内容,用户输入单词结束的时间
        # print(time.time()) # 返回一个时间戳
        star_time = int(time.time())
        self.user_word = input("请输入单词:")
        stop_time = int(time.time())
        self.spend_time = stop_time - star_time #记录用户打字的时间
        #结束的时候再记录一个时间戳    两个时间戳相减就得到游戏花费的总时间
        #调用
        # eval
        self.eval()

    # 方法
    def eval(self):
        #校验游戏数据
        #处理用户的正确率、打字的速度
        #正确率
        # 游戏单词:address    用户输入的单词:addreaa
        true_num = 0
        for i in range(len(self.user_word)):
            if i < len(self.play_word):  #只看输入的单词与题目给出单词相同长度的部分
                if self.user_word[i] == self.play_word[i]:
                    true_num += 1
            else:
                break # 强行的跳出循环
        #打字速度
        # 一定时间内 打字的数量 就是打字速度
        # 打字数量 / 打字的时间(游戏的花费时间)
        self.speed = round(len(self.user_word) / self.spend_time,2)
        #计算正确率  round内置函数 四舍五入 保留两位小数
        self.acc = round(true_num / len(self.play_word),2)

    # 游戏结束的方法
    def over(self):
        #看一些信息
        print(f"游戏花费{self.spend_time}秒")
        print(f"用户正确率:{self.acc}")
        print(f"用户打字速度:{self.speed}/秒")
play1 = PlayWord(["movies","address","superstar"])
play1.show()
play1.play()
play1.over()

下面是两次游戏结果:

标签:play,word,游戏,self,打字,单词,利用,time
From: https://blog.csdn.net/2301_80728553/article/details/142783925

相关文章

  • C#利用Vosk开源模型语音识别
    #C#利用Vosk开源模型语音识别#bywgscd模型下载:VOSKModels(alphacephei.com) 找到chinese Chinese    vosk-model-small-cn-0.2242M23.54(SpeechIO-02)38.29(SpeechIO-06)17.15(THCHS)LightweightmodelforAndroidandRPiApache2.0vosk-mode......
  • 易基因: Nat Commun:中南大学曾朝阳/熊炜/龚朝建团队利用ChIP-seq等揭示头颈鳞癌免疫逃
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。免疫逃逸是癌症进展的关键里程碑,是肿瘤免疫治疗的理论基础。头颈部鳞状细胞癌((headandnecksquamouscellcarcinoma,HNSCC))是全球最常见的恶性肿瘤之一,传统治疗选择包括手术切除、放疗和化疗。最近,利用免疫检查点......
  • 利用1688商品数据洞察市场:优化策略,提升业绩
    对1688商品通过API接口的数据进行详细分析,可以帮助商家更好地了解商品的市场表现、用户需求及行为,从而优化商品供应和销售策略。以下是对1688商品数据的详细分析,包括需要分析的具体数据、分析过程及结果、以及基于分析结果的建议。一、需要分析的具体数据数据项描述来源重要......
  • 两台笔记本,操作一台,另一台作为双屏显示简直太爽了!(win10/11 利用miracast进行无线投屏o
    前一段时间用电脑时,觉得电脑屏幕太小了,同时使用两个软件时切来切去很麻烦,且半屏显示字体太小了。想购置一台显示器,突然想起自己还有个小电脑(本科时用的电脑,因配置不高读研时将其闲置了),于是研究了怎样使用那台小新作为拓展屏幕。总结了一下过程如下:前提:需要两台win10/11电脑,并......
  • Error: There was a timeout while attempting to connect to the network at undefin
     trufflemigrate--networksepolia报错Error:Therewasatimeoutwhileattemptingtoconnecttothenetworkatundefined.Checktoseethatyourproviderisvalid.Ifyouhaveaslowinternetconnection,tryconfiguringalongertimeoutin......
  • CVE-2021-41773目录穿越漏洞复现并利用得到flag
    前提概要首先!遇到一道题目,根据题意可知:这道题目存在CVE-2021-41773漏洞。​先来了解一下CVE-2021-41773的漏洞原理:漏洞原理CVE-2021-41773是一个影响ApacheHTTPServer(httpd)的安全漏洞,影响版本为2.4.49版本。它是一个路径遍历漏洞,如果文档根目录以外的文件不受requi......
  • 很好也很贵?OpenAI Realtime API 一手体验和 Voice AI 的未来 |播客《编码人声》
       「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。 OpenAIRealtimeAPI发布了,你准备好了么? RealtimeAPI让开发者可以构建近乎实时的「语音到语音」的体验,......
  • 讨论jiffies回转的time_after比较函数
    本文讨论jiffies回转的比较函数:#definetime_after(a,b)\((long)(b)-(long)(a)<0)写了个例子如下:#include<stdio.h>#include<stdint.h>#definetime_after(a,b)\((long)(b)-(long)(a)<0)intmain(){unsignedlongla......
  • 当代年轻人,都在利用AI实现婚纱照自由?
    随着国庆黄金假期的到来,一年一度的“全民结婚季”又将拉开序幕。准备婚服、婚车,宴请宾客和各种仪式流程,准新娘和新郎们忙得不可开交。一套精美的婚纱照,也是新人们的结婚必备。为什么一定要拍婚纱照?“婚纱照不仅仅是一个形式,还蕴含对美好生活的向往”、“记录会让回忆变......
  • Python 享元模式:高效利用内存的设计模式
    在Python编程中,随着程序规模的增大和数据量的增加,内存管理变得至关重要。享元模式(FlyweightPattern)作为一种结构型设计模式,为我们提供了一种在某些场景下有效管理内存、提高系统性能的方法。本文将深入探讨Python中的享元模式,包括其概念、关键要点、实现方式、应用场景......