MAS最近正在对象棋系统做全面改造。第一步是处理难度问题:https://github.com/Monika-After-Story/MonikaModDev/pull/9117
简单讲,MAS的原象棋难度系统和屎没有太大区别。MAS官方显然没搞懂Stockfish的工作机理,所以瞎几把设置了一堆参数,最后导致的结果就是,制作组预期MAS的最低难度和MAS的实际最低难度不匹配。
如果你想知道为什么MAS制作组会把难度系统做得这么屎的话,好吧,其实也不能全怪他们:
一个和电脑对战的国际象棋程序可以被分为两部分:UCI和GUI. UCI是协议名,一种通用于国际象棋引擎的协议,以使得所有的引擎能够遵循统一的输入输出格式。 GUI就是用户交互界面,也即最后的棋盘。
对于MAS这个GUI来讲,Stockfish(鳕鱼)是它的UCI。Stockfish是个老牌UCI引擎,棋力强大,免费且开源,还在任何平台都有适用性。不过Stockfish本身就是设计给专业人士使用的——换句话说,它的手册不负责讲解太多细节知识。它假定阅读手册的人已经熟知了许多UCI引擎的知识。
国际象棋用等级分(Elo分)来评定棋力。一般认为,一个熟读规则的初学者差不多是800分,多练习练习,玩个一两个月,有点基础棋感,就是1200分左右。2000分以上可称大师,2500分可称特级大师,现世界第一约为2850分。
在MAS官方的预期中,MAS的最低棋力差不多是个200分左右。现在大家猜猜实际最低棋力大概是多少分?
实际数值还真不确定,但是很像是不低于1500分——这是MAS制作组那边新的程序员"wingdinggaster656"得出的结论。这很大程度解释了为什么人们几乎从来没法赢下Monika.
值得庆幸的是,新的难度系统看上去一劳永逸地解决了这个问题:新的难度系统的难度区间是500至2500分。
另外还有一件有趣的事情:经常和Monika下棋的人应该会发现,Monika降低棋力的方式是“刻意送子”。你得到的低分段对局体验差不多是这样的:“Monika突然向你丢了个子,然后在接下来一段时间内如特级大师般完美防守,之后再突然丢一个子,然后又是一系列完美走法”。
这么说吧。Stockfish降低棋力的算法还真的是引入随机性。根据给定的棋力数值,Stockfish在每一次搜索走法时都有一定概率丢出一个坏走法——纯粹的随机。这导致Monika看着很不像真人。
不过,还是值得庆幸的是:MAS同样正在极大幅度改善这个状况。看着挺有保证性。