私はプログラミングが初めてで、私はTicTacToeゲームで勝者を確認することに問題があります。TicTacToe Python勝者を確認
私の問題はdef printboard(ボード)です:勝者を正しくチェックせず、誰かが勝ってもゲームが実行され続けることです。
(2つのファイルがあり、1つはticTacToeRunner & ticTacToeと呼ばれ、最初は2番目のファイルを実行するだけです)。私は問題を抱えているところ
#ticTacTorRunner file
import ticTacToe
theBoard = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ',
'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ',
'low-L': ' ', 'low-M': ' ', 'low-R': ' '}
ticTacToe.startGame('X', theBoard)
#ticTacToe file
def printBoard(board):
print(board['top-L'] + '|' + board['top-M'] + '|' + board['top-R'])
print('-+-+-')
print(board['mid-L'] + '|' + board['mid-M'] + '|' + board['mid-R'])
print('-+-+-')
print(board['low-L'] + '|' + board['low-M'] + '|' + board['low-R'])
は、ここでの勝者のチェック、です:
def checkWinner(board, player):
print('Checking if ' + player + ' is a winner...')
#X WIN
if 'top-L' == 'X' and 'top-M' == 'X' and 'top-R' == 'X':
return True
elif board == """{'top-L': ' ', 'top-M': ' ', 'top-R': ' ',
'mid-L': 'X', 'mid-M': 'X', 'mid-R': 'X',
'low-L': 'O', 'low-M': 'O', 'low-R': ' '}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X|O| ', 'top-R': 'X|O| ',
'mid-L': 'X|O| ', 'mid-M': 'X|O| ', 'mid-R': 'X|O| ',
'low-L': 'X', 'low-M': 'X', 'low-R': 'X'}""":
return True
elif board == """{'top-L': 'X', 'top-M': 'X|O| ', 'top-R': 'X|O| ',
'mid-L': 'X', 'mid-M': 'X|O| ', 'mid-R': 'X|O| ',
'low-L': 'X', 'low-M': 'X|O| ', 'low-R': 'X|O| '}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X', 'top-R': 'X|O| ',
'mid-L': 'X|O| ', 'mid-M': 'X', 'mid-R': 'X|O| ',
'low-L': 'X|O| ', 'low-M': 'X', 'low-R': 'X|O| '}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X|O| ', 'top-R': 'X',
'mid-L': 'X|O| ', 'mid-M': 'X|O| ', 'mid-R': 'X',
'low-L': 'X|O| ', 'low-M': 'X|O| ', 'low-R': 'X'}""":
return True
elif board == """{'top-L': 'X', 'top-M': 'X|O| ', 'top-R': 'XX|O| ',
'mid-L': 'X|O| ', 'mid-M': 'X', 'mid-R': 'X|O| ',
'low-L': 'X|O| ', 'low-M': 'X|O| ', 'low-R': 'X'}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X|O| ', 'top-R': 'X',
'mid-L': 'X|O| ', 'mid-M': 'X', 'mid-R': 'X|O| ',
'low-L': 'X', 'low-M': 'X|O| ', 'low-R': 'X|O| '}""":
return True
#O WIN
elif board == """{'top-L': 'O', 'top-M': 'O', 'top-R': 'O',
'mid-L': 'X|O| ', 'mid-M': 'X|O| ', 'mid-R': 'XX|O| ',
'low-L': 'X|O| ', 'low-M': 'X|O| ', 'low-R': 'X|O| '}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X|O| ', 'top-R': 'X|O| ',
'mid-L': 'O', 'mid-M': 'O', 'mid-R': 'O',
'low-L': 'X|O| ', 'low-M': 'X|O| ', 'low-R': 'X|O| '}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X|O| ', 'top-R': 'X|O| ',
'mid-L': 'X|O| ', 'mid-M': 'X|O| ', 'mid-R': 'X|O| ',
'low-L': 'O', 'low-M': 'O', 'low-R': 'O'}""":
return True
elif board == """{'top-L': 'O', 'top-M': 'X|O| ', 'top-R': 'X|O| ',
'mid-L': 'O', 'mid-M': 'X|O| ', 'mid-R': 'X|O| ',
'low-L': 'O', 'low-M': 'X|O| ', 'low-R': 'X|O| '}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'O', 'top-R': 'X|O| ',
'mid-L': 'X|O| ', 'mid-M': 'O', 'mid-R': 'X|O| ',
'low-L': 'X|O| ', 'low-M': 'O', 'low-R': 'X|O| '}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X|O| ', 'top-R': 'O',
'mid-L': 'X|O| ', 'mid-M': 'X|O| ', 'mid-R': 'O',
'low-L': 'X|O| ', 'low-M': 'X|O| ', 'low-R': 'O'}""":
return True
elif board == """{'top-L': 'O', 'top-M': 'X|O| ', 'top-R': 'XX|O| ',
'mid-L': 'X|O| ', 'mid-M': 'O', 'mid-R': 'X|O| ',
'low-L': 'X|O| ', 'low-M': 'X|O| ', 'low-R': 'O'}""":
return True
elif board == """{'top-L': 'X|O| ', 'top-M': 'X|O| ', 'top-R': 'O',
'mid-L': 'X|O| ', 'mid-M': 'O', 'mid-R': 'X|O| ',
'low-L': 'O', 'low-M': 'X|O| ', 'low-R': 'X|O| '}""":
return True
else:
return False
そして、ここではのためのループで、ここで
は、任意のヘルプは大歓迎され、私が現在持っているものですゲーム:
def startGame(startingPlayer, board):
turn = startingPlayer
for i in range(9):
printBoard(board)
print('Turn for ' + turn + '. Move on which space?')
move = input()
board[move] = turn
if (checkWinner(board, 'X')):
print('X wins!')
break
elif (checkWinner(board, 'O')):
print('O wins!')
break
if turn == 'X':
turn = 'O'
else:
turn = 'X'
print (board)
'checkWinner'の字下げに欠陥があります。それは構文エラーのように見えます。 Pythonはコントロールフローにインデントを使用するので、あなたの質問のコードが適切にインデントされていないという事実は、あなたのコードが本当に何かを実際に知っていることを誰も実際に知っていないことを意味します。 –