static void Main(string[] args) { Plansza gracz = new Plansza(); Plansza komputer = new Plansza(); Plansza ukrytaGracz = new Plansza(); Plansza ukrytaKomputer = new Plansza(); gracz.Wyswietl(); Flota gracza = new Flota(); Flota komputera = new Flota(); //logika komputer List <Pole> potencjalneStrzalyKomputera = new List <Pole>(); while (true) { Console.WriteLine("\nWybierz:\n" + $"1. Ustaw statki, pozostało: Jednomasztowiec * {4 - gracza.UstawioneJ}, Dwumasztowiec * {3 - gracza.UstawioneD}, Trzymasztowiec * {2 - gracza.UstawioneT}, Czteromasztowiec *{1 - gracza.UstawioneC}\n" + "2. Rozstaw statki automatycznie\n" + "3. Wyswietl Swoją Planszę\n" + "4. Rozpocznij grę\n" + "0. Wyjscie\n" ); int wybor; while (!int.TryParse(Console.ReadLine(), out wybor)) { Console.WriteLine("\nPodałeś zły znak! wpisz jeszcze raz!"); Console.WriteLine("\nWybierz:\n" + $"1. Ustaw statki, pozostało: Jednomasztowiec * {4 - gracza.UstawioneJ}, Dwumasztowiec * {3 - gracza.UstawioneD}, Trzymasztowiec * {2 - gracza.UstawioneT}, Czteromasztowiec *{1 - gracza.UstawioneC}\n" + "2. Rozstaw statki automatycznie\n" + "3. Wyswietl Swoją Planszę\n" + "4. Rozpocznij grę\n" + "0. Wyjscie\n" ); } switch (wybor) { case 1: int[] pole = PodajWspolrzednePol(); if (PoliczOdlegloscMiedzyPolami(pole) == 4) { if (gracza.UstawioneC < 1) { try { gracza.czteromasztowiec[gracza.UstawioneC] = new Czteromasztowiec(); gracza.czteromasztowiec[gracza.UstawioneC].UstawStatek(gracz.Plan[pole[0], pole[1]], gracz.Plan[pole[2], pole[3]], gracz); gracza.UstawioneC++; } catch (Exception e) { Console.WriteLine("Cos poszlo nietak " + e); } } else { Console.WriteLine("Ustawiłeś już maksymalną liczbę tego rodzaju statku"); } } if (PoliczOdlegloscMiedzyPolami(pole) == 3) { if (gracza.UstawioneT < 2) { try { gracza.trzymasztowiec[gracza.UstawioneT] = new Trzymasztowiec(); gracza.trzymasztowiec[gracza.UstawioneT].UstawStatek(gracz.Plan[pole[0], pole[1]], gracz.Plan[pole[2], pole[3]], gracz); gracza.UstawioneT++; } catch (Exception e) { Console.WriteLine("Cos poszlo nietak " + e); } } else { Console.WriteLine("Ustawiłeś już maksymalną liczbę tego rodzaju statku"); } } if (PoliczOdlegloscMiedzyPolami(pole) == 2) { if (gracza.UstawioneD < 3) { try { gracza.dwumasztowiec[gracza.UstawioneD] = new Dwumasztowiec(); gracza.dwumasztowiec[gracza.UstawioneD].UstawStatek(gracz.Plan[pole[0], pole[1]], gracz.Plan[pole[2], pole[3]], gracz); gracza.UstawioneD++; } catch (Exception e) { Console.WriteLine("Cos poszlo nietak " + e); } } else { Console.WriteLine("Ustawiłeś już maksymalną liczbę tego rodzaju statku"); } } if (PoliczOdlegloscMiedzyPolami(pole) == 1) { if (gracza.UstawioneJ < 4) { try { gracza.jednomasztowiec[gracza.UstawioneJ] = new Jednomasztowiec(); gracza.jednomasztowiec[gracza.UstawioneJ].UstawStatek(gracz.Plan[pole[0], pole[1]], gracz.Plan[pole[2], pole[3]], gracz); gracza.UstawioneJ++; } catch (Exception e) { Console.WriteLine("Cos poszlo nietak " + e); } } else { Console.WriteLine("Ustawiłeś już maksymalną liczbę tego rodzaju statku"); } } if (PoliczOdlegloscMiedzyPolami(pole) <= 0) { Console.WriteLine("Statek nie jest w Pionie lub Poziomie!"); } gracz.Wyswietl(); break; case 2: UstawStatkiAutomatycznie(gracz, gracza); gracz.Wyswietl(); break; case 3: gracz.Wyswietl(); break; case 4: if (10 - gracza.UstawioneJ - gracza.UstawioneD - gracza.UstawioneT - gracza.UstawioneC == 0) // jeśli rozstawiłeś już statki { UstawStatkiAutomatycznie(komputer, komputera); while (true) { Console.WriteLine("\nWybierz:\n" + $"1. Strzelaj\n" + "2. Statystyka\n" + "3. Wyswietl Swoją Planszę\n" + "4. Wyswietl Plansze Cel\n" + "0. Wyjscie\n" ); int wybor2; while (!int.TryParse(Console.ReadLine(), out wybor2)) { Console.WriteLine("\nPodałeś zły znak! wpisz jeszcze raz!"); Console.WriteLine("\nWybierz:\n" + $"1. Strzelaj\n" + "2. Statystyka\n" + "3. Wyswietl Swoją Planszę\n" + "4. Wyswietl Plansze Cel\n" + "0. Wyjscie\n" ); } switch (wybor2) { case 1: int s = 3; // sprawdza czystrzał się udał s = Strzelaj(komputer, ukrytaGracz, PodajWspolrzedneJednegoPola("do strzału")); if (komputera.Zatopienia == 10) { Console.WriteLine("!!!!!WYGRAŁEŚ!!!!!"); Console.WriteLine(gracza.Statystyka("Gracz ")); Console.WriteLine(komputera.Statystyka("Komputer ")); Console.ReadKey(); return; } if (s != 3) { Console.WriteLine("Strzał Komputera"); potencjalneStrzalyKomputera = KomputerStrzela(gracz, ukrytaKomputer, potencjalneStrzalyKomputera); if (gracza.Zatopienia == 10) { Console.WriteLine("!!!!! =((((( PRZEGRAŁEŚ =((((( !!!!!"); Console.WriteLine(gracza.Statystyka("Gracz ")); Console.WriteLine(komputera.Statystyka("Komputer ")); Console.ReadKey(); return; } } break; case 2: Console.WriteLine(gracza.Statystyka("Gracz ")); Console.WriteLine(komputera.Statystyka("Komputer ")); break; case 3: gracz.Wyswietl(); break; case 4: ukrytaGracz.Wyswietl(); break; case 0: return; default: Console.WriteLine("Nie ma takiej opcji w Menu"); break; } } } else { Console.WriteLine("Nie rozstawiłeś wszystkich statków"); } break; case 0: return; default: Console.WriteLine("Nie ma takiej opcji w Menu"); break; } } }