第3 7課 推箱子遊戲

2021-10-09 16:31:58 字數 611 閱讀 3835

推箱子遊戲也是乙個很經典的益智類小遊戲,很多推箱子遊戲軟體都提供過程演示的功能,當玩家走投無路的時候,可以看看遊戲給出的解答過程,這個過程其實就是遊戲自己推算出來的最佳推箱子路線。這一課我們就來試試用窮舉法求解推箱子遊戲。

圖(1)展示了乙個典型的推箱子遊戲的截圖,左邊是遊戲的初始狀態,右邊是遊戲成功結束的狀態。遊戲在乙個二維平面「地圖」上操作,遊戲開始時有若干只箱子和與之數量相同的目的位置,玩家控制乙個小人推動箱子到指定的位置,當全部箱子都被推到指定位置時,遊戲就結束。箱子有四個面,玩家每次只能從乙個面推動箱子向相反的方向移動。為了增加難度和趣味兒性,地圖上一般都會布置一些障礙物阻擋箱子,使其不能被順利地推到目的地。

圖(1)乙個推箱子遊戲的例子

遊戲中的地圖實際上可以看作是由乙個個小格仔組成的,每個格仔可以是牆、箱子或小人。為了將重點放在演算法上,我們對這個遊戲做乙個簡化處理,用各種字元表示地圖上的各種元素,比如用空格字元表示空地,用大寫字母 'b' 表示箱子,用大寫字母 'x' 表示障礙物和牆壁,用 '#' 表示箱子的目的地,用 '@' 表示小人,用 'o' 表示遊戲區域之外的空間,這樣圖(1)例子中的地圖就可以表示為如下形式:

'o

推箱子遊戲

大一寒假 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...

推箱子遊戲(簡易)

標頭檔案 boxman.h define key up w define key down s define key left a define key right d define key quite q define map x 9 define map y 12 define ratio 61...