public void UpdatePositions(PositionsUpdateDto positionsUpdate) { _level.MyHead = positionsUpdate.MyHead; _level.EnemyHead = positionsUpdate.EnemyHead; _level.Map = positionsUpdate.Map; _level.MyLength = positionsUpdate.MyLength; _hasPositions = true; DecideMove(); }
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); }