Beispiel #1
0
        public static void Main(string[] args)
        {
            var timer = new Stopwatch();

            timer.Start();
            BitMaps.GenerateMoves();
            BitMaps.GenerateBombs();
            timer.Stop();

            char[,] map = new char[13, 11];
            List <Robot> bots  = new List <Robot>();
            List <Bomb>  bombs = new List <Bomb>();
            var          bomb  = new Bomb();

            bomb.position  = 2;
            bomb.owner     = 0;
            bomb.range     = 3;
            bomb.countDown = 7;
            bombs.Add(bomb);

            bomb           = new Bomb();
            bomb.position  = 13;
            bomb.owner     = 0;
            bomb.range     = 3;
            bomb.countDown = 4;
            bombs.Add(bomb);

            for (int i = 0; i < 11; i++)
            {
                for (int j = 0; j < 13; j++)
                {
                    map[j, i] = '.';
                }
            }

            var r = new Robot();

            r.owner = 0;
            var x = 0;
            var y = 0;

            r.position = BitState.GetBitIndex(x, y);
            r.param1   = 1;
            r.param2   = 3;

            bots.Add(r);

            var bgs = new BitState(map, bots, bombs, 0);

            var best = BitSolution.generateBestRandomSolution(bgs, 0, 20, 90);
            //var move = new Move(MoveType.Move, MoveDirection.Stay);
            var move = best.moves[0];

            bgs.getBot(0).getCommand(move);

            bgs.play(best, 0);
            bgs.score(0);

            Console.Error.WriteLine(timer.ElapsedMilliseconds);
        }
Beispiel #2
0
        public void AddOrReplaceDataElement(DataElement dataElement)
        {
            int number = dataElement.Number;

            BitMaps.SetPresentDataElement(number);
            DataElements.AddOrReplaceDataElement(dataElement);
        }
Beispiel #3
0
        private void CreateDEs(DataString dataString)
        {
            DataElements = new DataElementCollection();

            DataString dataElementsString = dataString.SubString(readerIndex);

            List <int> dataElementsBitMap = BitMaps.GetPresentDataElements();

            foreach (int de in dataElementsBitMap)
            {
                if (DataDefinitionDictionary.ContainsElementDefinition(de))
                {
                    DataDefinition dataDef = DataDefinitionDictionary.GetDataDefinition(de);

                    int dataElementsReaderIndex = 0;

                    try
                    {
                        DataString data = dataDef.GetAllData(dataElementsString, ref dataElementsReaderIndex);

                        dataElementsString = dataElementsString.SubString(dataElementsReaderIndex);

                        DataElements.AddOrReplaceDataElement(new DataElement(de, dataDef, data));
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Missing or incorrectly defined DE: " + de + ".", ex);
                    }
                }
                else
                {
                    throw new Exception("Missing definition, DE: " + de + ".");
                }
            }
        }
Beispiel #4
0
 public override string ToString()
 {
     return(MessageTypeIdentifier.ToString()
            + BitMaps.ToString()
            + DataElements.ToString());
 }