Sehr geehrte Community,
ich habe seit mittlerweile 2 Tagen ein Problem und komme nicht auf die Lösung.
Ich habe ein 2 Dimensionales Array in dem Punkte gespeichert sind(Array[X][2]).
Jeder Punkt ist einmal in Array[X][0] gespeichert und einmal in Array[X][1].
Nun muss es bei meinem Programm so sein das sich nicht die selben 2 Punkte gegenüberstehen also
Array[X][1] != Array[X][0] Das funktioniert auch soweit wunderbar.
Meine 2 Anforderung ist das es die Punkte auch nicht in umgekehrter Form nochmal vorkommt also wenn in Feld
Array[3][1] = 1 steht und in Array[3][0] =2
dann darf diese Kombination aus 1 und 2 nicht nochmal als 2 und 1 vorkommen.
Ich hoffe ich konnte es einigermaßen gut erklären hier mal mein Code bis dahin
-Kurz zur Erklärung Länge ist die Länge einer Zeile meines Arrays.
-zuffalswahl ist ein Zuffäliger Punkt der in [X][1] eingetragen werden soll
-i ist das Feld in [1] wo der Punkt eingetragen werden soll
-lines ist mein 2 Dimensionales Array
und hier der Teil wo das ganze aufgerufen wird
-hier wähle ich zuerst einen Zufälligen Punkt aus städte und will diesen dann in mein Array[1] eintragen
-im ersten if frage ich ob der zufällige Punkt aus städte schon in Array[0] existiert und wenn ja soll er die Schleifendurchläufe um 1 erhöhen also i--
-im 2 if wird meine Problemfunktion aufgerufen diese soll eigentlich Prüfen ob die selbe kombination aus Array[0] und Array[1] schon einmal existiert also Array[j][1] und Array[j][0] == Array[0] und Array[1]
leider kommt sobald ich diese Funktion aufrufe immer true zurück und ich gerate in eine Endlosschleife :noe:
ich hoffe ihr könnt mir helfen
Gruß Epytir
ich habe seit mittlerweile 2 Tagen ein Problem und komme nicht auf die Lösung.
Ich habe ein 2 Dimensionales Array in dem Punkte gespeichert sind(Array[X][2]).
Jeder Punkt ist einmal in Array[X][0] gespeichert und einmal in Array[X][1].
Nun muss es bei meinem Programm so sein das sich nicht die selben 2 Punkte gegenüberstehen also
Array[X][1] != Array[X][0] Das funktioniert auch soweit wunderbar.
Meine 2 Anforderung ist das es die Punkte auch nicht in umgekehrter Form nochmal vorkommt also wenn in Feld
Array[3][1] = 1 steht und in Array[3][0] =2
dann darf diese Kombination aus 1 und 2 nicht nochmal als 2 und 1 vorkommen.
Ich hoffe ich konnte es einigermaßen gut erklären hier mal mein Code bis dahin
-Kurz zur Erklärung Länge ist die Länge einer Zeile meines Arrays.
-zuffalswahl ist ein Zuffäliger Punkt der in [X][1] eingetragen werden soll
-i ist das Feld in [1] wo der Punkt eingetragen werden soll
-lines ist mein 2 Dimensionales Array
Java:
private static boolean lineVorhanden(Point zuffalswahl, Point[][] lines, int i,int länge)
{
for(int j = 0;j<länge;j++)
{
if(lines[j][0]==zuffalswahl)
{
for(int k=0;k<i;k++)
{
if(lines[k][1]==lines[i][0])
{
return false;
}
}
}
}
return true;
}
und hier der Teil wo das ganze aufgerufen wird
-hier wähle ich zuerst einen Zufälligen Punkt aus städte und will diesen dann in mein Array[1] eintragen
-im ersten if frage ich ob der zufällige Punkt aus städte schon in Array[0] existiert und wenn ja soll er die Schleifendurchläufe um 1 erhöhen also i--
-im 2 if wird meine Problemfunktion aufgerufen diese soll eigentlich Prüfen ob die selbe kombination aus Array[0] und Array[1] schon einmal existiert also Array[j][1] und Array[j][0] == Array[0] und Array[1]
Java:
for(int i = 0; i<städte.length; i++)
{
random = Randomize.myRandom(0, städte.length);
if(lines[i][0]==städte[random])
{
i--;
}
else if(lineVorhanden(städte[random],lines,i,städte.length))
{
i--;
}
else
{
lines[i][1]=städte[random];
}
}
ich hoffe ihr könnt mir helfen
Gruß Epytir
Zuletzt bearbeitet: