1

私がしなければならないのは、PlayerOneのランダムに生成された数をPlayerTwoの数と比較することです。数字は1から13の間です。誰かが勝つたびに1ポイントを獲得します。10までの最初のプレーヤーが勝者です。各プレーヤーの最初の乱数を生成し、勝者に1を加算するスコアチャートを作成するところまで到達しました。自動的にではなく、戻るボタンをクリックするだけで、さらに2回生成する方法がわかりません。また、自分が作成したスコアチャートで、どのプレイヤーが勝ったかを自動的に把握し、勝ったプレイヤーにポイントを追加する方法がわかりません。ありがとう。

import random


for PlayerOne in range(1):
    Score = 1
    PlayerOne = random.randint(1, 13)
    print(("Player One: %s" % PlayerOne))

    for PlayerTwo in range(1):
        PlayerTwo = random.randint(1, 13)
        print(("Player Two: %s" % PlayerTwo))


    if PlayerOne > PlayerTwo:
        print("Player One wins!")
        print(("Player One: %s" % Score))
        print("Player Two: 0")

    else:
        print("Player Two wins!")
        print("\nScore:")
        print("Player One: 0")
        print(("Player Two: %s" % Score))
4

2 に答える 2

3

コード スニペットを検討してください。

for PlayerTwo in range(1):
  PlayerTwo = randint()
  print PlayerTwo

range(1)[0]は、たとえば、値がゼロの要素が 1 つあるリストと同等です。したがって、for ループは 1 回だけ実行され、値 0 が変数 PlayerTwo に割り当てられます。その後、この変数を他の整数で上書きします。

for ループがどのように機能するかを検討することを他の人が提案している理由は、for ループ内のコードが 1 回しか実行されないためです。これは、おそらくやりたいことではありません。あなたを混乱させているのは for ループではないかもしれませんrange

正確なゲーム数がわからないため、for ループはおそらく理想的ではありません。

これは、この問題にどのようにアプローチするかの疑似コード (実際のコードではありません) です。whileなぜ私が使用し、使用しないのかを理解してくださいfor:

while p1score < 10 and p2score < 10:
  p1 = randint()
  p2 = randint()
  if p1 > p2:
    p1score++
  elif p2 > p1:
    p2score++
于 2013-03-13T14:38:13.673 に答える
0

私もaestrivexのおかげでそれを理解したと思います! 誰かが何か間違っている、または私が正しくないように見える何かを見たら、私に知らせてください。

import random

input ('Please press "Enter" to begin the automated War card game.')

PlayerOneScore = 0
PlayerTwoScore = 0

while PlayerOneScore < 10 and PlayerTwoScore < 10:
    PlayerOne = random.randint(1, 13)
    PlayerTwo = random.randint(1, 13)
    if PlayerOne > PlayerTwo:
        PlayerOneScore += 1


    elif PlayerTwo > PlayerOne:
        PlayerTwoScore += 1



    print("Player One: ",PlayerOne)
    print("Player Two: ",PlayerTwo)
    print("\nScoreboard:")
    print("Player One Score: ",PlayerOneScore)
    print("Player Two Score: ",PlayerTwoScore,"\n\n\n")

    if PlayerOne > PlayerTwo:
        print("Player One Wins!")

    else:
        print("Player Two Wins!")
于 2013-03-13T15:17:04.003 に答える