Partage
  • Partager sur Facebook
  • Partager sur Twitter

Déplacer le curseur

aide sur exercice

    5 mai 2023 à 17:27:30

    Bonjour a tous, je suis sur un exercice qui me demande de déplacer ,deux lettres dans une zone , plus ou moins aléatoire de les faires rebondir lorsqu'elles atteignent les bords et d'afficher un message lorsqu'elles se rencontrent.

    dans le code je fais déplacer A de gauche a droite et B du haut vers le bas mais chacun leur tour , comment faire pour qu'elles se déplacent  simultanément et éventuellement se croisées???o_Omerci ;)

    le plus ou moins aléatoire signifie t-il qu'elles se déplacent dans tous les sens de la zone??

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<conio.h>
    #include<Windows.h>
    
    void gotoxy(int x, int y) {
    	COORD c;
    	c.X = x;
    	c.Y = y;
    	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
    }
    int main() {
    	const int TX = 50;
    	const int TY = 20;
    	int Ax, Ay, Bx, By;
    	int fin = 0, top = 0, res;
    	srand((unsigned)time(NULL));
    	
    
    
    	while (!fin) {
    		Ax = rand() % TX;
    		Ay = rand() % TY;
    		Bx = rand() % TX;
    		By = rand() % TY;
    			while (Ax <= TX ) {
    				if (clock() > top + 50) {
    					top = clock();
    					gotoxy(Ax, Ay);
    					putchar(' ');
    					Ax++;
    					if (Ax > 0) {
    						gotoxy(Ax, Ay);
    						putchar('A');
    					}
    					
    				}
    			}
    
    			while (Ax > 0 ) {
    				if (clock() > top + 50) {
    					top = clock();
    					gotoxy(Ax, Ay);
    					putchar(' ');
    					Ax--;
    					if (Ax < TX ) {
    						gotoxy(Ax, Ay);
    						putchar('A');
    					}
    					
    				}
    			}
    		
    			while (By <= TY ) {
    				if (clock() > top + 50) {
    					top = clock();
    					gotoxy(Bx, By);
    					putchar(' ');
    					By++;
    					if (By > 0 ) {
    						gotoxy(Bx, By);
    						putchar('B');
    					}
    					
    				}
    			}
    			while (By > 0 ) {
    				if (clock() > top + 50) {
    					top = clock();
    					gotoxy(Bx, By);
    					putchar(' ');
    					By--;
    					if (By < TY ) {
    						gotoxy(Bx, By);
    						putchar('B');
    					}
    
    				}
    			}
    		
    			if (_kbhit()) {
    				res = _getch();
    				if (res)
    					fin = 1;
    			}
    	}
    	return 0;
    }
     j'avais insérer un bloc qui teste l'égalité entre position de A et B mais non fonctionnelle avant l'entrée utilisateur
    • Partager sur Facebook
    • Partager sur Twitter
      5 mai 2023 à 17:48:51

      Tu pourrais faire en sorte que les 2 lettres se déplace dans la même boucle d'un pas à tour de rôle. (pas positif ou négatif selon le sens du déplacement).

      StephaneBadet2 a écrit:

      le plus ou moins aléatoire signifie t-il qu'elles se déplacent dans tous les sens de la zone??

      Ça tu dois le savoir mieux que nous ?! (on ne connait pas l’énoncé de ton exercice).

      • Partager sur Facebook
      • Partager sur Twitter
      ...

      Déplacer le curseur

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown