}                                                  //Field který označuje zvolené menu

        public static void StartMenu(bool resetColours)
        {
            ///Shrnutí
            ///Počáteční metoda menu. Zde se nastaví výchozí nastavení a menu se vytiskne

            if (((Console.LargestWindowWidth - 5) > Console.WindowWidth) || ((Console.LargestWindowHeight - 3) > Console.WindowHeight)) //Nejprve zajistí, že je hra na celou obrazovku, jinak by mohly grafické objekty mít špatnou pozici.
            {
                Program.WaitForFix();                                                                                                   //Pokud není, počká se dokud to uživatel nenapraví
            }
            GameMenus    = new GameMenu[4];                                                                                             //Vytvoří se Array pro čtyři různá nastavení
            GameMenus[0] = new GameMenu("Easy", Difficulties.Easy);                                                                     //První (nulté) místo zabere lehká obtížnost
            GameMenus[1] = new GameMenu("Medium", Difficulties.Medium);                                                                 //Druhé (první) místo zabere střední obtížnost
            GameMenus[2] = new GameMenu("Hard", Difficulties.Hard);                                                                     //Třetí (druhé) místo zabere těžká obtížnost
            GameMenus[3] = null;                                                                                                        //Čtvrté (třetí) místo zůstane zatím prázdné, zde se později bude vytvářet vlastní nastavení (objekt třídy CustomGameMenu), které může uživatel upravovat
            ChosenMenu   = 0;                                                                                                           //Výchozí menu je jednoduchá obtížnost, a proto se nastaví field ChosenMenu na nulu
            SetDefault(resetColours);                                                                                                   //Pokud je vstupní hodnota resetColours true, tedy pokud otevíráme menu nastavení hry poprvé, tak se zavolá metoda SetDefault, kde se nastaví prvotní nastavení pro barvy
            SwitchTo(0, true);                                                                                                          //Následně se zavolá metoda SwitchTo, která zobrazí menu Lehké obtížnosti a zvýrazní název menu, aby uživatel věděl, že nyní může přepínat mezi obtížnostmi
            Game newGame = EnableSwitch();                                                                                              //Nyní se zavolá metoda EnableSwitch, která umožní vybírat mezi obtížnostmi a vytvářet vlastní obtížnost. Tato metoda vrací objekt typu Game

            if (newGame == null)                                                                                                        //Pokud uživatel opustí metodu, aniž by hru vytvořil tak se vrátíme zpátky do prvního menu, kde je možné toto menu opět zobrazit nebo hru ukončit
            {
                return;
            }
            GameControls.PlayedGame = newGame;       //V opačném případě se do další statické třídy, tedy do GameControls načte hraná hra a bude možné již brzy ji začít hrát
            Console.BackgroundColor = ConsoleColor.Black;
            Console.Clear();                         //Menu se vymaže
            bool UserWantsToPlayAgain;               //Tento boolean nám bude určovat zda chce hrát hráč znovu

            do                                       //Začíná cyklus do while, který probíhá, dokud platí, že hráč chce hrát znovu
            {
                if (GameControls.PlayedGame == null) //Pokud se stane, že se nevytvoří žádná hra, protože uživatel zruší vybírání v menu, tak se metoda vrátí zpátky do prvního menu
                {
                    return;
                }
                GameControls.PlayedGame.PrintMinefield();                                                   //Jinak se zavolá metoda, která vytiskne celou herní plochu a připravujeme se k samotnému hraní hry
                GameControls.PlayedGame.TilesAndMinesAroundCalculator();                                    //Nyní se zavolá metoda, která pro každý Tile vytvoří seznam tilů okolo a spočítá, kolik z nich má minu
                GameControls.SetDefault();                                                                  //Nakonec se ještě nastaví výchozí nastavení. Například se vytvoří a vytisknou grafiky nebo se nastaví důležité Fieldy na nulu (například počet odkrytých políček nebo počrt umístěných vlajek)
                bool gameWon = GameControls.Gameplay(out decimal score, out SpecialisedStopwatch playTime); //Nyní se už dostáváme k samotnému Gameplayi. Tato metoda nám vrátí tři hodnoty: boolean zda byla hra vyhrána, skóre hráče a čas, který hráč potřeboval na vyřešení této hry
                if (score != -1)                                                                            //Pokud hráč opustí hru v jejím průběhu, vrátí se nám skóre -1, v takovém případě se vrátíme zpátky do hlavního menu.
                {
                    UserWantsToPlayAgain = PostGameMenu.ShowMenu(score, gameWon, playTime);                 //Jinak se dostaneme do další statické třídy PostGameMenu, kde si může hráč zahrát znovu, uložit skóre, podívat se na hrací plochu, zahrát si znovu nebo hru ukončit
                }
                else
                {
                    UserWantsToPlayAgain = false;
                }
            } while (UserWantsToPlayAgain);
        }