Lotterie

Udo278

Grünschnabel
Ja hallo,
ich betreibe Java als Hobby, bin aber noch Anfänger und hab mir diese Aufgabenstellung aus einem Buch nun zur Aufgabe gemacht. Ich habe aber jetzt Probleme beim erstellen dieses Lotterie-Programms.
-Zunächst sollen 6 verschiedene Zahlen (1-49) mit Zusatzzahl vom Benutzer eingegeben werden und zusätzlich noch eine Superzahl 1 bis 9.
->Wie sieht das aus,dass ich die Zahlen speichern kann

-Dann soll das Programm 6 Gewinnzahlen + zusatzzahl ermittelt werden (mit Array) und wieder abgespeichert werden ->Aber wie?

-die Gewinnzahlen sollen dann mittels Bubblesort sortiert werden aufsteigend am Ende dann die Zusatz und Superzahl-> Wie bekommt man die Zusatz und Superzahl bei der Sortierung integriert?

-Das schwerste, dann soll das Programm die Übereinstimmungen in Kategorien einteilen Vierer, Dreier, Vierer + zusatzzahl, fünfer, fümfer mit zusatzzahl sechser und sechser mit zusatzzahl
-->Wie macht man das?


hab bereits ein Programm geschrieben aber das ist nicht vollständig und unübersichtlich...wollte das mit einer Applikation testen...

Danke für eure Hilfe
 
wie du das ganze speicherst, beantwortest du doch schon selbst. Mit einem Array.
int[] zahlen = new int[6]; // erstellt ein Array für 6 Zahlen.
// Die einzelnen Elemente kann man dann so zuweisen
zahlen[0] = 1;
zahlen[1] = 2;
// Beachte das bei 0 angefangen wird zu zählen und somit das letzte Element zahlen[5] ist
In einer Schleife for(int i=0; i<5;i++) kannst du dann vom Benutzer die Zahlen einlesen lassen.
Arrays lassen sich sehr leicht sortieren:
import java.util.Arrays; // oben importieren

// dann in der Methode:
Arrays.sort(zahlen);

Poste das nächste mal am Besten etwas Quelltext, dann kann man besser helfen.
 
hmmm
Ich hatte schon mal ein ähnliches Programm geschrieben, aber was mir gerade auffällt:
Wie lasse ich mir vom computer die Zahlen random zwischen 20 und 49 ausgeben minimum soll also 20 sein.

int zahl=(int)(Math.random()*49); wäre das max
 
schlau gemacht,

udo hast du schon was programmiert? wenn ja, dann poste mal

werde dann mal morgen meine lösung posten, und mit den Zahlen gehe ich mittwoch lotto spielen ^^
 
Danke für eure Antworten!

Aber wie mach ich das mit dem Zuweisen, sechser mit Superzahl usw.?

Komm grad garnicht mehr weiter,
kann nicht mal jemand ein solches Programm posten...für weitere Denkanstöße?
 
Code:
import java.util.*;
public class Lotto {
	public static void main (String [] args){
		
		int superzahl,hilfe=0;
		int [] tip=new int[6]; //mein Array der Länge 6, wo ich die Tipps speichere
		int [] ziehung=new int[6];
		Scanner myscan=new Scanner(System.in); // mit der ScannerKlasse werden die Eingaben eingelesen
		
		System.out.println("Sie möchten Lotto Spielen! Bitte Geben Sie Zahlen zwischen 1-49 ein!");
			for(int i=0;i<tip.length;i++){
				System.out.println("Geben sie die "+(i+1)+".Zahl ein!"); //(i+1) da i=0. Ich möchte ja nicht
					tip[i]=myscan.nextInt();							//0.Zahl sondern 1.Zahl haben
			}
			
			System.out.println("Jetzt geben Sie noch die Superzahl an. Zwischen 1-9!");
				superzahl=myscan.nextInt();
				
				System.out.println("Sie haben folgende Zahlen getippt:");
				
				for(int i=0;i<tip.length;i++){
					System.out.print(tip[i]+",");
				}
				System.out.println();
				System.out.println("----SUPERZAHL: "+superzahl+" --------------------------");
				System.out.println("UND JETZT KOMMT DIE ZIEHUNG");
				
				//hier wird das Array ziehung mit Randomzahlen zwischen 1 und 49 aufgefüllt
				// es dürfen keine Zahlen doppelt vorhanden sein!
					
				for(int i=0;i<ziehung.length;i++){
						ziehung[i]=(int)(Math.random()*6)+1; //1<=Zahlen<=49 ziehen
						
						for(int check=0;check<i;check++){
							if(ziehung[check]==ziehung[i]){ 
	//es wird überprüft ob bestehende Zahlen //gleich der aktuellen ziehung[i] Zahl sind
							ziehung[i]=(int)(Math.random()*6)+1;//wenn ja, dann wird wieder neue Zahl
								check=-1;							// ziehung[i] zugewiesen
							}//check geht auf 0 und for schleife nochmal durchgemacht
						}
											
					}
					
					for(int i=0;i<ziehung.length;i++){
						System.out.print(ziehung[i]+",");
						}
					System.out.println();
				
	}//main
}

So, der erste Teil des Sourcecodes. War ja bis jetzt ganz leicht, BIS auf eine Sache!
Die Überprüfung ob gezogene Zahl, schon vorher gezogen worden ist. Wir haben ja ziehen ohne Wiederholung von Zahlen!

hier der code:
Code:
for(int i=0;i<ziehung.length;i++){
ziehung[i]=(int)(Math.random()*6)+1; //1<=Zahlen<=49 ziehen
for(int check=0;check<i;check++){
if(ziehung[check]==ziehung[i]){ 
//es wird überprüft ob bestehende Zahlen //gleich der aktuellen ziehung[i] Zahl sind
ziehung[i]=(int)(Math.random()*6)+1;//wenn ja, dann wird wieder neue Zahl
check=-1;							// ziehung[i] zugewiesen
}//check geht auf 0 und for schleife nochmal durchgemacht
						}
											
					}

Hat jemand vielleicht eine bessere Lösung für die Überprüfung?
 
Zurück