中国象棋引擎测试各种局面汇编一

考验棋软的八大悍局

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

马六退五马六进七马六退七马六进八马六退八(测试引擎反应速度,看多久算出。)

扫描二维码关注公众号,回复: 12907673 查看本文章
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);

猜你喜欢

转载自blog.csdn.net/ad44275783/article/details/114107459