Problème pour la programmation d'un tetris en c

Fermé
NUTS- Messages postés 1 Date d'inscription jeudi 20 décembre 2018 Statut Membre Dernière intervention 20 décembre 2018 - Modifié le 20 déc. 2018 à 21:58
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 - 20 déc. 2018 à 23:49
Bonjour,

Bonjour, voilà quelques heures que je suis bloqué là dessus :
Je suis entrain de coder un tetris, pour ensuite faire une IA qui joue a ce tetris.
Voilà Je veux dessiner ma pièce a l'intérieur de mon tableau mais je ne sais pas comment faire.
J'ai pensé a copier ligne par ligne le tableau qui représente la piece dans le tableau qui représente la map alors j'ai fait ca :

void draw_piece(struct board *map, int w, int h, int col) {
 int l1 = col+(h-4)*w;
 for(int i = l1; i < l1+5; ++i) {
  for(int m = 12; m < 16; ++m) {
   map->tab[i] = PIECE_I[m];
  }
 }
 
}


en gros là, ca prend la pièce I et ca copie la derniere ligne de la pièce I dans la map. Problème ca ne le fait pas, enfait ca copie que le derniere élément, a savoir 0, dans la map donc ca ne change rien...

à savoir :

ma map est un tableau à une dimension affiché comme une matrice. Donc des coordonnées (x,y) seront calculées par x+y*w.

pareil pour ma pièce c'est du 4*4, mais à une dimension alors la derniere ligne de ma piece sera de 12 a 16

Quelqu'un pourrait-il m'aider ?



Configuration: Windows / Chrome 71.0.3578.98
A voir également:

1 réponse

yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
Modifié le 20 déc. 2018 à 23:52
bonjour, suggestion: remplacer
for(int m = 12; m < 16; ++m) {
   map->tab[i] = PIECE_I[m];
  }
par
map->tab[i] = PIECE_I[12+i-l1];
0