コード例 #1
0
        /// <summary>
        /// Okno vytvoří celý debug, řídí akce a prostě dělá lautr všechno.
        /// </summary>
        static public void MakeDebug()
        {
            //okno debugu
            bool DebugExist = true;

            while (DebugExist)
            {
                //zde se vybere akce a provede
                switch (DrawDebugScreenAndGetAction())
                {
                //přidání jednoho záznamu do skóre
                case DebugAction.AddSingleScoreRow:
                    Score.AddItemAsTest();
                    //nějaká odezva
                    ConsoleStuffs.TextPrint("Item do skore byl přidán", 28, 1);
                    Console.ReadLine();
                    ConsoleStuffs.TextPrint("                        ", 28, 1);
                    break;

                case DebugAction.FillWithEmpty:
                    Score.FillDataWithEmpty();
                    //nějaká odezva
                    ConsoleStuffs.TextPrint("Skore bylo naplněno ničím.", 28, 1);
                    Console.ReadLine();
                    ConsoleStuffs.TextPrint("                          ", 28, 1);
                    break;

                case DebugAction.LoadVladisSave:
                    Saver.Load("vladis");
                    //nějaká odezva
                    ConsoleStuffs.TextPrint("Save byl načeten.", 28, 1);
                    Console.ReadLine();
                    ConsoleStuffs.TextPrint("                 ", 28, 1);
                    break;

                //ukončení debug okna
                case DebugAction.DebugExit: DebugExist = false; break;

                default: break;
                }
            }
        }
コード例 #2
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);
        }
コード例 #3
0
        /// <summary>
        /// Tato metoda vytvoří hru, je to takvé to okno před zapnutím hry kde se píše jméno hráče.
        /// </summary>
        private static void CreateAndPlayNewGame()
        {
            //vykreslím úvodní info na obrazovku
            Console.Clear();
            ConsoleStuffs.DrawFrame();
            ConsoleStuffs.TextPrint("Nová hra", 3, 3);
            ConsoleStuffs.TextPrint("Zadej své jméno udatný bojovníku: ", 6, 3);

            //sem uložím jméno hráče
            string PlayerName;

            //dokavaď se uživateli nepovede dobře zadat jméno tak ho tu držím, ven se dostanu pomocí break
            while (true)
            {
                //načtu jméno
                PlayerName = Console.ReadLine();

                //čekuju jméno jestli není již použito
                if (Saver.CheckName(PlayerName))
                {
                    //jméno taky musí být max. 15 znaků dlouhé
                    if (PlayerName.Length > 15)
                    {
                        //tohle se vypíše když bude jméno krátké
                        ConsoleStuffs.TextPrint("Bojovníkovo jméno musí být krátké a výstižné!", 10, 3);
                        ConsoleStuffs.TextPrint("Pokračuj stiskem klávesy enter...", 11, 3);
                        Console.ReadLine();
                        ConsoleStuffs.TextPrint("                                             ", 10, 3);
                        ConsoleStuffs.TextPrint("                                 ", 11, 3);
                        ConsoleStuffs.TextPrint("                                   ", 6, 37);
                        Console.SetCursorPosition(37, 6);
                    }
                    //když se dostanu až sem je vše jak má být a můžu pokračovat za while
                    else
                    {
                        break;
                    }
                }
                //vypsání informace pokud je jméno již použito jiným  uživatelem
                else
                {
                    //toto se vypíše pokud je jméno již použito
                    ConsoleStuffs.TextPrint("Toto jméno nelze použít. Již jej nese jiný hrdina!", 10, 3);
                    ConsoleStuffs.TextPrint("Pokračuj stiskem klávesy enter...", 11, 3);
                    Console.ReadLine();
                    ConsoleStuffs.TextPrint("                                                  ", 10, 3);
                    ConsoleStuffs.TextPrint("                                 ", 11, 3);
                    ConsoleStuffs.TextPrint("                                   ", 6, 37);
                    Console.SetCursorPosition(37, 6);
                }
            }
            //nějaké další povídání pokud jsem už úspěšně vytvořil jméno
            ConsoleStuffs.TextPrint("Nyní můžeš začít hrát! Pokračuj stiskem \"S\" Hodně štěstí! ", 10, 3);
            ConsoleStuffs.TextPrint("Pro návrat stiskni \"q\" pro pokračování \"s\" ...", 28, 2);

            //tady držím hráče dokud bude hrát a nebo dokud nezmáčkne Q aby utekl z volby hráče
            while (true)
            {
                //tuten se čte klávesa
                switch (ConsoleStuffs.ReadKey().Key)
                {
                //pokud zmáčknu Q vrátím se do menu
                case ConsoleKey.Q:
                    return;

                //pokud zmáčknu S tak vytvořím novou hru
                case ConsoleKey.S:
                    //v této metodě je hráč držen tak dlouho dokud nedohraje
                    game.MakeNewGame(PlayerName);
                    return;

                default: break;
                }
            }
        }