0
from random import *

while True:

    random1 = randint(1,20)

    random2 = randint(1,20)

    print("h = higher, l = lower, s = same, q = quit")

    print(random1)

    a = input()

    if a.lower() == 'q':
            break

    print(random2)

    if a.lower() == 'h' and random1 < random2:

        print("Well done")

    elif a.lower() == 'l' and random1 > random2:

        print("Well done")

    elif a.lower() == 's' and random1 == random2:

        print("Well done")
    else:

        print("Loser")

だから私がやろうとしているのは私のスコアとしてxを持っていることです。そして、答えが「Well Done」と表示されたら、スコアに10ポイントを追加してから、スコアを印刷したいと思います。問題は、スコアがゲーム全体で何度もリセットされるように見えることです。スコアに10を追加するか、同じままにしてほしいと思います。誰かが私のプログラムでこれを行う方法を知っていますか?難しすぎるとは思えませんが、私はまだ初心者で、まだ学んでいます。現時点では、プログラムにスコアがまったく追加されていないので、これにアプローチする最も簡単で最良の方法を教えてください。助けてくれてありがとう :)

4

2 に答える 2

2
x = 0 # initialize the score to zero before the main loop
while True:

    ...

    elif a.lower() == 's' and random1 == random2:
        x += 10 # increment the score
        print("Well done. Your current score is {0} points".format(x))

とにかく、コード全体を次のように短縮できます。

from random import *
x = 0
while True:
    random1 = randint(1,20)
    random2 = randint(1,20)
    print("h = higher, l = lower, s = same, q = quit")
    print(random1)
    a = input().lower()
    if a == 'q':
        break

    print(random2)

    if ((a == 'h' and random1 < random2) or
        (a == 'l' and random1 > random2) or
        (a == 's' and random1 == random2)):
        x += 10
        print("Well done. Your current score is: {0}".format(x))
    else:
        print("Loser")
于 2012-06-18T11:37:18.713 に答える
2

変数を追加するだけです。

score = 0 #Variable that keeps count of current score (outside of while loop)

while True:
...
    elif a.lower() == 'l' and random1 > random2:
        score += 10 #Add 10 to score
        print("Well done")
    else:
        #Do nothing with score as it stays the same
        print("Loser")
于 2012-06-18T11:39:29.017 に答える