Beispiel #1
0
        public void UpdatePositions(PositionsUpdateDto positionsUpdate)
        {
            _level.MyHead    = positionsUpdate.MyHead;
            _level.EnemyHead = positionsUpdate.EnemyHead;
            _level.Map       = positionsUpdate.Map;
            _level.MyLength  = positionsUpdate.MyLength;

            _hasPositions = true;
            DecideMove();
        }
Beispiel #2
0
        private void PositionsMessage(dynamic data)
        {
            var map = new PointArray <long>(_width, _height);

            var snakes = data.snakes;

            for (var i = 0; i < snakes.Count; i++)
            {
                for (var j = 0; j < snakes[i].body.Count; j++)
                {
                    long x = snakes[i].body[j][0];
                    long y = snakes[i].body[j][1];

                    if (x < 0 || y < 0 || x >= _width || y >= _height)
                    {
                        return;
                    }

                    map[x, y] = snakes[i].body.Count - i;
                }
            }

            long headX           = snakes[_playerNo].body[0][0];
            long headY           = snakes[_playerNo].body[0][1];
            var  myHeadPoisition = new Point(headX, headY);

            headX = snakes[_enemyNo].body[0][0];
            headY = snakes[_enemyNo].body[0][1];
            var enemyHeadPoisition = new Point(headX, headY);

            var positionsUpdateDto = new PositionsUpdateDto
            {
                Map       = map,
                MyHead    = myHeadPoisition,
                EnemyHead = enemyHeadPoisition,
                MyLength  = snakes[_playerNo].body.Count
            };

            _greyWorm.UpdatePositions(positionsUpdateDto);
        }