コード例 #1
0
        public IOrder GetOrder(Sensor sensor)
        {
            _turn++;
            //Hvis det en lige tur scan
            if (_turn % 2 == 0)
            {
                return(new SonorScan());
            }

            if (sensor.ScannedArea.Targets.Any())
            {
                IOrder fireOrder = new FireTorpedo(sensor.ScannedArea.Targets.First().RelativeCoordinates);
                return(fireOrder);
            }

            if (sensor.Infront.Type == TerrainType.Land || sensor.Infront.Type == TerrainType.Edge)
            {
                return(Rotate());
            }

            if (Rnd.Next(1, 100) > 65)
            {
                return(Rotate());
            }


            return(new Move());
        }
コード例 #2
0
        private IOrder getRandomOrder()
        {
            IOrder order;

            int rndInt = _random.Next(1, 4);

            switch (rndInt)
            {
            case 1:
                order = new Move();
                break;

            case 2:
                order = new Rotate(getDirection());
                break;

            case 3:
                order = new FireTorpedo(getCoordinates(), CoordinateType.Relative);
                break;

            default:
                throw new Exception("not a valid direction");
            }
            return(order);
        }
コード例 #3
0
ファイル: FireTorpedoTest.cs プロジェクト: bobend/AIGame
        public void Setup()
        {
            MockMap   = new Mock <IMap>();
            MockUnit  = new Mock <IUnit>();
            MockUnits = new Mock <List <IUnit> >();

            sut = new FireTorpedo(new Tuple <int, int>(0, 0));
        }
コード例 #4
0
        public void Setup()
        {
            MockMap    = new Mock <IMap>();
            MockUnit   = new Mock <IUnit>();
            MockUnits  = new Mock <List <IUnit> >();
            MockRandom = new Mock <Random>();

            sut = new FireTorpedo(new Tuple <int, int>(0, 0), CoordinateType.Relative);
        }