コード例 #1
0
ファイル: GameBoard.cs プロジェクト: Nachisuk/TetrisConsoleV1
        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;
            }
        }
コード例 #2
0
ファイル: GameBoard.cs プロジェクト: Nachisuk/TetrisConsoleV1
        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();
            }
        }
コード例 #3
0
        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;
                }
            }
        }