一个在浏览器运行的华容道、“移十五“之类的滑块游戏自动求解与演示的GWT源码

本文介绍了使用Google Web Toolkit (GWT) 制作的滑块游戏自动求解器,包括华容道和'移十五'等。用户通过鼠标绘制棋盘布局,程序能计算出最少步数的解决方案,并进行演示。尽管存在一些视觉上的局限,如方块无法融合显示,但该程序可以应用于多种类似游戏的解法计算。
摘要由CSDN通过智能技术生成

先科普一下GWT的概念。

GWT: Google Web Toolkit的缩写,有了 GWT可以使用 Java 编程语言编写 AJAX 前端,然后 GWT 会交叉编译到优化的JavaScript 中,而 JavaScript 可以自动在所有主要浏览器上运行。

(可以简单理解为用Java来写程序,编译成Javascript,运行到浏览器。)

华容道、"移十五"之类的滑块游戏,共同点是每个滑块可以上下左右移动,每个方块可以是任意多个小方形构成。

(另一类滑块游戏,是滑块只能是n*1横长条或者1*n竖长条,横条滑块只能水平移动,竖条滑块只能上下移动,本程序不支持。)

先看看在Chrome里的运行截图:

  1. 先用鼠标绘制初始的棋盘布局,单个独立小方块只需要单击一个格子,合成的方块用鼠标拖动划过多个格子。
    这是绘制出来的华容道横刀立马一关的初始棋盘。
    美中不足的是,多个小方块合成的方块只是以相同颜色表示,没有视觉上融合成一整块。

  2. 点下一步,设置目标状态,将目标方块拖放到目标位置。
    华容道游戏而言,就是把曹操移到下方出口。

  3. 点下一步,将会开始计算求解。

  4. 好,结果出来了,点击前进、后退来演示每一步的走法。

    走啊走,就变成了


    这个程序求解的结果是最少移动步数的解,每移动一格算一步。
    所以横刀立马求出来是116步,而不是81步(每移动一个方块不管几格算一步)。

[运行页面在这里:Sliding Block Puzzle Solver]   --    [源码下载在这里:sliding-block-solver-v1.1.zip]

这个程序,也可以用来计算“八数字拼图”、“移十五” 这类游戏的解,不过可惜的是,该程序不支持在方块上面标数字,方块的颜色也不能自定义,同类方块不能融合在一起,影响了视觉效果。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值