推箱子遊戲C 實現原理

2021-08-31 16:30:42 字數 2294 閱讀 2044

通過wsad控制箱子上下左右移動,q退出程式。

分別表示牆,空白,方塊,目標地,人,可以根據自己喜歡重新設定

地圖為7行10例,可以根據自己喜歡調整地圖形式:

char map[7][11] = ;

其他的**裡面有相應的注釋。

#include "stdafx.h"

#include #include #includeusing namespace std;

class sokoban

;//豎著的是x,橫著的是y

char boxback[5] = ;//牆,空白,方塊,目標地,人

public:

void setpara();//箱子終點位置獲取

void inputlocation();//輸入移動方向

void getlocation();//獲取人的位置

bool getcontrol();//控制while迴圈

void move();//移動箱子

void judgelocation();//判斷箱子是否到地形邊緣不能推動

void resultshow();//重新整理顯示結果

};bool sokoban::getcontrol()

void sokoban::inputlocation()

void sokoban::setpara()

} }this->endx1 = endbox[0][0];

this->endy1 = endbox[0][1];

this->endx2 = endbox[1][0];

this->endy2 = endbox[1][1];

this->endx3 = endbox[2][0];

this->endy3 = endbox[2][1];

this->endx4 = endbox[3][0];

this->endy4 = endbox[3][1];

}void sokoban::getlocation()

//cout << "當前座標位置"

cout << "遊戲通關" << endl; }}

void sokoban::move()

else if (map[manx][many + 1] == boxback[1] || map[manx][many + 1] == boxback[3])

}else if(direction == 'a' || direction == 'a')

else if (map[manx][many - 1] == boxback[1] || map[manx][many - 1] == boxback[3])

}else if(direction == 's' || direction == 's')

else if (map[manx + 1][many] == boxback[1] || map[manx + 1][many] == boxback[3])

}else if((direction == 'w' || direction == 'w'))

else if (map[manx - 1][many] == boxback[1] || map[manx - 1][many] == boxback[3])

}else if (direction == 'q' || direction == 'q')

}}void sokoban::judgelocation()

//當箱子相鄰兩邊是牆的時候,推不動了,就提前終止退出遊戲

else if ((map[i + 1][j] == boxback[0] && map[i][j + 1] == boxback[0])

|| (map[i - 1][j] == boxback[0] && map[i][j - 1] == boxback[0])

|| (map[i + 1][j] == boxback[0] && map[i][j - 1] == boxback[0])

|| (map[i - 1][j] == boxback[0] && map[i][j + 1] == boxback[0]))

}} }

}int main()

cout << "很高興見到你!" << endl;

推箱子遊戲

大一寒假 1.寫 時我犯了乙個很大的錯誤 不然早就搞定了 把 與 混淆了 大忌啊 2.這裡實現了數位化編碼 3.上72 下80 左75 右77 4.特殊圖形可以到qq拼音符號裡獲取 include include include define x 1 人的位置 define y 5 define n...

推箱子遊戲

本專案開發環境為vs2017 c 對推箱子遊戲的觀察可以發現,該遊戲就是在乙個頁面對進行移動的操作。因此可以定義乙個二維陣列map,進行初始化。0 空地 1 牆壁 3 箱子的目的地 4 箱子 6 人 7 箱子與目的地重合 9 人在箱子目的地。如下 include include include in...

C語言實現推箱子遊戲

hello,程式設計小白的我又回來了,繼上次的c語言迷宮文章,我沉寂了兩天,這次帶來的是用c語言實現小時候的推箱子遊戲,中間挺難的,條件寫了刪,刪了寫,沒頭緒的時候都想放棄了,但我堅信寫的出迷宮的我也能寫出這個推箱子,哈哈,終於功夫不負有心人,在又乙個早上後,終於搞定了!下面我們來聊聊這個玩法簡單的...