Предмет: Информатика, автор: lolkash80

ПРОЕКТ Хрестики-нулики

Приложения:

Ответы

Автор ответа: Mirox921
0

Код:

from random import randrange

def display_board(board):

   # Функція виводить стан дошки на консоль.

   for row in board:

       print("+-------+-------+-------+")

       for cell in row:

           print(f"|   {cell}   ", end='')

       print("|")

   print("+-------+-------+-------+")

def enter_move(board):

   # Функція запитує користувача про його хід та оновлює дошку.

   while True:

       try:

           move = int(input("Введіть свій хід (від 1 до 9): "))

           if 1 <= move <= 9:

               row = (move - 1) // 3

               col = (move - 1) % 3

               if board[row][col] == str(move):

                   board[row][col] = 'O'

                   break

               else:

                   print("Цей квадрат вже зайнятий. Спробуйте ще раз.")

           else:

               print("Введіть число від 1 до 9.")

       except ValueError:

           print("Неправильний формат вводу. Введіть ціле число від 1 до 9.")

def make_list_of_free_fields(board):

   # Функція створює список вільних квадратів на дошці.

   free_fields = []

   for row in range(3):

       for col in range(3):

           if board[row][col] != 'X' and board[row][col] != 'O':

               free_fields.append((row, col))

   return free_fields

def winner_for(board, sign):

   # Функція перевіряє, чи є переможець з певним знаком (X або O).

   for row in range(3):

       if all(board[row][col] == sign for col in range(3)):

           return True

   for col in range(3):

       if all(board[row][col] == sign for row in range(3)):

           return True

   if all(board[i][i] == sign for i in range(3)) or all(board[i][2 - i] == sign for i in range(3)):

       return True

   return False

def draw_move(board):

   # Функція робить хід комп'ютера та оновлює дошку.

   free_fields = make_list_of_free_fields(board)

   if free_fields:

       row, col = free_fields[randrange(len(free_fields))]

       board[row][col] = 'X'

if __name__ == "__main__":

   # Початок гри

   board = [['1', '2', '3'], ['4', 'X', '6'], ['7', '8', '9']]

   display_board(board)

   while True:

       enter_move(board)

       display_board(board)

       if winner_for(board, 'O'):

           print("Ви виграли!")

           break

       free_fields = make_list_of_free_fields(board)

       if not free_fields:

           print("Гра закінчилася в нічию!")

           break

       draw_move(board)

       display_board(board)

       if winner_for(board, 'X'):

           print("Комп'ютер виграв!")

           break


slonce70: Ой як бінг чудово пише)Прям вбиваю і слово в слово пише)Всі назви функцій і тд)За це тут бан отримують
Похожие вопросы
Предмет: Биология, автор: ggfiolkkl
Предмет: Русский язык, автор: akerkeorazbek079
Предмет: Математика, автор: tsaganaerdeeva