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

纯 JS 五子棋 AI 更新啦,棋力变强了,来挑战下吧

  •  
  •   lihongxun945 · 2018-07-03 17:00:03 +08:00 · 14324 次点击
    这是一个创建于 2370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    更新了新的版本,现在比之前的棋力有明显的提升。

    在线地址: http://gobang.light7.cn/

    特点:

    • 纯 JS 实现,浏览器中运行,支持几乎所有主流设备。
    • 实现了常见的 Alpha-Beta 剪枝,Zobrist 缓存,启发式搜索,路径优化等
    • 代码开源 + 手把手教程 + 纯 JS 实现。

    源码地址: https://github.com/lihongxun945/gobang/

    有兴趣的同学可以和 AI 挑战一下。另外,正在开发一个 Vue 的新版本。到时候界面会有大幅美化,可能棋力也会得到提升的。

    第 1 条附言  ·  2018-07-04 16:13:47 +08:00
    感谢大家,已经测出了两个明显的 bug,最右侧一列被忽视,以及电脑有时候会在输了后继续下一个子的 bug。

    在之后的版本会修复的,感恩~
    第 2 条附言  ·  2018-07-04 16:16:17 +08:00
    前端小伙伴可以关注下我的博客哦: https://github.com/lihongxun945/myblog
    Vue/Webpack 等 干货满满。最近转移到 github 了,发现流量会比 CSDN,掘金等平台少很多,但是质量是杠杠滴,欢迎 Follow/star/fork.
    91 条回复    2018-07-23 22:10:15 +08:00
    lihongxun945
        1
    lihongxun945  
    OP
       2018-07-03 17:02:18 +08:00
    前端小伙伴可以关注下我的博客哦: https://github.com/lihongxun945/myblog
    Vue/Webpack 等 干货满满
    bosshida
        2
    bosshida  
       2018-07-03 17:13:11 +08:00
    刚玩了一局,输了,43 出现后,输定了,弹出的美女图片吓我一跳。。。
    shenjo
        3
    shenjo  
       2018-07-03 17:15:16 +08:00
    渣渣的我完了两局都输了
    wxsm
        4
    wxsm  
       2018-07-03 17:16:22 +08:00
    有趣
    karlxu
        5
    karlxu  
       2018-07-03 17:16:35 +08:00
    弹出的美女图片吓我一跳。。
    ynyounuo
        6
    ynyounuo  
       2018-07-03 17:32:21 +08:00
    五子棋复杂度太低了。没有额外规则的情况下执黑必赢 - - 可以尝试让五子棋的「五」作为一个变量,感觉才比较有意思。
    xyyxlq
        7
    xyyxlq  
       2018-07-03 17:33:00 +08:00
    有个问题,玩家赢了之后,电脑还是会继续走子,然后在提示玩家赢了之后,继续提示“轩轩赢了”。
    buddha
        8
    buddha  
       2018-07-03 17:45:12 +08:00 via Android
    玩了 2 局 都是 ai 先手 1 输 1 赢
    songz
        9
    songz  
       2018-07-03 17:49:08 +08:00
    ynyounuo
        10
    ynyounuo  
       2018-07-03 17:50:49 +08:00

    14 * 15 了
    huixia0010
        11
    huixia0010  
       2018-07-03 18:02:24 +08:00
    厉害
    yanaraika
        12
    yanaraika  
       2018-07-03 18:12:21 +08:00
    无禁手五子棋必胜策略都有了……
    SingeeKing
        13
    SingeeKing  
       2018-07-03 18:14:55 +08:00   ❤️ 1
    我想知道那个小姐姐是谁
    crab
        14
    crab  
       2018-07-03 18:15:43 +08:00   ❤️ 1
    开 2 窗口 2 角色互斗!
    pjhubs
        15
    pjhubs  
       2018-07-03 18:23:02 +08:00 via iPhone
    https://i.loli.net/2018/07/03/5b3b4e5153e70.png

    emmm,26 左右就输了,而且是个非常明显的点,估计是不是判赢函数中的权值不对
    uuair
        16
    uuair  
       2018-07-03 18:28:07 +08:00   ❤️ 2
    好难哦。。。
    yushiro
        17
    yushiro  
       2018-07-03 19:12:05 +08:00 via iPhone
    玩家选手,30 步赢了,但应该是算双三禁手~
    qiyuey
        18
    qiyuey  
       2018-07-03 19:20:25 +08:00 via Android
    有点慢
    lihongming
        19
    lihongming  
       2018-07-03 19:29:12 +08:00 via Android
    棋力不错,但胜负判断有问题,我都 5 连了,还能看见美女呢
    lihongxun945
        20
    lihongxun945  
    OP
       2018-07-03 19:32:56 +08:00 via iPhone
    @ynyounuo 有双三禁手,等规则可以限制先手优势
    lihongxun945
        21
    lihongxun945  
    OP
       2018-07-03 19:33:18 +08:00 via iPhone
    @xyyxlq 这是一个已知的 bug 哈哈
    lihongxun945
        22
    lihongxun945  
    OP
       2018-07-03 19:33:57 +08:00 via iPhone
    @uuair 你好有毅力
    lihongxun945
        23
    lihongxun945  
    OP
       2018-07-03 19:34:19 +08:00 via iPhone
    @yushiro 暂时没有实现禁手逻辑
    0312birdzhang
        24
    0312birdzhang  
       2018-07-03 19:36:51 +08:00 via iPhone
    轩轩是谁(滑稽
    lihongxun945
        25
    lihongxun945  
    OP
       2018-07-03 19:46:18 +08:00 via iPhone
    shansing
        26
    shansing  
       2018-07-03 19:48:47 +08:00
    想起“五子棋终结者”,你们说的执黑必胜的东西: http://www.bf92.com/soft/five/five.htm
    shansing
        27
    shansing  
       2018-07-03 19:59:25 +08:00
    下着下着“评分”一项就变这样了: https://imgur.com/a/pdTBfSX
    Windows 10 / Firefox 61
    Cavolo
        28
    Cavolo  
       2018-07-03 20:09:29 +08:00 via iPhone
    @shansing 没禁手的后果
    0312birdzhang
        29
    0312birdzhang  
       2018-07-03 20:56:42 +08:00
    @lihongxun945 #25 行了我知道你有女朋友 /老婆了
    lihongxun945
        30
    lihongxun945  
    OP
       2018-07-03 22:03:05 +08:00 via iPhone
    @SingeeKing 你猜,哈哈
    artandlol
        31
    artandlol  
       2018-07-03 22:58:28 +08:00 via iPhone
    shiyidi
        32
    shiyidi  
       2018-07-03 23:14:46 +08:00
    cuqk
        33
    cuqk  
       2018-07-03 23:15:21 +08:00 via Android
    66 步赢了电脑,算法不错,很多小心思都被发现了
    liprais
        34
    liprais  
       2018-07-03 23:19:14 +08:00 via Android
    不管有没有禁手,五子棋都是谁先谁赢的
    ynyounuo
        35
    ynyounuo  
       2018-07-04 00:20:22 +08:00
    @lihongxun945
    RIF 和日式规则作用不大,先手依旧必应,可以找相关论文看看,上个世纪就被证明了。可以考虑一下索索夫8规则。
    ynyounuo
        36
    ynyounuo  
       2018-07-04 00:20:36 +08:00
    *必赢
    zj299792458
        37
    zj299792458  
       2018-07-04 00:45:44 +08:00 via iPhone
    有趣,但是无禁手,先手 25 步内基本必胜……
    jsthon
        38
    jsthon  
       2018-07-04 00:49:33 +08:00
    最右侧是检测不到吗?快要填满的时候,它无视我然后赢了.....

    https://i.loli.net/2018/07/04/5b3ba8d4d6a9b.png
    uuair
        39
    uuair  
       2018-07-04 01:05:43 +08:00
    https://github.com/junxiaosong/AlphaZero_Gomoku

    后来我找到了一个这个。。。有点强。。。
    imdoge
        40
    imdoge  
       2018-07-04 08:27:07 +08:00
    水平一般……我执黑没下禁手,也没用花月浦月开局,31 手胜
    iyangyuan
        41
    iyangyuan  
       2018-07-04 09:41:56 +08:00 via iPhone
    太慢了。。。平均每步思考 30+,iPhone 自带浏览器
    eilian
        42
    eilian  
       2018-07-04 11:04:44 +08:00
    eilian
        43
    eilian  
       2018-07-04 11:08:32 +08:00
    楼主可以看下这张图的右下角 25 31 87 89 91 我先手 执黑子 5 子了 AI 还是下了第 92 手
    lihongxun945
        44
    lihongxun945  
    OP
       2018-07-04 11:40:38 +08:00 via iPhone
    @eilian 是的,这是一个已知 bug 哈哈
    lutla
        45
    lutla  
       2018-07-04 11:41:34 +08:00
    怎么赢了还下的……
    tuimaochang
        46
    tuimaochang  
       2018-07-04 13:38:21 +08:00

    美滋滋
    bbzt
        47
    bbzt  
       2018-07-04 14:14:49 +08:00
    五子棋一般先手都能赢吧。
    ColinZeb
        48
    ColinZeb  
       2018-07-04 14:25:18 +08:00
    在右边一直下就赢了
    jy00566722
        49
    jy00566722  
       2018-07-04 14:34:05 +08:00
    厉害了。。。
    UnknownR
        50
    UnknownR  
       2018-07-04 14:48:54 +08:00
    没禁手,先手基本都会赢
    longyujin9
        51
    longyujin9  
       2018-07-04 14:57:28 +08:00
    下到一定程度,直接走五颗子它都不堵了![]( https://i.loli.net/2018/07/04/5b3c6fceeed3d.png)
    lutla
        52
    lutla  
       2018-07-04 15:01:32 +08:00
    有点意思,ai 执黑。
    x7395759
        53
    x7395759  
       2018-07-04 15:04:13 +08:00
    很厉害
    Vhc001
        54
    Vhc001  
       2018-07-04 15:08:47 +08:00
    无视最右一列?
    lihongxun945
        55
    lihongxun945  
    OP
       2018-07-04 15:19:24 +08:00 via iPhone
    @Vhc001 你好像测出了一个新的 bug
    lihongxun945
        56
    lihongxun945  
    OP
       2018-07-04 15:21:51 +08:00 via iPhone
    感谢大家,已经测出了两个明显的 bug,最右侧一列被忽视,以及电脑有时候会在输了后继续下一个子的 bug。

    在之后的版本会修复的,感恩~
    imydou
        57
    imydou  
       2018-07-04 15:27:04 +08:00


    可能是 bug,如果我没想错的话,我先下的红圈棋子,然后就提示我输了。
    gotounix
        58
    gotounix  
       2018-07-04 15:31:16 +08:00
    RIcter
        59
    RIcter  
       2018-07-04 15:56:23 +08:00
    jiangnana
        60
    jiangnana  
       2018-07-04 16:26:09 +08:00
    请问那个是你女朋友吗?
    sevenQu
        61
    sevenQu  
       2018-07-04 16:49:08 +08:00
    还真有赢的,我怎么一局也没赢,唉。。。。
    molvqingtai
        62
    molvqingtai  
       2018-07-04 19:07:27 +08:00
    单生狗玩个五子棋都被虐😅
    molvqingtai
        63
    molvqingtai  
       2018-07-04 19:37:30 +08:00
    让 AI 一子
    SingeeKing
        65
    SingeeKing  
       2018-07-04 19:53:32 +08:00
    hizoubin
        66
    hizoubin  
       2018-07-04 22:07:16 +08:00
    bug 最右一列没有计算在内。
    em2046
        67
    em2046  
       2018-07-04 23:31:24 +08:00
    好难
    yun
        68
    yun  
       2018-07-04 23:53:51 +08:00
    我这算是赢了吧😆
    enchilada2020
        69
    enchilada2020  
       2018-07-05 11:27:01 +08:00 via Android
    为什么会突然蹦出来个动图 然后自动把我的步数跳过了…
    set01
        70
    set01  
       2018-07-05 22:32:04 +08:00
    电脑就是喜欢跳三
    DylanZ
        71
    DylanZ  
       2018-07-06 11:42:11 +08:00
    keep it simple plz.
    SinceJune
        72
    SinceJune  
       2018-07-06 14:06:29 +08:00
    你这怕是有点 bug。。https://imgur.com/a/dHaaPXe
    artandlol
        73
    artandlol  
       2018-07-07 11:29:32 +08:00 via iPhone
    https://send.firefox.com/download/7a22b1e1cf/#jtvyJRmiBa9X8UUCeVDYCQ

    3.0 版本还是赢了,只不过比较艰难了
    orange666
        74
    orange666  
       2018-07-08 15:20:59 +08:00
    厉害
    x7395759
        75
    x7395759  
       2018-07-09 18:48:22 +08:00
    距离边缘小于 5 的情况下,还是有一些过于关注局部的棋局而陷入深渊之中。
    nature91
        76
    nature91  
       2018-07-10 09:42:52 +08:00
    边缘值有 bug
    DylanZ
        77
    DylanZ  
       2018-07-12 16:41:47 +08:00
    请问小姐姐出现分别意味着啥?
    whvg2zaJSol4yTXj
        78
    whvg2zaJSol4yTXj  
       2018-07-13 03:09:01 +08:00
    22 手赢了
    whvg2zaJSol4yTXj
        79
    whvg2zaJSol4yTXj  
       2018-07-13 03:09:44 +08:00
    @DylanZ 她必胜了 or 你必胜了
    whvg2zaJSol4yTXj
        80
    whvg2zaJSol4yTXj  
       2018-07-13 03:23:08 +08:00
    ![屏幕快照 2018-07-13 上午 3.07.07]( )

    ![屏幕快照 2018-07-13 上午 3.16.53]( )
    cainiuwow
        81
    cainiuwow  
       2018-07-13 09:36:49 +08:00
    调整了吗?今天玩了一下怎么感觉系统变笨了。
    我这后手胜率都八九十了,不科学啊,上次玩电脑没这些套路。
    上次玩,明显能感觉到系统是电脑计算过的,非常人想法,但这次玩都是套路。
    lihongxun945
        82
    lihongxun945  
    OP
       2018-07-13 11:00:42 +08:00 via iPhone
    @cainiuwow 一直在做一些算法调整,可能短期内会出现棋力下降的问题
    UnknownR
        83
    UnknownR  
       2018-07-13 12:33:23 +08:00
    胜负的判定好像有点问题
    smilepig
        84
    smilepig  
       2018-07-13 19:22:40 +08:00
    这个要是纯本地运算,那是不是可以说,我的五子棋是奔腾的水平,或者 i3,i5,i7 的水平
    itstudying
        85
    itstudying  
       2018-07-17 18:30:19 +08:00
    美女图片是什么鬼,吓我一跳
    hhb0206
        86
    hhb0206  
       2018-07-17 20:28:50 +08:00
    ...被美女图片吓一跳,然后没注意三颗棋子了
    Currycili99
        87
    Currycili99  
       2018-07-19 14:18:56 +08:00
    五子棋零水平,没怎么玩过
    artandlol
        88
    artandlol  
       2018-07-20 22:32:46 +08:00 via iPhone
    sometimehappy
        89
    sometimehappy  
       2018-07-23 19:54:38 +08:00
    下输了 我丢了人类的脸
    gam2046
        90
    gam2046  
       2018-07-23 22:08:23 +08:00
    这个 AI 还是有提升空间的哟

    玩家先手胜:
    https://i.loli.net/2018/07/23/5b55de7b5d9b6.jpg

    玩家后手胜:
    https://i.loli.net/2018/07/23/5b55e1258ceb0.jpg
    gam2046
        91
    gam2046  
       2018-07-23 22:10:15 +08:00
    玩家后手胜:
    https://i.loli.net/2018/07/23/5b55e1a40f8e0.jpg

    话说这个棋子会闪.....导致截图没截到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   949 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:31 · PVG 06:31 · LAX 14:31 · JFK 17:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.