python命令行打字小游戏附加json存储数据

import json

import random

import time

date = 'abcdefghijklmnopqrstuvwxyz'

#游戏打字个数

writeNum = 10

#将每次得到的数据进行保存记录

record_time=[]

input_information = {

    '开始':'s',

    '结束':'o',

}

start_time = 0

over_time = 0


 

#用户输入内容

def user_input(input_information):

    print(f'请输入{input_information["开始"]}\n请输入{input_information["结束"]}')

    contain = input()

    if contain == 's':

        return True

    elif contain == 'o':

        exit()

    else:

        return False

#获取随机字符

def sample_str(date):

     #从date样例里抽writeNum个数据样例

    random_list_date = random.sample(date,writeNum)

       

    str_date = ''.join(random_list_date)

    return str_date

#将数据储存到json文件

def json_file(record_time,avg_time):

    try:

        with open('./history_fun.json','rt',encoding='utf-8') as f:

            record_time = json.load(f)

    except:

        with open('./history_fun.json','w',encoding='utf-8') as f:

            json.dump(record_time,f)

    record_time.append(avg_time)

    with open('./history_fun.json','w',encoding='utf-8') as f:

            json.dump(record_time,f)

    return record_time

#启动函数

def run(date,writeNum,record_time,input_information,start_time,over_time):

    while user_input(input_information):

         #记录开始游戏的时间

        start_time = time.time()

        sample =sample_str(date)

        print(sample)

        if input() == sample:

            over_time = time.time()

            avg_time = round((over_time-start_time)/writeNum,3)

            fast_time = min(json_file(record_time,avg_time))

            print(f'恭喜回答正确平均每字符{avg_time:.3f}')

            print(f'最快打字记录为{fast_time}')

        else:

            print('!!!回答错误!!!')    


 

#测试

if '__main__' == __name__:

    print(run(date,writeNum,record_time,input_information,start_time,over_time))

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值