Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Bin derzeit dabei, ein Lotto-Programm zu schreiben, hänge jetzt aber seit Stunden daran, dass mein Tipps-Array (6 Zahlen), die in einem Tipp-Array (Schein) gespeichert werden sollten, immer nur den zuletzt eingegebenen Tipp beinhaltet.
Hab jetzt mal die meiner Meinung nach kritischen beiden Stellen rauskopiert:
Java:
Tip[] tip=new Tip[anzahl]; //anzahl= anzahl der Tipps, die man haben will.
for(int i=0; i<=anzahl-1; i++)
{
tip[i]=new Tip(); //Tip aus dem Array von oben wird gemacht.
tip[i].schnellTip(); //der Zahlen-Array des Tipp-Objektes wird aufgefüllt.
schein.addToTipp(tip[i]); //das Objekt wird im Tipp-Array des Scheins eingefügt
}
//hier ist die Schein-Klasse, in der die 12 Tipp-Objekte gespeichert werden sollen
public class Schein
{
public Tip[] schein=new Tip[12]; //Tipp-Array wird gemacht
int zahler=0;
public void addToTipp(Tip tip)
{
schein[zahler]=tip; //tip[i] von oben wird in den Tipp-Array von schein eingetragen
//hier liegt anscheinend der Fehler, aber ich komm nicht drauf...
zahler++;
}
public void printSchein(int x)
{
System.out.println();
System.out.println("Lottoschein:");
System.out.println("============");
for(int i=1; i<=x; i++)
{
System.out.print("Tipp "+i+". :\t");
schein[i-1].printTip();
}
}
}
Sind zum Beispiel 5 Tipps angelegt worden, wird bei der Ausgabe 5 mal der zuletzt eingetragene Zahlen-Array des Tipp-Objektes ausgegeben.
Wie bekomm ich das hin, dass der letzte Eintrag nicht alle vorherigen überschreibt?
import java.util.Arrays;
public class Schein
{
public Tip[] tipsammlung=new Tip[12];
int zahler=0;
public void addToTipp(Tip tip)
{
tipsammlung[zahler]=tip;
zahler++;
}
public void printSchein(int x)
{
System.out.println();
System.out.println("Lottoschein:");
System.out.println("============");
for(int i=1; i<=x; i++)
{
System.out.print("Tipp "+i+". :\t");
tipsammlung[i-1].printTip();
}
}
}
Die Tip-Klasse(Tipp und Tip Bennenungen ist wohl ein wenig ungünstig für die Übersicht )
Java:
import java.util.Random;
import java.util.Arrays;
public class Tip
{
static int zahlen[]=new int[6];
private static boolean erfolg = true;
public void schnellTip()
{
int[] vergleich = new int[7];
Random rand=new Random();
for(int i=0; i<=5; i++)
{
zahlen[i]=rand.nextInt(45)+1;
vergleich[i]=zahlen[i];
}
Arrays.sort(zahlen);
for(int i=0; i<=4; i++)
{
if(zahlen[i]==zahlen[i+1])
{
erfolg=false;
}
else
{
erfolg=true;
}
}
}
public void Tipp(int[] tipps)
{
for(int i=0; i<=5; i++)
{
zahlen[i]=tipps[i];
}
Arrays.sort(zahlen);
}
public void printTip()
{
for(int i=0; i<=5; i++)
{
System.out.print("["+zahlen[i]+"]"+"\t");
}
System.out.println();
}
}
Hab jetzt nochmal an mehreren Stellen die Zahlen-Arrays ausgeben lassen. Der Fehler liegt anscheinend wirklich daran, dass ich irgendwie mit jedem neuen Eintrag in den Tippsammlungs-Array alle vorherigen Einträge durch den letzten ersetze.
Komm trotzdem noch nicht drauf, warum... steh wohl irgendwie auf der Leitung.
hätte zu dem Thema noch eine Frage: Wie werden die Tipps bei dir von der Main Funktion in den Schein übergeben ?
Mit einer for-Schleife ?
Habe nämlich fast das gleiche Problem -_-