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

Fermé
Br8314 Messages postés 44 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 27 mars 2012 - 27 oct. 2010 à 15:02
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 - 27 oct. 2010 à 17:30
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)

A voir également:

1 réponse

ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
27 oct. 2010 à 15:20
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
Br8314 Messages postés 44 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 27 mars 2012
27 oct. 2010 à 15:47
"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
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
27 oct. 2010 à 16:14
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
Br8314 Messages postés 44 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 27 mars 2012
27 oct. 2010 à 16:43
Merci bcp, je vais essayer ça dans la soirée. :-)
0
Br8314 Messages postés 44 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 27 mars 2012
27 oct. 2010 à 17:18
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
Br8314 Messages postés 44 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 27 mars 2012
27 oct. 2010 à 17:28
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