basic mau
This commit is contained in:
48
Mau/Game.cs
Normal file
48
Mau/Game.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
namespace MauMau_Server.Mau;
|
||||
|
||||
public class Game
|
||||
{
|
||||
public readonly Deck Deck = new();
|
||||
public Card CurrentCard;
|
||||
public List<Card> Hand;
|
||||
|
||||
public Game()
|
||||
{
|
||||
CurrentCard = Deck.DrawCard();
|
||||
Deck.AddCardToUsedDeck(CurrentCard);
|
||||
Hand = Deck.DrawCards(8);
|
||||
}
|
||||
|
||||
public void PlayCard(Card card)
|
||||
{
|
||||
if (!IsCardInHand(Hand, card) || !IsCardPlayable(CurrentCard, card)) return;
|
||||
Deck.AddCardToUsedDeck(card);
|
||||
Hand.Remove(GetSameCardFromHand(Hand, card));
|
||||
CurrentCard = card;
|
||||
}
|
||||
|
||||
private Card GetSameCardFromHand(IEnumerable<Card> hand, Card card)
|
||||
{
|
||||
return hand.FirstOrDefault(handCard => IsSameCardType(handCard, card) && IsSameCardValue(handCard, card));
|
||||
}
|
||||
|
||||
private bool IsCardPlayable(Card currentCard, Card playedCard)
|
||||
{
|
||||
return IsSameCardType(currentCard, playedCard) || IsSameCardValue(currentCard, playedCard);
|
||||
}
|
||||
|
||||
private bool IsCardInHand(IEnumerable<Card> hand, Card card)
|
||||
{
|
||||
return hand.Any(handCard => IsSameCardType(handCard, card) && IsSameCardValue(handCard, card));
|
||||
}
|
||||
|
||||
private static bool IsSameCardType(Card card1, Card card2)
|
||||
{
|
||||
return card1.CardType == card2.CardType;
|
||||
}
|
||||
|
||||
private static bool IsSameCardValue(Card card1, Card card2)
|
||||
{
|
||||
return card1.CardValue == card2.CardValue;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user