Подскажите какой наилучший вариант отображения "Опыта" в текстовой telegram-игре (pytelegrambotapi)
Сразу же оговорюсь не обессудьте за вероятно глупый вопрос ибо обучаюсь и стараюсь гуглить все возможное, при отсутствии результата задаю вопрос здесь.
Задача состоит в следующем: пытаюсь создать telegram-игру на python(pytelegrambotapi) в которой будет персонаж, соответственно он будет иметь параметры. Один из логичных параметров для продвижения персонажа является, например, уровень и опыт. Если с уровнем вопросов не возникает особо, результат его отображения прост: "Уровень: 1", то как быть с опытом, где есть цель выводить вот такой вид:
Опыт: 1/10 на первом уровне, 1/12 на втором уровне и т.д. переменная копится и обнуляется при получении уровня.
Моего мышления хватает лишь на то, чтобы сделать в базе данных столбец. При выводе в bot.send_message просто отправлять его значение и через слэш выводить переменную, которая будет накапливаться в цикле (10,12,14 и т.д.). И дальше условиями задать обнуление при получении нужных значений, то есть если столбец опыта достиг значения 10, то уровень поднимается, а опыт становится равным 0.
Правильно ли использовать такой подход? Или вообще это все можно сделать в базе данных, задавая определенные параметры столбцу.
Ответы (1 шт):
Прогресс персонажа:
Вариант 1Постоянный рейт — т.е. всегда 1000 XP на уровеньВариант 2Арифметическая прогрессия — 1000 XP + 100 * N на уровеньВариант 3Геометрическая прогрессия — 1000XP * (1.1)N
Прогресс XP, получаемый за выполнение игровых задач
Постоянный— время, затраченное на достижение нового уровня, всегда одинаковоеУменьшающийся— чем выше уровень, тем больше требуется опыта.
Пример: пусть кол-во опыта на уровень постоянно: 1000 XP.
XP убийство моба = 100 * (10 + LVL моба — LVL игрока)/(10 + LVL игрока). На первом уровне нужно убить 10 мобов своего уровня, на десятом — двадцать.
Я советую вам взять любую простой вариант. Скажем, геометрическая прогрессия (формулы известны со школы). И начать экспериментировать с коэффициентами.