1

Paper Rock Scissors を行うクラスを作成しました。

public class RPS {

    private char cAns;

    public RPS()
    {
        reset();
    }

    public String promptShoot()
    {
        return "Rock, Paper, Scissors, Shoot! (r/p/s)\n";
    }

    public void AI()
    {
        double temp = Math.random();
        int num = (int)(temp * 2.99);

        switch(num) 
        {
            case 0: 
                cAns = 'r';
                break;
            case 1:
                cAns = 'p';
                break;
            case 2:
                cAns = 's';
                break;
        }
    }

クラスはコンピュータに対してランダムに選択します。次に、スキャナーを使用して人間の入力を求めます。

    public int shoot(char hAns)
    {
        if(hAns == cAns)
            return 0;
        else if((cAns == 'r' && hAns == 'p')
                || (cAns == 'p' && hAns == 's')
                || (cAns == 's' && hAns == 'r'))
            return 1;
        else
            return -1;
    }

両方が選択を選択すると、勝者が宣言されます。

    public String winner(int won)
    {
        if(won == 1)
            return "The human won!!! All hail the human!!!";
        else if(won == -1)
            return "The computer won!!! Humans must die!!!";
        else
            return "Tie!";
    }

    public void reset()
    {
        cAns = 'a';
    }
}

これは機能すると思いますが、この RPS クラスを実行するために別のクラスを作成する必要があることに気づきませんでした。

私はこれまでのところこれを持っています

import java.util.Scanner;

public class game
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);

        RPS choice = new RPS();

        choice.AI();

        System.out.print(choice.promptShoot());
        choice.hAns(scan.nextInt());

        scan.close();
    }
}

これでゲームが初期化されると思ったのですが、うまくいきません。何か提案がありますか、それとも正しい方向に向けることができますか?

4

1 に答える 1