考验棋软的八大悍局
2bakabr1/r8/2n3nc1/p1p1p1R1p/9/2P3p2/Pc2P3P/2C1C1N2/9/RNBAKAB2 b
车1平7
、马3退5
(这个比较容易算出,平稳应对)
卒7进1
(开局库中可能会有这棋,如果不用开局库,软件能算出来么。)
炮8进4
(若算出此步,则说明引擎棋风比较泼辣,考验引擎延伸能力,若算不出,手动走一步,看分数变化以及算出车三退二
的速度。)
1r2kab2/4a1c2/2n1b3n/2p1C2rp/9/1cPN2R2/P3P1P1P/4C4/4N4/1RBAKAB2 b
车2进1
(精准,考验对峙局面处理情况,能算出马9进7
的变化更好,取得抗衡的要着,此局面佳佳算的飞快。)
卒3进1
(这个着法很一般。)
1rb1ka3/4a4/2c1b1c1n/p1R1C2rp/9/4Pp3/P1P1N3P/4C4/9/2BAKAB1R b
车8平5
(考验中盘力量,弃车杀炮,形成单边攻势,越快越好。)
2bakc3/4a2r1/n3b4/2p3p2/p2Np4/2P3P2/PR2P4/2C1B4/9/3AKAB2 r
马六进五
(弃马杀象打开缺口,炮七平九
也可。)
1rbaka3/4n4/n3b4/2p1p3r/p4R2p/2P3R2/Pc2P3c/2N1C1C1N/9/2BAKAB2 r
炮五进四
炮三平二
(取势好棋。)
4kab2/3Pn4/9/9/6b2/9/9/9/4K4/4CA3 r
帅五进一
(测试残局编码准确性,取胜要着,默认兵六平五
(单剩炮),不可炮五进八
(单剩兵),此局面佳佳算的飞快。)
3k5/4P4/9/p2C5/9/9/9/4KA3/2ppA4/9 r
帅五平六
(考验残局处理情况,此局面缩放 60 % 分数即可,准备下手炮六进二
,然后兵五进一
弃兵,炮退回就可获胜。)
r1bak4/4a2N1/n3b4/4Crp2/pRp1p4/6P2/P1C5p/9/4A1R2/c3K3c r
车三平四
(考验引擎飞刀、中刀,直接完成绝杀处理能力,弃车,以后连弃数子成杀,很快算出的有可能作者给引擎做了内置飞刀,不一定好。)
我已经摸清了软件的个性了,人机我是下不过的,再强的纯软我都能顶和,赢是不可能的。
5k3/9/5a3/9/9/9/9/3N1r3/4KC3/9 w
马六退五
、马六进七
、马六退七
、马六进八
、马六退八
(测试引擎反应速度,看多久算出。)
2Ck5/4P4/4b4/4p3P/9/1p7/9/B2AK4/2ppA1p2/9 w
炮七退五
(越快越好,唯一正解。)
5k3/4P4/9/9/8n/8N/9/B8/5p3/p3K4 w
马一进三
(考验水平线处理情况,红方只有走这招才能取胜。若走马一退三
抓卒,黑方马9进7
后基本赢不到了。)
2bakab2/1c2n4/1r7/C3R2Np/9/P1P5P/6P2/4B4/4A3n/1c2KAB2 w - - 0 1
车五进一
(极难,考验闷宫,过河兵,炮牵制(王上面一个棋子被牵制了),基本无软可解。)
4kab2/4a4/b2r5/2RN4p/2P6/3C2p2/P3P1c1P/1r2B1n2/1c7/1RBAKA3 b
炮2平9
(危险局面,考验多子归边处理情况。)
曾经的八大悍局,考验软件。大家能解几局?感觉能上六局就很牛逼。
引擎测试专用一个局面就能知道你手中那个引擎最强大:
3ak1b2/4a4/3nb1n2/4p1N1p/pr7/1N1R2P2/P3P3P/3CB4/4A4/c2K1AB2 w - - 0 29
炮六平八
(180 ~ 210 分,如果是 150 分那不算数啊!)
马八进六
、炮六平七
(175 分。)
兵五进一
、炮六进五
(这两步走出来都是变和的棋了 =__=。)
这局面在很多棋书都出现过,大多评注都是红好,黑将面临严峻的考验。
可是软件却认为黑好,大家认为呢?我机器弱,跑不了那么高的层数,大家可以一起来分析:
1r1akabr1/1c7/2n1b1n2/p1p1p3p/6p2/PN3R3/1cP1P1P1P/2C1C1N2/1R7/2BAKAB2 b
卒3进1
、后炮进3
(50 ~ 120 分。)
前炮平5
(-250 ~ 250 分,浅算黑方占优,深算红方占优。)
骗招,专门欺负弱引(免费引擎基本算不出),看看你的引擎是否能算出:
2bak2r1/4a4/2n1b1c1n/pNPCp2Cp/9/7R1/P3P1P1P/4B1c2/9/3AKAB2 b
后炮退1
(若走马3退2
速败。)
这个局面名手居然走 车二进七
,红先,应该是 车七平六
。
4ka2r/1N2a4/4b3b/2prC1p2/9/9/4P3n/B3B4/2R1A2R1/c3KA3 w - - 0 1
车七平六
(无软可解,手动走一步,引擎秒解。)
这是 2019 年国圣象棋输掉的那盘棋,赛后拆解,可以测试引擎中局水平:
2bak4/9/3a5/p2Np3p/3n1P3/3pc3P/P4r1c1/B2CC2R1/4A4/3AK1B2 b - - 0 1
车6退2
(-180 ~ -340 分。)
卒4进1
(-140 分。)、卒4平3
(-30 分。)
能不能解有时竟然靠运气:
2Pa2bn1/5k1N1/5a3/2p6/6p2/9/9/9/4K4/2B3B2 w - - 0 1
相三进一
(31950 分,绝杀,看看多快。)
Hash 冲突测试(炮七进二
,如有变化就是冲突。)
3ak4/n3a4/4R4/p3p3p/9/4P3P/5r3/4BC3/4A4/c1C1KAB2 w - - 0 1
新版引擎,Hash key 变成 16 bit,那个 pseudo_legal() 函数需要做些处理和旧版不一样啊。
/// Position::pseudo_legal() takes a random move and tests whether the move is /// pseudo legal. It is used to validate moves from TT that can be corrupted /// due to SMP concurrent access or hash position key aliasing. inline bool Position::pseudo_legal(const Move m) const // Evasions generator already takes care to avoid some kind of illegal moves // and legal() relies on this. We therefore have to take care that the same // kind of moves are filtered out here.
残局编码测试(高分和。)
3k5/9/9/9/9/9/9/2N1K4/p8/r2A1C3 w - - 0 1
帅五退一
,残局编码写了就能算出。
3k4P/3nP4/4b4/9/9/9/3r5/3C5/9/3K1A3 w - - 0 1
炮六退一
,看看引擎会卡多久才能算出,不要用强机算。
把国象引擎搬过来要处理下,中象没有僵局,直接绝杀:
5k3/3P5/9/9/9/9/9/9/3K5/9 w - - 0 1
兵六平五
,那个 search() 函数要改下。
if (!moveCount) bestValue = /*excludedMove ? alpha : */mated_in(ss->ply);