Partage
  • Partager sur Facebook
  • Partager sur Twitter

Memory game Langage C

Sujet résolu
    13 mai 2019 à 16:35:03

    Bonjour ! J'ai un memory game à faire en classe et je suis un peu perdue. Je ne code en C que depuis cette année.

    Je viens de m'inspirer du puissance 4 fait en classe afin de créer le tableau, et maintenant je cherche à mettre  insérer les différentes combinaisons de cartes. Est ce que quelqu'un pourrait m'aider s'il vous plait ? Merci d'avance

    #include "graphics.h"
    #include <stdio.h>
    
    POINT Pclic;
    
    int ligne;
    int colonne;
    int JEU[4][4]; //déclaration du tableau de jeu
    int JOUEUR1[4][4];
    int color;
    
    
    
    	
    void grille()
    {
    	POINT p1;
    	POINT p2;
    	
    	p1.x=200; p1.y=200;
    	p2.x=200; p2.y=600;
    	draw_line(p1,p2,violet);
    	
    	while(p1.x<600)
    	{
    	p1.x=p1.x+100; p1.y=200;
    	p2.x=p2.x+100; p2.y=600;
    	draw_line(p1,p2,violet);
    	}
    
    	p1.x=200; p1.y=200;
    	p2.x=600; p2.y=200;
    	draw_line(p1,p2,violet);
    	while(p1.y<600)
    	{
    	p1.x=200; p1.y=p1.y+100;
    	p2.x=600; p2.y=p2.y+100;
    	draw_line(p1,p2,violet);
    	}
    
    }
    
    void recherchecolonne() //permet de sélectionner des colonnes
    {
    	
    	Pclic=wait_clic();
    	colonne= (Pclic.x-100)/100 ; 
    	
    	}
    
    void initialisation () //démarre le tableau à partir de 0
    	{
    int colonne,ligne;
    
    for (colonne=0; colonne<=4; colonne=colonne+1)
    	{
    		for (ligne=0; ligne<=4; ligne=ligne+1)
    			{
    			JEU[ colonne ][ ligne ] = 0;
    			JOUEUR1[4][4]=0;
    			}
    	}
    }
    
    void D_ligne() 
    { 
    	ligne=0;
    	
    	while(JEU[ colonne ][ ligne ] == 1 && ligne<=4 )//permet de placer une tuile dans une case vide tant que le nombre de ligne est inférieur ou égal à 4
    	{
    		ligne=ligne+1;
    	}
    	JEU[ colonne ][ ligne ] = 1;
    	printf("case=%d\n",JEU[ colonne ][ ligne ]);
    	}
    
         
     int main() //Afficher le contenu des fonction void
    {
    		init_graphics (1000,800);
    		
    		
    		fill_screen(orange);
    		initialisation ();
    		
    		grille();
    		
    		while(1)
    		{ recherchecolonne();
    		   D_ligne(); 
              Pclic=wait_clic();
    
    		printf("Vous avez sélectionné la colonne %d\n",colonne);
    		printf("Vous avez sélectionné la ligne%d\n",ligne);	
    		}
    	  
    		
    	wait_escape();
        exit (0);
        
         }
    



    • Partager sur Facebook
    • Partager sur Twitter
      14 mai 2019 à 13:15:31

      Tu peux te faire une énumération qui contient tes différentes cartes. Au lieu d'avoir que des 0 et des 1 dans JEU[colonne][ligne] tu aurais les valeurs des énumérations des cartes. Sauf qu'il faudra sûrement stocker si la carte est retournée ou non, tu pourrais donc te faire quelque chose comme ça :

      #include <stddef.h> // pour bool
      
      enum carte {
        CARTE1, CARTE2, CARTE3, ...
      };
      
      struct box {
        enum carte carte;
        bool retourne;
      }
      
      struct box JEU[4][4];

      Ainsi chaque case de ton tableau JEU aura : la carte associée, et un booléen indiquant si la carte est retournée ou non.



      • Partager sur Facebook
      • Partager sur Twitter
        25 mai 2019 à 17:07:59

        Bonjour, excusez moi je pensais avoir répondu. En tout cas j'ai résolu le problème, merci beaucoup !
        • Partager sur Facebook
        • Partager sur Twitter

        Memory game Langage C

        × 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