Ejemplo n.º 1
0
        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);
     }
 }