void initData(){
int i, j;
//加載數據時讓用戶等待,一般情況加載數據比較快
printf("游戲加載中,請稍后.........");
//遍歷地圖中的數據
for(i = 0; i < HEIGHT; i++){
for(j = 0; j < WIDTH; j++){
//遍歷到2(人)時,記錄人的坐標。x, y是前面定義的全局變量
if(map[i][j] == 2){
x = j;
y = i;
}
//遍歷到3時,箱子的數目增加。boxs是前面定義的全局變量
if(map[i][j] == 3){
boxs++;
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
這個方法很簡單,就是遍歷地圖,然后初始化人的位置和箱子的個數。這里有一點要注意一下,就是到底內層循環是WIDTH還是外層循環是WIDTH。
如圖,在遍歷過程中。外層循環控制行數,即HEIGHT。那么內層循環應該是WIDTH。
3、drawMap()
void drawMap(){
int i, j;
for(i = 0; i < WIDTH; i++){
for(j = 0; j < HEIGHT; j++){
switch(map[i][j]){
case 0:
printf(" ");
break;
case 1:
printf("■");
break;
case 2:
printf("♀");
break;
case 3:
printf("◆");
break;
case 4:
printf("●");
break;
case 5:
printf("★");
break;
}
}
printf("\n");
}
}
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
這里也非常簡單,變量map中的元素,然后通過switch判斷應該輸出的內容。然后內層循環每走完一次就換行。