Exemplo n.º 1
0
 public Game(List <Participant> participants, PartnerMethod partnerMethod, bool enableLeasters, IRandomWrapper random = null, IGameStateDescriber gameStateDescriber = null) : this()
 {
     Hands           = Hands ?? new List <Hand>();
     LeastersEnabled = enableLeasters;
     Id                  = Guid.NewGuid();
     Participants        = participants;
     PartnerMethodEnum   = partnerMethod;
     _random             = random ?? _random;
     _gameStateDesciber1 = gameStateDescriber ?? _gameStateDesciber1;
 }
Exemplo n.º 2
0
        private string RunGame(int gameNo, List <IPlayer> players, PartnerMethod partnerMethod, int handsToPlay)
        {
            var participants = players.Select(p => p.Participant).ToList();
            var game         = new Game(participants, partnerMethod, enableLeasters: true);

            for (var g = 0; g < handsToPlay; ++g)
            {
                var hand        = new Hand(game);
                var picker      = game.PlayNonHumanPickTurns();
                var buriedCards = picker != null?picker.DropCardsForPick(hand) : new List <SheepCard>();

                while (!hand.IsComplete())
                {
                    var trick = new Trick(hand);
                    game.PlayNonHumansInTrick();
                }
            }
            var outputString1 = "";
            var outputString2 = "";

            foreach (var coinSet in game.GameCoins())
            {
                outputString1 += StringSegment(coinSet.Name);
                outputString2 += StringSegment(coinSet.Coins.ToString());
                if (!_playerTypeCoins.ContainsKey(coinSet.Name))
                {
                    _playerTypeCoins[coinSet.Name] = 0;
                }
                _playerTypeCoins[coinSet.Name] += coinSet.Coins;
            }
            //var leastersScores = game.Decks.Where(d => d.Hand.Leasters).Select(d => d.Hand.Scores());
            return("Game: " + gameNo + (game.PlayerCount == 5 ? "  " + game.PartnerMethod.ToString() : "") + Environment.NewLine +
                   outputString1 + Environment.NewLine +
                   outputString2 + Environment.NewLine +
                   Environment.NewLine);
        }
Exemplo n.º 3
0
        public IGame Create(int humanCount, int simpleCount, int intermediateCount, int advancedCount, PartnerMethod partnerMethod, bool leastersGame)
        {
            var participants = new List <Participant>();

            for (var i = 0; i < humanCount; ++i)
            {
                participants.Add(new Participant()
                {
                    Type = Participant.TYPE_HUMAN
                });
            }
            for (var i = 0; i < simpleCount; ++i)
            {
                participants.Add(new Participant()
                {
                    Type = Participant.TYPE_SIMPLE
                });
            }
            for (var i = 0; i < intermediateCount; ++i)
            {
                participants.Add(new Participant()
                {
                    Type = Participant.TYPE_INTERMEDIATE
                });
            }
            for (var i = 0; i < advancedCount; ++i)
            {
                participants.Add(new Participant()
                {
                    Type = Participant.TYPE_ADVANCED
                });
            }
            var newGame = new Game(participants, partnerMethod, leastersGame);

            newGame.RearrangePlayers();
            context.Game.Add(newGame);
            return(newGame);
        }
Exemplo n.º 4
0
        private void PlayTwoFivePlayer(string participantType1, string participantType2, StringBuilder stringBuilder, PartnerMethod partnerMethod, ref int gameNo, int handCount)
        {
            List <IPlayer> players = new List <IPlayer>()
            {
                new Participant()
                {
                    Type = participantType1
                }.Player,
                new Participant()
                {
                    Type = participantType1
                }.Player,
                new Participant()
                {
                    Type = participantType2
                }.Player,
                new Participant()
                {
                    Type = participantType2
                }.Player,
                new Participant()
                {
                    Type = participantType2
                }.Player,
            };

            players[0].Name = participantType1;
            players[1].Name = participantType1;
            players[2].Name = participantType2;
            players[3].Name = participantType2;
            players[4].Name = participantType2;
            stringBuilder.Append(RunGame(++gameNo, players, partnerMethod, handCount));

            players = new List <IPlayer>()
            {
                new Participant()
                {
                    Type = participantType1
                }.Player,
                new Participant()
                {
                    Type = participantType2
                }.Player,
                new Participant()
                {
                    Type = participantType1
                }.Player,
                new Participant()
                {
                    Type = participantType2
                }.Player,
                new Participant()
                {
                    Type = participantType2
                }.Player,
            };
            players[0].Name = participantType1;
            players[1].Name = participantType2;
            players[2].Name = participantType1;
            players[3].Name = participantType2;
            players[4].Name = participantType2;
            stringBuilder.Append(RunGame(++gameNo, players, partnerMethod, handCount));
        }