だから私は価格の権利の 'ショーケースショーダウン'のシミュレーションを実行しようとしている。本質的には、3人の選手がいる。このゲームは、 "ビッグホイール"と呼ばれる巨大なホイールで行われ、5セントから$ 1.00までのさまざまなセントの値で埋められています。 5¢、$ 1.00,15¢、80¢、35¢、60¢、20¢、40¢、75¢、55¢、95¢、50¢、85¢、30¢、65¢、10 ¢、45¢、70¢、25¢、90¢)。価格は正しい 'ショーケースショーダウン'
ゲームの目的は、あなたが行くことができない限り、$ 1.00に近づくことです。 $ 1.00以上のものはゲームを失う。各プレイヤーはホイールのスピンを2つまで取る。最初のスピンの後、スピナーは自分が着陸したままで滞在するか、または再びスピンするかを選択できます。 2回目のスピンでは、競技者が遭遇したものはすべて最初のスコアに加算され、$ 1.00を超えた場合(前述のように)、その競技者はゲームから除外されます。さもなければ、そのプレーヤーはスコアボードの下に立って、それを待つ。 3人の競技者がすべてスピンをしたとき、$ 1.00に最も近い競技者がゲームに勝利します
したがって、プレイヤー1の最初のスピンが$ .50だったときに何が起こるかをシミュレーションしたいと思います。だからランダムなスピンを生み出し、$ 1.00以上になると失うが、それが上がらなければプレーヤー2が回転する。プレーヤー2はプレーヤー1またはバストを倒し、バストすればプレーヤー3は行く。このコードは、プレーヤー1が獲得する勝敗の数を記録しています。
問題は、プレイヤー1の開始値($ .50、$ .40、$ .30、$ .60など)に入れたものは、勝率は常に15%で正しくないことです。何か案は?私はコードが醜いです知っているが、私はnoobのだと問題があなたの状態が存在しないので、我々はこの問題を解決することはできません
from random import randint
def test(spin):
w=0
l=0
ties=0
gain=0
wins=0
tests=100000
for i in range(tests):
new=spin+5*randint(1,21) #new money value
if new>100: #if new value is over 100
l+=1 # you lose
else:
p2_spin_one=5*randint(1,21) #p2's first spin
if p2_spin_one>=new: #if its higher than p1's final
l+=1 #p1 loses
else:
p2_spin_two=p2_spin_one+5*randint(1,21) #if its lower,
#spin again
if p2_spin_two>new and p2_spin_two<=100: #if its higher
#and less than 100
l+=1 #p1 loses
else:
p3_spin_one=5*randint(1,21) #p3's first spin
if p3_spin_one>=new: #if its higher than p1's final
l+=1 #p1 loses
else:
p3_spin_two=p3_spin_one+5*randint(1,21) #if its
#lower, spin again
if p3_spin_two>new and p3_spin_two<=100: #if second
#spin is higher and less than 100
l+=1
elif new==p2_spin_two and new==p3_spin_two:
ties+=1
elif p2_spin_two>100 and new==p3_spin_two:
ties+=1
elif p2_spin_two<new and new==p3_spin_two:
ties+=1
elif new==p2_spin_two and p3_spin_two<new:
ties+=1
elif new==p2_spin_two and p3_spin_two>100:
ties+=1
else:
w+=1
return ("\nPlayer 1 spin again when first spin is
"+str(first_spin)+"\n\n"+"Wins:"+str(w)+"\nLosses:"+str(l)+"\nTies:
"+str(ties)+"\nWin Percentage: "+str(100*w/tests)+"%")
#Set This equal to the number the person spun first
first_spin=30
print(test(first_spin))
ありがとうございます。あなたは正しいです、私はすべての価値を試していない、ほんの一握りです。そのような視覚的に魅力的なテーブルに印刷するにはどうすればいいですか? –
**印刷**フォーマットのオンラインチュートリアルを参照してください。ほとんどの場合、私はあなたの改行文字をタブに置き換えました。 – Prune