コード例 #1
0
        // pop-up do wyboru ciosu, przyjmuje listę ciosów bohatera
        public void okienkoWyboruCiosu(Cios[] listaCiosow, int zaznaczonaOpcja)
        {
            const int x = 16;
            const int y = 6;
            const int w = 24;

            Wyswietlanie.prostokat(x, y, w, listaCiosow.Length * 2 + 3);
            int temp, temp2 = x + w;
            var kolor = ConsoleColor.White;

            for (int i = 0; i <= listaCiosow.Length; i++)
            {
                temp = y + 1 + i * 2;
                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.Blue;
                }

                if (i < listaCiosow.Length)
                {
                    Wyswietlanie.pisz(listaCiosow[i].pobierzNazwe(), kolor, x + 1, temp);
                    Wyswietlanie.pisz(listaCiosow[i].pobierzKoszt().ToString(), ConsoleColor.Yellow, temp2 - 6, temp);
                    Wyswietlanie.pisz(listaCiosow[i].pobierzObrazenia().ToString(), ConsoleColor.Red, temp2 - 3, temp);
                }
                else
                {
                    Wyswietlanie.pisz("Powrot", kolor, x + 1, temp);
                }

                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.White;
                }
            }
        }
コード例 #2
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
        public static void okienko(string tytul, int x, int y, int width, int height)
        {
            Wyswietlanie.wyczyscPole(x, y, width, height);
            var offset = (width - tytul.Length) / 2;

            Wyswietlanie.prostokat(x, y, width, height);
            Wyswietlanie.gotoXY(x + offset, y + 1);
            Console.Write(tytul);
            Wyswietlanie.gotoXY(x, y + 2);
            Wyswietlanie.rozdzielacz(width, false);
        }
コード例 #3
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
 public static void wyczyscPole(int x, int y, int width, int height)
 {
     for (int i = 0; i < height; i++)
     {
         Wyswietlanie.gotoXY(x, y + i);
         for (int j = 0; j < width; j++)
         {
             Console.Write(" ");
         }
     }
 }
コード例 #4
0
        // drugie okno pomocnicze dojo. Tutaj możemy wykonywać ćwiczenia,
        // które podnoszą statystyki bohatera
        public void oknoCwiczen(Cwiczenie[] listaCwiczen, int zaznaczonaOpcja)
        {
            Wyswietlanie.okienko("Cwiczenia na silowni", 40, 3, 80, 30);
            Wyswietlanie.pisz("Cwiczenie", ConsoleColor.White, 43, 6);
            Wyswietlanie.pisz("koszt", ConsoleColor.White, 93, 6);
            Wyswietlanie.pisz("zycie", ConsoleColor.White, 99, 6);
            Wyswietlanie.pisz("stamina", ConsoleColor.White, 105, 6);
            Wyswietlanie.pisz("sila", ConsoleColor.White, 114, 6);

            Wyswietlanie.rozdzielacz(28, true, 92, 5);
            Wyswietlanie.rozdzielacz(28, true, 98, 5);
            Wyswietlanie.rozdzielacz(28, true, 104, 5);
            Wyswietlanie.rozdzielacz(28, true, 112, 5);
            Wyswietlanie.rozdzielacz(80, false, 40, 7);

            Wyswietlanie.krzyz(92, 7);
            Wyswietlanie.krzyz(98, 7);
            Wyswietlanie.krzyz(104, 7);
            Wyswietlanie.krzyz(112, 7);

            int y     = 8;
            var kolor = ConsoleColor.White;

            for (int i = 0; i <= listaCwiczen.Length; ++i)
            {
                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.Blue;
                }

                if (i < listaCwiczen.Length)
                {
                    Wyswietlanie.pisz(listaCwiczen[i].pobierzNazwe(), kolor, 43, y);
                    Wyswietlanie.pisz($"{listaCwiczen[i].pobierzKoszt()}g", kolor, 94, y);
                    uint[] staty = listaCwiczen[i].pobierzStaty();
                    Wyswietlanie.pisz($"{staty[0]}", kolor, 101, y);
                    Wyswietlanie.pisz($"{staty[1]}", kolor, 108, y);
                    Wyswietlanie.pisz($"{staty[2]}", kolor, 115, y);
                }
                else
                {
                    Wyswietlanie.pisz("Powrot", kolor, 43, y);
                }

                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.White;
                }

                y += 2;
            }
        }
コード例 #5
0
        // menu i ekran walki
        public void ekranWalki(int zaznaczonaOpcja)
        {
            Wyswietlanie.okienko("Wybierz akcje", 0, 3, 26, 30);

            for (int i = 0; i < this.opcjeWalki.Length; ++i)
            {
                if (i == zaznaczonaOpcja)
                {
                    Wyswietlanie.pisz(this.opcjeWalki[i], ConsoleColor.Blue, 3, 7 + 2 * i);
                }
                else
                {
                    Wyswietlanie.pisz(this.opcjeWalki[i], ConsoleColor.White, 3, 7 + 2 * i);
                }
            }
        }
コード例 #6
0
        public void oknoInstrukcji()
        {
            const int x = 65;

            Wyswietlanie.okienko("Instrukcja", x, 3, 120 - x, 30);
            var    czytnik = new System.IO.StreamReader(this.sciezkaInstrukcji);
            string linia;
            int    offsetY = 0;

            while ((linia = czytnik.ReadLine()) != null)
            {
                Wyswietlanie.pisz(linia, ConsoleColor.White, x + 3, 7 + offsetY);
                offsetY += 1;
            }
            czytnik.Close();
        }
コード例 #7
0
        // główne menu gry a także jej ekran tytułowy
        // wersja kiedy nie ma żadnego przeciwnika
        public void ekranGry(int zaznaczonaOpcja)
        {
            Wyswietlanie.okienko("Menu glowne", 0, 3, 30, 30);

            for (int i = 0; i < this.opcjeGry.Length; ++i)
            {
                if (i == zaznaczonaOpcja)
                {
                    Wyswietlanie.pisz(this.opcjeGry[i], ConsoleColor.Blue, 3, 7 + 2 * i);
                }
                else
                {
                    Wyswietlanie.pisz(this.opcjeGry[i], ConsoleColor.White, 3, 7 + 2 * i);
                }
            }
        }
コード例 #8
0
        // górny pasek statusu wyświetlający informacje o bohaterze
        // przyjmuje StatusPostaci
        public void pasekStatusu(StatusPostaci status)
        {
            // TODO: dodatkowe atrybuty przekazywać przez jakiś struct
            this.info();

            Wyswietlanie.prostokat(0, 0, 120, 3);
            Wyswietlanie.wyczyscPole(1, 1, 118, 1);

            string tekst = $"Sila:{status.sila}, Pancerz:{status.pancerz}, ";

            tekst += $"Poziom:{status.poziom}, Doswiadczenie:{status.doswiadczenie}/1000, ";
            tekst += $"Pkt. Zdol:{status.punktyZdolnosci}, Pieniadze:{status.pieniadze}g";

            Wyswietlanie.pisz($"Zycie:{status.zycie}, ", ConsoleColor.Red, 2, 1);
            Wyswietlanie.pisz($"Wytrzymalosc:{status.wytrzymalosc}, ", ConsoleColor.Yellow);
            Wyswietlanie.pisz(tekst, ConsoleColor.White);
        }
コード例 #9
0
        // pierwszy z ekranów pomocniczych dojo. Tutaj uczymy się nowych ciosów
        public void oknoNaukiCiosow(Cios[] listaCiosow, int zaznaczonaOpcja)
        {
            Wyswietlanie.okienko("Nauka ciosow", 40, 3, 80, 30);
            Wyswietlanie.pisz("Nazwa", ConsoleColor.White, 43, 6);
            Wyswietlanie.pisz("DMG", ConsoleColor.White, 109, 6);
            Wyswietlanie.pisz("Koszt", ConsoleColor.White, 114, 6);

            // Wyswietlanie.rozdzielacz(28, true, 80, 5);
            Wyswietlanie.rozdzielacz(28, true, 107, 5);
            Wyswietlanie.rozdzielacz(28, true, 113, 5);
            Wyswietlanie.rozdzielacz(80, false, 40, 7);

            // Wyswietlanie.krzyz(80, 7);
            Wyswietlanie.krzyz(107, 7);
            Wyswietlanie.krzyz(113, 7);

            int y     = 8;
            var kolor = ConsoleColor.White;

            for (int i = 0; i <= listaCiosow.Length; ++i)
            {
                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.Blue;
                }

                if (i < listaCiosow.Length)
                {
                    Wyswietlanie.pisz(listaCiosow[i].pobierzNazwe(), kolor, 43, y);
                    Wyswietlanie.pisz(listaCiosow[i].pobierzObrazenia().ToString(), kolor, 110, y);
                    Wyswietlanie.pisz(listaCiosow[i].pobierzKoszt().ToString(), kolor, 116, y);
                }
                else
                {
                    Wyswietlanie.pisz("Powrot", kolor, 43, y);
                }

                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.White;
                }

                y += 2;
            }
        }
コード例 #10
0
        // ostatnie okno pomocnicze dojo. W tym możemy zakupować dodatkowe pancerze
        public void oknoPrzedmiotow(Przedmiot[] listaPrzedmiotow, int zaznaczonaOpcja)
        {
            Wyswietlanie.okienko("Pancerze do kupienia", 40, 3, 80, 30);
            Wyswietlanie.pisz("Nazwa", ConsoleColor.White, 43, 6);
            Wyswietlanie.pisz("Pancerz", ConsoleColor.White, 105, 6);
            Wyswietlanie.pisz("Cena", ConsoleColor.White, 114, 6);

            Wyswietlanie.rozdzielacz(28, true, 104, 5);
            Wyswietlanie.rozdzielacz(28, true, 112, 5);
            Wyswietlanie.rozdzielacz(80, false, 40, 7);

            Wyswietlanie.krzyz(104, 7);
            Wyswietlanie.krzyz(112, 7);

            int y     = 8;
            var kolor = ConsoleColor.White;

            for (int i = 0; i <= listaPrzedmiotow.Length; ++i)
            {
                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.Blue;
                }

                if (i < listaPrzedmiotow.Length)
                {
                    Wyswietlanie.pisz(listaPrzedmiotow[i].pobierzNazwe(), kolor, 43, y);
                    Wyswietlanie.pisz(listaPrzedmiotow[i].pobierzPancerz().ToString(), kolor, 108, y);
                    Wyswietlanie.pisz($"{listaPrzedmiotow[i].pobierzCene()}g", kolor, 114, y);
                }
                else
                {
                    Wyswietlanie.pisz("Powrot", kolor, 43, y);
                }

                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.White;
                }

                y += 2;
            }
        }
コード例 #11
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
 public static void rozdzielacz(int dlugosc, bool pionowy)
 {
     if (pionowy)
     {
         var x = Console.CursorLeft;
         var y = Console.CursorTop;
         Console.Write('┬');
         Wyswietlanie.gotoXY(x, y + 1);
         Wyswietlanie.linia(dlugosc - 2, true);
         Wyswietlanie.gotoXY(x, y + dlugosc - 1);
         Console.Write('┴');
     }
     else
     {
         Console.Write('├');
         Wyswietlanie.linia(dlugosc - 2, false);
         Console.Write('┤');
     }
 }
コード例 #12
0
        // Wyświetla przebieg walki (ciosy, ataki, punkty obrażeń)
        public void oknoPrzebieguWalki(string[] przebieg)
        {
            const int x = 29;

            Wyswietlanie.okienko("Przebieg Walki", x - 3, 3, 67, 30);

            int y = 7;
            int i = 0;

            if (przebieg.Length > 24)
            {
                i = przebieg.Length - 24;
            }

            for (; i < przebieg.Length; i++)
            {
                Wyswietlanie.pisz(przebieg[i], ConsoleColor.White, x, y++);
            }
        }
コード例 #13
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
 public static void linia(int dlugosc, bool pionowa)
 {
     if (pionowa)
     {
         var x = Console.CursorLeft;
         var y = Console.CursorTop;
         for (int i = 0; i < dlugosc; i++)
         {
             Wyswietlanie.gotoXY(x, y + i);
             Console.Write('│');
         }
     }
     else
     {
         for (int i = 0; i < dlugosc; i++)
         {
             Console.Write('─');
         }
     }
 }
コード例 #14
0
        // ekran dojo wyświetla dojo we współpracy z oknami ciosów, przedmiotów i ćwiczeń
        // przyjmuje int zaznaczonej opcji
        // (możemy wysłać -1 jeżeli nie chcemy zaznaczać niczego)
        public void ekranDojo(int zaznaczonaOpcja, bool rightScreen)
        {
            Wyswietlanie.okienko("Dojo", 0, 3, 40, 30);

            for (int i = 0; i < this.opcjeDojo.Length; ++i)
            {
                if (i == zaznaczonaOpcja)
                {
                    Wyswietlanie.pisz(this.opcjeDojo[i], ConsoleColor.Blue, 3, 7 + 2 * i);
                }
                else
                {
                    Wyswietlanie.pisz(this.opcjeDojo[i], ConsoleColor.White, 3, 7 + 2 * i);
                }
            }

            if (rightScreen)
            {
                Wyswietlanie.okienko("Podmenu", 40, 3, 80, 30);
            }
        }
コード例 #15
0
        public void oknoNastepnego(StatusPostaci przeciwnik, Cios[] listaCiosowPrzeciwnika)
        {
            this.oknoNastepnego();

            const int x = 33;

            Wyswietlanie.pisz($"Statystyki", ConsoleColor.White, x, 6);
            Wyswietlanie.pisz($"Życie: {przeciwnik.zycie}", ConsoleColor.Red, x, 8);
            Wyswietlanie.pisz($"Wytrzymalosc: {przeciwnik.wytrzymalosc}", ConsoleColor.Yellow, x, 9);
            Wyswietlanie.pisz($"Sila: {przeciwnik.sila}", ConsoleColor.White, x, 10);
            Wyswietlanie.pisz($"Pancerz: {przeciwnik.pancerz}", ConsoleColor.White, x, 11);
            Wyswietlanie.pisz($"Znane ciosy", ConsoleColor.White, x, 16);

            Wyswietlanie.rozdzielacz(35, false, x - 3, 7);

            Wyswietlanie.rozdzielacz(35, false, x - 3, 15);
            Wyswietlanie.rozdzielacz(35, false, x - 3, 17);

            for (int i = 0; i < listaCiosowPrzeciwnika.Length; i++)
            {
                Wyswietlanie.pisz($"{listaCiosowPrzeciwnika[i].pobierzNazwe()}", ConsoleColor.White, x, 19 + i);
            }
        }
コード例 #16
0
        // pop-up do wyboru obrony
        public void okienkoWyboruObrony(int zaznaczonaOpcja)
        {
            const int x = 16;
            const int y = 6;
            const int w = 16;

            Wyswietlanie.prostokat(x, y, w, 7);
            int temp, temp2 = x + w - 3;
            var kolor = ConsoleColor.White;

            for (int i = 0; i < opcjeObrony.Length; i++)
            {
                temp = y + 1 + (i * 2);
                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.Blue;
                }

                Wyswietlanie.pisz(this.opcjeObrony[i], kolor, x + 1, temp);

                switch (this.opcjeObrony[i])
                {
                case "Normalna":
                    Wyswietlanie.pisz(SilaObrony.kosztNormalna.ToString(), ConsoleColor.Yellow, temp2, temp);
                    break;

                case "Mocna":
                    Wyswietlanie.pisz(SilaObrony.kosztMocna.ToString(), ConsoleColor.Yellow, temp2, temp);
                    break;
                }

                if (i == zaznaczonaOpcja)
                {
                    kolor = ConsoleColor.White;
                }
            }
        }
コード例 #17
0
        // okno pomocnicze przeciwnika. Wyświetla jego status i znane ciosy
        public void oknoPrzeciwnika(StatusPostaci przeciwnik, Cios[] ciosyPrzeciwnika)
        {
            const int x = 96;

            Wyswietlanie.okienko("Twoj przeciwnik", x - 3, 3, 120 - x + 3, 30);

            Wyswietlanie.pisz($"Statystyki", ConsoleColor.White, x, 6);
            Wyswietlanie.pisz($"Życie: {przeciwnik.zycie}", ConsoleColor.Red, x, 8);
            Wyswietlanie.pisz($"Wytrzymalosc: {przeciwnik.wytrzymalosc}", ConsoleColor.Yellow, x, 9);
            Wyswietlanie.pisz($"Sila: {przeciwnik.sila}", ConsoleColor.White, x, 10);
            Wyswietlanie.pisz($"Pancerz: {przeciwnik.pancerz}", ConsoleColor.White, x, 11);
            Wyswietlanie.pisz($"Znane ciosy", ConsoleColor.White, x, 16);

            Wyswietlanie.rozdzielacz(120 - x + 3, false, x - 3, 7);

            Wyswietlanie.rozdzielacz(120 - x + 3, false, x - 3, 15);
            Wyswietlanie.rozdzielacz(120 - x + 3, false, x - 3, 17);


            for (int i = 0; i < ciosyPrzeciwnika.Length; i++)
            {
                Wyswietlanie.pisz($"{ciosyPrzeciwnika[i].pobierzNazwe()}", ConsoleColor.White, x, 19 + i);
            }
        }
コード例 #18
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
        public static void prostokat(int x, int y, int width, int height)
        {
            Wyswietlanie.wyczyscPole(x, y, width, height);

            // górna krawędź
            Wyswietlanie.gotoXY(x, y);
            Console.Write('┌');
            Wyswietlanie.linia(width - 2, false);
            Console.Write('┐');

            // dolna krawędź
            Wyswietlanie.gotoXY(x, y + height - 1);
            Console.Write('└');
            Wyswietlanie.linia(width - 2, false);
            Console.Write('┘');

            // lewa krawędź
            Wyswietlanie.gotoXY(x, y + 1);
            Wyswietlanie.linia(height - 2, true);

            // prawa krawędź
            Wyswietlanie.gotoXY(x + width - 1, y + 1);
            Wyswietlanie.linia(height - 2, true);
        }
コード例 #19
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
 public static void pisz(string tekst, ConsoleColor kolor, int x, int y)
 {
     gotoXY(x, y);
     Wyswietlanie.pisz(tekst, kolor);
 }
コード例 #20
0
 public void oknoNastepnego()
 {
     Wyswietlanie.okienko("Nastepny przeciwnik", 30, 3, 35, 30);
 }
コード例 #21
0
        // test interfejsu
        public void test()
        {
            Bohater tomek = new Bohater(100, 100, 100, 1);

            tomek.dodajPieniadze(200);
            tomek.dodajDoswiadczenie(3300);
            tomek.wydajPieniadze(20);

            Cios xd = new Cios("Testowy", 12, 2);

            for (int i = 0; i < 8; i++)
            {
                tomek.dodajCios(xd);
            }

            tomek.pozycjaObronna(SilaObrony.mocna);

            var pobraneCiosy = tomek.pobierzCiosy();
            var status       = tomek.pobierzStatus();

            System.Console.WriteLine(status.punktyZdolnosci);
            tomek.przyjmijObrazenia(10);

            this.pasekStatusu(status);
            this.ekranGry(0);
            this.oknoNastepnego(status, pobraneCiosy);
            this.oknoInstrukcji();
            Console.ReadKey();
            this.ekranDojo(1, true);
            Wyswietlanie.gotoXY(0, 38);
            Console.ReadKey();
            this.oknoNaukiCiosow(pobraneCiosy, 2);
            Console.ReadKey();
            var xp        = new Cwiczenie("Testowe", 4, 3, 4, 5);
            var cwiczenia = new Cwiczenie[] { xp, xp, xp };

            this.ekranDojo(0, true);
            this.oknoCwiczen(cwiczenia, 1);
            Console.ReadKey();
            this.ekranDojo(2, true);
            var xc         = new Przedmiot("Testowy", 12, 154);
            var przedmioty = new Przedmiot[] { xc, xc, xc, xc };

            this.oknoPrzedmiotow(przedmioty, 1);
            Console.ReadKey();

            Wyswietlanie.clrscr();
            this.pasekStatusu(status);
            this.ekranWalki(0);
            var lista = new List <string>();

            lista.Add("Zaczynamy! Hej, Hej!");
            lista.Add(" ");
            for (int i = 0; i < 16; i++)
            {
                lista.Add($"{i} TEST TEST TEST");
            }
            this.oknoPrzebieguWalki(lista.ToArray());
            this.oknoPrzeciwnika(status, pobraneCiosy);
            this.okienkoWyboruCiosu(pobraneCiosy, 1);
            Console.ReadKey();
            this.ekranWalki(1);
            this.oknoPrzebieguWalki(lista.ToArray());
            this.okienkoWyboruObrony(1);
            Wyswietlanie.gotoXY(0, 38);
            Console.ReadKey();
        }
コード例 #22
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
 public static void rozdzielacz(int dlugosc, bool pionowy, int x, int y)
 {
     Wyswietlanie.gotoXY(x, y);
     rozdzielacz(dlugosc, pionowy);
 }
コード例 #23
0
ファイル: Wyswietlanie.cs プロジェクト: Lawstorant/gra-k
 public static void krzyz(int x, int y)
 {
     Wyswietlanie.gotoXY(x, y);
     Console.Write('┼');
 }
コード例 #24
0
 // wyświetlanie informacji o grupie pod ekranem gry
 public void info()
 {
     Wyswietlanie.prostokat(0, 33, 23, 3);
     Wyswietlanie.pisz("Grupa 12, INIS2_3.1", ConsoleColor.White, 2, 34);
 }