当前位置: 首页 > 知识库问答 >
问题:

彩票号码生成器

公孙高轩
2023-03-14

我正在为课堂编写一个程序。这是一个彩票游戏。这是给出的问题:

编写一个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; 
}

}

任何帮助都将不胜感激!

共有2个答案

冷英光
2023-03-14

您可以将一组数字转换为字符串,然后将字符串转换为单个数字。

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位数。

孙经艺
2023-03-14

由于这是一个家庭作业,我将避免给你代码,但我会帮助这个概念,你可以努力让它在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

  • 本文向大家介绍使用jquery.qrcode生成彩色二维码实例,包括了使用jquery.qrcode生成彩色二维码实例的使用技巧和注意事项,需要的朋友参考一下 jquery.qrcode.js 是居于jquery类库的绘制二维码的插件,用它来实现二维码图形渲染支持canvas和table两种绘图方式。(jquery.qrcode.js 设置显示方式为table时在webkit核心浏览器如chrom

  • 我必须创建一个彩票游戏,其中你随机生成六个中奖号码,模拟彩票。让用户输入六个数字,看看他们是否中了彩票! 我已经做了很多,但现在我卡住了。我对java真的很陌生,所以请原谅我。当它提示要求另一个数字时,它会这样做,但它仍然显示它以显示自制的彩票选秀权。此外,当显示计算机制作的彩票选秀权的数字时,它们是重复的相同数字,而不是6个数字。计数器不太好用,可能有点小问题,但我无法弄清楚。谢谢你