Mar*_*ary 2 java arrays random methods java.util.scanner
我正在为课堂写一个程序.这是一个彩票游戏.这是给出的问题:
写一个java程序.程序应该有一个名为lotteryNumber()的方法,它应该接受两个整数,最大和最小数字,并且应该随机生成并返回这两个数字之间的数字(包括两者).
另外,提供一个名为checkWinner()的方法,该方法应该接受两个数组(一个用于抽奖号码,一个用于用户号码)并检查它们是否相同(相同的数字和序列).如果它们相同,则应返回true,否则返回false.请使用您自己的逻辑来使用相等运算符检查相等性.不允许使用像Arrays.equals()这样的预构建函数!
在main方法中,使用lotteryNumber()方法随机生成4个数字,介于0-10(包括两者)之间.然后要求用户从键盘输入0到10之间的数字.然后使用checkWinner()方法检查并显示用户是否为胜利者.
我的问题是使用lotteryNumber方法.我怎么应该只返回一个数字而不使用数组并仍然生成4个数字?请记住,我一般都是数组和java的新手,我需要将彩票号放在main方法的数组中,以便我可以将它们与用户输入进行比较.或者至少这就是我的问题
这就是我现在所拥有的.对不起,它是如此混乱,我一直在尝试不同的东西,希望弄明白
import java.util.Random;
import java.util.Scanner;
public class Assignment04 {
public static void main (String [] args){
Scanner input = new Scanner (System.in);
Random r = new Random ();
int [] user= new int [4];
//int [] rand= new int [4];
int rand1= r.nextInt(10);
int rand2= r.nextInt(10);
int rand3 = lotteryNumber(rand1,rand2);
/*for (int i=0; i<rand.length; i++){
rand [i] = r.nextInt(11);
}
for (int j=0; j<rand.length; j++){
System.out.print(rand[j]+",");
}*/
System.out.println("");
System.out.print("Enter number 1 between (1-10)= ");
user[0] = input.nextInt();
System.out.print("Enter number 2 between (1-10)= ");
user[1] = input.nextInt();
System.out.print("Enter number 3 between (1-10)= ");
user[2]= input.nextInt();
System.out.print("Enter number 4 between (1-10)= ");
user[3] = input.nextInt();
System.out.printf("Your numbers- %d, %d, %d, %d \n",user[0],user[1],user[2],user[3]);
if (checkNumber(user,rand)){
System.out.println("Winner!");
}
else System.out.println("Better luck next time!");
}
public static int lotteryNumber(int max, int min){
Random r = new Random ();
max = 0;
min= 100;
int n= 1+r.nextInt(10) ;
for (int i=0; i< 4;i++){
n = 1+r.nextInt(10);
if (n > max) max= n;
else if (n < min) min = n ;
else if (n<max && n>min) n = r.nextInt(10);
}
return n;
}
public static boolean checkNumber(int [] lottery, int[] input){
boolean a ;
int b=0;
for (int i=0; i<lottery.length; i++){
if (lottery[i]==input[i]) b++;
}
if (b==lottery.length) a = true;
else a = false;
return a;
}
Run Code Online (Sandbox Code Playgroud)
}
任何帮助将非常感激!
由于这是一项家庭作业,我将避免给你代码,但我会帮助你理解这个概念,你可以努力使它成为现实的Java.
您只需在main方法中创建一个数组,然后使该lotteryNumber()方法返回一个数字.然后使用从lotteryNumber()方法中获得的随机数填充main方法中的数组.
像这样的东西:
Main(){
array[] numbers;
loop 4 times{
numbers[index] = lotteryNumber(0, 10);
}
}
public int lotteryNumber(int min, int max){
return (random number between min and max);
}
Run Code Online (Sandbox Code Playgroud)
编辑
既然你在评论中提到你尚未完成循环,你仍然可以手动输入随机数:
numbers[0] = lotteryNumber(0, 10);
numbers[1] = lotteryNumber(0, 10);
numbers[2] = lotteryNumber(0, 10);
numbers[3] = lotteryNumber(0, 10);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4161 次 |
| 最近记录: |