Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- # Создаем игровое поле
- def create_board():
- # Создаем список чисел от 1 до 15
- numbers = list(range(1, 16))
- # Добавляем пустую клетку
- numbers.append(None)
- # Перемешиваем список
- random.shuffle(numbers)
- # Разбиваем список на строки по 4 числа
- board = [numbers[i:i+4] for i in range(0, 16, 4)]
- return board
- # Находим позицию пустой клетки
- def find_empty_cell(board):
- for i in range(len(board)):
- for j in range(len(board[i])):
- if board[i][j] is None:
- return (i, j)
- # Проверяем, является ли текущее состояние поля выигрышным
- def is_winner(board):
- # Правильное состояние поля
- winning_board = [
- [1, 2, 3, 4],
- [5, 6, 7, 8],
- [9, 10, 11, 12],
- [13, 14, 15, None]
- ]
- return board == winning_board
- # Печатаем игровое поле
- def print_board(board):
- for row in board:
- for cell in row:
- # Вместо пустой клетки выводим символ "_"
- if cell is None:
- print("_", end="\t")
- else:
- print(cell, end="\t")
- print("\n")
- print("--------------------------")
- # Двигаем клетки
- def move(board, direction):
- empty_cell = find_empty_cell(board)
- row, col = empty_cell
- # Двигаем клетку влево
- if direction == "l" and col > 0:
- board[row][col], board[row][col-1] = board[row][col-1], board[row][col]
- # Двигаем клетку вправо
- elif direction == "r" and col < 3:
- board[row][col], board[row][col+1] = board[row][col+1], board[row][col]
- # Двигаем клетку вверх
- elif direction == "u" and row > 0:
- board[row][col], board[row-1][col] = board[row-1][col], board[row][col]
- # Двигаем клетку вниз
- elif direction == "d" and row < 3:
- board[row][col], board[row+1][col] = board[row+1][col], board[row][col]
- # Основной цикл игры
- def play_game():
- board = create_board()
- moves = 0
- while not is_winner(board):
- print_board(board)
- direction = input("Введите направление движения (l - влево, r - вправо, u - вверх, d - вниз): ")
- move(board, direction)
- moves += 1
- print("\nПоздравляем! Вы решили головоломку за", moves, "шагов.")
- # Запускаем игру
- play_game()
Advertisement
Advertisement