Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Backtracking Algorithmus ...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.05.2004, 20:10 Uhr
~freak
Gast


hi ...

ich habe zur Zeit folgendes Programm ...

mittels dieses Backtracking Algorithmus findet die maus die in Zelle 4/1 startet den Käse ... und markiert ihren Weg mit ':' ...

Und nun auch schon zu meiner Frage ...

ich möchte den Weg nicht nur mit ':' markieren sondern mit den Zeichen

< für links
> für rechts
v für unten und
^ für oben ...

anstatt folgender ausgabe ...

X@
::: :
:X: :
:X:::
::XX

möchte ich also folgende haben ...

X@
>>v ^
^Xv^
^X>^
^<XX


weg wird mit diesem programm immer nur irgendeiner gesucht ...

ist das irgendwie leicht möglich ... kann mir da wer helfen ... wäre super ...

danke ...


C++:

/**************************************************************
Labyrinth: Eine Maus starten in Zelle 4/1 und soll den Kaese
finden. Beispiel fuer einen Backtracking-Algorithmus
**************************************************************/


#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>



using std::cout;
using std::cin;
using std::cerr;
using std::endl;



#define n 5 // Labyrinthgröße
bool Ende = false;
char feld[n][n]={    
   {' ',' ',' ','X','@'},
   {' ',' ',' ',' ',' '},
   {' ','X',' ',' ',' '},
   {' ','X',' ',' ',' '},
   {' ',' ','X','X',' '}
};
// ' ' = Weg, 'X' = Mauer, '@' = Käse



void mauszug(int spalte, int zeile) {



   if (Ende != true)

   {
      if ((spalte >= 0 && zeile >= 0 && spalte < n && zeile < n && feld[spalte][zeile] != 'X' && feld[spalte][zeile]!=':') && (Ende != true))
      { // Zug trifft Labyrinth und Feld ist noch frei
         if (feld[spalte][zeile] == '@') { // Käse gefunden!!!!!

            Ende = true;
         } // if
         else
         {    
            if (Ende != true)
              feld[spalte][zeile]=':'; // Feld als besetzt markieren


            mauszug(spalte+1, zeile); // rekursive Aufrufe
            mauszug(spalte, zeile+1);
            mauszug(spalte-1, zeile);
            mauszug(spalte, zeile-1);

            //if (Ende != true) //if (allesausgeben) ausgabe("");
            if (Ende != true)
              feld[spalte][zeile]=' '; // Feld freigeben!!!
         } // else
      } // if
   }
} // mauszug

int main() {


   mauszug(4, 1);


   cout << feld[0][0];
   cout << feld[0][1];
   cout << feld[0][2];
   cout << feld[0][3];
   cout << feld[0][4];
   cout << endl;

   cout << feld[1][0];
   cout << feld[1][1];
   cout << feld[1][2];
   cout << feld[1][3];
   cout << feld[1][4];
   cout << endl;

   cout << feld[2][0];
   cout << feld[2][1];
   cout << feld[2][2];
   cout << feld[2][3];
   cout << feld[2][4];
   cout << endl;

   cout << feld[3][0];
   cout << feld[3][1];
   cout << feld[3][2];
   cout << feld[3][3];
   cout << feld[3][4];
   cout << endl;

   cout << feld[4][0];
   cout << feld[4][1];
   cout << feld[4][2];
   cout << feld[4][3];
   cout << feld[4][4];
   cout << endl;



   system("PAUSE");
    
   return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.05.2004, 00:37 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


vielleichth hilft dir das da hab ich mal mehr oder weniger ein backtracking implementiert allerdings werden da keine loops mit berücksichtigt...
www.fun-soft.de/showtopic.php?threadid=3879&time=1085610918
www.fun-soft.de/showtopic.php?threadid=3903&post_start=10&time=1085610914
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: