Сообщение от
Элрик
Наводящий вопрос. На какие числа в мейкере чаще всего падает рандом?
Скорее всего проблема не с тем, что рандом падает на какие-то числа. А с тем, что настоящий рандом человеку кажется нерандомным. Это довольно частая иллюзия: по-настоящему случайные числа нам кажутся неслучайными. Вот тут хорошее описание этого феномена: http://www.empiricalzeal.com/2012/12...ess-look-like/
Например, вот здесь слева рандомные точки, а справа нерандомные (картинка взята здесь — http://bl.ocks.org/roryokane/4358325, здесь же можно проверить код и убедиться):
← рандом | не рандом →
Скорее всего, Вам нужен не настоящий рандом, а что-то другое. Например, «на каждые 12 открываний замка 2 раз ломается замок, 4 раза ломается отмычка, 6 раз успешны». По идее это просто реализовать. У меня под рукой нет новых мейкеров, но в консольном руби такое прокатывает:
Код:
def key_shuffler_factory
remainder_parts = []
lambda do
if remainder_parts.length < 1 then
remainder_parts = ([1, 2, 2, 3, 3, 3] * 2).shuffle
end
return remainder_parts.pop
end
end
key_shuffler = key_shuffler_factory # это надо вызывать один раз!
# иначе будет возвращаться «математический»
# рандом, а не «человеческий»!
а дальше получать «рандомное» значение с помощью key_shuffler.call и проверять, равно оно 1 (отмычка сломалась в замке), 2 (отмычка сломалась) или 3 (успешно открылось).
Если код непонятен, скажите, я объясню. Без Руби что-то подобное тоже должно быть несложно реализовать (но тогда наверное понадобится common event), если надо — могу прийти домой и сделать пример реализации.
----
Upd.: что-то я переборщил с этой лямбдой (я мало пользуюсь Руби, так что не обессудьте) — боюсь, этим будет неудобно пользоваться. Возможно, стоит сделать remainder_parts глобальной переменной, а функцию переписать так:
Код:
def get_key_success()
if !(defined? $key_success_remainder_parts) or ($key_success_remainder_parts.length < 1) then
$key_success_remainder_parts = ([1, 2, 2, 3, 3, 3] * 2).shuffle
end
return $key_success_remainder_parts.pop
end
а дальше вызывать get_key_success()
Социальные закладки