V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
icybee
V2EX  ›  分享创造

分享一个 py 写的中国象棋 ai,实力可以爆杀我

  •  2
     
  •   icybee · 2022-11-22 15:32:37 +08:00 · 3352 次点击
    这是一个创建于 723 天前的主题,其中的信息可能已经有所发展或是发生改变。

    其实也不完全是分享这个 ai 代码,更多是分享这个故事。当然,这个 ai 代码已经放 github 了:

    https://github.com/bupticybee/XQPy

    说来也挺有意思,20 年的时候写过一个 py 版本的象棋 ai https://github.com/bupticybee/elephantfish ,全部代码就 100 多行,实现完发现 ai 很弱,就我都能随便爆杀的水平,实现完了之后挺失望的,感觉没整好这个活。

    两年多下来项目 issue 区倒是没有多少讨论,star 也不怎么多,我以为这事就这么完了。(唯一比较高质量的讨论是有一个小伙子魔改出了揭棋 ai ,接到线上一打还挺强的)

    结果这两天网上冲浪的时候,偶尔就发现,居然有两伙人,都做了非常类似的事情,一伙是

    https://devforum.nvidia.cn/forum.php?mod=viewthread&tid=11369

    这篇文章里边的,他是把我 20 年写的这个 ai 做了一个象棋机器人,有机械臂的那种,挺有意思,但是我想说小伙子你这个下完棋要手动接一遍电路是不是有点秀。

    另一伙人是大学生,也是用我的代码,然后使用了看起来更先进一点的机械臂,也做了一个象棋机器人,居然还得了个什么的一等奖:

    http://aijishu.com/a/1060000000361674

    看到的时候心情挺复杂的,一方面有人愿意使用我的代码肯定很开心,但是另一方面,这个活我没整好啊,ai 的棋力其实不是很强,连我都下不过,我不知道这两伙人接入这个代码的时候是什么心情。

    所以这两天就寻思着能不能整个好点的活,把 python 的象棋 ai 棋力整高一点。于是乎就有了文章开头的项目,思路倒是不复杂,基本就是把象眼的 js 版本整个翻译成了 py ,而且有了之前的象棋 ai 的经验,过程其实蛮顺利的,这回整完了这个活,我和 ai 下了一下,终于是可以稳定下过我了,于是我放心了,感觉这回稳了,之后要是有人想用我的代码整活,我至少能拍胸脯说,这玩意还是有点实力的。

    哈哈,全剧终,大家可以打打看,看看能不能打过这个 ai

    17 条回复    2023-04-26 16:21:45 +08:00
    JeffGe
        1
    JeffGe  
       2022-11-22 16:01:16 +08:00 via Android
    可以啊,为你点赞
    lookStupiToForce
        2
    lookStupiToForce  
       2022-11-22 16:09:28 +08:00
    感谢分享
    顺带问一下,有实现残局输入吗?
    yuhangch
        3
    yuhangch  
       2022-11-22 16:18:39 +08:00
    release 是一个小时之前,帖子 45 分钟之前,看来 OP 写这些字用了 15 分钟🐶
    这故事真棒,自己做的东西能帮到别人心里真的很爽
    icybee
        4
    icybee  
    OP
       2022-11-22 16:33:52 +08:00
    @yuhangch 哈哈是的,不过也伴随着责任,感觉自己没写好的时候是真的难受
    icybee
        5
    icybee  
    OP
       2022-11-22 16:34:46 +08:00   ❤️ 1
    @lookStupiToForce 有呀,你可以在这里 https://github.com/bupticybee/XQPy/blob/main/play_against_ai.py#L18 直接改 fromFen 变成残局的就行啦
    lookStupiToForce
        6
    lookStupiToForce  
       2022-11-22 16:42:08 +08:00
    @icybee #5 了解,谢谢
    你这一说我才看懂那串字符串😂
    dorothyREN
        7
    dorothyREN  
       2022-11-22 16:48:26 +08:00
    我想知道 两个 ai 对打会怎么样
    icybee
        8
    icybee  
    OP
       2022-11-22 16:50:14 +08:00
    @dorothyREN 哈哈大概会和棋吧?
    icybee
        9
    icybee  
    OP
       2022-11-22 16:52:00 +08:00   ❤️ 2
    @lookStupiToForce 那个字串是标准的中国象棋 fen 格式,可以在这个网站上排完了复制就行 https://play.xiangqi.com/editor/
    lookStupiToForce
        10
    lookStupiToForce  
       2022-11-22 16:54:23 +08:00
    @icybee #9 感谢指北🥰确实第一次了解这个,还以为是 op 你单独的实现
    icybee
        11
    icybee  
    OP
       2022-11-22 16:57:43 +08:00
    @lookStupiToForce 哈哈那肯定不是
    findex
        12
    findex  
       2022-11-23 06:46:49 +08:00 via iPhone
    支持一下
    icybee
        13
    icybee  
    OP
       2022-11-23 08:13:26 +08:00
    @findex thx~
    Usaki
        14
    Usaki  
       2022-11-24 16:55:57 +08:00
    有没有国际象棋的
    icybee
        15
    icybee  
    OP
       2022-11-24 17:32:15 +08:00
    beneo
        16
    beneo  
       2023-04-23 14:58:21 +08:00
    V 友,邮件联系您了,求个联系方式
    icybee
        17
    icybee  
    OP
       2023-04-26 16:21:45 +08:00
    @beneo 微信吧,892009517
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:09 · PVG 00:09 · LAX 08:09 · JFK 11:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.