Если я правильно разобрался в том, что написал админ, то получается (Рассмотрим на примере)
Персонаж А хочет продать 100 камня, на данный момент имеется некая стоимость камня 10 у.е за штуку, перс А продает камень, получает 1000 у.е, 100 камня записывается на счет "Рынка" (количество лотов), после чего цена камня пересчитывается с учетом его количества на рынке - пусть будет стало 9 у.е.
Персонаж В хочет продать 200 камня, получает 200*9=1800 у.е. камня на складе рынка становится 300, цена пересчитывается на 8 у.е.
Далее самое интересное. Персонаж С хочет купить камень он может купить весь камень имеющийся на складе рынка т.е. 300 штук. Текущая стоимость приобретения камня 18 у.е.(с ценой разберемся далее)
Он покупает 100 камня, 100 списывается со склада рынка (вместо 300 стало 200) цена пересчитывается исходя от количества на складе скажем до 20 у.е
Имеем 2 динамические цены: цена сдачи камня на рынок и цена скупки. Обе зависят от количества товара на складе. Имеет смысл ввести абсолютную цену Х, привязав ее например к цене сдачи товара при условии что на складе его в данный момент 0, принять, что цена сдачи товара не может быть ниже х/2.
цену скупки варьировать с 2Х до 1.5Х
формулы следующие:
CurXbuy = X - 0.5*X*SQRT(N/TopN) для скупки
CurXsel = 2*X - 0.5*X*SQRT(N/TopN) для продажи
Х - введенная выше абсолютная стоимость.
N - текущее количество товара на складе
TopN - потолок насыщенности, индивидуальная постоянная для каждого товара, которая берется из расчета того, что TopN этого товара = очень много. Для камня 100к, ля алмазов 1000 и т.д (данный параметр можно корректировать со временем, при накоплении статистики)
Корень берется для того чтобы избежать линейной зависимости цены от количества, на практике возможно более "живые" цены получатся с корнем 3,4 степени.
При N>TopN полагать N/TopN=1.
Проблема данной схемы: при сдаче товара не учитывается то, будет ли он покупаться или нет. Т.е. возможно сливания всякого мусора и получение за это денег.
Возможно этого можно избежать тщательно настроив цены.
Есть вариант что при сдаче товара на склад ранка человек получает за него деньги только в случае, когда на него нашелся покупатель. Этот вариант имеет большую реалистичность, но его намного тяжелее реализовать, и он содержит несколько проблем, попробую описать одну из них:
Персонаж А сдает 100 камня, В – 200 камня. С хочет купить 150 камня, необходимо рассчитать алгоритм у кого сколько камня будет куплено (50 у А, 100 у Б или по 75 у обоих или еще как нибуть).
Также явным недостатком является то, что персонаж А не может знать точно, за сколько в этом случае продастся его камень.
Ответов: 15
Vault Tec
Vault 0601 |
|||
карма: 3 |
|