これは豚のサイコロ ゲームで、2 つの戦略を使用し、目標は 63 ポイントを獲得することです。
だから私は関数を手に入れましたplay_games(n_games, strategy_a, strategy_b)
.(コードの一番下を見てください) この関数はn_gamesをプレイする必要があり、このプレイヤーAはstrategy_aを使用し、プレイヤーBはstrategy_bを使用する必要があります(両方の引数は文字列です)。そして、関数はキー「A」、「B」、「D」を持つ辞書を返す必要があります。値は、A と B が勝った回数と引き分けだった回数を示します。
2日間試しましたが、何も思いつきません。本当にこれを学びたいです。
これは私がこれまでに得たものです:
from random import randint
def one_round(total, strategy):
round = 0
while True:
value = randint(1,6)
round = round + value
if Value == 1:
round = 0
break
if round + total >= 63:
break
if strategy == 'Sum13':
if round >= 13:
break
if strategy == 'Sum6':
if round >= 6:
break
return round
def one_game(strategy_a, strategy_b):
total_a = 0
total_b = 0
while True:
round_a = one_round(total_a, strategy_a)
round_b = one_round(total_b, strategy_b)
total_a += round_a
total_b += round_b
while total_a >= 63 or total_b >=63:
break
if total_a >= 63:
return 'A'
elif total_b >= 63:
return 'B'
elif total_a == total_b:
return 'D'
def play_games(n_games, strategy_a, strategy_b):
n_games = 100
for i in range(n_games):