Перейти к содержанию

Создаём текстовую игру-приключение

Начало урока

Создаём текстовую игру-приключение

Превращаем слова в миры: комнаты, инвентарь и выбор, который важен

Главная идея: Текстовое приключение -- это игра, состоящая только из слов. Компьютер описывает комнату, ты печатаешь, куда хочешь пойти, и история ветвится в зависимости от твоего выбора. В этом проекте мы склеиваем вместе всё, что уже выучили: input, if / elif / else, циклы, списки, словари и функции -- чтобы построить одну небольшую законченную игру.
К концу урока ты сможешь:
  • хранить карту комнат в словаре,
  • показывать комнату и читать ход игрока через input,
  • переходить из комнаты в комнату с помощью if / elif / else,
  • вести инвентарь в списке,
  • запускать игру циклом while и завершать её условиями победы / поражения,
  • наводить порядок в коде с помощью маленьких функций.

1. Что такое текстовое приключение?

Представь книгу-игру, где ты сам выбираешь путь. Ты читаешь страницу, а там написано: «чтобы открыть дверь, перейди на страницу 12; чтобы убежать, перейди на страницу 30». Ты решаешь, что будет дальше. Текстовая игра-приключение устроена так же, только страницы хранит и листает компьютер.

У каждого текстового приключения есть три простые части:

  • Комнаты -- места, где ты можешь находиться, у каждого есть описание и набор выходов.
  • Игрок -- где ты сейчас и что несёшь с собой.
  • Цикл -- показать комнату, спросить ход, отреагировать и повторять, пока не победишь или не проиграешь.

Мы построим это по кусочкам. Хорошая новость: ты уже знаешь каждый нужный инструмент. Мы просто соединяем их вместе.

2. Карта: комнаты в словаре

Словарь хранит вещи по имени. Это идеально для карты: у каждой комнаты есть имя, описание и список выходов. Мы можем даже вложить маленький словарь выходов внутрь каждой комнаты.

rooms = {
    "Hall": {
        "desc": "You are in a bright entrance hall.",
        "exits": {"north": "Kitchen", "east": "Library"}
    },
    "Kitchen": {
        "desc": "A warm kitchen. Something smells nice.",
        "exits": {"south": "Hall"}
    },
    "Library": {
        "desc": "Tall shelves full of dusty books.",
        "exits": {"west": "Hall"}
    }
}

Читай это как оглавление. rooms["Hall"] даёт сведения о зале. rooms["Hall"]["exits"] даёт только его выходы: {"north": "Kitchen", "east": "Library"}. Значит, стоя в зале и идя на север, ты попадаешь на кухню.

Почему словарь, а не список? Со списком ты искал бы комнаты по номеру (rooms[0]), и в них легко запутаться. Со словарём ты ищешь их по настоящему имени (rooms["Kitchen"]), и это читается как обычный текст.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя