コード例 #1
0
        /// <summary>
        /// Vstupní metoda programu.
        /// </summary>
        /// <param name="args">Nejsou třeba, argumenty z příkazové řádky.</param>
        /// <returns>Vrací pár čísel -1 pro chybné ukončení, 1 pro korektní.</returns>
        static int Main(string[] args)
        {
            //budu postupně procházet všechny argumenty (když žádné nebudou tak se tohle neprovede)
            for (int i = 0; i < args.Length; i++)
            {
                // u každého se rozhodnu co s ním
                switch (args[i].ToString())
                {
                case "cow":
                    Global.TuxArgumentFromCommandLine = ConsoleStuffs.TuxChoise.Cow;
                    break;

                case "head-in":
                    Global.TuxArgumentFromCommandLine = ConsoleStuffs.TuxChoise.HeadIn;
                    break;

                case "monochrome":
                    Global.Monochrome = true;
                    break;

#if (EN_COLOR_REPAIR)
                case "repair-colors":
                    Global.RepairColors = true;
                    break;
#endif
                case "help":
                    Console.WriteLine("Tahová RPG hra o záchraně světa.\n");
                    Console.WriteLine("Typické použití je bez parametrů.\n\nParametry:");
                    Console.WriteLine("help          - vypíše tuto nápovědu");
                    Console.WriteLine("monochrome    - hra bude pouze černobílá");
#if (EN_COLOR_REPAIR)
                    Console.WriteLine("repair-colors - při načítání staré uložené hry opraví barvy");
#endif
#if (EN_EASTEREGG_HELP)
                    Console.WriteLine("cow           - vykreslí místo tuxe kravičku (easter egg)");
                    Console.WriteLine("head-in       - vykreslí místo tuxe jinou kravičku (easter egg)");
#endif
                    Console.WriteLine("\n\nChyby v programu můžete hlásit na:\[email protected]\n\n");

                    Console.WriteLine("Linux Story. Copyright(C) 2016  Vladislav Mlejnecký");
                    Console.WriteLine("This program comes with ABSOLUTELY NO WARRANTY.");
                    Console.WriteLine("This is free software, and you are welcome to redistribute it");
                    Console.WriteLine("under certain conditions.");

                    return(1);

                default:
                    Console.WriteLine("Špatné použití, pro nápovědu zadej parametr help.");
                    return(-1);
                }
            }

            //nastavení konzole
            ConsoleStuffs.SetUpConsole();

            //načtení dat pro skóre
            Score.LoadScoreData();

            //proměnná držící informaci o tom jestli je hra zapnutá nebo ne
            bool GameRunning = true;

            // zde vykreslím menu, pokud si uživatel vybere tak si skočím do jiných
            // metod kam jest třeba, tam ho pak držím dokud třeba hraje apod.
            do
            {
                switch (MakeMenu())
                {
                case MenuChoice.New:
                    game = new Game();
                    CreateAndPlayNewGame();

                    //pokud mám uložit tak uložím
                    if (Global.HaveToSave == true)
                    {
                        Saver.Save(game);
                    }
                    Global.HaveToSave = false;

                    game = null;
                    break;

                case MenuChoice.Load:
                    //vyberu uloženou hru
                    string ChosenGame;
                    bool   Chosen = DrawLoadMenu(out ChosenGame);
                    //pokud pokud jsem vybral, jinak se vracím do menu
                    if (Chosen == true)
                    {
                        Saver.Load(ChosenGame);

                        //zde se bude hrát
                        game.MakeLoadGame();

                        //pokud mám uložit tak uložím
                        if (Global.HaveToSave == true)
                        {
                            Saver.Save(game);
                        }
                        Global.HaveToSave = false;

                        game = null;
                    }
                    break;

                case MenuChoice.Score:
                    DrawScore();
                    break;

                case MenuChoice.Story:
                    TextMenuWindow storyWindow = new TextMenuWindow(@"story.txt");
                    storyWindow.MakeWindow();
                    storyWindow = null;
                    break;

                case MenuChoice.Info:
                    TextMenuWindow infoWindow = new TextMenuWindow(@"info.txt");
                    infoWindow.MakeWindow();
                    infoWindow = null;
                    break;

                case MenuChoice.Help:
                    TextMenuWindow helpWindow = new TextMenuWindow(@"help.txt");
                    helpWindow.MakeWindow();
                    helpWindow = null;
                    break;

#if (DEBUG)
                case MenuChoice.Debug:
                    Debug.MakeDebug();
                    break;
#endif
                case MenuChoice.Quit:
                    GameRunning = false;
                    break;
                }
            } while (GameRunning);

            //uložení skóre
            Score.SaveScoreData();

            //krátké rozloučení na závěr
            ConsoleStuffs.DrawEndScreen();

            //uvolnění konzole
            ConsoleStuffs.FreeConsole();

            return(1);
        }