如何使用分支和math.random用简单的java代码创建石头剪纸游戏?
我是java代码的高手,所以请不要挑剔我的写作,我现在要用我的代码创建一个程序,从用户那里获取输入,然后打印出用户的输入(例如:如果用户输入“s”或“s”,程序应该打印出剪刀),对于机器人来说,必须打印出它的值(如果它生成为#1,应该这样说)“我选择摇滚”)之后,告诉谁是赢家。如果用户输入错误的命令,代码将告诉它“无效”,并将其默认为摇滚,然后结果谁是赢家这是我的代码,我一直在写,但似乎没有任何工作: [更新]:我刚刚得到了解决方案,现在是:如何使用分支和math.random用简单的java代码创建石头剪纸游戏?,java,branch,Java,Branch,我是java代码的高手,所以请不要挑剔我的写作,我现在要用我的代码创建一个程序,从用户那里获取输入,然后打印出用户的输入(例如:如果用户输入“s”或“s”,程序应该打印出剪刀),对于机器人来说,必须打印出它的值(如果它生成为#1,应该这样说)“我选择摇滚”)之后,告诉谁是赢家。如果用户输入错误的命令,代码将告诉它“无效”,并将其默认为摇滚,然后结果谁是赢家这是我的代码,我一直在写,但似乎没有任何工作: [更新]:我刚刚得到了解决方案,现在是: Scanner keyb=new Scanner(
Scanner keyb=new Scanner(System.in);
System.out.println("Please select one of [R/P/S]: ");
String user = keyb.nextLine();
int comt=(int)(3*Math.random())+1;
String comp="";
if (comt==1){
comp= "Rock";
}
else if (comt==2){
comp="Paper";
}
else if (comt==3){
comp="Scissors";
}
if (user.equals("R") || user.equals("r")) {
System.out.println("You choose: Rock");
user = "Rock";
}
else if (user.equals("P")||user.equals("p")) {
System.out.println("You choose: Paper");
user = "Paper";
}
else if (user.equals("S")||user.equals("s")) {
System.out.println("You choos: Scissors");
user = "Scissors";
}
else {
System.out.println("invalid, defaulting to Rock");
user = "Rock";
}
System.out.println("I choose: "+ comp);
if (user.equals(comp)){
System.out.println("A tie!");
}
else if (user.equals("Rock")) {
if (comp.equals("Scissors"))
System.out.println("Rock beats scissor - you win!");
else if (comp.equals("Papper"))
System.out.println("Paper beats rock - you lose");
}
else if (user.equals("Paper")) {
if (comp.equals("Scissors"))
System.out.println("Scissors beats paper- you lose");
else if (comp.equals("Rock"))
System.out.println("Paper beats rock - you win");
}
else if (user.equals("Scissors")) {
if (comp.equals("Papper"))
System.out.println("Scissors beats paper - you win!");
else if (comp.equals("Rock"))
System.out.println("Rock beats scissors - you lose!");
}
keyb.close();
您忘记了一些括号:
else if (user.equals("R") || user.equals("r")) {
if (comp.equals("S"))
System.out.println("Rock beats scissor - you win!");
else if (comp.equals("P"))
System.out.println("Paper beats rock - you lose");
}
else if (user.equals("P")||user.equals("p")) {
if (comp.equals("S"))
System.out.println("Scissors beats paper- you lose");
else if (comp.equals("R")|| comp.equals("r"))
System.out.println("Paper beats rock - you win");
}
else if (user.equals("S")||user.equals("s")) {
if (comp.equals("P"))
System.out.println("Scissors beats paper - you win!");
else if (comp.equals("R"))
System.out.println("Rock beats scissors - you lose!");
}
请更准确地说:它在哪些方面不起作用?它的行为在哪些方面与您预期的不同?这里的示例可能会有所帮助。@ScottHunter谢谢,我已经编辑了代码并指定了问题。我遇到的问题是代码没有显示结果。请提供示例您已测试的输入中的一个。@ScottHunter这是它显示的内容:'请从[R/P/S]中选择一个':s You choos scissor I choose:P'@bscouth:首先,代码无法显示输出。
You choos:scissor
和You choos scissor
之间的区别可能对您来说并不重要,但如果您在代码中犯同样的错误,编译器将不知道您在做什么。同样,如果代码您向我们显示的输入和输出不是,我们无法为您调试任何东西。谢谢,我已经修复了它,但仍然没有显示结果?我尝试了您的代码。它工作正常,只是您忘记为user
定义默认值。System.out.println(“无效,默认为Rock”);
您应该添加user=“R";代码>。感谢您的回复,是的,我已经将其添加到最后一个分支“else”,但它只显示“invalid,default to rock”之外的内容。这是我更新问题代码的结果。您是否像上面的代码那样添加了它?因为这样做毫无意义。您必须在else分支中添加user=“R”
,在那里输出System.out.println(“无效,默认为Rock”)代码>