Advertisement
plarmi

Tag game

Sep 7th, 2023 (edited)
617
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.71 KB | None | 0 0
  1. import random
  2.  
  3. # Создаем игровое поле
  4. def create_board():
  5.     # Создаем список чисел от 1 до 15
  6.     numbers = list(range(1, 16))
  7.     # Добавляем пустую клетку
  8.     numbers.append(None)
  9.     # Перемешиваем список
  10.     random.shuffle(numbers)
  11.    
  12.     # Разбиваем список на строки по 4 числа
  13.     board = [numbers[i:i+4] for i in range(0, 16, 4)]
  14.     return board
  15.  
  16. # Находим позицию пустой клетки
  17. def find_empty_cell(board):
  18.     for i in range(len(board)):
  19.         for j in range(len(board[i])):
  20.             if board[i][j] is None:
  21.                 return (i, j)
  22.  
  23. # Проверяем, является ли текущее состояние поля выигрышным
  24. def is_winner(board):
  25.     # Правильное состояние поля
  26.     winning_board = [
  27.         [1, 2, 3, 4],
  28.         [5, 6, 7, 8],
  29.         [9, 10, 11, 12],
  30.         [13, 14, 15, None]
  31.     ]
  32.     return board == winning_board
  33.  
  34. # Печатаем игровое поле
  35. def print_board(board):
  36.     for row in board:
  37.         for cell in row:
  38.             # Вместо пустой клетки выводим символ "_"
  39.             if cell is None:
  40.                 print("_", end="\t")
  41.             else:
  42.                 print(cell, end="\t")
  43.         print("\n")
  44.     print("--------------------------")
  45.  
  46. # Двигаем клетки
  47. def move(board, direction):
  48.     empty_cell = find_empty_cell(board)
  49.     row, col = empty_cell
  50.     # Двигаем клетку влево
  51.     if direction == "l" and col > 0:
  52.         board[row][col], board[row][col-1] = board[row][col-1], board[row][col]
  53.     # Двигаем клетку вправо
  54.     elif direction == "r" and col < 3:
  55.         board[row][col], board[row][col+1] = board[row][col+1], board[row][col]
  56.     # Двигаем клетку вверх
  57.     elif direction == "u" and row > 0:
  58.         board[row][col], board[row-1][col] = board[row-1][col], board[row][col]
  59.     # Двигаем клетку вниз
  60.     elif direction == "d" and row < 3:
  61.         board[row][col], board[row+1][col] = board[row+1][col], board[row][col]
  62.  
  63. # Основной цикл игры
  64. def play_game():
  65.     board = create_board()
  66.     moves = 0
  67.  
  68.     while not is_winner(board):
  69.         print_board(board)
  70.         direction = input("Введите направление движения (l - влево, r - вправо, u - вверх, d - вниз): ")
  71.         move(board, direction)
  72.         moves += 1
  73.  
  74.     print("\nПоздравляем! Вы решили головоломку за", moves, "шагов.")
  75.  
  76. # Запускаем игру
  77. play_game()
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement