|
5 M2 F; f H+ `% W/ R
感谢我的朋友许博瑀,他一定要赞助我个域名,于是网站改为以下地址:http://www.xubenliu.com/不过暂时还在备案中,请登陆http://120.77.173.248/>>>>>>>>>>>>>>>>>分割线<<<<<<<<<<<<<<<<<<<<<<<
+ i) N# f0 h8 t 最近突然想起来之前一个很火的游戏2048,于是我就做了一个网站,然后希望自己能够写出一个比较好的算法来让这个2048的游戏实现相加最大化。 7 w; [* N7 A* Y% v7 F! w
这个是我的2048游戏的网址http://www.xubenliu.com/有兴趣的朋友可以提交自己的代码(暂时仅限js代码)来看看自己的ai能够走到多少2048小游戏规则说明(已经知道规则的朋友可以直接跳过这模块):。 1 _$ D+ n5 T% r: b$ j; W6 C" j
2048游戏是在一个16宫格中进行的,每次可以选择上下左右滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢,系统也会在空白的地方乱数出现一个数字方块(2或4),相同数字的方块在靠拢、相撞时会相加不断的叠加最终拼凑出更大的数字,而它的得分就是每次数字相加之和。 & X8 x' M* P6 ]$ h$ u
下面是一些关于ai提交代码的说明:首先玩家需要在ai界面下端上传你的js代码
0 h5 y$ a% A4 v. u4 k2 b* q/ \ 然后在游戏界面点击开始,就可以看到你的ai跑起来了
* \& T. k: B, M" x/ ^ js代码要求:js要求写一个函数AI(score,board),返回值是Left(向左)、Right(向右)、Up(向上)、Down(向下)比如我写一个一直向左走的函数function AI(score,board){
8 X7 t8 L% h4 x: W! I/ k/ _0 z: a return "Left") G" d1 \* y+ ?# h. h
}/ K! S" w7 W' P2 ]
。 $ x( e) k) M& s4 x* k$ c) z
然后它就会一直向左走其中board返回一个二维数组board[i][j],比如board[2][1]代表第三行第二列的值score代表目前你的得分玩家需要有自己的策略来完成对当前board的判断,然后得出下一步的策略。 4 M, }* `. T$ k/ m0 }1 P. V) n3 L3 @
我的实现我自己写了一个ai,是参考知乎上的一个答案写的,基本能跑到1024,但是跑到2048和4096的成功率就不高了,不知道是我的权值定义得有问题还是因为我只推测了走一步的可能性希望有能力的朋友能够实现更高层次的算法。
0 r9 G% P8 i' S2 i 十分感谢以下热心博主的帮助:http://blog.csdn.net/funj_/article/details/76555889希望大家能够集思广益,一起来玩一玩2048的游戏也希望大神们不要骚扰我的服务器,我的代码都在下方github里面,有兴趣可以提走
8 B6 R& ], Q; d) R4 H https://github.com/daba0007/game2048如果有好的ai算法也可以联系我,我们可以共同讨论研究我的手机,如果有好的ai算法也可以联系我,我们可以共同讨论研究我的手机, 18578769095。 , j9 K2 N% p; w$ X
邮箱:daba0007@126.com参考文献:K码农-http://kmanong.top/kmn/qxw/form/home?top_cate=28
/ w+ w4 [6 _' {6 a" I7 n- m+ c/ b2 k4 q7 _( V
7 u4 ?" ?3 }4 T: `
: w4 Q0 ~8 o: Z0 ]4 T& c8 e: N: U2 f g& m7 D' e* y2 k
|