鉛筆と紙のゲームである三目並べでは、2人のプレーヤーが交代で3x3の正方形のボードに「X」と「O」をマークします。縦、横、または斜めのストライプで3つの連続した「X」または「O」をマークすることに成功したプレーヤーがゲームに勝ちます。三目並べゲームの結果を決定する関数を記述します。
例
>>> tictactoe([('X', ' ', 'O'),
(' ', 'O', 'O'),
('X', 'X', 'X') ])
"'X' wins (horizontal)."
>>> tictactoe([('X', 'O', 'X'),
... ('O', 'X', 'O'),
... ('O', 'X', 'O') ])
'Draw.'
>>> tictactoe([('X', 'O', 'O'),
... ('X', 'O', ' '),
... ('O', 'X', ' ') ])
"'O' wins (diagonal)."
>>> tictactoe([('X', 'O', 'X'),
... ('O', 'O', 'X'),
... ('O', 'X', 'X') ])
"'X' wins (vertical)."
def tictactoe(moves):
for r in range(len(moves)):
for c in range(len(moves[r])):
if moves[0][c]==moves[1][c]==moves[2][c]:
a="'%s' wins (%s)."%((moves[0][c]),'vertical')
elif moves[r][0]==moves[r][1]==moves[r][2]:
a="'%s' wins (%s)."%((moves[r][0]),'horizontal')
elif moves[0][0]==moves[1][1]==moves[2][2]:
a="'%s' wins (%s)."%((moves[0][0]),'diagonal')
elif moves[0][2]==moves[1][1]==moves[2][0]:
a="'%s' wins (%s)."%((moves[0][2]),'diagonal')
else:
a='Draw.'
print(a)
私はこのようなコードを書きましたが、私の範囲は機能していません(私は思います)。なぜなら、rとcの値は0,1,2,3ではなく3となるからです。だから、誰かがこれで私を助けることができますか?ありがとうございました