Игра «Сапер» на Python является одним из самых популярных и простых примеров программирования на языке Python. Она позволяет пользователям просто и быстро создать игру, которая приносит массу удовольствия.
Игра «Сапер» представляет собой простую игру в жанре головоломки. Цель игры — открыть все поля на игровом поле без попадания на мину. Мины могут находиться в любом месте на игровом поле. Игрок должен использовать логику и внимательность, чтобы не попасть на мину.
Создание игры Сапер на Python
Для создания игры «Сапер» на Python необходимо иметь базовые знания языка программирования Python. Также необходимо иметь представление о библиотеках и модулях Python.
Импорт необходимых модулей на Python
Для начала необходимо импортировать необходимые библиотеки и модули. Для этого мы используем команду import. В нашем случае мы импортируем модули random и time.
#python
import random
import time
Далее мы должны определить размеры игрового поля. Для этого мы используем переменные board_width и board_height.
#python
board_width = 10
board_height = 10
Определение массива для игры
Теперь мы должны инициализировать игровое поле. Для этого мы используем двумерный массив. Мы инициализируем его нулями.
#python
board = [[0 for x in range(board_width)] for y in range(board_height)]
Теперь мы должны инициализировать мины. Для этого мы используем цикл for и функцию random.randint(). Функция random.randint() возвращает случайное целое число из диапазона, который мы указываем.
#python
for i in range(10):
x = random.randint(0, board_width - 1)
y = random.randint(0, board_height - 1)
board[x][y] = -1
Поиск мин в игре Сапер
Теперь мы должны написать функцию, которая будет проверять поле на наличие мин. Для этого мы используем цикл for и условные операторы.
#python
def check_board(x, y):
count = 0
for i in range(-1, 2):
for j in range(-1, 2):
if 0 <= x + i < board_width and 0 <= y + j < board_height:
if board[x + i][y + j] == -1:
count += 1
return count
Отображение игры на Python
Теперь мы должны написать функцию, которая будет отображать игровое поле. Для этого мы используем цикл for и условные операторы.
#python
def print_board():
for x in range(board_width):
for y in range(board_height):
if board[x][y] == -1:
print('*', end=' ')
else:
print(board[x][y], end=' ')
print()
Теперь мы должны написать главную функцию игры. Для этого мы используем цикл while и условные операторы.
#python
def main():
game_over = False
while not game_over:
print_board()
x = int(input('Введите номер строки: '))
y = int(input('Введите номер столбца: '))
if board[x][y] == -1:
print('Вы попали на мину! Игра окончена!')
game_over = True
else:
board[x][y] = check_board(x, y)
time.sleep(1)
Наконец, мы должны вызвать главную функцию игры.
#python
if __name__ == '__main__':
main()
Теперь мы можем запустить нашу игру «Сапер» на Python. Попробуйте и получите массу удовольствия!
Полный код игры Сапер на Python
import random
# размер поля
SIZE = 10
# количество мин
MINES = 10
# инициализация игрового поля
field = [[0 for i in range(SIZE)] for i in range(SIZE)]
# заполняем поле минами
mines_set = 0
while mines_set < MINES:
i = random.randint(0, SIZE - 1)
j = random.randint(0, SIZE - 1)
if field[i][j] != -1:
field[i][j] = -1
mines_set += 1
# заполняем поле цифрами
for i in range(SIZE):
for j in range(SIZE):
if field[i][j] == 0:
for di in range(-1, 2):
for dj in range(-1, 2):
ai = i + di
aj = j + dj
# (ai, aj)
if 0 <= ai < SIZE and 0 <= aj < SIZE and field[ai][aj] == -1:
field[i][j] += 1
# выводим поле на экран
for i in range(SIZE):
for j in range(SIZE):
if field[i][j] == -1:
print('*', end=' ')
elif field[i][j] == 0:
print('.', end=' ')
else:
print(field[i][j], end=' ')
print()