public void GoAllIn(Collection <Player> players) { Collection <Player> playersInPot = new Collection <Player>(players.ToList()); int minPot = GetMinPlayerPot(players); foreach (Player P in players) { P.PlayerPot -= minPot; Pots[currPotForBetting].AddChips(minPot); if (P.PlayerPot == 0) { playersInPot.Remove(P); } } while (playersInPot.Count != 0) { minPot = GetMinPlayerPot(playersInPot); currPotForBetting += 1; Pots.Add(new Pot(playersInPot)); Collection <Player> playersNewInPot = new Collection <Player>(playersInPot.ToList()); foreach (Player P in playersInPot) { P.PlayerPot -= minPot; Pots[currPotForBetting].AddChips(minPot); if (P.PlayerPot == 0) { playersNewInPot.Remove(P); } } playersInPot = new Collection <Player>(playersNewInPot.ToList()); } }
/// <summary> /// Takes evey money pots and distribute money to the deserving players /// </summary> /// <param name="rankedPlayers">Players ranked</param> /// <returns>All the won pots</returns> public IEnumerable <WonPot> DistributeMoney(IEnumerable <EvaluatedCardHolder <PlayerCardHolder> > rankedPlayers) { IList <WonPot> pots = new List <WonPot>(); var playersWithRank = rankedPlayers.ToArray(); //Just to be sure there is no money left in play DepositMoneyInPlay(); //Distribute all money pots while (Pots.Any()) { var winners = Pots.Pop().Distribute(playersWithRank).ToArray(); var wonPot = new WonPot(Pots.Count, winners.Select(x => x.Value).DefaultIfEmpty(0).Sum(), winners.Where(x => x.Key != null)); MoneyAmount -= wonPot.TotalPotAmount; pots.Add(wonPot); } //Create a new empty moneypot ready for the next game Pots.Push(new MoneyPot()); //Return pots so they are in good order return(pots.OrderBy(x => x.PotId)); }
public bool Fold(string name) { var player = GetPlayer(name); VerifyIsPlayersTurn(player); BetQueue.RemoveFirst(); player.Folded = true; player.Hand[0] = null; player.Hand[1] = null; Pots.ForEach(x => x.RemovePlayer(player)); if (GetPlayersStillInGame().Count() == 1) { BetQueue.Clear(); State = State.DeterminingWinner; NextStage(); return(false); } else { if (BetQueue.Count == 0) { NextStage(); return(false); } else { return(true); } } }
public ActionResult InsertPots() { if (Session["UserID"] != null) { Pots pots = new Pots(); int userid = int.Parse(Session["UserID"].ToString()); pots.UserID = userid; pots.LevelID = 1; pots.Experience = 1; Pots userpots = potsmanager.GetPotsByUserID(userid); if (userpots == null) { if (potsmanager.InsertPots(pots)) { return(Content("<script>alert('开通成功!');window.open('" + Url.Content("~/UserCenter/Index") + "', '_self')</script>")); } else { return(Content("<script>alert('开通失败!');window.open('" + Url.Content("~/UserCenter/Index") + "', '_self')</script>")); } } else { return(Content("<script>alert('您已经开通过啦,不能重复开通哦!');window.open('" + Url.Content("~/UserCenter/Index") + "', '_self')</script>")); } } else { return(Content("<script>alert('请先登录!');window.open('" + Url.Content("~/UserCenter/Index") + "', '_self')</script>")); } }
public bool PotsSign(int UserID) { Pots pot = GetPotsByUserID(UserID); DateTime oldsign; if (pot.Sign == null) { oldsign = DateTime.Parse("2000-01-01 00:00:00"); } else { oldsign = DateTime.Parse(pot.Sign.ToString()); //获取上次的签到日期 } TimeSpan range = DateTime.Now - oldsign; //获取当前时间和上次签到日期的时间差 int rangeDays = range.Days; //获取天数差 pot.Sign = DateTime.Now; if (pot.SignDays == null || rangeDays != 1)//新用户第一次签到或老用户间断签到,连续签到天数设置为0,经验+2 { pot.SignDays = 0; pot.Experience += 2; } else if (pot.SignDays >= 2 && rangeDays == 1)//用户连续签到3天,经验+4 { pot.SignDays += 1; pot.Experience += 4; } else { pot.SignDays += 1; pot.Experience += 2; } db.Entry(pot).State = EntityState.Modified; return(db.SaveChanges() > 0); }
public void get_pots_by_potter() { var mock = new Mock <IPotsAndPotters>(); Pots p1 = new Pots(2, "Large Jug", 1, "Fitch"); Pots p2 = new Pots(3, "Large Bowl", 1, "Fitch"); Pots p3 = new Pots(4, "Large Tankard", 1, "Fitch"); List <Pots> allpots = new List <Pots>(); allpots.Add(p1); allpots.Add(p2); allpots.Add(p3); mock.Setup(foo => foo.getPotsByPotter(1)).Returns(allpots); var mockurlhelper = new Mock <IURLHelper>(); mockurlhelper.Setup(foo => foo.buildPotURL(2)).Returns(@"http://localhost/pots/pots/2"); mockurlhelper.Setup(foo => foo.buildPotterURL(1)).Returns(@"http://localhost/potters/potters/1"); mockurlhelper.Setup(foo => foo.buildPotURL(3)).Returns(@"http://localhost/pots/pots/3"); mockurlhelper.Setup(foo => foo.buildPotterURL(1)).Returns(@"http://localhost/potters/potters/1"); mockurlhelper.Setup(foo => foo.buildPotURL(4)).Returns(@"http://localhost/pots/pots/4"); mockurlhelper.Setup(foo => foo.buildPotterURL(1)).Returns(@"http://localhost/potters/potters/1"); var strs = new PotsDelegate(mock.Object, mockurlhelper.Object).getPotsByPotterId(1); Assert.AreEqual(3, strs.Length); mock.Verify(foo => foo.getPotsByPotter(1), Times.AtMostOnce); mock.VerifyNoOtherCalls(); }
private string stringify_pot(Pots pot) { JSONPot jsonpot = new JSONPot(pot, urlhelper); string s = JsonConvert.SerializeObject(jsonpot); return(s); }
public bool UpdateExperience(int UserID, int Exp) { Pots pot = GetPotsByUserID(UserID); pot.Experience += Exp; db.Entry(pot).State = EntityState.Modified; return(db.SaveChanges() > 0); }
public ActionResult DeleteConfirmed(int id) { Pots pots = db.Pots.Find(id); db.Pots.Remove(pots); db.SaveChanges(); return(RedirectToAction("Index")); }
public PotManager(Collection <Player> players, GameType gameType, Chip bigBlind) { _gameType = gameType; _bigBlind = bigBlind; this.currPotForBetting = 0; this._previousRaise = new Chip(0); this.Pots = new Collection <Pot>(); Pots.Add(new Pot(players)); }
public int?createPot(string v) { Pots p = parsePot(v); if (p == null) { return(null); } return(backEnd.createPot(p)); }
public void use(Pots pot) { if (currentWater <= 0) { Debug.Log("Water Can : There is no more water!"); return; } currentWater -= 1; pot.setWater(true); }
public ActionResult Edit([Bind(Include = "PotID,UserID,LevelID,Experience,Sign,SignDays")] Pots pots) { if (ModelState.IsValid) { db.Entry(pots).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.LevelID = new SelectList(db.Level, "LevelID", "LevelName", pots.LevelID); ViewBag.UserID = new SelectList(db.Users, "UserID", "UserName", pots.UserID); return(View(pots)); }
public int GetUserLevel(string UserName) { try { Pots pot = db.Pots.Include("Users").Where(u => u.Users.UserName == UserName).FirstOrDefault(); int level = pot.LevelID; return(level); } catch { return(0); } }
public string getPotById(int id) { Pots pot = backEnd.getPotById(id); if (pot == null) { return(null); } else { return(stringify_pot(pot)); } }
private void SetPot(int index, IEnumerable <Player> playerPool = null) { var players = playerPool ?? Players; if (MinBet != 0 || players.Count() > 0) // We didn't check around, if we did there is no money to add to the pot { var testValue = players.Max(x => x.CurrentBet); if (players.All(x => x.CurrentBet == testValue || x.CurrentBet == 0)) { Pots[index].AddToPot(Players.Sum(x => x.CurrentBet)); foreach (var p in players) { p.CurrentBet = 0; } } else { var playerAllIn = players.Where(x => x.CurrentBet == (players.Min(y => y.CurrentBet))).ElementAt(0); var betValue = playerAllIn.CurrentBet; var sumAddedToMainPot = 0.0; foreach (var p in Players) { if (p.CurrentBet != 0 && p.CurrentBet >= playerAllIn.CurrentBet) { sumAddedToMainPot += betValue; p.CurrentBet -= betValue; } else if (p.CurrentBet < playerAllIn.CurrentBet) // the player(p) had folded { sumAddedToMainPot += p.CurrentBet; p.CurrentBet = 0; } } Pots[index].AddToPot(sumAddedToMainPot); Pot newPot = new Pot(); newPot.EligiblePlayers = players.Where(x => x.CurrentBet > 0).ToList(); if (newPot.EligiblePlayers.Count == 1) { newPot.EligiblePlayers.ElementAt(0).Chips += newPot.EligiblePlayers.ElementAt(0).CurrentBet; newPot.EligiblePlayers.ElementAt(0).CurrentBet = 0; } else { Pots.Add(newPot); currentPotIndex++; SetPot(currentPotIndex, players.Where(x => x.CurrentBet > 0)); } } } }
// GET: PotsManagement/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Pots pots = db.Pots.Find(id); if (pots == null) { return(HttpNotFound()); } return(View(pots)); }
public void deconstruct_pot() { Pots pot = new Pots(); pot.PotterName = "Jimi"; pot.Id = 22; pot.PottersId = 1; pot.Description = "Large Bowl"; (int pot_id, int pot_potterid, String pot_pottername, String pot_description) = pot; Assert.AreEqual(22, pot_id); Assert.AreEqual(1, pot_potterid); Assert.AreEqual("Jimi", pot_pottername); Assert.AreEqual("Large Bowl", pot_description); }
public void create_new_pot() { var mock = new Mock <IPotsAndPotters>(); Pots p = new Pots("Large Jug", 1, "Fitch"); mock.Setup(foo => foo.createPot(p)).Returns(1); var mockurlhelper = new Mock <IURLHelper>(); int?newid = new PotsDelegate(mock.Object, mockurlhelper.Object).createPot("{\"PottersId\": 1, \"PotterName\" : \"Fitch\", \"Description\" : \"Large Jug\"}"); Assert.AreEqual(1, newid); mock.Verify(foo => foo.createPot(p), Times.AtMostOnce); mock.VerifyNoOtherCalls(); }
private void Game_OnTick() { var mana = Player.ManaPercent; if (killstealMenu.GetCheckbox("enable")) { Killsteal.DoKS(); } if (Orbwalker.ActiveMode == (OrbwalkingMode.Combo) && mana >= comboMenu.GetSlider("mana")) { Combo.DoCombo(); Items.DoItems(); Items.Doorbs(); } if (Orbwalker.ActiveMode == (OrbwalkingMode.Harass) && mana >= harassMenu.GetSlider("mana")) { Harass.DoHarass(); } if (Orbwalker.ActiveMode == (OrbwalkingMode.LaneClear) && mana >= laneclearMenu.GetSlider("mana")) { LaneClear.DoLaneClear(); } if (Orbwalker.ActiveMode == (OrbwalkingMode.LastHit) && mana >= lasthitMenu.GetSlider("mana")) { LastHit.DoLastHit(); } if (Orbwalker.ActiveMode == (OrbwalkingMode.Flee)) { Flee.DoFlee(); Items.DoItems(); } //Items.DoQss(); Pots.DoPots(); SS.DoSmite(); SS.DoHeal(); if (qRange == GetQRange()) { return; } qRange = GetQRange(); Q.Range = qRange; }
// GET: PotsManagement/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Pots pots = db.Pots.Find(id); if (pots == null) { return(HttpNotFound()); } ViewBag.LevelID = new SelectList(db.Level, "LevelID", "LevelName", pots.LevelID); ViewBag.UserID = new SelectList(db.Users, "UserID", "UserName", pots.UserID); return(View(pots)); }
public string ToString(int pMinRange, int pMaxRange) { var potString = string.Empty; for (int i = pMinRange; i <= pMaxRange; i++) { if (Pots.ContainsKey(i)) { potString += Pots[i].HasPlant ? "#" : "."; } else { potString += "."; } } return(potString); }
/// <summary> /// Takes all the money in front of every player and deposit it into money pots. /// </summary> public void DepositMoneyInPlay() { var allInPlayers = PlayersWithMoneyAmountInPlay.Where(p => p.State == PlayerStateEnum.AllIn).ToArray(); if (allInPlayers.Any()) { int given = 0; foreach (var cap in allInPlayers.Select(p => p.MoneyBetAmnt).OrderBy(a => a)) { PlayersWithMoneyAmountInPlay.ForEach(p => Pots.Peek().Contribute(p, cap - given)); given += cap - given; Pots.Push(new MoneyPot()); } } PlayersWithMoneyAmountInPlay.ForEach(p => Pots.Peek().Contribute(p, p.MoneyBetAmnt)); PlayersWithMoneyAmountInPlay.Clear(); }
public bool ShowCards(string name) { var player = GetPlayer(name); VerifyIsPlayersTurn(player); BetQueue.RemoveFirst(); Pots.ForEach(x => x.RemovePlayer(player)); ShowPlayerCards.Add(player); if (BetQueue.Count == 0) { NextStage(); return(false); } else { return(true); } }
public void get_pot_by_id_test() { var mock = new Mock <IPotsAndPotters>(); Pots p = new Pots(2, "Large Jug", 1, "Fitch"); mock.Setup(foo => foo.getPotById(2)).Returns(p); var mockurlhelper = new Mock <IURLHelper>(); mockurlhelper.Setup(foo => foo.buildPotURL(2)).Returns(@"http://localhost/pots/pots/2"); mockurlhelper.Setup(foo => foo.buildPotterURL(1)).Returns(@"http://localhost/potters/potters/1"); var s = new PotsDelegate(mock.Object, mockurlhelper.Object).getPotById(2); string expected = "{\"href\":\"http://localhost/pots/pots/2\",\"description\":\"Large Jug\",\"potterhref\":\"http://localhost/potters/potters/1\"}"; Assert.AreEqual(expected, s); mock.Verify(foo => foo.getPotById(2), Times.AtMostOnce); mock.VerifyNoOtherCalls(); }
private void ClaimPots() { while (Pots.Any(x => x.Chips > 0)) { var currentPot = Pots.OrderByDescending(x => x.EligiblePlayers.Count()).First(x => x.Chips > 0); currentPot.EligiblePlayers.Shuffle(); var winningPlayer = currentPot.EligiblePlayers.First(); winningPlayer.Chips += currentPot.Chips; currentPot.Chips = 0; foreach (var pot in Pots.Where(x => x.Chips > 0 && x.EligiblePlayers.Contains(winningPlayer))) { winningPlayer.Chips += pot.Chips; pot.Chips = 0; } } }
public bool HideCards(string name) { var player = GetPlayer(name); VerifyIsPlayersTurn(player); BetQueue.RemoveFirst(); player.Hand[0] = null; player.Hand[1] = null; Pots.ForEach(x => x.RemovePlayer(player)); if (BetQueue.Count == 0) { NextStage(); return(false); } else { return(true); } }
private Pots parsePot(string v) { Pots p = JsonConvert.DeserializeObject <Pots>(v); return(p); /* * string[] splits = v.Split(new char[] { ',', '{', '}' }, StringSplitOptions.RemoveEmptyEntries); * if (splits.Length == 3) * { * int potterid; * if (int.TryParse(splits[0], out potterid)) * { * return new Pots(splits[2], potterid, splits[1]); * } * } * return null; */ }
public void SplitPotAbovePlayersAmount(int potIndex, int playerIndex) { // Find out how much the given player has in the given pot, and split the pot so that higher contributions are moved to a new pot int potLimit = ChipsInSpecifiedPotForSpecifiedPlayer(potIndex, playerIndex); AddCommentary("Splitting pot " + (potIndex + 1) + " with contribution cap of " + potLimit); Pots.Insert(potIndex + 1, new List <int>()); for (int player = 0; player < Pots[potIndex].Count; player++) { // Move any surplus amounts from old pot to new for each player if (Pots[potIndex][player] > potLimit) { Pots[potIndex + 1].Add(Pots[potIndex][player] - potLimit); // Move surplus to new pot Pots[potIndex][player] = potLimit; //Limit current pot contribution } else { Pots[potIndex + 1].Add(0); // No surplus to move for this player } } }
private void Game_OnTick() { if (Orbwalker.ActiveMode == (OrbwalkingMode.Combo) && itemMenu.GetCheckbox("enable")) { Items.DoItems(); Items.Doorbs(); } if (Orbwalker.ActiveMode == (OrbwalkingMode.LaneClear) && itemMenu.GetCheckbox("enable")) { Items.Dohydra(); } if (Orbwalker.ActiveMode == (OrbwalkingMode.Flee) && itemMenu.GetCheckbox("enable")) { Items.DoItems(); } SS.DoSmite(); Items.DoQss(); SS.DoHeal(); Pots.DoPots(); }