2017-10-23 7 views
-2

私はシンプルなサイコロゲームを書いています.2人のプレイヤーが2つのサイコロを投げて合計100点に達するまで合計します。私が直面している問題は、プレイヤーヒット100、ゲームは別の投げることができます、どうすれば止めますか?サイコロゲームを1回追加する

import random  
a=random.randint(1,6) 
b=random.randint(1,6) 
c=random.randint(1,6) 
d=random.randint(1,6) 
ta=0 
tb=0 
print("Vai vēlaties mest?") 
y=input("y/n:") 
if y == "y": 
print("Jūs uzmetāt:") 
print (a,b,"|", a+b+ta) 

print("Pretinieks uzmeta:") 
print (c,d,"|", c+d+tb) 
else: 
print ("Jūs zaudējāt") 
while ta<=100 and tb<=100: 
ta+=a+b 
tb+=c+d 
a=random.randint(1,6) 
b=random.randint(1,6) 
c=random.randint(1,6) 
d=random.randint(1,6) 
print("Vai vēlaties mest?") 
y=input("y/n:") 
if y == "y": 
    print("Jūs uzmetāt:") 
    print (a,b,"|", a+b+ta,) 

    print("Pretinieks uzmeta:") 
    print (c,d,"|", c+d+tb) 
if y=="n": 
    print ("Jūs zaudējāt") 
elif ta>=100: 
print("Jūs uzvarējāt") 
elif tb>=100: 
    print("Jūs zaudējāt") 

そして、そうあなたはここを参照してくださいコマンドのみが

+8

私は強く、コードをより読みやすくするために、4つのスペースのインデントをお勧めします! – mrCarnivore

答えて

1

使用while ta < 100 and tb < 100:許可されて、私はこれはおそらくたくさん短く、より良い書き込むことができます知っているが、これは学校で私たちの求めているものです。

もう一つの問題は、あなたがtatbを更新した後a ... dの新しいランダムな値を計算するが、その後、同じループの後半でこれらの新しい値を追加しているということです。これは常に次のパスに何番目のものが印刷されるかの影響を受けます。これはあなたが100を過ぎたように見せます。

別の点として、それを深く見ないと、 import randomwhile ta …の間のすべてをa = b = c = d = ta = tb = 0に置き換えて同じ動作をします。

最後に、あなたはこのようにランダム割り当てを短縮することができます。

(a, b, c, d) = [random.randint(1, 6) for _ in range(4)] 
+0

ランダムアサイメントの短縮についての提案をありがとう、私はそのようなものを探していました。しかし、ta <100とtb <100はまだ私に余分なターンを与えます – Young

+0

私はあなたが100を超過していると思う理由をカバーするために私の答えを更新しました。 –

関連する問題