Я пытаюсь написать программу лотереи (на основе венгерской игры, 5 чисел от 1 до 90), она работает почти нормально, когда я даю ей ошибочные числа (больше 90 или 0), она говорит мне, чтоЯ поступил неправильно.Но во второй раз это не так.Он продолжает игру с недействительными номерами.Какие у вас были советы, и что бы вы, ребята, сделали по-другому?
Спасибо, что уделили время.
Код:
import java.util.*;
class Lottery {
static int hits = 0;
Integer[] tippek = new Integer[5];
Random rand = new Random();
ArrayList<Integer> nums = new ArrayList<Integer>();
static Lottery lot = new Lottery();
public static void main (String[] args){
lot.wnums();
lot.tipread();
lot.tipcheck();
lot.wincheck();
lot.result();
}
public void wnums () {
// GENERATING THE WINNER NUMBERS
Set<Integer> set = new HashSet<Integer>();
for(int i = 0; set.size() < 5; i++){
int x = rand.nextInt(90) + 1;
set.add(x);
}
nums.addAll(set);
}
public void tipread (){
// READING THE TIPS
System.out.println("Please write 5 different number from 1 to 90.");
try{
Scanner scan = new Scanner(System.in);
tippek[0] = scan.nextInt();
tippek[1] = scan.nextInt();
tippek[2] = scan.nextInt();
tippek[3] = scan.nextInt();
tippek[4] = scan.nextInt();
}catch (InputMismatchException ex){
System.out.println("Error.");
}
}
public void tipcheck() {
int fault = 0;
List<Integer> tips = Arrays.asList(tippek);
try{
for(int tipp : tippek){
System.out.println(tipp);
if(tipp == 0 || tipp > 90){
fault++;
}
}
if(fault == 1){
System.out.println("One of your tips is invalid ");
System.out.println("Write other numbers");
lot.tipread();
}
if(fault > 1){
System.out.println(fault + " of your tips are invalid ");
System.out.println("Write other numbers");
lot.tipread();
}
for(int tipp : tips){
for(int i = 0; i < tips.size(); i++){
if(tips.indexOf(tips.get(i)) != tips.lastIndexOf(tips.get(i))){
System.out.println("You can write a number only once");
lot.tipread();
}
}
}
}catch (NullPointerException ex){
System.out.println("Error.");
}
}
public void wincheck () {
// CHECKING THE TIPS
try{
for(int tipp : tippek){
for(int i = 0; i < 5; i++){
if(nums.get(i) == tipp){
hits++;
}
}
}
}catch(Exception ex){
System.out.println(" ");
}
}
public void result() {
try{
Arrays.sort(tippek);
Collections.sort(nums);
String tippeksor = Arrays.toString(tippek);
System.out.println("Your tips in ascending order: " + tippeksor);
System.out.println("You have " + hits + " hits.");
System.out.println("The winning numbers are: " + nums);
}catch(Exception ex){
lot.tipread();
}
}
}