I’m writing a simple python program that simulates the game gomoku. But I don’t know how to make sure that when I play against the machine, the machine will try to win and defend. Here, the machine is playing randomly.Can anyone help me? thank bro. My python code is:
import random
import math
def print_board(board):
for row in board:
print(" | ".join(row))
print("-" * 100)
def check_winner(board, player):
for row in board:
if all([cell == player for cell in row]):
return True
for col in range(15):
if all([board[row][col] == player for row in range(15)]):
return True
if all([board[i][i] == player for i in range(15)]) or all([board[i][2-i] == player for i in range(15)]):
return True
return False
def bot_move(board):
for row in range(15):
for col in range(15):
if board[row][col] == " ":
board[row][col] = "O"
if check_winner(board, "O"):
return (row, col)
board[row][col] = " "
for row in range(15):
for col in range(15):
if board[row][col] == " ":
board[row][col] = "X"
if check_winner(board, "X"):
board[row][col] = "O"
return (row, col)
board[row][col] = " "
while True:
row = random.randint(0, 14)
col = random.randint(0, 14)
if board[row][col] == " ":
return (row, col)
def play_game():
board = [[" " for _ in range(15)] for _ in range(15)]
player = "X"
while True:
print_board(board)
if check_winner(board, "X"):
print("Player X wins!")
break
if check_winner(board, "O"):
print("Player O wins!")
break
if all([cell != " " for row in board for cell in row]):
print("It's a draw!")
break
if player == "X":
row, col = map(int, input("Enter your move (row col): ").split())
if board[row][col] == " ":
board[row][col] = "X"
player = "O"
else:
row, col = bot_move(board)
board[row][col] = "O"
player = "X"
play_game()
I have tried but have not been successful
1