Главная страница

Учим Python, делая крутые игры 2018. Invent your owncomputer gameswith python


Скачать 6.56 Mb.
НазваниеInvent your owncomputer gameswith python
Дата10.12.2022
Размер6.56 Mb.
Формат файлаpdf
Имя файлаУчим Python, делая крутые игры 2018.pdf
ТипДокументы
#837554
страница4 из 39
1   2   3   4   5   6   7   8   9   ...   39
19
• В главе 14 «Шифр Цезаря» вы создадите простую программу шиф- рования, которая позволяет создавать и декодировать секретные со- общения.
• В главе 15 «Игра “Реверси”» вы запрограммируете передовую игру типа «Реверси» «человек против компьютера», в которой будет почти непревзойденный противник искусственного интеллекта.

Глава 16 «Искусственный интеллект игры “Реверси”» расширяет игру из главы 15, реализуя несколько искусственных интеллектов, которые конкурируют в играх типа «человек против компьютера».

Глава 17 «Создание графики» представляет модуль pygame и показыва- ет, как использовать его для рисования двухмерной графики.

Глава 18 «Анимированная графика» показывает, как сделать из графи- ки анимацию с помощью модуля pygame.

В главе 19 «Обнаружение столкновений» вы узнаете, как определять, когда объекты сталкиваются друг с другом в двухмерных играх.
• В главе 20 «Использование звуков и изображений» вы улучшите свои простые игры на основе модуля pygame, добавив звуки и изображения.
• Глава 21 «Игра “Ловкач” с графикой и звуком» объединяет концепции в главах с 17 по 20, чтобы сделать анимированную игру под названием
«Ловкач».
Как пользоваться этой книгой
Большинство глав в этой книге начинаются с примера запуска програм- мы, разбор которой затем описан в главе. Этот пример показывает, как вы- глядит вывод программы после ее запуска. Полужирным шрифтом выделены данные, которые вводит пользователь. Я рекомендую вам вводить код для каждой программы в редакторе файлов самостоятельно, а не загружать или копировать и вставлять его. Если вы потратите время на написание кода, то усвоите информацию лучше.
Номера строк и отступов
При вводе исходного кода из этой книги не вводите номера строк в начале каждой строки. Например, если вы видите следующую строку кода, вам не нужно вводить 9. с левой стороны или ставить пробел сразу после него.
9. number = random.randint(1, 20)
Вы вводите только это:
number = random.randint(1, 20)

20
Введение
Эти числа приведены только для того, чтобы в книге автор мог ссы- латься на конкретные строки в программе. Они не являются реальной ча- стью кода. Помимо номеров строк, вводите код точно так, как он пока- зан в этой книге. Обратите внимание, что некоторые строки кода имеют отступы в четыре, восемь или более пробелов. Пробелы в начале строки меняют то, как Python интерпретирует инструкции, поэтому их наличие очень важно.
Давайте посмотрим на пример.
while guesses < 10:
••••if number == 42:
••••••••print('Привет')
Отступы здесь отмечены черными кружками (•), чтобы вы могли их ви- деть.
В первой строке отступов нет, вторая строка содержит четыре пробела, а в третьей строке — отступ в восемь пробелов. Хоть в примерах в этой кни- ге нет черных кружков для обозначения пробелов, каждый символ в сре- де разработки имеет одинаковую ширину, поэтому вы можете подсчитать количество пробелов, посчитав количество символов в строке выше или ниже.
Длинные строки кода
Некоторые инструкции кода слишком длинные, чтобы уместиться в одну строку в книге, и потому переносятся на следующую. Но строка на вашем компьютере будет переноситься иначе (в зависимости от разрешения мони- тора), поэтому вводите все на одной строке, не нажимая клавишу Enter. Вы можете узнать, когда начинается новая инструкция, просматривая номера строк слева.
У следующего примера только две инструкции:
1. print('Это первая инструкция!xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx')
2. print('Это вторая инструкция, а не третья.')
Первая инструкция переносится на вторую строку на странице, но вто- рая строка не имеет порядкового номера, поэтому она относится к первой строке кода.

Введение
21
Загрузка и установка Python
Вам нужно будет установить на ваш компьютер программное обеспече- ние, которое называется интерпретатором Python. Программа понимает инструкции, которые вы пишете на Python. С этого момента я буду ссылаться на программное обеспечение интерпретации Python просто как на Python.
В этом разделе я покажу, как скачать и установить Python 3 — в частно- сти, Python 3.6.2 для Windows, macOS или Ubuntu. Это актуальная версия на момент написания книги. На момент чтения книги версия может быть иной, следовательно, ваши шаги могут немного отличаться. Также важно знать, что есть значительная разница между Python 2 и Python 3. Программы в этой книге основаны на версии Python 3, и вы получите сообщение об ошибке, если попытаетесь запустить их в среде Python 2.
Это настолько важно, что автор добавил мультяшного пингвина, чтобы напомнить вам об этом.
Для операционной системы Windows скачайте файл по ссылке Windows
x86 web-based installer на странице www.python.org/downloads/release/
python-362/ и дважды щелкните по нему мышью. Возможно, вам потребует- ся запустить данный файл от имени администратора.
Следуйте инструкциям, которые установщик отображает на экране, что- бы инсталлировать Python, как указано ниже.
1. Нажмите кнопку Customize Installation
(Настроить установку).
2. Нажмите кнопку
Next (Далее).
3. Установите флажок Install for All Users
(Установить для всех пользователей) и ука- жите путь установки C:\Python36. Нажми- те кнопку Install (Установить).
4. Нажмите кнопку
Close (Закрыть).
В операционной системе macOS скачайте файл по ссылке Mac OS X 64-bit/32-bit installer на стра- нице www.python.org/downloads/release/python-362/ и дважды щелкните по нему мышью.
Следуйте инструкциям установщика на экране, чтобы установить Python, как указано ниже.
1. Если отобразилось предупреждение, что файл Python.mpkg не может быть открыт, потому что принадлежит неустановленному разработ- чику, то, нажав и удерживая клавишу Ctrl, щелкните по файлу Python.
mpkg правой кнопкой мыши, а затем в появившемся меню выберите команду Открыть (Open). Возможно, вам потребуется ввести пароль администратора для вашего компьютера.
Make sure you’re using Python 3, not Python 2!
УБЕ ДИТЕСЬ,
ЧТО ИСПО ЛЬЗУЕТЕ
PY THON 3,
А НЕ PY THON 2!

22
Введение
2. Нажмите кнопку Continue (Продолжить) в области приветствия и щелкните мышью по кнопке Agree (Согласен), чтобы принять усло- вия лицензии.
3. Выберите диск Macintosh HD (может называться иначе на вашем компьютере) и нажмите кнопку Install (Установить).
Если вы используете операционную систему Ubuntu, вы можете устано- вить Python из центра приложений Ubuntu, выполнив следующие шаги:
1. Откройте центр приложений Ubuntu.
2. Введите
Python в поле поиска в правом верхнем углу окна.
3. Выберите пункт
IDLE (Python 3.6.2 GUI 64 bit).
4. Нажмите кнопку Install (Установить). Возможно, вам потребуется ввести пароль администратора для вашего компьютера.
Если вышеуказанные шаги не работают, вы можете найти альтернатив- ные инструкции по установке среды разработки Python на странице www.
nostarch.com/inventwithpython/.
Запуск интерактивной среды разработки
Аббревиатура IDLE означает Interactive DeveLopment Environment — ин- терактивная среда разработки. IDLE — это нечто вроде текстового процессо- ра для написания кода программ Python.
Рис. 1.
IDLE — интерактивная среда разработки
Запуск среды разработки отличается в каждой операционной системе:
• В операционной системе Windows откройте меню Пуск (Start), набе- рите IDLE и выберите пункт IDLE (Python 3.6 32-bit).
• В macOS запустите приложение Finder и щелкните мышью по пун- кту Приложения (Applications). Дважды щелкните мышью по папке
Python 3.x, а затем дважды щелкните мышью по значку IDLE.

Введение
23
• В операционной системе Ubuntu и других дистрибутивах Linux от- кройте окно командной строки и введите idle3. Вы также можете нажать кнопку Приложения (Applications) в верхней части экра- на. Затем последовательно выберите пункты Программирование
(Programming) и IDLE 3.
При запуске IDLE откроется окно интерактивной среды разработки, как показано на рис. 1.
Приглашение >>> в окне интерактивной оболочки позволяет вам вводить отдельные инструкции, которые Python будет выполнять сразу. После вы- полнения инструкции вы получите новое приглашение >>> для ввода следу- ющей.
Поиск справочной документации
Вы можете найти файлы с исходным кодом примеров и другие ресурсы для этой книги на странице eksmo.ru/files/python_games_sweigart.zip. Если вы хотите задать вопросы, связанные с этой книгой, вы можете отправить свои вопросы на английском языке автору по адресу al@inventwithpython.com.
Прежде чем задавать какие-либо вопросы, убедитесь, что вы делаете сле- дующее:
• Если вы ввели код программы из этой книги, но получили ошибку, перед тем, как задать свой вопрос, проверьте опечатки с помощью ин- струмента онлайн-анализа на сайте inventwithpython.com/diff/. Ско- пируйте и вставьте свой код в текстовое поле, чтобы найти различия между кодом из книги и вашим.

Погуглите, чтобы узнать, спрашивал ли кто-то еще (и получал ли от- вет) на ваш вопрос. Имейте в виду, что чем понятнее вы будете фор- мулировать свои вопросы, тем быстрее другие смогут вам помочь.
Когда задаете вопросы, делайте следующее:
• Расскажите, что вы пытались сделать, когда получили ошибку. Это позволит быстрее определить, где вы сбились с пути.

Скопируйте и вставьте полное сообщение об ошибке и код.

Укажите название используемой операционной системы и ее версию.
• Расскажите, что вы уже пытались сделать, чтобы решить проблему.
Это говорит о том, что вы уже проделали какую-то работу, чтобы по- пытаться разобраться самостоятельно.

Будьте вежливы. Не требуйте скорой помощи и не давите на собесед- ников, чтобы те среагировали моментально.
Теперь, когда вы знаете, как обратиться за помощью, вы научитесь программировать свои собственные компьютерные игры в кратчайшие сроки!

24
Глава 1
1
ИНТЕРАКТИВНАЯ СРЕДА РАЗРАБОТКИ
Прежде чем приступить к разработке игр, вам нужно изучить несколько ба- зовых концепций программирования.
Эту главу вы начнете с того, что научи- тесь использовать интерактивную среду разработки
Python и выполнять базовые арифметические задачи.
В ЭТОЙ ГЛАВЕ РАССМАТРИВАЮТСЯ СЛЕДУЮЩИЕ ТЕМЫ:
• Операторы
• Целые числа и числа с плавающей запятой
• Значения
• Выражения
• Синтаксические ошибки в коде
• Сохранение значений в переменных
Немного арифметики
Запустите IDLE, выполнив указания из раздела «Запуск интерактивной среды разработки» во введении. На первых порах вы будете использовать
Python для решения простых арифметических задач. IDLE может быть ис- пользована как калькулятор. Введите 2 + 2 в интерактивной оболочке по- сле символов приглашения, >>>, и нажмите клавишу Enter. (На некоторых клавиатурах эта клавиша обозначена как Return.) На рис. 1.1 показано, как

Интерактивная среда разработки
25
эта арифметическая задача выглядит в интерактивной оболочке — обратите внимание, что получен ответ в виде числа 4.
Рис. 1.1.
Ввод 2 + 2 в интерактивной оболочке
Эта арифметическая задача — простая инструкция программирования.
Символ «плюс» (+ ) указывает компьютеру сложить 2 и 2. Компьютер выпол- няет операцию и отвечает числом 4 в следующей строке. Таблица 1.1 содер- жит доступные в Python арифметические операторы.
Таблица 1.1.
Арифметические операторы
Оператор
Операция
+
Прибавить
-
Вычесть
*
Умножить
/
Разделить
Символ минус (- ) вычитает числа, звездочка (* ) умножает, а косая черта
(/ ) делит. При использовании таким образом, знаки +, -, * и / называются опе-
раторами . Операторы сообщают Python, какую операцию необходимо про- извести над числами.
Целые числа и числа с плавающей запятой
Целые числа (на английском int) представляют собой числа, такие как 4,
99
или 0. Числа с плавающей запятой (на английском float) представляют со- бой дроби или числа с десятичными точками, такие как 3.5, 42.1 и 5.0. Для
Python число 5 — целое, а 5.0 — число с плавающей запятой.
Эти числа называют значениями . Позже вы узнаете о других видах зна- чений помимо чисел. В арифметической задаче, введенной в интерактивной оболочке, 2 и 2 — это целые (или целочисленные) значения.

26
Глава 1
Выражения
Арифметическая задача 2 + 2 — пример выражения . Как демонстриру- ет рис. 1.2, выражения состоят из значений (чисел), связанных между собой с помощью операторов (арифмети- ческих символов), что создает новое значение, которое может быть исполь- зовано в коде. Компьютер способен вычислить значения миллиардов вы- ражений в секунду.
Введите следующие выражения в интерактивной оболочке, нажимая клавишу Enter после каждой строки.
>>>
2+2+2+2+2
10
>>>
8*6
48
>>>
10-5+6
11
>>>
2 + 2
4
Все эти выражения выглядят как обычные арифметические уравнения, но обратите внимание на пробелы в примере 2 + 2. В Python вы можете по- ставить любое количество пробелов между значениями и операторами. Тем не менее вы всегда должны начинать инструкцию в начале строки без про- белов при вводе их в интерактивной оболочке.
Вычисление выражений
Когда среда вычисляет выражение 10 + 5 и возвращает значение 15, это значит, что он его вычислил. Вычисление выражения сводит его к единому значению, так же как и решение арифметической задачи сводит ее к един- ственному числу — ответу. Например, два выражения 10 + 5 и 10 + 3 + 2 вы- числяются с результатом 15.
Когда Python вычисляет выражение, он придерживается того же порядка арифметических операций , какому вас научили в школе.
2 + 2
Оператор
Выражение
Значение
Значение
Рис. 1.2.
Выражение, состоящее из значений и операторов

Интерактивная среда разработки
27
Правила следующие:

Сначала вычисляются части выражения внутри круглых скобок .

Умножение и деление выполняются перед сложением и вычитанием.

Порядок действий слева направо.
Выражение 1 + 2 * 3 + 4 равно 11, а не 13, потому что сначала выполняется умножение 2 * 3. Если бы выражение выглядело как (1 + 2) * (3 + 4), оно бы равнялось 21, потому что части (1 + 2) и (3 + 4) находятся внутри скобок и вычисляются перед умножением.
Выражения могут быть любого размера, и Python вычислит значение каждого из них. Даже одиночные цифры — это выражения. Например, вы- ражение 15 является выражением со значением 15. Выражение 8 * 3 / 2 + 2 +
7 – 9
равняется значению 12.0 после следующих вычислений:
8 * 3
/ 2 + 2 + 7 - 9 24 / 2
+ 2 + 7 - 9 12.0 + 2
+ 7 - 9 14.0 + 7
- 9 21.0 - 9 12.0
Несмотря на то что компьютер выполняет все эти шаги, вы не видите их в интерактивной оболочке . Интерактивная среда разработки показывает вам только результат.
>>>
8 * 3 / 2 + 2 + 7 - 9
12.0
Обратите внимание, что выражения с оператором (/) деления Python в итоге приводит к числу с плавающей запятой ; Например, 24 / 2 вычисля- ется как 12.0. Математические операции хотя бы с одним значением с пла- вающей запятой так же записываются и в дальнейшем, поэтому 12.0 + 2 вы- числяется как 14.0.
Синтаксические ошибки
Если в интерактивной оболочке вы напишете 5 + и нажмете клавишу
Enter, то получите следующее сообщение об ошибке :

28
Глава 1
>>>
5 +
SyntaxError: invalid syntax
Эта ошибка произошла потому, что 5 + не является выражением. Выра- жения состоят из значений, соединенных операторами. В данном случае опе- ратор сложения + подразумевает наличие значений с двух сторон. Сообщение об ошибке появляется, когда ожидаемое значение отсутствует.
«Синтаксическая ошибка» означает, что Python не понимает инструкцию, потому что вы задали ее неверно. При написании программ важно не только давать инструкции компьютеру, но и знать, как делать это правильно.
Впрочем, не переживайте из-за ошибок в коде. Ошибки не нанесут вреда вашему компьютеру. Просто правильно перепишите инструкцию в интерак- тивной оболочке после следующего приглашения >>>.
Сохранение значений в переменных
Вы можете использовать полученные значения выражений, сохраняя их в переменных . Для простоты можете представить, что переменная — это такая
«коробка», в которой вы можете хранить значения. Для сохранения значения выражения в переменной используйте инструкцию присваивания. Введите имя переменной, затем знак равенства (= ), который называется оператором
присваивания, и затем значение. Например, введите в интерактивной оболоч- ке следующую команду:
>>>
spam = 15
>>>
В «коробке» переменной spam теперь хранится значение 15, как показано на рис. 1.3.
15
spam
Рис. 1.3.
Переменные подобны «коробкам», которые могут содержать значения

Интерактивная среда разработки
29
Когда вы нажмете клавишу Enter, вы ничего не получите в ответ. Вы уже знаете, что если Python не выдает сообщение об ошибке, то он успешно вы- полнил введенную инструкцию. Появится приглашение >>> для ввода следу- ющей инструкции.
В отличие от выражений, которые мы рассмотрели выше, инструкция присваивания является предписанием. Предписания не производят числен- ных вычислений и, таким образом, не возвращают значения. Вот почему на следующей строке IDLE после spam = 15 нет значения. Если вы путаетесь, ка- кие инструкции являются выражениями, а какие предписаниями, помните, что для каждого выражения Python вычисляет значение. Таким образом, ин- струкции других типов являются предписаниями.
Переменные хранят значения, а не выражения. Например, рассмотрим выражения spam = 10 + 5 и spam = 10 + 7 — 2. Они оба равны 15. Конечный результат тот же — обе инструкции присваивания сохраняют значение 15 в переменной spam. Подходящее имя переменной описывает содержащиеся в нем данные. Представьте, что вы переехали в новый дом и пометили все ваши коробки как «Вещи». Так вы никогда ничего не найдете! Имена пере- менных spam, eggs и bacon — это примеры имен, используемых для переменных в этой книге.
Python создает переменную при первом ее использовании в инструкции присваивания. Чтобы проверить, какое значение находится в переменной, введите ее имя в интерактивной оболочке.
>>>
1   2   3   4   5   6   7   8   9   ...   39


написать администратору сайта