【C#】クラスのサンプル(トランプゲームのプレイヤー)

トランプゲームのプレイヤーを考えてみます
色々な属性が思い浮かぶと思いますが、サンプルとして次のコードを見てください

クラス

using System.Collections.Generic;

public class Player
{
    public string Name { get; set; }
    public List<Card> Hand { get; set; }
    public int Chips { get; set; }
    public bool IsPlaying { get; set; }

    public Player(string name, int chips)
    {
        Name = name;
        Hand = new List<Card>();
        Chips = chips;
        IsPlaying = true;
    }

    public void Draw(Deck deck)
    {
        Hand.Add(deck.Cards[0]);
        deck.Cards.RemoveAt(0);
    }

    public void Discard(List<Card> cards)
    {
        foreach (var card in cards)
        {
            Hand.Remove(card);
        }
    }

    public void Bet(int amount)
    {
        if (amount > Chips)
        {
            // 賭けるためのチップが足りない
            return;
        }
        Chips -= amount;
    }
}

このプレイヤークラスは、プレイヤーの名前、現在持っているカード、残りのチップ、まだプレイしているかどうかなど、プレイヤーの情報を記録するためのプロパティをいくつか持っています。このクラスには、手札を1枚増やすDraw、手札を1枚以上取り除くDiscard、賭けた金額に応じてチップを減らすBetなどのメソッドが用意されており、これらを使って対話することができます。

このクラスは、カードを引くためのDeckクラスを想定しています。また、カードゲームには、check, raise, foldなどのアクションがありますが、このクラスに含めることもできます

全体の流れ

C#

Posted by hidepon