Ejemplo n.º 1
0
        public void PlaceGameTags()
        {
            var startTime = DateTime.UtcNow;
            var counter   = 0;

            do
            {
                //RemoveStartingBaseFromCoordinatesSeed();
                var coordinate = GetRandomCoordinatesFromSeed();
                RemoveCoordinatesFromSeed(coordinate);

                var valueSeed = GetValueSeed();
                if (_gameBoard.Where(t => t.Value != null).Any(t => t.Coordinate != coordinate) || _gameBoard.Count == 0)
                {
                    do
                    {
                        var value = GetRandomValueFromSeed(valueSeed);
                        valueSeed = RemoveValueFromSeed(valueSeed, value);
                        var tag = new GameBoardTag(coordinate, value);
                        if (_boardRules.ValidateGameBoardTag(tag, _gameBoard, _startingBase))
                        {
                            counter++;
                            _gameBoard.AddOrReplace(tag);
                            break;
                        }
                    } while (valueSeed.Length != 0);
                }
                BackTrackIfCoordinatesSeedIsEmpty();
                if (counter == 35000)
                {
                    Console.WriteLine("Not SOlved!!!!!");
                }
            } while (_gameBoard.Count(t => t.Value != null) < 81 && counter < 35000);
            Console.WriteLine(counter);
        }