如何使用分支和math.random用简单的java代码创建石头剪纸游戏?

如何使用分支和math.random用简单的java代码创建石头剪纸游戏?,java,branch,Java,Branch,我是java代码的高手,所以请不要挑剔我的写作,我现在要用我的代码创建一个程序,从用户那里获取输入,然后打印出用户的输入(例如:如果用户输入“s”或“s”,程序应该打印出剪刀),对于机器人来说,必须打印出它的值(如果它生成为#1,应该这样说)“我选择摇滚”)之后,告诉谁是赢家。如果用户输入错误的命令,代码将告诉它“无效”,并将其默认为摇滚,然后结果谁是赢家这是我的代码,我一直在写,但似乎没有任何工作: [更新]:我刚刚得到了解决方案,现在是: Scanner keyb=new Scanner(

我是java代码的高手,所以请不要挑剔我的写作,我现在要用我的代码创建一个程序,从用户那里获取输入,然后打印出用户的输入(例如:如果用户输入“s”或“s”,程序应该打印出剪刀),对于机器人来说,必须打印出它的值(如果它生成为#1,应该这样说)“我选择摇滚”)之后,告诉谁是赢家。如果用户输入错误的命令,代码将告诉它“无效”,并将其默认为摇滚,然后结果谁是赢家这是我的代码,我一直在写,但似乎没有任何工作:

[更新]:我刚刚得到了解决方案,现在是:

 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”)