public Bot(Maze maze, EngineSettings engineSettings, WallGrid walls, BrainFactory brainFactory, EyeFactory eyeFactory) { _maze = maze; _engineSettings = engineSettings; _walls = walls; _numEyes = engineSettings.BotEyes; _energyStep = 1.0; var neurons = _numEyes + (engineSettings.ThinkDistance ? 1 : 0) + (engineSettings.ThinkPath ? 5 : 0) + (engineSettings.ThinkVelocity ? 3 : 0); Brain = brainFactory.Create(neurons, 2); _eyes = new Eye[_numEyes]; Velocity = new Ray(new CoordD(0.5, 0.5), 0.0, engineSettings.BotSpeed); for (var i = 0; i < _numEyes; ++i) { var theta = i / (double)_numEyes * Consts.HalfTurn - Consts.QuarterTurn; _eyes[i] = eyeFactory.Create(Velocity.Origin, 2, 0, theta, 100); } Init(new CoordD(.5,.5)); }
public EyeTester(int numberOfEyes, double magnitude, Maze maze, EyeFactory eyeFactory, Settings settings, EngineSettings engineSettings) { Radius = 0.0; Visible = false; NumEyes = numberOfEyes; _maze = maze; _settings = settings; _engineSettings = engineSettings; Eyes = new Eye[NumEyes]; for (var i = 0; i < NumEyes; ++i) { Eyes[i] = eyeFactory.Create(Position, 0.0, i / (double)NumEyes * Consts.FullTurn, 0.0, magnitude); } }