tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
401
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    EddieG EddieG ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    216
    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);
                    }
            
                }
            }
        }
    }
     

  2. #2
    Avatar von DosCoder
    DosCoder DosCoder ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Ort
    Kreis Würzburg(Bayern)
    Beiträge
    228
    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:
    Code :
    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.
    Wenn Rundwege hinzukommen, wird es schwerer. Ich hoffe du verstehst die Ausführungen, ich stehe ein bisschen unter Zeitdruck .

    Ciao
    DosCoder

    PS: Der Code ist aus Robot Karol entlehnt. Ein Programm, mit dem man sich solche Vorgänge besser klar machen kann: Link
    Geä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!

  3. #3
    Erik Erik ist offline Mitglied Gold
    Registriert seit
    Jul 2008
    Beiträge
    171
    Vieleicht hilfreich für dich: Backtracking/MathePrisma

    Gruß Erik
     

Ähnliche Themen

  1. Backtracking
    Von jenny-birdy im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 1
    Letzter Beitrag: 16.11.09, 11:51
  2. Backtracking Problem C-Sharp
    Von Audrey im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 03.06.08, 08:40
  3. Backtracking und TicTacTo?
    Von thatIsAFeature im Forum Coders Talk
    Antworten: 1
    Letzter Beitrag: 14.02.08, 15:04
  4. Backtracking Problem
    Von sra im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 12.03.04, 09:14
  5. Backtracking für Newbies?
    Von sra im Forum .NET Archiv
    Antworten: 15
    Letzter Beitrag: 10.03.04, 08:33