Java Lotto Spiel; ich komme nicht weiter

klara3700

Neues Mitglied
--ich sitze jetzt seit stunden dran und bin vermtlich zu blöd. ich soll ein Lottospiel kreieren, der zahlen generiert. Danach wird der user gefragt nach zahlen. diese sollen verglichen werden, Falls die Zahlenfolge stimmt, hat man gewonnen. falls nicht wird er erneut nach einer eingabe gefragt, bis er die richtigen zahlen trifft. dabei soll gezählt werden, wie viele versuche der mensch hatte.


package uebung04;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;


public class Uebung04 {
public static void main(String[] args) {


int[] ziehung = new int[6];


for(int i = 0; i < ziehung.length; i++) {
int zufallszahl = (new Random().nextInt(49) +1);
ziehung = zufallszahl;

for (int j=0; j<i; j++) {
if (ziehung==ziehung[j]) {
j = 6;
i--;
}
}
}

// Aufgabe: Das Array "ziehung" soll keine doppelten Werte enthalten! Unique-Zahlen



// Aufgabe: Stimmen die Zahlen von "lottozahlen" mit den Zahlen von "ziehung" �berein? Wenn ja: gewonnen!
// Wenn nein: ziehung nochmal machen, bis der Spieler gewonnen hat.

boolean play = true;
int versuche = 1;


do {
System.out.println("Bitte geben Sie ihre Zahlenfolge ein: ");


Scanner scanner = new Scanner(System.in);

int[] geraten = new int[6];

for(int i = 0; i < ziehung.length; i++) {



int nummerInt = scanner.nextInt();
if(nummerInt >=1 && nummerInt <=49) {
geraten = nummerInt;
break;

}
else {
System.out.println(nummerInt + "ist eine ungültige Eingabe.Nochmal eingeben" );
}

}



while(true)

if(ziehung[0]== geraten[0] && ziehung[1]== geraten[1] && ziehung[2]== geraten[2] && ziehung[3]== geraten[3] && ziehung[4]== geraten[4] ) {
System.out.println("Du hast " + versuche + "Versuche gebraucht");
play =false;}





}
}
 

weihnachtspyramide

Aktives Mitglied
Vielleicht so, diese Frage kommt ja immer wieder auf:

Java:
import java.util.*;

public class Lotto {
    private static final int LOWER_BOUND = 1;
    private static final int UPPER_BOUND = 6;
    private static final int NUMBER_OF_TIPS = 2;

    public static void user_input_main_loop() {
        int r;
        do {
            int[] input = inputTips();
            int[] tips = generateTips();
            r = checkTips(tips, input);
            System.out.println("Ziehung: " + Arrays.toString(tips));
            System.out.println("Du hattest: " + r + " Richtige.");
        } while (r != NUMBER_OF_TIPS);
    }

    private static int[] inputTips() {
        SortedSet<Integer> set = new TreeSet<>();
        for (int i = 0; i < NUMBER_OF_TIPS; i++) {
            System.out.println("Bitte Tipp Nr. " + (i + 1) + ":");
            int t = new Scanner(System.in).nextInt();
            if (t < LOWER_BOUND || t > UPPER_BOUND || set.contains(t)) {
                i--;
            } else {
                set.add(t);
            }
        }
        return set.stream().mapToInt(Integer::intValue).toArray();
    }

    private static int[] generateTips() {
        Random r = new Random();
        SortedSet<Integer> set = new TreeSet<>();
        while (set.size() < NUMBER_OF_TIPS) {
            int rt = r.nextInt(UPPER_BOUND - LOWER_BOUND + 1) + LOWER_BOUND;
            set.add(rt);
        }
        return set.stream().mapToInt(Integer::intValue).toArray();
    }

    private static int checkTips(int[] tips, int[] input) {
        int r = 0;
        for (int i : input) {
            if (Arrays.binarySearch(tips, i) >= 0) {
                r++;
            }
        }
        return r;
    }

    public static void main(String[] args) {
        user_input_main_loop();
    }
}
 
Y

yfons123

Gast
Vielleicht so, diese Frage kommt ja immer wieder auf:

Java:
import java.util.*;

public class Lotto {
    private static final int LOWER_BOUND = 1;
    private static final int UPPER_BOUND = 6;
    private static final int NUMBER_OF_TIPS = 2;

    public static void user_input_main_loop() {
        int r;
        do {
            int[] input = inputTips();
            int[] tips = generateTips();
            r = checkTips(tips, input);
            System.out.println("Ziehung: " + Arrays.toString(tips));
            System.out.println("Du hattest: " + r + " Richtige.");
        } while (r != NUMBER_OF_TIPS);
    }

    private static int[] inputTips() {
        SortedSet<Integer> set = new TreeSet<>();
        for (int i = 0; i < NUMBER_OF_TIPS; i++) {
            System.out.println("Bitte Tipp Nr. " + (i + 1) + ":");
            int t = new Scanner(System.in).nextInt();
            if (t < LOWER_BOUND || t > UPPER_BOUND || set.contains(t)) {
                i--;
            } else {
                set.add(t);
            }
        }
        return set.stream().mapToInt(Integer::intValue).toArray();
    }

    private static int[] generateTips() {
        Random r = new Random();
        SortedSet<Integer> set = new TreeSet<>();
        while (set.size() < NUMBER_OF_TIPS) {
            int rt = r.nextInt(UPPER_BOUND - LOWER_BOUND + 1) + LOWER_BOUND;
            set.add(rt);
        }
        return set.stream().mapToInt(Integer::intValue).toArray();
    }

    private static int checkTips(int[] tips, int[] input) {
        int r = 0;
        for (int i : input) {
            if (Arrays.binarySearch(tips, i) >= 0) {
                r++;
            }
        }
        return r;
    }

    public static void main(String[] args) {
        user_input_main_loop();
    }
}
also wow, diese erklärungen und was der dann da jetzt gelernt hat einfach wow bin begeistert
 
Y

yfons123

Gast
Verzeihung, hatte nicht nachgedacht
es sei dir vergeben

es ist einfach scheiße anfängern streams an den kopf zu knallen weil das erst nach dem 2ten semester dran ist

du siehst an seinem package namen dass es die übung 4 ist , das thema ist relativ einfach und keine gui => muss fast erstes semester sein

da bringts nichts ihm schwere sachen an den kopf zu ballern
und ich hatte mit meiner uni glück, es gibt unis wo du als informatiker raus gehst ohne ein lambda gesehen zu haben oder eine sql datenbank aufgemacht hast
 
Zuletzt bearbeitet von einem Moderator:

weihnachtspyramide

Aktives Mitglied
da bringts nichts ihm schwere sachen an den kopf zu ballern
so schwer sind die Sachen nicht, absolute basics

es ist einfach scheiße anfängern streams an den kopf zu knallen weil das erst nach dem 2ten semester dran ist
das stimmt, aber das kann er ja noch seinen Wünschen anpassen

und ich hatte mit meiner uni glück, es gibt unis wo du als informatiker raus gehst ohne ein lambda gesehen zu haben oder eine sql datenbank aufgemacht hast
naja, ich zweifle etwas daran... wenigstens etwas sollte man doch können - richtig Scheiße wird es dann im Arbeitsleben, wenn man eine Zeit lang mit den unfähigen Kollegen zusammen arbeiten muss - gut, dass ich nicht dort arbeite, wo diese Idioten sind :D
 
Y

yfons123

Gast
das stimmt, aber das kann er ja noch seinen Wünschen anpassen
nein kann er nicht da er den code nicht lesen kann
so schwer sind die Sachen nicht, absolute basics
streams sind nicht basics
richtig Scheiße wird es dann im Arbeitsleben, wenn man eine Zeit lang mit den unfähigen Kollegen zusammen arbeiten muss
es geht schlimmer, wenn du die verantwortung für das zeug trägst aber keine entscheidungs gewalt darüber hast

außerdem tobias, nur weil man streams benutzt ist es kein guter code
es sieht fancy aus und ist gut, heißt aber nicht dass man es überall hinklatschen soll
 
Y

yfons123

Gast
hier mal ein kleines beispiel, damit man sich auf fachlicher ebene unterhält
Java:
        SortedSet<Integer> set = new TreeSet<>();
        while (set.size() < NUMBER_OF_TIPS) {
            int rt = r.nextInt(UPPER_BOUND - LOWER_BOUND + 1) + LOWER_BOUND;
            set.add(rt);
        }
return set.stream().mapToInt(Integer::intValue).toArray();
sieht ganz fancy aus und aber ist das nicht nbissle umständlich?

wie könnte man dann den code vereinfachen?
Code:
static int wasAuchImmerDasIst(){
  return new Random().nextInt(UPPER_BOUND - LOWER_BOUND + 1) + LOWER_BOUND;
  }
erstmal diese berechnung raus ziehen, was auch immer sie tut ( jetzt übrigens testbar )

so und jetzt füll ich mein array
Code:
int[] result = new int[NUMBER_OF_TIPS]
for(int i = 0; i < result.length;i++)
    result[i] = wasAuchImmerDasIst()
return result;
so jetzt ist schon mal sicher gestellt dass es funktioniert

jetzt kannst du deine streams auspacken und den code aufräumen

Code:
public int[] generateTips(){
    int[] array = new int[NUMBER_OF_TIPS];     
    Arrays.stream(array).forEach(number -> number = GetNumber());
    return array;
}
geht bestimmt auch noch schöner und besser aber ich kenn streams nicht so gut

jetzt habe ich einen while loop, 2 variablen und das set eliminiert nur in dem ich deinen code umgestellt habe
meinen code kann man bestimmt auch nochmal vereinfachen aber das machst du schon
 

weihnachtspyramide

Aktives Mitglied
static int wasAuchImmerDasIst(){ return new Random().nextInt(UPPER_BOUND - LOWER_BOUND + 1) + LOWER_BOUND; }
strittig

int[] result = new int[NUMBER_OF_TIPS] for(int i = 0; i < result.length;i++) result = wasAuchImmerDasIst() return result;
geht nicht so einfach

Arrays.stream(array).forEach(number -> number = GetNumber());
nicht sinnvoll

:confused: und gute Nacht :)
 

mihe7

Top Contributor
wie könnte man dann den code vereinfachen?
Ab 17 r.nextInt(LOWER_BOUND, UPPER_BOUND + 1); :)

jetzt habe ich einen while loop, 2 variablen und das set eliminiert nur in dem ich deinen code umgestellt habe
Funktioniert so leider nicht. Das Set hat den Hintergrund, eine bestimmte Anzahl garantiert verschiedener(!) Zufallszahlen zu erhalten.

Mit Streams lässt sich das recht einfach lösen (der Code dürfte sogar mit Java 8 funktionieren):

Java:
public int[] generateTips() {
    return new Random().ints(LOWER_BOUND, UPPER_BOUND + 1) // Stream von Zufallszahlen im Bereich LB bis UB (beide incl.) erzeugen
        .distinct() // nur paarweise verschiedene Werte ins Ergebnis aufnehmen
        .limit(NUMBER_OF_TIPS) // Anzahl Elemente auf N_O_T begrenzen
        .toArray(); // und noch ein Array draus machen
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3
Z Operatoren Java Applikation Java Basics - Anfänger-Themen 8
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2
sasnitzer java augensumme von zwei würfeln ist 1 Java Basics - Anfänger-Themen 8
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
Hzrfa Länge der längsten Kette java Java Basics - Anfänger-Themen 56
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben