コード例 #1
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);
        }
コード例 #2
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);
        }
コード例 #3
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);
        }
コード例 #4
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);
        }
コード例 #5
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();
        }
コード例 #6
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);
        }