今日のPythonの質問(じゃんけんゲーム)

Pythonの毎日の質問:Python文法の使用を練習し、思考と論理を練習し、アルゴリズムスキルを養います。


トピック:

   ユーザーは、じゃんけんに対応するシリアル番号をランダムに入力し、入力が空になるとゲームが終了します。コンピューターは0から2までの乱数をランダムに生成し、次のようにします。

   じゃんけん、じゃんけん、じゃんけんの  ゲームルールは、コンピューターとユーザーの勝敗を判断し、完了回数を記録します。

分析:

  1.リストを使用して、後で表示するために、岩、はさみ、布の3つの要素を保存します。

  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】平

[結論]上記のプログラム全体の実装ロジックには、まだ多くの包括的な側面があります。提案を歓迎します。作成者が簡単ではないと思われる場合は、親指を立てて、さらに記事を記録する動機を与えてください。

おすすめ

転載: blog.csdn.net/qq_19394437/article/details/113807846