012-C語言小遊戲之推箱子

012-C語言小遊戲之推箱子

QQ20150709-1

1、建立遊戲地圖

 

由於推箱子游戲地圖是由多個格子組成的,因此咱們可使用二維字符數組或字符串數組建立地圖。咱們能夠改變數組中的元素來對遊戲功能進行實現。例如:小人移動方向無障礙物,就是小人原來位置的數組元素設置爲路,移動後的元素設置爲小人。這樣就實現了小人移動功能,箱子也是同理。數組

2、初始化位置和遊戲開關

 

由於整個遊戲操做都是放在循環裏的,因此咱們先定義一個全局開關,而後用while(開關)來控制遊戲的結束。而且在判斷用戶輸入方向前,咱們須要先肯定小人和箱子的初始位置,再根據用戶輸入進行判斷。ide

3、接收用戶輸入方向

 

接收用戶從鍵盤輸入的字符,因爲方向4個,加上退出功能就5個分支。因此咱們使用switch case結構來實現判斷用戶輸入字符,並執行一些操做。函數

4、判斷用戶輸入方向

 

人下一個位置的行下標 nextRowsspa

人下一個位置的列下標 nextColscode

箱子下一個位置的行下標 nextXiangRowsblog

箱子下一個位置的列下標 nextXiangCols遊戲

這裏說的下一個位置就比如,我輸入w後向上移動了一個位置,這個新的位置我稱他爲下一個位置。ci

若是向上移動,人和箱子的行下標-1,列下標不變。rem

若是向下移動,人和箱子的行下標+1,列下標不變。字符串

若是向左移動,人和箱子的行下標不變,列下標-1。

若是向右移動,人和箱子的行下標不變,列下標+1。

我這裏是先根據方向判斷出人和箱子位置會發生的移動變化,並使用局部變量臨時存儲,因此不用擔憂人沒有頂着箱子的時候,箱子也會跟着移動的問題。由於最終移動後的新位置座標仍是由全局變量來存儲的,我只是根據用戶輸入方向計算出人和箱子下一個位置的新座標,而後再根據實際狀況(實際狀況就是人前進方向是不是障礙物,仍是箱子來肯定的。若是是障礙物,就只有人移動,並只有人刷新位置。若是是箱子,則判斷箱子下一個位置是不是障礙物,來刷新人和箱子的新位置)賦值給全局變量。

5、移動控制實現

 

 

最終程序代碼爲

 

相關文章
相關標籤/搜索