🔎 Как сделать пятнашки на 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. Теперь у вас есть основа для дальнейших улучшений и дополнений, например, добавления графического интерфейса или создания алгоритма решения головоломки.
Учите и программированию весело! 🎉