public static void Sterowanie2() { ConsoleKey choice; if (Console.KeyAvailable) { choice = Console.ReadKey(true).Key; } else { return; } switch (choice) { case ConsoleKey.LeftArrow: if (!tetris.czyJestCosZLewa()) { for (int i = 0; i < 4; i++) { tetris.lokacja[i][1] -= 1; } tetris.Aktualizuj(); } break; case ConsoleKey.RightArrow: if (!tetris.czyJestCosZPrawa()) { for (int i = 0; i < 4; i++) { tetris.lokacja[i][1] += 1; } tetris.Aktualizuj(); } break; case ConsoleKey.DownArrow: tetris.Opadaj(); break; case ConsoleKey.UpArrow: while (tetris.czyJestCosPonizej() != true) { tetris.Opadaj(); } break; case ConsoleKey.Spacebar: tetris.Obroc(); break; case ConsoleKey.R: Restart(); break; case ConsoleKey.P: if (!czyZapauzowane) { czyZapauzowane = true; } break; case ConsoleKey.Escape: Interface.MainMenu(MenuOptions.ZwrocOpcje()); break; } }
public void Uruchom() { Console.ForegroundColor = WriteColor(aktualnyKolor); tetris = new Tetrimo(); następnyTetris = new Tetrimo(); tetris.Stwórz(); RysujNastępnyKlocek(następnyTetris.getKształt()); while (true) { dropTime = (int)dropTimer.ElapsedMilliseconds; if (dropTime > dropRate) { dropTime = 0; dropTimer.Restart(); tetris.Opadaj(); } if (czyOpadł) { if (tetris.CzyWystaje()) { czyGameOver = true; } else { if (actualGameMode == " Haunted " && !isHaunted) { czyPokazywać = true; isHaunted = true; timer.Restart(); } Random rnd = new Random(); Console.ForegroundColor = WriteColor(aktualnyKolor); tetris = następnyTetris; następnyTetris = new Tetrimo(); aktualnyKolor = nastepnyKolor; nastepnyKolor = rnd.Next(1, 7); RysujNastępnyKlocek(następnyTetris.getKształt()); if (!tetris.Stwórz()) { czyGameOver = true; Console.ForegroundColor = Color.White; } czyOpadł = false; } if (czyGameOver == true) { Interface.GameOverPopUp(); Interface.GameOver_ChangeLightedOption(false); bool ifLeftPressed = true; while (true) { ConsoleKey choice; if (Console.KeyAvailable) { choice = Console.ReadKey(true).Key; switch (choice) { case ConsoleKey.LeftArrow: if (!ifLeftPressed) { Interface.GameOver_ChangeLightedOption(ifLeftPressed); ifLeftPressed = !ifLeftPressed; } //Restart(); break; case ConsoleKey.RightArrow: if (ifLeftPressed) { Interface.GameOver_ChangeLightedOption(ifLeftPressed); ifLeftPressed = !ifLeftPressed; } //Podsumowanie(); break; case ConsoleKey.R: Restart(); break; case ConsoleKey.Escape: Interface.MainMenu(MenuOptions.ZwrocOpcje()); break; case ConsoleKey.Enter: if (ifLeftPressed) { Restart(); } else { Podsumowanie(); } break; } } } } } if (czyZapauzowane) { Interface.PausePopUp(); while (czyZapauzowane) { ConsoleKey choice; if (Console.KeyAvailable) { choice = Console.ReadKey(true).Key; if (choice == ConsoleKey.P) { czyZapauzowane = false; Interface.PausePopUpOff(); } } } } switch (actualGameMode) { case " Maraton ": if (poziom == 15) { czyGameOver = true; Console.ForegroundColor = Color.White; } break; case " Endless ": break; case " Ultra ": if (poziom < 5) { poziom = 5; } playTime = (int)timer.ElapsedMilliseconds / 1000; Console.ForegroundColor = Color.White; Console.SetCursorPosition(5, 4); Console.Write("Pozotały czas: "); Console.SetCursorPosition(21, 4); float czas = 180 - playTime; Console.Write("" + czas + " "); if (playTime > 180) { czyGameOver = true; Console.ForegroundColor = Color.White; } break; case " LandSlide ": playTime = (int)timer.ElapsedMilliseconds / 1000; Console.ForegroundColor = Color.White; Console.SetCursorPosition(5, 4); Console.Write("Następny osuw za: "); Console.SetCursorPosition(23, 4); float czas1 = 16 - playTime; Console.Write("" + czas1 + " "); if (playTime > 15) { for (int i = 0; i < 5; i++) { Tetrimo.Landslide(); } timer.Restart(); } break; case " Haunted ": if (isHaunted) { playTime = (int)timer.ElapsedMilliseconds; if (playTime > 800) { isHaunted = false; czyPokazywać = false; } } break; } Sterowanie2(); WyczyscLinie(); } }
public static void MainMenu(List <MainMenuOptions> listaopcji) { setConsoleSize(); Console.WriteLine(TetrisAsciStrings.getMainTitleString()); ConsoleKey key; //List<MainMenuOptions> listaopcji = MenuOptions.ZwrocOpcje(); int i; int positionX = 30; Console.SetCursorPosition(positionX, Console.WindowHeight / 2); CurrentConsoleLineClear(positionX); for (i = 0; i < 3; i++) { if (i == 1) { Console.ForegroundColor = Color.Red; } else { Console.ForegroundColor = Color.White; } Console.Write(listaopcji[i].zwrocNazwe()); } i = 1; Console.SetCursorPosition(positionX, Console.WindowHeight / 2 + 5); CurrentConsoleLineClear(positionX); Console.ForegroundColor = Color.DarkMagenta; Console.Write(listaopcji[1].zwrocOpis()); Console.ForegroundColor = Color.White; int liczbaOpcji = listaopcji.Count; while (true) { key = ConsoleKey.B; if (Console.KeyAvailable) { key = Console.ReadKey(true).Key; } switch (key) { case ConsoleKey.LeftArrow: Console.SetCursorPosition(positionX, Console.WindowHeight / 2); CurrentConsoleLineClear(positionX); for (int j = 2; j >= 0; j--) { if (j == 1) { Console.ForegroundColor = Color.Red; } else { Console.ForegroundColor = Color.White; } int z = (i - j) % liczbaOpcji; if (z == (-1)) { Console.Write(listaopcji[liczbaOpcji - 1].zwrocNazwe()); } else if (z == (-2)) { Console.Write(listaopcji[liczbaOpcji - 2].zwrocNazwe()); i = liczbaOpcji; } else { Console.Write(listaopcji[z].zwrocNazwe()); } } i = (i - 1) % liczbaOpcji; Console.SetCursorPosition(positionX, Console.WindowHeight / 2 + 5); CurrentConsoleLineClear(positionX); Console.ForegroundColor = Color.DarkMagenta; Console.Write(listaopcji[i].zwrocOpis()); Console.ForegroundColor = Color.White; break; case ConsoleKey.RightArrow: Console.SetCursorPosition(positionX, Console.WindowHeight / 2); CurrentConsoleLineClear(positionX); for (int j = 0; j < 3; j++) { if (j == 1) { Console.ForegroundColor = Color.Red; } else { Console.ForegroundColor = Color.White; } Console.Write(listaopcji[(i + j) % liczbaOpcji].zwrocNazwe()); } i = (i + 1) % liczbaOpcji; Console.SetCursorPosition(positionX, Console.WindowHeight / 2 + 5); CurrentConsoleLineClear(positionX); Console.ForegroundColor = Color.DarkMagenta; Console.Write(listaopcji[i].zwrocOpis()); Console.ForegroundColor = Color.White; break; case ConsoleKey.Enter: listaopcji[i].FunkcjaOpcji(); break; case ConsoleKey.Escape: MainMenu(MenuOptions.ZwrocOpcje()); break; } } }