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