Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Lotto642 {
- public static void main(String[] args) {
- final int numCount = 6;
- final int maxNum = 42;
- System.out.printf("%d/%d LOTTO%n", numCount, maxNum);
- System.out.printf("Enter %d numbers between 1 and %d (no duplicates):%n",numCount,maxNum);
- final Set<Integer> userNums = getUserNumbers(numCount, maxNum);
- final Set<Integer> winningNums = getRandomSet(numCount, maxNum);
- final Set<Integer> intersection = new HashSet<>(winningNums);
- intersection.retainAll(userNums);
- System.out.println("\nYour numbers: " + winningNums);
- System.out.println("Winning numbers: " + userNums);
- System.out.println("You matched " + intersection.size() + " number(s).");
- switch (intersection.size()) {
- case 6 -> System.out.println("JACKPOT!");
- case 3, 4, 5 -> System.out.println("MINOR prize!");
- default -> System.out.println("Sorry, no prize. Better luck next time!");
- }
- }
- private static Set<Integer> getUserNumbers(int numCount, int maxNum) {
- final Scanner s = new Scanner(System.in);
- final Set<Integer> nums = new HashSet<>(numCount);
- while (nums.size() < numCount) {
- System.out.printf("Enter number %d: ", nums.size() + 1);
- final int num = s.nextInt();
- if(nums.contains(num)) {
- System.out.println("Duplicate number! Try again.");
- continue;
- }
- if (num > maxNum || num < 1) {
- System.out.println("Invalid! Number must be between 1 and " + maxNum);
- continue;
- }
- nums.add(num);
- }
- return nums;
- }
- private static Set<Integer> getRandomSet(int numCount, int maxNum) {
- Set<Integer> nums = new HashSet<>();
- Random random = new Random();
- while (nums.size() < numCount) {
- nums.add(random.nextInt(maxNum) + 1);
- // Sets ignore duplicates, so the size will only increase with distinct numbers
- }
- return nums;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment