A voir également:
- Le labyrinthe 2 film complet en français - youtube gratuit
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Telechargement film d'action complet en francais - Télécharger - TV & Vidéo
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Telecharger film complet sur mobile gratuit - Télécharger - TV & Vidéo
- What is my movie français - Télécharger - Divers TV & Vidéo
1 réponse
Déjà, faudrait voir comment tu as géré le déplacement ?
Mais algorithmiquement parlant c'est assez simple.
Si flèche droite et case à droite = 1 alors se déplacer à droite
Si flèche gauche et case à gauche = 1 alors se déplacer à gauche
etc.
Ainsi tu te déplaceras pas si la case visée est un mur.
Cdlt,
Mais algorithmiquement parlant c'est assez simple.
Si flèche droite et case à droite = 1 alors se déplacer à droite
Si flèche gauche et case à gauche = 1 alors se déplacer à gauche
etc.
Ainsi tu te déplaceras pas si la case visée est un mur.
Cdlt,
switch (c) { case (72 ) : //up { GotoXY(posx,posy=posy-1); Color(4,4); printf("%c",0xcb); } break ; case( 80 ): //down GotoXY(posx,posy=posy+1); Color(4, 4); printf("%c",0xcb); break ; case (75 ) : //left GotoXY(posx=posx-1,posy); Color(4, 4); printf("%c",0xcb); break ; case ( 77 ): //right GotoXY(posx=posx+1,posy); Color(4,4); printf("%c",0xcb); break ; } if ((posx==1)&&(posy==6)) break ; }je dois surement ajouter une condition avant le déplacement mais laquelle ?
case 77 ? Ca serait plus clair de mettre case RIGHT: en mettant un #define RIGHT 77. Qu'en penses-tu ?
La remarque s'applique également aux autres cases.
GotoXY(posx=posx+1,posy);
Faudrait vérifier que tu n'es pas tout à droite avant... Sinon tu sors du tableau.
La remarque s'applique également aux autres cases.
je dois surement ajouter une condition avant le déplacement mais laquelle ?
Tout à fait. C'est celle que je t'ai indiquée dans mon 1er post.
Si flèche droite : case RIGHT:
Si je peux me déplacer à droite : if (posx+1<COLONNE_MAX && tableau[posx+1] != MUR)
Alors je me déplace à droite : GotoXY(...)
Idem pour les autres directions.
Dans les autres cas, tu ne fais rien. Ainsi pas de déplacement.
Attention à l'indentation irrégulière.
Cdlt,
switch (c) { case (72 ) : //up if ((posy-1 >5 )&& (mat[posy-1][posx]!=1)) { GotoXY(posx,posy=posy-1); Color(4,4); printf("%c",0xcb); } break ; case( 80 ): //down if ((posy+1 < 21)&& (mat[posy+1][posx]!=1)) { GotoXY(posx,posy=posy+1); Color(4, 4); printf("%c",0xcb); } break ; case (75 ) : //left if ((posx-1 > 0 )&& (mat[posy][posx-1]!=1)) { GotoXY(posx=posx-1,posy); Color(4, 4); printf("%c",0xcb); } break ; case ( 77 ): //right if ((posx+1 < 61 )&& (mat[posy][posx+1]!=1)) { GotoXY(posx=posx+1,posy); Color(4,4); printf("%c",0xcb); } break ; } if ((posx==1)&&(posy==6)) break ;Quelle taille fait ton tableau ?
if ((posy-1 >5 )&& (mat[posy-1][posx]!=1))
Pourquoi > 5 ? Et pas >= 0 ?
if ((posx==1)&&(posy==6))
A quoi ça sert ?
mat[posy][posx]...
GotoXY(posx,posy=posy-1);
N'y aurait-il pas d'inversion entre les X et les Y ?
parceque mon labyrinthe est fais comme sa
et le if ((posx==1)&&(posy==6))
sert a : quand le carre arrive a (1.6) le joueur auras gagner
et non c'est pas l'inverse :(