日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正在编写推箱子游戏的自动求解程序

發布時間:2023/12/2 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正在编写推箱子游戏的自动求解程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網上搜索了一下,有好多人現成的產品,不少國產的。編寫這個程序只是為了回憶一下算法。不能丟了。
自動求解有倆種方案:一個是求最小行走步驟,一個是求最小推箱子數目。
第一種算法簡單些,只要將小人推動的四個方向進行廣度優先搜索,通過各種砍掉各種不對的情況來減少搜索數量,但搜索的數量仍然非常巨大。
以下情況可砍掉:
1、前方是墻;
2、前方是箱子,但箱子的前方是墻或者箱子;
3、行動方向和上一步驟的方向是反方向,且上一步沒有推箱子;
4、如果小人移動造成推動箱子,那么檢查移動后形成的棋盤:
??? 4.1 、以 被推動的棋子 為中心,有沒有出現以下死棋。
■■□?? □■■??? □□□?? □□□
□?? □■??? ■□?? □
□□□?? □□□??? ■■□?? □■■

■ 表示這個位置可能是墻或者箱子;
表示“被推動的棋子”在推動后所在的位置;
□ 僅為方便理解圖片,無任何其他意義。?

????????????? 如果出現上面的情況,就是死棋。
???? 4.2、比較移動后的步驟和之前的步驟是否出項相同的棋局。

注:這里所指“前方”是指行走方向的前方。

第二種方案是求最小推箱數,這個算法上復雜一些,
以小人為起點,做“油漆桶”處理,什么叫“油漆桶”處理呢,看看畫筆軟件中使用“油漆桶”功能,他可以滲透所有空白的地方。通過此功能,找到所有可以“接觸”到的箱子,對所有這些箱子推動,廣度優先算法形成搜索樹。然后和第一種方案基本相似的方式砍掉多余的樹枝。

這個方案我還沒有實施,所以還沒有想的很具體,先實現第一個在說。
希望有興趣的朋友可以給意見,告訴我還有那些死棋可以判斷。

轉載于:https://www.cnblogs.com/tansm/archive/2005/06/02/166490.html

總結

以上是生活随笔為你收集整理的正在编写推箱子游戏的自动求解程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。