Hallo Leute,
Ich schreibe gerade ein kleines Programm um zu Üben, da ich noch Java Neuling bin.
In dem Programm wird eine Lottoziehung simuliert.
Der Ablauf ist wie folgt:
Als erstes wird ein Zufallsschein angelegt und danach kann der User einen Schein mit selbst gewählten Zahlen tippen. Danach findet die Ziehung statt. Die Ziehung ist aber auch bloß ein Objekt wie ein Zufallsschein. Nach der Ziehung möchte ich prüfen ob der User gewonnen hat. Die mache ich in dem ich prüfe ob die 1. Zahl mit einer aus der Ziehung überein stimmt. Falls nein, wird die nächste Zahl geprüft. Falls Ja wird eine noch nicht implementierte Aktion durchgeführt.
Nun komme ich zu meinem Problem:
Ich muss also aus dem scheinA-Objekt auf das ziehung-Objekt zugreifen. Ist dies irgendwie möglich? Könnte ich den Code an dieser oder an einer anderen Stelle besser schreiben? Gibt es sonst noch Verbesserungsvorschläge?
Main:
Lottoschein:
Globalhost
Edit: Hier seht ihr wie die checkGewinn-Methode geplant ist:
Anhand der Klasse bestimme ich dann den Gewinn.
Klasse > 9 kein Gewinn
Klasse == 9 2er mit Super
Klasse == 8 3er
Klasse == 7 3er mit Super
Klasse == 6 4er
Klasse == 5 4er mit Super
Klasse == 4 5er
Klasse == 3 5er mit Super
Klasse == 2 6er
Klasse == 1 6er mit Super
Ich schreibe gerade ein kleines Programm um zu Üben, da ich noch Java Neuling bin.
In dem Programm wird eine Lottoziehung simuliert.
Der Ablauf ist wie folgt:
Als erstes wird ein Zufallsschein angelegt und danach kann der User einen Schein mit selbst gewählten Zahlen tippen. Danach findet die Ziehung statt. Die Ziehung ist aber auch bloß ein Objekt wie ein Zufallsschein. Nach der Ziehung möchte ich prüfen ob der User gewonnen hat. Die mache ich in dem ich prüfe ob die 1. Zahl mit einer aus der Ziehung überein stimmt. Falls nein, wird die nächste Zahl geprüft. Falls Ja wird eine noch nicht implementierte Aktion durchgeführt.
Nun komme ich zu meinem Problem:
Ich muss also aus dem scheinA-Objekt auf das ziehung-Objekt zugreifen. Ist dies irgendwie möglich? Könnte ich den Code an dieser oder an einer anderen Stelle besser schreiben? Gibt es sonst noch Verbesserungsvorschläge?
Main:
Java:
import java.util.Scanner;
public class main {
public static void main(String Args[]){
int[] gezogeneZahlen = new int[6];
//Zufallstipp
System.out.print("Tipp1: ");
Lottoschein scheinA = new Lottoschein();
for(int i = 0; i < 6; i++){
System.out.print(scheinA.getZahlen(i) + ", ");
}
System.out.println("Superzahl: " + scheinA.getSuper());
//Tipp mit Eingabe
Scanner eingabe = new Scanner(System.in);
int[] tippZahl = new int[6];
for(int i = 0; i < 6; i++){
System.out.print("Welche Zahl möchtest du als " + (i + 1) + ". tippen?: ");
tippZahl[i] = eingabe.nextInt();
//falls schon vorhanden
for(int check = 0; check<i; check++){
if(tippZahl[i] == tippZahl[check]){
//erneute Abfrage dieser Zahl
i--;
System.out.println("Du darfst eine Zahl nur einmal tippen.");
}
}
//falsch falsch eingegeben
if(tippZahl[i] > 49 || tippZahl[i] < 1){
i--;
System.out.println("Die Zahl muss zwischen 1 und 49 liegen.");
}
}
int tippSuper;
boolean checkFalsch = false; //falls falsch eingegeben.
do {
if(checkFalsch){
System.out.println("Die Zahl muss zwischen 0 und 9 liegen.");
}
System.out.print("Welche Zahl möchtest du als Superzahl tippen?: ");
tippSuper = eingabe.nextInt();
checkFalsch = true;
}while (tippSuper < 0 || tippSuper > 9);
Lottoschein scheinB = new Lottoschein(tippZahl[0], tippZahl[1], tippZahl[2], tippZahl[3], tippZahl[4], tippZahl[5], tippSuper);
/*
for(int i = 0; i < 6; i++){
System.out.print(scheinB.getZahlen(i) + ", ");
}
System.out.println("Superzahl: " + scheinB.getSuper());
*/
//Ziehung
System.out.print("Ziehung: ");
Lottoschein ziehung = new Lottoschein();
for(int i = 0; i < 6; i++){
System.out.print(ziehung.getZahlen(i) + ", ");
}
System.out.println("Superzahl: " + ziehung.getSuper());
//Prueft ob ein Gewinn vorhanden ist
//scheinA.checkGewinn();
//scheinB.checkGewinn();
}
}
Lottoschein:
Java:
import java.util.Arrays;
import java.util.Random;
public class Lottoschein {
int[] Zahl = new int[6];
int superzahl;
//Konstruktor - ohne Parameter
public Lottoschein(){
Random zufaelligeZahl = new Random();
for(int i = 0; i<6; i++){
Zahl[i] = zufaelligeZahl.nextInt(49) + 1;
// Prueft ob die Zahl schon gezogen wurde
for(int check = 0; check<i; check++){
if(Zahl[i] == Zahl[check]){
//erneute Ziehung dieser Zahl
i--;
}
}
}
Arrays.sort(Zahl);
superzahl = zufaelligeZahl.nextInt(10);
}
//Konstruktor - mit Parameter
public Lottoschein(int zahl1, int zahl2, int zahl3, int zahl4, int zahl5, int zahl6, int zahl7){
Zahl[0] = zahl1;
Zahl[1] = zahl2;
Zahl[2] = zahl3;
Zahl[3] = zahl4;
Zahl[4] = zahl5;
Zahl[5] = zahl6;
superzahl = zahl7;
}
//Prüft ob ein Gewinnerziehlt wurde und gibt die Gewinnklasse zurueck
public int checkGewinn(){
for(int i=0; i < 6; i++){
for(int x = 0; x < 6; x++){
if(this.Zahl[i] == /*Ziehung[x]*/ ){
//richtige Zahl
}
}
}
// Get-Funktion
public int getZahlen(int Stelle){
return Zahl[Stelle];
}
public int getSuper(){
return superzahl;
}
}
Globalhost
Edit: Hier seht ihr wie die checkGewinn-Methode geplant ist:
Anhand der Klasse bestimme ich dann den Gewinn.
Klasse > 9 kein Gewinn
Klasse == 9 2er mit Super
Klasse == 8 3er
Klasse == 7 3er mit Super
Klasse == 6 4er
Klasse == 5 4er mit Super
Klasse == 4 5er
Klasse == 3 5er mit Super
Klasse == 2 6er
Klasse == 1 6er mit Super
Anhänge
Zuletzt bearbeitet von einem Moderator: