象棋吧 关注:276,474贴子:6,024,635
  • 21回复贴,共1

怎么最大限度的提升微信小程序的AI棋力

只看楼主收藏回复

最近业余时间在开发一个象棋的微信小程序----【飞琪象棋】。自己写的一个js引擎,棋力还算过得去。
但受小程序和手机计算能力的限制,很难再提高棋力。怎么样才能最大限度的提升一下棋力呢?
首先我们来看看小程序对AI的限制有哪些:
1. 手机计算能力比电脑差很多,而微信内的js引擎性能更是差过chrome的V8。
2.手机内存有限,没法用大内存的交换表。
3. 小程序只能用js开发,js语言是一个解释型的编程语言。先天计算能力就比C++这种强类型的要差几个档次。
4. 小程序的大小受限,没法使用大型的开局库和残局库。
要想在有限的资源下,尽可能的提高棋力,只能是优化引擎的算法了。现在优秀的国际象棋引擎,在js下也能达到大师级的棋力。中象在这方面就差得较远。下面是我正在研究的优化方向,但水平有限,再加上业余时间也没有很多精力,进展不大。
1. 优化搜索算法,主要是优化裁剪方面。怎么合理高效的裁剪掉无用的局面,让搜索层次更深。
2. 评估函数的优化。更精简和准确的为局面打分。
3. 考虑把引擎放在服务器端,这样要求服务器的性能非常高,不然没法支撑高并发的请求。
如果大家有什么好的建议,欢迎分享。


IP属地:广东1楼2019-11-12 13:22回复
    能否加个好友,一起搞象棋平台 私聊QQ:67704087


    IP属地:广东3楼2019-11-12 13:55
    回复
      顶一下


      IP属地:广东4楼2019-11-12 13:56
      回复
        楼主你得考虑和JS有关的优化,你说的第一第二点C++也能做。第三点就是有些手机软件的思路(比如微学堂?我没用过)。JS我不是很熟,同样是解释性语言的Python有很多关键函数可以直接用C写,不知道JS有没有可能做到。就算JS能做到,在小程序这个沙盒环境里有哪些API可用也不知道。话说回来小程序本来也不是为计算密集型应用设计的啊。


        IP属地:美国来自iPhone客户端5楼2019-11-12 13:57
        收起回复
          还是把盘面传回给服务器计算,提高棋力比较容易,但是服务器负担不小。


          IP属地:福建6楼2019-11-12 14:35
          回复
            支持一下楼主的善举


            IP属地:贵州7楼2019-11-12 14:46
            回复


              IP属地:江西来自Android客户端10楼2019-11-13 03:37
              收起回复
                楼主在吗?可以加一下微信吗?
                我的微信号:w1209497940


                IP属地:上海12楼2019-12-03 16:26
                回复
                  发布和新版本,优化了AI算法,棋力略有提升,能胜过天天象棋的高级。
                  增加了做题闯关功能和战术训练功能,欢迎试用。


                  IP属地:广东13楼2019-12-21 15:53
                  回复


                    IP属地:广东14楼2019-12-21 15:55
                    回复
                      试用了一下,真不错。闯关题目比较有深度。联网约战也比较方便。


                      15楼2019-12-21 23:31
                      回复