Узнайте, как программировать на Python, создав простую игру в кости.
Python — хороший язык для молодых и старых, независимо от того, имеют ли они опыт программирования или нет.
Python — это универсальный язык программирования, который можно использовать для создания настольных приложений, 3D-графики, видеоигр и даже веб-сайтов. Это отличный первый язык программирования, поскольку его легко выучить и он проще, чем сложные языки, такие как C, C++ или Java. Несмотря на это, Python достаточно мощный и надежный для создания сложных приложений, и он используется практически во всех отраслях, где используются компьютеры. Это делает Python хорошим языком для молодых и старых, независимо от того, имеют ли они опыт программирования или нет.
Установка Python
Прежде чем изучать Python, вам может потребоваться его установить.
Linux. Если вы используете Linux, Python уже включен, но убедитесь, что у вас установлен именно Python 3. Чтобы проверить, какая версия установлена, откройте окно терминала и введите:
python --version
Если это покажет, что у вас установлена версия 2 или вообще нет версии, попробуйте вместо этого указать Python 3:
python3 --version
Если эта команда не найдена, вам необходимо установить Python 3 из менеджера пакетов или центра программного обеспечения. Какой менеджер пакетов использует ваш дистрибутив Linux, зависит от дистрибутива. Наиболее распространенными являются dnf в Fedora и apt в Ubuntu. Например, в Fedora вы вводите следующее:
sudo dnf install python3
MacOS. Если вы используете Mac, следуйте инструкциям для Linux, чтобы проверить, установлен ли у вас Python 3. В MacOS нет встроенного менеджера пакетов, поэтому, если Python 3 не найден, установите его с сайта python.org/downloads/mac-osx. Хотя в вашей версии macOS уже может быть установлен Python 2, вам следует изучить Python 3.
Windows Microsoft Windows в настоящее время не поставляется с Python. Установите его с сайта python.org/downloads/windows. Обязательно выберите Добавить Python в PATH в мастере установки. Прочтите мою статью «Как установить Python в Windows», чтобы получить инструкции, специфичные для Microsoft Windows.
Запуск IDE
Для написания программ на Python все, что вам действительно нужно, это текстовый редактор, но удобно иметь интегрированную среду разработки (IDE). IDE объединяет текстовый редактор с некоторыми удобными и полезными функциями Python. IDLE 3 и PyCharm (Community Edition) — два варианта из многих, которые стоит рассмотреть.
ХОЛОСТОЙ ХОД 3
Python поставляется с базовой IDE под названием IDLE.
opensource.com
Он имеет подсветку ключевых слов, помогающую обнаруживать ошибки ввода, подсказки по завершению кода и кнопку «Выполнить» для быстрого и легкого тестирования кода. Чтобы использовать его:
- В Linux или macOS запустите окно терминала и введите idle3.
В Windows запустите Python 3 из меню «Пуск».
- Если вы не видите Python в меню «Пуск», запустите командную строку Windows, введя в меню «Пуск» cmd и введите C:\Windows\py.exe.
- Если это не помогло, попробуйте переустановить Python. Обязательно выберите Добавить Python в PATH в мастере установки. Подробные инструкции см. на docs.python.org/3/using/windows.html.
- Если это по-прежнему не работает, просто используйте Linux. Это бесплатно, и, если вы сохраните файлы Python на флэш-накопителе USB, вам даже не придется устанавливать его, чтобы использовать.
PyCharm Community Edition
PyCharm (Community Edition) IDE — отличная среда разработки Python с открытым исходным кодом. Он имеет подсветку ключевых слов для обнаружения опечаток, завершение кавычек и круглых скобок, чтобы избежать синтаксических ошибок, номера строк (полезно при отладке), маркеры отступов и кнопку «Выполнить» для быстрого и легкого тестирования кода.
Чтобы использовать его:
- Установите PyCharm (Community Edition) IDE. В Linux его проще всего установить с помощью Flatpak. Либо загрузите правильную версию установщика с веб-сайта PyCharm и установите ее вручную. В MacOS или Windows загрузите и запустите установщик с веб-сайта PyCharm.
- Запустите Пичарм.
- Создайте новый проект.
Говорим Python, что делать
Ключевые слова сообщают Python, что вы от него хотите. В новом файле проекта введите это в свою IDE:
print("Hello world.")
- Если вы используете IDLE, перейдите в меню «Выполнить» и выберите опцию «Запустить модуль».
- Если вы используете PyCharm, нажмите кнопку «Выполнить файл» на левой панели кнопок.
opensource.com
Ключевое слово print указывает Python распечатать любой текст, который вы зададите в скобках и кавычках.
Хотя это не очень интересно. По своей сути Python имеет доступ только к базовым ключевым словам, таким как print, help, базовым математическим функциям и т. д.
Вы можете использовать ключевое слово import, чтобы загрузить больше ключевых слов.
Использование модуля черепахи в Python
Turtle — интересный модуль. Введите этот код в свой файл (заменив старый код), а затем запустите его:
import turtle
turtle.begin_fill()
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.end_fill()
Посмотрите, какие фигуры можно нарисовать с помощью модуля черепахи.
Чтобы очистить область рисования черепахи, используйте ключевое слово turtle.clear(). Как вы думаете, что делает ключевое слово turtle.color("blue")?
Продвинутая черепаха
Вы можете попробовать более сложный код для получения аналогичных результатов. Вместо того, чтобы вручную кодировать каждую строку и каждый поворот, вы можете использовать цикл while, сообщая Python сделать это четыре раза: нарисовать линию, а затем повернуть. Python может отслеживать, сколько раз были выполнены эти действия, с помощью переменной, называемой счетчик. Вскоре вы узнаете больше о переменных, а пока посмотрите, сможете ли вы понять, как взаимодействуют счетчик и цикл while .
import turtle as t
import time
t.color("blue")
t.begin_fill()
counter=0
while counter < 4:
t.forward(100)
t.left(90)
counter = counter+1
t.end_fill()
time.sleep(2)
После того как вы запустили свой скрипт, пришло время изучить еще лучший модуль.
Изучаем Python, создавая игру
Чтобы узнать больше о том, как работает Python, и подготовиться к более сложному программированию с графикой, давайте сосредоточимся на игровой логике. В этом уроке мы также узнаем немного о том, как структурированы компьютерные программы, создав текстовую игру, в которой компьютер и игрок бросают виртуальный кубик, и побеждает тот, у кого выпал наибольший результат.
Планирование вашей игры
Прежде чем писать код, важно подумать о том, что вы собираетесь написать. Многие программисты пишут простую документацию прежде приступить к написанию кода, поэтому у них есть цель, к которой они программируют. Вот как могла бы выглядеть программа игры в кости, если вы отправили документацию вместе с игрой:
- Запустите игру в кости и нажмите Return или Enter, чтобы бросить кубик.
- Результаты распечатываются на вашем экране.
- Вам будет предложено выполнить бросок еще раз или выйти.
Это простая игра, но документация многое расскажет вам о том, что вам нужно делать. Например, он сообщает вам, что для написания этой игры вам потребуются следующие компоненты:
- Игрок: Чтобы играть в игру, вам нужен человек.
- AI: Компьютер тоже должен бросить кубик, иначе игроку некому будет выиграть или проиграть.
- Случайное число: обычный шестигранный кубик выдает случайное число от 1 до 6.
- Оператор: Простая математика позволяет сравнить одно число с другим, чтобы определить, какое из них больше.
- Сообщение о победе или проигрыше.
- Предложение сыграть еще раз или выйти.
Создание альфа-версии игры в кости
Лишь немногие программы имеют все свои функции, поэтому первая версия будет реализовывать только основы. Сначала пара определений:
Переменная — это значение, которое может быть изменено, и оно часто используется в Python. Всякий раз, когда вам нужно, чтобы ваша программа что-то «запомнила», вы используете переменную. Фактически почти вся информация, с которой работает код, хранится в переменных. Например, в математическом уравнении x + 5=20 переменной является x, поскольку буква x является заполнителем для значения.
Целое число – это число; оно может быть положительным или отрицательным. Например, 1 и -1 являются целыми числами. Так же как и 14, 21 и даже 10 947.
Переменные в Python легко создавать и с ними легко работать. В этой первоначальной версии игры в кости используются две переменные: player и ai.
Введите следующий код в новый проект под названием dice_alpha:
import random
player = random.randint(1,6)
ai = random.randint(1,6)
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
Запустите игру, чтобы убедиться, что она работает.
Эта базовая версия игры в кости работает очень хорошо. Он достигает основных целей игры, но не очень похож на игру. Игрок никогда не знает, что он выкинул или что выкинул компьютер, и игра заканчивается, даже если игрок захочет сыграть еще раз.
Это часто встречается в первой версии программного обеспечения (называемой альфа-версией). Теперь, когда вы уверены, что сможете выполнить основную часть (бросание кубика), пришло время добавить что-нибудь в программу.
Улучшение игры
Во второй версии (называемой бета-версией) вашей игры несколько улучшений сделают ее более похожей на игру.
1. Опишите результаты
Вместо того, чтобы просто сообщать игрокам, выиграли они или нет, интереснее, если они знают, что выкинули. Попробуйте внести следующие изменения в свой код:
player = random.randint(1,6)
print("You rolled " + player)
ai = random.randint(1,6)
print("The computer rolled " + ai)
Если вы запустите игру сейчас, она вылетит, потому что Python подумает, что вы пытаетесь выполнить математические вычисления. Он думает, что вы пытаетесь добавить буквы «Вы бросили» и любое число, хранящееся в переменной player.
Вы должны указать Python, чтобы он обрабатывал числа в переменных player и ai так, как если бы они были словом в предложении (строкой), а не числом в математическом уравнении (целым числом).
Внесите следующие изменения в свой код:
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolled " + str(ai) )
Запустите игру сейчас, чтобы увидеть результат.
2. Замедлите темп
Компьютеры быстрые. Люди иногда могут быть быстрыми, но в играх часто лучше создать интригу. Вы можете использовать функцию time Python, чтобы замедлить игру во время напряженных моментов.
import random
import time
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(player) )
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
Запустите игру, чтобы проверить изменения.
3. Обнаружение связей
Если вы поиграете в свою игру достаточно долго, вы обнаружите, что, хотя кажется, что ваша игра работает правильно, на самом деле в ней есть ошибка: она не знает, что делать, когда игрок и компьютер выбрасывают одно и то же число.
Чтобы проверить, равно ли значение другому значению, Python использует ==. Это два знака равенства, а не один. Если вы используете только одну переменную, Python подумает, что вы пытаетесь создать новую переменную, но на самом деле вы пытаетесь выполнить математические действия.
Если вы хотите иметь более двух вариантов (например, выиграть или проиграть), вы можете использовать ключевое слово Python elif, которое означает иначе, если. Это позволяет вашему коду проверять, верен ли какой-либо из некоторых результатов, а не просто проверять, является ли один истинным.
Измените свой код следующим образом:
if player > ai :
print("You win") # notice indentation
elif player == ai:
print("Tie game.")
else:
print("You lose")
Запустите игру несколько раз, чтобы попытаться сравнять счет компьютера.
Программирование финальной версии
Бета-версия вашей игры в кости функциональна и больше похожа на игру, чем на альфа-версию. Для финальной версии создайте свою первую функцию Python.
Функция — это набор кода, который вы можете вызывать как отдельную единицу. Функции важны, поскольку в большинстве приложений содержится много кода, но не весь этот код должен выполняться одновременно. Функции позволяют запускать приложение и контролировать, что и когда происходит.
Измените свой код на это:
import random
import time
def dice():
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(ai) )
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
print("Quit? Y/N")
continue = input()
if continue == "Y" or continue == "y":
exit()
elif continue == "N" or continue == "n":
pass
else:
print("I did not understand that. Playing again.")
Эта версия игры спрашивает игрока, хочет ли он выйти из игры после игры. Если они отвечают Y или y, вызывается функция Python exit и игра завершается.
Что еще более важно, вы создали собственную функцию под названием dice. Функция игры в кости не запускается сразу. Фактически, если вы попробуете свою игру на этом этапе, она не вылетит, но и не запустится. Чтобы функция dice действительно что-то сделала, вам нужно вызвать ее в своем коде.
Добавьте этот цикл в конец существующего кода. Первые две строки предназначены только для контекста и для того, чтобы подчеркнуть, что имеет отступ, а что нет. Обратите особое внимание на отступы.
else:
print("I did not understand that. Playing again.")
# main loop
while True:
print("Press return to roll your die.")
roll = input()
dice()
Блок кода while True запускается первым. Поскольку True всегда истинно по определению, этот блок кода всегда выполняется до тех пор, пока Python не прикажет ему завершить работу.
Блок кода while True представляет собой цикл. Сначала он предлагает пользователю начать игру, а затем вызывает функцию dice. Так начинается игра. Когда функция игры в кости завершается, ваш цикл либо запускается снова, либо завершается, в зависимости от того, как игрок ответил на подсказку.
Использование цикла для запуска программы — наиболее распространенный способ написания кода приложения. Цикл гарантирует, что приложение остается открытым достаточно долго, чтобы пользователь компьютера мог использовать функции внутри приложения.
Следующие шаги
Теперь вы знаете основы программирования на Python. В следующей статье этой серии описывается, как написать видеоигру с помощью PyGame — модуля, который имеет больше возможностей, чем черепаха, но при этом намного сложнее.
Эта статья была первоначально опубликована в октябре 2017 года и обновлена автором.