Введение в задачу «Угадай число»
Задача «Угадай число» — это классическая игра, которая помогает новичкам освоить основы программирования. Она проста, но в то же время позволяет понять, как работает логика программирования, обработка пользовательского ввода и генерация случайных чисел. В этой статье мы рассмотрим, как реализовать эту игру на языке Python, шаг за шагом создавая функционал и добавляя интересные элементы.
Основная идея игры
Суть игры заключается в том, что компьютер загадывает случайное число в заданном диапазоне, а игрок должен его угадать. После каждой попытки компьютер сообщает, больше или меньше загаданное число, чем введённое игроком. Игра продолжается до тех пор, пока игрок не угадает число.
Подготовка к разработке
Перед тем как начать писать код, необходимо убедиться, что у вас установлен Python. Вы можете скачать последнюю версию с официального сайта python.org. После установки вы можете использовать любой текстовый редактор или IDE, например, PyCharm или VSCode.
Создание проекта
Создайте новый файл с расширением .py, например, guess_number.py. Это будет наш основной файл, в котором мы будем писать код.
Импорт необходимых библиотек
Для генерации случайного числа нам понадобится библиотека random. В самом начале нашего кода добавим следующий импорт:
import random
Генерация случайного числа
Теперь давайте создадим функцию, которая будет генерировать случайное число в заданном диапазоне. Например, от 1 до 100:
def generate_number():
return random.randint(1, 100)
Эта функция будет возвращать случайное число, которое игрок должен будет угадать.
Основной игровой цикл
Теперь создадим основной игровой цикл, который будет запрашивать у игрока ввод и проверять его:
def play_game():
number_to_guess = generate_number()
attempts = 0
guessed = False
while not guessed:
user_guess = int(input("Введите ваше число (от 1 до 100): "))
attempts += 1
if user_guess < number_to_guess:
print("Загаданное число больше.")
elif user_guess > number_to_guess:
print("Загаданное число меньше.")
else:
guessed = True
print(f"Поздравляем! Вы угадали число {number_to_guess} за {attempts} попыток.")
Запуск игры
Теперь нам нужно добавить возможность запускать игру. Для этого добавим следующий код в конец нашего файла:
if __name__ == "__main__":
play_game()
Этот код позволяет запустить игру, когда вы запускаете файл напрямую.
Добавление функций для улучшения игры
Теперь, когда у нас есть базовая версия игры, давайте добавим несколько функций, чтобы сделать её более интересной:
- Ограничение по попыткам: Позволим игроку угадывать число только определённое количество раз.
- Уровни сложности: Позволим игроку выбирать уровень сложности, который будет определять диапазон загаданного числа.
- Подсказки: Добавим возможность получать подсказки после определённого количества попыток.
Ограничение по попыткам
Для реализации ограничения по попыткам мы можем добавить переменную, которая будет хранить максимальное количество попыток:
def play_game(max_attempts=10):
number_to_guess = generate_number()
attempts = 0
guessed = False
while not guessed and attempts < max_attempts:
user_guess = int(input("Введите ваше число (от 1 до 100): "))
attempts += 1
if user_guess < number_to_guess:
print("Загаданное число больше.")
elif user_guess > number_to_guess:
print("Загаданное число меньше.")
else:
guessed = True
print(f"Поздравляем! Вы угадали число {number_to_guess} за {attempts} попыток.")
if not guessed:
print(f"Вы исчерпали все попытки. Загаданное число было {number_to_guess}.")
Уровни сложности
Теперь добавим возможность выбора уровня сложности. Мы можем предложить игроку выбрать между лёгким, средним и сложным уровнями, которые будут определять диапазон загаданного числа:
def generate_number(difficulty):
if difficulty == 'easy':
return random.randint(1, 10)
elif difficulty == 'medium':
return random.randint(1, 50)
else:
return random.randint(1, 100)
def play_game():
difficulty = input("Выберите уровень сложности (easy, medium, hard): ")
number_to_guess = generate_number(difficulty)
# Остальной код остается прежним...
Подсказки
Добавим возможность получать подсказки после определённого количества попыток. Например, если игрок не угадал число после 5 попыток, мы можем сказать ему, четное или нечётное загаданное число:
if attempts == 5:
if number_to_guess % 2 == 0:
print("Подсказка: Загаданное число четное.")
else:
print("Подсказка: Загаданное число нечётное.")
Полный код игры
Теперь, когда мы добавили все функции, давайте соберём полный код игры:
import random
def generate_number(difficulty):
if difficulty == 'easy':
return random.randint(1, 10)
elif difficulty == 'medium':
return random.randint(1, 50)
else:
return random.randint(1, 100)
def play_game(max_attempts=10):
difficulty = input("Выберите уровень сложности (easy, medium, hard): ")
number_to_guess = generate_number(difficulty)
attempts = 0
guessed = False
while not guessed and attempts < max_attempts:
user_guess = int(input("Введите ваше число: "))
attempts += 1
if user_guess < number_to_guess:
print("Загаданное число больше.")
elif user_guess > number_to_guess:
print("Загаданное число меньше.")
else:
guessed = True
print(f"Поздравляем! Вы угадали число {number_to_guess} за {attempts} попыток.")
if attempts == 5:
if number_to_guess % 2 == 0:
print("Подсказка: Загаданное число четное.")
else:
print("Подсказка: Загаданное число нечётное.")
if not guessed:
print(f"Вы исчерпали все попытки. Загаданное число было {number_to_guess}.")
if __name__ == "__main__":
play_game()
Заключение
Игра «Угадай число» — это отличный способ попрактиковаться в программировании на Python. Мы рассмотрели, как создать простую игру, добавили функции для улучшения игрового процесса и сделали её более интересной. Теперь вы можете экспериментировать с кодом, добавляя свои идеи и улучшения. Удачи в программировании!