Логика игры «Пятнашки» на 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, перемешивая их случайным образом. Затем мы определяем несколько вспомогательных функций, таких как printboard(), чтобы вывести текущее состояние игрового поля, findempty(), чтобы найти пустую клетку на поле, move(), чтобы переместить костяшку на пустое место, findnumber(), чтобы найти координаты определенной костяшки, и iscomplete(), чтобы проверить, завершена ли игра.

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

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