天天看點

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

本來酷愛音樂, 老衲也想譜一曲<獻給愛麗絲>之類, 通俗又有境地的曲子, 奈何沒有那個水準, 也不是一個程式猿做的勾當,于是就有了本文.

希望蓮花妹妹跟着思路走,能遺忘那些太多的憂傷……

本文分下面四個小節:

一、平面尋路算法(Alpha Star)

二、閉合圖形填充算法(掃描線種子填充)

三、推箱子求解

四、運作效率的優化

日本人有個程式叫Sokuban Automatic Solver,檔案名稱是sokoban722.exe我附帶在資源裡面

隻是日本人的東西沒有開源。我們也不知道它裡面的花花腸子是什麼,同一時候網上我看到也有人寫這種程式。隻是我沒有參考

僅僅是閉門造車,原創作品獻給蓮花妹妹吧,剛入門學程式設計,或者學了程式設計想進一階的施主能夠觀摩一下。高手請轉身再笑……

如今就先弄幾張圖檔來作序吧,我不是作家。不知道真正的作序是什麼樣的,隻是我猜看文章的人看不到圖檔是看不下去的

是以……

先是設計箱子圖檔,找不到好看的箱子素材,就随便找一張差點兒相同的處理一下了:

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

側面的水印比較少,我就截取側面了。而後扭曲調整到正面圖效果(PS也有簡單的空間圖形處理能力的)

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

調整水印背景亮度。消除水印背景

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

抹掉文字

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

以32x32為機關建立11列的新圖像(為什麼是11列,我們在算法部分再說)

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

縮放到單元大小,調整下亮度對照度,讓它看起來更鮮豔一些

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

然後是邊界格子,我懶得搞什麼金屬質感之類的那麼複雜,就随便搞個有點立體感的格子,直接斜面和浮雕完畢

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

還有目标。用一個小圓圈辨別,以空白格子為背景,畫一個正圓圖形。以此路徑建立選區

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

羽化描邊,就可以得到小圈圈了。我畫個小圈圈,不詛咒不論什麼人

緻佳音: 推箱子遊戲自己主動求解算法設計(一)
緻佳音: 推箱子遊戲自己主動求解算法設計(一)

然後是箱子歸位(箱子和目标重疊)的圖形,我直接去色,加深。強化一點點紅……

緻佳音: 推箱子遊戲自己主動求解算法設計(一)
緻佳音: 推箱子遊戲自己主動求解算法設計(一)

效果

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

然後是搬運工和搬運工歸位。我直接用笑臉和笑到臉紅,牙齒東倒西歪的笑臉

限于篇幅,就到資源裡看詳情吧(不是賣關子。老衲……)

執行效果圖

緻佳音: 推箱子遊戲自己主動求解算法設計(一)

本文轉自mfrbuaa部落格園部落格,原文連結:http://www.cnblogs.com/mfrbuaa/p/5400258.html,如需轉載請自行聯系原作者   

繼續閱讀