🔎 Как сделать пятнашки на python: пошаговое руководство с примерами кода!

Как сделать пятнашки на Python

Создание игры "пятнашки" на Python может быть интересным и полезным упражнением для практики программирования. Вот простой пример реализации игры на языке Python:


# Импортировать необходимые модули
import random

# Создать класс пятнашек
class FifteenPuzzle:
    def __init__(self):
        self.board = [[0] * 4 for _ in range(4)]
        self.empty = [3, 3]
        self.moves = {'up': (-1, 0), 'down': (1, 0), 'left': (0, -1), 'right': (0, 1)}

    # Метод для перемешивания пятнашек
    def shuffle(self):
        numbers = list(range(1, 16))
        random.shuffle(numbers)

        index = 0
        for i in range(4):
            for j in range(4):
                if i != 3 or j != 3:
                    self.board[i][j] = numbers[index]
                    index += 1

    # Метод для отображения игровой доски
    def display(self):
        for row in self.board:
            print('\t'.join(map(str, row)))

    # Метод для проверки, решена ли игра
    def is_solved(self):
        numbers = 1
        for i in range(4):
            for j in range(4):
                if i != 3 or j != 3:
                    if self.board[i][j] != numbers:
                        return False
                    numbers += 1
        return True

    # Метод для перемещения пятнашек
    def move(self, direction):
        if direction in self.moves:
            dx, dy = self.moves[direction]
            x, y = self.empty[0], self.empty[1]
            new_x, new_y = x + dx, y + dy

            if 0 <= new_x < 4 and 0 <= new_y < 4:
                self.board[x][y], self.board[new_x][new_y] = self.board[new_x][new_y], self.board[x][y]
                self.empty = [new_x, new_y]

# Создать экземпляр класса пятнашек
game = FifteenPuzzle()

# Перемешать пятнашки
game.shuffle()

# Отображение начальной игровой доски
game.display()

# Пример перемещения пятнашек
game.move('up')
game.display()

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

Детальный ответ

Как сделать пятнашки на Python

В этой статье мы рассмотрим, как создать игру "пятнашки" на языке программирования Python. "Пятнашки" - это популярная головоломка, в которой нужно перемещать фишки по полю размером 4x4, чтобы упорядочить их по порядку от 1 до 15, оставив последнее поле пустым.

Давайте начнем с создания основной структуры игры. Мы будем использовать двумерный массив для представления игрового поля. Каждый элемент массива будет содержать значение от 1 до 15, где 0 обозначает пустую ячейку. Вот пример кода:


board = [[1, 2, 3, 4],
         [5, 6, 7, 8],
         [9, 10, 11, 12],
         [13, 14, 15, 0]]
    

Теперь давайте создадим функцию для отображения игрового поля. Мы можем использовать циклы для обхода каждого элемента массива и вывода его значения. Вот пример кода:


def print_board(board):
    for row in board:
        for cell in row:
            print(cell, end=' ')
        print()
    

Теперь рассмотрим, как перемещать фишки по полю. Мы можем использовать функцию, которая будет принимать два параметра: текущую позицию фишки и новую позицию, куда мы хотим ее переместить. Мы также должны убедиться, что новая позиция находится в пределах игрового поля. Вот пример кода:


def move_tile(board, current_position, new_position):
    row, col = current_position
    new_row, new_col = new_position
    
    # Проверяем, находится ли новая позиция в пределах поля
    if 0 <= new_row < len(board) and 0 <= new_col < len(board[0]):
        # Перемещаем фишку из текущей позиции в новую позицию
        board[row][col], board[new_row][new_col] = board[new_row][new_col], board[row][col]
    else:
        print("Некорректная позиция")
    

Осталось добавить логику для перемешивания фишек и проверки, достигнута ли победная позиция. Мы можем использовать функцию random.shuffle() для перемешивания элементов массива, а затем проверить, является ли текущая позиция победной. Вот пример кода:


import random

def shuffle_board(board):
    # Перемешиваем фишки
    flat_board = [cell for row in board for cell in row]
    random.shuffle(flat_board)
    
    # Преобразуем одномерный массив обратно в двумерный для обновления игрового поля
    board = [flat_board[i:i+4] for i in range(0, 16, 4)]
    
    return board

def check_win(board):
    # Проверяем, достигнута ли победная позиция
    win_board = [[1, 2, 3, 4],
                 [5, 6, 7, 8],
                 [9, 10, 11, 12],
                 [13, 14, 15, 0]]
    
    return board == win_board
    

Теперь у нас есть все необходимое для создания игры "пятнашки" на Python. Мы можем вызывать функции, чтобы перемещать фишки, перемешивать и проверять победу. Например:


board = [[1, 2, 3, 4],
         [5, 6, 7, 8],
         [9, 10, 11, 12],
         [13, 14, 15, 0]]

print_board(board)

move_tile(board, (3, 3), (2, 3))  # Перемещаем пустую ячейку вверх
print_board(board)

shuffle_board(board)  # Перемешиваем фишки
print_board(board)

print(check_win(board))  # Проверяем, достигнута ли победная позиция
    

Мы только что создали игру "пятнашки" на языке программирования Python. Теперь у вас есть основа для дальнейших улучшений и дополнений, например, добавления графического интерфейса или создания алгоритма решения головоломки.

Учите и программированию весело! 🎉

Видео по теме

py066 Пятнашки на Питоне

Пятнашки за один стрим | Python | PyGame (с нуля)

Пятнашки на питоне за 10 секунд!!!#shorts

Похожие статьи:

Что такое format в Python? 🐍 Понимание основных аспектов format в языке Python

🐍 Как открыть программу Python в командной строке: полезный гайд для начинающих

Как добавить процент к числу в питоне? 📈Простое объяснение и примеры

🔎 Как сделать пятнашки на python: пошаговое руководство с примерами кода!

Какого оператора цикла не существует в языке Python? 🔄

🧮 Как найти длину отрезка в Питоне: простой способ с примерами кода

🔢 Как преобразовать элементы списка в числа с помощью Python