コード例 #1
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        public static void KumpiVoitti(Käsi pe, Käsi ja, Tili tili)
        {
            Console.WriteLine();
            System.Threading.Thread.Sleep(2000);
            Console.ForegroundColor = ConsoleColor.Yellow;

            if (pe.BlackJack && ja.BlackJack)
            {
                Console.WriteLine("Molemmilla BlackJack! Tasapeli!");
                tasapelit++;
                tili.Tasapeli();
            }
            else if (pe.KadenArvo > ja.KadenArvo)
            {
                Console.WriteLine("Sinä voitit! Onneksi olkoon!");
                pelaajanVoitot++;
                tili.MaksaVoitto();
            }
            else if (pe.KadenArvo < ja.KadenArvo)
            {
                Console.WriteLine("Sinä hävisit. Jakaja voitti.");
                jakajanVoitot++;
                tili.Häviö();
            }
            else if (pe.KadenArvo == ja.KadenArvo)
            {
                Console.WriteLine("Tasapeli!");
                tasapelit++;
                tili.Tasapeli();
            }
            Console.ForegroundColor = ConsoleColor.White;
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        public static void HaluatkoTuplata(Käsi pe, Käsi ja, Korttipakka pakka, Tili tili)
        {
            //Liian vähän rahaa tuplaukseen
            if (tili.Rahat < tili.NykyinenPanostus)
            {
                Console.WriteLine("Sinulla ei tarpeeksi rahaa tuplaukseen..");
            }
            else
            {
                Console.WriteLine("Haluatko tuplata?\nY = Yes\nN = No");

vääräkomento:
                string tuplausKomento = Console.ReadLine();
                if (tuplausKomento.Equals("y", StringComparison.OrdinalIgnoreCase))
                {
                    Console.WriteLine();
                    tili.PanoksenTuplaus();
                    Tuplaus(pe, ja, pakka, tili);
                }
                else if (!tuplausKomento.Equals("n", StringComparison.OrdinalIgnoreCase))
                {
                    Console.WriteLine("Tuntematon komento, yritä uudelleen!");
                    goto vääräkomento;
                }
            }
            Console.WriteLine();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        public static void PeliLoppui(Käsi pe, Tili tili)
        {
            //Supervoitto
            if (pe.OnkoSuperVoitto())
            {
                tili.SuperVoitto();
            }
            Console.WriteLine();
            Console.WriteLine($"Peli loppui, mitä haluat tehdä seuraavaksi?\nP = Pelaa uudelleen\tL = Lopeta peli\t\tT = Tallenna rahat & Lopeta\tD = Tuhoa edellinen pelitallennus");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"Pelimerkkisi: {tili.Rahat}€");
            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Pelaajan voitot: " + pelaajanVoitot);
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.Write("\tJakajan voitot: " + jakajanVoitot);
            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.WriteLine("\tTasapelit: " + tasapelit);
            Console.ForegroundColor = ConsoleColor.White;

            //Console.WriteLine("Pelaajan voitot: " + pelaajanVoitot + "\tJakajan voitot: " + jakajanVoitot + "\tTasapelit: " + tasapelit);

UusiKomento:
            string komento = Console.ReadLine();

            if (komento.Equals("p", StringComparison.OrdinalIgnoreCase))
            {
                KaynnistaPeli();
            }
            else if (komento.Equals("l", StringComparison.OrdinalIgnoreCase))
            {
                Console.WriteLine();
                Console.WriteLine("Kiitos pelaamisesta! Tervetuloa uudelleen pelaamaan!\nMoi Moi!");
                System.Threading.Thread.Sleep(3000);
                Environment.Exit(0);
            }
            else if (komento.Equals("t", StringComparison.OrdinalIgnoreCase))
            {
                Utils_IO.VieRahatTiedostoon(tili, pelaajanVoitot, jakajanVoitot, tasapelit);
                Console.WriteLine("Kiitos pelaamisesta! Tervetuloa uudelleen pelaamaan!\nMoi Moi!");
                System.Threading.Thread.Sleep(3000);
                Environment.Exit(0);
            }
            else if (komento.Equals("d", StringComparison.OrdinalIgnoreCase))
            {
                Utils_IO.TuhoaTiedosto();
                Console.WriteLine("Tallennus tuhottu, mitä seuraavaksi?");
                goto UusiKomento;
            }
            else
            {
                Console.WriteLine("Tuntematon komento, yritä uudelleen!");
                goto UusiKomento;
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        public static void PelaajanVuoro(Käsi kasi, Korttipakka pakka, Tili tili)
        {
            //Lisää ettei hyväksy muita komentoja.
            string toiminto = " ";

            while (true)
            {
                Console.WriteLine("Mitä tehdään?\nH = Hit\nS = Stand");
                toiminto = Console.ReadLine();
                Console.WriteLine();

                if (toiminto.Equals("s", StringComparison.OrdinalIgnoreCase))
                {
                    break;
                }
                else if (!toiminto.Equals("h", StringComparison.OrdinalIgnoreCase))
                {
                    Console.WriteLine("Tuntematon komento, yritä uudelleen!");
                    continue;
                }

                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("Sinun kortti: ");
                System.Threading.Thread.Sleep(2000);
                kasi.Kadenkortit.Add(pakka.otaKorttiPakasta());
                Käsi.TarkistaJaMuutaAssatYkkosiksi(kasi);
                System.Threading.Thread.Sleep(2000);
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("Sinulla on " + kasi.KadenArvo);

                if (kasi.KadenArvo > 21)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("Sinulla yli! Jakaja voitti.");
                    Console.ForegroundColor = ConsoleColor.White;

                    jakajanVoitot++;
                    tili.Häviö();
                    PeliLoppui(kasi, tili);
                }
                else if (kasi.KadenArvo == 21)
                {
                    break;
                }
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        public static void Tuplaus(Käsi pelaaja, Käsi jakaja, Korttipakka pakka, Tili tili)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Tuplaus:\nSinun kortti: ");
            System.Threading.Thread.Sleep(2000);
            pelaaja.Kadenkortit.Add(pakka.otaKorttiPakasta());
            System.Threading.Thread.Sleep(2000);

            Käsi.TarkistaJaMuutaAssatYkkosiksi(pelaaja);
            Console.WriteLine("Sinulla on " + pelaaja.KadenArvo + "\n");
            Console.ForegroundColor = ConsoleColor.White;
            if (pelaaja.KadenArvo > 21)
            {
                Console.WriteLine("Sinulla yli! Jakaja voitti.");
                jakajanVoitot++;
                PeliLoppui(pelaaja, tili);
            }
            JakajanVuoro(jakaja, pelaaja, pakka, tili);
            KumpiVoitti(pelaaja, jakaja, tili);
            PeliLoppui(pelaaja, tili);
        }
コード例 #6
0
        public static void TarkistaJaMuutaAssatYkkosiksi(Käsi k)
        {
            int assiaYhteensa = 0;

            foreach (var item in k.Kadenkortit)
            {
                if (item.Arvo == 11)
                {
                    assiaYhteensa++;
                }
            }
            if (k.KadenArvo > 21 && assiaYhteensa > 0)
            {
                foreach (var item in k.Kadenkortit)
                {
                    if (item.Arvo == 11)
                    {
                        item.Arvo = 1;
                        break;
                    }
                }
            }
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        public static void KaynnistaPeli()
        {
            //Jos ensimmäinen kierros kysytään haluatko ladata tallennetun pelisi
            if (ensimmäinenKierros)
            {
                int?ladatutRahat = Utils_IO.HaluatkoLadataPelitilanteenRahat();
                if (ladatutRahat.HasValue)
                {
                    tili = new Tili(ladatutRahat);
                }
                ensimmäinenKierros = false;
            }
            //Luodaan pelitili
            tili = tili == null ? new Tili() : tili;
            //Luodaan uusi pakka / tai jos liian vähän kortteja
            pakka = TäytyyköLuodaUusiPakka(pakka);
            tili.LaitaPanos();
            //Luodaan pelaajan- ja jakajankäsi
            Käsi pe = new Käsi();
            Käsi ja = new Käsi();

            //Otetaan kaksi korttia molemmille pakasta
            Console.WriteLine();

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Sinun kortti: ");
            System.Threading.Thread.Sleep(2000);
            pe.Kadenkortit.Add(pakka.otaKorttiPakasta());

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.Write("Jakajan kortti: ");
            System.Threading.Thread.Sleep(2000);
            ja.Kadenkortit.Add(pakka.otaKorttiPakasta());

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Sinun kortti: ");
            System.Threading.Thread.Sleep(2000);
            pe.Kadenkortit.Add(pakka.otaKorttiPakasta());
            Console.WriteLine();
            System.Threading.Thread.Sleep(2000);
            Console.ForegroundColor = ConsoleColor.White;


            pe.OnkoBlackJack();
            if (pe.BlackJack)
            {
                Console.WriteLine("Sinulla on BlackJack!");
                JakajanVuoro(ja, pe, pakka, tili);
                KumpiVoitti(pe, ja, tili);
                PeliLoppui(pe, tili);
            }

            //Tarkistetaan tarviiko muuttaa Ässiä Ykkösiksi
            Käsi.TarkistaJaMuutaAssatYkkosiksi(pe);
            Käsi.TarkistaJaMuutaAssatYkkosiksi(ja);

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Sinulla on " + pe.KadenArvo);
            System.Threading.Thread.Sleep(1000);

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Jakajalla on " + ja.KadenArvo);
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine();

            HaluatkoTuplata(pe, ja, pakka, tili); //Pelaajan vuoro/Tuplaus

            //Pelaajan vuoro
            PelaajanVuoro(pe, pakka, tili);

            //Jakajan vuoro
            JakajanVuoro(ja, pe, pakka, tili);

            //Kumpi voitti tarkistus
            KumpiVoitti(pe, ja, tili);

            //Pelinlopetus
            PeliLoppui(pe, tili);
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        //SPLITTAUS!!!
        public static void Splittaa(Käsi pe, Käsi ja, Korttipakka pakka)
        {
            Käsi pe2 = new Käsi();

            pe2.Kadenkortit.Add(new Kortti(pe.Kadenkortit[0]));
            pe.Kadenkortit.RemoveAt(0);

            string toiminto = " ";

            // Ensimmäinen käsi
            while (true)
            {
                Console.WriteLine("Ensimmäinen käsi. Mitä tehdään?\nH = Hit\nS = Stand");
                toiminto = Console.ReadLine();
                Console.WriteLine();

                if (toiminto.Equals("s", StringComparison.OrdinalIgnoreCase))
                {
                    break;
                }
                else if (!toiminto.Equals("h", StringComparison.OrdinalIgnoreCase))
                {
                    Console.WriteLine("Tuntematon komento, yritä uudelleen!");
                    continue;
                }

                Console.Write("Sinun kortti: ");
                System.Threading.Thread.Sleep(2000);
                pe.Kadenkortit.Add(pakka.otaKorttiPakasta());
                Käsi.TarkistaJaMuutaAssatYkkosiksi(pe);
                System.Threading.Thread.Sleep(2000);
                Console.WriteLine("Sinulla on " + pe.KadenArvo);

                if (pe.KadenArvo > 21)
                {
                    Console.WriteLine("Sinulla yli!");
                    jakajanVoitot++; // MITEN VOITOT LASKETAAN KUN SPLITTI!?!?
                    break;
                }
            }
            //Toinen käsi
            while (true)
            {
                Console.WriteLine("Toinen käsi. Mitä tehdään?\nH = Hit\nS = Stand");
                toiminto = Console.ReadLine();
                Console.WriteLine();

                if (toiminto.Equals("s", StringComparison.OrdinalIgnoreCase))
                {
                    break;
                }
                else if (!toiminto.Equals("h", StringComparison.OrdinalIgnoreCase))
                {
                    Console.WriteLine("Tuntematon komento, yritä uudelleen!");
                    continue;
                }

                Console.Write("Sinun kortti: ");
                System.Threading.Thread.Sleep(2000);
                pe2.Kadenkortit.Add(pakka.otaKorttiPakasta());
                Käsi.TarkistaJaMuutaAssatYkkosiksi(pe2);
                System.Threading.Thread.Sleep(2000);
                Console.WriteLine("Sinulla on " + pe.KadenArvo);

                if (pe2.KadenArvo > 21)
                {
                    Console.WriteLine("Sinulla yli!");
                    jakajanVoitot++; // MITEN VOITOT LASKETAAN KUN SPLITTI!?!?
                    break;
                }
            }
            //Tähän vielä jatko koodia
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: rtcharni/Blackjack
        public static void JakajanVuoro(Käsi kasi, Käsi pelaajankasi, Korttipakka pakka, Tili tili)
        {
            if (pelaajankasi.BlackJack && (kasi.KadenArvo == 10 || kasi.KadenArvo == 11))
            {
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("Jakaja ottaa kortin yhden kortin..");
                System.Threading.Thread.Sleep(2000);
                kasi.Kadenkortit.Add(pakka.otaKorttiPakasta());
                Console.ForegroundColor = ConsoleColor.White;
                kasi.OnkoBlackJack();
                KumpiVoitti(pelaajankasi, kasi, tili);
                PeliLoppui(pelaajankasi, tili);
            }
            else if (pelaajankasi.BlackJack && kasi.KadenArvo < 10)
            {
                System.Threading.Thread.Sleep(2000);
                KumpiVoitti(pelaajankasi, kasi, tili);
                PeliLoppui(pelaajankasi, tili);
            }

            if (kasi.KadenArvo >= 17)
            {
                Console.WriteLine("Jakaja jää");
            }
            else
            {
                while (kasi.KadenArvo < 17)
                {
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("Jakaja ottaa kortin..");
                    System.Threading.Thread.Sleep(2000);
                    kasi.Kadenkortit.Add(pakka.otaKorttiPakasta());
                    System.Threading.Thread.Sleep(2000);

                    kasi.OnkoBlackJack();
                    if (kasi.BlackJack == true && pelaajankasi.BlackJack == true)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Jakajalla myös BlackJack! Tasapeli.");
                        Console.ForegroundColor = ConsoleColor.White;

                        tasapelit++;
                        tili.Tasapeli();
                        PeliLoppui(pelaajankasi, tili);
                    }
                    else if (kasi.BlackJack == true && pelaajankasi.BlackJack == false)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Jakajalla on BlackJack! Sinä hävisit.");
                        Console.ForegroundColor = ConsoleColor.White;

                        jakajanVoitot++;
                        tili.Häviö();
                        PeliLoppui(pelaajankasi, tili);
                    }
                    else if (kasi.BlackJack == false && pelaajankasi.BlackJack == true)
                    {
                        pelaajanVoitot++;
                        tili.MaksaVoittoBlackjack();
                        PeliLoppui(pelaajankasi, tili);
                    }

                    Käsi.TarkistaJaMuutaAssatYkkosiksi(kasi);
                    Console.WriteLine("Jakajalla on " + kasi.KadenArvo);
                    Console.ForegroundColor = ConsoleColor.White;

                    if (kasi.KadenArvo > 21)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine();
                        Console.WriteLine("Jakaja yli! Sina Voitit!");
                        Console.ForegroundColor = ConsoleColor.White;

                        pelaajanVoitot++;
                        tili.MaksaVoitto();
                        PeliLoppui(pelaajankasi, tili);
                    }
                }
            }
        }