private void OtoczenieZatopionego(int i, ref PlanszaStatkow plansza, ref List <Statek> statki)
 {
     if (statki[i].Orientacja == 0)
     {
         for (int j = statki[i].X - 1; j <= statki[i].X + 1; j++)
         {
             for (int k = statki[i].Y - 1; k <= statki[i].Y + statki[i].Rozmiar; k++)
             {
                 if (j > 0 && j < plansza.PolaX && k > 0 && k < plansza.PolaY)
                 {
                     if (plansza.PolaPlanszy[j, k] == ".")
                     {
                         plansza.PolaPlanszy[j, k] = "*";
                     }
                 }
             }
         }
     }
     else
     {
         for (int j = statki[i].X - 1; j <= statki[i].X + statki[i].Rozmiar; j++)
         {
             for (int k = statki[i].Y - 1; k <= statki[i].Y + 1; k++)
             {
                 if (j > 0 && j < plansza.PolaX && k > 0 && k < plansza.PolaY)
                 {
                     if (plansza.PolaPlanszy[j, k] == ".")
                     {
                         plansza.PolaPlanszy[j, k] = "*";
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
        public void Wyswietl(PlanszaStatkow przeciwnik)
        {
            Wyswietl();
            Console.SetCursorPosition(10, 14);
            Console.WriteLine("Planasza Gracza");
            przeciwnik.pozycjaKursoraX = 40;

            Console.SetCursorPosition(przeciwnik.pozycjaKursoraX, przeciwnik.pozycjaKursoraY);
            for (int i = 0; i < przeciwnik.PolaX; i++)
            {
                Console.SetCursorPosition(przeciwnik.pozycjaKursoraX, przeciwnik.pozycjaKursoraY + i);
                Console.Write("|");
                for (int j = 0; j < przeciwnik.PolaY; j++)
                {
                    if (przeciwnik.polaPlanszy[i, j] == "S")
                    {
                        Console.Write(".");
                        Console.Write(" |");
                    }
                    else if (i > 0 && j > 0)
                    {
                        if (przeciwnik.polaPlanszy[i, j] == "X")
                        {
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.Write(przeciwnik.polaPlanszy[i, j]);
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.Write(" |");
                        }
                        else if (przeciwnik.polaPlanszy[i, j] == "*")
                        {
                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.Write(przeciwnik.polaPlanszy[i, j]);
                            Console.ForegroundColor = ConsoleColor.White;
                            Console.Write(" |");
                        }
                        else
                        {
                            Console.Write(przeciwnik.polaPlanszy[i, j] + " |");
                        }
                    }

                    if (i == 0)
                    {
                        Console.Write(przeciwnik.polaPlanszy[i, j]);
                    }
                    else if (j == 0)
                    {
                        Console.Write(przeciwnik.polaPlanszy[i, j]);
                    }
                }
                Console.WriteLine("\n");
            }
            przeciwnik.pozycjaKursoraX = 2;
            Console.SetCursorPosition(47, 14);
            Console.WriteLine("Plansza przeciwnika");
        }
 protected int SprWygranej(PlanszaStatkow plansza)
 {
     for (int i = 0; i < plansza.PolaX; i++)
     {
         for (int j = 0; j < plansza.PolaY; j++)
         {
             if (plansza.PolaPlanszy[i, j] == "S")
             {
                 return(0);
             }
         }
     }
     return(1);
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            Gra gra = new Gra();

            gra.InfoStartowe();

            List <Statek> statkiGracza1 = new List <Statek>(); //Tworzenie statków jako obiektów i spakowanie ich do listy.
            Statek        statek        = new Statek(4);

            statkiGracza1.Add(statek);
            statek = new Statek(4);
            statkiGracza1.Add(statek);
            statek = new Statek(3);
            statkiGracza1.Add(statek);
            statek = new Statek(3);
            statkiGracza1.Add(statek);
            statek = new Statek(2);
            statkiGracza1.Add(statek);
            statek = new Statek(2);
            statkiGracza1.Add(statek);
            statek = new Statek(1);
            statkiGracza1.Add(statek);
            statek = new Statek(1);
            statkiGracza1.Add(statek);

            List <Statek> statkiGracza2 = statek.KopiowanieKolekcji(statkiGracza1); //Utworzenie listy i klonowanie obiektów

            PlanszaStatkow planszaGracz1 = new PlanszaStatkow();                    //Tworzenie indywidualnej planszy i rozstawienie statków dla każdego gracza.

            planszaGracz1.UstawStatki(ref statkiGracza1);

            PlanszaStatkow planszaGracz2 = new PlanszaStatkow();

            planszaGracz2.Wyswietl();
            planszaGracz2.UstawStatki(ref statkiGracza2);

            gra.Start(planszaGracz1, statkiGracza1, planszaGracz2, statkiGracza2);
        }
 protected int Ostrzal(int x, int y, ref PlanszaStatkow plansza, ref List <Statek> statki)
 {
     if (plansza.PolaPlanszy[x, y] == "S")
     {
         plansza.PolaPlanszy[x, y] = "X";
         for (int i = 0; i < statki.Count; i++)
         {
             statki[i].ZmniejszenieZycia(x, y);
             if (statki[i].CzyZatopiony())
             {
                 OtoczenieZatopionego(i, ref plansza, ref statki);
             }
         }
         return(1);
     }
     else
     {
         if (plansza.PolaPlanszy[x, y] == ".")
         {
             plansza.PolaPlanszy[x, y] = "*";
         }
         return(0);
     }
 }
        public void Start(PlanszaStatkow gracz1, List <Statek> statkiGracza1, PlanszaStatkow gracz2, List <Statek> statkiGracza2)
        {
            int  ostrzalX, ostrzalY, warunekTrafienia;
            bool warunekWpisania = true;

            Console.Clear();
            Console.SetCursorPosition(2, 0);
            Console.WriteLine("Rozpoczyna GRACZ1\n  Nacisnij kalwisz");
            Console.ReadKey();
            do
            {
                warunekTrafienia = 1;
                for (int i = 0; warunekTrafienia == 1 && SprWygranej(gracz2) == 0; i++)
                {
                    warunekWpisania = true;
                    Console.Clear();
                    Console.SetCursorPosition(35, 0);
                    Console.WriteLine("GRACZ1");
                    if (i == 0)
                    {
                        Console.WriteLine("Naciśnij klawisz");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("TRAFIONY");
                    }
                    gracz1.Wyswietl(gracz2);

                    while (warunekWpisania)
                    {
                        Console.WriteLine("\nPodaj współrzędne do ostrzału: ");
                        Console.WriteLine("Współrzędna y: ");
                        Int32.TryParse(Console.ReadLine(), out ostrzalX);
                        Console.WriteLine("Współrzędna x: ");
                        Int32.TryParse(Console.ReadLine(), out ostrzalY);
                        if (ostrzalX > 0 && ostrzalX < gracz1.PolaX && ostrzalY > 0 && ostrzalY < gracz1.PolaY)
                        {
                            warunekTrafienia = Ostrzal(ostrzalX, ostrzalY, ref gracz2, ref statkiGracza2);
                            warunekWpisania  = false;
                        }
                    }
                }
                warunekTrafienia = 1;
                for (int i = 0; warunekTrafienia == 1 && SprWygranej(gracz1) == 0 && SprWygranej(gracz2) == 0; i++)
                {
                    warunekWpisania = true;
                    Console.Clear();
                    Console.SetCursorPosition(35, 0);
                    Console.WriteLine("GRACZ2");
                    if (i == 0)
                    {
                        Console.WriteLine("\nNaciśnij klawisz");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("TRAFIONY");
                    }
                    gracz2.Wyswietl(gracz1);
                    while (warunekWpisania)
                    {
                        Console.WriteLine("\nPodaj współrzędne do ostrzału: ");
                        Console.WriteLine("Współrzędna y: ");
                        Int32.TryParse(Console.ReadLine(), out ostrzalX);
                        Console.WriteLine("Współrzędna x: ");
                        Int32.TryParse(Console.ReadLine(), out ostrzalY);
                        if (ostrzalX > 0 && ostrzalX < gracz2.PolaX && ostrzalY > 0 && ostrzalY < gracz2.PolaY)
                        {
                            warunekTrafienia = Ostrzal(ostrzalX, ostrzalY, ref gracz1, ref statkiGracza1);
                            warunekWpisania  = false;
                        }
                    }
                }
            } while (SprWygranej(gracz1) == 0 && SprWygranej(gracz2) == 0);

            Console.Clear();

            Console.WriteLine("KONIEC GRY");
            if (SprWygranej(gracz1) == 1)
            {
                Console.WriteLine("Wygrał GRACZ2");
            }
            if (SprWygranej(gracz2) == 1)
            {
                Console.WriteLine("Wygrał GRACZ1");
            }

            Console.ReadKey();
        }