オブジェクト指向を使ったジャンケンゲーム

ジャンケンゲームでは、「グー」「チョキ」「パー」といった手を持っているプレイヤーがいることから、クラスやオブジェクトを使用して、プレイヤーを表すことができます。

以下に、ジャンケンゲームの例を示します。

Player player1 = new Player("Player1");
Player player2 = new Player("Player2");

player1.hand = new Random().Next(3);
player2.hand = new Random().Next(3);

player1.ShowHand();
player2.ShowHand();

int result = (player1.hand - player2.hand + 3) % 3;
if (result == 0)
{
    Console.WriteLine("Draw");
}
else if (result == 1)
{
    Console.WriteLine($"{player2.name} Win!");
}
else if (result == 2)
{
    Console.WriteLine($"{player1.name} Win!");
}

class Player
{
    public string name;
    public int hand;

    public Player(string name)
    {
        this.name = name;
    }

    public void ShowHand()
    {
        if (hand == 0)
        {
            Console.WriteLine("{0} はグーを出しました", name);
        }
        else if (hand == 1)
        {
            Console.WriteLine("{0} はチョキを出しました", name);
        }
        else if (hand == 2)
        {
            Console.WriteLine("{0} はパーを出しました", name);
        }
    }
}

上記の例では、Playerクラスを定義し、nameプロパティとhandプロパティを持っています。handプロパティは0~2の整数を取り、それぞれグー、チョキ、パーを表しています。 ShowHandメソッドはhandプロパティを元に、それぞれのプレイヤーが出した手を出力するものです。 Mainメソッドでは、インスタンスを作成して、手をランダムに出します。その後、どちらのプレイヤーが勝ったかを判定し、結果を出力します。

ジャンケンの結果を判定するために、 (int)(player1.hand – player2.hand + 3) % 3 を使用しています。

C#

Posted by hidepon