【笔记】移植C的GNU Go到网页版

最近重新思考了一下alphaGo和alphaGoZero,兴致一来,又去看了一遍柯洁和alphaGo的人机大战。第二局是真的可惜,alphaGo当时看来在胜率落后的情况下就会乱下…于是也想琢磨琢磨围棋。搜索了一下网上没有多少网页版的基础AI陪练,大多都是显示SGF读谱的库。多年前接触过GNU Go,虽然已经不更新了,不过还是可以拿来一用。

  • 下载GNU Go,编译一遍,把编译log dump出来,一堆gcc和ar命令。
  • 下载emscripten,我是centos 7老古董了,来个自带的llvm,要么版本过低要么需要GLIB版本xxxx。再见,编译一遍gcc 10再编译emscripten的llvm,好了emcc一个hello world,搞定。
  • 看一遍编译log,把gcc命令抽出来,然后把那些ar用emar再编译一遍出一个em版本的.a库。有些东西em识别不了,其实也用不上,直接在代码里干掉。
  • 看emscripten的doc,写一个wrapper模仿play_ascii.c里的函数expose一个易用的API集合。比如初始化,电脑走下一步,手动下一步,这样就好了:https://github.com/dna2ai/gnugo.js/blob/main/gnugowrapper.c
  • 写一个简单的test.html,可以直接运行显示文字棋盘。这样,简单框架就搭好了,来来来,和GNU Go手谈几把。后面,再写一个程序就可以自动对弈了。

GNUGO.js的成品文件可以直接下载使用:https://github.com/dna2ai/gnugo.js/tree/main/dist

当然,后面就是探索在资源极度受限的情况下,比如浏览器上,如何让计算智能达到巅峰了。

Enjoy!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值