Найти в Дзене

Урок 26-1. Игра: Пайти и Пуфик в стране мыльных пузырей

Программа представляет собой текстовую игру, в которой: Пузыри появляются случайно, игрок сам решает — лопать или нет. import random import time import os # очистка экрана def clear(): os.system("cls" if os.name == "nt" else "clear") # заставка def intro(): clear() print(""" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ПАЙТИ И ПУФИК В СТРАНЕ ПУЗЫРЕЙ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /^\/^\\ / o o \\ Питон Пайти / -- \\ / \\____/ \\ /\\_/\\ ( o o ) Кот Пуфик ( = ) (______) Новые правила: Каждая попытка = -1 жизнь <= 5 опасный пузырь (-1 жизнь) 6–10 пустой пузырь (ничего) 11–14 хороший пузырь (+1 очко, +1 жизнь) 15–20 отличный пузырь (+2 очка, +1 жизнь) Нажмите Enter для начала! """) input() # анимация лопания def pop_animation(): clear() print(""" O BOOM! \\ | / \\ | / \\|/ /|\\ / | \\ Пузырь лопнул! """) time.sleep(1.5) # анимация опасного пузыря def danger_animation(): clear() print(""" . ( ) ' Опасный пузырь! Пайти получил урон! """) time.sl
Оглавление

Программа представляет собой текстовую игру, в которой:

  • появляются случайные мыльные пузыри;
  • игрок решает, лопнуть пузырь или нет;
  • в зависимости от размера пузыря:
    игрок получает очки,
    теряет жизнь,
    или восстанавливает жизнь;
  • игра продолжается, пока не закончатся жизни.

Правила:

  • каждая попытка лопнуть пузырь → -1 жизнь
  • если пузырь хороший → жизнь возвращается
  • если пузырь опасный → жизнь не возвращается

Пузыри появляются случайно, игрок сам решает — лопать или нет.

Версия игры 1.0

-2
-3
-4
-5
-6

Код

import random
import time
import os
# очистка экрана
def clear():
os.system("cls" if os.name == "nt" else "clear")
# заставка
def intro():
clear()
print("""
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ПАЙТИ И ПУФИК В СТРАНЕ ПУЗЫРЕЙ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/^\/^\\
/ o o \\ Питон Пайти
/ -- \\
/ \\____/ \\
/\\_/\\
( o o ) Кот Пуфик
( = )
(______)
Новые правила:
Каждая попытка = -1 жизнь
<= 5 опасный пузырь (-1 жизнь)
6–10 пустой пузырь (ничего)
11–14 хороший пузырь (+1 очко, +1 жизнь)
15–20 отличный пузырь (+2 очка, +1 жизнь)
Нажмите Enter для начала!
""")
input()
# анимация лопания
def pop_animation():
clear()
print("""
O
BOOM!
\\ | /
\\ | /
\\|/
/|\\
/ | \\
Пузырь лопнул!
""")
time.sleep(1.5)
# анимация опасного пузыря
def danger_animation():
clear()
print("""
.
( )
'
Опасный пузырь!
Пайти получил урон!
""")
time.sleep(1.5)
# анимация хорошего пузыря
def good_animation():
clear()
print("""
O
* * *
Хороший пузырь!
Жизнь восстановлена!
""")
time.sleep(1.5)
# анимация отличного пузыря
def great_animation():
clear()
print("""
\\ O /
* * *
Отличный пузырь!
Жизнь восстановлена!
""")
time.sleep(1.5)
# игра
def game():
intro()
lives = 5
score = 0
round_num = 1
while lives > 0:
clear()
print(f"Раунд: {round_num}")
print(f"Жизни: {lives}")
print(f"Очки: {score}")
print()
size = random.randint(1, 20)
print("Появился пузырь!")
print("Размер пузыря:", size)
print()
action = input("Лопнуть пузырь? (да/нет): ").lower()
if action == "да":
# каждая попытка стоит жизнь
lives -= 1
pop_animation()
# опасный пузырь
if size <= 5:
danger_animation()
print("Это был опасный пузырь!")
# пустой пузырь
elif size <= 10:
print("Пустой пузырь...")
# хороший пузырь
elif size < 15:
score += 1
lives += 1
good_animation()
print("+1 очко, жизнь восстановлена!")
# отличный пузырь
else:
score += 2
lives += 1
great_animation()
print("+2 очка, жизнь восстановлена!")
else:
print("Вы пропустили пузырь.")
print()
print("Жизни:", lives)
print("Очки:", score)
input("\nНажмите Enter для продолжения...")
round_num += 1
# победа
if score >= 15:
clear()
print("""
ПОБЕДА!
Пайти и Пуфик спасли страну пузырей!
""")
print("Ваш счет:", score)
return
clear()
print("""
ИГРА ОКОНЧЕНА
У Пайти закончились жизни...
""")
print("Ваш счет:", score)
# запуск
game()

Используемые библиотеки

В начале программы подключаются три модуля:

import random
import time
import os

random

Используется для создания случайных пузырей:

size = random.randint(1, 20)

Python выбирает случайное число от 1 до 20.

time

Используется для создания задержки:

time.sleep(1.5)

Это делает анимацию более реалистичной.

os

Используется для очистки экрана:

os.system("cls" if os.name == "nt" else "clear")

Это делает игру аккуратной и понятной.

Функция очистки экрана

def clear():
os.system("cls" if os.name == "nt" else "clear")

Эта функция очищает экран перед выводом новой информации.

Это улучшает внешний вид игры.

Функция intro() — заставка игры

def intro():

Эта функция выводит:

  • название игры;
  • персонажей;
  • правила игры.
input()

Ожидает нажатия Enter, чтобы начать игру.

Функции анимации

В программе используются отдельные функции для отображения событий.

pop_animation()

Отображает момент, когда пузырь лопается:

def pop_animation():

Выводит ASCII-анимацию и делает паузу.

danger_animation()

Показывает опасный пузырь:

def danger_animation():

Используется, когда пузырь наносит урон.

good_animation()

Показывает хороший пузырь:

def good_animation():

Используется, когда игрок получает награду.

great_animation()

Показывает отличный пузырь:

def great_animation():

Используется для лучшего результата.

Главная функция игры

def game():

Это основная функция, которая управляет всей игрой.

Переменные игры

В начале функции создаются переменные:

lives = 5
score = 0
round_num = 1

lives

Количество жизней игрока.

Если жизни закончатся, игра завершится.

score

Количество очков игрока.

Используется для определения победы.

round_num

Номер текущего раунда.

Используется для отображения прогресса.

Главный игровой цикл

while lives > 0:

Этот цикл означает:

Игра продолжается, пока есть жизни.

Генерация пузыря

size = random.randint(1, 20)

Создаётся случайный пузырь.

Размер влияет на результат.

Ввод действия игрока

action = input("Лопнуть пузырь? (да/нет): ").lower()

Игрок может выбрать:

  • да
  • нет

Потеря жизни при попытке

lives -= 1

Каждая попытка стоит одну жизнь.

Это делает игру более сложной.

Использование операторов сравнения

Это самая важная часть программы.

Python сравнивает размер пузыря:

Опасный пузырь

if size <= 5:

Оператор сравнения:

<= означает "меньше или равно"

Результат:

игрок теряет жизнь.

Пустой пузырь

elif size <= 10:

Оператор сравнения:

<= означает "меньше или равно"

Ничего не происходит.

Хороший пузырь

elif size < 15:

Оператор сравнения:

< означает "меньше"

Результат:

score += 1
lives += 1

Игрок получает:

+1 очко
+1 жизнь

Отличный пузырь

else:

Это означает:

если size ≥ 15

Результат:

score += 2
lives += 1

Игрок получает:

+2 очка
+1 жизнь

Проверка победы

if score >= 15:

Оператор сравнения:

= означает "больше или равно"

Если игрок набрал 15 очков — победа.

Проверка поражения

Если жизни закончились:

while lives > 0:

цикл завершится.

И появится сообщение:

ИГРА ОКОНЧЕНА

Запуск программы

В конце программы:

game()

Это запускает игру.

Полный порядок работы программы

  1. Запускается игра
  2. Показывается заставка
  3. Создаются жизни и очки
  4. Появляется случайный пузырь
  5. Игрок выбирает действие
  6. Python сравнивает размер пузыря
  7. Начисляются очки или снимаются жизни
  8. Проверяется победа или поражение
  9. Игра продолжается

Где используются операторы сравнения в python

В программе используются:

size <= 5
size <= 10
size < 15
score >= 15
lives > 0

Это позволяет программе принимать решения.

Итог

В этой программе вы изучили:

  • операторы сравнения в python
  • python логические операторы сравнения
  • использование ==, !=, >, <, <=, >=
  • создание игровой логики
  • использование случайных чисел
  • создание функций
  • создание игрового цикла