Hi, ich habe eine Praktikumsaufgabe für C++ an der ich nicht weiterkomme:
Ein Schachbrett wird dargestellt als ein zweidimensionales Feld der Dimension 8x8 von booleschen Elementen. Auf dem Schachbrett steht ein Springer auf der Feldposition (startX, startY). 0<=startX<=7 und 0<=startY<=7. Es soll ein Weg des Springers zum Ziel mit der Position (zielX, zielY) gefunden werden. Der Weg besteht aus einer Folge von gültigen Springerzügen. Gültige Springerzüge sind:
1) x->x+2, y->y+1 2) x->x+2, y->y-1 3) x->x-2, y->y+1 4) x->x-2, y->y-1 5) x->x+1, y->y+2 6) x->x+1, y->y-2 7) x->x-1, y->y+2 8) x->x-1, y->y-1
Schreiben Sie dazu eine Funktion , die Springerzüge auf einem Schachbrett , repräsentiert durch das zweidimensionale Feld, durchführt. Die Funktion soll Zugriff auf das globale zweidimensionale Feld haben. Die Funktion hat zwei Ganzzahl Eingabeparameter, die die Position des Springers auf dem Spielfeld angeben. Die Funktion soll zuerst die Gültigkeit außerhalb des Feldes liegt, soll die Funktion mit return false beendet werden. Falls die Position (zielX, zielY) erreicht wird, soll die Funktion mit return true beendet werden. Wird ein Feldelement erreicht mit dem Wert true (Schleife) soll die Funktion mit false beendet werden. Sonst wird der Wert an der aktuellen Position im Feld auf true gesetzt und die Funktion meinSpringerzug() ruft die meinSpringerzug() Funktion mit allen möglichen Zügen auf (siehe oben).
Einen Zug durchführen heißt, im rekursiven Aufruf die neue Position anzugeben, z.B.: meinSpringerzug(posX+2, posY+1).
wäre echt suuuuuper wenn mir jemand ein beispielprogramm (oder schon das hier^^) hätte und mir noch sagen könnte warum und wie was funktioniert
danke im vorraus!!!
Ein Schachbrett wird dargestellt als ein zweidimensionales Feld der Dimension 8x8 von booleschen Elementen. Auf dem Schachbrett steht ein Springer auf der Feldposition (startX, startY). 0<=startX<=7 und 0<=startY<=7. Es soll ein Weg des Springers zum Ziel mit der Position (zielX, zielY) gefunden werden. Der Weg besteht aus einer Folge von gültigen Springerzügen. Gültige Springerzüge sind:
1) x->x+2, y->y+1 2) x->x+2, y->y-1 3) x->x-2, y->y+1 4) x->x-2, y->y-1 5) x->x+1, y->y+2 6) x->x+1, y->y-2 7) x->x-1, y->y+2 8) x->x-1, y->y-1
Schreiben Sie dazu eine Funktion , die Springerzüge auf einem Schachbrett , repräsentiert durch das zweidimensionale Feld, durchführt. Die Funktion soll Zugriff auf das globale zweidimensionale Feld haben. Die Funktion hat zwei Ganzzahl Eingabeparameter, die die Position des Springers auf dem Spielfeld angeben. Die Funktion soll zuerst die Gültigkeit außerhalb des Feldes liegt, soll die Funktion mit return false beendet werden. Falls die Position (zielX, zielY) erreicht wird, soll die Funktion mit return true beendet werden. Wird ein Feldelement erreicht mit dem Wert true (Schleife) soll die Funktion mit false beendet werden. Sonst wird der Wert an der aktuellen Position im Feld auf true gesetzt und die Funktion meinSpringerzug() ruft die meinSpringerzug() Funktion mit allen möglichen Zügen auf (siehe oben).
Einen Zug durchführen heißt, im rekursiven Aufruf die neue Position anzugeben, z.B.: meinSpringerzug(posX+2, posY+1).
wäre echt suuuuuper wenn mir jemand ein beispielprogramm (oder schon das hier^^) hätte und mir noch sagen könnte warum und wie was funktioniert
danke im vorraus!!!