0

各ラウンドまたはミニラウンドの後に開始プレイヤーが変わるカードゲームを作成する必要があります (決定するのは私次第です) が、2 人のプレイヤーを交互に切り替える方法がわかりません。オンラインで読んだ後、 itertools のサイクル関数を使用してみましたが、さらに問題が発生します...

問題は、プログラムの残りの部分を台無しにすることなく 2 人のプレーヤーを交互に切り替える方法がわからないことです (プレーヤーの手札とスコアリング システムの表示)。

事前に明確にするために、これから提供するコード スニペットは、最初のプレーヤーを交互に使用しない限り、完全に機能します。

コード:

print("Player 1, your cards are: ", hands[0])
print("Player 2, your cards are: ", hands[1])

この場合、サイクル関数を使用する場合、プレーヤーに応じて手のインデックスを変更したいと考えています。

if cards.bigger_card(hands[0][play_1 - 1], hands[1][play_2 - 1], trump[0][1]) == 0:
    print("Congrats Player 2! You won this mini round.")
    score["score_2"] += 1
else:
    print("Congrats Player 1! You won this mini round.")
    score["score_1"] += 1

ここで、ラウンドに勝ったプレイヤーに応じてスコアが更新されます。

4

1 に答える 1

1

あなたの質問を十分に理解できたかどうかわかりません。でもやってみます。

2 つのインデックス ie を単純に交互に0, 1切り替えるには、変数を追加して現在のターンを格納し、次のように交互に切り替えます。

currentTurn = 0
def switchTurn():
  return (currentTurn + 1) % 2

使用法:

print(currentTurn)
# output: 0

switchTurn()
print(currentTurn)
# output: 1

print(hands[currentTurn])
# output player 2nd's hands (or cards)
于 2021-12-09T17:04:21.227 に答える