restructure
This commit is contained in:
59
Mau/Deck.cs
Normal file
59
Mau/Deck.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
namespace MauMau_Server.Mau;
|
||||
|
||||
public class Deck
|
||||
{
|
||||
public List<Card> UnusedDeck = new();
|
||||
public List<Card> UsedDeck = new();
|
||||
|
||||
public Deck()
|
||||
{
|
||||
foreach (CardType cardType in Enum.GetValues(typeof(CardType)))
|
||||
{
|
||||
foreach (CardValue cardValue in Enum.GetValues(typeof(CardValue)))
|
||||
{
|
||||
UnusedDeck.Add(new Card(cardType, cardValue));
|
||||
}
|
||||
}
|
||||
ShuffleDeck();
|
||||
}
|
||||
|
||||
public List<Card> GetUnusedDeck()
|
||||
{
|
||||
return UnusedDeck;
|
||||
}
|
||||
|
||||
public Card DrawCard()
|
||||
{
|
||||
if (UnusedDeck.Count == 0) ReshuffleDeck();
|
||||
var card = UnusedDeck[0];
|
||||
UnusedDeck.RemoveAt(0);
|
||||
return card;
|
||||
}
|
||||
|
||||
public List<Card> DrawCards(int amount)
|
||||
{
|
||||
var cards = new List<Card>();
|
||||
for (var i = 0; i < amount; i++)
|
||||
{
|
||||
cards.Add(DrawCard());
|
||||
}
|
||||
return cards;
|
||||
}
|
||||
|
||||
public void AddCardToUsedDeck(Card card)
|
||||
{
|
||||
UsedDeck.Add(card);
|
||||
}
|
||||
|
||||
private void ReshuffleDeck()
|
||||
{
|
||||
UnusedDeck.AddRange(UsedDeck);
|
||||
UsedDeck.Clear();
|
||||
ShuffleDeck();
|
||||
}
|
||||
|
||||
private void ShuffleDeck()
|
||||
{
|
||||
UnusedDeck = UnusedDeck.OrderBy(x => Guid.NewGuid()).ToList();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user