Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I need help making the following code so that you can pick your own lottery numb

ID: 3878557 • Letter: I

Question

I need help making the following code so that you can pick your own lottery numbers and the random winning numbers that are picked each week are shown

import java.util.*;
enum lottryDays {

WED, SAT

}
public class Megabucks
{

private static int winning_count = 0;

public static int weeks = 52;

public static int randomNumber() {

return (int) (1 + 41 * Math.random());

}

public static void main(String[] args) {

List<Integer> patronsNumber = new ArrayList<>();

while(patronsNumber.size()!=6) {

int number = randomNumber();

if(patronsNumber.contains(number)) {

}else {

patronsNumber.add(number);

}

}

System.out.println("Patrons number are " + patronsNumber);

for (int i = 0; i < weeks; i++) {

for (lottryDays val : lottryDays.values()) {

MegaBucksRC draw = new MegaBucksRC();

if (draw.hasWon(patronsNumber)) {

winning_count++;

System.out.println("6 of 42");

} else {

String res = draw.matches(patronsNumber)+" of 6 Numbers";

if(draw.containsBonusNumber(patronsNumber)) {

res = res+"+bonus number";

}

System.out.println(res);

}

}

}

System.out.println("Lotteries Won: "+winning_count);

}
}

import java.util.*;
public class MegaBucksRC {

private int[] frequencyArray = new int[42];

private ArrayList<Integer> numbers = new ArrayList<>();

public MegaBucksRC() {

while (numbers.size() != 7) {

int number = randomNumber();

if (!numbers.contains(number)) {

if (numbers.size() < 6) {

updateFrequency(number);

}

numbers.add(number);

}

}

}

private void updateFrequency(int i) {

frequencyArray[i] = 1;

}

private int randomNumber() {

return (int) (1 + 41 * Math.random());

}

public int matches(List<Integer> patronsNumber) {

int count = 0;

boolean res = false;

for (int i = 0; i < patronsNumber.size(); i++) {

if (patronsNumber.contains(numbers.get(i))) {

count++;

}

}

return count;

}

public boolean containsBonusNumber(List<Integer> patronsNumber) {

return patronsNumber.contains(numbers.get(6));

}

public boolean hasWon(List<Integer> patronsNumber) {

boolean res = false;

if(matches(patronsNumber)==6) {

res = true;

}else if(matches(patronsNumber)==5 && containsBonusNumber(patronsNumber)) {

res = true;

}else {

res = false;

}

return res;

}

public List numbers() {

return numbers;

}

}

Explanation / Answer

Hello, I have a solution for you. Modfied the code (MegaBucks.java only) to let the user choose 6 numbers between 1 and 42 instead of generating a random number.

//MegaBucks.java

import java.util.*;

enum lottryDays {

      WED, SAT

}

public class Megabucks {

      static Scanner scanner;

      private static int winning_count = 0;

      public static int weeks = 52;

      public static int randomNumber() {

            return (int) (1 + 41 * Math.random());

      }

      public static void main(String[] args) {

            /**

            * Initializing scanner object to get user input

            */

            scanner = new Scanner(System.in);

            ArrayList<Integer> patronsNumber = new ArrayList<Integer>();

            while (patronsNumber.size() != 6) {

                  /**

                  * Changing code to get input from user

                  */

                  int number = getPatronNumber();

                  if (patronsNumber.contains(number)) {

                        System.out

                                    .println("You already entered this number, choose a different one");

                  } else {

                        patronsNumber.add(number);

                  }

            }

            System.out.println("Patrons number are " + patronsNumber);

            for (int i = 0; i < weeks; i++) {

                  for (lottryDays val : lottryDays.values()) {

                        MegaBucksRC draw = new MegaBucksRC();

                        if (draw.hasWon(patronsNumber)) {

                              winning_count++;

                              System.out.println("6 of 6");

                        } else {

                              String res = draw.matches(patronsNumber) + " of 6 Numbers";

                              if (draw.containsBonusNumber(patronsNumber)) {

                                    res = res + "+bonus number";

                              }

                              System.out.println(res);

                        }

                  }

            }

            System.out.println("Lotteries Won: " + winning_count);

      }

      /**

      * method to let the user choose the patron numbers. Will fetch one number

      * between 1 and 42 and returns it

      */

      public static int getPatronNumber() {

            try {

                  System.out.println("Enter a number between 1 and 42");

                  int number = Integer.parseInt(scanner.nextLine());

                  if (number >= 1 && number <= 42) {

                        return number;

                  } else {

                        System.out.println("Number should be between 1 and 42");

                        return getPatronNumber();

                  }

            } catch (Exception e) {

                  System.out.println("Invalid input, try again");

                  return getPatronNumber();

            }

      }

}

//MegaBucksRC.java

import java.util.ArrayList;

import java.util.List;

public class MegaBucksRC {

      private int[] frequencyArray = new int[42];

      private ArrayList<Integer> numbers = new ArrayList<Integer>();

      public MegaBucksRC() {

            while (numbers.size() != 7) {

                  int number = randomNumber();

                  if (!numbers.contains(number)) {

                        if (numbers.size() < 6) {

                              updateFrequency(number);

                        }

                        numbers.add(number);

                  }

            }

      }

      private void updateFrequency(int i) {

            frequencyArray[i] = 1;

      }

      private int randomNumber() {

            return (int) (1 + 41 * Math.random());

      }

      public int matches(List<Integer> patronsNumber) {

            int count = 0;

            boolean res = false;

            for (int i = 0; i < patronsNumber.size(); i++) {

                  if (patronsNumber.contains(numbers.get(i))) {

                        count++;

                  }

            }

            return count;

      }

      public boolean containsBonusNumber(List<Integer> patronsNumber) {

            return patronsNumber.contains(numbers.get(6));

      }

      public boolean hasWon(List<Integer> patronsNumber) {

            boolean res = false;

            if (matches(patronsNumber) == 6) {

                  res = true;

            } else if (matches(patronsNumber) == 5

                        && containsBonusNumber(patronsNumber)) {

                  res = true;

            } else {

                  res = false;

            }

            return res;

      }

      public List numbers() {

            return numbers;

      }

}

/*OUTPUT*/

Enter a number between 1 and 42

11

Enter a number between 1 and 42

26

Enter a number between 1 and 42

7

Enter a number between 1 and 42

33

Enter a number between 1 and 42

44

Number should be between 1 and 42

Enter a number between 1 and 42

42

Enter a number between 1 and 42

12

Patrons number are [11, 26, 7, 33, 42, 12]

1 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers+bonus number

2 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers+bonus number

1 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

3 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers+bonus number

1 of 6 Numbers+bonus number

0 of 6 Numbers

0 of 6 Numbers

2 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers+bonus number

0 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

3 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers+bonus number

2 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers+bonus number

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers+bonus number

0 of 6 Numbers+bonus number

1 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers+bonus number

1 of 6 Numbers

2 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers+bonus number

0 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

0 of 6 Numbers

2 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

0 of 6 Numbers

3 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

2 of 6 Numbers

1 of 6 Numbers

1 of 6 Numbers

2 of 6 Numbers

1 of 6 Numbers

0 of 6 Numbers

Lotteries Won: 0

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote