• 初学python之猜数字游戏


    当前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;

    作者:idanyang

    出处:http://www.cnblogs.com/idanyang/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    大小端表示法
    构建二叉树并求其深度
    输入一行字符反向输出
    C++读取一行字符串输入
    关于递归调用的深度
    2016-9-22题目:extern char* 与char[]
    Ubuntu安装搜狗输入法
    判断字符串相等
    [Warning] deprecated conversion from string constant to 'char*' 原因
    ArcGIS API for JavaScript 4.2学习笔记[31] (补充学习)Task类
  • 原文地址:https://www.cnblogs.com/idanyang/p/7448935.html
Copyright © 2020-2023  润新知