Как заставить компьютер попытаться атаковать или защититься в игре гомоку с использованием Python? [закрыто]Python

Программы на Python
Ответить
Anonymous
 Как заставить компьютер попытаться атаковать или защититься в игре гомоку с использованием Python? [закрыто]

Сообщение Anonymous »

Я пишу программу, которая имитирует игру на Python, в которой участвуют игрок и компьютер. Программа работает стабильно. Однако при проверке автомат играет очень хаотично, вообще не атакуя и не защищаясь. Если я буду исследовать, я буду использовать для обработки алгоритм minmax. Но я не знаю, как это сделать. Может ли кто-нибудь мне помочь? Мой код Python:

Код: Выделить всё

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()
X — игрок, O — компьютер
Результат моего кода

Подробнее здесь: https://stackoverflow.com/questions/785 ... ing-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»