Java 2个一位数彩票游戏,can';我找不到哪里出了错
我试图设计一个彩票游戏,你选择两个一位数的数字,并将它们与随机数进行比较。我正在使用我的教授给我的一个代码示例,并试图对其进行调整以使用它。我一直在想如何让它运行,或者我出了什么问题Java 2个一位数彩票游戏,can';我找不到哪里出了错,java,Java,我试图设计一个彩票游戏,你选择两个一位数的数字,并将它们与随机数进行比较。我正在使用我的教授给我的一个代码示例,并试图对其进行调整以使用它。我一直在想如何让它运行,或者我出了什么问题 import java.util.Scanner; public class Lottery { private static Scanner input; public static void main(String[] args) { String lottery = ""
import java.util.Scanner;
public class Lottery {
private static Scanner input;
public static void main(String[] args) {
String lottery = "" + (int) (Math.random() * 10);
String lottery1 = "" + (int) (Math.random() * 10);
input = new Scanner(System.in);
System.out.print("Enter your first single digit guess: ");
String guess = input.nextLine();
System.out.print("Enter your second single digit guess: ");
String guess1 = input.nextLine();
int lotteryDigit1 = lottery.charAt(0);
int lottery1Digit1 = lottery.charAt(1);
int guessDigit1 = guess.charAt(0);
int guess1Digit1 = guess1.charAt(1);
System.out.println("The lottery number is " + lottery);
if (guess.equals(lottery))
System.out.println("Exact match: you win $10,000");
else if (guess1Digit1 == lotteryDigit1
&& guessDigit1 == lottery1Digit1)
System.out.println("Match all digits: you win $3,000");
else if (guessDigit1 == lotteryDigit1
|| guessDigit1 == lottery1Digit1
|| guess1Digit1 == lotteryDigit1
|| guess1Digit1 == lottery1Digit1)
System.out.println("Match one digit: you win $1,000");
else
System.out.println("Sorry, no matches");
}
}
我只能称这种处理程序函数的方法为“有趣”。尽管如此,您仍需要添加以下更改:
import java.util.Scanner;
public class Lottery {
private static Scanner input;
public static void main(String[] args) {
String lottery = "" + ((int) (Math.random() * 10)) + ((int) (Math.random() * 10));
input = new Scanner(System.in);
System.out.print("Enter your two digit guess: ");
String guess = input.nextLine();
int lotteryDigit1 = lottery.charAt(0);
int lottery1Digit1 = lottery.charAt(1);
int guessDigit1 = guess.charAt(0);
int guess1Digit1 = guess.charAt(1);
System.out.println("The lottery number is " + lottery);
if (guess.equals(lottery))
System.out.println("Exact match: you win $10,000");
else if (guess1Digit1 == lotteryDigit1
&& guessDigit1 == lottery1Digit1)
System.out.println("Match all digits: you win $3,000");
else if (guessDigit1 == lotteryDigit1
|| guessDigit1 == lottery1Digit1
|| guess1Digit1 == lotteryDigit1
|| guess1Digit1 == lottery1Digit1)
System.out.println("Match one digit: you win $1,000");
else
System.out.println("Sorry, no matches");
}
}
原始程序的问题是,它忘了将彩票和彩票1压缩成彩票,我添加了彩票,并且它选择了将数字分开,这是非常低效的。现在,这两个数字都是两位数,系统的其余部分保持不变。代码现在已经简化了。考虑一下这段相当简化的代码
// uses java.util.Random
Random rand = new Random ();
Scanner scan = new Scanner (System.in);
int guess1 = rand.nextInt(10);
int guess2 = rand.nextInt(10);
System.out.println("Enter number 1");
int myGuess1 = scan.nextInt();
System.out.println("Enter number 2");
int myGuess2 = scan.nextInt();
System.out.printf("Random1 %d Random2 %d Guess1 %d Guess2 %d",
guess1, guess2, myGuess1, myGuess2);
我将把比较留给您所有这些转换是怎么回事?您正在使用
String
char
和int
-只需使用int
我刚刚脱离了前面给出的示例,并尝试调整它,使其符合我的要求。提示:扫描仪有一个nextInt
方法。除去int
之外的所有内容我不太明白你的建议,抱歉,但我对JAVASee还是相当陌生。我的答案是Adam,我认为它在某种程度上简化了你的代码