Esempio n. 1
0
        public void PlayersCloseBlindAndThenFold()
        {
            Game       g      = new Game(new GamePreferences());
            GameLogger logger = g.GetLogger();

            UserProfile Niv  = new UserProfile("Niv", "123");
            UserProfile Omer = new UserProfile("Omer", "456");
            UserProfile Naor = new UserProfile("Naor", "789");

            PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
            PlayingUser OPlayer   = new PlayingUser(Omer.Username, 1000, g);
            PlayingUser NPlayer   = new PlayingUser(Naor.Username, 1000, g);

            g.addPlayer(nivPlayer);
            g.addPlayer(OPlayer);
            g.addPlayer(NPlayer);

            nivPlayer.SetFakeUserInput(new Queue <string>(new[] { "5", "0", "Fold" }));
            OPlayer.SetFakeUserInput(new Queue <string>(new[] { "0", "0", "Fold" }));
            NPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100" }));

            g.StartGame();

            Assert.AreEqual(1020, NPlayer.GetCredit());
        }
Esempio n. 2
0
        public void CheckGameReplay_29Moves()
        {
            Game       g      = new Game(new GamePreferences());
            GameLogger logger = g.GetLogger();

            UserProfile Niv   = new UserProfile("Niv", "123");
            UserProfile Omer  = new UserProfile("Omer", "456");
            UserProfile Naor  = new UserProfile("Naor", "789");
            UserProfile Koren = new UserProfile("Koren", "9");
            UserProfile Ohad  = new UserProfile("Ohad", "8");



            PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
            PlayingUser OPlayer   = new PlayingUser(Omer.Username, 1000, g);
            PlayingUser NPlayer   = new PlayingUser(Naor.Username, 1000, g);
            PlayingUser KPlayer   = new PlayingUser(Koren.Username, 1000, g);
            PlayingUser OhPlayer  = new PlayingUser(Ohad.Username, 1000, g);

            g.addPlayer(nivPlayer);
            g.addPlayer(OPlayer);
            g.addPlayer(NPlayer);
            g.addPlayer(KPlayer);
            g.addPlayer(OhPlayer);

            nivPlayer.SetFakeUserInput(new Queue <string>(new[] { "5", "0", "100" }));
            OPlayer.SetFakeUserInput(new Queue <string>(new[] { "0", "0", "100", "100", "0", "50", "Fold" }));
            NPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));
            KPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));
            OhPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));

            g.StartGame();

            Assert.AreEqual(29, logger.GetMoves().Count);
        }
Esempio n. 3
0
        public void updateLeagueToUser(PlayingUser playingUser)
        {
            UserProfile user = GetUserByName(playingUser.GetUserName());

            user.Credit += playingUser.GetCredit();
            user.updateStatistics(playingUser);

            if (user.UserStat.Winnings + user.UserStat.Losses < 10)
            {
                return;
            }
            League currLeague = user.League;

            foreach (League league in leagues.Values)
            {
                if (league.MinimumRank <= user.Credit && league.MinimumRank + 1000 > user.Credit)
                {
                    currLeague.removeUser(user);
                    league.addUser(user);
                    user.League = league;
                    return;
                }
            }

            createNewLeague((user.Credit / 1000) * 1000);
            currLeague.removeUser(user);
            League l = getLeagueByRank((user.Credit / 1000) * 1000);

            l.addUser(user);
            user.League = l;
        }
Esempio n. 4
0
        public void HeadToHead3Players()
        {
            Game       g      = new Game(new GamePreferences());
            GameLogger logger = g.GetLogger();

            UserProfile Niv  = new UserProfile("Niv", "123");
            UserProfile Omer = new UserProfile("Omer", "456");
            UserProfile Naor = new UserProfile("Naor", "789");

            PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
            PlayingUser OPlayer   = new PlayingUser(Omer.Username, 1000, g);
            PlayingUser NPlayer   = new PlayingUser(Naor.Username, 1000, g);

            g.addPlayer(nivPlayer);
            g.addPlayer(OPlayer);
            g.addPlayer(NPlayer);

            nivPlayer.SetFakeUserInput(new Queue <string>(new[] { "5", "50", "50", "100", "0" }));
            OPlayer.SetFakeUserInput(new Queue <string>(new[] { "0", "50", "50", "100", "0" }));
            NPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "0", "100", "0" }));

            g.StartGame();
            BetMove lastMove = (BetMove)logger.GetMoves().ElementAt(logger.GetMoves().Count - 1);
            IDictionary <string, int> playerBets = lastMove.GetPlayerBets();
            int potSize = 0;

            foreach (string s in playerBets.Keys)
            {
                potSize += playerBets[s];
            }

            Assert.AreEqual(1000 + 420, OPlayer.GetCredit());
        }
Esempio n. 5
0
        public void ValidBetMove()
        {
            Game       g      = new Game(new GamePreferences());
            GameLogger logger = g.GetLogger();

            UserProfile Niv  = new UserProfile("Niv", "123");
            UserProfile Omer = new UserProfile("Omer", "456");

            PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
            PlayingUser OPlayer   = new PlayingUser(Omer.Username, 1000, g);

            g.addPlayer(nivPlayer);
            g.addPlayer(OPlayer);

            nivPlayer.SetFakeUserInput(new Queue <string>(new[] { "5", "0" }));
            OPlayer.SetFakeUserInput(new Queue <string>(new[] { "0" }));

            g.StartGame();

            IDictionary <string, int> playerBets = new Dictionary <string, int>();

            playerBets.Add(nivPlayer.GetUserName(), 5);
            playerBets.Add(OPlayer.GetUserName(), 10);
            BetMove bm = new BetMove(playerBets, OPlayer, 10);
            BetMove compareToBetMove = ((BetMove)logger.GetMoves()[2]); //third move in game -> bigblind (first = start game, second = small blind, third=bigblind)


            foreach (string s in bm.GetPlayerBets().Keys)
            {
                int testBet = bm.GetPlayerBets()[s];
                int gameBet = compareToBetMove.GetPlayerBets()[s];
                Assert.AreEqual(testBet, gameBet);
            }
        }
Esempio n. 6
0
 public void GameStartWithLessThanMinimumPlayers()
 {
     Assert.Throws(typeof(InvalidOperationException), delegate()
     {
         Game g                = new Game(new GamePreferences(8, 2, 5, 10, 1, 2, 3, true));
         UserProfile Niv       = new UserProfile("Niv", "123");
         PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
         g.addPlayer(nivPlayer);
         g.StartGame();
     });
 }
Esempio n. 7
0
        static void Main(string[] args)
        {
            Game       g      = new Game(new GamePreferences());
            GameLogger logger = g.GetLogger();

            UserProfile Niv   = new UserProfile("Niv", "123");
            UserProfile Omer  = new UserProfile("Omer", "456");
            UserProfile Naor  = new UserProfile("Naor", "789");
            UserProfile Koren = new UserProfile("Koren", "9");
            UserProfile Ohad  = new UserProfile("Ohad", "8");



            PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
            PlayingUser OPlayer   = new PlayingUser(Omer.Username, 1000, g);
            PlayingUser NPlayer   = new PlayingUser(Naor.Username, 1000, g);
            PlayingUser KPlayer   = new PlayingUser(Koren.Username, 1000, g);
            PlayingUser OhPlayer  = new PlayingUser(Ohad.Username, 1000, g);

            g.addPlayer(nivPlayer);
            g.addPlayer(OPlayer);
            g.addPlayer(NPlayer);
            g.addPlayer(KPlayer);
            g.addPlayer(OhPlayer);

            nivPlayer.SetFakeUserInput(new Queue <string>(new[] { "5", "0", "100" }));
            OPlayer.SetFakeUserInput(new Queue <string>(new[] { "0", "0", "100", "100", "0", "50", "-1" }));
            NPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));
            KPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));
            OhPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));


            ThreadStart childref    = new ThreadStart(g.StartGame);
            Thread      childThread = new Thread(childref);

            childThread.Start();
            OPlayer.SendMessage("hello world");
            nivPlayer.SendMessage("Got That!");
            //g.StartGame();
            int num_of_moves = g.GetLogger().GetMoves().Count;

            childThread.Join();

            Console.Write("");

            nivPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));
            OPlayer.SetFakeUserInput(new Queue <string>(new[] { "5", "0", "100" }));
            NPlayer.SetFakeUserInput(new Queue <string>(new[] { "0", "0", "100", "100", "0", "50", "-1" }));
            KPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));
            OhPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "100", "100", "100" }));

            g.StartGame();
            Console.Write("");
        }
Esempio n. 8
0
        public List <string> removePlayer(string user, int gameID)
        {
            Game game = gc.getGameByID(gameID);

            if (game == null)
            {
                return(null);
            }
            PlayingUser player = game.GetPlayers().Where(pu => pu.GetUserName().Equals(user)).First(); //@ToDO: Add try and Catch. This Line throws InValidOperation when there are no players in the game.

            game.removePlayer(player);
            return(game.GetPlayers().ConvertAll(x => (SpectatingUser)x).Union(game.GetSpectators()).Select(player1 => player1.GetUserName()).ToList());
        }
Esempio n. 9
0
        public bool bet(string user, int gameID, string minimumBet)
        {
            Game game = gc.getGameByID(gameID);

            if (game == null)
            {
                return(false);
            }
            PlayingUser player = game.GetPlayers().Where(pu => pu.GetUserName().Equals(user)).First();

            player.setInput(minimumBet);
            return(true);
        }
Esempio n. 10
0
        public void updateStatistics(PlayingUser user)
        {
            int Grosssum     = (from g in user.GainPerRound where g >= 0 select g).Sum();
            int roundsPlayed = userStat.Winnings + userStat.Losses;

            userStat.Winnings         += user.GetRoundsWon();
            userStat.Losses           += user.GetRoundsLost();
            userStat.BiggestWin        = (userStat.BiggestWin > user.GetMostWon()) ? userStat.BiggestWin : user.GetMostWon();
            userStat.HighestHand       = (userStat.HighestHand < user.GetBestHand()) ? userStat.HighestHand : user.GetBestHand();
            userStat.BiggestWallet     = (Credit > userStat.BiggestWallet) ? Credit : userStat.BiggestWallet;
            userStat.TotalGrossProfit += Grosssum;
            UserStat.AvgCashGain       = (userStat.AvgCashGain * roundsPlayed + user.GainPerRound.Sum()) / (userStat.Winnings + userStat.Losses);
            userStat.AvgGrossProfit    = userStat.TotalGrossProfit / (userStat.Winnings + userStat.Losses);
            DBConnection.Instance.updateUserProfile(this);
        }
Esempio n. 11
0
        public void updateLeagueWhenCreditChange()
        {
            gc.createNewLeague(1000);
            League      league1 = gc.getLeagueByRank(0);
            League      league2 = gc.getLeagueByRank(1000);
            UserProfile user    = us.getUser("user");
            PlayingUser player  = new PlayingUser(user.Username, 5, null);

            user.Credit          = 999;
            user.UserStat.Losses = 10;

            Assert.True(league1.isUser(user));
            Assert.False(league2.isUser(user));
            gc.updateLeagueToUser(player);
            Assert.False(league1.isUser(user));
            Assert.True(league2.isUser(user));
        }
Esempio n. 12
0
        public void MoreThanMaxPlayersJoinGame()
        {
            Assert.Throws(typeof(InvalidOperationException), delegate()
            {
                Game g           = new Game(new GamePreferences(2, 2, 1, 2, 1, 1, 1, true));
                UserProfile Niv  = new UserProfile("Niv", "123");
                UserProfile Omer = new UserProfile("Omer", "456");
                UserProfile Naor = new UserProfile("Naor", "789");
                UserProfile Ohad = new UserProfile("Ohad", "8");

                PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
                PlayingUser OPlayer   = new PlayingUser(Omer.Username, 1000, g);
                PlayingUser NPlayer   = new PlayingUser(Naor.Username, 1000, g);

                g.addPlayer(nivPlayer);
                g.addPlayer(OPlayer);
                g.addPlayer(NPlayer);
            });
        }
Esempio n. 13
0
        public bool joinGame(Game game, UserProfile u, int credit)
        {
            if (credit > u.Credit)
            {
                return(false);
            }
            if (game.GetGamePref().GetBuyInPolicy() > credit)
            {
                return(false);
            }
            if (game.GetNumberOfPlayers() == game.GetGamePref().GetMaxPlayers())
            {
                return(false);
            }

            PlayingUser playingUser = new PlayingUser(u.Username, credit, game);

            game.addPlayer(playingUser);

            u.Credit = u.Credit - credit;
            return(true);
        }
Esempio n. 14
0
        public void AllPlayersCheck()
        {
            Game       g      = new Game(new GamePreferences());
            GameLogger logger = g.GetLogger();

            UserProfile Niv  = new UserProfile("Niv", "123");
            UserProfile Omer = new UserProfile("Omer", "456");
            UserProfile Naor = new UserProfile("Naor", "789");

            PlayingUser nivPlayer = new PlayingUser(Niv.Username, 1000, g);
            PlayingUser OPlayer   = new PlayingUser(Omer.Username, 1000, g);
            PlayingUser NPlayer   = new PlayingUser(Naor.Username, 1000, g);

            g.addPlayer(nivPlayer);
            g.addPlayer(OPlayer);
            g.addPlayer(NPlayer);

            nivPlayer.SetFakeUserInput(new Queue <string>(new[] { "5", "0" }));
            OPlayer.SetFakeUserInput(new Queue <string>(new[] { "0" }));
            NPlayer.SetFakeUserInput(new Queue <string>(new[] { "10", "0" }));

            g.StartGame();
            int num_of_moves = g.GetLogger().GetMoves().Count;

            //game start - 1
            //blinds - 2
            //bets - 3
            //flop - 1
            //bets - 3
            //river - 1
            //bets - 3
            //turn - 1
            //bets - 3

            Assert.AreEqual(19, num_of_moves);
        }