我正在为课堂编写一个程序。这是一个彩票游戏。这是给出的问题:
编写一个java程序。该程序应该有一个名为lotteryNumber()的方法,该方法应该接受两个整数,最大和最小数字,并应该随机生成并返回这两个数字之间的一个数字(均包含在内)。
另外,提供一个名为checkWinner()的方法,该方法应该接受两个数组(一个用于彩票号码,一个用于用户号码),并检查它们是否相同(相同的号码和序列)。如果它们相同,则应返回true,否则应返回false。请使用您自己的逻辑,使用相等运算符检查相等。使用预先构建的函数,比如数组。equals()是不允许的!
在main方法中,使用lotteryNumber()方法随机生成4个数字,在0-10之间(均含)。然后让用户从键盘输入4个0到10之间的数字。然后使用check Wner()方法检查并显示用户是否是赢家。
我的问题是彩票号码法。我怎么可能只返回一个数字,而不使用数组,仍然生成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;
}
}
任何帮助都将不胜感激!
您可以将一组数字转换为字符串,然后将字符串转换为单个数字。
Java-将整数转换为字符串
如何在Java中将字符串转换为int?
您让用户输入4-8位数字,一次1-2位。然后随机生成一个4-8位数字,一次1-2位,按照生成/计算的顺序查看它们,看看它们是否相同。
但是,如果您尝试组合然后比较,则此方法会有问题,因为它们的位数并不相同。考虑例如:10,1,0,0的随机数和生成的1,0,10,0的一组数字将它们组合起来都会导致10100,这可能是一个问题,具体取决于您如何定义相等。
根据你的问题定义,你可能希望看到一个由4,1-2位数字组成的序列。等式方法应该很简单,比如检查两个数组中相同位置的数字是否都相等。如果某人是赢家,则只需返回布尔值,而不是4-8位数。
由于这是一个家庭作业,我将避免给你代码,但我会帮助这个概念,你可以努力让它在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);
}
编辑
既然你在评论中提到你还没有进行循环,你仍然可以手动输入随机数:
numbers[0] = lotteryNumber(0, 10);
numbers[1] = lotteryNumber(0, 10);
numbers[2] = lotteryNumber(0, 10);
numbers[3] = lotteryNumber(0, 10);
我的代码看起来很业余,因为我是一名软件工程专业的二年级学生。 我创建了一个彩票号码生成器,并注意到了奇怪但一致的结果。我的程序试图匹配之前的百万欧元抽奖彩票号码。我追踪尝试次数,也追踪匹配3、4、5和6个数字的次数。 尝试次数在100万到4.22亿之间。i、 e.我会运行程序10次,我会实现一个范围,我还会跟踪每次运行所需的时间长度。 我解释了一些事情,比如防止一个随机数被多次使用,这个检查是针对
这是我的任务。 如果随机的3位数字与用户的3位数字完全匹配,则会获得一些奖励。 如果用户匹配3位数字但顺序不一致,则其他奖励。 如果用户匹配2位,则其他奖品 如果用户输入仅匹配1位,则其他奖品 这是我想出的: 我得到了三位数的匹配,有时编译后会得到三位数和两位数的匹配。告诉我怎么了。提前谢谢你们。
本文向大家介绍java生成彩色附logo二维码,包括了java生成彩色附logo二维码的使用技巧和注意事项,需要的朋友参考一下 java生成二维码有很多开发的jar包如zxing是谷歌开发的,这里的话我使用zxing的开发包来实现的。我们在很多项目中需要动态生成二维码,来提供给用户,这样让更多人能够很好的通过二维码来体验自己的应用。 下面贴出代码,已经测试通过,大家可以直接复制代码使用: 最后实现
在本章中,我们将研究如何在Drupal中生成发票。 发票是一份包含金额和成本,唯一发票编号和税务信息的单据。 以下是在Drupal中生成发票的步骤。 Step 1 - 下载Invoice模块的最新文件并安装在Drupal站点中。 Step 2 - 在模块中启用Invoice ,然后单击Save configuration 。 Step 3 - 转到Store --》 Invoices 。 Step
我必须创建一个彩票游戏,其中你随机生成六个中奖号码,模拟彩票。让用户输入六个数字,看看他们是否中了彩票! 我已经做了很多,但现在我卡住了。我对java真的很陌生,所以请原谅我。当它提示要求另一个数字时,它会这样做,但它仍然显示它以显示自制的彩票选秀权。此外,当显示计算机制作的彩票选秀权的数字时,它们是重复的相同数字,而不是6个数字。计数器不太好用,可能有点小问题,但我无法弄清楚。谢谢你
我创建了一个彩票程序,在0-9之间随机生成3个号码,然后随机生成3个中奖号码。我需要关于如何让程序显示中奖者(如果有的话)和中奖人数的帮助。 所以类似:赢家: 人1 人员5 获奖人数:2人 这是我的程序