public void GamePrefLessMinimalBet() { object objUser = db.getUserByName("test0"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user = (SystemUser)objUser; object objGame = sl.createGame(user.id, "Pot_Limit", 1000, 100, 0, 120, 4, 8, true, false); Assert.IsInstanceOfType(objGame, typeof(TexasHoldemGame)); TexasHoldemGame game = (TexasHoldemGame)objGame; Assert.IsTrue(game.gamePreferences.isContain(new MustPreferences(new StartingAmountChipsCedPref(0, null), true))); StartingAmountChipsCedPref startingChipsPref = (StartingAmountChipsCedPref)game.gamePreferences.getOptionalPref(new StartingAmountChipsCedPref(0, null)); Assert.AreEqual(0, startingChipsPref.startingChipsPolicy); object objUser1 = db.getUserByName("test1"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user1 = (SystemUser)objUser; ReturnMessage m = null; game.joinGame(user1, 3); for (int i = 0; i < game.players.Length; i++) { if (game.players[i] != null && game.players[i].systemUserID == user1.id) { m = game.bet(game.players[i], 100); } } Assert.IsFalse(m.success); }
public void TestCreateGameWithPotLimitFail() { object objUser = db.getUserByName("test0"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user = (SystemUser)objUser; object objGame = sl.createGame(user.id, "Pot_Limit", 1000, 100, 15000, 120, 4, 8, true, false); Assert.IsInstanceOfType(objGame, typeof(TexasHoldemGame)); TexasHoldemGame game = (TexasHoldemGame)objGame; Assert.IsTrue(game.gamePreferences.isContain(new MustPreferences(new GamePolicyDecPref(GameTypePolicy.Pot_Limit, 1000, null), true))); object objUser1 = db.getUserByName("test1"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user1 = (SystemUser)objUser; ReturnMessage m = null; game.joinGame(user1, 3); game.pot = 1000; for (int i = 0; i < game.players.Length; i++) { if (game.players[i] != null && game.players[i].systemUserID == user1.id) { m = game.bet(game.players[i], 1500); break; } } Assert.IsFalse(m.success); }
public override ReturnMessage canPerformUserActions(TexasHoldemGame game, SystemUser user, string action) { //TODO: leave PLayer? switch (action) { case "create": if (minPlayers >= 2 && minPlayers <= 9) { if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } else { return(new ReturnMessage(true, "")); } } else { return (new ReturnMessage(false, "Minimal player must be between 2 and 9")); } default: if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } return(new ReturnMessage(true, "")); } }
public override ReturnMessage canPerformUserActions(TexasHoldemGame game, SystemUser user, string action) { switch (action) { case "create": if (startingChipsPolicy >= 0) { if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } else { return(new ReturnMessage(true, "")); } } else { return (new ReturnMessage(false, "Starting chips policy must be positive")); } default: if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } return(new ReturnMessage(true, "")); } }
public override ReturnMessage canPerformGameActions(TexasHoldemGame game, int amount, string action) { switch (action) { case "Bet": if (amount < minimalBet) { return(new ReturnMessage(false, "The bet you entered is lower than the minimal bet: " + minimalBet.ToString())); } else if (nextDecPref != null) { return(nextDecPref.canPerformGameActions(game, amount, action)); } else { return(new ReturnMessage(true, "")); } case "Raise": if (nextDecPref != null) { return(nextDecPref.canPerformGameActions(game, amount, action)); } else { return(new ReturnMessage(true, "")); } default: return(new ReturnMessage(false, "Wrong input to the canPerformGameActions.")); } }
public void TestCreateGameNoStartingChips() { object objUser = db.getUserByName("test0"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user = (SystemUser)objUser; object objGame = sl.createGame(user.id, "Pot_Limit", 1000, 100, null, 120, 4, 8, true, false); Assert.IsInstanceOfType(objGame, typeof(TexasHoldemGame)); TexasHoldemGame game = (TexasHoldemGame)objGame; Assert.IsFalse(game.gamePreferences.isContain(new MustPreferences(new StartingAmountChipsCedPref(0, null), true))); object objUser1 = db.getUserByName("test1"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user1 = (SystemUser)objUser; int user1Tokens = -1; game.joinGame(user1, 3); for (int i = 0; i < game.players.Length; i++) { if (game.players[i] != null && game.players[i].systemUserID == user1.id) { user1Tokens = game.players[i].Tokens; } } Assert.AreEqual(1000, user1Tokens); }
public override ReturnMessage canPerformGameActions(TexasHoldemGame game, int amount, string action) { if (nextDecPref != null) { return(nextDecPref.canPerformGameActions(game, amount, action)); } return(new ReturnMessage(true, "")); }
public bool canCall(TexasHoldemGame game, int amount) { if (real != null) { return(real.canCall(game, amount)); } return(amount > 0); }
public void ConstructorShouldThrowArgumentNullExceptionWhenIncorrectSecondPlayer() { IPlayer secondPlayer = null; var mockedFirstPlayer = new Mock <IPlayer>(); var initialMoney = 1000; Assert.Throws <ArgumentNullException>( () => { var twoPlayersGame = new TexasHoldemGame(mockedFirstPlayer.Object, secondPlayer, initialMoney); }); }
public void ConstructorShouldThrowArgumentOutOfRangeExceptionWhenInitialMoneyAreZero() { var mockedSecondPlayer = new Mock <IPlayer>(); var mockedFirstPlayer = new Mock <IPlayer>(); var initialMoney = 0; Assert.Throws <ArgumentOutOfRangeException>( () => { var twoPlayersGame = new TexasHoldemGame(mockedFirstPlayer.Object, mockedSecondPlayer.Object, initialMoney); }); }
public object removeUser(int gameId, int userId) { TexasHoldemGame game = gameCenter.getGameById(gameId); if (game == null) { return(null); } return(game.removeUser(userId)); }
public ReturnMessage canPerformGameActions(TexasHoldemGame game, int amount, string action) { if (firstDecPref != null) { return(firstDecPref.canPerformGameActions(game, amount, action)); } else { return(new ReturnMessage(true, "")); } }
public override ReturnMessage canPerformGameActions(TexasHoldemGame game, int amount, string action) { switch (action) { case "Bet": case "Raise": switch (gamePolicy) { case GameTypePolicy.Limit: if (game.currentBet + amount > limit) { return(new ReturnMessage(false, "The entered amount is higher than the limit")); } else if (nextDecPref != null) { return(nextDecPref.canPerformGameActions(game, amount, action)); } else { return(new ReturnMessage(true, "")); } case GameTypePolicy.No_Limit: if (nextDecPref != null) { return(nextDecPref.canPerformGameActions(game, amount, action)); } else { return(new ReturnMessage(true, "")); } case GameTypePolicy.Pot_Limit: if (game.currentBet + amount > game.pot) { return(new ReturnMessage(false, "The entered amount is higher than the pot limit")); } else if (nextDecPref != null) { return(nextDecPref.canPerformGameActions(game, amount, action)); } else { return(new ReturnMessage(true, "")); } default: return(new ReturnMessage(false, "Wrong game policy")); } default: return(new ReturnMessage(false, "Wrong input to the canPerformGameActions.")); } }
public void ConstructorShouldThrowArgumentExceptionWhenTwoPlayersHaveEqualNames() { var mockedFirstPlayer = new Mock <IPlayer>(); var mockedSecondPlayer = new Mock <IPlayer>(); mockedSecondPlayer.SetupGet(x => x.Name).Returns("Player"); mockedFirstPlayer.SetupGet(x => x.Name).Returns("Player"); var initialMoney = 1000; Assert.Throws <ArgumentException>( () => { var twoPlayersGame = new TexasHoldemGame(mockedFirstPlayer.Object, mockedSecondPlayer.Object, initialMoney); }); }
public override ReturnMessage canPerformUserActions(TexasHoldemGame game, SystemUser user, string action) { ReturnMessage m = new ReturnMessage(); switch (action) { case "create": if (buyInPolicy >= 0) { if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, "create")); } else { return(new ReturnMessage(true, "")); } } else { return(new ReturnMessage(false, "Buy in policy can't be negative")); } case "join": if (user.money >= buyInPolicy) { if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } else { return(new ReturnMessage(true, "")); } } else { return(new ReturnMessage(false, "The user don't have enough money to join the game")); } case "spectate": case "leave": if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } return(new ReturnMessage(true, "")); default: return(new ReturnMessage(false, "Wrong input to the canPerformUserActions.")); } }
public void LeaveSpectatorSuccessTest() { object g = sl.getGameById(3); Assert.IsInstanceOfType(g, typeof(TexasHoldemGame)); TexasHoldemGame game = (TexasHoldemGame)g; SystemUser user = new SystemUser("Gil", "adfg", null, 0, 0); game.joinSpectate(user); game.leaveGameSpectator(user); CollectionAssert.AreEqual(game.spectators, new List <SystemUser> { }); }
//public object GetShowOff(int gameId) //{ // return gameCenter.GetShowOff(gameId); //} #endregion public void SubscribeToGameState(ObserverAbstract <TcpClient> client, int gameID, bool isSpectator) { TexasHoldemGame game = gameCenter.getGameById(gameID); if (!isSpectator) { game.gameStatesObserver.Subscribe(client); } else { game.spectateObserver.Subscribe(client); } }
public void TestCreateGameWithNoPolicy() { object objUser = db.getUserByName("test0"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user = (SystemUser)objUser; object objGame = sl.createGame(user.id, null, 1000, 100, 15000, 120, 4, 8, true, false); Assert.IsInstanceOfType(objGame, typeof(TexasHoldemGame)); TexasHoldemGame game = (TexasHoldemGame)objGame; Assert.IsFalse(game.gamePreferences.isContain(new MustPreferences(new GamePolicyDecPref(GameTypePolicy.Limit, 1000, null), true))); }
public TexasHoldemGameStrings(int row, TexasHoldemGame game) { Preference pref = game.gamePreferences; this.row = row.ToString(); gameId = game.gameId.ToString(); GamePolicy = pref.gamePolicy.ToString(); BuyInPolicy = pref.buyInPolicy.ToString(); StartingChipsAmount = pref.startingChipsPolicy.ToString(); MinimalBet = pref.minimalBet.ToString(); MinPlayers = pref.minPlayers.ToString(); MaxPlayers = pref.maxPlayers.ToString(); IsSpectatingAllowed = pref.isSpectateAllowed.ToString(); isLeague = pref.isLeague.ToString(); }
public override ReturnMessage canPerformUserActions(TexasHoldemGame game, SystemUser user, string action) { switch (action) { case "create": if (maxPlayers >= 2 && maxPlayers <= 9) { if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } else { return(new ReturnMessage(true, "")); } } else { return (new ReturnMessage(false, "max players must be between 2 and 9")); } case "join": if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } else { return(new ReturnMessage(true, "")); } case "spectate": case "leave": if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } else { return(new ReturnMessage(true, "")); } default: return(new ReturnMessage(false, "Wrong input to the canPerformUserActions.")); } }
public void TestCreateGameWithStartingChipsMoreThan0() { object objUser = db.getUserByName("test0"); Assert.IsInstanceOfType(objUser, typeof(SystemUser)); SystemUser user = (SystemUser)objUser; object objGame = sl.createGame(user.id, "Pot_Limit", 1000, 100, 200, 120, 4, 8, true, false); Assert.IsInstanceOfType(objGame, typeof(TexasHoldemGame)); TexasHoldemGame game = (TexasHoldemGame)objGame; Assert.IsTrue(game.gamePreferences.isContain(new MustPreferences(new StartingAmountChipsCedPref(200, null), true))); StartingAmountChipsCedPref startingChipsPref = (StartingAmountChipsCedPref)game.gamePreferences.getOptionalPref(new StartingAmountChipsCedPref(0, null)); Assert.AreEqual(200, startingChipsPref.startingChipsPolicy); }
public override ReturnMessage canPerformUserActions(TexasHoldemGame game, SystemUser user, string action) { switch (action) { case "create": { switch (gamePolicy) { case GameTypePolicy.Limit: if (limit >= 0) { if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, "create")); } else { return(new ReturnMessage(true, "")); } } else { return(new ReturnMessage(false, "The limit must be positive")); } default: if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, "create")); } else { return(new ReturnMessage(true, "")); } } } default: if (nextDecPref != null) { return(nextDecPref.canPerformUserActions(game, user, action)); } return(new ReturnMessage(true, "")); } }
public void SetUp() { db = new PeLImpl(); bool objUser = db.RegisterUser("Hadas", "1234", "shidlhad", null); Assert.IsTrue(objUser); bool objOther = db.RegisterUser("Gil", "1234", "gilabadi89", null); Assert.IsTrue(objOther); object objGame = creatGame(db.getUserByName("Hadas").id, "Limit", 1000, 1000, 1000, 100, 2, 9, true, false); Assert.IsNotNull(objGame); Assert.IsInstanceOfType(objGame, typeof(TexasHoldemGame)); game = (TexasHoldemGame)objGame; }
public GameWindow(TexasHoldemGame game, int systemUserId, bool isSpectator) { InitializeComponent(); this.game = game; this.systemUserId = systemUserId; this.isSpectator = isSpectator; initializeScreen(); updateGame(game); betButton.IsEnabled = false; foldButton.IsEnabled = false; checkButton.IsEnabled = false; callButton.IsEnabled = false; playButton.IsEnabled = !isSpectator; betButton.IsEnabled = false; foldButton.IsEnabled = false; checkButton.IsEnabled = false; callButton.IsEnabled = false; }
public FitnessInfo Evaluate(IBlackBox phenome) { var players = new List <IPlayer>(); var learner = new Learner(RandomProvider.Next(80, 201), phenome); players.Add(learner); players.Add(new DummyPlayer(RandomProvider.Next(80, 201))); players.Add(new SmartPlayer(RandomProvider.Next(80, 201))); players.Add(new DummyPlayer(RandomProvider.Next(80, 201))); var game = new TexasHoldemGame(players, 300); game.Start(); this.EvaluationCount++; var fitness = learner.Fitness(); return(new FitnessInfo(fitness, fitness)); }
public Agent(NeatGenome genome) { this.genome = genome; var players = new List <IPlayer>(); var learner = new Learner((IBlackBox)genome.CachedPhenome); this.Stats = new Stats(learner); players.Add(this.Stats); players.Add(new DummyPlayer()); players.Add(new SmartPlayer()); players.Add(new DummyPlayer()); var game = new TexasHoldemGame(players, 100000); game.Start(); this.TotalProfit = learner.Profit; this.HandsPlayed = learner.HandsPlayed; }
public object joinGame(int userId, int gameID, int seatIndex) { TexasHoldemGame game = gameCenter.getGameById(gameID); SystemUser user = gameCenter.getUserById(userId); if (game == null || user == null) { return(null); } var response = game.joinGame(user, seatIndex); if (response.success) { return(game); } else { Console.WriteLine(response.description); return(null); } }
public object spectateActiveGame(int userId, int gameID) { TexasHoldemGame game = gameCenter.getGameById(gameID); if (game == null) { return(null); } SystemUser user = gameCenter.getUserById(userId); if (user == null) { return(null); } var joinSpec = game.joinSpectate(user); if (joinSpec.success) { return(game); } return(null); }
public void SetUp() { db = new PeLImpl(); for (int i = 0; i < 4; i++) { db.RegisterUser("test" + i, "" + i, "email" + i, null); } db.EditUserById(db.getUserByName("test0").id, null, null, null, null, 1000, 10, false); db.EditUserById(db.getUserByName("test1").id, null, null, null, null, 0, 15, false); db.EditUserById(db.getUserByName("test2").id, null, null, null, null, 700, 20, false); db.EditUserById(db.getUserByName("test3").id, null, null, null, null, 1500, 25, false); var userList = new List <SystemUser> { db.getUserByName("test0"), db.getUserByName("test1"), db.getUserByName("test2"), db.getUserByName("test3") }; center = GameCenter.getGameCenter(); sl = new SLImpl(); center = GameCenter.getGameCenter(); game = (TexasHoldemGame)sl.createGame(0, "No_limit", 1000, 30, 50, 10, 2, 10, true, false); game.gameId = 1; game.players[1] = new Player(userList[1].id, userList[1].name, 50, userList[1].rank, new byte[0]); game.players[2] = new Player(userList[2].id, userList[2].name, 50, userList[2].rank, new byte[0]); for (int i = 0; i < 3; i++) { game.players[i].playerState = Player.PlayerState.in_round; } game.currentBlindBet = 20; }
public object GetGameForPlayers(int userId, int gameID) { TexasHoldemGame game = gameCenter.getGameById(gameID); if (game == null) { return(null); } SystemUser user = gameCenter.getUserById(userId); if (user == null) { return(null); } var joinSpec = game.getGameForPlayer(user); if (joinSpec.success) { return(game); } return(null); }
public void Main() { /* 1. Create Texas Holdem game * Big Blind, Small Blind, num of seats, Max and Min buy in * 2. Player join table (dealer and cards) * 3. Player get a seat (position) * 4. Player buy in * 5. Blinds are placed * 6. 2 x Cards are dealt each player, player can see their own card * 7. Betting (folding) * 8. Flop * 9. Betting * 10. Turn * 11. Betting * 12. River * 13. Betting * 14. Showdown * 15. Payout */ // 1. Create a new Texas Holdem Game. Use default game settings. var game = new TexasHoldemGame(new CommonGameSettings()); }
public void WhenAddingAPlayerToTheGameASeatIsTaken() { // Arrange var player = new Player(); var game = new TexasHoldemGame(new CommonGameSettings()); // Act game.AddPlayer(player); var addedPlayer = game.Players.ElementAt(0); // Assert Assert.AreEqual(game.SeatsTaken, 1, "Adding a player should take a seat."); Assert.AreSame(addedPlayer, player, "The player should be added to the game."); }
public void WhenMinBuyInEqualsMaxBuyIn() { // Arrange, Act var game = new TexasHoldemGame(new CommonGameSettings() { MinBuyIn = 6, MaxBuyIn = 6 }); // Assert Assert.AreEqual(game.MaxBuyIn, game.MinBuyIn, "The MaxBuyIn should be the same as the MinBuyIn."); }
public void WhenMinBuyInIsLessThanMaxBuyIn() { // Arrange, Act var game = new TexasHoldemGame(new CommonGameSettings() { MinBuyIn = 4, MaxBuyIn = 6 }); // Assert Assert.IsTrue(game.MinBuyIn < game.MaxBuyIn, "The MinBuyIn is allowed to be less than the MaxBuyIn."); }