Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Урок по созданию "Кликер"

Авг
141
189
Пользователь
Всем привет, сегодня мы с вами сделаем простенькую игру "Кликер", думаю для начинающий будет неплохим уроком.


1. Переменные

В самом начале мы создаем переменные которые будут хранить текущие показатели игры:

Переменные:
coin = 0
reward = 1
upgrader = 10

Coin = 0 - количество монет у игрока (начинаем с нуля).

reward = 1 - награда за один клик

upgrader = 10 — стоимость покупки улучшения.

2. Отображение данных и меню

Теперь нам нужно сделать список и также вывести данные игрока (сколько монет, сколько получит монет за клик). Что бы программа не вылетала после каждого ввода, добавим циал while True: (ВАЖНО: С ЦИКЛОМ while True:, НУЖНО ДЕЛАТЬ ПРОМЕЖУТКИ (Tab), ИНАЧЕ РАБОТАТЬ НЕ БУДЕТ.)

dannie:
while True:

    print(f"Ваши монеты: {int(coin)}")
    print(f"Награда за клик: {int(reward)}")

    choice = input("\n1. Купить улучшение.\n"
    "2. Выход\n"
    "Выбор: ")

Конструкция f"..." (f-строки) позволяет удобно вставлять значения переменных прямо в текст.

Функция int(...) превращает число в целое.

Функция input(...) выводит меню и ждет, пока пользователь введет какой-то текст и нажмет Enter. Введенный текст сохраняется в переменную choice.

3. Логика клика

click:
if choice == "":
        coin += reward
        print(f"Вы получили +{reward} монет.")

Если пользователь ничего не ввел (просто нажал Enter), то choice будет пустой строкой ("").

В этом случае к количеству монет (coin) прибавляется текущая награда (reward).

4. Покупка улучшения

upgrade:
if choice == "1":
        if coin >= upgrader:
           coin -= upgrader
            input(f"Вы успешно купили улучшение за {int(upgrader)} монет.")
            reward += 1
            upgrader *= int(1.5)
        else:
            input(f"Улучшение стоит {int(upgrader)} монет, копите.")

Если пользователь ввел 1, проверяется условие: if coin >= upgrader (хватает ли монет на покупку?).

Если монет достаточно:

Монеты списываются.
Награда за клик увеличивается на единицу (reward += 1).

Стоимость следующего улучшения увеличивается в 1.5 раза (upgrader *= 1.5), чтобы игра со временем становилась сложнее.

Если монет не хватает: программа сообщает об этом и просит покопить еще.

7. Выход из игры

Выход:
if list == "2":
        exit()

Если пользователь ввел 2, срабатывает функция exit(), которая полностью закрывает программу.


Надеюсь вам было понятно, если вдруг есть вопросы, пишите в эту тему, я отвечу на них. Спасибо за внимание.
Спасибо @pikamonov за то что подметил мои ошибки, надеюсь в этот раз я не обложался.



Вот целый код игры:

clicker:
coin = 0
reward = 1
upgrader = 10

while True:

    print(f"Ваши монеты: {int(coin)}")
    print(f"Награда за клик: {int(reward)}")

    choice = input("\n1. Купить улучшение.\n"
    "2. Выход\n"
    "Выбор: ")

    if choice == "":
        coin += reward
        print(f"Вы получили +{reward} монет.")

    if choice == "1":
        if coin >= upgrader:
            input(f"Вы успешно купили улучшение за {int(upgrader)} монет.")
            reward += 1
            upgrader *= 1.5
        else:
            input(f"Улучшение стоит {int(upgrader)} монет, копите.")

    if list == "2":
        exit()
 
Unexpected token
Окт
349
1,174
Редактор
вспомню свои навыки python

1. начнем со списывания монет
Python:
if coin >= upgrader:
    input(f"Вы успешно купили улучшение за {int(upgrader)} монет.")
    reward += 1
    upgrader *= 1.5
как я понимаю, в текущей логике монеты не будут списываться, так как отсутствует coin -=upgrader

2. выход с игры
Python:
if list == "2":
    exit()
переменная list нигде не создавалась, list - это встроенный тип python, поэтому условие всегда будет ложным

а так за урок респект
 
Сверху