4/5 (9 avis)
Snippet vu 3 855 fois - Téléchargée 33 fois
#include <iostream.h> #include <conio.h> struct coordonnees { int x; int y; }; unsigned int touche=80; coordonnees bouger(unsigned int, coordonnees); void afficher(coordonnees); int main(void) { coordonnees objet={20,24}; while (touche!=13) { objet=bouger(touche,objet); afficher(objet); touche=getch(); } return 0; } coordonnees bouger(unsigned int t, coordonnees o) { switch(t) { case 77 : if(o.x<80) o.x++; else o.x=1; break; case 75 : if(o.x>1) o.x--; else o.x=80; break; case 72 : if(o.y>1) o.y--; else o.y=25; break; case 80 : if(o.y<25) o.y++; else o.y=1; break; default : break; } return o; } void afficher(coordonnees o) { if (touche==77) {if (o.x>1) {gotoxy(o.x-1,o.y); cout<<" ";} else {gotoxy(80,o.y); cout<<" ";} gotoxy(o.x,o.y); cout<<"X";} else if (touche==75) {if (o.x<80) {gotoxy(o.x+1,o.y); cout<<" ";} else {gotoxy(1,o.y); cout<<" ";} gotoxy(o.x,o.y); cout<<"X";} else if (touche==72) {if (o.y<25) {gotoxy(o.x,o.y+1); cout<<" ";} else {gotoxy(o.x,1); cout<<" ";} gotoxy(o.x,o.y); cout<<"X";} else if (touche==80) {if (o.y>1) {gotoxy(o.x,o.y-1); cout<<" ";} else {gotoxy(o.x,25); cout<<" ";} gotoxy(o.x,o.y); cout<<"X";} }
14 oct. 2003 à 22:26
pour ton bug avec la fonction info() g pense que si tu rajoute
gotoxy(0,H+2); au debut de la fonction, ca devrait aller
a+
14 oct. 2003 à 21:27
Ca marche niquel maintenant, je vais changer mon code source en ligne :)
Au fait, j'ai regardé ton code source pour ton jeu de serpent, il est pas mal dis donc... Je vais essayer d'en faire un aussi, la, c'est un petit début pour moi, mais je vais doucement, à mon rythme...
J'ai adoré le truc que tu peux paramètrer tout le jeu, depuis les commandes de jeu, en passant par le niveau et le terrain... Super, encore bravo.
Cependant, sous borland y'a un petit probleme avec ta fonction info je crois, car lorsque je la met en commentaire, ça marche niquel. Sans cette précaution, le temps du jeu est écrit sur le terrain, et c'est un peu genant. Mais rien de grave. Bonne continuation à toi.
13 oct. 2003 à 21:15
la difference entre getche() et getch() c'est que getche() renvoie l'echo du caracter taper a l'ecran! d'ou les caracters en trop!!!
donc ta juste a remplacer getche() par getch() et ca marchera nikel
13 oct. 2003 à 20:43
Mon probleme concerne les "H" qui s'ajoutent lorsque je monte, les "K" lorsque je tourne à gauche et les "P" lorsque je descend (je crois que c'est dans cet ordre), je n'ai rien vu d'anormal lorsque je choisi d'aller vers la droite!!!
Merci pour m'avoir éclairé sur le cout.flush();
12 oct. 2003 à 21:27
par contre c bien cout.flush() qu'il faut ecrire
>moi ca me fait pas d'erreur, tu pourrait joindre a ta source un screen de ton erreur pour voir precisement de quoi il s'agit?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.