Логика игры «Пятнашки» на Python?

Логика игры "Пятнашки" очень проста и основана на перемещении костяшек на пустое место на игровом поле с целью упорядочить числа от 1 до 15 (или от 1 до 8 в упрощенной версии игры) в порядке возрастания слева направо и сверху вниз.

Ниже приведен пример реализации логики игры "Пятнашки" на Python:

import random

# Создаем игровое поле размером 4x4 и заполняем его числами от 1 до 15
board = [[0] * 4 for _ in range(4)]
numbers = list(range(1, 16))
random.shuffle(numbers)
for i in range(4):
    for j in range(4):
        board[i][j] = numbers[i * 4 + j]

# Функция для вывода игрового поля на экран
def print_board():
    for i in range(4):
        for j in range(4):
            if board[i][j] == 0:
                print(" ", end="t")
            else:
                print(board[i][j], end="t")
        print()

# Функция для нахождения координат пустого места на игровом поле
def find_empty():
    for i in range(4):
        for j in range(4):
            if board[i][j] == 0:
                return i, j

# Функция для перемещения костяшки на пустое место
def move(number):
    i, j = find_empty()
    number_i, number_j = find_number(number)
    if (i == number_i and abs(j - number_j) == 1) or (j == number_j and abs(i - number_i) == 1):
        board[i][j] = number
        board[number_i][number_j] = 0

# Функция для нахождения координат определенной костяшки на игровом поле
def find_number(number):
    for i in range(4):
        for j in range(4):
            if board[i][j] == number:
                return i, j

# Функция для проверки, является ли игра завершенной
def is_complete():
    for i in range(4):
        for j in range(4):
            if i == 3 and j > 2:
                return True
            elif board[i][j] != i * 4 + j + 1:
                return False

# Основной игровой цикл
while True:
    print_board()
    if is_complete():
        print("Поздравляю! Вы победили!")
        break
    number = int(input("Введите число, чтобы переместить его: "))
    move(number)

В данном примере мы создаем игровое поле размером 4x4 и заполняем его числами от 1 до 15, перемешивая их случайным образом. Затем мы определяем несколько вспомогательных функций, таких как print_board(), чтобы вывести текущее состояние игрового поля, find_empty(), чтобы найти пустую клетку на поле, move(), чтобы переместить костяшку на пустое место, find_number(), чтобы найти координаты определенной костяшки, и is_complete(), чтобы проверить, завершена ли игра.

Основной игровой цикл позволяет игроку вводить числа, чтобы переместить соответствующую костяшку на пустое место. При завершении игры выводится сообщение о победе.

Это основная логика игры "Пятнашки" на Python. Конечно, вы можете добавить дополнительные функции или улучшить игровой интерфейс, но основные принципы остаются неизменными.