begin process at 2012 05 27 13:57:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > BOUGER LE CURSEUR EN MODE TEXTE, PLUS DE PROBLEME GRACE A DJL, MERCI !!!

BOUGER LE CURSEUR EN MODE TEXTE, PLUS DE PROBLEME GRACE A DJL, MERCI !!!


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Débutant Date de création :12/10/2003 Date de mise à jour :15/10/2003 19:37:14 Vu :2 742

Auteur : jb60

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Simple déplacement de texte dans la fenetre de commande MS-DOS par exemple.

Source

  • #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";}
  • }
#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";}
}

 Conclusion

Compilé sous borland C++ 5.02


 Sources du même auteur

Source avec Zip PGCD, PPCM, ET FACTORISATION DE PLUSIEURS NOMBRES
Source avec Zip Source avec une capture CRÉATION IMAGE BITMAP ALÉATOIRE OU COMME VOUS VOULEZ :)
Source avec Zip INVENTION D'UN NOUVEAU TYPE DE CRYPTAGE... (SI IL EST NUL, M...
CONVERTIR UN NOMBRE DECIMAL EN N'IMPORTE QUELLE BASE (JUSQU'...
DEBUT DU JEU DU SERPENT

 Sources de la même categorie

Source avec Zip Source avec une capture PLANNING D'EQUIPE par grephit
Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi

Commentaires et avis

Commentaire de D1m3x le 12/10/2003 14:24:48

il existe déjà une structure qui permet de prendre les coordonnées:

COORD coord{ 0,0 };

gotoxy(); n'est pas accepté par VC++ alors pour les utilisateurs VC++ :

#define STDOUT GetStdHandle(STD_OUTPUT_HANDLE)

void SetXY( int x, int y )
{
COORD CoordCurseur = { x, y };
SetConsoleCursorPosition ( STDOUT, CoordCurseur );
}

bon voilà ce bout de code ne fait que détruire tout ton code puisqu'il ne sert à plus rien maintenant que c'est possible avec ma fonction, mais par contre tu pourrais essayer de mettre la tienne sous VC++ (sans utiliser gotoxy();, et sans utiliser ma fonction..)

continuer sur le bon chemin ;)

__BuG_UnD3rL04D__

Commentaire de D1m3x le 12/10/2003 14:27:57

je ne vois où tu utilise windows.h et puis puisque clrscr n'est pas utilisable sous vc++ utilise: system( "cls" ); de stdlib.h

Commentaire de djl le 12/10/2003 17:38:52

et si tu rajoute cout&lt;&lt;flush; apres cout&lt;&lt;'X'; il t'affiche tj la lettre en trop?

Commentaire de jb60 le 12/10/2003 21:19:50

oui djl, ca fait exactement la meme chose, mais au fait, c'est quoi flush? Et qu'est ce que ça fait exactement?

Commentaire de djl le 12/10/2003 21:27:48

ca sert a vider le tampon de sortie (comme endl)
par contre c bien cout.flush() qu'il faut ecrire

==&gt;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?

Commentaire de jb60 le 13/10/2003 20:43:07

Voila djl, j'ai ajouté le screen de ma source et modifié celle-ci.
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();

Commentaire de djl le 13/10/2003 21:15:43

en fait l'erreur vient du getche() (en fait ca me faisait pas l'erreur car g l'ai compile sous vc++ et g instinctivement remplacer getche() par getch() )
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

Commentaire de jb60 le 14/10/2003 21:27:41

Djl, t'es le meilleur !!!!
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.

Commentaire de djl le 14/10/2003 22:26:00

merci c cool pour le serpent, d'ailleur g vien de mettre une maj qui permet de choisir le type de terrain et meme de l'editer!
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+

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales