当前python版本是3.6.
该游戏记录每个用户的游戏数据,包括:游戏次数,每次最少猜中轮数,总共游戏轮数。代码如下:
# coding=utf-8 ''' @description:猜数字游戏,多组成绩保存 Created on 2017年8月29日 ''' #=====================游戏准备============================== from random import randint print('请输入您的名字: ');# 输入玩家名字 name = input(); f = open('game.txt');# 打开游戏数据文件 lines = f.readlines(); f.close; scores = {};# 初始化一个空字典 for line in lines[1:]:# 从第二行数据开始循环 s = line.split();# 以空格分割每行数据 scores[s[0]] = s[1:];# 每行数据以k-v键值对加入字典 score= scores.get(name);# 通过name获取当前玩家的游戏数据 if score is None:# 如果数据不存在 score = [0,0,0];# 初始化数据 game_times = int(score[0]); min_times = int(score[1]); total_times = int(score[2]); if game_times > 0: avg_times = float(total_times)/game_times; else: avg_times = 0; # 显示玩家的名字 print(('%s,你已经玩了%d次,最少%d轮猜出答案,平均%.2f轮猜出答案')%(name,game_times,min_times,avg_times)); #=======================游戏开始================================= def isEquals(num1,num2):# 两个数字比较函数 if num1 == num2: print('猜对了!'); return True; elif num1 > num2: print('猜大了……'); else: print('猜小了……'); return False; num = randint(1,100);# 生成1~100随机数 times = 0;# 本轮游戏次数 print('1~100随机数已生成,请开始游戏……'); bingo = False; while bingo == False: answer = int(input());# 键入str转换int bingo = isEquals(answer, num); times += 1; if game_times == 0 or times < min_times: min_times = times; total_times += times; game_times += 1; # ========================保存数据====================================== scores[name] = [str(game_times),str(min_times),str(total_times)]; result = '姓名 游戏次数 最少轮数 总共轮数 '; for n in scores: line = n + ' ' + ' '.join(scores[n])+' ';# 数据格式化,以空格隔开 result += line; f = open('game.txt','w'); f.write(result); f.close;