Подскажите какой наилучший вариант отображения "Опыта" в текстовой telegram-игре (pytelegrambotapi)

Сразу же оговорюсь не обессудьте за вероятно глупый вопрос ибо обучаюсь и стараюсь гуглить все возможное, при отсутствии результата задаю вопрос здесь.

Задача состоит в следующем: пытаюсь создать telegram-игру на python(pytelegrambotapi) в которой будет персонаж, соответственно он будет иметь параметры. Один из логичных параметров для продвижения персонажа является, например, уровень и опыт. Если с уровнем вопросов не возникает особо, результат его отображения прост: "Уровень: 1", то как быть с опытом, где есть цель выводить вот такой вид:

Опыт: 1/10 на первом уровне, 1/12 на втором уровне и т.д. переменная копится и обнуляется при получении уровня.

Моего мышления хватает лишь на то, чтобы сделать в базе данных столбец. При выводе в bot.send_message просто отправлять его значение и через слэш выводить переменную, которая будет накапливаться в цикле (10,12,14 и т.д.). И дальше условиями задать обнуление при получении нужных значений, то есть если столбец опыта достиг значения 10, то уровень поднимается, а опыт становится равным 0.

Правильно ли использовать такой подход? Или вообще это все можно сделать в базе данных, задавая определенные параметры столбцу.


Ответы (1 шт):

Автор решения: vladrunk

Прогресс персонажа:

  • Вариант 1 Постоянный рейт — т.е. всегда 1000 XP на уровень
  • Вариант 2 Арифметическая прогрессия — 1000 XP + 100 * N на уровень
  • Вариант 3 Геометрическая прогрессия — 1000XP * (1.1)N

Прогресс XP, получаемый за выполнение игровых задач

  1. Постоянный — время, затраченное на достижение нового уровня, всегда одинаковое
  2. Уменьшающийся — чем выше уровень, тем больше требуется опыта.
    Пример: пусть кол-во опыта на уровень постоянно: 1000 XP.
    XP убийство моба = 100 * (10 + LVL моба — LVL игрока)/(10 + LVL игрока). На первом уровне нужно убить 10 мобов своего уровня, на десятом — двадцать.

Я советую вам взять любую простой вариант. Скажем, геометрическая прогрессия (формулы известны со школы). И начать экспериментировать с коэффициентами.

Источник

→ Ссылка