Победа и новый старт
Заканчиваем аркаду и даём игроку начать заново.

Цель урока: Сыграть в законченную игру и изменить одно правило.
Arcade запускается на компьютере. Первый урок показывает основу игрового файла; далее это фрагменты полной игры. Открой полный код и меняй в нём нужные строки. Кнопка онлайн IDE для этого проекта не используется.
Шаг 1 · Проверь цель
После десяти пойманных звёзд игра переходит в состояние won.
GOAL = 10if self.lives <= 0: self.state = "lost"elif self.score >= GOAL: self.state = "won"После 10 звёзд появляется сообщение «ПОБЕДА!».
Что происходит в коде
- Сначала проверяем проигрыш — жизни закончились.
- elif проверяет победу, если проигрыша нет.
- state = won сообщает on_draw(), какой экран показать.
Шаг 2 · Начни новую попытку
Клавиша R вызывает функцию, которая сбрасывает всё игровое состояние.
def restart(self): self.ship_x = WIDTH / 2 self.drops = [] self.score = 0 self.lives = 3 self.state = "playing"def on_key_press(self, key, modifiers): if key == arcade.key.R: self.restart()Корабль снова в центре, счёт 0, жизни 3, можно играть заново.
Что происходит в коде
- restart возвращает начальные значения; в полном файле она также сбрасывает клавиши и таймер.
- Проверка key == arcade.key.R узнаёт кнопку R.
- self.restart() вызывает функцию, и новый раунд начинается без закрытия окна.
Попробуй сам
- Победи, собрав 10 звёзд. Нажми R и начни заново.
- Поменяй GOAL на 5 и сравни длительность игры.
- Придумай новое правило: например, особая синяя звезда даёт два очка.
Меняй одну строчку за раз, сохраняй файл и запускай игру на компьютере снова.
Как это работает в полной игре
Теперь все части работают вместе: окно рисует игру, клавиши двигают корабль, предметы падают, столкновения меняют счёт и жизни, а R перезапускает раунд.
Скачать проект ArcadeЗаметка для преподавателя
Попросите детей в конце занятия назвать, в каком методе происходит рисование, в каком — движение, а в каком — реакция на клавиши. Это и есть главная карта игры.