Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ С ПРОГРАММОЙ НА ПИТОНЕ. ЗАДАНИЕ С УСЛОВИЕМ НИЖЕ

Максим Перов Ученик (118), открыт 1 неделю назад
Игра с компьютером «Крестики-нолики». Поле игры произвольное (небольшое). Пользователь вводит, а компьютер выводит координаты нулика (крестика). Компьютер подводит итог.
1 ответ
Татьяна Просветленный (29345) 1 неделю назад
 import random 

def print_board(board):
for row in board:
print(" | ".join(row))
print("-" * (len(row) * 4 - 1))

def check_winner(board, player):
n = len(board)
# Check rows
for row in board:
if all(cell == player for cell in row):
return True
# Check columns
for col in range(n):
if all(board[row][col] == player for row in range(n)):
return True
# Check diagonals
if all(board[i][i] == player for i in range(n)):
return True
if all(board[i][n-1-i] == player for i in range(n)):
return True
return False

def is_board_full(board):
return all(cell != ' ' for row in board for cell in row)

def get_computer_move(board):
empty_cells = [(i, j) for i, row in enumerate(board) for j, cell in enumerate(row) if cell == ' ']
return random.choice(empty_cells)

def main():
size = int(input("Введите размер поля (например, 3 для поля 3x3): "))
board = [[' ' for _ in range(size)] for _ in range(size)]
print_board(board)

current_player = "X"
while True:
if current_player == "X":
row = int(input("Введите номер строки (0-{}): ".format(size - 1)))
col = int(input("Введите номер столбца (0-{}): ".format(size - 1)))
if board[row][col] != ' ':
print("Эта ячейка уже занята. Попробуйте снова.")
continue
board[row][col] = "X"
else:
row, col = get_computer_move(board)
board[row][col] = "O"
print("Компьютер выбрал ячейку ({}, {})".format(row, col))

print_board(board)

if check_winner(board, current_player):
print("Игрок {} выиграл!".format(current_player))
break

if is_board_full(board):
print("Ничья!")
break

current_player = "O" if current_player == "X" else "X"

if __name__ == "__main__":
main()
Как это работает:
Программа запрашивает у пользователя размер поля.
Игровое поле создается с указанным размером.
Игрок и компьютер по очереди делают ходы. Игрок вводит координаты для своего хода, а компьютер случайным образом выбирает свободную ячейку для своего хода.
После каждого хода проверяется, выиграл ли кто-то или закончились ли свободные ячейки.
Игра заканчивается, когда кто-то выигрывает или все ячейки заняты.
Максим ПеровУченик (118) 3 дня назад
Благодарю
Похожие вопросы