Python TicTacToe
Python TicTacToe
return False
def is_board_full(board):
return all(cell != " " for row in board for cell in row)
def get_empty_cells(board):
return [(row, col) for row in range(3) for col in range(3) if
board[row][col] == " "]
if check_winner(board, 'X'):
return -1
elif check_winner(board, 'O'):
return 1
elif is_board_full(board):
return 0
if maximizing_player:
max_eval = float('-inf')
for row, col in get_empty_cells(board):
board[row][col] = 'O'
eval_score = minimax(board, depth - 1, False)
board[row][col] = ' '
max_eval = max(max_eval, eval_score)
return max_eval
else:
min_eval = float('inf')
for row, col in get_empty_cells(board):
board[row][col] = 'X'
eval_score = minimax(board, depth - 1, True)
board[row][col] = ' '
min_eval = min(min_eval, eval_score)
return min_eval
def get_best_move(board):
best_val = float('-inf')
best_move = None
return best_move
def main():
board = [[" " for _ in range(3)] for _ in range(3)]
while True:
row = int(input("Enter the row (0, 1, or 2): "))
col = int(input("Enter the column (0, 1, or 2): "))
board[row][col] = 'X'
print_board(board)
if check_winner(board, 'X'):
print("You win! Congratulations!")
break
if is_board_full(board):
print("It's a tie!")
break
print("Computer's turn:")
computer_row, computer_col = get_best_move(board)
board[computer_row][computer_col] = 'O'
print_board(board)
if check_winner(board, 'O'):
print("Computer wins! Better luck next time.")
break
if is_board_full(board):
print("It's a tie!")
break
if __name__ == "__main__":
main()