Forum: PC-Programmierung If-Bedingung mit && Operator in C


von Alisa 1387 (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

für´s Programmierpraktikum (1. Semester, FH) arbeiten wir gerade an
einem Programm, welches mittels Cursortasten den Weg durch ein
einfaches Labyrinth finden soll. Es wird also (über ein 2d-array)
geprüft, ob die Cursor-Bewegung zulässig ist. Das Labyrinth wird über
eine header-Datei included (außerdem wurde ne vorgegebene Object-Datei
eingebunden).

Dabei sind wir auf folgendes Problem gestoßen:

die Bedingung

if ((key_code == CURSOR_DOWN) && (maze[r+1][c]=='°'))

ist offensichtlich niemals true.

'°' ist das vorgegebene Zeichen, welches einen gültigen Gang durchs
Labyrinth symbolisiert.

key_code == CURSOR_DOWN ist eine vorgegebene Bedingung, welche true
ist, wenn die cursor-down-Taste gedrückt wird.

Wenn man && (maze[r+1][c]=='°') aus der Zeile rausnimmt, bewirkt das
Drücken der cursor-down-Taste das Ausführen des folgenden Codes.

Offensichtlich stimmt etwas nicht mit der zweiten Bedingung &&
(maze[r+1][c]=='°'). Dabei ist maze[][] nur das Array, in dem das
Labyrinth abgelegt ist. maze[r+1][c] soll also eine Reihe unter der
aktuellen Position im Labyrinth darstellen, das =='°' dient der
Prüfung, ob das Zeichen an der Position vorhanden ist.

Kann uns jemand aufzeigen, was an der letztgenannten Bedingung nicht so
klappt wie gewünscht?

von Bri (Gast)


Lesenswert?

Die Bedingung ist richtig. Aber ihr benutzt die Variablen r und c, um im
 Feld nachzuschaun und x_coord und y_coord für die Position. Es sollte
dann wohl eher maze[y_coord+1][x_coord] sein.

von Alisa 1387 (Gast)


Lesenswert?

Danke! Wir sind ja wohl völlig blöd - aber jetzt läufts ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.