Что касается этой игры по программированию Я сейчас занимаюсь строительством.
Когда игра запускается, я генерирую этих роботов в предположительно случайных точках на холсте, и на первый взгляд (добавление одного или двух ботов одновременно) казалось, что это работает как надо.
... но, когда я добавил кучу ботов одновременно, вот как они "случайным образом" появились на холсте:
альтернативный текст http://img22.imageshack.us/img22/6895/randombotpositionlf7.jpg < / а>
Предположительно случайные точки не кажутся такими уж случайными ... это всего лишь точки прямой линии!
Вот как я подсчитываю баллы:
SetStartingPoint(GetRandomPoint(ArenaWidth, ArenaHeight)); //the width and height are 550, 480 at the moment
//which calls:
private Point GetRandomPoint(double maxWidth, double maxHeight)
{
return new Point(new Random().Next(0, (int)(maxWidth-80)), new Random().Next(0, (int)maxHeight));
}
//and ultimately:
private void SetStartingPoint(Point p)
{
Translate_Body.X = (double)p.X;
Translate_Body.Y = (double)p.Y;
}
Что касается приведенного выше кода, Translate_Body
относится к типу TranslateTransform
робота (canvas
), поэтому, назначив его свойства X
и Y
, он изменит свое положение на новые значения.
Что мне здесь не хватает?
[ОБНОВЛЕНИЕ] Решение:
Проблема заключалась в том, что, как вы все предположили, номера не были правильно засеяны из-за новых экземпляров.
Теперь я изменил код, чтобы использовать одну переменную Random
и засеять из нее все точки.
Но я все еще не могу понять, почему точки генерируются с кажущейся прямой линией координат. Кто-нибудь может это объяснить?