/// <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; } } }
/// <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); }
/// <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; } } }