Esempio n. 1
0
        private static string KysyAmmunnanKohdeRuutuPelaajalta(Pelaaja pelaaja)
        {
            Console.Write($"  {pelaaja.käyttäjä}, kerro mihin ammut: ");
            string laukaus = Console.ReadLine().Trim();

            return(laukaus);
        }
Esempio n. 2
0
        public static void AlustaPeliAlue(Pelaaja pelaaja)
        {
            List <string> kirjaimet = new List <string>
            {
                "A",
                "B",
                "C",
                "D",
                "E"
            };

            List <int> numerot = new List <int>
            {
                1,
                2,
                3,
                4,
                5
            };

            foreach (string kirjain in kirjaimet)
            {
                foreach (int numero in numerot)
                {
                    LisääRuutu(pelaaja, kirjain, numero);
                }
            }
        }
Esempio n. 3
0
        private static void NäytäPelialue(Pelaaja aktiivinenPelaaja)
        {
            string käsiteltäväRivi = aktiivinenPelaaja.AmmututPaikat[0].ruutuKirjain;

            foreach (var ruutu in aktiivinenPelaaja.AmmututPaikat)
            {
                if (ruutu.ruutuKirjain != käsiteltäväRivi)
                {
                    Console.WriteLine();
                    käsiteltäväRivi = ruutu.ruutuKirjain;
                }

                if (ruutu.Status == RuudunStatus.Tyhja)
                {
                    Console.Write($" {ruutu.ruutuKirjain}{ruutu.ruutuNumero} ");
                }
                else if (ruutu.Status == RuudunStatus.Osuma)
                {
                    Console.Write(" X  ");
                }
                else if (ruutu.Status == RuudunStatus.Ohi)
                {
                    Console.Write(" O  ");
                }
                else
                {
                    Console.Write(" ?  ");
                }
            }
            Console.WriteLine();
            Console.WriteLine();
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        private static void LisääRuutu(Pelaaja pelaaja, string kirjain, int numero)
        {
            Ruudukko ruutu = new Ruudukko
            {
                ruutuKirjain = kirjain,
                ruutuNumero  = numero,
                Status       = RuudunStatus.Tyhja
            };

            pelaaja.AmmututPaikat.Add(ruutu);
        }
Esempio n. 6
0
        private static string KysyAmmunnanKohdeRuutuTietokoneelta(Pelaaja pelaaja)
        {
            Random rnd = new Random();

            int    x       = rnd.Next(1, 6);
            int    y       = rnd.Next(1, 6);
            string ys      = TulostaKonsoliin.NumeroKirjaimeksi(y);
            string laukaus = ys + Convert.ToString(x);

            Console.WriteLine($"  {pelaaja.käyttäjä}: ammun: " + laukaus);
            return(laukaus);
        }
Esempio n. 7
0
        public static int AmmuttuLukumäärä(Pelaaja pelaaja)
        {
            int laukausLukumäärä = 0;

            foreach (var laukaus in pelaaja.AmmututPaikat)
            {
                if (laukaus.Status != RuudunStatus.Tyhja)
                {
                    laukausLukumäärä += 1;
                }
            }
            return(laukausLukumäärä);
        }
Esempio n. 8
0
        private static bool TarkastaRuudunPaikka(Pelaaja pelaaja, string rivi, int sarake)
        {
            bool onkoSopivaPaikka = false;

            foreach (var laiva in pelaaja.AmmututPaikat)
            {
                if (laiva.ruutuKirjain == rivi.ToUpper() && laiva.ruutuNumero == sarake)
                {
                    onkoSopivaPaikka = true;
                }
            }
            return(onkoSopivaPaikka);
        }
Esempio n. 9
0
        public static bool OnkoPelaajaAktiivinen(Pelaaja pelaaja)
        {
            bool onkoAktiivinen = false;

            foreach (var laiva in pelaaja.LaivanPaikat)
            {
                if (laiva.Status != RuudunStatus.Upposi)
                {
                    onkoAktiivinen = true;
                }
            }
            return(onkoAktiivinen);
        }
Esempio n. 10
0
        public static bool TutkiLaukauksenSeuraus(Pelaaja opponent, string rivi, int sarake)
        {
            bool onkoOsuma = false;

            foreach (var laiva in opponent.LaivanPaikat)
            {
                if (laiva.ruutuKirjain == rivi.ToUpper() && laiva.ruutuNumero == sarake)
                {
                    onkoOsuma    = true;
                    laiva.Status = RuudunStatus.Upposi;
                }
            }
            return(onkoOsuma);
        }
Esempio n. 11
0
        public static bool Tarkastalaukaus(Pelaaja pelaaja, string rivi, int sarake)
        {
            bool kelpaakoLaukaus = false;

            foreach (var ruutu in pelaaja.AmmututPaikat)
            {
                if (ruutu.ruutuKirjain == rivi.ToUpper() && ruutu.ruutuNumero == sarake)
                {
                    if (ruutu.Status == RuudunStatus.Tyhja)
                    {
                        kelpaakoLaukaus = true;
                    }
                }
            }
            return(kelpaakoLaukaus);
        }
Esempio n. 12
0
 public static void TalletaAmmuksenTulos(Pelaaja pelaaja, string rivi, int sarake, bool onkoOsuma)
 {
     foreach (var ruutu in pelaaja.AmmututPaikat)
     {
         if (ruutu.ruutuKirjain == rivi.ToUpper() && ruutu.ruutuNumero == sarake)
         {
             if (onkoOsuma)
             {
                 ruutu.Status = RuudunStatus.Osuma;
             }
             else
             {
                 ruutu.Status = RuudunStatus.Ohi;
             }
         }
     }
 }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        static void Main(string[] args)
        {
            Console.Title = "Taistelevat Laivat!";
            Console.WriteLine("Tervetuloa Taisteleviin Laivoihin!\r\n\r\n");
            Console.WriteLine("Anna nimesi: ");
            string nimi = System.Console.ReadLine();

            Console.WriteLine();
            Laivanupotuspelialusta l = new Laivanupotuspelialusta();
            Pelaaja p = new Pelaaja();

            p.Sattuma();
            while (p.getOsumat() < 17)
            {
                l.DisplayBoard(p.GetRuudukko());
                p.KysyKoordinaatit();
            }
            Console.WriteLine("Onnea, " + nimi + "! Sinä voitit!\r\n");
            Console.WriteLine("Huteja tuli: " + p.getHudit() + " yhteensä.\r\n");
            Console.WriteLine("Kiitos kun pelasit Taistelevia Laivoja. Paina Enteriä lopettaaksesi.");
            System.Console.ReadLine();
        }
Esempio n. 17
0
        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();
        }
Esempio n. 18
0
        public static bool AsetaLaiva(Pelaaja pelaaja, string paikka)
        {
            bool output = false;

            (string rivi, int sarake) = ParsiRiviJaSarake(paikka);

            bool onSopivaPaikka   = TarkastaRuudunPaikka(pelaaja, rivi, sarake);
            bool onkoPaikkaVapana = TarkistaLaivanPaikka(pelaaja, rivi, sarake);

            if (onSopivaPaikka && onkoPaikkaVapana)
            {
                Ruudukko r = new Ruudukko();
                r.ruutuKirjain = rivi.ToUpper();
                r.ruutuNumero  = sarake;
                r.Status       = RuudunStatus.Laiva;

                pelaaja.LaivanPaikat.Add(r);


                output = true;
            }
            return(output);
        }
Esempio n. 19
0
        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);
        }