// Ü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."); } }