예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("★☆★☆★☆★☆★☆ブラックジャックへようこそ!★☆★☆★☆★☆★☆");
            Console.WriteLine("ゲームを開始します。");
            Console.WriteLine();

            Player player = new Player();
            Dealer dealer = new Dealer();

            ArrayList playingCards = Playingcards();

            string cardName;

            for (int i = 1; i <= 2; i++)
            {
                cardName = RandomCard(playingCards);            //ランダムにカードを引く
                Console.WriteLine($"あなたの引いたカードは{cardName}です。"); //出力する
                Console.WriteLine();
                player.Hiku(PointPlayer(cardName));             //カードを引く

                playingCards.Remove(cardName);                  //引く際にガードの重複はないようにする
            }

            cardName = RandomCard(playingCards);
            Console.WriteLine($"ディーナーの引いたカードは{cardName}です。");
            Console.WriteLine();
            dealer.Hiku(CardPoint(cardName));
            playingCards.Remove(cardName);
            cardName = RandomCard(playingCards);

            Console.WriteLine("ディーナーの2枚目のカードは分かりません。");
            Console.WriteLine();
            dealer.Hiku(CardPoint(cardName));
            dealer.SecondCard(cardName);
            playingCards.Remove(cardName);

            Console.WriteLine($"あなたの現在の得点は{player.GetPoints()}。");
            if (player.GetPoints() == 21)
            {
                Console.WriteLine("*☆,°*:.☆*☆,°*:.☆BLACKJACK!*☆,°*:.☆*☆,°*:.☆");
            }

            while (player.GetPoints() < 21) //プレイヤー21点まで引くか引かないかを聞く
            {
                Console.WriteLine("カードを引きますか?引く場合はYを、引かない場合はNを入力してください。");
                string input = Console.ReadLine();

                if (!(input == "Y" || input == "N"))
                {
                    Console.WriteLine("引く場合はYを、引かない場合はNを入力してください。");
                }

                else if (input == "Y")
                {
                    cardName = RandomCard(playingCards);
                    Console.WriteLine($"あなたの引いたカードは{cardName}です。");
                    player.Hiku(PointPlayer(cardName));
                    playingCards.Remove(cardName);
                    Console.WriteLine($"あなたの得点は{player.GetPoints()}です。");
                    Console.WriteLine();
                }

                else //引かない場合
                {
                    break;
                }
            }


            if (player.GetPoints() < 21)        //プレイヤーの点数が21より小さい、ディーラーがカードを引く
            {
                while (dealer.GetPoints() < 17) //ディーラーが17点まで引き続ける
                {
                    cardName = RandomCard(playingCards);
                    Console.WriteLine($"ディーナーの引いたカードは{cardName}です。");
                    dealer.Hiku(CardPoint(cardName));
                    playingCards.Remove(cardName);
                }
            }
            else if (player.GetPoints() > 21)
            {
                Console.WriteLine("!!!!!!!バースト!!!!!!!");
            }


            Console.WriteLine();
            Console.WriteLine($"ディーナーの2枚目のカードは{dealer.GetSecondCard()}です。");
            Console.WriteLine($"あなたの得点は{player.GetPoints()}です。");
            Console.WriteLine($"ディーナーの得点は{dealer.GetPoints()}です。");
            Console.WriteLine();
            Console.WriteLine("★☆★☆★☆★☆★☆★結果★☆★☆★☆★☆★☆★");
            WhoWin(player.GetPoints(), dealer.GetPoints());
            Console.WriteLine("★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆");
            Console.WriteLine("★★★ブラックジャック終了!また遊んでね!★★★");
        }