私はPythonの本を使っていて、チック - タック - トゥーゲームを作成し、私が行っているコードを理解するように求められました。プログラムを実行するには時間が来て、私は完全なエラーされた状態で、この奇妙なエラーにPythonゲーム| TypeError:タイプ 'NoneType'の引数は反復可能ではありません
TypeError: argument of type 'NoneType' is not iterable
を与えられました。ここで
Traceback (most recent call last):
File "Tac Tac Toe Game revised.py", line 182, in <module>
main()
File "Tac Tac Toe Game revised.py", line 173, in main
move = human_move(board, human)
File "Tac Tac Toe Game revised.py", line 100, in human_move
while move not in legal:
TypeError: argument of type 'NoneType' is not iterable
は、それがline 173
def main():
display_instruction()
computer,human = pieces()
turn = X
board = new_board()
display_board(board)
while not winner(board):
if turn == human:
move = human_move(board, human)
board[move] == human
else:
move = computer_move(board,computer,human)
board[move] == computer
display_board(board)
congrats_winner(the_winner,computer, human)
にを参照するコードです次の関数でエラーが発生します。
def human_move(board,human):
'''Get human move'''
legal = legal_moves(board)
move = None
while move not in legal:
move = ask_number('Where will you move? (0-8): ',0, NUM_SQUARES)
if move not in legal:
print ('\nThat square is already occupied, foolish human. Choose another.\n')
print('Fine...')
return move
move = None
をmove = ' '
に変更しようとしましたが、違いはありません。何か案は?
ここで要求されたように、あなたの問題はあなたが与える場合は...
をあなたはこれが問題であるので、何をカウントしないようにしてみてくださいなし変数にwhileループを行うカントあるlegal_moves
def legal_moves(board):
'''Creates a legal list of moves'''
moves = []
for square in range(NUM_SQUARES):
if board[square] == EMPTY:
moves.append(square)
'legal'ているもの?それは反復可能ではなく、「動く」ではないものです。明らかに、「合法」は「なし」ですが、どうすればよいでしょうか? –
'legal_moves'は何を返しますか? –
追加のヘルプが必要な場合は、 'legal_moves'の定義を投稿してください。 –