Я хочу разместить свои предметы и врагов случайным образом (или как можно более случайным образом). В данный момент я использую Random
класс XNA для генерации числа от 800 для X и 600 для Y. Такое ощущение, что враги появляются в верхней части карты больше, чем в середине или внизу. Я не сею генератор, может быть, это то, что нужно учитывать.
Описаны ли другие методы, которые могут улучшить случайное размещение врага на двумерной сетке?
Ответы:
Случайное размещение не выглядит достаточно случайным для глаз. Вы, вероятно, захотите, чтобы враги были расположены более равномерно. Взгляните на эту статью о сэмплировании на пуассоновских дисках или прочитайте о голубом шуме
источник
Shawn Hargreaves на помощь!
http://blogs.msdn.com/b/shawnhar/archive/2009/12/17/the-psychology-of-randomness.aspx http://blogs.msdn.com/b/shawnhar/archive/2010/09 /10/links-5-charles-bloom-on-randomness.aspx
Когда вы думаете о случайном распределении, вы действительно имеете в виду равномерное распределение. .Net Random думает случайным образом. Вам нужно что-то еще, чтобы выровнять его. Метод выборки диска Пуассона amitp, связанный с выглядит идеально подходит для ваших нужд.
источник
Следующий код C # сгенерирует для вас набор одинаковых точек:
Обратите внимание, что когда вы используете конструктор Random () без параметров, созданный вами объект Random будет отображаться в зависимости от времени, поэтому он будет по существу случайным, если вы не будете делать это многократно с очень небольшим временем между вызовами.
источник