V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
WendellSun
V2EX  ›  Go 编程语言

用 Go 撸了下 2048 的 AI

  •  2
     
  •   WendellSun · 2017-10-25 10:16:54 +08:00 · 4326 次点击
    这是一个创建于 2581 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 Go 把 2048 的 AI 撸了一遍,有兴趣的同学可以参考下。

    算法用的 Expectimax,局面评估靠几个简单的权值矩阵,因为请求频繁,使用 websocket 来通信。2048 的网页前端是从别人的项目 fork 过来修改的,在 readme 上有说明。

    https://github.com/xwjdsh/2048-ai

    43 条回复    2017-11-16 14:24:37 +08:00
    northisland
        1
    northisland  
       2017-10-25 10:34:11 +08:00
    太厉害了!
    2048
        2
    2048  
       2017-10-25 10:35:26 +08:00   ❤️ 29
    什么?你把我撸了?
    holajamc
        3
    holajamc  
       2017-10-25 10:38:28 +08:00
    @2048 2333
    WendellSun
        4
    WendellSun  
    OP
       2017-10-25 10:43:30 +08:00
    @2048 卧槽。。
    lany
        5
    lany  
       2017-10-25 10:50:26 +08:00
    @2048 666
    evlos
        6
    evlos  
       2017-10-25 10:55:15 +08:00
    @2048 #2 哈哈哈哈
    LittleWhiteMouse
        7
    LittleWhiteMouse  
       2017-10-25 11:00:50 +08:00
    自古二楼出人才
    Mitt
        8
    Mitt  
       2017-10-25 11:03:33 +08:00
    @2048 666
    wulin
        9
    wulin  
       2017-10-25 11:06:26 +08:00
    二楼 2333333
    mrwangrj
        10
    mrwangrj  
       2017-10-25 11:11:14 +08:00
    不说歪楼的事,这个搞得很厉害
    asen477
        11
    asen477  
       2017-10-25 11:18:33 +08:00
    确实不错。
    BBCCBB
        12
    BBCCBB  
       2017-10-25 11:23:03 +08:00
    2 楼, 23333
    WendellSun
        13
    WendellSun  
    OP
       2017-10-25 11:23:37 +08:00
    goodryb
        14
    goodryb  
       2017-10-25 11:24:29 +08:00
    https://github.com/xwjdsh/2048-ai/issues/1

    docker start 的时候报错了
    ii4Rookie
        15
    ii4Rookie  
       2017-10-25 11:24:50 +08:00
    @2048 请问你的 AI 是哪个部位?
    silov
        16
    silov  
       2017-10-25 11:25:11 +08:00
    果然二楼欢乐多
    yonka
        17
    yonka  
       2017-10-25 11:34:55 +08:00
    2 * 1024 ? 我还以为...
    WendellSun
        18
    WendellSun  
    OP
       2017-10-25 11:50:13 +08:00
    @goodryb 我试了几个服务器,都正常。你看看这个链接有没有帮助呢。

    https://github.com/moby/moby/issues/16816
    noNOno
        19
    noNOno  
       2017-10-25 11:56:04 +08:00
    @2048 合格的二楼-.-
    superMaLiao
        20
    superMaLiao  
       2017-10-25 12:14:03 +08:00
    @2048 噫!!
    mrcn
        21
    mrcn  
       2017-10-25 13:10:04 +08:00
    爆出 1024 之后速度好像会变慢很多?
    WendellSun
        22
    WendellSun  
    OP
       2017-10-25 13:20:42 +08:00
    @mrcn 是的,爆出 1024 和 2048 分别提升一个搜索深度,会导致速度变慢。
    yulitian888
        23
    yulitian888  
       2017-10-25 13:43:24 +08:00
    #2
    自古二楼出人才
    timothyye
        24
    timothyye  
       2017-10-25 13:45:19 +08:00
    流弊,求待
    timothyye
        25
    timothyye  
       2017-10-25 13:45:25 +08:00
    求带
    veightz
        26
    veightz  
       2017-10-25 13:47:49 +08:00
    小白围观
    WendellSun
        27
    WendellSun  
    OP
       2017-10-25 14:06:44 +08:00
    @timothyye 大佬你谦虚了。。
    rebill
        28
    rebill  
       2017-10-25 14:22:26 +08:00
    前面很快,后面( 1024 之后)开始吃力了,效率还有的提升。
    WendellSun
        29
    WendellSun  
    OP
       2017-10-25 14:37:48 +08:00
    @rebill 是的,爆出 1024 和 2048 分别提升一个搜索深度,会导致速度变慢。代码上可以优化的地方有不少,谢谢支持。
    lh948
        30
    lh948  
       2017-10-25 14:51:46 +08:00
    好 diao
    lh948
        31
    lh948  
       2017-10-25 15:01:12 +08:00
    只玩到分数 71652
    mosliu
        32
    mosliu  
       2017-10-25 15:07:56 +08:00
    自古二楼欢乐多。。
    22092
        33
    22092  
       2017-10-25 15:08:53 +08:00
    WendellSun
        34
    WendellSun  
    OP
       2017-10-25 15:18:08 +08:00
    @lh948 @jg22092kit 局面评估上实现的比较粗糙,我也觉的跑起来不太稳定。
    andychen20121130
        35
    andychen20121130  
       2017-10-25 15:29:04 +08:00
    原来已经开源了。
    aihimmel
        36
    aihimmel  
       2017-10-25 15:50:18 +08:00
    为啥我的印象中 2048 这个游戏除了会刷出 2,还会刷出 4
    WendellSun
        37
    WendellSun  
    OP
       2017-10-25 15:59:26 +08:00
    @andychen20121130 开源的挺多的,我也参考了一些项目。大多是 js 实现的,服务端实现的少一些。
    WendellSun
        38
    WendellSun  
    OP
       2017-10-25 16:02:43 +08:00
    @aihimmel 是会刷出 4 的。10%出 4,90%出 2,这个是前端里 js 的逻辑,没有改过。
    nicoljiang
        39
    nicoljiang  
       2017-10-26 18:00:27 +08:00
    http://ovolve.github.io/2048-AI/

    跟这个用的同一算法么?
    WendellSun
        40
    WendellSun  
    OP
       2017-10-26 21:27:34 +08:00 via Android
    @nicoljiang 这个项目我读过,作者用的算法是 minimax 结合剪枝,expectimax 是基于其的一个变种,在局面评估上,他考虑的方面很多,表现很好。
    Unknwon
        41
    Unknwon  
       2017-11-14 06:49:42 +08:00
    厉害了。。学习中
    WendellSun
        42
    WendellSun  
    OP
       2017-11-14 09:20:42 +08:00
    @Unknwon 早上来办公室看 github 吓一跳,原来被大佬翻牌了。
    kex0916
        43
    kex0916  
       2017-11-16 14:24:37 +08:00
    给大佬跪了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1212 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:26 · PVG 02:26 · LAX 10:26 · JFK 13:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.