如何根据用户输入和随机选择打印线条



我正在为我的第一个java类编写代码。它的石头剪刀。该程序运行完美,允许计算机输入和输出随机选择。然而,当情况合适时,我希望节目能说一些类似"势均力敌"或"你赢了"的话。到目前为止,我还没能得到这个。我有一次让它说"这是一条领带",但只有一次无法复制。我的代码是:

导入java.util.*;

类岩石{public static void main(字符串args[]){

    System.out.println( "rock, paper, scissors, lizard, or spock?" );
    Scanner user_input = new Scanner ( System.in );
    String guess;
    guess = user_input.next( );
    String [ ] comp;
        comp = new String [ 5 ];
        comp[ 0 ] = "Rock";
        comp[ 1 ] = "Paper";
        comp[ 2 ] = "Scissors";
        comp[ 3 ] = "Lizard";
        comp[ 4 ] = "Spock";
        Random hi;
        hi = new Random( );
        System.out.println( "::" + guess +
            ":: vs ::" + comp[ hi.nextInt( 5 ) ] + "::") ;
            if (guess.equals( "rock" ) & comp[ hi.nextInt( 5 ) ].equals(1) ) System.out.println( "Its a tie" );
}

}

我现在只有一个输出,但一旦我明白该怎么做,我就会为每种情况添加一个。

非常感谢您的帮助!谢谢

可能对您有所帮助的多个细节:

您需要使用&而不是&测试逻辑AND

惯例是类名以Caps:Rock 开头

如果您调用nextInt()两次,它可能会返回两个不同的值。如果你想要相同的,你应该调用它一次,并将它存储在一个变量中。

您需要使用if-else语句对每个场景进行检查。只是要小心,不要做任何多余的检查。

示例:

String compChoice = comp[hi.nextInt(5)];
if (guess.equalsIgnoreCase( compChoice )) { 
System.out.println("its a tie!");
}
else if(guess.equalsIgnoreCase( "rock" ) && compChoice.equals("paper")){
System.out.println("You lose");
}

等等

此外,我建议您更改您的:

if (guess.equals( "rock" )

收件人:

If (guess.equalsIgnoreCase( "rock" )

这样一来,如果用户确实输入了类似"roCK"的内容,大写就不会搞砸任何东西。

相关内容

  • 没有找到相关文章

最新更新