dr1nk Geschrieben 21. April 2010 Geschrieben 21. April 2010 Hi FI's z.Z. versuche ich ein Fußballmanager zu programmieren und habe schon beim Spielplan ein Problem. Ich schaffe es nicht eine komplette 18x18 Tabelle zu programmieren, in der sich in keiner Spalte oder Zeile ein Wert wiederholt. Meistens hört er nach 5 Zufallszahlen in einer Zeile auf und macht nichts mehr. Ich hoffe ihr könnt mir da helfen import java.lang.*; import java.util.*; public class Spielplan { public static void main(String[] args) { new Spielplan(); } public Spielplan() { Random zg = new Random(); int[][] spielplan = new int[18][18]; boolean moeglich; for (int spz = 0; spz <= 17; spz++) { System.out.println(""); for(int sps = 0; sps <= 17; sps++) { if (sps == 0) { spielplan[spz][0] = spz; } else { int gegner = zg.nextInt(17); do { moeglich = true; if (moeglich) { for (int spsv = 1; spsv < sps; spsv++) { if (spielplan[spz][spsv] == gegner) moeglich = false; } for (int spzv = 0; spzv < spz; spzv++) { if (spielplan[spzv][sps] == gegner) moeglich = false; } spielplan[spz][sps] = gegner; } }while(!moeglich); } System.out.print(spielplan[spz][sps]+" "); } } } } Zitieren
flashpixx Geschrieben 21. April 2010 Geschrieben 21. April 2010 Ich verstehe nicht wirklich das Problem: Um über das Feld zu iterieren würdest Du einfach: for column for row feld(row)(column) machen. Bitte einmal beschreiben, was genau als Ergebnis heraus kommen soll Zitieren
MartinSt Geschrieben 21. April 2010 Geschrieben 21. April 2010 willst du die Paarungen eines Spieltags zufällig erzeugen? Zitieren
dr1nk Geschrieben 21. April 2010 Autor Geschrieben 21. April 2010 ich brauche in der ersten spalte die werte 0 - 17. in dieser reihenfolge. anschließend sollen sollen pro zeile(spz) zufällige werte von 0 - 17 stehen. das gleiche auch bei der spalte(sps). im prinzip soll jede spalte und jede zeile die gleiche quersumme ergeben. das brauch ich um einen zufälligen spielplan für die spielbegegnungen zu machen. Zitieren
flashpixx Geschrieben 21. April 2010 Geschrieben 21. April 2010 Ich gebe mal den Tipp auf "Permutation". Du willst die Zahlen [0..17] erzeugen, d.h. Du erzeugst immer ein Array mit 18 Elementen, in dem keine Duplikate vorkommen und weist dieses dann passend zu. Du musst nur unterscheiden, ob eben z.B. in zwei benachbarten Spalten die gleichen Werte stehen dürfen. Generell solltest Du die Permutation in einer eigenen Methode erzeugen und dann nur Deinem Array zuweisen Zitieren
dr1nk Geschrieben 21. April 2010 Autor Geschrieben 21. April 2010 danke erstmal. ich glaube -mit dem was ich jetzt über permutation gesehen habe- reicht mir dafür. wenn nicht meld ich mich nochmal^^ Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.