![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Веб-разработчик
Форумчанин
Регистрация: 16.01.2008
Сообщений: 451
|
![]()
Делаю текстовую игру, сейчас попытаюсь максимально понятно обрисовать ситуацию =)
не могу продумать как автоматизировать процесс прибавления опыта требуемого для повышения следующего уровня =) тоесть примерно так человек 1-ый уровень для 2-го уровня требуется 100 опыта, когда он получит 2-ой уровень ему для 3-го уровня потребуется 220 опыта (тобишь +120%) но как етот процесс автоматизировать?
Я ваш новый друг, смиритесь!
![]() |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Чтобы не плодить множество условий можно, например, воспользоваться логарифмом (или, наоборот, какой-нибудь показательной функцией), смотря по конкретной задаче. Ну, или просто, держать для каждого объекта свою переменную "НадоДляПереходаНаСледующийУров ень" и при увеличении уровня умножать ее на Ваши 120%, т.е. на 1.2
![]() |
![]() |
![]() |
![]() |
#3 |
Веб-разработчик
Форумчанин
Регистрация: 16.01.2008
Сообщений: 451
|
![]()
я так и сделал последним способом, но там куча других ошибок, наверное лучше посмотрите исходники
Код:
Я ваш новый друг, смиритесь!
![]() Последний раз редактировалось [Smarik]; 19.02.2008 в 02:28. |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Честно говоря, не совсем понял, откуда всплывает 1000, но пишет оно, как Вы и просите: "level+1", "nextlvl-exp", чему тут удивляться? Предлагаю рассмотреть вот такой вариант:
Код:
Код:
Последний раз редактировалось B_N; 19.02.2008 в 04:02. Причина: Местами напутал-таки :) |
![]() |
![]() |
![]() |
#5 |
Веб-разработчик
Форумчанин
Регистрация: 16.01.2008
Сообщений: 451
|
![]()
B_N ну у тебя пол задачи на делфи написано =) ладно вобщем, там возник ряд других проблем более сложных, буду пока ими заниматься.
Я ваш новый друг, смиритесь!
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 04.04.2007
Сообщений: 131
|
![]()
Возможно проблема в том что тип переменных integer, поставь лучше real. А выводи так writeln(round(a));
Хотя нет, сам посчитай: level:=0; exp:=10000; nextlvl:=100; if exp>=nextlvl then level:=level+1; {10000>100 ==> level:=0+1 } if exp>=nextlvl then nextlvl:=nextlvl+200; {10000>100 ==> nextlvl:=100+200=300} writeln('Уровень: ',level); {Выводит 1} writeln('Опыт: ',exp); {выводит 10000} writeln('До: ',level+1,' уровня ',nextlvl-exp, ' опыта'); {выводит До: 2 уровня {300-10000} -9700 опыта} И кстати пример выше от B_N написан на паскале ![]() ![]() Последний раз редактировалось nikleb; 22.02.2008 в 22:55. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Джентльмены, помогите, пжлст. каким оператором высчитать корень 5-ой степени числа? | Osi@ | Помощь студентам | 32 | 03.10.2007 19:52 |