以下**利用三維陣列畫地圖的方法實現了簡易版推箱子小遊戲,內含2個關卡。
//0 空地,1 牆, 3 箱子, 4 箱子目的地, 6 人, 7 箱子與目的地重合, 9 人與目的地重合遊戲截圖:int dlevel;
int count = 0;
void drawmap(int map[10][12]);
int main() ,,,
,,,,
,,},,
,,,,
,,,,
}};int num_target[2] = ;
for (dlevel = 0; dlevel < 2; dlevel++) }}
}dlevel = 0;
while (1)
if (dlevel > 1)
//得到人的座標:i,j
for (i = 0; i < 10; i++)
}if (dmap[dlevel][i][j] == 6 || dmap[dlevel][i][j] == 9)
}ninput = _getch();//上下左右的ascii碼是 -> 上:72,下:80,左:75,右:77
//每個方向都有以下幾種情況:
//1. 人前面是空地
//2. 人前面是箱子,箱子前面是空地
//3. 人前面是目的地
//4. 人前面是箱子和目的地的重合,再前面是空地
//5. 人前面是箱子,箱子前面是目的地
//6. 人前面是箱子和目的地的重合,再前面是目的地
//以上每種情況各分兩類:一類是人站在空地上,一類是人站在目的地上
switch (ninput)
else
}if (dmap[dlevel][i - 1][j] == 3 && dmap[dlevel][i - 2][j] == 0)
else
}if (dmap[dlevel][i - 1][j] == 4)
else
}if (dmap[dlevel][i - 1][j] == 7 && dmap[dlevel][i - 2][j] == 0)
else
count--;
}if (dmap[dlevel][i - 1][j] == 3 && dmap[dlevel][i - 2][j] == 4)
else
count++;
}if (dmap[dlevel][i - 1][j] == 7 && dmap[dlevel][i - 2][j] == 4)
else
}break;
case 75:
if (dmap[dlevel][i][j - 1] == 0)
else
}if (dmap[dlevel][i][j - 1] == 3 && dmap[dlevel][i][j - 2] == 0)
else
}if (dmap[dlevel][i][j - 1] == 4)
else
}if (dmap[dlevel][i][j - 1] == 7 && dmap[dlevel][i][j - 2] == 0)
else
count--;
}if (dmap[dlevel][i][j - 1] == 3 && dmap[dlevel][i][j - 2] == 4)
else
count++;
}if (dmap[dlevel][i][j - 1] == 7 && dmap[dlevel][i][j - 2] == 4)
else
break;
case 80:
if (dmap[dlevel][i + 1][j] == 0)
else
}if (dmap[dlevel][i + 1][j] == 3 && dmap[dlevel][i + 2][j] == 0)
else
}if (dmap[dlevel][i + 1][j] == 4)
else
}if (dmap[dlevel][i + 1][j] == 7 && dmap[dlevel][i + 2][j] == 0)
else
count--;
}if (dmap[dlevel][i + 1][j] == 3 && dmap[dlevel][i + 2][j] == 4)
else
count++;
}if (dmap[dlevel][i + 1][j] == 7 && dmap[dlevel][i + 2][j] == 4)
else
}break;
case 77:
if (dmap[dlevel][i][j + 1] == 0)
else
}if (dmap[dlevel][i][j + 1] == 3 && dmap[dlevel][i][j + 2] == 0)
else
}if (dmap[dlevel][i][j + 1] == 4)
else
}if (dmap[dlevel][i][j + 1] == 7 && dmap[dlevel][i][j + 2] == 0)
else
count--;
}if (dmap[dlevel][i][j + 1] == 3 && dmap[dlevel][i][j + 2] == 4)
else
count++;
}if (dmap[dlevel][i][j + 1] == 7 && dmap[dlevel][i][j + 2] == 4)
else
}break;}}
}system("pause");
return 0;
}void drawmap(int map[10][12])
}printf("\n");
}}
c 推箱子小遊戲原始碼
include using namespace std 地圖資料 int map 10 10 重新整理介面 void show 人物移動 void mov string direction 座標類 struct sxy xy 獲取座標 sxy getxy 是否結束遊戲 bool isgameover...
C語言小遊戲 推箱子
更多可能 在 啊哈c 一書中學了簡易小遊戲走迷宮的寫法,之後的挑戰是寫乙個推箱子,於是嘗試去寫一下.此段 是我在摸索中更改之後的最終 存在改動痕跡.include include include includeint main int x,y char in,out x 3 y 4 out x fo...
c語言小遊戲推箱子
代表小老鼠 代表箱子 o 代表終點 代表牆 展示 include include include intmain int argc,const char ar char m x 6,m y 3 for printf n 判斷是否結束if 4 cnt switch getch 前方是箱子 elseif...