Bonsoir,
Envoyé par
Warcondom
Mon code m'affiche donc 19 fois le numéro 0, puis 19 fois le numéro 1, ainsi de suite. Le problème, c'est que je veux pas ces chiffres
Personne ne t'oblige à rentrer ces chiffres-là en particulier. La ligne qui remplit ton tableau est la ligne 21, dans ton extrait.
moi, je veux ma représentation faite par mes soins. (C'est moi qui ai manuellement dessiné le circuit.) De là, j'ai plusieurs questions.
- Est-il possible d'initialiser ces valeurs, pour reconnaître la piste, les bords de piste et des objets posés sur le chemin ?
Ça fait un sacré raccourci ! On déduit donc de tes questions que tu représentes soit un circuit électronique, soit (plus probablement au vu de la dernière phrase), un jeu en 2D vu de dessus type Tower Defense ou Pac Man.
Pour ta première interrogation, tu peux initialiser à l'avance un tableau à plusieurs dimensions en imbriquant des accolades :
int tab[2][3] = { {1,2,3}, {4,5,6} };
… de là, tu peux fixer n'importe quelle valeur.
Ensuite, tu peux entrer autant d'informations que tu le souhaites dans un tableau. Ça ne dépend que du type de données que tu choisis et de la façon dont tu l'exploites. Par exemple, pour détecter les bords, si tu considères que tes cases sont carrées et qu'il y a donc maximum quatre « murs » autour de ta position, il suffit d'utiliser un bit par bord. Par exemple, le bit 0 pour le nord, le bit 1 pour l'est, le bit 2 pour le sud et ainsi de suite. Ça fait donc 16 combinaisons, qui tiennent dans exactement quatre bits et que tu peux donc largement représenter dans les cases de ton tableau puisqu'elles sont chacune formées par un int.
- Si oui, puis-je rentrer autre chose que des caractères, comme par exemple un code ASCII (dans mon cas le 174 et 175 pour symboliser les bords de piste) via une définition en char ?
1 2 3
| // Définition char du caractère ASCII 174
char s = 174;
printf("%c", s); |
Là encore, tu viens de faire un raccourci : à aucun moment tu n'as inséré de caractère dans le tableau de ton exemple initial.
- Ou simplement entre les deux, puis-je demander à mon tableau qui initialise des valeurs comme M pour mur, de remplacer à l'affichage M par mon ASCII ?
C'est ça le truc : le C est procédural. Tu ne vas pas « demander à ton tableau » de se comporter d'une certaine manière. Un tableau n'est qu'une grille de données du même type. C'est à toi de la lire, de la remplir et de réagir comme tu le souhaites en fonction de ce que tu y trouves.
Partager