Вы уже должны были догадаться о содержании этой статьи. И вы, вероятно, должны быть знакомы с угадыванием чисел и искать способ построить его с помощью Python.
Давайте научимся создавать игру на угадывание чисел с нуля.
Оглавление
Игра в угадывание чисел
Игра проста. Пользователь должен угадать случайно сгенерированное число, лежащее в диапазоне от 1 до 100. Вот и все.
Игра настолько проста?
Да это оно.
Но есть одна вещь, которую мы должны предоставить пользователям, чтобы они угадывали число. Это намеки. Мы должны предоставить пользователю сообщение о том, что текущее угаданное число меньше правильного числа или текущее угаданное число больше правильного числа. Чтобы пользователи знали, в каком направлении им нужно идти.
Мы можем сделать его более захватывающим, добавив дополнительные функции, такие как максимальное количество шансов угадать, увеличить диапазон, установить таймер и т. д.,
Создание базовой рабочей игры является обязательным. После этого мы можем добавить больше функций, как обсуждалось. Итак, в этом разделе мы собираемся создать базовую версию игры. А затем мы перейдем к добавлению новых функций.
Я хочу, чтобы вы попробовали создать игру без слепого копирования кода. Итак, сначала я объясню алгоритм. Это поможет вам кодировать самостоятельно или быстро понять код.
Давайте рассмотрим алгоритм создания игры «Угадай число».
Алгоритм
Убедитесь, что вы понимаете алгоритм, прежде чем переходить к части кодирования.
- Определите диапазон чисел. По умолчанию это 1-100, но вы можете изменить его по своему усмотрению.
- Сгенерируйте случайное целое число из указанного выше диапазона (1-100).
- Запустите игру, показав пользователю сообщение «Угадай число от X до Y». Вы можете обновить сообщение по своему усмотрению.
- Инициализируйте переменную равным 0, чтобы подсчитать общее количество шансов, которые пользователь предпринял, чтобы правильно угадать число.
- Напишите бесконечный цикл.
- Попросите пользователя угадать число.
- Если текущее угаданное число равно случайно сгенерированному числу, то поздравить пользователя сообщением можно как угодно. Примером может быть «-> Ура! Вы получили это за 5 шагов!».
- Разорвите цикл после поздравления пользователя.
- Если текущее угаданное число меньше случайно сгенерированного числа, дайте пользователю сообщение «-> Ваше число меньше, чем случайное число» или пользовательское сообщение, имеющее тот же смысл.
- Если текущее угаданное число больше, чем случайно сгенерированное число, то дайте пользователю сообщение «-> Ваше число больше, чем случайное число» или обычай с тем же значением.
- Наконец, увеличьте шансы пользователя угадать.
Вы бы получили код в уме после того, как увидели алгоритм. Не волнуйтесь, даже если вы не получите полный код. Но убедитесь, что вы понимаете приведенный выше алгоритм.
Пришло время приступить к работе с кодом. Войдите в код без дальнейших церемоний.
Код
Вы пробовали писать код?
Если да, то и доделал. Это великолепно. Ознакомьтесь с кодом и изучите его, чтобы расширить свои знания.
Не беспокойтесь, даже если вы не писали код. Посмотрите приведенный ниже код и поймите его. Попробуйте настроить и написать его по-своему для лучшего понимания.
Итак, давайте посмотрим код.
import random class NumberGuessingGame: def __init__(self): ## define the range self.LOWER = 1 self.HIGHER = 100 ## method to generate the random number def get_random_number(self): return random.randint(self.LOWER, self.HIGHER) ## game start method def start(self): ## generating the random number random_number = self.get_random_number() print( f"Guess the randomly generated number from {self.LOWER} to {self.HIGHER}") ## heart of the game chances = 0 while True: user_number = int(input("Enter the guessed number: ")) if user_number == random_number: print( f"-> Hurray! You got it in {chances + 1} step{'s' if chances > 1 else ''}!") break elif user_number < random_number: print("-> Your number is less than the random number") else: print("-> Your number is greater than the random number") chances += 1 ## instantiating and starting the game numberGuessingGame = NumberGuessingGame() numberGuessingGame.start()
Есть некоторые вещи, которые вы понимаете из кода.
- Диапазон определяется внутри метода __init__, поэтому его можно использовать в методах класса.
- Мы можем легко изменить его в одном месте, которое соответственно изменится во всем приложении.
- Существует отдельный метод генерации случайного числа, который следует принципу «разделения проблем». Здесь у нашего метода мало кода, но он может увеличиться в будущем.
- Наконец, мы использовали класс, чтобы каждый метод, связанный с игрой, находился внутри него. И его можно легко повторно использовать в некоторых других приложениях.
Все пункты, которые обсуждались выше, относятся к написанию чистого кода. Мы должны попытаться написать чистый код, который вы понимаете даже через несколько X лет.
Пример вывода игры выглядит следующим образом.
$ python number_guessing_game.py Guess the randomly generated number from 1 to 100 Enter the guessed number: 50 -> Your number is less than the random number Enter the guessed number: 75 -> Your number is less than the random number Enter the guessed number: 90 -> Your number is greater than the random number Enter the guessed number: 85 -> Your number is greater than the random number Enter the guessed number: 80 -> Hurray! You got it in 5 steps!
Я предполагаю, что у вас установлен Python, чтобы попробовать приведенный выше код.
Дополнительная функция
Мы собираемся добавить максимальное количество шансов, что пользователь может угадать число. Если пользователь не угадает число в пределах количества шансов, то пользователь проигрывает.
Как мы добавим его?
Это простой двухэтапный процесс. Давайте посмотрим шаги.
- Определите максимальное количество шансов, которое пользователь может угадать число.
- Проверьте, есть ли у пользователя шансы или нет, прежде чем запрашивать ввод. И завершить игру, если у пользователя нет шансов.
Следующий дополнительный код завершит функцию.
- Добавьте следующий код в метод __init__.
self.MAX_CHANCES = 10
- Добавьте следующее условие, прежде чем пользователь введет следующее предположение.
if chances == self.MAX_CHANCES: print("-> Phew! You lost the game. You are out of chances")
Теперь попробуйте игру, не угадывая правильное число. Вы должны увидеть аналогичный вывод, как показано ниже.
$ python number_guessing_game.py Guess the randomly generated number from 1 to 100. You have 10 chances to guess. Enter the guessed number: 1 -> Your number is less than the random number Enter the guessed number: 2 -> Your number is less than the random number Enter the guessed number: 3 -> Your number is less than the random number Enter the guessed number: 4 -> Your number is less than the random number Enter the guessed number: 5 -> Your number is less than the random number Enter the guessed number: 6 -> Your number is less than the random number Enter the guessed number: 7 -> Your number is less than the random number Enter the guessed number: 8 -> Your number is less than the random number Enter the guessed number: 9 -> Your number is less than the random number Enter the guessed number: 10 -> Your number is less than the random number -> Phew! You lost the game. You are out of chances
Ура! мы добавили дополнительную функцию в нашу игру. Это еще не конец. Вы можете добавить некоторые дополнительные функции, чтобы сделать его более привлекательным для пользователей. Сейчас ваше время. Давай, сделай его еще красивее :).
Вывод
Мы создали простую игру на угадывание чисел. Теперь ваша очередь подумать об играх, в которые вы играли, когда были молоды. Создавайте их с помощью языка программирования и делитесь ими с друзьями. Мы можем оцифровать большинство наших детских игр.
Затем изучите Python IDE и онлайн-компилятор для запуска кода Python.
Удачного кодирования 🙂
Если вам не хватает вирусных словесных игр, вот как добиться большего успеха в Wordle.
Понравилось читать статью? Как насчет того, чтобы поделиться с миром?