Problème pour la programmation d'un tetris en c
NUTS-
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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 :
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 ?
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:
- Problème pour la programmation d'un tetris en c
- Application de programmation - Guide
- Mettre en veille un programme - Guide
- Telecharger tetris - Télécharger - Stratégie
- Forcer la fermeture d'un programme - Guide
- Tetris webmaster ✓ - Forum Réseaux sociaux
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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];