[英]Rock, paper, scissors simple game in java
嗨,我正在做一个简单的石头,纸,剪刀游戏,在获取比较方法执行时遇到了一些麻烦。 游戏提示用户进行输入,然后使用computersTurn方法允许计算机随机选择石头纸或剪刀。 当我尝试将这两个值都传递给我的compare方法时,它似乎不起作用。 任何建议都很棒!
import java.util.Scanner;
public class sillyGame {
public static void compare (String choice1, String choice2)
{
if (choice1.equals(choice2))
{
System.out.println("The result is a tie!");
}
if (choice1.contains("rock"))
{
if (choice2.contains("scissors"))
{
System.out.println("rock wins");
}
if (choice2.contains("paper"))
{
System.out.println("paper wins");
}
}
if (choice1.contains("scissors"))
{
if (choice2.contains("rock"))
{
System.out.println("rock wins");
}
if (choice2.contains("paper"))
{
System.out.println("scissors wins");
}
}
if (choice1.contains("paper"))
{
if (choice2.contains("rock"))
{
System.out.println("paper wins");
}
if (choice2.contains("scissors"))
{
System.out.println("scissors wins");
}
}
}
public static String computersTurn(String compFinalChoice, double randomNum){
randomNum = Math.random();
if (randomNum < 0.34)
{
compFinalChoice = "rock";
}
else if(randomNum <= 0.67)
{
compFinalChoice = "paper";
}
else
{
compFinalChoice = "scissors";
}
System.out.println("The computer chooses " + compFinalChoice);
return compFinalChoice;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Do you choose rock, paper or scissors?");
String userChoice = scan.nextLine();
String computerDec = " ";
double rand = 0.0;
computersTurn(computerDec, rand);
compare(userChoice, computerDec);
}
您不能从调用方更新字符串(或双精度字符串),所以我认为您应该重构computersTurn
public static String computersTurn() {
String choice = "scissors";
double randomNum = Math.random();
if (randomNum < 0.34) {
choice = "rock";
} else if (randomNum <= 0.67) {
choice = "paper";
}
System.out.println("The computer chooses "
+ choice);
return choice;
}
然后您可以在main
执行类似的操作
String computerDec = computersTurn();
要么
String userChoice = scan.nextLine();
compare(userChoice, computersTurn());
您的computersTurn
方法不需要任何参数。 您只需传递" "
和0.0
。
尝试将其更改为以下方法:
public static String computersTurn() {
// declare them here
double randomNum = Math.random();
String compFinalChoice = "";
if (randomNum < 0.34) {
compFinalChoice = "rock";
}
else if(randomNum <= 0.67) {
compFinalChoice = "paper";
}
else {
compFinalChoice = "scissors";
}
System.out.println("The computer chooses " + compFinalChoice);
return compFinalChoice;
}
然后在您的main
方法中,确保在调用computersTurn()
方法时将其分配给String。 调用它对您没有任何帮助; 您需要保留返回值:
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
System.out.println("Do you choose rock, paper or scissors?");
String userChoice = scan.nextLine();
String computerDec = computersTurn(); // assign it here
compare(userChoice, computerDec);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.