В этой практике вам будет предложено сделать вариацию игры "Camel", которую впервые опубликовали в книге More BASIC Computer Games в 1979 году.
Эта практика не только будет по циклам, но и включать в себя раздел "Библиотеки" и использовать библиотеку random.
Даже если тематика привязана в примере к конкретной игре, никто не запрещает вам включить фантазию и сделать по любой дрйгой теме (звездные войны, world of warcraft, властелин колец, Гарри Поттер и другие). Проявите свою фантазию!
Как вы думаете, что плохого в использовании вложенных циклов, и что нужно делать, чтобы их избегать? Когда вложенные циклы необходимы? Приведите пример
Когда стоит использовать цикл while с переменной счетчиком? Что вообще такое переменная-счетчик? (Подумайте сами)
Как избежать бесконечного цикла while?
Объясните разницу между break и continue
Как влияет break на else в конструкции цикла?
Что произойдет, если в цикле while переменную-счетчик увеличить до значения, превышающего диапазон int в Python?
Помните, что полезно вставлять пустые строки между логическими группами кода в вашей программе. Например, добавьте пустую строку после инструкций и между каждой командой пользователя.
Считается более правильным стилем использовать while not done: вместо while done == False:
Чтобы избежать неправильных комбинаций сообщений, таких как вывод “Вы умерли от жажды.” и “Вы нашли оазис!” в одном ходе, используйте оператор and. Например, if not done and thirst > 4:.
Вы можете модифицировать и добавлять в лабораторную работу. Попробуйте поиграть с друзьями и семьёй.
Создайте новую программу и выведите инструкции на экран. Используйте несколько операторов print. Не используйте один оператор print с множеством символов \n, чтобы не выводить всё на одной строке.
Добро пожаловать в игру Верблюд!
Вы украли верблюда, чтобы пересечь великую пустыню Моби.
Туземцы хотят вернуть своего верблюда и преследуют вас! Пройдите через пустыню и обгоните туземцев.
Создайте булеву переменную с именем done и установите её значение в False.
Создайте цикл while, который будет повторяться, пока done равно False
Внутри цикла выведите следующее:
A. Выпить из фляги.
B. Ехать вперёд на умеренной скорости.
C. Ехать вперёд на полной скорости.
D. Остановиться на ночь.
E. Проверить статус.
Q. Выйти из игры.
Попросите пользователя сделать выбор. Убедитесь, что добавили пробел перед кавычками, чтобы ввод пользователя не примыкал к тексту.
Если пользователь выбрал Q , установите значение done в True. Используя user_choice.upper(), а не просто user_choice, вы можете сделать выбор нечувствительным к регистру.
Проверьте и убедитесь, что вы можете выйти из игры.
Перед основным циклом программы создайте переменные для пройденного расстояния, уровня жажды и усталости верблюда. Установите их в ноль.
Создайте переменную для расстояния, которое прошли туземцы, и установите её в -20 (20 миль назад).
Создайте и установите начальное количество напитков во фляге.
Добавьте elif в основной цикл программы, чтобы проверить, хочет ли пользователь узнать статус. Если да, выведите что-то вроде:
Пройдено миль: 0
Напитков во фляге: 3
Туземцы находятся на расстоянии 10 миль.
Добавьте elif, чтобы обработать случай, когда пользователь хочет остановиться на ночь. Если он это сделает, сбросьте усталость верблюда до нуля. Выведите сообщение о том, что верблюд доволен, и передвиньте туземцев на случайное расстояние от 7 до 14 миль.
Добавьте elif, чтобы обработать случай, когда пользователь хочет двигаться на полной скорости. Если это так, передвигайтесь на случайное расстояние от 10 до 20 миль включительно. Выведите количество миль, которое пользователь проехал. Увеличьте жажду на 1, усталость верблюда на случайное число от 1 до 3. Туземцы должны передвигаться на 7-14 миль.
Добавьте elif, чтобы обработать случай, когда пользователь хочет двигаться на умеренной скорости. Если это так, передвигайтесь на случайное расстояние от 5 до 12 миль включительно. Выведите количество миль, которое пользователь проехал. Увеличьте жажду на 1, усталость верблюда на 1. Туземцы должны передвигаться на 7-14 миль.
Добавьте elif, чтобы обработать случай, когда пользователь хочет выпить из фляги. Если напитки есть, уменьшите количество на 1 и сбросьте жажду игрока до нуля. В противном случае выведите ошибку.
В цикле выведите сообщение "Вы испытываете жажду.", если жажда пользователя больше 4.
Выведите "Вы умерли от жажды!", если жажда пользователя больше 6. Установите done в True. Убедитесь, что программа не выводит оба сообщения "Вы испытываете жажду." и "Вы умерли от жажды!" одновременно, используйте elif где это необходимо.
Выведите "Ваш верблюд устал.", если усталость верблюда больше 5.
Выведите "Ваш верблюд умер.", если усталость верблюда больше 8. Как и в предыдущих шагах, выведите одно сообщение или другое. Важно включить проверку с переменной `done`, чтобы не выводить сообщение о том, что верблюд устал, если игрок уже умер от жажды.
Если туземцы догнали игрока, выведите сообщение, что они поймали его, и завершите игру.
В противном случае, если туземцы находятся на расстоянии менее 15 миль, выведите "Туземцы приближаются!".
Если игрок проехал 200 миль через пустыню, выведите, что он выиграл, и завершите игру. Убедитесь, что игрок не умер до того, как объявить его победителем.
Добавьте вероятность 1 к 20 того, что игрок найдёт оазис. Выведите, что игрок его нашёл, пополните флягу, сбросьте жажду игрока и дайте отдохнуть верблюду.
Поиграйте в игру и настройте числа так, чтобы игра была сложной, но не невозможной. Исправьте любые найденные ошибки.
Вот пример того, как может выглядеть игровой процесс:
Добро пожаловать в игру Верблюд!
Вы украли верблюда, чтобы пересечь великую пустыню Моби.
Туземцы хотят вернуть своего верблюда и преследуют вас!
Пройдите через пустыню и обгоните туземцев.
A. Выпить из фляги.
B. Ехать на умеренной скорости.
C. Ехать на полной скорости.
D. Остановиться и отдохнуть.
E. Проверить статус.
Q. Выйти из игры.
Ваш выбор? C
Вы проехали 12 миль.
A. Выпить из фляги.
B. Ехать на умеренной скорости.
C. Ехать на полной скорости.
D. Остановиться и отдохнуть.
E. Проверить статус.
Q. Выйти из игры.
Ваш выбор? C
Вы проехали 17 миль.
A. Выпить из фляги.
B. Ехать на умеренной скорости.
C. Ехать на полной скорости.
D. Остановиться и отдохнуть.
E. Проверить статус.
Q. Выйти из игры.
Ваш выбор? E
Пройдено миль: 29
Напитков во фляге: 3
Туземцы на расстоянии 31 мили.
A. Выпить из фляги.
B. Ехать на умеренной скорости.
C. Ехать на полной скорости.
D. Остановиться и отдохнуть.
E. Проверить статус.
Q. Выйти из игры.
Ваш выбор? B
Вы проехали 6 миль.
…и так далее, до…
A. Выпить из фляги.
B. Ехать на умеренной скорости.
C. Ехать на полной скорости.
D. Остановиться и отдохнуть.
E. Проверить статус.
Q. Выйти из игры.
Ваш выбор? C
Вы проехали 12 миль.
Туземцы приближаются!
A. Выпить из фляги.
B. Ехать на умеренной скорости.
C. Ехать на полной скорости.
D. Остановиться и отдохнуть.
E. Проверить статус.
Q. Выйти из игры.
Ваш выбор? C
Вы проехали 11 миль.
Туземцы приближаются!
Вы пересекли пустыню! Вы победили!