Esempio n. 1
0
        public void RunTurn()
        {
            if (!Snakes.Any())
            {
                HasEnded = true;
            }
            else
            {
                TurnsCount++;

                GrassBoard.UpdateGrass();

                MoveSnakes();
            }
        }
Esempio n. 2
0
        public RunManager(Params currParams, int rowLength, int columnLength, Random random)
        {
            Params  = currParams;
            _random = random;

            Snakes     = new List <Snake>();
            GrassBoard = new GrassBoard(Params, rowLength, columnLength);

            var snake = new Snake(Params);

            var grassCell = GrassBoard.GrassCells[_random.Next(rowLength)][_random.Next(columnLength)];

            snake.AddNewCell(grassCell);

            for (int i = 0; i < 3; i++)
            {
                grassCell = GetRandomGrassCell(grassCell);
                snake.AddNewCell(grassCell);
            }

            Snakes.Add(snake);
        }
Esempio n. 3
0
        private GrassCell GetRandomGrassCell(GrassCell headLocation)
        {
            var grassCells = GrassBoard.GetOptionalCells(headLocation).ToArray();

            return(grassCells[_random.Next(grassCells.Length)]);
        }