私は関数の引数にリストを入力する練習問題に取り組んでいます。これはチックタックトウボードを表し、ボードの結果を返します。つまり、Xが勝ち、Oが勝ち、Draw、またはNone(ヌル文字列)です。If文をループに変換する
私はそれを解決しましたが、アルゴリズムをループに操作する方法があるかどうかは疑問でした。ループを使用してメイン対角線の各要素をすべて 行と列を交差し、2つの対角線をチェックします。私はPythonを初めて使っているので、私の解決策はもう少し長くなるはずです。 tic tac toe boardの結果をチェックするためにループをどのように実装することができますか?
def gameState (List):
xcounter=0
ocounter=0
if List[0][0]==List[0][1] and List[0][0]==List[0][2]:
return List[0][0]
elif List[0][0]==List[1][0] and List[0][0]==List[2][0]:
return List[0][0]
elif List[0][0]==List[1][1] and List[0][0]==List[2][2]:
return List[0][0]
elif List[1][1]==List[1][2] and List[1][1]==List[1][0] :
return List[1][1]
elif List[1][1]==List[0][1] and List[1][1]==List[2][1]:
return List[1][1]
elif List[1][1]==List[0][0] and List[1][1]==List[2][2]:
return List[1][1]
elif List[2][2]==List[2][0] and List[2][2]==List[2][1]:
return List[2][2]
elif List[2][2]==List[1][2] and List[2][2]==List[0][2]:
return List[2][2]
elif List[2][2]==List[1][1] and List[2][2]==List[0][0]:
return List[2][2]
for listt in List:
for elm in listt:
if elm=="X" or elm=="x":
xcounter+=1
elif elm=="O" or elm=="o":
ocounter+=1
if xcounter==5 or ocounter==5:
return "D"
else:
return ''
ループを試しましたか?どのような問題がありましたか?また、 'List'は、Pythonの組み込み関数であり、ある時点で、それを組み込んだものを使用すると、問題を引き起こすので、不正な変数名です。 – enderland
これは「動作中の」コードですか?もしそうなら、[Code Review](http://codereview.stackexchange.com/) –
でそれを尋ねてください。入れ子にされた 'for'ステートメントの使用ですでにループが実装されているようです。 –