Читать книгу «MINI DOOM Современный Python через игру Том 1 Учимся держать оружие» онлайн полностью📖 — Алексей Примак — MyBook.

Цветные врезки

По тексту разбросаны цветные врезки четырёх видов. Вот они все.











Что понадобится

— Компьютер с Windows, macOS или Linux. Игра работает везде, где есть Python.

— Python 3.15 и менеджер uv — как их поставить, расскажу в главе 1.

— Редактор Visual Studio Code с расширениями Python и Ruff. Можно и любой другой, но объяснять я буду на нём.

— Две библиотеки: numpy и pygame-ce. Их uv поставит одной командой в главе 9.

— Желание разобраться. Серьёзно, это важнее всего остального.

Мышь тоже пригодится: в Doom без мыши играть можно, но это как есть суп вилкой. И колонки — в главе 26 игра заговорит.

Архив примеров

Весь код из книги лежит на GitHub: https://github.com/RushSex/MiniDoom-Python. Скачать его можно одним архивом — зелёная кнопка Code, затем Download ZIP — или командой git clone; дальше в книге я называю его просто архивом примеров. В папке examples там по папке на каждую главу — от ch01 до ch29, — и в каждой папке программы в том виде, в каком они должны быть в конце главы. Готовая игра целиком — в папке minidoom: uv sync, uv run main.py — и вперёд.

Но не превращай архив в копипасту. Код, набранный своими пальцами, запоминается в десять раз лучше, а опечатки, которые ты при этом наделаешь, научат читать трейсбеки. Это не баг обучения, это его фича.

Поехали

Хватит предисловий. Ставим Python, пишем первую программу и заставляем компьютер сказать «Hello, Doom!». Переворачивай страницу.

Пять томов

Книга «MINI DOOM. Современный Python через игру» выходит в пяти томах — по одному на каждую часть. Каждый заканчивается работающей программой, и в каждом свои ответы, глоссарий и указатель.

— Том 1. Учимся держать оружие — главы 1–8: основы Python в консоли, от первой программы до ссылок и ресурсов.

— Том 2. Окно в ад — главы 9–13: окно pygame-ce, пиксели на numpy, игровой цикл, клавиатура и мышь, свой шрифт.

— Том 3. Третье измерение — главы 14–19: рейкастинг, стены, текстуры, пол и свет, профилировщик, двери.

— Том 4. Здесь кто-то есть — главы 20–25: спрайты, монстры, оружие, конечные автоматы, поиск пути, смерть.

— Том 5. Шум, свет и финальные титры — главы 26–29: звук, экраны, уровни в файлах, uv, ruff, mypy и pytest.

Все исходники серии — на GitHub: https://github.com/RushSex/MiniDoom-Python. Папка examples/chNN для каждой главы, готовая игра — папка minidoom. Там же README: uv sync, uv run main.py — и вперёд.

Часть I. Учимся держать оружие

Прежде чем стрелять по демонам, надо научиться держать оружие. В этой части мы освоим основы Python в самой простой обстановке — в окне терминала. Никакой графики, никаких окон, только ты, код и интерпретатор. Зато к концу части у тебя будет консольный рогалик: герой бегает по карте, монстры бродят вокруг, а код устроен так, как пишут настоящие программисты.

Глава 1. Hello, Doom

Любое путешествие начинается с первого шага, а любой программист — с программы, которая печатает «Hello, World!». Мы поступим так же, только поздороваемся не с миром, а с Doom. В этой главе ты поставишь Python и редактор, создашь первый проект, настроишь его как профи, нарисуешь титульный экран игры буквами и, что не менее важно, научишься не бояться, когда Python начинает ругаться.

Что такое программа и зачем нужен интерпретатор

Процессор твоего компьютера — тупой, но очень быстрый исполнитель. Он понимает только машинный код: длинные последовательности чисел вроде «возьми число отсюда, прибавь вот это, положи туда». Писать так руками можно, люди так и делали в пятидесятых, но удовольствия примерно как от заполнения налоговой декларации на латыни.

Поэтому придумали языки программирования. Ты пишешь текст, понятный человеку, а специальная программа переводит его для машины. В языках вроде C++ переводчик — компилятор — переводит весь текст заранее и выдаёт готовый .exe. В Python всё устроено иначе: переводчик сидит рядом с поваром и читает ему рецепт вслух, строчка за строчкой, прямо во время готовки. Такой переводчик называется интерпретатор, и он тоже называется python.

Если заглянуть под капот, интерпретатор сначала быстро переводит твой файл в промежуточный байт-код — компактные команды для виртуальной машины Python — и потом выполняет их одну за другой. Весь путь показан на рисунке 1.1.




Рисунок 1.1 — Путь от текста программы до результата: перевод и выполнение идут сразу, при каждом запуске


У такого подхода есть плюс и минус, и оба нам важны. Плюс: написал строчку — сразу запустил, никакой долгой сборки. Минус: многие ошибки интерпретатор замечает, только когда до них дойдёт. Опечатка в пятой строке не помешает выполниться первым четырём, а программа упадёт посреди работы. В C++ такую ошибку поймал бы компилятор до запуска. Поэтому в Python мы позовём на помощь двух сторожей — линтер и проверку типов. Знакомство с ними — в этой же главе.



...
6