码迷,mamicode.com
首页 > 编程语言 > 详细

致佳音: 推箱子游戏自动求解算法设计(一)

时间:2015-03-14 23:17:41      阅读:409      评论:0      收藏:0      [点我收藏+]

标签:

本来酷爱音乐, 老衲也想谱一曲<献给爱丽丝>之类, 通俗又有境界的曲子, 奈何没有那个水平, 也不是一个程序员做的勾当,于是就有了本文.

希望莲花妹妹跟着思路走,能遗忘那些太多的忧伤……


本文分以下四个小节:

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

二、闭合图形填充算法(扫描线种子填充)

三、推箱子求解

四、执行效率的优化


日本人有个程序叫Sokuban Automatic Solver,文件名是sokoban722.exe我附带在资源里面

不过日本人的东西没有开源,我们也不知道它里面的花花肠子是什么,同时网上我看到也有人写这样的程序,不过我没有参考

只是闭门造车,原创作品献给莲花妹妹吧,刚入门学编程,或者学了编程想进一阶的施主可以观摩一下,高手请转身再笑……


现在就先弄几张图片来作序吧,我不是作家,不知道真正的作序是什么样的,不过我猜看文章的人看不到图片是看不下去的

所以……


先是设计箱子图片,找不到好看的箱子素材,就随便找一张差不多的处理一下了:

技术分享

侧面的水印比较少,我就截取侧面了,而后扭曲调整到正面图效果(PS也有简单的空间图形处理能力的)

技术分享

调整水印背景亮度,消除水印背景

技术分享

抹掉文字

技术分享

以32x32为单位创建11列的新图像(为什么是11列,我们在算法部分再说)

技术分享

缩放到单元大小,调整下亮度对比度,让它看起来更鲜艳一些

技术分享


然后是边界格子,我懒得搞什么金属质感之类的那么复杂,就随便搞个有点立体感的格子,直接斜面和浮雕完成

技术分享

还有目标,用一个小圆圈标识,以空白格子为背景,画一个正圆图形,以此路径建立选区

技术分享

羽化描边,即可得到小圈圈了,我画个小圈圈,不诅咒任何人

技术分享

技术分享

然后是箱子归位(箱子和目标重叠)的图形,我直接去色,加深,强化一点点红……

技术分享

技术分享

效果

技术分享


然后是搬运工和搬运工归位,我直接用笑脸和笑到脸红,牙齿东倒西歪的笑脸

限于篇幅,就到资源里看详情吧(不是卖关子,老衲……)


运行效果图

技术分享

致佳音: 推箱子游戏自动求解算法设计(一)

标签:

原文地址:http://blog.csdn.net/prsniper/article/details/44263633

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!