Python 每日一题(石头剪刀布游戏)

Python 每日一题:锻炼Python语法的运用,思维逻辑的锻炼,算法能力的培养。


题目:

   用户随机输入石头剪刀布所对应的序号,当输入为空则结束游戏;电脑随机产生一个0 ~ 2 之间的随机数,然后按照:

    石头 胜 剪刀,剪刀 胜 布, 布 胜 石头  的游戏规则,判断电脑与用户的之间的输赢,并记录完成的次数。

分析:

  1、使用列表存储石头、剪刀、布 三个元素用于之后显示;

  2、打印提示石头剪刀布的序号,让用户输入;

  3、电脑产生随机值,根据随机值及游戏规则判定游戏的输赢;

  4、创建变量记录,游戏及玩家胜利的次数。

实现:

import random

def rock_paper_scissors_game():
    game_list = ['石头', '剪刀', '布']
    victory_count = 0       # 胜利次数
    failure_count = 0       # 失败次数
    draw_count = 0          # 平局次数
    game_count = 1          # 记录游戏次数

    while True:
        computer_num = random.randint(0, 2)

        print('------------ 第{}局 ------------'.format(game_count))
        for i, v in enumerate(game_list):
            print('{}、{}\t\t'.format(i, v), end='')
        print('\n------------------------------')

        user_num = input('请输入【0-2】之间的整数:')
        if not user_num:
            print('您的战绩是:【{}】胜【{}】负【{}】平'.format(victory_count, failure_count, draw_count))
            break
        user_num = int(user_num)
        if 0 <= user_num < 3:
            if user_num == 0:
                if computer_num == 0:   # 用户出:石头
                    print('您出的是【{0}】,电脑出的是【{0}】 --> 平局'.format(game_list[user_num]))
                    draw_count += 1
                elif computer_num == 1:
                    print('您出的是【{}】,电脑出的是【{}】 --> 您赢'.format(game_list[user_num], game_list[computer_num]))
                    victory_count += 1
                else:
                    print('您出的是【{}】,电脑出的是【{}】 --> 电脑赢'.format(game_list[user_num], game_list[computer_num]))
                    failure_count += 1
            elif user_num == 1:         # 用户出:剪刀
                if computer_num == 0:
                    print('您出的是【{}】,电脑出的是【{}】 --> 电脑赢'.format(game_list[user_num], game_list[computer_num]))
                    failure_count += 1
                elif computer_num == 1:
                    print('您出的是【{0}】,电脑出的是【{0}】 --> 平局'.format(game_list[user_num]))
                    draw_count += 1
                else:
                    print('您出的是【{}】,电脑出的是【{}】 --> 您赢'.format(game_list[user_num], game_list[computer_num]))
                    victory_count += 1
            else:                       # 用户出:布
                if computer_num == 0:
                    print('您出的是【{}】,电脑出的是【{}】 --> 您赢'.format(game_list[user_num], game_list[computer_num]))
                    victory_count += 1
                elif computer_num == 1:
                    print('您出的是【{}】,电脑出的是【{}】 --> 电脑赢'.format(game_list[user_num], game_list[computer_num]))
                    failure_count += 1
                else:
                    print('您出的是【{0}】,电脑出的是【{0}】 --> 平局'.format(game_list[user_num]))
                    draw_count += 1
            game_count += 1
            print('*' * 50)
        else:
            print('您的输入有误!')
            print('*' * 50)

rock_paper_scissors_game()

结果:

------------ 第1局 ------------
0、石头		1、剪刀		2、布		
------------------------------
请输入【0-2】之间的整数:0
您出的是【石头】,电脑出的是【剪刀】 --> 您赢
**************************************************
------------ 第2局 ------------
0、石头		1、剪刀		2、布		
------------------------------
请输入【0-2】之间的整数:1
您出的是【剪刀】,电脑出的是【布】 --> 您赢
**************************************************
------------ 第3局 ------------
0、石头		1、剪刀		2、布		
------------------------------
请输入【0-2】之间的整数:0
您出的是【石头】,电脑出的是【布】 --> 电脑赢
**************************************************
------------ 第4局 ------------
0、石头		1、剪刀		2、布		
------------------------------
请输入【0-2】之间的整数:
您的战绩是:【2】胜【1】负【0】平

结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!!

你可能感兴趣的:(Python,算法,python)