// Übung 6 Aufgabe 3

import java.util.Arrays; // für sort()

public class Lotto {
    
        // Hier die eigenen Methoden
	
		// Hilfsfunktion zum Ausgeben der Arrays
        public static void array_ausgeben(int[] array) {
                for(int a : array) System.out.print(a + " ");
                System.out.println("");
        }
    
        // tipp(): Einlesen von 6 Zahlen zwischen 1 und 49 von Tastatur,
        // keine doppelt, Rückgabe als Array.
        // Benutzt Eingabe.java.
        
        public static int [] tipp() {
        	int [] zahlen = new int[6]; // 6 int-Zahlen sollen zurückgegeben werden
        	int i = 0; // Zähler für while-Schleife
        	while(i<6) {
        		zahlen[i] = Eingabe.readInt("Bitte " + (i+1) + ". ganze Zahl "
        				+ "zwischen 1 und 49 eingeben: ");
        		if(zahlen[i] < 1 || zahlen[i] > 49) {
        			System.out.println("Die Zahl muss zwischen 1 und 49 liegen!");
        			continue; // Rest überspringen, wieder von Anfang while()
        		}
        		if(i > 0) { // Sind schon Zahlen im Array?
        			boolean doppelt = false;
        			for(int j=0; j < i; j++) { // Alle Vorgänger im Array betrachten
        				if(zahlen[j] == zahlen[i]) {
        					System.out.println("Diese Zahl hatten wir schon.");
        					doppelt = true;
        					break; // for-Schleife abbrechen
        				}
        			}
        			if(doppelt) continue; // Wieder an den Anfang der while()-Schleife
        		}
        		i++; // Nächster Durchlauf -> Nächste Zahl
        	}
        	return zahlen; // Und Array zurückgeben
        }
        
        public static int [] ziehung() {
        	int [] zahlen = new int[6]; // 6 int-Zahlen sollen zurückgegeben werden
        	int i = 0; // Zähler für while-Schleife
        	while(i<6) {
        		zahlen[i] = (int) (Math.random() * 49.0) + 1; // 1...49 als int.
        		if(i > 0) { // Sind schon Zahlen im Array?
        			boolean doppelt = false;
        			for(int j=0; j < i; j++) { // Alle Vorgänger im Array betrachten
        				if(zahlen[j] == zahlen[i]) {
        					doppelt = true;
        					break; // for-Schleife abbrechen
        				}
        			}
        			if(doppelt) continue; // Wieder an den Anfang der while()-Schleife
        		}
        		i++; // Nächster Durchlauf -> Nächste Zahl
        	}
        	return zahlen; // Und Array zurückgeben
        }
        
        public static int auswertung(int[] a, int[] b) {
        	int richtige = 0;
        	for(int i=0; i<a.length; i++)
        		for(int j=0; j<b.length; j++)
        			if(a[i] == b[j]) ++richtige;
        	return richtige;
        }
        
        public static void main(String[] args) {
        	int[] t = tipp();
        	int[] z = ziehung();
        	Arrays.sort(t);
        	Arrays.sort(z);
        	
        	array_ausgeben( t );    // Test: Ausgeben, was Benutzer eingegeben hat.
        	array_ausgeben( z );    // Test: Ausgeben, was Computer gezogen hat.
        	System.out.println("Sie haben " + auswertung(t,z) + " Zahlen richtig erraten.");
        }
  
}