35

コンプ クラス用にこのゲームを作成する必要がありますが、このループから抜け出す方法がわかりません。ほら、もっと大きな数字を転がして、誰がより大きなスコアを持っているかを見て、「コンピューター」と対戦しなければなりません。しかし、どうやって自分のターンを「中断」し、コンピューターのターンに移行するのかがわかりません。コンピューターのターンの開始を知らせるために "Q" (終了) が必要ですが、その方法がわかりません。

ans=(R)
while True:
    print('Your score is so far '+str(myScore)+'.')
    print("Would you like to roll or quit?")
    ans=input("Roll...")
    if ans=='R':
        R=random.randint(1, 8)
        print("You rolled a "+str(R)+".")
        myScore=R+myScore
    if ans=='Q':
        print("Now I'll see if I can break your score...")
        break
4

5 に答える 5

21

いくつかの変更は、Rまたはのみrがロールされることを意味します。他のキャラは辞める

import random

while True:
    print('Your score so far is {}.'.format(myScore))
    print("Would you like to roll or quit?")
    ans = input("Roll...")
    if ans.lower() == 'r':
        R = np.random.randint(1, 8)
        print("You rolled a {}.".format(R))
        myScore = R + myScore
    else:
        print("Now I'll see if I can break your score...")
        break
于 2013-01-30T00:30:14.670 に答える
10

私がすることは、ansがQになるまでループを実行することです

ans=(R)
while not ans=='Q':
    print('Your score is so far '+str(myScore)+'.')
    print("Would you like to roll or quit?")
    ans=input("Roll...")
    if ans=='R':
        R=random.randint(1, 8)
        print("You rolled a "+str(R)+".")
        myScore=R+myScore
于 2013-01-30T00:21:39.680 に答える
4
ans=(R)
while True:
    print('Your score is so far '+str(myScore)+'.')
    print("Would you like to roll or quit?")
    ans=input("Roll...")
    if ans=='R':
        R=random.randint(1, 8)
        print("You rolled a "+str(R)+".")
        myScore=R+myScore
    else:
        print("Now I'll see if I can break your score...")
        ans = False
        break
于 2013-01-30T00:21:34.793 に答える
0

Walrus 演算子(Python 3.8 に追加された代入式) とwhile-loop-else-clauseは、より Pythonic に実行できます。

myScore = 0
while ans := input("Roll...").lower() == "r":
    # ... do something
else:
    print("Now I'll see if I can break your score...")
于 2021-01-22T05:07:52.100 に答える