basic mau

This commit is contained in:
2023-03-16 17:11:15 +01:00
parent 4f85f6f793
commit c902493e28
5 changed files with 76 additions and 9 deletions

48
Mau/Game.cs Normal file
View 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;
}
}