Files
MauMau-Server/Mau/Card.cs
DTieman 694bc6147a
Some checks failed
Build Mau & Deploy Mau / build (push) Failing after 1m15s
Build Mau & Deploy Mau / deploy (push) Has been skipped
Partial rewrite, missing:
- Correctly parsing incoming messages
- Sending the gamestate after relevant actions
2024-05-04 19:55:11 +02:00

79 lines
1.6 KiB
C#

namespace MauMau_Server.Mau;
public class Card
{
public readonly CardType CardType;
public readonly CardValue CardValue;
public Card(CardType cardType, CardValue cardValue)
{
CardType = cardType;
CardValue = cardValue;
}
public override string ToString()
{
return $"{CardType} {CardValue}";
}
public Card parseCard(string card)
{
var cardType = card.Split(" ")[0];
var cardValue = card.Split(" ")[1];
return new Card((CardType)Enum.Parse(typeof(CardType), cardType),
(CardValue)Enum.Parse(typeof(CardValue), cardValue));
}
}
public static class CardExtensions
{
public static bool IsSameCard(this Card card1, Card card2)
{
return card1.IsSameCardType(card2) && card1.IsSameCardValue(card2);
}
public static bool IsSameCardType(this Card card1, Card card2)
{
return card1.CardType == card2.CardType;
}
public static bool IsSameCardValue(this Card card1, Card card2)
{
return card1.CardValue == card2.CardValue;
}
public static bool CanBePlayedOn(this Card playedCard, Card currentCard)
{
return playedCard.IsSameCardType(currentCard)
|| playedCard.IsSameCardValue(currentCard)
|| playedCard.CardType == CardType.JOKER;
}
}
public enum CardType
{
SPADES,
HEARTS,
DIAMONDS,
CLUBS,
JOKER
}
public enum CardValue
{
TWO,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE,
TEN,
JACK,
QUEEN,
KING,
ACE,
RED,
BLACK
}