Esempio n. 1
0
        public void menu_LVL()
        {
            Console.BufferHeight = 61;
            Console.BufferWidth  = 201;
            Console.SetWindowSize(200, 60);
            int lvl   = 0;
            int speed = 100;

            //sciany(lvl);
            lvl_state = 0;
            restart_LVL(lvl, speed);
            highlight_LVL(0, lvl, speed);
            while (true)
            {
                ConsoleKeyInfo kb;
                kb = Console.ReadKey(false);
                switch (kb.Key)
                { //react to input
                case ConsoleKey.UpArrow:
                    switch (lvl_state)
                    {
                    case 0:
                        highlight_LVL(2, lvl, speed);
                        lvl_state = ((3 + lvl_state - 1) % 3);
                        break;

                    case 1:
                        highlight_LVL(0, lvl, speed);
                        lvl_state = ((3 + lvl_state - 1) % 3);
                        break;

                    case 2:
                        highlight_LVL(1, lvl, speed);
                        lvl_state = ((3 + lvl_state - 1) % 3);
                        break;
                    }
                    break;

                case ConsoleKey.DownArrow:

                    switch (lvl_state)
                    {
                    case 0:
                        highlight_LVL(1, lvl, speed);
                        lvl_state = ((lvl_state + 1) % 3);
                        break;

                    case 1:
                        highlight_LVL(2, lvl, speed);
                        lvl_state = ((lvl_state + 1) % 3);
                        break;

                    case 2:
                        highlight_LVL(0, lvl, speed);
                        lvl_state = ((lvl_state + 1) % 3);
                        break;
                    }
                    break;

                case ConsoleKey.Escape:
                    Console.Clear();
                    reset_menu(muzik);
                    highlight_menu(0, muzik);
                    menu_conroler(false);
                    break;
                }
                if (kb.Key == ConsoleKey.Enter)
                {
                    if (lvl_state == 0)
                    {
                        Snake      snake = new Snake(lvl, speed);
                        GameViewer view  = new GameViewer();
                        Console.Clear();
                        view.wyswietl_wynik(0);
                        snake.muzik = this.muzik;
                        snake.Snake_Init();
                    }
                    if (lvl_state == 1) // rysowanie scian
                    {
                        // sciany(lvl);
                        if (lvl == 0)
                        {
                            lvl = 1;
                        }                         //sciany(0); }
                        else if (lvl == 1)
                        {
                            lvl = 2;
                        }                              //sciany(1); }
                        else if (lvl == 2)
                        {
                            lvl = 0;
                        }                              //sciany(2); }
                        highlight_LVL(1, lvl, speed);
                    }
                    if (lvl_state == 2)
                    {
                        {
                            if (speed == 100)
                            {
                                speed = 80;
                            }
                            else if (speed == 80)
                            {
                                speed = 60;
                            }
                            else if (speed == 60)
                            {
                                speed = 100;
                            }
                            highlight_LVL(2, lvl, speed);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public void Snake_Init()
        {
            player.SoundLocation = "2.wav";
            if (muzik == true)
            {
                player.Stop();
                //var p1 = new System.Windows.Media.MediaPlayer();
                //p1.Open(new System.Uri(@"E:\Users\The_BuBu\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\2.wav"));
                //p1.Play();
                //new System.Threading.Thread(() =>
                //{
                //    var c = new System.Windows.Media.MediaPlayer();
                //    c.Open(new System.Uri(@"E:\Users\The_BuBu\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\2.wav"));
                //    c.Play();
                //}).Start();
                player.PlayLooping();
            }
            double mnoznik_za_lvl = (1 / sleepTime) * 33 + (sciany + 1) * 2;

            Console.CursorSize   = 12;
            Console.BufferHeight = 60;
            Console.BufferWidth  = 201;
            Console.SetWindowSize(200, 60);
            //Zmienne :o
            int kierunek_poruszania     = (int)kierunek.prawo; // początkowy kierunek (by np wonsz nie wpadl na skałę)
            int licznik_karmienia_weza  = 0;                   // odlicza czas od odtatniego karmienia
            int licznik_karmienia_weza2 = 0;
            int czas_usuniecia_jedzenia = 30000;               // jak dłygo jedzenie pozostaje na planszy
            int punkty_ujemne           = 0;                   // punkty ujemne za niezjedzone jesdzenie

            licznik_karmienia_weza  = Environment.TickCount;
            licznik_karmienia_weza2 = Environment.TickCount;
            int temp = 2;


            Koordynaty[] tablica_skretow = new Koordynaty[]
            {
                new Koordynaty(0, 1),  // right
                new Koordynaty(0, -1), // left
                new Koordynaty(1, 0),  // down
                new Koordynaty(-1, 0), // up
            };
            dodawanie_scian(sciany);
            wyswietl.sciany(przeszkody);//klasa game viewer
            narodziny_weza();
            losuj_jedzenie();
            wyswietl.jedzenie(pokarm, 0);//klasa game viewer
            losuj_jedzenie_specjalne();
            wyswietl.jedzenie(pokarm_specjalny, temp);
            wyswietl.weza(wonsz);//klasa game viewer
            while (true)
            {
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo kl = Console.ReadKey(false); // przerobić na switcha
                    switch (kl.Key)
                    {
                    case ConsoleKey.LeftArrow:
                        if (kierunek_poruszania != (int)kierunek.prawo)
                        {
                            kierunek_poruszania = (int)kierunek.lewo;
                        }
                        break;

                    case ConsoleKey.RightArrow:
                        if (kierunek_poruszania != (int)kierunek.lewo)
                        {
                            kierunek_poruszania = (int)kierunek.prawo;
                        }
                        break;

                    case ConsoleKey.UpArrow:
                        if (kierunek_poruszania != (int)kierunek.dol)
                        {
                            kierunek_poruszania = (int)kierunek.gora;
                        }
                        break;

                    case ConsoleKey.DownArrow:
                        if (kierunek_poruszania != (int)kierunek.gora)
                        {
                            kierunek_poruszania = (int)kierunek.dol;
                        }
                        break;

                    case ConsoleKey.P:
                        pause();
                        break;
                    }
                }

                Koordynaty aktualnaGlowa = wonsz.Last();
                Koordynaty nowy_kierunek = tablica_skretow[kierunek_poruszania];

                Koordynaty nowaGlowa = new Koordynaty(aktualnaGlowa.row + nowy_kierunek.row,
                                                      aktualnaGlowa.col + nowy_kierunek.col);

                if (nowaGlowa.col < 0)
                {
                    nowaGlowa.col = Console.WindowWidth - 1;                    ///
                }
                if (nowaGlowa.row < 6)
                {
                    nowaGlowa.row = Console.WindowHeight - 1;                   /// Wanrunki przechodzenia przez sciany
                }
                if (nowaGlowa.row >= Console.WindowHeight)
                {
                    nowaGlowa.row = 6;                                         //// zmiana na wymiary okna w nst projekcie
                }
                if (nowaGlowa.col >= Console.WindowWidth)
                {
                    nowaGlowa.col = 0;                                           ////
                }
                if (wonsz.Contains(nowaGlowa) || przeszkody.Contains(nowaGlowa)) // Warunek kończoncy grę !
                {
                    punkty = (wonsz.Count - 10) * mnoznik * (int)mnoznik_za_lvl - punkty_ujemne + punkty_dodatkowe;
                    if (punkty < 0)
                    {
                        punkty = 0;
                    }
                    punkty         = Math.Max(punkty, 0);
                    wyswietl.muzik = this.muzik;
                    wyswietl.game_over(punkty);
                    Thread.Sleep(2000);
                    Console.ReadKey(false);
                    return;
                }

                wonsz.Enqueue(nowaGlowa);// doadnie nowej glowy do kolejki
                wyswietl.usun_stara_glowe(aktualnaGlowa);
                wyswietl.zmien_kierunek_glowy(nowaGlowa, kierunek_poruszania);


                if (nowaGlowa.col == pokarm_specjalny.col && nowaGlowa.row == pokarm_specjalny.row)
                {
                    var p2 = new System.Windows.Media.MediaPlayer();
                    //string startupPath = Environment.CurrentDirectory;
                    //Uri uri = new Uri(startupPath + @"sounds\2wav");
                    //MessageBox.Show("You Lose! Your score is "+ uri.ToString(), "Game Over", MessageBoxButton.OK, MessageBoxImage.Hand);
                    p2.Open(new Uri(@"C:\content\3.wav"));
                    p2.Play();

                    if (temp == 1)
                    {
                        punkty_ujemne += punkty / 2;
                    }
                    if (temp == 2)
                    {
                        punkty_dodatkowe += 500;
                    }
                    if (temp == 3)
                    {
                        sleepTime        += 10;
                        punkty_dodatkowe += 153;
                    }
                    if (temp == 4)
                    {
                        punkty_dodatkowe += 153;
                        sleepTime        -= 10;
                    }
                    licznik_karmienia_weza2 = Environment.TickCount;
                    punkty = (wonsz.Count - 10) * mnoznik * (int)mnoznik_za_lvl - punkty_ujemne + punkty_dodatkowe;
                    wyswietl.wyswietl_wynik(Math.Max(punkty, 0));
                    wyswietl.usun_pokarm_lub_ogon(pokarm_specjalny);
                    ///pokarm_specjalny.Clear();
                    pokarm_specjalny = default(Koordynaty);
                }
                else if (nowaGlowa.col == pokarm.col && nowaGlowa.row == pokarm.row)
                {
                    //Metoda laternatywna
                    //new System.Threading.Thread(() =>
                    //{
                    //    var c = new System.Windows.Media.MediaPlayer();
                    //    c.Open(new System.Uri(@"E:\Users\The_BuBu\Documents\Visual Studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\3.wav"));
                    //    c.Play();
                    //}).Start();

                    var p2 = new System.Windows.Media.MediaPlayer();
                    p2.Open(new System.Uri(@"C:\content\3.wav"));
                    p2.Play();

                    // karmienie weza
                    losuj_jedzenie();
                    licznik_karmienia_weza = Environment.TickCount;
                    punkty = (wonsz.Count - 10) * mnoznik * (int)mnoznik_za_lvl - punkty_ujemne + punkty_dodatkowe;
                    wyswietl.wyswietl_wynik(Math.Max(punkty, 0));
                    wyswietl.jedzenie(pokarm, 0);//klasa game viewer
                }
                else
                {
                    // prouszanie się węża - usunięcie ogona jesli nic nie zjadł
                    Koordynaty last = wonsz.Dequeue(); // uzyskiwanie "adresu" ogona
                    wyswietl.usun_pokarm_lub_ogon(last);
                }

                if (Environment.TickCount - licznik_karmienia_weza2 >= 25000)
                {
                    if (!pokarm_specjalny.Equals(default(Koordynaty)))
                    {
                        wyswietl.usun_pokarm_lub_ogon(pokarm_specjalny);
                    }
                    pokarm_specjalny = default(Koordynaty);
                    // random do losowania koordynat nowych smakołyków
                    temp = generator.Next(1, 5);
                    if (temp == 1)
                    {
                        losuj_jedzenie_specjalne();
                        wyswietl.jedzenie(pokarm_specjalny, 1);
                    }
                    if (temp == 2)
                    {
                        losuj_jedzenie_specjalne();
                        wyswietl.jedzenie(pokarm_specjalny, 2);
                    }
                    if (temp == 3)
                    {
                        losuj_jedzenie_specjalne();
                        wyswietl.jedzenie(pokarm_specjalny, 3);
                    }
                    if (temp == 4)
                    {
                        losuj_jedzenie_specjalne();
                        wyswietl.jedzenie(pokarm_specjalny, 4);
                    }
                    licznik_karmienia_weza2 = Environment.TickCount;
                }



                if (Environment.TickCount - licznik_karmienia_weza >= czas_usuniecia_jedzenia) // usuwanie pokarmu po okreslonym czasie
                {
                    punkty_ujemne = punkty_ujemne + 50;
                    wyswietl.usun_pokarm_lub_ogon(pokarm);
                    losuj_jedzenie();
                    licznik_karmienia_weza = Environment.TickCount;
                }
                wyswietl.jedzenie(pokarm, 0);
                //sleepTime -= 0.001;

                Thread.Sleep((int)sleepTime);
            }
        }
Esempio n. 3
0
        public void menu_LVL()
        {
            Console.BufferHeight = 61;
            Console.BufferWidth = 201;
            Console.SetWindowSize(200, 60);
            int lvl=0;
            int speed=100;
            //sciany(lvl);
            lvl_state = 0;
            restart_LVL(lvl, speed);
            highlight_LVL(0, lvl, speed);
            while (true)
            {
                ConsoleKeyInfo kb;
                kb = Console.ReadKey(false);
                switch (kb.Key)
                { //react to input
                    case ConsoleKey.UpArrow:
                        switch (lvl_state)
                        {
                            case 0:
                                highlight_LVL(2, lvl, speed);
                                lvl_state = ((3 + lvl_state - 1) % 3);
                                break;
                            case 1:
                                highlight_LVL(0, lvl, speed);
                                lvl_state = ((3 + lvl_state - 1) % 3);
                                break;
                            case 2:
                                highlight_LVL(1, lvl, speed);
                                lvl_state = ((3 + lvl_state - 1) % 3);
                                break;
                        }
                        break;

                    case ConsoleKey.DownArrow:

                        switch (lvl_state)
                        {
                            case 0:
                                highlight_LVL(1, lvl, speed);
                                lvl_state = ((lvl_state + 1) % 3);
                                break;
                            case 1:
                                highlight_LVL(2, lvl, speed);
                                lvl_state = ((lvl_state + 1) % 3);
                                break;
                            case 2:
                                highlight_LVL(0, lvl, speed);
                                lvl_state = ((lvl_state + 1) % 3);
                                break;
                        }
                        break;
                    case ConsoleKey.Escape:
                        Console.Clear();
                        reset_menu(muzik);
                        highlight_menu(0, muzik);
                        menu_conroler(false);
                        break;
                }
                if (kb.Key == ConsoleKey.Enter)
                {
                    if (lvl_state == 0)
                    {
                        Snake snake = new Snake(lvl,speed);
                        GameViewer view = new GameViewer();
                        Console.Clear();
                        view.wyswietl_wynik(0);
                        snake.muzik = this.muzik;
                        snake.Snake_Init();
                    }
                    if (lvl_state == 1) // rysowanie scian
                    {

                       // sciany(lvl);
                        if (lvl == 0) { lvl = 1; }//sciany(0); }
                        else if (lvl == 1) { lvl = 2; }//sciany(1); }
                        else if (lvl == 2) { lvl = 0; }//sciany(2); }
                        highlight_LVL(1, lvl, speed);

                    }
                    if (lvl_state == 2)
                    {
                        {
                            if (speed == 100) speed = 80;
                            else if (speed == 80) speed = 60;
                            else if (speed == 60) speed = 100;
                            highlight_LVL(2, lvl, speed);
                        }
                    }
                }
            }
        }