Couleur sur 1 caractère d'une matrice (c)

Br8314 Messages postés 47 Statut Membre -  
ydurce Messages postés 81 Statut Membre -
Bonjour,

Je réfléchi et test depuis un petit moment sur comment appliquer une couleur sur un seul caractère d'une matrice ~~

J'ai un jeux, un cadre rempli de petit point, chaque point est dans une partie de la matrice...

ex: table[28][1] = '.';

J'aimerais donc que seul quelques point soit d'une couleur du genre rouge...

J'ai donc essayer de faire :

textcolor(5);// passage au rouge
table[28][1]= '.';
textcolor(15); //retour en blanc

Ça ne marche pas :/ Mon prof m'a parler de créer une matrice a deux dimensions... Sauf que je ne gère pas assez pour faire ca~~

Y aurait-il une façon de faire? J'utilise conio.h qui marche très bien sur tout le reste du programme (sur le texte a l'extérieur de la matrice).

Merci (J'espère avoir été compréhensible)

1 réponse

  1. ydurce Messages postés 81 Statut Membre 18
     
    bonjour,

    quelques idées en vrac:
    si le caractére est toujours le point '.', il est inutile de le conserver dans votre matrice, vous pouvez le remplacer par la couleur.
    sinon, le mieux à faire est d'associer la couleur à chaque élément de votre matrice. Pour faire cela, il faut créer un type de donnée qui associe le caractére à afficher et sa couleur (pensez à une 'structure' ....)
    et ensuite construire votre matrice à partir de ce type de données.
    Ainsi , pour chaque élément de votre matrice, vous aurez le caractére à afficher et sa couleur.

    bon courage.
    0
    1. Br8314 Messages postés 47 Statut Membre
       
      "le mieux à faire est d'associer la couleur à chaque élément de votre matrice. Pour faire cela, il faut créer un type de donnée qui associe le caractére à afficher et sa couleur (pensez à une 'structure' ....) "

      Je crois que c'est ce que je voulais faire, mais je n'ai pas réussi et ne vois pas vraiment comment m'y prendre, j'ai seulement 1 mois de C derrière moi :/
      Donc comment dois-je m'y prendre? Un exemple?

      Merci en tout cas.
      0
    2. ydurce Messages postés 81 Statut Membre 18
       
      pour définir un type on utilise la déclaration typedef, soit pour une structure:
      typedef struct 
      {
      char le_caractere;
      int la_couleur;
      } type_car_color;
      /* cette déclaration est hors code en C, idéalement dans un .h que l'on incluera dans le .c par #include */
      
      /* ensuite dans le code, pour créer la matrice */
      type_car_color Table[MM][NN];  //ou **Table si elle est créee en dynamique
      
      /* pour accéder à un élément, par ex le 2éme de la 5éme colonne*/
      Table[2][5].le_caractere='.';
      Table[2][5].la_couleur=5;
      
      0
    3. Br8314 Messages postés 47 Statut Membre
       
      Merci bcp, je vais essayer ça dans la soirée. :-)
      0
    4. Br8314 Messages postés 47 Statut Membre
       
      Voilà j'ai créé un fichier : couleur.h
      Je l'ai inclue dans mon fichier : toto.c (#include "couleur.h")

      Dans le fichier couleur.h j'ai donc mis :

      typedef struct {
          char le_caractere;
          int la_couleur;
      } type_car_color;


      Puis dans mon fichier toto.c :

      table[16][50].le_caractere = 0x1F;
      table[16][50].la_couleur = 5;

      Je compile et voilà les erreurs :

      error: request for member 'le_caractere' in something not a structure or union|
      error: request for member 'la_couleur' in something not a structure or union|

      Je maitrise pas vraiment les struct...
      0
    5. Br8314 Messages postés 47 Statut Membre
       
      Est ce :
      int main ( int argc, char *argv[]){
          char  table [20][60];
      


      Je modifie "char table [20][60];" par " type_car_color table [20][60];" ??

      C'est possible? ^^'
      0