private static void SijoitaLaivatSatunnaisesti(Pelaaja pelaaja) { do { Random rnd = new Random(); int x = rnd.Next(1, 6); int y = rnd.Next(1, 6); string ys = NumeroKirjaimeksi(y); string paikka = ys + Convert.ToString(x); bool OnkoOikeaPaikanFormaatti = false; try { OnkoOikeaPaikanFormaatti = Peli.AsetaLaiva(pelaaja, paikka); } catch (Exception ex) { Console.WriteLine(" Virhe: " + ex.Message); } if (OnkoOikeaPaikanFormaatti == false) { Console.WriteLine("Paikka ei ollut oikeassa formaattissa. Ole hyvä ja yrita uudestaan."); } } while (pelaaja.LaivanPaikat.Count < 1); }
public static Pelaaja LuoSimuloituPelaaja() { Pelaaja output = new Pelaaja(); output.simuloituPelaaja = true; output.käyttäjä = "Tietokone"; // Alustetaan pelialue. Peli.AlustaPeliAlue(output); // Sijoitetaan laivat. SijoitaLaivatSatunnaisesti(output); // Tyhjennetään konsoli Console.Clear(); return(output); }
public static Pelaaja LuoPelaaja() { Pelaaja output = new Pelaaja(); Console.WriteLine("Anna pelaajan tiedot: \n"); // Kysyy pelaajan nimen. output.käyttäjä = KysyPelaajanNimi(); // Alustetaan pelialue. Peli.AlustaPeliAlue(output); // Kysyy pelaajalta mihin laiva sijoitetaan? SijoitaLaivat(output); // Tyhjennetään konsoli Console.Clear(); return(output); }
private static void TallennaPelaajanAmmunta(Pelaaja aktiivinenPelaaja, Pelaaja opponent) { bool onkkelvollinenLaukaus = false; string rivi = ""; int sarake = 0; do { string laukaus; if (aktiivinenPelaaja.simuloituPelaaja) { laukaus = KysyAmmunnanKohdeRuutuTietokoneelta(aktiivinenPelaaja); } else { laukaus = KysyAmmunnanKohdeRuutuPelaajalta(aktiivinenPelaaja); } try { (rivi, sarake) = Peli.ParsiRiviJaSarake(laukaus); onkkelvollinenLaukaus = Peli.Tarkastalaukaus(aktiivinenPelaaja, rivi, sarake); } catch (Exception ex) { Console.WriteLine("Virhe: " + ex.Message); onkkelvollinenLaukaus = false; } if (onkkelvollinenLaukaus == false && !aktiivinenPelaaja.simuloituPelaaja) { Console.WriteLine("Paikka ei kelpaa. Ole hyvä ja yritä uudelleen."); } } while (onkkelvollinenLaukaus == false); bool onkoOsuma = Peli.TutkiLaukauksenSeuraus(opponent, rivi, sarake); Peli.TalletaAmmuksenTulos(aktiivinenPelaaja, rivi, sarake, onkoOsuma); TulostaLaukauksenSeuraus(rivi, sarake, onkoOsuma); }
static void Main(string[] args) { Console.WriteLine("Tervetuloa laivanupotukseen!"); Console.WriteLine(""); Pelaaja aktiivinenPelaja = TulostaKonsoliin.LuoPelaaja(); Pelaaja vastustaja = TulostaKonsoliin.LuoSimuloituPelaaja(); Pelaaja voittaja = null; do { NäytäPelialue(aktiivinenPelaja); TallennaPelaajanAmmunta(aktiivinenPelaja, vastustaja); bool jatketaankoPelia = Peli.OnkoPelaajaAktiivinen(vastustaja); if (jatketaankoPelia == true) { (aktiivinenPelaja, vastustaja) = (vastustaja, aktiivinenPelaja); } else { voittaja = aktiivinenPelaja; } } while (voittaja == null); Console.WriteLine($" Onnittelut {voittaja.käyttäjä} voiton johdosta!"); Console.WriteLine($" Voitton kului {Peli.AmmuttuLukumäärä(voittaja)} ammusta."); Console.WriteLine(); NäytäPelialue(voittaja); Console.WriteLine("Paina enter lopettaaksesi..."); Console.ReadKey(); Console.Clear(); }
private static void SijoitaLaivat(Pelaaja pelaaja) { do { Console.Write($" Mihin sijoitetaan laiva {pelaaja.LaivanPaikat.Count + 1}: "); string paikka = Console.ReadLine().Trim(); bool OnkoOikeanPaikanFormaatti = false; try { OnkoOikeanPaikanFormaatti = Peli.AsetaLaiva(pelaaja, paikka); } catch (Exception ex) { Console.WriteLine("Virhe: " + ex.Message); } if (OnkoOikeanPaikanFormaatti == false) { Console.WriteLine("Paikka ei ollut oikeassa formaattissa. Ole hyvä ja yrita uudestaan."); } } while (pelaaja.LaivanPaikat.Count < 1); }