Логика игры "Пятнашки" очень проста и основана на перемещении костяшек на пустое место на игровом поле с целью упорядочить числа от 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. Конечно, вы можете добавить дополнительные функции или улучшить игровой интерфейс, но основные принципы остаются неизменными.