pour le problème des changements de direction, pas la peine de te prendre trop la tête: tu recenses les directions dans une enum
1 2
|
enum DIRECTION { GAUCHE = 0, HAUT, DROIT, BAS }; |
Ton robot contient la direction où il va, par exemple:
typedef struct Robot { int x, y; Direction d; } Robot;
et ensuite tu fais des fonctions:
1 2 3 4 5 6 7
| DIRECTION a_gauche(DIRECTION d) {
return d == GAUCHE ? BAS : --d; // s'il va vers le haut, à gauche, vers la droite, en haut, vers le bas, à droite et vers la gauche, en bas.
}
DIRECTION a_droite(DIRECTION d) {
return d == BAS ? GAUCHE : ++d; // gauche -> haut, haut -> droite, droite -> bas, bas -> gauche
} |
Partager