예제 #1
0
        public void jedzenie(Koordynaty pokarmmm, int color)
        {
            Console.SetCursorPosition((int)pokarmmm.col, (int)pokarmmm.row);
            if (color == 0)
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
            }
            if (color == 1)
            {
                Console.ForegroundColor = ConsoleColor.Red;
            }
            if (color == 2)
            {
                Console.ForegroundColor = ConsoleColor.Green;
            }
            if (color == 3)
            {
                Console.ForegroundColor = ConsoleColor.Blue;
            }
            if (color == 4)
            {
                Console.ForegroundColor = ConsoleColor.White;
            }

            Console.Write("@");
            Console.SetCursorPosition((int)pokarmmm.col, (int)pokarmmm.row);
        }
예제 #2
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
        }//mod tą funkcje do działania w grze

        public void dodawanie_scian(int value)
        {
            if (value == 1 || value == 2)
            {
                for (int i = 0; i < Console.WindowWidth; i++)
                {
                    Koordynaty temppos  = new Koordynaty(6, i); przeszkody.Add(temppos);
                    Koordynaty temppos2 = new Koordynaty(59, i); przeszkody.Add(temppos2);
                }

                if (value == 1)
                {
                    for (int i = 6; i < Console.WindowHeight / 2; i++)
                    {
                        Koordynaty temppos  = new Koordynaty(i, Console.WindowWidth - 1); przeszkody.Add(temppos);
                        Koordynaty temppos2 = new Koordynaty(i, 0); przeszkody.Add(temppos2);
                    }
                }
                if (value == 2)
                {
                    for (int i = 6; i < Console.WindowHeight; i++)
                    {
                        Koordynaty temppos  = new Koordynaty(i, Console.WindowWidth - 1); przeszkody.Add(temppos);
                        Koordynaty temppos2 = new Koordynaty(i, 0); przeszkody.Add(temppos2);
                    }
                }
            }
            else if (value == 0)
            {
                przeszkody.Clear();
            }
        }
예제 #3
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
        }//mod tą funkcje do działania w grze

        public void dodawanie_scian(int value)
        {
            if (value == 1 || value == 2)
            {
                for (int i = 0; i < windowWidth; i++)
                {
                    Koordynaty temppos = new Koordynaty(0, i); przeszkody.Add(temppos);
                    Koordynaty temppos2 = new Koordynaty(windowHeight-1, i); przeszkody.Add(temppos2);
                }

                if (value == 1)
                {
                    for (int i = 6; i < windowHeight / 2; i++)
                    {
                        Koordynaty temppos = new Koordynaty(i, windowWidth - 1); przeszkody.Add(temppos);
                        Koordynaty temppos2 = new Koordynaty(i, 0); przeszkody.Add(temppos2);
                    }
                }
                if (value == 2)
                {
                    for (int i = 6; i < windowHeight; i++)
                    {
                        Koordynaty temppos = new Koordynaty(i, windowWidth - 1); przeszkody.Add(temppos);
                        Koordynaty temppos2 = new Koordynaty(i, 0); przeszkody.Add(temppos2);
                    }
                }
            }
            else if (value == 0)
                przeszkody.Clear();
        }
예제 #4
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
 private void losuj_jedzenie_specjalne()
 {
     do
     {
         pokarm_specjalny = new Koordynaty(generator.Next(8, Console.WindowHeight),
                                           generator.Next(0, Console.WindowWidth));
     }while (wonsz.Contains(pokarm_specjalny) || przeszkody.Contains(pokarm_specjalny) || pokarm_specjalny.Equals(pokarm));
 }
예제 #5
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
 private void losuj_jedzenie_specjalne()
 {
     do
     {
         pokarm_specjalny = new Koordynaty(generator.Next(8, windowHeight),
             generator.Next(0, windowWidth));
     }
     while (wonsz.Contains(pokarm_specjalny) || przeszkody.Contains(pokarm_specjalny) || pokarm_specjalny.Equals(pokarm));
 }
예제 #6
0
        public void jedzenie(Koordynaty pokarmmm,int color)
        {
            Console.SetCursorPosition((int)pokarmmm.col, (int)pokarmmm.row);
            if (color==0)Console.ForegroundColor = ConsoleColor.Yellow;
            if (color == 1) Console.ForegroundColor = ConsoleColor.Red;
            if (color == 2) Console.ForegroundColor = ConsoleColor.Green;
            if (color == 3) Console.ForegroundColor = ConsoleColor.Blue;
            if (color == 4) Console.ForegroundColor = ConsoleColor.White;

            Console.Write("@");
            Console.SetCursorPosition((int)pokarmmm.col, (int)pokarmmm.row);
        }
예제 #7
0
 public void zmien_kierunek_glowy(Koordynaty snakeNewHead, int kierunek_poruszania)
 {
     Console.SetCursorPosition((int)snakeNewHead.col, (int)snakeNewHead.row);
     Console.ForegroundColor = ConsoleColor.Gray;
     if (kierunek_poruszania == (int)kierunek.prawo)
     {
         Console.Write(">");
     }
     if (kierunek_poruszania == (int)kierunek.lewo)
     {
         Console.Write("<");
     }
     if (kierunek_poruszania == (int)kierunek.gora)
     {
         Console.Write("^");
     }
     if (kierunek_poruszania == (int)kierunek.dol)
     {
         Console.Write("v");
     }
 }
예제 #8
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
        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);
            }
        }
예제 #9
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
        //public Key k2;
        public void snakeLoop()
        {
            player.SoundLocation = @"C:\content\2.wav";
            if (muzik == true)
            {
                player.PlayLooping();
            }

            //Zmienne :o

            licznik_karmienia_weza = Environment.TickCount;
            licznik_karmienia_weza2 = Environment.TickCount;




            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)//TODO: przerobic na kontrole w wpf
            { 
                double mnoznik_za_lvl = (1 / sleepTime) * 33 + (sciany + 1) * 2;


                //if (true)
                //  {
                //ConsoleKeyInfo kl = Console.ReadKey(false); // przerobić na switcha
                //Key k1 = wyswietl.klawisz_mi_daj();
                //return App.Current.Dispatcher.BeginInvoke(new Action(() => { Keyboard.IsKeyDown(Key.P); }));
                if (Keyboard.IsKeyToggled(Key.Left))
                    {
                    if (kierunek_poruszania != (int)kierunek.prawo) kierunek_poruszania = (int)kierunek.lewo;
                    }
                else if (Keyboard.IsKeyToggled(Key.Right))
                {
                    if (kierunek_poruszania != (int)kierunek.lewo) kierunek_poruszania = (int)kierunek.prawo;
                }
                if (Keyboard.IsKeyToggled(Key.Up))
                {
                    if (kierunek_poruszania != (int)kierunek.dol) kierunek_poruszania = (int)kierunek.gora;
                    
                }
                if (Keyboard.IsKeyToggled(Key.Down))
                {
                    if (kierunek_poruszania != (int)kierunek.gora) kierunek_poruszania = (int)kierunek.dol;
                }
                if (Keyboard.IsKeyDown(Key.P))
                { pause(); Thread.Sleep(500); }// bo mi sie kurwa 2 razy odpala pizda jebana;

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

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

                if (nowaGlowa.col < 0) nowaGlowa.col = windowWidth - 1; ///
                if (nowaGlowa.row < 0) nowaGlowa.row = windowHeight - 1;/// Wanrunki przechodzenia przez sciany
                if (nowaGlowa.row >= windowHeight) nowaGlowa.row = 0;  //// zmiana na wymiary okna w nst projekcie
                if (nowaGlowa.col >= 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;
                    player.Stop();
                    //if (elo == true) {
                        App.Current.Dispatcher.BeginInvoke(new Action(() => { wyswietl.game_over(punkty, muzik); }));
                      //  elo = 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();
                    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 = 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)
                {
                    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);
            }           
        }     
예제 #10
0
 public void usun_pokarm_lub_ogon(Koordynaty pokarm)
 {
     Console.SetCursorPosition((int)pokarm.col, (int)pokarm.row);
     Console.Write(" ");
 }
예제 #11
0
 internal void usun_pokarm_lub_ogon(Koordynaty pokarm_specjalny)
 {
     // usuwa calkowicie z powierzchni gry
     //throw new NotImplementedException();
 }
예제 #12
0
 internal void zmien_kierunek_glowy(Koordynaty nowaGlowa, int kierunek_poruszania)
 {
     // tylko jesli glowa bedzie jakims krztaletem
     //throw new NotImplementedException();
 }
예제 #13
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
        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);
            }
        }
예제 #14
0
파일: Snake.cs 프로젝트: gornikp/projektKCK
 private void losuj_jedzenie()
 {
     do
     {
         pokarm = new Koordynaty(generator_liczb.Next(8, Console.WindowHeight),
             generator_liczb.Next(0, Console.WindowWidth));
     }
     while (wonsz.Contains(pokarm) || przeszkody.Contains(pokarm) || pokarm_specjalny.Equals(pokarm));
 }
예제 #15
0
 public void zmien_kierunek_glowy(Koordynaty snakeNewHead, int kierunek_poruszania)
 {
     Console.SetCursorPosition((int)snakeNewHead.col, (int)snakeNewHead.row);
     Console.ForegroundColor = ConsoleColor.Gray;
     if (kierunek_poruszania == (int)kierunek.prawo) Console.Write(">");
     if (kierunek_poruszania == (int)kierunek.lewo) Console.Write("<");
     if (kierunek_poruszania == (int)kierunek.gora) Console.Write("^");
     if (kierunek_poruszania == (int)kierunek.dol) Console.Write("v");
 }
예제 #16
0
 public void usun_stara_glowe(Koordynaty snakeHead)
 {
     Console.SetCursorPosition((int)snakeHead.col, (int)snakeHead.row);
     Console.ForegroundColor = ConsoleColor.DarkGray;
     Console.Write("█");
 }
예제 #17
0
 public void usun_pokarm_lub_ogon(Koordynaty pokarm)
 {
     Console.SetCursorPosition((int)pokarm.col, (int)pokarm.row);
     Console.Write(" ");
 }
예제 #18
0
 public void usun_stara_glowe(Koordynaty snakeHead)
 {
     Console.SetCursorPosition((int)snakeHead.col, (int)snakeHead.row);
     Console.ForegroundColor = ConsoleColor.DarkGray;
     Console.Write("█");
 }
예제 #19
0
 internal void usun_stara_glowe(Koordynaty aktualnaGlowa)
 {
     //nadpisywanie glowy cialem
     //throw new NotImplementedException();
 }
예제 #20
0
 public void jedzenie(Koordynaty pokarm, int typ)
 {
     //wyswietla jedzenie i jedzenie specjalne 0=normal(yellow) 1=red 2=green  3=blue   4=white;
     //throw new NotImplementedException();
 }