問題リンク
書いたコード
# カードの高さ、横の長さ、プレイヤー人数を取得
h, w, players = map(int, input().split())
# カードの並びを取得
cards = [input().split() for _ in range(h)]
# プレイヤーの持ちカードの初期値を辞書で用意
checks = {i: 0 for i in range(players)}
# ゲームの回数を取得
games = int(input())
# めくる順番の初期値を用意
player = 0
# 与えられたゲームの回数分繰り返す
for i in range(games):
# めくるカードのインデックスが与えられるので、4種類取得して、card1,card2で参照できるようにした
a_1, a_2, b_1, b_2 = map(int, input().split())
card1 = cards[a_1-1][a_2-1]
card2 = cards[b_1-1][b_2-1]
# 同じカードをめくったら、辞書checksのplayerのバリューを2増やす(カード二枚もらう処理)
if card1 == card2:
checks[player] += 2
# カードが違ったら、次のプレイヤーに移る
else:
# playerが最後だったら、0へループさせる
if player == players-1:
player = 0
else:
player += 1
# 辞書のバリューをfor文で展開
for v in checks.values():
print(v)
反省
if player == players-1:
player = 0
else:
player += 1
これは以下へ置き換え可能。ループしたいときの書き方。
player = (player +1 ) % players
辞書で用意したけど、キーがindexと一緒なので、リストで用意してもよかった。こんな感じ。
checks = [0] * players
for check in checks:
print(check)
参考にさせてもらったブログ:
0 件のコメント:
コメントを投稿