チック・タック・トー・ゲームを構築しようとしていますが、ボードがあるかどうかを確認するために働く機能に問題がありますフル。ボードのための私のリストは
board = [' ',' ',' ',' ',' ',' ',' ',' ',' ']
で、私の機能はチック・タック・トー・ゲームでフル・ボードをチェックする機能を修正する方法
def fullBoard():
"""Returns a boolean value reporting the state of the board, full or not.
True for full, False for not full."""
for y in board:
if board[y] == ' ':
return False
print(False)
break
else:
print(True)
return True
私はそれがやりたいことリスト内の各項目を検索していると、それは「」またはスペースを見つけたとき、それはfalseを返し、休憩ですループ。しかし、もしそれがないなら、それはボードがいっぱいであることを意味しているのです(私は私のために印刷機能を置いていました)。
私はこれがうまくいくと思ったが、TypeErrorリストインデックスは整数またはスライスでなければなりません。strは私のif board[y] == ' ':
行を参照しません。誰かがこれをうまく動作させる方法を知っていれば、それは私が望むやり方ですばらしいことになります。また、私はcomp prog 1にしか入っておらず、非常に基本的なレベルであるので、シンプルさが最高になることに注意してください。 (また、短くしたり、より速く走らせたりしないでください。私が作った間違いが何であるかを知りたいので、それから学ぶことができます。)ありがとうございました!
別のオプションは、 '' in'かないin'演算子を使用してループを自分でコーディング避けるためです(([こちら] HTTPSを参照してください。 org/3/library/stdtypes.html#sequence-types-list-tuple-range)を参照してください)。 Python 2には、特定の値の有無よりも複雑なものをチェックしているときに使用できる、より一般化された関数 'reduce'、' all'、 'any'もありました。私は彼らがまだどこかでPython 3で利用できると思いますが、直感的ではないためにグローバル関数として 'reduce'について覚えていると思います。 – Steve314