예제 #1
0
 private static void GoRound(List <Player> players, Dealer dealer, ref int groundMoney)
 {
     Break($"게임을 시작합니다. 참가비 {Constant.BettingMoney}원이 들어갑니다.");
     // 카드 회수
     foreach (var player in players)
     {
         player.DropCards();
     }
     dealer.Shuffle();
     // 참가비
     foreach (var player in players)
     {
         player.Bet.BetMoney += Constant.BettingMoney;
     }
     Console.Clear();
     // 카드 뽑기
     for (int i = 0; i < 2; i++)
     {
         foreach (var player in players)
         {
             player.AddCard(dealer.DrawCard());
         }
     }
     // 1페이즈 : 자신의 카드 1장을 확인한다
     PhaseOne(players);
     // 2페이즈 : 자신의 카드 1장과 상대방 카드 1장을 확인하고 베팅한다
     PhaseTwo(players);
 }
예제 #2
0
        static void Main(string[] args)
        {
            Dealer dealer = new Dealer();

            Board board = new Board();

            // 동적배열
            List <Player> players = new List <Player>();

            players.Add(new Player(0));
            players.Add(new Player(1));

            Scorer scorer = new Scorer();

            // 둘 중 한 명이 오링날 때까지
            while (CanGoRound(players))
            {
                // 딜러가 카드를 섞음
                dealer.Shuffle();

                // 판돈 내기
                for (int i = 0; i < players.Count; i++)
                {
                    players[i].Money -= 100;
                    board.Money      += 100;
                }

                // 각 플레이어에 카드를 2장씩 준다.
                for (int i = 0; i < players.Count; i++)
                {
                    players[i].Cards.Clear();

                    for (int j = 0; j < 2; j++)
                    {
                        Card card = dealer.GetCard();
                        players[i].TakeCard(card);
                    }
                }

                // 승자를 찾는다
                Player winner = scorer.GetWinner(players[0], players[1]);

                if (winner == null)
                {
                    continue;
                }

                // 판돈을 승자에게 준다.
                winner.Money += board.Money;
                board.Money   = 0;

                // 플레이어가 가진 카드와 소지금, 승자를 출력한다.
                PrintRoundResult(players, winner);
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            //딜러
            Dealer dealer = new Dealer();

            //보드
            Board board = new Board();

            //스코럴
            Scorer scorer = new Scorer();

            //플레이어
            //List는 동적배열
            List <Player> players = new List <Player>();

            players.Add(new Player(0));
            players.Add(new Player(1));

            // 둘 중 한 명이 올인 날 때까지..
            while (CanGoRound(players))
            {
                // 라운드 진행

                // 딜러가 카드를 섞는다.
                dealer.Shuffle();

                // 판돈 내기
                for (int i = 0; i < players.Count; i++)
                {
                    players[i].Money -= 100;
                    board.Money      += 100;
                }

                // 카드 나눠주기(각 플레이어에게 2장씩 준다)
                for (int i = 0; i < players.Count; i++)
                {
                    players[i].cards.Clear();
                    for (int j = 0; j < 2; j++)
                    {
                        Card card = dealer.GetCard();
                        players[i].TakeCard(card);
                    }
                }

                // 승자를 찾는다.
                Player winner = scorer.GetWinner(players[0], players[1]);

                // 무승부면 루프의 처음으로 다시 돌아가서 실행.
                if (winner == null)
                {
                    continue;
                }

                // 판돈을 승자에게 준다.
                winner.Money += board.Money;
                // 보드는 금액을 0으로 초기화.
                board.Money = 0;

                // 플레리어가 가진 카드와 소지금, 승자를 출력한다.
                PrintRoundResult(players, winner);
            } // end of while()
        }     //end of main()