我创建了一个做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();
}
}
我认为这会初始化游戏,但它不起作用。有任何建议或者我可以指出正确的方向吗?
答案 0 :(得分:0)
将static
添加到winner
和shoot
方法。
最后将它放在主页中:
System.out.println(winner(shoot(scan.nextLine().charAt(0))));
删除choice.hAns(scan.nextInt());