Reorganise classes

This commit is contained in:
Andrew Cooper
2022-06-18 22:15:05 +10:00
parent ac079fff75
commit fc65452ae6
10 changed files with 307 additions and 288 deletions

View File

@@ -0,0 +1,47 @@
using Poker.Cards;
namespace Poker.Players;
internal abstract class Player
{
private Table? _table;
private bool _hasFolded;
protected Player(int bank)
{
Hand = Hand.Empty;
Balance = bank;
}
public Hand Hand { get; set; }
public int Balance { get; set; }
public int Bet { get; private set; }
public bool HasFolded => _hasFolded;
protected Table Table =>
_table ?? throw new InvalidOperationException("The player must be sitting at the table.");
public void Sit(Table table) => _table = table;
public virtual void NewHand(Hand hand)
{
Hand = hand;
_hasFolded = false;
}
public void Pay(int amount)
{
Balance -= amount;
}
public virtual void TakeWinnings()
{
Balance += Table.Pot;
Table.Pot = 0;
}
public void Fold()
{
_hasFolded = true;
}
}