Bonjour,
Je voudrais savoir comment on traduit ces 2 boucles for qui sont en C en C++ moderne.
Code C à traduire en C++ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #define TET_AREA_LG 16 #define TET_AREA_HT 25 #define TET_DRAW_LG 10 #define TET_DRAW_HT 18 #define TET_GFX_OFFSX 26 // Offset aire de jeu. #define TET_GFX_OFFSY 12 u8 pArea[TET_AREA_LG * TET_AREA_HT];et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for (i = 0; i < TET_AREA_HT; i++) { gTetris.pArea[2 + (i * TET_AREA_LG)] = 1; gTetris.pArea[3 + TET_DRAW_LG + (i * TET_AREA_LG)] = 1; }
Il y a plusieurs choses qui me pose problème, c'est dans pArea le calcule de l'index car si j'utilise en C++ modern
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 u32 x, y; u32 nVal; // Parcours de l'aire de jeu. for (y = 0; y < TET_DRAW_HT; y++) { for (x = 0; x < TET_DRAW_LG; x++) { nVal = gTetris.pArea[((y + 4) * TET_AREA_LG) + (x + 3)]; if (nVal) { DrawBlockGfx((x * 12) + TET_GFX_OFFSX, (y * 12) + TET_GFX_OFFSY, nVal - 1); } } }bin je ne peux pas faire le calcule de mon index me semble t-il de plus il y a le parcours de pArea avec la boucle imbriqué donc là c'est pareille je vois pas trop comment faire il me semble que je ne peux pas faire 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part for(auto & i: gTetris.pArea)j'avais éventuellement pensé passé par un
Code : Sélectionner tout - Visualiser dans une fenêtre à part for(auto & y : gTetris.pArea){ for(auto & x : gTetris.pArea) {}}puis faire les 2 boucles for C++ moderne au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::array<std::array<u8, TET_DRAW_LG>, TET_DRAW_HT> pArea;Donc si vous avez une idée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::array<u8, TET_AREA_LG * TET_AREA_HT> pArea
Partager