예제 #1
0
        private static void play(SudokuGame.Difficulty difficulty)
        {
            SudokuGame game = new SudokuGame(difficulty);

            game.Play();
            selectMenuOption();
        }
예제 #2
0
        private int getValuesToHide(SudokuGame.Difficulty difficulty)
        {
            int valuesToHide = 0;

            switch (difficulty)
            {
            case SudokuGame.Difficulty.Easy: valuesToHide = (int)(81 * 0.4); break;

            case SudokuGame.Difficulty.Medium: valuesToHide = (int)(81 * 0.6); break;

            case SudokuGame.Difficulty.Hard: valuesToHide = (int)(81 * 0.75); break;
            }
            return(valuesToHide);
        }
예제 #3
0
        private SudokuPuzzle decorateSudokuPuzzle(SudokuGame.Difficulty difficulty, SudokuPuzzle puzzle)
        {
            int    x, y, counter = 0;
            int    valuesToHide = getValuesToHide(difficulty);
            Random rand         = new Random();

            do
            {
                x = rand.Next(0, 9);
                y = rand.Next(0, 9);

                if (puzzle.Grid[x, y].IsEditable)
                {
                    continue;
                }

                puzzle.Grid[x, y].IsEditable = true;
                puzzle.DecValues();
                counter++;
            }while(counter < valuesToHide);

            return(puzzle);
        }
예제 #4
0
        private static void play()
        {
            string selection;

            SudokuGame.Difficulty difficulty = SudokuGame.Difficulty.Unknown;
            bool validSelection = false;

            do
            {
                Console.WriteLine(SudokuPrint.DifficultyScreen);
                Console.WriteLine(SudokuPrint.SelectionMsg);
                selection = Console.ReadLine();
                Console.WriteLine();

                switch (selection.ToUpper())
                {
                case "E": difficulty = SudokuGame.Difficulty.Easy; validSelection = true; break;

                case "M": difficulty = SudokuGame.Difficulty.Medium; validSelection = true; break;

                case "H": difficulty = SudokuGame.Difficulty.Hard; validSelection = true; break;

                case "X": difficulty = SudokuGame.Difficulty.Unknown; validSelection = true; break;

                default: Console.WriteLine(SudokuPrint.SelectionErrorMsg); break;
                }
            }while(validSelection == false);

            if (difficulty == SudokuGame.Difficulty.Unknown)
            {
                selectMenuOption();
            }
            else
            {
                play(difficulty);
            }
        }
예제 #5
0
        // METHODS
        public SudokuPuzzle CreateSudokuPuzzle(SudokuGame.Difficulty difficulty)
        {
            SudokuPuzzle puzzle = initSudokuGrid();

            return(decorateSudokuPuzzle(difficulty, puzzle));
        }