//0空地 1牆 3目的地 4箱子 5人 7箱子在目的地 8人在目的地
int map[10][10] = ,,,
,,,,
,,,};void drawmap()
for (int i = 0; i < 10; i++)
for (int j = 0;j < 10; j++)
switch(map[i][j])
case 0:
cout<
break;
case 1:
cout<
break;
case 3:
cout<
break;
case 4:
cout<
break;
case 5:
cout<
break;
case 7:
cout<
break;
case 8:
cout<
break;
cout
int r, c;//人的下標
for (int i = 0; i < 10; i++)
for (int j = 0;j < 10; j++)
if(map[i][j] == 5 || map[i][j] == 8)
r = i;
c = j;
char ch = getch(); //獲取鍵盤
switch (ch)
case'w':
case'w':
case 72: //上72 下80 左75 右77 r c人的位置 r-1 c人前面的位置 r-2 c人的前面的前面
if (map[r-1][c ] == 0 || map[r- 1][c] == 3)//人的前面是空地或目的地
map[r - 1][c] += 5; //在人前面的位置+5
map[r][c] -= 5; //人走了 人原來的位置-5
elseif (map[r- 1][c] == 4 || map[r - 1][c] == 7) //人的前面是箱子
if (map[r- 2][c] == 0 || map[r - 2][c] == 3) //箱子的前面
map[r - 2][c] += 4;
map[r - 1][c] += 1;//-4+5
map[r][c] -= 5;
break;
case's':
case's':
case 80:
if (map[r+ 1][c] == 0 || map[r + 1][c] == 3)//人的下面是空地或目的地
map[r + 1][c] += 5; //在人下面的位置+5
map[r][c] -= 5; //人走了 人原來的位置-5
elseif (map[r+ 1][c] == 4 || map[r + 1][c] == 7) //人的下面是箱子
if (map[r+ 2][c] == 0 || map[r + 2][c] == 3) //箱子的下面
map[r + 2][c] += 4;
map[r + 1][c] += 1;
map[r][c] -= 5; //5 8
break;
case'a':
case'a':
case 75:
if(map[r][c - 1] == 0 || map[r][c - 1] == 3)//人的前面是空地
map[r][c - 1] += 5; //在人前面的位置+5
map[r][c] -= 5; //人走了 人原來的位置-5
elseif(map[r][c - 1] == 4 || map[r][c - 1] == 7) //人的前面是箱子
if(map[r][c - 2] == 0 || map[r][c - 2] == 3) //箱子的前面
map[r][c - 2] += 4;
map[r][c - 1] += 1;
map[r][c] -= 5;
break;
case'd':
case'd':
case 77:
if(map[r][c + 1] == 0 || map[r][c + 1] == 3)//人的前面是空地
map[r][c + 1] += 5; //在人前面的位置+5
map[r][c] -= 5; //人走了 人原來的位置-5
elseif(map[r][c + 1] == 4 || map[r][c + 1] == 7) //人的前面是箱子
if(map[r][c + 2] == 0 || map[r][c + 2] == 3) //箱子的前面
map[r][c + 2] += 4;
map[r][c + 1] += 1;
map[r][c] -= 5; //8
break;
int countfbox(){
int c=0;
for (int i = 0;i < 10; i++){
for (int j = 0;j < 10; j++){
if(map[i][j]==7)
c++;
return c;
int main(){
while (countfbox()<4)
system("cls"); //清除螢幕
drawmap();
playgame();
system("cls");
drawmap();
cout<
基於c 實現的推箱子遊戲(控制台程式)
基於c 實現的小遊戲推箱子,執行環境windows,vs下編譯,這個小遊戲很簡單實現,首先先自己想一下讓自己來玩這個遊戲需要什麼,1 遊戲介面 及地圖 由地圖聯想到我們可以設定遊戲的關數 本程式中我只寫了一關,可以實現靈活新增 2 介面需要什麼 遊戲所需要的元素 及箱子 box 人 people 目...
C 控制台遊戲 推箱子 實現人不能撞牆
思路 1 再定義兩個變數,用於存放玩家的座標的備份 值 2 在地圖模組中,把玩家的座標賦給玩家的備份,對當前座標進行備份。3 因為在地圖模組中,按下enter鍵移動後,玩家的座標會根據方向隨之改變。所以先檢測玩家是否撞牆 當玩家的值等於牆的值 把現在玩家的值賦值給之前備份的座標,實現玩家座標不在根據...
認識控制台 控制台控制代碼 附著到控制台 關閉控制台
1.附著到乙個控制台 乙個程序可以使用 attachconsole 函式來附著到乙個控制台上,乙個程序只能附著乙個控制台。乙個控制台可以有許多程序附著到它上面,呼叫 getconsoleprocesslist 函式可以得到附著到乙個控制台的列表。2.關閉乙個控制台 程序可以使用 freeconsol...