GithubHelp home page GithubHelp logo

判断输赢Bug about gobang HOT 7 OPEN

yudongqiu avatar yudongqiu commented on July 17, 2024
判断输赢Bug

from gobang.

Comments (7)

yudongqiu avatar yudongqiu commented on July 17, 2024

我最近也在写一个五子棋AI,是用python写的,估值函数用的是Monte Carlo算法。看了你的博客觉得很有启发,我也觉得你的AI执黑已经很厉害了。如果执白也能下赢业余爱好者,就更理想了。
有两个地方我有一点疑问:第一是算杀只对AI而不对玩家,虽然节省了一半计算时间,但这也造成了AI很多时候并不知道玩家5-6步内可以走出的杀棋,是否还是将其加入更合适?第二是估值函数还可以改进?我发现在接近叶节点并且算杀不成功的时候,AI可能会为了自己产生两个活二,而不去封堵对手的活二,而下一步是对手走,他的这个已有的活二的威胁可能会比AI刚创造的两个活二加起来更大。
以上是我跟您的AI下赢了几盘之后得到的感受。
另外还有一个小建议,是否在AI算出自己已经输定了的情况下可以投子认输?
谢谢!

from gobang.

lihongxun945 avatar lihongxun945 commented on July 17, 2024

@yudongqiu 过奖了,这个AI水平一般。算杀确实是为了节省时间只做了一半。另外有一些bug没有修复的。
蒙特卡洛应该不太适合五子棋,五子棋很像是一堆解法中找最大值,蒙特卡洛不太适合找最大值,他比较适合像围棋这种输赢不依赖最大值的棋类。现在比较厉害的五子棋AI,奕心,蜗牛等都是用极小化极大值搜索的。

from gobang.

yudongqiu avatar yudongqiu commented on July 17, 2024

@lihongxun945 哈哈,感谢这么快就回复了!我也用的minimax结合了alpha-beta pruning搜索,但是在末端叶结点估值的时候用了MC估算胜率。(感觉效率确实不高)

from gobang.

lihongxun945 avatar lihongxun945 commented on July 17, 2024

@yudongqiu 现在上班忙,以后有空再改进下。
MC你可以探索下,不过我不看好通过统计来找最大值。

from gobang.

yudongqiu avatar yudongqiu commented on July 17, 2024

hi 您好,
我后来把MC估值换成了分析局面的函数,效率果然高了很多:)
完成了python版本之后感觉在命令行下棋还是不太方便,我就用Flask写了一个网页交互。因为觉得你的网页版的界面很漂亮,就想借用一下,请问可以吗?我会在index.html,main.css和main.js这三个借用的文件开头注明引用。谢谢!

from gobang.

lihongxun945 avatar lihongxun945 commented on July 17, 2024

@yudongqiu 好的

from gobang.

DD-hd avatar DD-hd commented on July 17, 2024

轮到ai方下棋,棋手没有冲四的情况,有活四为什么不直接放回第一个,相反是返回眠四第一个
image

from gobang.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.