创建一个新类来运行游戏

时间:2013-03-30 18:34:45

标签: class methods

我创建了一个做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();
    }
}

我认为这会初始化游戏,但它不起作用。有任何建议或者我可以指出正确的方向吗?

1 个答案:

答案 0 :(得分:0)

static添加到winnershoot方法。 最后将它放在主页中:

System.out.println(winner(shoot(scan.nextLine().charAt(0))));

删除choice.hAns(scan.nextInt());