Giter Site home page Giter Site logo

sessda2048's Introduction

sessda2048

使用

  • 把技术组写的那个sessdsa.2048整个拷到本地
  • 修改variables.py里的路径
  • 直接运行main.py

目前状态(更新在这里添加)

  • Random player拷自技术组
  • Stupid player拷自玩家
  • 基础的Minmax算法已经实现了。可能的改进方式:
    • 加入alpha-beta剪枝(Done by @D-X-Li)
    • 调整估值函数,可以看这个对局,其中12号小萝莉的估值函数为直接求和,13号为平方和。当大棋子权重调高后,更容易合成出高价值棋子,但13号的子儿反而更容易被吃掉了。
    • 采用numpy获得更快速的计算体验(?)
    • 如何针对大怂包这样的拖延时间策略优化?
    • 如何降低一开始棋子较少时对大量空位的搜索耗时?
  • 先后手代码初步分离,只是将原来文件分割成了两个,并且分别用True和False替换了对self.isFirst的调用,可读性有所下降。代码可从lxd文件夹拷贝。

##Bug汇总(代码的Bug在这里添加)

  • [ ]hzy版本_minmaxrecur中第90行self.isFirst可能有误?

20.5.8

  • 增加了Minmax算法,Stable和Preview两个版本

20.5.17

  • 改掉了局面估值函数的bug,使用sum(map(...))形式加快了速度,目前水平在天梯第五左右

20.5.18

  • 将先后手情况分开,主要对两种情行分别调整了搜索深度,目前我的电脑5s可以稳定战胜旧版本,天梯等待检验。放在yjy文件夹底下

分配活儿

  • 写报告
  • 基于现在代码的改进
    • 调现在的局面估值函数
    • 调动态深度 调参数
    • 启发式方法,从十个空位选五个
    • 蒙特卡洛,十个随机几个
    • 先搜“好”的局面
    • 拿着目前的代码轮流盯梢
    • 存固定走法,在一开始做优化
      • 开局是否要在对方位置落子?
    • 先手后手区分
    • 缓存已经搜过的局面
    • 根据时间做优化,避免超时(getTime接口)
    • 到快结束时就不搜了
  • 想新的算法

最先开始干的

  • 先后手代码分开,分到两个文件里封装好 LXD

  • 做搜索缓存 YJY

  • 开局棋谱优化 WZY LJY

  • 调参数

    • 调现在的局面估值函数
    • 调动态深度
  • 不同阶段(局数、剩余时间)

  • 研究五子棋算法

  • 认领自己的活儿

  • 紧密跟进别人的工作

sessda2048's People

Contributors

zaohan415 avatar wzy-30 avatar d-x-li avatar jackiey2018 avatar ljy268 avatar

Stargazers

Li Zhihao avatar  avatar  avatar

Watchers

James Cloos avatar

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.