KillerKing重写了UI。
Einstein写了EXE形式的AI,加入了一些计算pattern的估价函数,和WZebra对战情况依然不乐观。
Isaac研究EXE之间交互,无果。
platform和UI写的有点混乱,重写。
具体写法待定。
platform被KillerKing和Isaac合作调试至基本无bug
解决了双AI对战时不显示棋盘的问题
Einstein改进了AI的搜索剪枝部分,但还是由于估价函数的选取过于随意,出现了神奇的事情:一个搜索2步的AI草割了一个能搜7步的AI……
platform和UI基本成形,但还存在若干bug:
- 某玩家连续走两步之后会出错
- 双AI对战是不会显示棋局
Einstein和Isaac写出了两个很暴力的AI类,搜索深度在5步左右
因为估价函数的选取过于简单,这两个AI的“智商”都十分低下。
KillerKing主要在调试platform和UI。
下一步需要研究一下如何选取一个稍好的估价函数。
今天开会讨论,决定了程序的大体框架:
- platform
加载两个AI玩家(人类玩家也是广义的AI类),通过AI类的接口模拟双方的对战,并把局面传给UI输出。
- UI 能够显示当前局面,并能得到鼠标在棋盘上的操作。
- AI类 有两个接口,一个otherMove(int , int)用来告诉AI对方的决策,另一个myMove(int &
, int &)用来返回AI的决策。类内部实现搜索等博弈算法。
- Human类 有和AI类两个相同的接口,处理和UI的交互。
也讨论了一些细节问题:双AI对战时AI间内存共享问题。结论是不能搞内存共享。Hash表如何开,没有结论。
最后决定先写一些暴力的搜索算法观察一下效果。
团队成员(按ID字典序):Einstein, Isaac, KillerKing
预期目标:
- 写出一个Othello游戏的程序,支持人和AI队战。
- AI是程序的主体部分,我们争取做到让AI能够战胜我们能找到的所有人,以及一些其它AI程序。
需要用到的知识:
- 博弈搜索及剪枝技巧(AI的主要算法)
- 机器学习(用在估价函数的设计)
- 数据检索技术(用在开局库,残局库)
- 图形界面的设计
某三人在PPCA2006搞Othello AI,把日志扔在这里...