本質上有一張桌子和一個玩家A提高到100美元,玩家B的電話(接受),玩家C只有50美元,所以這些花盆被創建爲100美元(在玩家A和B之間)和150美元(所有三名球員之間,因爲每個人都在50美元籌碼)。填滿撲克牌
我該如何實現這樣的功能,並正確處理所有的鍋? 這是我到目前爲止有:
static public void FillPots(Room r, decimal Val, int Player)
{
decimal NewRaise = Val;
if (NewRaise > 0)
{
foreach (Program.Player pz in r.Seated)
{
if (pz == null) { continue; }
if (pz.BuyIn < NewRaise)
{
Pot _pot = new Pot { PotSize = r.MaxPlayers, PotBuy = (NewRaise - pz.BuyIn), PotVal = new decimal[r.MaxPlayers] };
Array.Clear(_pot.PotVal, 0, r.MaxPlayers);
r.Pots.Add(_pot);
NewRaise -= (NewRaise - pz.BuyIn);
}
}
}
for (int i = 0; i < r.Pots.Count; i++)
{
if (r.Pots[i].PotVal[Player] == 0m && NewRaise >= r.Pots[i].PotBuy)
{
r.Pots[i].PotVal[Player] += r.Pots[i].PotBuy;
NewRaise -= r.Pots[i].PotBuy;
}
}
if (NewRaise > 0)
{
Pot _pot = new Pot { PotSize = r.MaxPlayers, PotBuy = (NewRaise), PotVal = new decimal[r.MaxPlayers] };
Array.Clear(_pot.PotVal, 0, r.MaxPlayers);
_pot.PotVal[Player] += NewRaise;
r.Pots.Add(_pot);
NewRaise = 0;
}
}
這一切都非常混亂。保持陣列中每個玩家相對於玩家號碼(int Player)的位置至關重要。
您是否記得實施側鍋?不完全確定這將如何在您的程序中實現你到底有什麼困難完成? – CodeCamper
這正是我正在嘗試實施的,打破了鍋的邊緣,這個功能應該做到這一點。 – user2498443