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

Зделать программу крестики нолики на любом языке программирование.Даю сначало 100б потом 345б


p15: с логикой, чтобы никогда не проигрывал комп или просто ставить где свободное место?
AlexOlvin: Здесь есть с подробным пояснением на Python: http://pythonicway.com/python-games/python-textgames/4-tictactoeterm
illabratash2012: С логикой чтобы некогда не проигрывал

Ответы

Автор ответа: championovanexus
1

board = [[' ' for x in range(3)] for y in range(3)]  # инициализация игрового поля

player = 'X'  # начать с игрока X

def draw_board():

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

   for row in board:

       print("|", end='')

       for cell in row:

           print(cell, end='|')

       print("")

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

def check_winner():

   # check rows

   for row in board:

       if row[0] == row[1] == row[2] and row[0] != ' ':

           return row[0]

   # check columns

   for col in range(3):

       if board[0][col] == board[1][col] == board[2][col] and board[0][col] != ' ':

           return board[0][col]

   # check diagonals

   if board[0][0] == board[1][1] == board[2][2] and board[0][0] != ' ':

       return board[0][0]

   if board[0][2] == board[1][1] == board[2][0] and board[0][2] != ' ':

       return board[0][2]

   return None

while True:

   draw_board()

   print("Игрок", player, "ход")

   row = int(input("Введите ряд (1-3): ")) - 1

   col = int(input("Введите колону (1-3): ")) - 1

   if board[row][col] != ' ':

       print("Эта ячейка уже занята! Попробуйте еще раз.")

       continue

   board[row][col] = player

   winner = check_winner()

   if winner:

       print("Игрок", winner, "побеждает!")

       break

   if all(all(cell != ' ' for cell in row) for row in board):

       print("Это ничья!")

       break

   player = 'O' if player == 'X' else 'X'  # переключать игроков

print("Конец игры!")

Похожие вопросы
Предмет: Немецкий язык, автор: aninachnad
Предмет: Химия, автор: veremijdarina