利用JavaScript在网页实现八数码启发式A*算法动画效果

前端之家收集整理的这篇文章主要介绍了利用JavaScript在网页实现八数码启发式A*算法动画效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近人工智能课老师布置了一个八数码实验,网上看到很多八数码的启发式A*算法,但是大多数都是利用C或者C++在控制台实现的,于是我用js在网页中做了一个类似的。

首先八数码就是一个九宫格,其中有一个空格,其他八个对应数字1-8,

移动空格,使得最后状态为有序,如下图

启发式算法是指在求解时,利用启发函数将不符合规则的解节点去掉,从而缩小问题的解空间。

A*算法是利用评价函数的启发式算法,在本例中,利用当前节点状态与最终节点状态所不同的格子数来评估节点的优劣,将优越节点储存并在之后展开,将劣质节点抛弃。

利用web实现这一点首先在html中添加九个如图所示input文本框,背景图片为数码格

页面代码

<Meta charset="UTF-8"> 八数码