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 日 · 4851 次点击
    这是一个创建于 3012 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 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 日
    太厉害了!
    2048
        2
    2048  
       2017 年 10 月 25 日   ❤️ 29
    什么?你把我撸了?
    holajamc
        3
    holajamc  
       2017 年 10 月 25 日
    @2048 2333
    WendellSun
        4
    WendellSun  
    OP
       2017 年 10 月 25 日
    @2048 卧槽。。
    lany
        5
    lany  
       2017 年 10 月 25 日
    @2048 666
    evlos
        6
    evlos  
       2017 年 10 月 25 日
    @2048 #2 哈哈哈哈
    LittleWhiteMouse
        7
    LittleWhiteMouse  
       2017 年 10 月 25 日
    自古二楼出人才
    Mitt
        8
    Mitt  
       2017 年 10 月 25 日
    @2048 666
    wulin
        9
    wulin  
       2017 年 10 月 25 日
    二楼 2333333
    mrwangrj
        10
    mrwangrj  
       2017 年 10 月 25 日
    不说歪楼的事,这个搞得很厉害
    asen477
        11
    asen477  
       2017 年 10 月 25 日
    确实不错。
    BBCCBB
        12
    BBCCBB  
       2017 年 10 月 25 日
    2 楼, 23333
    WendellSun
        13
    WendellSun  
    OP
       2017 年 10 月 25 日
    goodryb
        14
    goodryb  
       2017 年 10 月 25 日
    https://github.com/xwjdsh/2048-ai/issues/1

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

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

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