ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
401
401
EMPFEHLEN
-
Hi
neue Aufgabe neues Problem ;(
Es geht um ein Labyrinth, wenn der Weg falsch war, soll man wieder einen schritt zurück.
Mein Ansatz ist dieser aber ich bekomme keine Einzige Ausgabe dafür aber eine Endlosschleife.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
public static void main(String[] args) { //Käse Aufgabe int b=5,h=5; int[][] feld = new int[b][h]; feld[0][1]=1; feld[0][3]=1; feld[1][1]=1; feld[1][3]=1; feld[3][1]=1; feld[3][2]=1; feld[3][3]=1; feld[4][2]=2; feld[4][3]=1; //Werte mit 1 == Blockade; Werte mit 2=Ziel; Leere Werte=keine Blockade Vector schritte = new Vector(1); for(int i =0; i<feld.length; i++) { for(int j = 0; j<feld.length; j++) { if(feld[i][j]!=1 && feld[i][j]!=2) { schritte.add(feld[i][j]); } if(feld[i][j]==1) { i-=i; j-=j; schritte.remove(feld[i][j]); i+=i+1; j+=j+1; }else if(feld[i][j]==2) { int Ziel= feld[i][j]; System.out.println("Angekommen"); System.out.println("Schritte:"); System.out.println(i+ ": " + schritte.elementAt(feld[i][j])); System.out.println(Ziel); } } } } }
-
17.01.10 20:14 #2
Hi,
ich habe zwar keine Ahnung, wieso das bei dir nicht klappt, welche Schleife wird dir denn zum Verhängnis?
Aber es gibt noch einen anderen Ansatz, der, wie ich finde, einfacher ist. Bei einer so einfachen Aufgabe/Labyrinth ohne Rundwege kann man Folgendes machen:
Wenn Rundwege hinzukommen, wird es schwerer. Ich hoffe du verstehst die Ausführungen, ich stehe ein bisschen unter ZeitdruckCode :1 2 3 4
1.Schaue nach Links, wenn Frei ist, dann laufe und gehe zu Schritt 1. 2.Wenn Mauer, schaue geradeaus. Wenn Frei, dann laufe und gehe zu Schritt 1. 3.Wenn Mauer, schaue nach rechts, Wenn Frei, dann laufe und gehe zu Schritt 1. 4.Wenn Mauer, dann gehe nach 1 Scrhritt zurück und gehe zu Schritt 1.
.
Ciao
DosCoder
PS: Der Code ist aus Robot Karol entlehnt. Ein Programm, mit dem man sich solche Vorgänge besser klar machen kann: LinkGeändert von DosCoder (17.01.10 um 20:44 Uhr)
Man kann mich für das verantwortlich machen, was ich hier schreibe, nicht für das, was andere verstehen.
Sollte ich mal Mist labern weist mich bitte darauf hin.
Ich freue mich über ein Danke, wenn ich helfen konnte!
-
Vieleicht hilfreich für dich: Backtracking/MathePrisma
Gruß Erik
Ähnliche Themen
-
Backtracking
Von jenny-birdy im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 1Letzter Beitrag: 16.11.09, 11:51 -
Backtracking Problem C-Sharp
Von Audrey im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 03.06.08, 08:40 -
Backtracking und TicTacTo?
Von thatIsAFeature im Forum Coders TalkAntworten: 1Letzter Beitrag: 14.02.08, 15:04 -
Backtracking Problem
Von sra im Forum C/C++Antworten: 5Letzter Beitrag: 12.03.04, 09:14 -
Backtracking für Newbies?
Von sra im Forum .NET ArchivAntworten: 15Letzter Beitrag: 10.03.04, 08:33





Zitieren
Login





