Oke poging twee, ik hoop niet dat dit topic ook direct gesloten wordt. Ik zal het probleem iets beter proberen uit te leggen.
Ik ben een klein spelletje aan het maken in C, nu leek het mij grappig om dat met ASCII tekens te doen ipv. pixels.
Ik heb tot zover een 2-dimensional array bestaande uit spaties met daar omheen een rand van '#' tekens. Mijn enige probleem is, ik kan voor de loopjes om bijvoorbeeld de array's mee te vullen geen strlen(array) gebruiken, kan iemand mij op de goede weg helpen? Alvast bedankt.
Hierbij de code, verdere uitleg volgt na de code.
Zoals jullie kunnen zien gebruik ik in zowel de main als de draw_border functie een aantal loopjes om de array te printen dan wel te vullen zie.
In de main:
in de draw_border functie:
De stukjes: "i < 20", "j < 20", "i == 19" en "j == 19" wil ik graag vervangen door iets als strlen(level) zodat ik gemakkelijk het formaat van de array kan aanpassen zonder overal in de code alle for loops hoef te veranderen.
Resultaat van de code ziet er trouwens als volgt uit:
Ik ben een klein spelletje aan het maken in C, nu leek het mij grappig om dat met ASCII tekens te doen ipv. pixels.
Ik heb tot zover een 2-dimensional array bestaande uit spaties met daar omheen een rand van '#' tekens. Mijn enige probleem is, ik kan voor de loopjes om bijvoorbeeld de array's mee te vullen geen strlen(array) gebruiken, kan iemand mij op de goede weg helpen? Alvast bedankt.
Hierbij de code, verdere uitleg volgt na de code.
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| #include <stdio.h> #include <string.h> void draw_border(char (*)[21]); int main(void) { char level[21][21]; draw_border(level); int i; for(i = 0; i < 20; i++) { printf("%s\n", level[i]); } system("pause"); return 0; } void draw_border(char (*level)[21]) { int i, j; for(i = 0; i < 20; i++) { for(j = 0; j < 20; j++) { if(i == 0 || i == 19 || j == 0 || j == 19) { level[i][j] = '#'; } else { level[i][j] = ' '; } } level[i][20] = '\0'; } } |
Zoals jullie kunnen zien gebruik ik in zowel de main als de draw_border functie een aantal loopjes om de array te printen dan wel te vullen zie.
In de main:
code:
1
2
3
4
| for(i = 0; i < 20; i++) { printf("%s\n", level[i]); } |
in de draw_border functie:
code:
1
2
3
4
5
| for(i = 0; i < 20; i++) { for(j = 0; j < 20; j++) { if(i == 0 || i == 19 || j == 0 || j == 19) |
De stukjes: "i < 20", "j < 20", "i == 19" en "j == 19" wil ik graag vervangen door iets als strlen(level) zodat ik gemakkelijk het formaat van de array kan aanpassen zonder overal in de code alle for loops hoef te veranderen.
Resultaat van de code ziet er trouwens als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #################### |
[ Voor 0% gewijzigd door BtM909 op 18-07-2011 01:23 ]