<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://brianhliou.com/zh-hans/feed.xml" rel="self" type="application/atom+xml" /><link href="https://brianhliou.com/zh-hans/" rel="alternate" type="text/html" /><updated>2026-09-12T02:02:50+00:00</updated><id>https://brianhliou.com/feed.xml</id><title type="html">Brian H. Liou</title><subtitle>Software engineer writing about distributed backend systems, game engines and solvers, and AI tooling.</subtitle><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><entry xml:lang="zh-hans"><title type="html">Benedict 象棋：先行方胜率 78%，关键就在一着</title><link href="https://brianhliou.com/zh-hans/posts/benedict-xiangqi-balance/" rel="alternate" type="text/html" title="Benedict 象棋：先行方胜率 78%，关键就在一着" /><published>2026-09-06T00:00:00+00:00</published><updated>2026-09-06T00:00:00+00:00</updated><id>https://brianhliou.com/posts/benedict-xiangqi-balance</id><content type="html" xml:base="https://brianhliou.com/posts/benedict-xiangqi-balance/"><![CDATA[<p>Benedict Chess 没有吃子。你移动一个棋子后，它在新格上所攻击到的每一个敌方棋子都会变色并加入你一方。把对方的王转化过来即为胜。W. D. Troyka 于 2002 年发表了它，名字取自倒戈的 Benedict Arnold。</p>

<p>就我能查到的范围，还没有人把这条规则放到象棋棋盘上。Chess Variant Pages 收录了 7,383 种游戏，其中 43 个用象棋棋盘的条目和十几个带转化机制的条目是两个互不相交的集合；Ludii 的 2,330 种游戏和 Fairy-Stockfish 的变体列表也是同样的情况。那些擦肩而过的例子值得一提，因为大多数只差一个关键点。Desertion Chess 靠走到棋子旁边来转化，而不是靠攻击它，并且保留吃子。Andernach 翻转的是吃子方而不是被吃方。Cleopatra Chess 就是 Troyka 的规则，但只限于一种棋子。而象棋自己的翻子玩法，暗棋和揭棋，翻开棋子是为了揭示它是什么，这和改变它属于谁完全是两回事。</p>

<p>象棋有隔着炮架吃子的炮，有锁在九宫九个点里的将/帅（黑/红），还有过不了楚河汉界的象/相，所以这个移植从来不可能是机械照搬。它逼出了四个没有默认答案的设计决定。</p>

<p>然后我写了一个引擎，来看看结果是否公平，答案是不公平。先行方赢下 78% 的对局，而普通象棋大约是 55%。这里面几乎全部来自开局第一着可以走出的一步炮，这比一个整体就失衡的游戏要好修得多。</p>

<h2 id="规则">规则</h2>

<p>走一个子。它落点处攻击到的每一个敌方棋子都归你。</p>

<!-- Generated by scripts/gen-benedict-diagrams.mts in the mistboard repo.
     Do not hand-edit: re-run the generator. -->
<div class="xq-stepper" data-stepper="rule">
  <figure class="xq-step" data-step="0">
    <div class="xq-step-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle">红方行棋</text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-crossed-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-crossed-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-d1-d4-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="111" y1="325" x2="111" y2="242" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-d1-d4-0)" /></g></svg></div>
  </figure>
  <figure class="xq-step" data-step="1" hidden="">
    <div class="xq-step-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle">d1d4之后</text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><circle cx="18" cy="232" r="6.5" fill="#15781B" opacity="0.85" /><circle cx="204" cy="232" r="6.5" fill="#15781B" opacity="0.85" /><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg></g></svg></div>
  </figure>
  <div class="xq-step-nav">
    <button type="button" data-dir="-1" aria-label="上一局面">&#8592;</button>
    <span class="xq-step-count">1 / 2</span>
    <button type="button" data-dir="1" aria-label="下一局面">&#8594;</button>
  </div>
</div>

<p>有一点要早点注意：原地的攻击不产生任何作用。只有移动的那个棋子才会转化，所以一辆已经瞄着某个目标的车必须再走一步才能把它拿下。威胁只能靠走子来制造，等待永远没用。</p>

<h2 id="试着下一下">试着下一下</h2>

<p>两方都由你操作，背后没有引擎。它跑的是本文每一个图示都要校验的同一套规则内核，所以它不可能允许一个本文说是非法的着法。</p>

<!-- Generated by scripts/gen-benedict-diagrams.mts. Do not hand-edit. -->
<div class="xq-play">
  <p class="xq-play-turn"></p>
  <div class="xq-play-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle"></text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text></g><g class="xq-play-dots" transform="translate(4 4)"></g><g class="xq-play-pieces" transform="translate(4 4)"></g></svg></div>
  <div class="xq-play-nav">
    <button type="button" data-play="undo">撤销</button>
    <button type="button" data-play="reset">重置</button>
  </div>
  <p class="xq-play-note"></p>
  <script type="application/json" class="xq-play-data">{"points":{"a1":{"x":4,"y":311},"a2":{"x":4,"y":280},"a3":{"x":4,"y":249},"a4":{"x":4,"y":218},"a5":{"x":4,"y":187},"a6":{"x":4,"y":156},"a7":{"x":4,"y":125},"a8":{"x":4,"y":94},"a9":{"x":4,"y":63},"a10":{"x":4,"y":32},"b1":{"x":35,"y":311},"b2":{"x":35,"y":280},"b3":{"x":35,"y":249},"b4":{"x":35,"y":218},"b5":{"x":35,"y":187},"b6":{"x":35,"y":156},"b7":{"x":35,"y":125},"b8":{"x":35,"y":94},"b9":{"x":35,"y":63},"b10":{"x":35,"y":32},"c1":{"x":66,"y":311},"c2":{"x":66,"y":280},"c3":{"x":66,"y":249},"c4":{"x":66,"y":218},"c5":{"x":66,"y":187},"c6":{"x":66,"y":156},"c7":{"x":66,"y":125},"c8":{"x":66,"y":94},"c9":{"x":66,"y":63},"c10":{"x":66,"y":32},"d1":{"x":97,"y":311},"d2":{"x":97,"y":280},"d3":{"x":97,"y":249},"d4":{"x":97,"y":218},"d5":{"x":97,"y":187},"d6":{"x":97,"y":156},"d7":{"x":97,"y":125},"d8":{"x":97,"y":94},"d9":{"x":97,"y":63},"d10":{"x":97,"y":32},"e1":{"x":128,"y":311},"e2":{"x":128,"y":280},"e3":{"x":128,"y":249},"e4":{"x":128,"y":218},"e5":{"x":128,"y":187},"e6":{"x":128,"y":156},"e7":{"x":128,"y":125},"e8":{"x":128,"y":94},"e9":{"x":128,"y":63},"e10":{"x":128,"y":32},"f1":{"x":159,"y":311},"f2":{"x":159,"y":280},"f3":{"x":159,"y":249},"f4":{"x":159,"y":218},"f5":{"x":159,"y":187},"f6":{"x":159,"y":156},"f7":{"x":159,"y":125},"f8":{"x":159,"y":94},"f9":{"x":159,"y":63},"f10":{"x":159,"y":32},"g1":{"x":190,"y":311},"g2":{"x":190,"y":280},"g3":{"x":190,"y":249},"g4":{"x":190,"y":218},"g5":{"x":190,"y":187},"g6":{"x":190,"y":156},"g7":{"x":190,"y":125},"g8":{"x":190,"y":94},"g9":{"x":190,"y":63},"g10":{"x":190,"y":32},"h1":{"x":221,"y":311},"h2":{"x":221,"y":280},"h3":{"x":221,"y":249},"h4":{"x":221,"y":218},"h5":{"x":221,"y":187},"h6":{"x":221,"y":156},"h7":{"x":221,"y":125},"h8":{"x":221,"y":94},"h9":{"x":221,"y":63},"h10":{"x":221,"y":32},"i1":{"x":252,"y":311},"i2":{"x":252,"y":280},"i3":{"x":252,"y":249},"i4":{"x":252,"y":218},"i5":{"x":252,"y":187},"i6":{"x":252,"y":156},"i7":{"x":252,"y":125},"i8":{"x":252,"y":94},"i9":{"x":252,"y":63},"i10":{"x":252,"y":32}},"size":28,"sprites":{"red-general":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-general.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-general":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-general.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-advisor":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-advisor":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-elephant":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png\" x=\"-5\" y=\"-5\" width=\"110\" height=\"110\" preserveAspectRatio=\"xMidYMid meet\"/>","black-elephant":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png\" x=\"-5\" y=\"-5\" width=\"110\" height=\"110\" preserveAspectRatio=\"xMidYMid meet\"/>","red-horse":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-horse":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-chariot":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png\" x=\"-5.5\" y=\"-7\" width=\"111\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-chariot":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png\" x=\"-5.5\" y=\"-7\" width=\"111\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-cannon":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png\" x=\"-11\" y=\"-11\" width=\"122\" height=\"122\" preserveAspectRatio=\"xMidYMid meet\"/>","black-cannon":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png\" x=\"-11\" y=\"-11\" width=\"122\" height=\"122\" preserveAspectRatio=\"xMidYMid meet\"/>","red-soldier":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>","red-soldier-crossed":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-crossed-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>","black-soldier":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>","black-soldier-crossed":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-crossed-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>"}}</script>
</div>

<script src="/assets/posts/benedict-xiangqi-balance/benedict-kernel.js"></script>

<p>棋盘下方的计数就是本文后面反复回到的那个数字。它从零开始，而且不会一直是零。</p>

<h2 id="这对象棋意味着什么">这对象棋意味着什么</h2>

<p><strong>永远没有残局。</strong>全部 32 个子整局都留在棋盘上。没有简化，也没有兑子，而且残局库在原理上就不可能存在，因为状态空间永远不会缩小。象棋的残局理论，也就是象棋理论的主体部分，完全无法迁移过来。</p>

<p><strong>炮不再走弱。</strong>象棋的炮需要炮架才能吃子，所以棋盘越空它越弱。这里棋盘永远不会空，一个炮在第 80 着和第 3 着一样危险。拟合出的数值也印证了这点：炮算出来是 657，而象棋的子力价值表通常把它放在 450 附近，已经接近车的 900，足以改变你使用它的方式。</p>

<p><strong>士/仕和象/相不再防守任何东西。</strong>它们存在的意义是防吃子，而这里没有吃子。它们仍然能封线、能当炮架，所以并非全无用处，但它们被设计出来要做的事已经全部消失。</p>

<p><strong>对局很短，而且没有人和棋。</strong>中位数 29 着，而象棋是 80 到 100 着。在最强设置下的 54 局里没有一局和棋，在 6,000 局完全随机走子中也没有出现一局，这是更强的版本：不是说强手在这里会避开和棋，而是局面除了走向分晓无处可去。一个没有子可兑、也没有残局可磨的游戏不可能后劲耗尽。</p>

<p><strong>大约 28% 的合法着法会立即输掉。</strong>这是下面那些对局共 1,696 着的平均值，值得说清楚，因为平均值并不代表典型局面：中位局面只有 10% 的着法是输着，而均值是被少数极其锋利的局面拉起来的。均值还会攀升，从一局前五分之一的 24% 升到最后五分之一的 37%。而不会出现的，是一个可以安心出子的平静开局阶段。就连前五分之一也平均有四分之一的着法立即败北。</p>

<h2 id="设计这个游戏">设计这个游戏</h2>

<p><strong>两个将/帅（黑/红）仍然不得照面。</strong>象棋禁止双方的将帅处在同一条纵线上且中间无子，我保留了这一条。另一种做法是把白脸将设为取胜条件，听起来更好但会崩：在 Benedict 规则下只有<strong>移动的</strong>那个子算数，所以把这条线让通并不算胜，结果就是两将对面而对局继续，直到有人把将沿着这条线挪一步来兑现胜利。</p>

<p>保留这条禁令不花任何代价，还带来了一个象棋没有的东西。被牵在将帅同一线上的棋子无法被强行拿掉，因为这里没有任何东西能拿掉任何东西，转化它也不能解放它，因为转化是原地换色。你可以赢下这个子，却仍然动不了它。只有将/帅（黑/红）离开这条线才能解放它，所以这个牵制持续的时间，正好等于牵制方把自己的将留在那里的时间。</p>

<p><strong>士/仕和象/相绑定的是它们所处的区域，而不是所有者的区域。</strong>一个被转化的士/仕会处在敌方九宫里，若按所有者绑定的规则，它就永远被冻在那里，这是一个死子，也是一条无聊的规则。绑定它所处的九宫，它就还能继续走。从起始阵形看，两种读法完全一致，因为每个士/仕本来就在自己的九宫里，所以这个推广不花任何代价，还把一个死子变成了攻击手。</p>

<p><strong>卒/兵绑定的是所有者，这是相反的判断。</strong>卒/兵的前进方向必须跟随当前的所有者，否则被转化的卒/兵就会永远朝着自己一方相反的方向行军。把这两条搞反，就是那种会悄无声息地毁掉整个游戏的 bug。</p>

<p><strong>和棋需要一个进展计时器。</strong>由于没有吃子，几乎每一着都是可逆的。单靠三次重复局面不够，所以计时器只在两类不可逆事件上重置：一次转化，或者一步卒/兵的移动。</p>

<h2 id="测试它">测试它</h2>

<p>现有的引擎都下不了这个。Pikafish、Fairy-Stockfish 以及我自己的迷雾引擎都把吃子规则写进了代码，而 Fairy-Stockfish 唯一的转化机制（<code class="language-plaintext highlighter-rouge">flipEnclosedPieces</code>）翻转的是被一次<em>落子</em>围住的棋子，黑白棋那种做法，是另一条规则。</p>

<p>于是：一个 Rust 写的 alpha-beta 引擎，带置换表、主要变例搜索、后期着法削减，以及针对转化的静态搜索。我没有直接搬象棋的子力价值，而是用 2,500 局自对弈的结果做逻辑回归拟合，在直接对抗赛中它打赢了我手工挑的那套数值。</p>

<p>我不打算引用拟合出的数字。早先的草稿引用了，并且把它们当作各棋子实际价值的测量结果来解读，而这超出了一个基于 8,000 个相关局面的逻辑回归能支撑的范围：早先只用四分之一数据做的拟合中，有几个系数的符号后来反了。留下来的是它认同的那个排序，也就是士/仕和象/相在这里几乎一文不值，而这一点根本不需要回归，因为它直接来自「没有东西需要防」这个事实。</p>

<p>规则内核是按链条验证的，这一点很重要，因为后来出问题的全在测量环节而不在规则。一个 JavaScript 原型与我本来就在用的象棋库 <code class="language-plaintext highlighter-rouge">elephantops</code> 做了差分测试，覆盖 720,947 次棋子几何比较，零处不一致。Rust 引擎在 1.13 亿个局面之内完全复现了那个内核的着法计数。一个 TypeScript 移植版复现了这两者。</p>

<p>有三个结果贯穿之后的每一次改动都成立，因为它们都不依赖引擎的判断：</p>

<table>
  <thead>
    <tr>
      <th>测试项</th>
      <th>结果</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>随机走子对随机走子，6,000 局</td>
      <td>先行方 <strong>50.1%</strong>，0 和棋</td>
    </tr>
    <tr>
      <td>从起始阵形出发的无削减证明搜索，208 亿节点</td>
      <td><strong>13 着之内没有必胜</strong></td>
    </tr>
    <tr>
      <td>立即败北的合法着法占比</td>
      <td><strong>均值 28%</strong>，中位数 10%，基于 1,696 着</td>
    </tr>
  </tbody>
</table>

<p>这三项在引擎变化时都不动，所以我比胜率更信任它们。</p>

<p><strong>这个引擎强到足以评判一个游戏吗？</strong>它每秒搜索约 160 万个局面，几秒内能到搜索深度 8 或 9。远远不及成熟的国际象棋引擎。但它不需要那么强。</p>

<p>上面三个结果完全不依赖它下得多好。一个是随机走子的对照，一个是证明，一个是合法着法的计数。这个证明值得说清楚，因为普通搜索给不出证明：这个引擎用了后期着法削减，靠后的着法搜得更浅，所以一次普通搜索没找到胜利，只说明它没有看遍所有地方。关掉削减和静态搜索，在将死阈值上把问题问成是非题，才真正构成证明，这就是上面那 13 着的含义。而 78% 这个数字，我检验的是这里真正要紧的性质，也就是引擎变强时它会不会变。它几乎不变：每着 30 万节点时是 77.8%，200 万节点时是 75.4%，两者相差七倍，而抽样误差上下有好几个百分点。</p>

<p>跨引擎强度的稳定性是我信任的检验，但单靠它还不够。这项测量的早期版本用六着随机开局库来制造对局多样性，得到 52.7%，并且在横跨同样十倍范围的三档引擎强度下都保持不变。它之所以稳定，是因为开局库正好在消耗被测量的那一个先手节奏：六着随机走子在任何一方引擎落子之前就把优势扔掉了，所以不管底下的游戏是什么样，结果都会漂到均势。一支坏了的温度计在每个房间都读出室温。上面的 78% 不用开局库，多样性来自评估值抖动。</p>

<p>更多算力能买到什么，范围有限而且相当清楚。位棋盘和更好的着法排序能到搜索深度 12 到 14，那是我在谈深层战术或真正的开局理论之前想达到的水平。学习式评估函数是昂贵的选项，而且大概是错的选项：我在其他变体上的两次早期尝试都在还没达到它们要替换的手工评估函数水平时就饱和了，而这两次失败都不是钱的问题。</p>

<p>所以本文描述的是俱乐部水平下的这个游戏。我保留下来的那些结论，在任何强度下都成立。</p>

<p>引擎、内核和测试框架一共几千行 Rust 和 TypeScript，都放在 GitHub 上：<a href="https://github.com/brianhliou/benedict-xiangqi">github.com/brianhliou/benedict-xiangqi</a>，连同那 54 局对局和完整的开局表。本文中的每一个数字都出自 <code class="language-plaintext highlighter-rouge">cargo run</code>。</p>

<h2 id="一步炮就决定了胜负">一步炮就决定了胜负</h2>

<p>先行方赢下 <strong>78%</strong> 的对局。测量方式是从起始阵形出发、不用开局库的同策略对局，并且让两种颜色轮流先行：每着 30 万节点时，红先得分 80.5%，黑先得分 75.0%，各 100 局；200 万节点时分别是 82.5% 和 68.3%，各 60 局。在两种算力预算下两个方向都远高于均势，所以优势跟着先手节奏走，而不是跟着颜色走，这正是它成为关于游戏本身而不是关于我的代码的事实的原因。在较高预算下红方看起来确实是这对搭配中更好的一半，但 60 局带着大约十二个百分点的误差，所以我暂时不会从中读出任何东西。</p>

<p>接着我把红方全部 42 个合法首着分别测了一遍，诊断结果的形状变了。</p>

<p>全部 42 个合法首着，每个 24 局，按红方随后的得分排序。</p>

<table>
  <thead>
    <tr>
      <th>着法</th>
      <th style="text-align: right">红方得分</th>
      <th> </th>
      <th>着法</th>
      <th style="text-align: right">红方得分</th>
      <th> </th>
      <th>着法</th>
      <th style="text-align: right">红方得分</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>c1a3</strong></td>
      <td style="text-align: right"><strong>0.0%</strong></td>
      <td> </td>
      <td>h1g3</td>
      <td style="text-align: right">25.0%</td>
      <td> </td>
      <td>a4a5</td>
      <td style="text-align: right">41.7%</td>
    </tr>
    <tr>
      <td><strong>e1e2</strong></td>
      <td style="text-align: right"><strong>0.0%</strong></td>
      <td> </td>
      <td>a1a3</td>
      <td style="text-align: right">27.1%</td>
      <td> </td>
      <td>g4g5</td>
      <td style="text-align: right">43.8%</td>
    </tr>
    <tr>
      <td><strong>g1i3</strong></td>
      <td style="text-align: right"><strong>0.0%</strong></td>
      <td> </td>
      <td>b3b2</td>
      <td style="text-align: right">27.1%</td>
      <td> </td>
      <td>b3b4</td>
      <td style="text-align: right">45.8%</td>
    </tr>
    <tr>
      <td>b3a3</td>
      <td style="text-align: right">4.2%</td>
      <td> </td>
      <td>h3h2</td>
      <td style="text-align: right">29.2%</td>
      <td> </td>
      <td>b3b7</td>
      <td style="text-align: right">50.0%</td>
    </tr>
    <tr>
      <td>b3c3</td>
      <td style="text-align: right">8.3%</td>
      <td> </td>
      <td>b3d3</td>
      <td style="text-align: right">29.2%</td>
      <td> </td>
      <td>d1e2</td>
      <td style="text-align: right">54.2%</td>
    </tr>
    <tr>
      <td>h1i3</td>
      <td style="text-align: right">12.5%</td>
      <td> </td>
      <td>i4i5</td>
      <td style="text-align: right">29.2%</td>
      <td> </td>
      <td>e4e5</td>
      <td style="text-align: right">54.2%</td>
    </tr>
    <tr>
      <td>h3f3</td>
      <td style="text-align: right">16.7%</td>
      <td> </td>
      <td>b3f3</td>
      <td style="text-align: right">33.3%</td>
      <td> </td>
      <td>a1a2</td>
      <td style="text-align: right">58.3%</td>
    </tr>
    <tr>
      <td>b3g3</td>
      <td style="text-align: right">18.8%</td>
      <td> </td>
      <td>b1a3</td>
      <td style="text-align: right">35.4%</td>
      <td> </td>
      <td>h3h7</td>
      <td style="text-align: right">60.4%</td>
    </tr>
    <tr>
      <td>h3c3</td>
      <td style="text-align: right">20.8%</td>
      <td> </td>
      <td>c1e3</td>
      <td style="text-align: right">35.4%</td>
      <td> </td>
      <td>h3h4</td>
      <td style="text-align: right">60.4%</td>
    </tr>
    <tr>
      <td>i1i2</td>
      <td style="text-align: right">20.8%</td>
      <td> </td>
      <td>b3e3</td>
      <td style="text-align: right">35.4%</td>
      <td> </td>
      <td>b3b6</td>
      <td style="text-align: right">70.8%</td>
    </tr>
    <tr>
      <td>h3g3</td>
      <td style="text-align: right">22.9%</td>
      <td> </td>
      <td>c4c5</td>
      <td style="text-align: right">35.4%</td>
      <td> </td>
      <td>f1e2</td>
      <td style="text-align: right">72.9%</td>
    </tr>
    <tr>
      <td>i1i3</td>
      <td style="text-align: right">25.0%</td>
      <td> </td>
      <td>h3e3</td>
      <td style="text-align: right">37.5%</td>
      <td> </td>
      <td>h3h5</td>
      <td style="text-align: right">79.2%</td>
    </tr>
    <tr>
      <td>h3i3</td>
      <td style="text-align: right">25.0%</td>
      <td> </td>
      <td>h3d3</td>
      <td style="text-align: right">39.6%</td>
      <td> </td>
      <td><strong>b3b5</strong></td>
      <td style="text-align: right"><strong>87.5%</strong></td>
    </tr>
    <tr>
      <td>g1e3</td>
      <td style="text-align: right">25.0%</td>
      <td> </td>
      <td>b1c3</td>
      <td style="text-align: right">41.7%</td>
      <td> </td>
      <td><strong>h3h6</strong></td>
      <td style="text-align: right"><strong>91.7%</strong></td>
    </tr>
  </tbody>
</table>

<p>最好的两个是同一个思路：把炮提到第五或第六横线。得分为零的那三个分别是一步象/相、一只马跳到边线，以及将/帅（黑/红）向中间上一步。</p>

<p>红方第一着的价值可以从零一直到 92%，而 42 个着法中有三个把 24 局全部输掉。所以那 78% 并不是「在这个游戏里一个先手节奏值 78%」，而是「引擎每次都能找到那唯一的强力开局」。</p>

<!-- Generated by scripts/gen-benedict-diagrams.mts in the mistboard repo.
     Do not hand-edit: re-run the generator. -->
<div class="xq-stepper" data-stepper="threat">
  <figure class="xq-step" data-step="0">
    <div class="xq-step-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle">开始</text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-b3-b5-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="49" y1="263" x2="49" y2="211" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-b3-b5-0)" /></g></svg></div>
  </figure>
  <figure class="xq-step" data-step="1" hidden="">
    <div class="xq-step-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle">b3b5之后</text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><circle cx="49" cy="46" r="6.5" fill="#15781B" opacity="0.85" /><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="187" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-h8-h5-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="235" y1="108" x2="235" y2="191" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-h8-h5-0)" /></g></svg></div>
  </figure>
  <figure class="xq-step" data-step="2" hidden="">
    <div class="xq-step-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle">h8h5之后</text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><circle cx="235" cy="325" r="6.5" fill="#15781B" opacity="0.85" /><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="187" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="187" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-b5-e5-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="49" y1="201" x2="132" y2="201" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-b5-e5-0)" /></g></svg></div>
  </figure>
  <figure class="xq-step" data-step="3" hidden="">
    <div class="xq-step-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle">b5e5获胜</text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><circle cx="142" cy="46" r="6.5" fill="#15781B" opacity="0.85" /><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="187" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="187" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg></g></svg></div>
  </figure>
  <div class="xq-step-nav">
    <button type="button" data-dir="-1" aria-label="上一局面">&#8592;</button>
    <span class="xq-step-count">1 / 4</span>
    <button type="button" data-dir="1" aria-label="下一局面">&#8594;</button>
  </div>
</div>

<p>象棋的炮需要在它和目标之间恰好有一个棋子。黑方的开局阵形免费提供了这个棋子，而且位置正好。这个威胁之所以存在，是因为象棋的起始阵形恰好摆在了 Benedict 规则能加以利用的地方。</p>

<h2 id="它下过的每一局">它下过的每一局</h2>

<p>最强设置下的全部 54 局，未经筛选。先行方赢了其中 46 局，而它输掉的那 8 局才是值得打开看的。</p>

<!-- Generated by scripts/gen-benedict-diagrams.mts. Do not hand-edit. -->
<div class="xq-browser">
  <div class="xq-browser-head">
    <label>对局 <select class="xq-browser-pick"></select></label>
    <span class="xq-browser-meta"></span>
  </div>
  <div class="xq-browser-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle"></text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text></g><g class="xq-browser-pieces" transform="translate(4 4)"></g></svg></div>
  <div class="xq-browser-nav">
    <button type="button" data-jump="start" aria-label="首个局面">&#124;&#9664;</button>
    <button type="button" data-step="-1" aria-label="后退一着">&#9664;</button>
    <span class="xq-browser-ply">0</span>
    <button type="button" data-step="1" aria-label="前进一着">&#9654;</button>
    <button type="button" data-jump="end" aria-label="末尾局面">&#9654;&#124;</button>
  </div>
  <script type="application/json" class="xq-browser-data">{"points":{"a1":{"x":4,"y":311},"a2":{"x":4,"y":280},"a3":{"x":4,"y":249},"a4":{"x":4,"y":218},"a5":{"x":4,"y":187},"a6":{"x":4,"y":156},"a7":{"x":4,"y":125},"a8":{"x":4,"y":94},"a9":{"x":4,"y":63},"a10":{"x":4,"y":32},"b1":{"x":35,"y":311},"b2":{"x":35,"y":280},"b3":{"x":35,"y":249},"b4":{"x":35,"y":218},"b5":{"x":35,"y":187},"b6":{"x":35,"y":156},"b7":{"x":35,"y":125},"b8":{"x":35,"y":94},"b9":{"x":35,"y":63},"b10":{"x":35,"y":32},"c1":{"x":66,"y":311},"c2":{"x":66,"y":280},"c3":{"x":66,"y":249},"c4":{"x":66,"y":218},"c5":{"x":66,"y":187},"c6":{"x":66,"y":156},"c7":{"x":66,"y":125},"c8":{"x":66,"y":94},"c9":{"x":66,"y":63},"c10":{"x":66,"y":32},"d1":{"x":97,"y":311},"d2":{"x":97,"y":280},"d3":{"x":97,"y":249},"d4":{"x":97,"y":218},"d5":{"x":97,"y":187},"d6":{"x":97,"y":156},"d7":{"x":97,"y":125},"d8":{"x":97,"y":94},"d9":{"x":97,"y":63},"d10":{"x":97,"y":32},"e1":{"x":128,"y":311},"e2":{"x":128,"y":280},"e3":{"x":128,"y":249},"e4":{"x":128,"y":218},"e5":{"x":128,"y":187},"e6":{"x":128,"y":156},"e7":{"x":128,"y":125},"e8":{"x":128,"y":94},"e9":{"x":128,"y":63},"e10":{"x":128,"y":32},"f1":{"x":159,"y":311},"f2":{"x":159,"y":280},"f3":{"x":159,"y":249},"f4":{"x":159,"y":218},"f5":{"x":159,"y":187},"f6":{"x":159,"y":156},"f7":{"x":159,"y":125},"f8":{"x":159,"y":94},"f9":{"x":159,"y":63},"f10":{"x":159,"y":32},"g1":{"x":190,"y":311},"g2":{"x":190,"y":280},"g3":{"x":190,"y":249},"g4":{"x":190,"y":218},"g5":{"x":190,"y":187},"g6":{"x":190,"y":156},"g7":{"x":190,"y":125},"g8":{"x":190,"y":94},"g9":{"x":190,"y":63},"g10":{"x":190,"y":32},"h1":{"x":221,"y":311},"h2":{"x":221,"y":280},"h3":{"x":221,"y":249},"h4":{"x":221,"y":218},"h5":{"x":221,"y":187},"h6":{"x":221,"y":156},"h7":{"x":221,"y":125},"h8":{"x":221,"y":94},"h9":{"x":221,"y":63},"h10":{"x":221,"y":32},"i1":{"x":252,"y":311},"i2":{"x":252,"y":280},"i3":{"x":252,"y":249},"i4":{"x":252,"y":218},"i5":{"x":252,"y":187},"i6":{"x":252,"y":156},"i7":{"x":252,"y":125},"i8":{"x":252,"y":94},"i9":{"x":252,"y":63},"i10":{"x":252,"y":32}},"size":28,"sprites":{"red-general":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-general.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-general":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-general.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-advisor":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-advisor":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-elephant":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png\" x=\"-5\" y=\"-5\" width=\"110\" height=\"110\" preserveAspectRatio=\"xMidYMid meet\"/>","black-elephant":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png\" x=\"-5\" y=\"-5\" width=\"110\" height=\"110\" preserveAspectRatio=\"xMidYMid meet\"/>","red-horse":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-horse":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png\" x=\"-7\" y=\"-7\" width=\"114\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-chariot":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png\" x=\"-5.5\" y=\"-7\" width=\"111\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","black-chariot":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png\" x=\"-5.5\" y=\"-7\" width=\"111\" height=\"114\" preserveAspectRatio=\"xMidYMid meet\"/>","red-cannon":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png\" x=\"-11\" y=\"-11\" width=\"122\" height=\"122\" preserveAspectRatio=\"xMidYMid meet\"/>","black-cannon":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png\" x=\"-11\" y=\"-11\" width=\"122\" height=\"122\" preserveAspectRatio=\"xMidYMid meet\"/>","red-soldier":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>","red-soldier-crossed":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#c30d0d\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/red-crossed-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>","black-soldier":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>","black-soldier-crossed":"<circle cx=\"50\" cy=\"50\" r=\"46\" fill=\"#fef0d7\" stroke=\"#202427\" stroke-width=\"2.8\"/><image href=\"/assets/posts/benedict-xiangqi-balance/pieces/black-crossed-soldier.png\" x=\"0\" y=\"0\" width=\"100\" height=\"100\" preserveAspectRatio=\"xMidYMid meet\"/>"},"games":[{"tag":"g1","result":"black","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b7","from":"b3","to":"b7","flipped":["b10","e7"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":27,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":44,"losing":37,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"a7a6","from":"a7","to":"a6","flipped":[],"legal":28,"losing":7,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P.........p......C..Cp.P.p.p.c..c.............rNbakabNr","move":"h6b6","from":"h6","to":"b6","flipped":["b8"],"legal":44,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P.........pC........Cp.P.p.p.C..c.............rNbakabNr","move":"a10a8","from":"a10","to":"a8","flipped":["b8"],"legal":25,"losing":8,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P.........pC........Cp.P.p.prc..c..............NbakabNr","move":"b6e6","from":"b6","to":"e6","flipped":["e8"],"legal":35,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P.........p...C.....Cp.P.p.prc..C..............NbakabNr","move":"i10i8","from":"i10","to":"i8","flipped":["e8"],"legal":20,"losing":1,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P.........p...C.....Cp.P.p.prc..c...r..........NbakabN.","move":"e6b6","from":"e6","to":"b6","flipped":["b8"],"legal":37,"losing":0,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P.........pC........Cp.P.p.prC..c...r..........NbakabN.","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":25,"losing":7,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P.........pCp.......C..P.p.prC..c...r..........NbakabN.","move":"b8d8","from":"b8","to":"d8","flipped":["i8"],"legal":32,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P.........pCp.......C..P.p.pr..Cc...R..........NbakabN.","move":"a8b8","from":"a8","to":"b8","flipped":["b10","b7","d8"],"legal":20,"losing":2,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P.........pCp.......c..P.p.p.r.cc...R..........nbakabN.","move":"b6b3","from":"b6","to":"b3","flipped":["b8"],"legal":30,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR..........C..B....P.P..pp.P.........p.p.......c..P.p.p.R.cc...R..........nbakabN.","move":"d8c8","from":"d8","to":"c8","flipped":["c4","i8"],"legal":32,"losing":1,"winning":0},{"side":"red","before":"RN.AKABNR..........C..B....P.p..pp.P.........p.p.......c..P.p.p.Rc.c...r..........nbakabN.","move":"b8a8","from":"b8","to":"a8","flipped":["a6","c8"],"legal":29,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR..........C..B....P.p..pp.P.........P.p.......c..P.p.pR.C.c...r..........nbakabN.","move":"b7b5","from":"b7","to":"b5","flipped":["b1"],"legal":31,"losing":2,"winning":0},{"side":"red","before":"Rn.AKABNR..........C..B....P.p..pp.P.c.......P.p..........P.p.pR.C.c...r..........nbakabN.","move":"a8b8","from":"a8","to":"b8","flipped":["b10","b5"],"legal":32,"losing":29,"winning":0},{"side":"black","before":"Rn.AKABNR..........C..B....P.p..pp.P.C.......P.p..........P.p.p.RC.c...r..........NbakabN.","move":"b1d2","from":"b1","to":"d2","flipped":["f1","b3"],"legal":27,"losing":7,"winning":0},{"side":"red","before":"R..AKaBNR...n......c..B....P.p..pp.P.C.......P.p..........P.p.p.RC.c...r..........NbakabN.","move":"d1e2","from":"d1","to":"e2","flipped":["f1"],"legal":38,"losing":37,"winning":0},{"side":"black","before":"R...KABNR...nA.....c..B....P.p..pp.P.C.......P.p..........P.p.p.RC.c...r..........NbakabN.","move":"b3b2","from":"b3","to":"b2","flipped":["b8","e2"],"legal":32,"losing":7,"winning":0},{"side":"red","before":"R...KABNR.c.na........B....P.p..pp.P.C.......P.p..........P.p.p.rC.c...r..........NbakabN.","move":"a1a2","from":"a1","to":"a2","flipped":["b2"],"legal":35,"losing":3,"winning":0},{"side":"black","before":"....KABNRRC.na........B....P.p..pp.P.C.......P.p..........P.p.p.rC.c...r..........NbakabN.","move":"b8b9","from":"b8","to":"b9","flipped":["b10","b5"],"legal":34,"losing":7,"winning":0},{"side":"red","before":"....KABNRRC.na........B....P.p..pp.P.c.......P.p..........P.p.p..C.c...r.r........nbakabN.","move":"b2b1","from":"b2","to":"b1","flipped":["b9"],"legal":25,"losing":1,"winning":0},{"side":"black","before":".C..KABNRR..na........B....P.p..pp.P.c.......P.p..........P.p.p..C.c...r.R........nbakabN.","move":"i8i9","from":"i8","to":"i9","flipped":["b9"],"legal":42,"losing":39,"winning":0},{"side":"red","before":".C..KABNRR..na........B....P.p..pp.P.c.......P.p..........P.p.p..C.c.....r......r.nbakabN.","move":"a2b2","from":"a2","to":"b2","flipped":["b5","d2"],"legal":30,"losing":3,"winning":0},{"side":"black","before":".C..KABNR.R.Na........B....P.p..pp.P.C.......P.p..........P.p.p..C.c.....r......r.nbakabN.","move":"b9b8","from":"b9","to":"b8","flipped":["b5","c8"],"legal":41,"losing":7,"winning":0},{"side":"red","before":".C..KABNR.R.Na........B....P.p..pp.P.c.......P.p..........P.p.p.rc.c............r.nbakabN.","move":"d2e4","from":"d2","to":"e4","flipped":[],"legal":24,"losing":1,"winning":0},{"side":"black","before":".C..KABNR.R..a........B....P.p.Npp.P.c.......P.p..........P.p.p.rc.c............r.nbakabN.","move":"c4d4","from":"c4","to":"d4","flipped":["e4"],"legal":53,"losing":1,"winning":0},{"side":"red","before":".C..KABNR.R..a........B....P..pnpp.P.c.......P.p..........P.p.p.rc.c............r.nbakabN.","move":"h10g8","from":"h10","to":"g8","flipped":["f10","i9","i7"],"legal":23,"losing":1,"winning":0},{"side":"black","before":".C..KABNR.R..a........B....P..pnpp.P.c.......P.p..........P.p.P.rc.c.N..........R.nbakAb..","move":"b8b9","from":"b8","to":"b9","flipped":["i9"],"legal":39,"losing":35,"winning":0},{"side":"red","before":".C..KABNR.R..a........B....P..pnpp.P.c.......P.p..........P.p.P..c.c.N...r......r.nbakAb..","move":"i7i8","from":"i7","to":"i8","flipped":["i9"],"legal":26,"losing":1,"winning":0},{"side":"black","before":".C..KABNR.R..a........B....P..pnpp.P.c.......P.p..........P.p....c.c.N.P.r......R.nbakAb..","move":"b9e9","from":"b9","to":"e9","flipped":["i9"],"legal":45,"losing":35,"winning":0},{"side":"red","before":".C..KABNR.R..a........B....P..pnpp.P.c.......P.p..........P.p....c.c.N.P....r...r.nbakAb..","move":"b1c1","from":"b1","to":"c1","flipped":["c8"],"legal":24,"losing":1,"winning":0},{"side":"black","before":"..C.KABNR.R..a........B....P..pnpp.P.c.......P.p..........P.p....C.c.N.P....r...r.nbakAb..","move":"b5i5","from":"b5","to":"i5","flipped":["i1"],"legal":41,"losing":2,"winning":0},{"side":"red","before":"..C.KABNr.R..a........B....P..pnpp.P........cP.p..........P.p....C.c.N.P....r...r.nbakAb..","move":"b2b5","from":"b2","to":"b5","flipped":["b10","i5"],"legal":35,"losing":1,"winning":0},{"side":"black","before":"..C.KABNr....a........B....P..pnpp.P.R......CP.p..........P.p....C.c.N.P....r...r.NbakAb..","move":"e9b9","from":"e9","to":"b9","flipped":["b10","b5"],"legal":28,"losing":2,"winning":0},{"side":"red","before":"..C.KABNr....a........B....P..pnpp.P.r......CP.p..........P.p....C.c.N.P.r......r.nbakAb..","move":"i5i7","from":"i5","to":"i7","flipped":["i9","i1"],"legal":34,"losing":6,"winning":0},{"side":"black","before":"..C.KABNR....a........B....P..pnpp.P.r.......P.p..........P.p.C..C.c.N.P.r......R.nbakAb..","move":"b9d9","from":"b9","to":"d9","flipped":["i9"],"legal":42,"losing":34,"winning":0},{"side":"red","before":"..C.KABNR....a........B....P..pnpp.P.r.......P.p..........P.p.C..C.c.N.P...r....r.nbakAb..","move":"f10e9","from":"f10","to":"e9","flipped":["d10"],"legal":31,"losing":6,"winning":0},{"side":"black","before":"..C.KABNR....a........B....P..pnpp.P.r.......P.p..........P.p.C..C.c.N.P...rA...r.nbAk.b..","move":"b5b8","from":"b5","to":"b8","flipped":["c8"],"legal":44,"losing":2,"winning":0},{"side":"red","before":"..C.KABNR....a........B....P..pnpp.P.........P.p..........P.p.C.rc.c.N.P...rA...r.nbAk.b..","move":"a6b6","from":"a6","to":"b6","flipped":["c6"],"legal":28,"losing":6,"winning":0},{"side":"black","before":"..C.KABNR....a........B....P..pnpp.P..........PP..........P.p.C.rc.c.N.P...rA...r.nbAk.b..","move":"c8c9","from":"c8","to":"c9","flipped":["c1","e9"],"legal":33,"losing":0,"winning":0},{"side":"red","before":"..c.KABNR....a........B....P..pnpp.P..........PP..........P.p.C.r..c.N.P..cra...r.nbAk.b..","move":"i1i2","from":"i1","to":"i2","flipped":["e2"],"legal":20,"losing":1,"winning":0},{"side":"black","before":"..c.KABN.....A...R....B....P..pnpp.P..........PP..........P.p.C.r..c.N.P..cra...r.nbAk.b..","move":"c9c8","from":"c9","to":"c8","flipped":["g8"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"..c.KABN.....A...R....B....P..pnpp.P..........PP..........P.p.C.rc.c.n.P...ra...r.nbAk.b..","move":"e7f7","from":"e7","to":"f7","flipped":["g7"],"legal":24,"losing":2,"winning":0},{"side":"black","before":"..c.KABN.....A...R....B....P..pnpp.P..........PP...........PP.C.rc.c.n.P...ra...r.nbAk.b..","move":"d4d3","from":"d4","to":"d3","flipped":["e3"],"legal":45,"losing":0,"winning":0},{"side":"red","before":"..c.KABN.....A...R...pb....P...npp.P..........PP...........PP.C.rc.c.n.P...ra...r.nbAk.b..","move":"i7h7","from":"i7","to":"h7","flipped":[],"legal":24,"losing":2,"winning":0},{"side":"black","before":"..c.KABN.....A...R...pb....P...npp.P..........PP...........PPC..rc.c.n.P...ra...r.nbAk.b..","move":"e4f6","from":"e4","to":"f6","flipped":["h7"],"legal":50,"losing":45,"winning":0},{"side":"red","before":"..c.KABN.....A...R...pb....P....pp.P..........PP..n........PPc..rc.c.n.P...ra...r.nbAk.b..","move":"f7f8","from":"f7","to":"f8","flipped":["e8","g8"],"legal":20,"losing":3,"winning":0},{"side":"black","before":"..c.KABN.....A...R...pb....P....pp.P..........PP..n.........Pc..rc.CPN.P...ra...r.nbAk.b..","move":"e9f10","from":"e9","to":"f10","flipped":[],"legal":50,"losing":47,"winning":0},{"side":"red","before":"..c.KABN.....A...R...pb....P....pp.P..........PP..n.........Pc..rc.CPN.P...r....r.nbAkab..","move":"d10e9","from":"d10","to":"e9","flipped":["f10"],"legal":29,"losing":2,"winning":0},{"side":"black","before":"..c.KABN.....A...R...pb....P....pp.P..........PP..n.........Pc..rc.CPN.P...rA...r.nb.kAb..","move":"d9d8","from":"d9","to":"d8","flipped":["e8"],"legal":49,"losing":48,"winning":0},{"side":"red","before":"..c.KABN.....A...R...pb....P....pp.P..........PP..n.........Pc..rcrcPN.P....A...r.nb.kAb..","move":"i2h2","from":"i2","to":"h2","flipped":["h7"],"legal":23,"losing":3,"winning":0},{"side":"black","before":"..c.KABN.....A..R....pb....P....pp.P..........PP..n.........PC..rcrcPN.P....A...r.nb.kAb..","move":"d3d2","from":"d3","to":"d2","flipped":["e2"],"legal":40,"losing":0,"winning":0},{"side":"red","before":"..c.KABN....pa..R.....b....P....pp.P..........PP..n.........PC..rcrcPN.P....A...r.nb.kAb..","move":"e1d1","from":"e1","to":"d1","flipped":["d2"],"legal":28,"losing":27,"winning":0},{"side":"black","before":"..cK.ABN....Pa..R.....b....P....pp.P..........PP..n.........PC..rcrcPN.P....A...r.nb.kAb..","move":"d8d9","from":"d8","to":"d9","flipped":["d2","e9"],"legal":40,"losing":0,"winning":0},{"side":"red","before":"..cK.ABN....pa..R.....b....P....pp.P..........PP..n.........PC..rc.cPN.P...ra...r.nb.kAb..","move":"c6d6","from":"c6","to":"d6","flipped":[],"legal":27,"losing":26,"winning":0},{"side":"black","before":"..cK.ABN....pa..R.....b....P....pp.P..........P.P.n.........PC..rc.cPN.P...ra...r.nb.kAb..","move":"f6e4","from":"f6","to":"e4","flipped":["d6"],"legal":51,"losing":0,"winning":0},{"side":"red","before":"..cK.ABN....pa..R.....b....P...npp.P..........P.p...........PC..rc.cPN.P...ra...r.nb.kAb..","move":"h2f2","from":"h2","to":"f2","flipped":["f4","e2"],"legal":26,"losing":26,"winning":0},{"side":"black","before":"..cK.ABN....pAR.......b....P...nPp.P..........P.p...........PC..rc.cPN.P...ra...r.nb.kAb..","move":"e4c3","from":"e4","to":"c3","flipped":[],"legal":46,"losing":0,"winning":1,"after":"..cK.ABN....pAR.....n.b....P....Pp.P..........P.p...........PC..rc.cPN.P...ra...r.nb.kAb.."}]},{"tag":"g2","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c.....a....rnbak.bNr","move":"b3h3","from":"b3","to":"h3","flipped":["h8"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.c.....C.....a....rnbak.bNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":32,"losing":26,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.c..b..C.....a....rn.ak.bNr","move":"h8f8","from":"h8","to":"f8","flipped":["b8"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.C..bC.......a....rn.ak.bNr","move":"e9f10","from":"e9","to":"f10","flipped":[],"legal":19,"losing":6,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.C..bC............rn.akabNr","move":"h6f6","from":"h6","to":"f6","flipped":["f10"],"legal":66,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P..............C...p.p.p.p.p.C..bC............rn.akAbNr","move":"b10d9","from":"b10","to":"d9","flipped":["f10","f8","b8"],"legal":18,"losing":5,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P..............C...p.p.p.p.p.c..bc......n.....r..akabNr","move":"f6i6","from":"f6","to":"i6","flipped":["i10"],"legal":50,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.................Cp.p.p.p.p.c..bc......n.....r..akabNR","move":"f8f6","from":"f8","to":"f6","flipped":[],"legal":36,"losing":2,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P..............c..Cp.p.p.p.p.c..b.......n.....r..akabNR","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":42,"losing":37,"winning":0},{"side":"black","before":"RNBAKA.NR.............B..C.P.P.P.P.P..............c..Cp.p.p.p.p.c..b.......n.....r..akabNR","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":41,"losing":1,"winning":0},{"side":"red","before":"RNBAKA.NR.............B..C.P.P.P.P.P..............c..Cp.p.p.p.p.c..b.......na....r...kabNR","move":"h3h9","from":"h3","to":"h9","flipped":["d9"],"legal":38,"losing":3,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P.P.P.P..............c..Cp.p.p.p.p.c..b.......Na..C.r...kabNR","move":"b8b5","from":"b8","to":"b5","flipped":[],"legal":40,"losing":2,"winning":0},{"side":"red","before":"RNBAKA.NR.............B....P.P.P.P.P.c............c..Cp.p.p.p.p....b.......Na..C.r...kabNR","move":"h9h5","from":"h9","to":"h5","flipped":[],"legal":38,"losing":3,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P.P.P.P.c.....C......c..Cp.p.p.p.p....b.......Na....r...kabNR","move":"b5a5","from":"b5","to":"a5","flipped":["a1"],"legal":44,"losing":3,"winning":0},{"side":"red","before":"rNBAKA.NR.............B....P.P.P.P.Pc......C......c..Cp.p.p.p.p....b.......Na....r...kabNR","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":41,"losing":4,"winning":0},{"side":"black","before":"rNBAKA.NR.............B....P.P.P.P.Pc......C......c..Cp.p.p.P.p....b...N...Na....r...kab.R","move":"e8g6","from":"e8","to":"g6","flipped":["i8"],"legal":37,"losing":35,"winning":0},{"side":"red","before":"rNBAKA.NR.............B....P.P.P.P.Pc......C......cb.Cp.p.p.P.p........n...Na....r...kab.R","move":"i6h6","from":"i6","to":"h6","flipped":["f6"],"legal":42,"losing":4,"winning":0},{"side":"black","before":"rNBAKA.NR.............B....P.P.P.P.Pc......C......CbC.p.p.p.P.p........n...Na....r...kab.R","move":"a1a2","from":"a1","to":"a2","flipped":["a4"],"legal":26,"losing":5,"winning":0},{"side":"red","before":".NBAKA.NRr............B....p.P.P.P.Pc......C......CbC.p.p.p.P.p........n...Na....r...kab.R","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":52,"losing":48,"winning":0},{"side":"black","before":".NBAK..NRr...A........B....p.P.P.P.Pc......C......CbC.p.p.p.P.p........n...Na....r...kab.R","move":"a2d2","from":"a2","to":"d2","flipped":["d9","d1","e2"],"legal":31,"losing":5,"winning":0},{"side":"red","before":".NBaK..NR...ra........B....p.P.P.P.Pc......C......CbC.p.p.p.P.p........n...na....r...kab.R","move":"i10i9","from":"i10","to":"i9","flipped":["i8","e9"],"legal":49,"losing":0,"winning":0},{"side":"black","before":".NBaK..NR...ra........B....p.P.P.P.Pc......C......CbC.p.p.p.P.p........N...nA...Rr...kab..","move":"d2d8","from":"d2","to":"d8","flipped":["i8"],"legal":35,"losing":33,"winning":0},{"side":"red","before":".NBaK..NR....a........B....p.P.P.P.Pc......C......CbC.p.p.p.P.p...r....n...nA...Rr...kab..","move":"e9d10","from":"e9","to":"d10","flipped":[],"legal":53,"losing":0,"winning":0},{"side":"black","before":".NBaK..NR....a........B....p.P.P.P.Pc......C......CbC.p.p.p.P.p...r....n...n....Rr..Akab..","move":"d8f8","from":"d8","to":"f8","flipped":["f6"],"legal":41,"losing":41,"winning":0},{"side":"red","before":".NBaK..NR....a........B....p.P.P.P.Pc......C......cbC.p.p.p.P.p.....r..n...n....Rr..Akab..","move":"h5e5","from":"h5","to":"e5","flipped":[],"legal":40,"losing":0,"winning":2,"after":".NBaK..NR....a........B....p.P.P.P.Pc...C.........cbC.p.p.p.P.p.....r..n...n....Rr..Akab.."}]},{"tag":"g3","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c.....c..........rnbakabNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":38,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c..b..c..........rn.akabNr","move":"b3h3","from":"b3","to":"h3","flipped":["h8"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.......C..........p.p.p.p.p.c..b..C..........rn.akabNr","move":"b8b6","from":"b8","to":"b6","flipped":[],"legal":29,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P.......C..c.......p.p.p.p.p....b..C..........rn.akabNr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":49,"losing":43,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P.......C..c.......p.p.P.p.p....b..C..........rn.akabNr","move":"b6e6","from":"b6","to":"e6","flipped":["e3"],"legal":33,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR.............c....P.P.P.P.P.......C.....c....p.p.P.p.p....b..C..........rn.akabNr","move":"a1a3","from":"a1","to":"a3","flipped":["e3"],"legal":41,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR.........R...C....P.P.P.P.P.......C.....c....p.p.P.p.p....b..C..........rn.akabNr","move":"e6a6","from":"e6","to":"a6","flipped":["a3"],"legal":27,"losing":1,"winning":0},{"side":"red","before":".NBAKABNR.........r...C....P.P.P.P.P.......C.c........p.p.P.p.p....b..C..........rn.akabNr","move":"a4a5","from":"a4","to":"a5","flipped":["a6"],"legal":45,"losing":8,"winning":0},{"side":"black","before":".NBAKABNR.........r...C......P.P.P.PP......C.C........p.p.P.p.p....b..C..........rn.akabNr","move":"a3d3","from":"a3","to":"d3","flipped":["d1","e3"],"legal":23,"losing":4,"winning":0},{"side":"red","before":".NBaKABNR............rc......P.P.P.PP......C.C........p.p.P.p.p....b..C..........rn.akabNr","move":"e7f7","from":"e7","to":"f7","flipped":["g7"],"legal":44,"losing":1,"winning":0},{"side":"black","before":".NBaKABNR............rc......P.P.P.PP......C.C........p.p..PP.p....b..C..........rn.akabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":31,"losing":27,"winning":0},{"side":"red","before":".NBaKABNR............rc......P.P.P.PP......C.C........p.p..PP.p....b..C.....a....rn.ak.bNr","move":"f1e2","from":"f1","to":"e2","flipped":["d3","d1"],"legal":46,"losing":1,"winning":0},{"side":"black","before":".NBAK.BNR....A.......Rc......P.P.P.PP......C.C........p.p..PP.p....b..C.....a....rn.ak.bNr","move":"e3h3","from":"e3","to":"h3","flipped":["h8"],"legal":20,"losing":6,"winning":0},{"side":"red","before":".NBAK.BNR....A.......R...c...P.P.P.PP......C.C........p.p..PP.p....b..c.....a....rn.ak.bNr","move":"d3g3","from":"d3","to":"g3","flipped":["h3"],"legal":54,"losing":42,"winning":0},{"side":"black","before":".NBAK.BNR....A..........RC...P.P.P.PP......C.C........p.p..PP.p....b..c.....a....rn.ak.bNr","move":"h8h7","from":"h8","to":"h7","flipped":["h3","f7"],"legal":22,"losing":6,"winning":0},{"side":"red","before":".NBAK.BNR....A..........Rc...P.P.P.PP......C.C........p.p..pPcp....b........a....rn.ak.bNr","move":"h10g8","from":"h10","to":"g8","flipped":["i7","e9"],"legal":44,"losing":2,"winning":0},{"side":"black","before":".NBAK.BNR....A..........Rc...P.P.P.PP......C.C........p.p..pPcP....b.N......A....rn.ak.b.r","move":"g10i8","from":"g10","to":"i8","flipped":[],"legal":21,"losing":3,"winning":0},{"side":"red","before":".NBAK.BNR....A..........Rc...P.P.P.PP......C.C........p.p..pPcP....b.N.b....A....rn.ak...r","move":"g3b3","from":"g3","to":"b3","flipped":["b10","h3"],"legal":48,"losing":2,"winning":0},{"side":"black","before":".NBAK.BNR....A.....R.....C...P.P.P.PP......C.C........p.p..pPcP....b.N.b....A....rN.ak...r","move":"h7h6","from":"h7","to":"h6","flipped":["h3"],"legal":17,"losing":4,"winning":0},{"side":"red","before":".NBAK.BNR....A.....R.....c...P.P.P.PP......C.C......c.p.p..pP.P....b.N.b....A....rN.ak...r","move":"i1i3","from":"i1","to":"i3","flipped":["h3"],"legal":57,"losing":47,"winning":0},{"side":"black","before":".NBAK.BN.....A.....R.....CR..P.P.P.PP......C.C......c.p.p..pP.P....b.N.b....A....rN.ak...r","move":"h6h7","from":"h6","to":"h7","flipped":["h3"],"legal":25,"losing":4,"winning":0},{"side":"red","before":".NBAK.BN.....A.....R.....cR..P.P.P.PP......C.C........p.p..pPcP....b.N.b....A....rN.ak...r","move":"b3g3","from":"b3","to":"g3","flipped":["h3"],"legal":56,"losing":43,"winning":0},{"side":"black","before":".NBAK.BN.....A..........RCR..P.P.P.PP......C.C........p.p..pPcP....b.N.b....A....rN.ak...r","move":"h7h10","from":"h7","to":"h10","flipped":["h3"],"legal":17,"losing":4,"winning":0},{"side":"red","before":".NBAK.BN.....A..........RcR..P.P.P.PP......C.C........p.p..pP.P....b.N.b....A....rN.ak..cr","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":53,"losing":2,"winning":0},{"side":"black","before":".NBAK.BN.....A..........RcR..P.P.P.PP......C.C........p.P..pP.PN...b.N.b....A....r..ak..cr","move":"a10a9","from":"a10","to":"a9","flipped":["a8","e9"],"legal":19,"losing":18,"winning":0},{"side":"red","before":".NBAK.BN.....A..........RcR..P.P.P.PP......C.C........p.P..pP.Pn...b.N.br...a.......ak..cr","move":"g8f10","from":"g8","to":"f10","flipped":["e8"],"legal":50,"losing":2,"winning":0},{"side":"black","before":".NBAK.BN.....A..........RcR..P.P.P.PP......C.C........p.P..pP.Pn...B...br...a.......akN.cr","move":"i8g10","from":"i8","to":"g10","flipped":["e8"],"legal":18,"losing":2,"winning":0},{"side":"red","before":".NBAK.BN.....A..........RcR..P.P.P.PP......C.C........p.P..pP.Pn...b....r...a.......akNbcr","move":"h5h9","from":"h5","to":"h9","flipped":["a9"],"legal":50,"losing":1,"winning":0},{"side":"black","before":".NBAK.BN.....A..........RcR..P.P.P.PP........C........p.P..pP.Pn...b....R...a..C....akNbcr","move":"a8c9","from":"a8","to":"c9","flipped":[],"legal":14,"losing":3,"winning":0},{"side":"red","before":".NBAK.BN.....A..........RcR..P.P.P.PP........C........p.P..pP.P....b....R.n.a..C....akNbcr","move":"a9b9","from":"a9","to":"b9","flipped":["c9"],"legal":49,"losing":1,"winning":0},{"side":"black","before":".NBAK.BN.....A..........RcR..P.P.P.PP........C........p.P..pP.P....b.....RN.a..C....akNbcr","move":"f7f6","from":"f7","to":"f6","flipped":[],"legal":13,"losing":3,"winning":0},{"side":"red","before":".NBAK.BN.....A..........RcR..P.P.P.PP........C....p...p.P...P.P....b.....RN.a..C....akNbcr","move":"c9b7","from":"c9","to":"b7","flipped":[],"legal":54,"losing":1,"winning":0},{"side":"black","before":".NBAK.BN.....A..........RcR..P.P.P.PP........C....p...pNP...P.P....b.....R..a..C....akNbcr","move":"h3h6","from":"h3","to":"h6","flipped":["a6"],"legal":14,"losing":14,"winning":0},{"side":"red","before":".NBAK.BN.....A..........R.R..P.P.P.PP........c....p.c.pNP...P.P....b.....R..a..C....akNbcr","move":"b7c9","from":"b7","to":"c9","flipped":[],"legal":45,"losing":3,"winning":1,"after":".NBAK.BN.....A..........R.R..P.P.P.PP........c....p.c.p.P...P.P....b.....RN.a..C....akNbcr"}]},{"tag":"g4","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNB.KABNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.....C.P.P.P.P.P.c................p.p.p.p.p.......c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":38,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c.....C..........p.p.p.p.p.......c..........rnbakabNr","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":42,"losing":34,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c.....C..........p.p.p.p.p.......c.....a....rnb.kabNr","move":"h5i5","from":"h5","to":"i5","flipped":["i10"],"legal":42,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c......C.........p.p.p.p.p.......c.....a....rnb.kabNR","move":"h8i8","from":"h8","to":"i8","flipped":["i5"],"legal":46,"losing":3,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c......c.........p.p.p.p.p........c....a....rnb.kabNR","move":"h10g8","from":"h10","to":"g8","flipped":["f10","i7","e9","e7"],"legal":30,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c......c.........p.p.P.p.P......N.c....A....rnb.kAb.R","move":"i5i6","from":"i5","to":"i6","flipped":["i1"],"legal":34,"losing":0,"winning":0},{"side":"red","before":"RnB.KABNr....A.....C.......P.P.P.P.P.c...............cp.p.P.p.P......N.c....A....rnb.kAb.R","move":"g8h10","from":"g8","to":"h10","flipped":["i8"],"legal":38,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNr....A.....C.......P.P.P.P.P.c...............cp.p.P.p.P........C....A....rnb.kAbNR","move":"a10a8","from":"a10","to":"a8","flipped":["i8"],"legal":37,"losing":32,"winning":0},{"side":"red","before":"RnB.KABNr....A.....C.......P.P.P.P.P.c...............cp.p.P.p.Pr.......c....A.....nb.kAbNR","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":36,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNr....A.....C.......P.P.P.P.P.c...............cp.p.P.p.Pr.......C....A...R.nb.kAbN.","move":"a8c8","from":"a8","to":"c8","flipped":["i8"],"legal":42,"losing":31,"winning":0},{"side":"red","before":"RnB.KABNr....A.....C.......P.P.P.P.P.c...............cp.p.P.p.P..r.....c....A...R.nb.kAbN.","move":"e9d8","from":"e9","to":"d8","flipped":[],"legal":39,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNr....A.....C.......P.P.P.P.P.c...............cp.p.P.p.P..rA....c........R.nb.kAbN.","move":"c8c9","from":"c8","to":"c9","flipped":["i9"],"legal":42,"losing":41,"winning":0},{"side":"red","before":"RnB.KABNr....A.....C.......P.P.P.P.P.c...............cp.p.P.p.P...A....c..r.....r.nb.kAbN.","move":"b3i3","from":"b3","to":"i3","flipped":["i6"],"legal":34,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNr....A............CP.P.P.P.P.c...............Cp.p.P.p.P...A....c..r.....r.nb.kAbN.","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":46,"losing":40,"winning":0},{"side":"red","before":"RnB.KABNr....A............CP.P.P.P.P.c.............p.Cp.p.P...P...A....c..r.....r.nb.kAbN.","move":"i6i5","from":"i6","to":"i5","flipped":["i8"],"legal":33,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNr....A............CP.P.P.P.P.c......C......p..p.p.P...P...A....C..r.....r.nb.kAbN.","move":"b5h5","from":"b5","to":"h5","flipped":[],"legal":41,"losing":34,"winning":0},{"side":"red","before":"RnB.KABNr....A............CP.P.P.P.P.......cC......p..p.p.P...P...A....C..r.....r.nb.kAbN.","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":35,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNr....A............CP.P.P.P.P.......cC......p..p.p.....P...AP...C..r.....r.nb.kAbN.","move":"i9e9","from":"i9","to":"e9","flipped":["e8"],"legal":39,"losing":37,"winning":0},{"side":"red","before":"RnB.KABNr....A............CP.P.P.P.P.......cC......p..p.p.....P...Ap...C..r.r.....nb.kAbN.","move":"c1a3","from":"c1","to":"a3","flipped":[],"legal":31,"losing":4,"winning":0},{"side":"black","before":"Rn..KABNr....A....B.......CP.P.P.P.P.......cC......p..p.p.....P...Ap...C..r.r.....nb.kAbN.","move":"h5h2","from":"h5","to":"h2","flipped":[],"legal":34,"losing":2,"winning":0},{"side":"red","before":"Rn..KABNr....A..c.B.......CP.P.P.P.P........C......p..p.p.....P...Ap...C..r.r.....nb.kAbN.","move":"i3e3","from":"i3","to":"e3","flipped":["e8"],"legal":36,"losing":1,"winning":0},{"side":"black","before":"Rn..KABNr....A..c.B...C....P.P.P.P.P........C......p..p.p.....P...AP...C..r.r.....nb.kAbN.","move":"h2h5","from":"h2","to":"h5","flipped":[],"legal":30,"losing":6,"winning":0},{"side":"red","before":"Rn..KABNr....A....B...C....P.P.P.P.P.......cC......p..p.p.....P...AP...C..r.r.....nb.kAbN.","move":"i8i9","from":"i8","to":"i9","flipped":["c9"],"legal":30,"losing":1,"winning":0},{"side":"black","before":"Rn..KABNr....A....B...C....P.P.P.P.P.......cC......p..p.p.....P...AP......R.r...C.nb.kAbN.","move":"h5h9","from":"h5","to":"h9","flipped":["c9"],"legal":30,"losing":6,"winning":0},{"side":"red","before":"Rn..KABNr....A....B...C....P.P.P.P.P........C......p..p.p.....P...AP......r.r..cC.nb.kAbN.","move":"i5e5","from":"i5","to":"e5","flipped":["e9"],"legal":35,"losing":1,"winning":0},{"side":"black","before":"Rn..KABNr....A....B...C....P.P.P.P.P....C..........p..p.p.....P...AP......r.R..cC.nb.kAbN.","move":"c9a9","from":"c9","to":"a9","flipped":["e9"],"legal":24,"losing":1,"winning":0},{"side":"red","before":"Rn..KABNr....A....B...C....P.P.P.P.P....C..........p..p.p.....P...AP....r...r..cC.nb.kAbN.","move":"e5i5","from":"e5","to":"i5","flipped":["i1"],"legal":36,"losing":1,"winning":0},{"side":"black","before":"Rn..KABNR....A....B...C....P.P.P.P.P........C......p..p.p.....P...AP....r...r..cC.nb.kAbN.","move":"g6g5","from":"g6","to":"g5","flipped":["g4"],"legal":28,"losing":6,"winning":0},{"side":"red","before":"Rn..KABNR....A....B...C....P.P.P.p.P......p.C.........p.p.....P...AP....r...r..cC.nb.kAbN.","move":"i5i6","from":"i5","to":"i6","flipped":[],"legal":29,"losing":1,"winning":0},{"side":"black","before":"Rn..KABNR....A....B...C....P.P.P.p.P......p..........Cp.p.....P...AP....r...r..cC.nb.kAbN.","move":"b1d2","from":"b1","to":"d2","flipped":["e4","c4"],"legal":32,"losing":6,"winning":0},{"side":"red","before":"R...KABNR...nA....B...C....P.p.p.p.P......p..........Cp.p.....P...AP....r...r..cC.nb.kAbN.","move":"a1d1","from":"a1","to":"d1","flipped":["d2"],"legal":38,"losing":2,"winning":0},{"side":"black","before":"...RKABNR...NA....B...C....P.p.p.p.P......p..........Cp.p.....P...AP....r...r..cC.nb.kAbN.","move":"c4b4","from":"c4","to":"b4","flipped":["a4"],"legal":35,"losing":6,"winning":0},{"side":"red","before":"...RKABNR...NA....B...C....pp..p.p.P......p..........Cp.p.....P...AP....r...r..cC.nb.kAbN.","move":"i6a6","from":"i6","to":"a6","flipped":["a9"],"legal":36,"losing":0,"winning":0},{"side":"black","before":"...RKABNR...NA....B...C....pp..p.p.P......p..C........p.p.....P...AP....R...r..cC.nb.kAbN.","move":"b10c8","from":"b10","to":"c8","flipped":["a9"],"legal":28,"losing":6,"winning":0},{"side":"red","before":"...RKABNR...NA....B...C....pp..p.p.P......p..C........p.p.....P..nAP....r...r..cC..b.kAbN.","move":"d1c1","from":"d1","to":"c1","flipped":["c7"],"legal":36,"losing":0,"winning":0},{"side":"black","before":"..R.KABNR...NA....B...C....pp..p.p.P......p..C........p.P.....P..nAP....r...r..cC..b.kAbN.","move":"c8d10","from":"c8","to":"d10","flipped":["e8"],"legal":32,"losing":6,"winning":0},{"side":"red","before":"..R.KABNR...NA....B...C....pp..p.p.P......p..C........p.P.....P...Ap....r...r..cC..bnkAbN.","move":"a6e6","from":"a6","to":"e6","flipped":["e9"],"legal":44,"losing":0,"winning":0},{"side":"black","before":"..R.KABNR...NA....B...C....pp..p.p.P......p......C....p.P.....P...Ap....r...R..cC..bnkAbN.","move":"a9d9","from":"a9","to":"d9","flipped":["d8","e9"],"legal":27,"losing":1,"winning":0},{"side":"red","before":"..R.KABNR...NA....B...C....pp..p.p.P......p......C....p.P.....P...ap.......rr..cC..bnkAbN.","move":"e3d3","from":"e3","to":"d3","flipped":["d9"],"legal":45,"losing":0,"winning":0},{"side":"black","before":"..R.KABNR...NA....B..C.....pp..p.p.P......p......C....p.P.....P...ap.......Rr..cC..bnkAbN.","move":"e4d4","from":"e4","to":"d4","flipped":["d3"],"legal":24,"losing":2,"winning":0},{"side":"red","before":"..R.KABNR...NA....B..c.....pp.p..p.P......p......C....p.P.....P...ap.......Rr..cC..bnkAbN.","move":"e6d6","from":"e6","to":"d6","flipped":["d3"],"legal":42,"losing":34,"winning":0},{"side":"black","before":"..R.KABNR...NA....B..C.....pp.p..p.P......p.....C.....p.P.....P...ap.......Rr..cC..bnkAbN.","move":"h9h7","from":"h9","to":"h7","flipped":[],"legal":23,"losing":2,"winning":0},{"side":"red","before":"..R.KABNR...NA....B..C.....pp.p..p.P......p.....C.....p.P....cP...ap.......Rr...C..bnkAbN.","move":"g1e3","from":"g1","to":"e3","flipped":["g5"],"legal":51,"losing":45,"winning":0},{"side":"black","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P.....C.....p.P....cP...ap.......Rr...C..bnkAbN.","move":"h7h9","from":"h7","to":"h9","flipped":["d9"],"legal":25,"losing":3,"winning":0},{"side":"red","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P.....C.....p.P.....P...ap.......rr..cC..bnkAbN.","move":"d6d7","from":"d6","to":"d7","flipped":["d9","a7"],"legal":40,"losing":3,"winning":0},{"side":"black","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........P.PC....P...ap.......Rr..cC..bnkAbN.","move":"h9f9","from":"h9","to":"f9","flipped":["d9"],"legal":20,"losing":2,"winning":0},{"side":"red","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........P.PC....P...ap.......rrc..C..bnkAbN.","move":"h10i8","from":"h10","to":"i8","flipped":[],"legal":41,"losing":0,"winning":0},{"side":"black","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........P.PC....P...ap...N...rrc..C..bnkAb..","move":"e8e7","from":"e8","to":"e7","flipped":[],"legal":21,"losing":8,"winning":0},{"side":"red","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........P.PCp...P...a....N...rrc..C..bnkAb..","move":"i8g7","from":"i8","to":"g7","flipped":["f9"],"legal":35,"losing":0,"winning":0},{"side":"black","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........P.PCp.N.P...a........rrC..C..bnkAb..","move":"d9a9","from":"d9","to":"a9","flipped":["a7"],"legal":14,"losing":2,"winning":0},{"side":"red","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........p.PCp.N.P...a.....r...rC..C..bnkAb..","move":"i9h9","from":"i9","to":"h9","flipped":["e9"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........p.PCp.N.P...a.....r...RC.C...bnkAb..","move":"a9b9","from":"a9","to":"b9","flipped":["e9"],"legal":18,"losing":13,"winning":0},{"side":"red","before":"..R.KA.NR...NA....B..CB....pp.p..p.P......P...........p.PCp.N.P...a......r..rC.C...bnkAb..","move":"d3b3","from":"d3","to":"b3","flipped":["b9"],"legal":53,"losing":0,"winning":0},{"side":"black","before":"..R.KA.NR...NA....BC..B....pp.p..p.P......P...........p.PCp.N.P...a......R..rC.C...bnkAb..","move":"e9c9","from":"e9","to":"c9","flipped":["c7","f9","b9"],"legal":15,"losing":2,"winning":0},{"side":"red","before":"..R.KA.NR...NA....BC..B....pp.p..p.P......P...........p.pCp.N.P...a......rr..c.C...bnkAb..","move":"f10e9","from":"f10","to":"e9","flipped":["d10","d8"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"..R.KA.NR...NA....BC..B....pp.p..p.P......P...........p.pCp.N.P...A......rr.Ac.C...bNk.b..","move":"f9f10","from":"f9","to":"f10","flipped":["d10"],"legal":29,"losing":28,"winning":0},{"side":"red","before":"..R.KA.NR...NA....BC..B....pp.p..p.P......P...........p.pCp.N.P...A......rr.A..C...bnkcb..","move":"g7i8","from":"g7","to":"i8","flipped":[],"legal":50,"losing":0,"winning":0},{"side":"black","before":"..R.KA.NR...NA....BC..B....pp.p..p.P......P...........p.pCp...P...A....N.rr.A..C...bnkcb..","move":"b9a9","from":"b9","to":"a9","flipped":[],"legal":30,"losing":30,"winning":0},{"side":"red","before":"..R.KA.NR...NA....BC..B....pp.p..p.P......P...........p.pCp...P...A....Nr.r.A..C...bnkcb..","move":"i8g9","from":"i8","to":"g9","flipped":[],"legal":45,"losing":0,"winning":1,"after":"..R.KA.NR...NA....BC..B....pp.p..p.P......P...........p.pCp...P...A.....r.r.A.NC...bnkcb.."}]},{"tag":"g5","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"h6e6","from":"h6","to":"e6","flipped":["e8"],"legal":46,"losing":40,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P..........C..C....p.p.p.p.p.c..C.............rNbakabNr","move":"i10i8","from":"i10","to":"i8","flipped":["e8"],"legal":22,"losing":1,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P..........C..C....p.p.p.p.p.c..c...r.........rNbakabN.","move":"b6a6","from":"b6","to":"a6","flipped":["a10"],"legal":39,"losing":6,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P.........C...C....p.p.p.p.p.c..c...r.........RNbakabN.","move":"e8e9","from":"e8","to":"e9","flipped":["e6"],"legal":32,"losing":6,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P.........C...c....p.p.p.p.p.c......r....c....RNbakabN.","move":"h10g8","from":"h10","to":"g8","flipped":["f10","i7","e9","e7"],"legal":27,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P.........C...c....p.p.P.p.P.c....N.r....C....RNbakAb..","move":"e6b6","from":"e6","to":"b6","flipped":["b10"],"legal":35,"losing":0,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P.........Cc.......p.p.P.p.P.c....N.r....C....RnbakAb..","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":36,"losing":31,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P.........Cc.......p.p...p.P.c..P.N.r....C....RnbakAb..","move":"b8a8","from":"b8","to":"a8","flipped":["a6","g8"],"legal":29,"losing":0,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P.........cc.......p.p...p.Pc...P.n.r....C....RnbakAb..","move":"e9d9","from":"e9","to":"d9","flipped":[],"legal":30,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P.........cc.......p.p...p.Pc...P.n.r...C.....RnbakAb..","move":"e10e9","from":"e10","to":"e9","flipped":["e8","d9"],"legal":35,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P.........cc.......p.p...p.Pc...p.n.r...ck....Rnba.Ab..","move":"a10a9","from":"a10","to":"a9","flipped":["a8","d9"],"legal":20,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P.........cc.......p.p...p.PC...p.n.rR..Ck.....nba.Ab..","move":"b10c8","from":"b10","to":"c8","flipped":["a9"],"legal":31,"losing":0,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P.........cc.......p.p...p.PC.n.p.n.rr..Ck......ba.Ab..","move":"d9d6","from":"d9","to":"d6","flipped":["a6"],"legal":29,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P.........Cc.C.....p.p...p.PC.n.p.n.rr...k......ba.Ab..","move":"c8e7","from":"c8","to":"e7","flipped":[],"legal":31,"losing":27,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P.........Cc.C.....p.p.n.p.PC...p.n.rr...k......ba.Ab..","move":"d6e6","from":"d6","to":"e6","flipped":["e8"],"legal":36,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.P.........Cc..C....p.p.n.p.PC...P.n.rr...k......ba.Ab..","move":"a9a10","from":"a9","to":"a10","flipped":["a8"],"legal":31,"losing":9,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P.........Cc..C....p.p.n.p.Pc...P.n.r....k....r.ba.Ab..","move":"a6a5","from":"a6","to":"a5","flipped":["a8"],"legal":32,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P..pp.PC.........c..C....p.p.n.p.PC...P.n.r....k....r.ba.Ab..","move":"b6a6","from":"b6","to":"a6","flipped":["a8","a4"],"legal":31,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................p.P..pp.PC........c...C....p.p.n.p.Pc...P.n.r....k....r.ba.Ab..","move":"a5e5","from":"a5","to":"e5","flipped":["e7"],"legal":39,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................p.P..pp.P....C....c...C....p.p.N.p.Pc...P.n.r....k....r.ba.Ab..","move":"a8d8","from":"a8","to":"d8","flipped":[],"legal":26,"losing":24,"winning":0},{"side":"red","before":"RNBAKABNR..................p.P..pp.P....C....c...C....p.p.N.p.P...cP.n.r....k....r.ba.Ab..","move":"e5i5","from":"e5","to":"i5","flipped":["i8"],"legal":40,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................p.P..pp.P........Cc...C....p.p.N.p.P...cP.n.R....k....r.ba.Ab..","move":"a6a5","from":"a6","to":"a5","flipped":["a1"],"legal":31,"losing":31,"winning":0},{"side":"red","before":"rNBAKABNR..................p.P..pp.Pc.......C....C....p.p.N.p.P...cP.n.R....k....r.ba.Ab..","move":"i8i9","from":"i8","to":"i9","flipped":[],"legal":42,"losing":8,"winning":1,"after":"rNBAKABNR..................p.P..pp.Pc.......C....C....p.p.N.p.P...cP.n......k...Rr.ba.Ab.."}]},{"tag":"g6","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P..........C.......p.p.p.p.p.c.....c..........rNbakabnr","move":"b8e8","from":"b8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.p.P.P..........C.......p.p.p.p.p....c..c..........rNbakabnr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNB.KABNR....A...........C.P.P.p.P.P..........C.......p.p.p.p.p....c..c..........rNbakabnr","move":"a10a8","from":"a10","to":"a8","flipped":[],"legal":34,"losing":7,"winning":0},{"side":"red","before":"RNB.KABNR....A...........C.P.P.p.P.P..........C.......p.p.p.p.pr...c..c...........Nbakabnr","move":"b6a6","from":"b6","to":"a6","flipped":["a8"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNB.KABNR....A...........C.P.P.p.P.P.........C........p.p.p.p.pR...c..c...........Nbakabnr","move":"h8g8","from":"h8","to":"g8","flipped":["g4","a8"],"legal":29,"losing":6,"winning":0},{"side":"red","before":"RNB.KABNR....A...........C.P.P.p.p.P.........C........p.p.p.p.pr...c.c............Nbakabnr","move":"b10c8","from":"b10","to":"c8","flipped":["d10","e7","a7"],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RNB.KABNR....A...........C.P.P.p.p.P.........C........P.p.P.p.pr.N.c.c.............bAkabnr","move":"g4h4","from":"g4","to":"h4","flipped":["h3","i4"],"legal":25,"losing":2,"winning":0},{"side":"red","before":"RNB.KABNR....A...........c.P.P.p..pp.........C........P.p.P.p.pr.N.c.c.............bAkabnr","move":"i1i3","from":"i1","to":"i3","flipped":["i4","h3"],"legal":34,"losing":24,"winning":0},{"side":"black","before":"RNB.KABN.....A...........CRP.P.p..pP.........C........P.p.P.p.pr.N.c.c.............bAkabnr","move":"g8h8","from":"g8","to":"h8","flipped":["h3","c8"],"legal":23,"losing":2,"winning":0},{"side":"red","before":"RNB.KABN.....A...........cRP.P.p..pP.........C........P.p.P.p.pr.n.c..c............bAkabnr","move":"a6h6","from":"a6","to":"h6","flipped":["h10","h3"],"legal":30,"losing":21,"winning":0},{"side":"black","before":"RNB.KABN.....A...........CRP.P.p..pP................C.P.p.P.p.pr.n.c..c............bAkabNr","move":"h8h7","from":"h8","to":"h7","flipped":["e7"],"legal":27,"losing":4,"winning":0},{"side":"red","before":"RNB.KABN.....A...........CRP.P.p..pP................C.P.p.p.pcpr.n.c...............bAkabNr","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":38,"losing":0,"winning":0},{"side":"black","before":"RNB.KABN.....A...........CRP.P.p..pP................C.P.p.p.Pcpr.n.c...N...........bAkab.r","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":25,"losing":21,"winning":0},{"side":"red","before":"RNB.KABN.....A...........CRP.P.p..pP................C.P.p.p.Pcpr.n.c...n........r..bAkab..","move":"h6i6","from":"h6","to":"i6","flipped":["i8"],"legal":38,"losing":1,"winning":0},{"side":"black","before":"RNB.KABN.....A...........CRP.P.p..pP.................CP.p.p.Pcpr.n.c...N........r..bAkab..","move":"h7h8","from":"h7","to":"h8","flipped":["h3"],"legal":33,"losing":28,"winning":0},{"side":"red","before":"RNB.KABN.....A...........cRP.P.p..pP.................CP.p.p.P.pr.n.c..cN........r..bAkab..","move":"a1a3","from":"a1","to":"a3","flipped":["h3"],"legal":31,"losing":23,"winning":0},{"side":"black","before":".NB.KABN.....A....R......CRP.P.p..pP.................CP.p.p.P.pr.n.c..cN........r..bAkab..","move":"i9f9","from":"i9","to":"f9","flipped":["f1"],"legal":34,"losing":10,"winning":0},{"side":"red","before":".NB.KaBN.....A....R......CRP.P.p..pP.................CP.p.p.P.pr.n.c..cN.....r.....bAkab..","move":"a3f3","from":"a3","to":"f3","flipped":["f9","f1"],"legal":43,"losing":1,"winning":0},{"side":"black","before":".NB.KABN.....A.........R.CRP.P.p..pP.................CP.p.p.P.pr.n.c..cN.....R.....bAkab..","move":"a8a9","from":"a8","to":"a9","flipped":["a7","f9"],"legal":25,"losing":21,"winning":0},{"side":"red","before":".NB.KABN.....A.........R.CRP.P.p..pP.................Cp.p.p.P.p..n.c..cNr....r.....bAkab..","move":"f3f8","from":"f3","to":"f8","flipped":["f9","h8","e8"],"legal":42,"losing":1,"winning":0},{"side":"black","before":".NB.KABN.....A...........CRP.P.p..pP.................Cp.p.p.P.p..n.CR.CNr....R.....bAkab..","move":"a9e9","from":"a9","to":"e9","flipped":["e8","f9"],"legal":18,"losing":13,"winning":0},{"side":"red","before":".NB.KABN.....A...........CRP.P.p..pP.................Cp.p.p.P.p..n.cR.CN....rr.....bAkab..","move":"i6e6","from":"i6","to":"e6","flipped":["e8"],"legal":49,"losing":1,"winning":0},{"side":"black","before":".NB.KABN.....A...........CRP.P.p..pP.............C....p.p.p.P.p..n.CR.CN....rr.....bAkab..","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":17,"losing":0,"winning":0},{"side":"red","before":".NB.KABN.....A...........CRP.P.p..pP...........p.C....p...p.P.p..n.CR.CN....rr.....bAkab..","move":"h8h10","from":"h8","to":"h10","flipped":["f10"],"legal":47,"losing":1,"winning":0},{"side":"black","before":".NB.KABN.....A...........CRP.P.p..pP...........p.C....p...p.P.p..n.CR..N....rr.....bAkAbC.","move":"f9g9","from":"f9","to":"g9","flipped":["g7"],"legal":19,"losing":1,"winning":0},{"side":"red","before":".NB.KABN.....A...........CRP.P.p..pP...........p.C....p...p.p.p..n.CR..N....r.r....bAkAbC.","move":"f8f9","from":"f8","to":"f9","flipped":["g9","e9"],"legal":45,"losing":1,"winning":0},{"side":"black","before":".NB.KABN.....A...........CRP.P.p..pP...........p.C....p...p.p.p..n.C...N....RRR....bAkAbC.","move":"c8d6","from":"c8","to":"d6","flipped":["e8","c4"],"legal":13,"losing":0,"winning":0},{"side":"red","before":".NB.KABN.....A...........CRP.p.p..pP...........pnC....p...p.p.p....c...N....RRR....bAkAbC.","move":"g9g8","from":"g9","to":"g8","flipped":["g10","g7","e8"],"legal":47,"losing":1,"winning":0},{"side":"black","before":".NB.KABN.....A...........CRP.p.p..pP...........pnC....p...p.P.p....C.R.N....RR.....bAkABC.","move":"e4e3","from":"e4","to":"e3","flipped":["e2"],"legal":12,"losing":0,"winning":0},{"side":"red","before":".NB.KABN.....a........p..CRP.p....pP...........pnC....p...p.P.p....C.R.N....RR.....bAkABC.","move":"e9d9","from":"e9","to":"d9","flipped":["d6"],"legal":49,"losing":0,"winning":0},{"side":"black","before":".NB.KABN.....a........p..CRP.p....pP...........pNC....p...p.P.p....C.R.N...R.R.....bAkABC.","move":"e10e9","from":"e10","to":"e9","flipped":["e8","f9","d9"],"legal":14,"losing":14,"winning":0},{"side":"red","before":".NB.KABN.....a........p..CRP.p....pP...........pNC....p...p.P.p....c.R.N...rkr.....bA.ABC.","move":"h10h9","from":"h10","to":"h9","flipped":[],"legal":32,"losing":2,"winning":2,"after":".NB.KABN.....a........p..CRP.p....pP...........pNC....p...p.P.p....c.R.N...rkr.C...bA.AB.."}]},{"tag":"g7","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNB.KABNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h10i8","from":"h10","to":"i8","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNB.KABNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....cn.........rnbakab.r","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":43,"losing":0,"winning":0},{"side":"black","before":"RNB.KABNR....A...........C.P.P.P.P.P.C................p.p.p.p.p.c.....cn.........rNbakab.r","move":"b8e8","from":"b8","to":"e8","flipped":["e4"],"legal":36,"losing":30,"winning":0},{"side":"red","before":"RNB.KABNR....A...........C.P.P.p.P.P.C................p.p.p.p.p....c..cn.........rNbakab.r","move":"b5a5","from":"b5","to":"a5","flipped":["a10"],"legal":50,"losing":0,"winning":0},{"side":"black","before":"RNB.KABNR....A...........C.P.P.p.P.PC.................p.p.p.p.p....c..cn.........RNbakab.r","move":"e8a8","from":"e8","to":"a8","flipped":["a5"],"legal":30,"losing":6,"winning":0},{"side":"red","before":"RNB.KABNR....A...........C.P.P.p.P.Pc.................p.p.p.p.pc......cn.........RNbakab.r","move":"a10a9","from":"a10","to":"a9","flipped":["a8"],"legal":34,"losing":3,"winning":0},{"side":"black","before":"RNB.KABNR....A...........C.P.P.p.P.Pc.................p.p.p.p.pC......cnR.........Nbakab.r","move":"i10i9","from":"i10","to":"i9","flipped":["a9"],"legal":37,"losing":36,"winning":0},{"side":"red","before":"RNB.KABNR....A...........C.P.P.p.P.Pc.................p.p.p.p.pC......cnr.......r.Nbakab..","move":"h3a3","from":"h3","to":"a3","flipped":["a5"],"legal":39,"losing":4,"winning":0},{"side":"black","before":"RNB.KABNR....A....C........P.P.p.P.PC.................p.p.p.p.pC......cnr.......r.Nbakab..","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":43,"losing":39,"winning":0},{"side":"red","before":"RNB.KABNR....A....C........P.P.p.P.PC.................p.p.p.p.pC...b..cnr.......r.N.akab..","move":"b10c8","from":"b10","to":"c8","flipped":["d10","e7","a9","a7"],"legal":39,"losing":1,"winning":0},{"side":"black","before":"RNB.KABNR....A....C........P.P.p.P.PC.................P.p.P.p.pC.N.b..cnR.......r...Akab..","move":"i9e9","from":"i9","to":"e9","flipped":["a9"],"legal":29,"losing":21,"winning":0},{"side":"red","before":"RNB.KABNR....A....C........P.P.p.P.PC.................P.p.P.p.pC.N.b..cnr...r.......Akab..","move":"e7f7","from":"e7","to":"f7","flipped":["g7"],"legal":39,"losing":1,"winning":0},{"side":"black","before":"RNB.KABNR....A....C........P.P.p.P.PC.................P.p..PP.pC.N.b..cnr...r.......Akab..","move":"a9a10","from":"a9","to":"a10","flipped":["a8","d10"],"legal":29,"losing":12,"winning":0},{"side":"red","before":"RNB.KABNR....A....C........P.P.p.P.PC.................P.p..PP.pc.N.b..cn....r....r..akab..","move":"a5e5","from":"a5","to":"e5","flipped":["e9"],"legal":42,"losing":1,"winning":0},{"side":"black","before":"RNB.KABNR....A....C........P.P.p.P.P....C.............P.p..PP.pc.N.b..cn....R....r..akab..","move":"a10a9","from":"a10","to":"a9","flipped":["e9"],"legal":23,"losing":2,"winning":0},{"side":"red","before":"RNB.KABNR....A....C........P.P.p.P.P....C.............P.p..PP.pc.N.b..cnr...r.......akab..","move":"g7h7","from":"g7","to":"h7","flipped":["h8","i7"],"legal":43,"losing":1,"winning":0},{"side":"black","before":"RNB.KABNR....A....C........P.P.p.P.P....C.............P.p..P.PPc.N.b..Cnr...r.......akab..","move":"a9b9","from":"a9","to":"b9","flipped":["b1"],"legal":19,"losing":9,"winning":0},{"side":"red","before":"RnB.KABNR....A....C........P.P.p.P.P....C.............P.p..P.PPc.N.b..Cn.r..r.......akab..","move":"h8h9","from":"h8","to":"h9","flipped":["b9"],"legal":47,"losing":1,"winning":0},{"side":"black","before":"RnB.KABNR....A....C........P.P.p.P.P....C.............P.p..P.PPc.N.b...n.R..r..C....akab..","move":"a8a10","from":"a8","to":"a10","flipped":["a4"],"legal":17,"losing":6,"winning":0},{"side":"red","before":"RnB.KABNR....A....C........p.P.p.P.P....C.............P.p..P.PP..N.b...n.R..r..C.c..akab..","move":"b9a9","from":"b9","to":"a9","flipped":["a10","e9"],"legal":60,"losing":1,"winning":0},{"side":"black","before":"RnB.KABNR....A....C........p.P.p.P.P....C.............P.p..P.PP..N.b...nR...R..C.C..akab..","move":"i8g7","from":"i8","to":"g7","flipped":["h9"],"legal":11,"losing":11,"winning":0},{"side":"red","before":"RnB.KABNR....A....C........p.P.p.P.P....C.............P.p..PnPP..N.b....R...R..c.C..akab..","move":"a10b10","from":"a10","to":"b10","flipped":[],"legal":53,"losing":1,"winning":2,"after":"RnB.KABNR....A....C........p.P.p.P.P....C.............P.p..PnPP..N.b....R...R..c..C.akab.."}]},{"tag":"g8","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"e4e3","from":"e4","to":"e3","flipped":[],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR.............p....P.P...P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":45,"losing":40,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p....P.P...P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"b8b9","from":"b8","to":"b9","flipped":["b1"],"legal":28,"losing":7,"winning":0},{"side":"red","before":"RnBAK.BNR....A........p....P.P...P.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"a1a3","from":"a1","to":"a3","flipped":["e3"],"legal":43,"losing":3,"winning":0},{"side":"black","before":".nBAK.BNR....A....R...P....P.P...P.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"b1c3","from":"b1","to":"c3","flipped":["d1","e2","a4"],"legal":33,"losing":9,"winning":0},{"side":"red","before":"..BaK.BNR....a....R.n.P....p.P...P.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"h6e6","from":"h6","to":"e6","flipped":["e8","e2"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"..BaK.BNR....A....R.n.P....p.P...P.P..........C..C....p.p.p.p.p....C.....c.......rNbakabNr","move":"a10a8","from":"a10","to":"a8","flipped":["e8"],"legal":26,"losing":1,"winning":0},{"side":"red","before":"..BaK.BNR....A....R.n.P....p.P...P.P..........C..C....p.p.p.p.pr...c.....c........NbakabNr","move":"b6b8","from":"b6","to":"b8","flipped":[],"legal":36,"losing":0,"winning":0},{"side":"black","before":"..BaK.BNR....A....R.n.P....p.P...P.P.............C....p.p.p.p.prC..c.....c........NbakabNr","move":"g10i8","from":"g10","to":"i8","flipped":[],"legal":31,"losing":8,"winning":0},{"side":"red","before":"..BaK.BNR....A....R.n.P....p.P...P.P.............C....p.p.p.p.prC..c...b.c........Nbaka.Nr","move":"e6a6","from":"e6","to":"a6","flipped":["a8"],"legal":37,"losing":0,"winning":0},{"side":"black","before":"..BaK.BNR....A....R.n.P....p.P...P.P.........C........p.p.p.p.pRC..c...b.c........Nbaka.Nr","move":"c3b1","from":"c3","to":"b1","flipped":["a3"],"legal":28,"losing":7,"winning":0},{"side":"red","before":".nBaK.BNR....A....r...P....p.P...P.P.........C........p.p.p.p.pRC..c...b.c........Nbaka.Nr","move":"a6e6","from":"a6","to":"e6","flipped":["e8"],"legal":34,"losing":0,"winning":0},{"side":"black","before":".nBaK.BNR....A....r...P....p.P...P.P.............C....p.p.p.p.pRC..C...b.c........Nbaka.Nr","move":"i8g10","from":"i8","to":"g10","flipped":["e8"],"legal":25,"losing":1,"winning":0},{"side":"red","before":".nBaK.BNR....A....r...P....p.P...P.P.............C....p.p.p.p.pRC..c.....c........NbakabNr","move":"e6a6","from":"e6","to":"a6","flipped":["a3"],"legal":35,"losing":0,"winning":0},{"side":"black","before":".nBaK.BNR....A....R...P....p.P...P.P.........C........p.p.p.p.pRC..c.....c........NbakabNr","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":27,"losing":8,"winning":0},{"side":"red","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......p...p.p.pRC..c.....c........NbakabNr","move":"a8a9","from":"a8","to":"a9","flipped":["a7","b9"],"legal":32,"losing":0,"winning":0},{"side":"black","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.p.p.C..c....RC........NbakabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":19,"losing":2,"winning":0},{"side":"red","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.p.p.C..c....RC..a.....Nbak.bNr","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":37,"losing":0,"winning":0},{"side":"black","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.P.p.C..c...NRC..a.....Nbak.b.r","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":16,"losing":14,"winning":0},{"side":"red","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.P.p.C..c...nRC..a...r.Nbak.b..","move":"b9d9","from":"b9","to":"d9","flipped":["i9"],"legal":38,"losing":1,"winning":0},{"side":"black","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.P.p.C..c...nR..Ca...R.Nbak.b..","move":"i8g9","from":"i8","to":"g9","flipped":[],"legal":16,"losing":7,"winning":0},{"side":"red","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.P.p.C..c....R..Ca.n.R.Nbak.b..","move":"i9h9","from":"i9","to":"h9","flipped":["g9"],"legal":53,"losing":0,"winning":0},{"side":"black","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.P.p.C..c....R..Ca.NR..Nbak.b..","move":"e9f8","from":"e9","to":"f8","flipped":[],"legal":16,"losing":4,"winning":0},{"side":"red","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.P.p.C..ca...R..C..NR..Nbak.b..","move":"g9h7","from":"g9","to":"h7","flipped":[],"legal":63,"losing":0,"winning":0},{"side":"black","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.PNp.C..ca...R..C...R..Nbak.b..","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":13,"losing":13,"winning":0},{"side":"red","before":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.PNp.C..ca...R..Ca..R..Nb.k.b..","move":"h7g9","from":"h7","to":"g9","flipped":[],"legal":59,"losing":0,"winning":1,"after":".nBaK.BNR....A....R...P....p.P...P.P.........C.p......P...p.P.p.C..ca...R..Ca.NR..Nb.k.b.."}]},{"tag":"g9","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c.....c..........rnbakabNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":38,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c..b..c..........rn.akabNr","move":"b3e3","from":"b3","to":"e3","flipped":["e7"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P.......C..........p.p.P.p.p.c..b..c..........rn.akabNr","move":"b8b5","from":"b8","to":"b5","flipped":[],"legal":34,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR.............C....P.P.P.P.P.c.....C..........p.p.P.p.p....b..c..........rn.akabNr","move":"e7f7","from":"e7","to":"f7","flipped":["g7"],"legal":42,"losing":8,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P.c.....C..........p.p..PP.p....b..c..........rn.akabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":35,"losing":30,"winning":0},{"side":"red","before":"RNBAKABNR.............C....P.P.P.P.P.c.....C..........p.p..PP.p....b..c.....a....rn.ak.bNr","move":"g7h7","from":"g7","to":"h7","flipped":["h8","i7"],"legal":44,"losing":8,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P.c.....C..........p.p..P.PP....b..C.....a....rn.ak.bNr","move":"b5e5","from":"b5","to":"e5","flipped":["e3"],"legal":29,"losing":6,"winning":0},{"side":"red","before":"RNBAKABNR.............c....P.P.P.P.P....c..C..........p.p..P.PP....b..C.....a....rn.ak.bNr","move":"a1a3","from":"a1","to":"a3","flipped":["e3"],"legal":35,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR.........R...C....P.P.P.P.P....c..C..........p.p..P.PP....b..C.....a....rn.ak.bNr","move":"e5a5","from":"e5","to":"a5","flipped":["a3"],"legal":24,"losing":3,"winning":0},{"side":"red","before":".NBAKABNR.........r...C....P.P.P.P.Pc......C..........p.p..P.PP....b..C.....a....rn.ak.bNr","move":"h10g8","from":"h10","to":"g8","flipped":["e9"],"legal":43,"losing":8,"winning":0},{"side":"black","before":".NBAKABNR.........r...C....P.P.P.P.Pc......C..........p.p..P.PP....b.NC.....A....rn.ak.b.r","move":"i10h10","from":"i10","to":"h10","flipped":["h8"],"legal":26,"losing":23,"winning":0},{"side":"red","before":".NBAKABNR.........r...C....P.P.P.P.Pc......C..........p.p..P.PP....b.Nc.....A....rn.ak.br.","move":"h5h3","from":"h5","to":"h3","flipped":["h8","a3"],"legal":44,"losing":8,"winning":0},{"side":"black","before":".NBAKABNR.........R...C..C.P.P.P.P.Pc.................p.p..P.PP....b.NC.....A....rn.ak.br.","move":"a5a6","from":"a5","to":"a6","flipped":["a3"],"legal":22,"losing":2,"winning":0},{"side":"red","before":".NBAKABNR.........r...C..C.P.P.P.P.P.........c........p.p..P.PP....b.NC.....A....rn.ak.br.","move":"a4a5","from":"a4","to":"a5","flipped":["a6"],"legal":41,"losing":6,"winning":0},{"side":"black","before":".NBAKABNR.........r...C..C...P.P.P.PP........C........p.p..P.PP....b.NC.....A....rn.ak.br.","move":"a3a1","from":"a3","to":"a1","flipped":["a5","b1"],"legal":18,"losing":3,"winning":0},{"side":"red","before":"rnBAKABNR.............C..C...P.P.P.Pp........C........p.p..P.PP....b.NC.....A....rn.ak.br.","move":"a6b6","from":"a6","to":"b6","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"black","before":"rnBAKABNR.............C..C...P.P.P.Pp.........C.......p.p..P.PP....b.NC.....A....rn.ak.br.","move":"a7a6","from":"a7","to":"a6","flipped":[],"legal":20,"losing":6,"winning":0},{"side":"red","before":"rnBAKABNR.............C..C...P.P.P.Pp........pC.........p..P.PP....b.NC.....A....rn.ak.br.","move":"g8f10","from":"g8","to":"f10","flipped":["e8"],"legal":55,"losing":1,"winning":0},{"side":"black","before":"rnBAKABNR.............C..C...P.P.P.Pp........pC.........p..P.PP....B..C.....A....rn.akNbr.","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":17,"losing":2,"winning":0},{"side":"red","before":"r.BAKABNR.........n...C..C...p.P.P.Pp........pC.........p..P.PP....B..C.....A....rn.akNbr.","move":"e3b3","from":"e3","to":"b3","flipped":["b10"],"legal":53,"losing":48,"winning":0},{"side":"black","before":"r.BAKABNR.........nC.....C...p.P.P.Pp........pC.........p..P.PP....B..C.....A....rN.akNbr.","move":"a10a8","from":"a10","to":"a8","flipped":["e8"],"legal":16,"losing":0,"winning":0},{"side":"red","before":"r.BAKABNR.........nC.....C...p.P.P.Pp........pC.........p..P.PPr...b..C.....A.....N.akNbr.","move":"h8f8","from":"h8","to":"f8","flipped":["a8"],"legal":58,"losing":10,"winning":0},{"side":"black","before":"r.BAKABNR.........nC.....C...p.P.P.Pp........pC.........p..P.PPR...bC.......A.....N.akNbr.","move":"a1a2","from":"a1","to":"a2","flipped":[],"legal":16,"losing":2,"winning":0},{"side":"red","before":"..BAKABNRr........nC.....C...p.P.P.Pp........pC.........p..P.PPR...bC.......A.....N.akNbr.","move":"i1i2","from":"i1","to":"i2","flipped":["a2"],"legal":63,"losing":60,"winning":0},{"side":"black","before":"..BAKABN.R.......RnC.....C...p.P.P.Pp........pC.........p..P.PPR...bC.......A.....N.akNbr.","move":"c4b4","from":"c4","to":"b4","flipped":["b3"],"legal":13,"losing":2,"winning":0},{"side":"red","before":"..BAKABN.R.......Rnc.....C..p..P.P.Pp........pC.........p..P.PPR...bC.......A.....N.akNbr.","move":"b10c8","from":"b10","to":"c8","flipped":["d10"],"legal":68,"losing":5,"winning":0},{"side":"black","before":"..BAKABN.R.......Rnc.....C..p..P.P.Pp........pC.........p..P.PPR.N.bC.......A.......AkNbr.","move":"b3b1","from":"b3","to":"b1","flipped":["b6","d1"],"legal":19,"losing":17,"winning":0},{"side":"red","before":".cBaKABN.R.......Rn......C..p..P.P.Pp........pc.........p..P.PPR.N.bC.......A.......AkNbr.","move":"h3b3","from":"h3","to":"b3","flipped":["b6"],"legal":57,"losing":56,"winning":0},{"side":"black","before":".cBaKABN.R.......RnC........p..P.P.Pp........pC.........p..P.PPR.N.bC.......A.......AkNbr.","move":"e8c6","from":"e8","to":"c6","flipped":["a8"],"legal":15,"losing":15,"winning":0},{"side":"red","before":".cBaKABN.R.......RnC........p..P.P.Pp........pCb........p..P.PPr.N..C.......A.......AkNbr.","move":"b6b10","from":"b6","to":"b10","flipped":[],"legal":58,"losing":9,"winning":2,"after":".cBaKABN.R.......RnC........p..P.P.Pp........p.b........p..P.PPr.N..C.......A.....C.AkNbr."}]},{"tag":"g10","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P..........C.......p.p.p.p.p.c.....c..........rNbakabnr","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P..........C.......p.p.p.p.p.c..b..c..........rNbaka.nr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C.....C.p.p.p.p.p.c..b..c..........rNbaka.Nr","move":"h8h7","from":"h8","to":"h7","flipped":["h1"],"legal":26,"losing":4,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P..........C.....C.p.p.p.pcp.c..b.............rNbaka.Nr","move":"h6i6","from":"h6","to":"i6","flipped":["i10"],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR..................P.P.P.P.P..........C......Cp.p.p.pcp.c..b.............rNbaka.NR","move":"h7h5","from":"h7","to":"h5","flipped":[],"legal":27,"losing":4,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P.......c..C......Cp.p.p.p.p.c..b.............rNbaka.NR","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":44,"losing":38,"winning":0},{"side":"black","before":"RN.AKABnR.............B....P.P.P.P.P.......c..C......Cp.p.p.p.p.c..b.............rNbaka.NR","move":"h1i3","from":"h1","to":"i3","flipped":["g4"],"legal":35,"losing":4,"winning":0},{"side":"red","before":"RN.AKAB.R.............B...nP.P.P.p.P.......c..C......Cp.p.p.p.p.c..b.............rNbaka.NR","move":"i6i5","from":"i6","to":"i5","flipped":["i3"],"legal":43,"losing":38,"winning":0},{"side":"black","before":"RN.AKAB.R.............B...NP.P.P.p.P.......cC.C.......p.p.p.p.p.c..b.............rNbaka.NR","move":"h5h9","from":"h5","to":"h9","flipped":[],"legal":37,"losing":3,"winning":0},{"side":"red","before":"RN.AKAB.R.............B...NP.P.P.p.P........C.C.......p.p.p.p.p.c..b...........c.rNbaka.NR","move":"i1h1","from":"i1","to":"h1","flipped":["h9"],"legal":45,"losing":1,"winning":0},{"side":"black","before":"RN.AKABR..............B...NP.P.P.p.P........C.C.......p.p.p.p.p.c..b...........C.rNbaka.NR","move":"a10a9","from":"a10","to":"a9","flipped":["h9"],"legal":22,"losing":4,"winning":0},{"side":"red","before":"RN.AKABR..............B...NP.P.P.p.P........C.C.......p.p.p.p.p.c..b....r......c..Nbaka.NR","move":"b6a6","from":"b6","to":"a6","flipped":["a9"],"legal":50,"losing":0,"winning":0},{"side":"black","before":"RN.AKABR..............B...NP.P.P.p.P........CC........p.p.p.p.p.c..b....R......c..Nbaka.NR","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":38,"losing":31,"winning":0},{"side":"red","before":"RN.AKABR..............B...NP.P.P.p.P........CC........p.p.p.p.p.c..b....R...a..c..Nb.ka.NR","move":"h10f9","from":"h10","to":"f9","flipped":["g7","e7"],"legal":51,"losing":3,"winning":0},{"side":"black","before":"RN.AKABR..............B...NP.P.P.p.P........CC........p.p.P.P.p.c..b....R...aN.c..Nb.ka..R","move":"b8b9","from":"b8","to":"b9","flipped":["f9"],"legal":32,"losing":4,"winning":0},{"side":"red","before":"RN.AKABR..............B...NP.P.P.p.P........CC........p.p.P.P.p....b....Rc..an.c..Nb.ka..R","move":"h1h8","from":"h1","to":"h8","flipped":["h9","e8"],"legal":52,"losing":3,"winning":0},{"side":"black","before":"RN.AKAB...............B...NP.P.P.p.P........CC........p.p.P.P.p....B..R.Rc..an.C..Nb.ka..R","move":"f9h10","from":"f9","to":"h10","flipped":[],"legal":19,"losing":18,"winning":0},{"side":"red","before":"RN.AKAB...............B...NP.P.P.p.P........CC........p.p.P.P.p....B..R.Rc..a..C..Nb.ka.nR","move":"h9g9","from":"h9","to":"g9","flipped":["g4","b9"],"legal":59,"losing":3,"winning":0},{"side":"black","before":"RN.AKAB...............B...NP.P.P.P.P........CC........p.p.P.P.p....B..R.RC..a.C...Nb.ka.nR","move":"i7i6","from":"i7","to":"i6","flipped":["i5"],"legal":9,"losing":9,"winning":0},{"side":"red","before":"RN.AKAB...............B...NP.P.P.P.P........cC.......pp.p.P.P......B..R.RC..a.C...Nb.ka.nR","move":"g9g10","from":"g9","to":"g10","flipped":[],"legal":63,"losing":2,"winning":1,"after":"RN.AKAB...............B...NP.P.P.P.P........cC.......pp.p.P.P......B..R.RC..a.....Nb.kaCnR"}]},{"tag":"g11","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAK.BNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h6","from":"h8","to":"h6","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAK.BnR....A.....C.....C.P.P.P.P.P................c.p.p.p.p.p.c................rnbakabnr","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":39,"losing":4,"winning":0},{"side":"black","before":"RNBAK.BnR....A...........C.P.P.P.P.P.C..............c.p.p.p.p.p.c................rNbakabnr","move":"b8e8","from":"b8","to":"e8","flipped":["e4"],"legal":44,"losing":38,"winning":0},{"side":"red","before":"RNBAK.BnR....A...........C.P.P.p.P.P.C..............c.p.p.p.p.p....c.............rNbakabnr","move":"b5h5","from":"b5","to":"h5","flipped":["h10","h1"],"legal":46,"losing":4,"winning":0},{"side":"black","before":"RNBAK.BNR....A...........C.P.P.p.P.P.......C........c.p.p.p.p.p....c.............rNbakabNr","move":"h6h9","from":"h6","to":"h9","flipped":["h3"],"legal":37,"losing":8,"winning":0},{"side":"red","before":"RNBAK.BNR....A...........c.P.P.p.P.P.......C..........p.p.p.p.p....c...........c.rNbakabNr","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":34,"losing":26,"winning":0},{"side":"black","before":"RNBAK..NR....A........B..c.P.P.p.P.P.......C..........p.p.p.p.p....c...........c.rNbakabNr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":40,"losing":9,"winning":0},{"side":"red","before":"RNBAK..NR....A........B..c.P.P..pp.P.......C..........p.p.p.p.p....c...........c.rNbakabNr","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":33,"losing":3,"winning":0},{"side":"black","before":"RNBAK..NR....A........B..c.P.P..pp.P.......C..........p.P.p.p.pN...c...........c.r.bakabNr","move":"a10a9","from":"a10","to":"a9","flipped":["a8"],"legal":39,"losing":34,"winning":0},{"side":"red","before":"RNBAK..NR....A........B..c.P.P..pp.P.......C..........p.P.p.p.pn...c....r......c...bakabNr","move":"h5h8","from":"h5","to":"h8","flipped":["a8"],"legal":34,"losing":3,"winning":0},{"side":"black","before":"RNBAK..NR....A........B..c.P.P..pp.P..................p.P.p.p.pN...c..C.r......c...bakabNr","move":"h9d9","from":"h9","to":"d9","flipped":[],"legal":41,"losing":34,"winning":0},{"side":"red","before":"RNBAK..NR....A........B..c.P.P..pp.P..................p.P.p.p.pN...c..C.r..c.......bakabNr","move":"c7d7","from":"c7","to":"d7","flipped":["e7"],"legal":33,"losing":3,"winning":0},{"side":"black","before":"RNBAK..NR....A........B..c.P.P..pp.P..................p..PP.p.pN...c..C.r..c.......bakabNr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":38,"losing":9,"winning":0},{"side":"red","before":"RNBAK..NR....A........B....P.P..pp.P................c.p..PP.p.pN...c..C.r..c.......bakabnr","move":"d7d8","from":"d7","to":"d8","flipped":["d9","e8"],"legal":29,"losing":6,"winning":0},{"side":"black","before":"RNBAK..NR....A........B....P.P..pp.P................c.p...P.p.pN..PC..C.r..C.......bakabnr","move":"i10i9","from":"i10","to":"i9","flipped":["d9"],"legal":31,"losing":0,"winning":0},{"side":"red","before":"RNBAK..NR....A........B....P.P..pp.P................c.p...P.p.pN..PC..C.r..c....r..bakabn.","move":"h8h9","from":"h8","to":"h9","flipped":["a9"],"legal":32,"losing":6,"winning":0},{"side":"black","before":"RNBAK..NR....A........B....P.P..pp.P................c.p...P.p.pN..PC....R..c...Cr..bakabn.","move":"i9i8","from":"i9","to":"i8","flipped":["e8"],"legal":31,"losing":4,"winning":0},{"side":"red","before":"RNBAK..NR....A........B....P.P..pp.P................c.p...P.p.pN..Pc...rR..c...C...bakabn.","move":"a9c9","from":"a9","to":"c9","flipped":["c10","d9"],"legal":33,"losing":6,"winning":0},{"side":"black","before":"RNBAK..NR....A........B....P.P..pp.P................c.p...P.p.pN..Pc...r..RC...C...Bakabn.","move":"e8e9","from":"e8","to":"e9","flipped":["e3","c9"],"legal":33,"losing":0,"winning":0},{"side":"red","before":"RNBAK..NR....A........b....P.P..pp.P................c.p...P.p.pN..P....r..rCc..C...Bakabn.","move":"d8e8","from":"d8","to":"e8","flipped":["e9"],"legal":29,"losing":4,"winning":0},{"side":"black","before":"RNBAK..NR....A........b....P.P..pp.P................c.p...P.p.pN...P...r..rCC..C...Bakabn.","move":"c9a9","from":"c9","to":"a9","flipped":["a8","d9"],"legal":34,"losing":0,"winning":0},{"side":"red","before":"RNBAK..NR....A........b....P.P..pp.P................c.p...P.p.pn...P...rr..cC..C...Bakabn.","move":"e9f9","from":"e9","to":"f9","flipped":["a9"],"legal":28,"losing":4,"winning":0},{"side":"black","before":"RNBAK..NR....A........b....P.P..pp.P................c.p...P.p.pn...P...rR..c.C.C...Bakabn.","move":"i8h8","from":"i8","to":"h8","flipped":["h9","e8"],"legal":43,"losing":35,"winning":0},{"side":"red","before":"RNBAK..NR....A........b....P.P..pp.P................c.p...P.p.pn...p..r.R..c.C.c...Bakabn.","move":"a9c9","from":"a9","to":"c9","flipped":["d9"],"legal":28,"losing":4,"winning":0},{"side":"black","before":"RNBAK..NR....A........b....P.P..pp.P................c.p...P.p.pn...p..r...RC.C.c...Bakabn.","move":"h6i6","from":"h6","to":"i6","flipped":["i1"],"legal":33,"losing":0,"winning":0},{"side":"red","before":"RNBAK..Nr....A........b....P.P..pp.P.................cp...P.p.pn...p..r...RC.C.c...Bakabn.","move":"d9d8","from":"d9","to":"d8","flipped":["h8"],"legal":37,"losing":7,"winning":0},{"side":"black","before":"RNBAK..Nr....A........b....P.P..pp.P.................cp...P.p.pn..Cp..R...R..C.c...Bakabn.","move":"h9i9","from":"h9","to":"i9","flipped":["c9"],"legal":26,"losing":22,"winning":0},{"side":"red","before":"RNBAK..Nr....A........b....P.P..pp.P.................cp...P.p.pn..Cp..R...r..C..c..Bakabn.","move":"d8d9","from":"d8","to":"d9","flipped":["i9"],"legal":44,"losing":7,"winning":0},{"side":"black","before":"RNBAK..Nr....A........b....P.P..pp.P.................cp...P.p.pn...p..R...rC.C..C..Bakabn.","move":"i6a6","from":"i6","to":"a6","flipped":["a1"],"legal":33,"losing":1,"winning":0},{"side":"red","before":"rNBAK..Nr....A........b....P.P..pp.P.........c........p...P.p.pn...p..R...rC.C..C..Bakabn.","move":"f9g9","from":"f9","to":"g9","flipped":["g4","c9"],"legal":44,"losing":7,"winning":0},{"side":"black","before":"rNBAK..Nr....A........b....P.P..pP.P.........c........p...P.p.pn...p..R...RC..C.C..Bakabn.","move":"a8c7","from":"a8","to":"c7","flipped":["d9"],"legal":27,"losing":2,"winning":0},{"side":"red","before":"rNBAK..Nr....A........b....P.P..pP.P.........c........p.n.P.p.p....p..R...Rc..C.C..Bakabn.","move":"h8h6","from":"h8","to":"h6","flipped":["h10","a6"],"legal":37,"losing":7,"winning":0},{"side":"black","before":"rNBAK..Nr....A........b....P.P..pP.P.........C......R.p.n.P.p.p....p......Rc..C.C..BakabN.","move":"d9e9","from":"d9","to":"e9","flipped":["e7","i9"],"legal":28,"losing":10,"winning":0},{"side":"red","before":"rNBAK..Nr....A........b....P.P..pP.P.........C......R.p.n.p.p.p....p......R.c.C.c..BakabN.","move":"h10g8","from":"h10","to":"g8","flipped":["i9","i7","e9","e7"],"legal":45,"losing":4,"winning":0},{"side":"black","before":"rNBAK..Nr....A........b....P.P..pP.P.........C......R.p.n.P.p.P....p.N....R.C.C.C..Bakab..","move":"f4f3","from":"f4","to":"f3","flipped":[],"legal":16,"losing":1,"winning":0},{"side":"red","before":"rNBAK..Nr....A........bp...P.P...P.P.........C......R.p.n.P.p.P....p.N....R.C.C.C..Bakab..","move":"c9c8","from":"c9","to":"c8","flipped":["c7","e8"],"legal":51,"losing":4,"winning":0},{"side":"black","before":"rNBAK..Nr....A........bp...P.P...P.P.........C......R.p.N.P.p.P..R.P.N......C.C.C..Bakab..","move":"f3f2","from":"f3","to":"f2","flipped":["e2"],"legal":11,"losing":1,"winning":0},{"side":"red","before":"rNBAK..Nr....ap.......b....P.P...P.P.........C......R.p.N.P.p.P..R.P.N......C.C.C..Bakab..","move":"h6h2","from":"h6","to":"h2","flipped":["f2"],"legal":57,"losing":54,"winning":0},{"side":"black","before":"rNBAK..Nr....aP.R.....b....P.P...P.P.........C........p.N.P.p.P..R.P.N......C.C.C..Bakab..","move":"e3g5","from":"e3","to":"g5","flipped":[],"legal":11,"losing":1,"winning":0},{"side":"red","before":"rNBAK..Nr....aP.R..........P.P...P.P......b..C........p.N.P.p.P..R.P.N......C.C.C..Bakab..","move":"c7a8","from":"c7","to":"a8","flipped":[],"legal":53,"losing":0,"winning":0},{"side":"black","before":"rNBAK..Nr....aP.R..........P.P...P.P......b..C........p...P.p.PN.R.P.N......C.C.C..Bakab..","move":"i1i2","from":"i1","to":"i2","flipped":["i4","h2"],"legal":11,"losing":11,"winning":0},{"side":"red","before":"rNBAK..N.....aP.rr.........P.P...P.p......b..C........p...P.p.PN.R.P.N......C.C.C..Bakab..","move":"a8c9","from":"a8","to":"c9","flipped":[],"legal":42,"losing":0,"winning":1,"after":"rNBAK..N.....aP.rr.........P.P...P.p......b..C........p...P.p.P..R.P.N....N.C.C.C..Bakab.."}]},{"tag":"g12","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b7","from":"b3","to":"b7","flipped":["b10","e7"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":27,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P..pp.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":44,"losing":37,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"a10a9","from":"a10","to":"a9","flipped":[],"legal":28,"losing":7,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P................C.pCp.P.p.p.c..c....r.........NbakabNr","move":"h6b6","from":"h6","to":"b6","flipped":["b8"],"legal":44,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P..........C.......pCp.P.p.p.C..c....r.........NbakabNr","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":32,"losing":8,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P..........Cp......pC..P.p.p.C..c....r.........NbakabNr","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":35,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P..........Cp......pC..P.P.p.C..c...Nr.........Nbakab.r","move":"a9g9","from":"a9","to":"g9","flipped":["g7"],"legal":29,"losing":24,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P..pp.P..........Cp......pC..P.p.p.C..c...N......r...Nbakab.r","move":"b7d7","from":"b7","to":"d7","flipped":["g7"],"legal":34,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P..pp.P..........Cp......p..CP.P.p.C..c...N......r...Nbakab.r","move":"f4f3","from":"f4","to":"f3","flipped":["e3"],"legal":28,"losing":8,"winning":0},{"side":"red","before":"RN.AKABNR.............bp...P.P...p.P..........Cp......p..CP.P.p.C..c...N......r...Nbakab.r","move":"b6b3","from":"b6","to":"b3","flipped":["f3"],"legal":43,"losing":2,"winning":0},{"side":"black","before":"RN.AKABNR..........C..bP...P.P...p.P...........p......p..CP.P.p.C..c...N......r...Nbakab.r","move":"g4g3","from":"g4","to":"g3","flipped":["f3"],"legal":30,"losing":8,"winning":0},{"side":"red","before":"RN.AKABNR..........C..bpp..P.P.....P...........p......p..CP.P.p.C..c...N......r...Nbakab.r","move":"d1e2","from":"d1","to":"e2","flipped":["f3"],"legal":47,"losing":2,"winning":0},{"side":"black","before":"RN..KABNR....A.....C..bPp..P.P.....P...........p......p..CP.P.p.C..c...N......r...Nbakab.r","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":29,"losing":8,"winning":0},{"side":"red","before":"RN..KABNR....A.....C..bPp..P.P.....P...........p......p..CP.P.p.C..c...n......r.r.Nbakab..","move":"b8d8","from":"b8","to":"d8","flipped":["i8"],"legal":48,"losing":1,"winning":0},{"side":"black","before":"RN..KABNR....A.....C..bPp..P.P.....P...........p......p..CP.P.p...Cc...N......r.r.Nbakab..","move":"g9f9","from":"g9","to":"f9","flipped":["f3"],"legal":26,"losing":7,"winning":0},{"side":"red","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..CP.P.p...Cc...N.....r..r.Nbakab..","move":"e7f7","from":"e7","to":"f7","flipped":[],"legal":44,"losing":0,"winning":0},{"side":"black","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..C.PP.p...Cc...N.....r..r.Nbakab..","move":"e8h8","from":"e8","to":"h8","flipped":[],"legal":32,"losing":23,"winning":0},{"side":"red","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..C.PP.p...C...cN.....r..r.Nbakab..","move":"f7f8","from":"f7","to":"f8","flipped":["f9"],"legal":47,"losing":2,"winning":0},{"side":"black","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..C..P.p...C.P.cN.....R..r.Nbakab..","move":"i9g9","from":"i9","to":"g9","flipped":["g7","f9"],"legal":26,"losing":24,"winning":0},{"side":"red","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..C..p.p...C.P.cN.....rr...Nbakab..","move":"d8d9","from":"d8","to":"d9","flipped":["g9"],"legal":45,"losing":0,"winning":0},{"side":"black","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..C..p.p.....P.cN...C.rR...Nbakab..","move":"h8h7","from":"h8","to":"h7","flipped":["d7"],"legal":24,"losing":4,"winning":0},{"side":"red","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..c..pcp.....P..N...C.rR...Nbakab..","move":"g9i9","from":"g9","to":"i9","flipped":["f9"],"legal":38,"losing":2,"winning":0},{"side":"black","before":"RN..KABNR....A.....C..bpp..P.P.....P...........p......p..c..pcp.....P..N...C.R..R.Nbakab..","move":"d7f7","from":"d7","to":"f7","flipped":["f9","f1"],"legal":33,"losing":31,"winning":0},{"side":"red","before":"RN..KaBNR....A.....C..bpp..P.P.....P...........p......p....cpcp.....P..N...C.r..R.Nbakab..","move":"i8g9","from":"i8","to":"g9","flipped":["h7","f7"],"legal":45,"losing":2,"winning":0},{"side":"black","before":"RN..KaBNR....A.....C..bpp..P.P.....P...........p......p....CpCp.....P......C.rN.R.Nbakab..","move":"f3f2","from":"f3","to":"f2","flipped":["e2"],"legal":16,"losing":5,"winning":0},{"side":"red","before":"RN..KaBNR....ap....C..b.p..P.P.....P...........p......p....CpCp.....P......C.rN.R.Nbakab..","move":"f7f6","from":"f7","to":"f6","flipped":["f9","f1"],"legal":60,"losing":0,"winning":0},{"side":"black","before":"RN..KABNR....ap....C..b.p..P.P.....P...........p..C...p.....pCp.....P......C.RN.R.Nbakab..","move":"e10e9","from":"e10","to":"e9","flipped":["f9","d9"],"legal":19,"losing":19,"winning":0},{"side":"red","before":"RN..KABNR....ap....C..b.p..P.P.....P...........p..C...p.....pCp.....P......ckrN.R.Nba.ab..","move":"b3b9","from":"b3","to":"b9","flipped":[],"legal":50,"losing":0,"winning":3,"after":"RN..KABNR....ap.......b.p..P.P.....P...........p..C...p.....pCp.....P....C.ckrN.R.Nba.ab.."}]},{"tag":"g13","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"e7e6","from":"e7","to":"e6","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.............p..C.p.p...p.p.c.....c..........rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":43,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C..p..C.p.p...p.p.c.....c..........rNbakabNr","move":"a7a6","from":"a7","to":"a6","flipped":[],"legal":32,"losing":1,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P.P.........pC..p..C...p...p.p.c.....c..........rNbakabNr","move":"h6i6","from":"h6","to":"i6","flipped":["i10"],"legal":39,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P.........pC..p...C..p...p.p.c.....c..........rNbakabNR","move":"h8i8","from":"h8","to":"i8","flipped":["i6"],"legal":35,"losing":1,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P.P.........pC..p...c..p...p.p.c......c.........rNbakabNR","move":"i4i5","from":"i4","to":"i5","flipped":["i6"],"legal":31,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P..........PpC..p...C..p...p.p.c......c.........rNbakabNR","move":"i8i9","from":"i8","to":"i9","flipped":["i6"],"legal":29,"losing":1,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P..........PpC..p...c..p...p.p.c...............crNbakabNR","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":31,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P..........PpC..p...c..p...P.p.c......N........crNbakab.R","move":"i9f9","from":"i9","to":"f9","flipped":[],"legal":32,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P..........PpC..p...c..p...P.p.c......N.....c...rNbakab.R","move":"b6c6","from":"b6","to":"c6","flipped":["c10","i6"],"legal":36,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P..........Pp.C.p...C..p...P.p.c......N.....c...rNBakab.R","move":"b8b5","from":"b8","to":"b5","flipped":[],"legal":37,"losing":15,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P...c......Pp.C.p...C..p...P.p........N.....c...rNBakab.R","move":"c6c5","from":"c6","to":"c5","flipped":[],"legal":37,"losing":30,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P...cC.....Pp...p...C..p...P.p........N.....c...rNBakab.R","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":32,"losing":28,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P...cC.....Pp...p...C..p...P.p........N....ac...rNB.kab.R","move":"i10i9","from":"i10","to":"i9","flipped":["f9"],"legal":39,"losing":4,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P...cC.....Pp...p...C..p...P.p........N....aC..RrNB.kab..","move":"a10a8","from":"a10","to":"a8","flipped":["i8"],"legal":18,"losing":5,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P...cC.....Pp...p...C..p...P.pr.......n....aC..R.NB.kab..","move":"c1a3","from":"c1","to":"a3","flipped":[],"legal":45,"losing":4,"winning":0},{"side":"black","before":"RN.AKABNR.........B........P.P.P.P...cC.....Pp...p...C..p...P.pr.......n....aC..R.NB.kab..","move":"a8b8","from":"a8","to":"b8","flipped":["b10"],"legal":26,"losing":5,"winning":0},{"side":"red","before":"RN.AKABNR.........B........P.P.P.P...cC.....Pp...p...C..p...P.p.r......n....aC..R.nB.kab..","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":43,"losing":6,"winning":0},{"side":"black","before":"RN.AKABNR.........B........P.P.P.P...cC.....Pp...p...C..p...P.p.r..B...n....aC..R.n..kab..","move":"b5b3","from":"b5","to":"b3","flipped":[],"legal":23,"losing":0,"winning":0},{"side":"red","before":"RN.AKABNR.........Bc.......P.P.P.P....C.....Pp...p...C..p...P.p.r..B...n....aC..R.n..kab..","move":"c5e5","from":"c5","to":"e5","flipped":[],"legal":46,"losing":3,"winning":0},{"side":"black","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...P.p.r..B...n....aC..R.n..kab..","move":"e9d8","from":"e9","to":"d8","flipped":[],"legal":30,"losing":0,"winning":0},{"side":"red","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...P.p.r.aB...n.....C..R.n..kab..","move":"f9c9","from":"f9","to":"c9","flipped":[],"legal":51,"losing":3,"winning":0},{"side":"black","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...P.p.r.aB...n..C.....R.n..kab..","move":"i8g9","from":"i8","to":"g9","flipped":["e8"],"legal":29,"losing":26,"winning":0},{"side":"red","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...P.p.r.ab......C...n.R.n..kab..","move":"i9h9","from":"i9","to":"h9","flipped":["g9"],"legal":41,"losing":3,"winning":0},{"side":"black","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...P.p.r.ab......C...NR..n..kab..","move":"b8b9","from":"b8","to":"b9","flipped":["c9"],"legal":31,"losing":2,"winning":0},{"side":"red","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...P.p...ab.....rc...NR..n..kab..","move":"g9h7","from":"g9","to":"h7","flipped":[],"legal":42,"losing":3,"winning":0},{"side":"black","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...PNp...ab.....rc....R..n..kab..","move":"c9f9","from":"c9","to":"f9","flipped":[],"legal":35,"losing":33,"winning":0},{"side":"red","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...PNp...ab.....r...c.R..n..kab..","move":"h9i9","from":"h9","to":"i9","flipped":["i7","f9"],"legal":37,"losing":3,"winning":0},{"side":"black","before":"RN.AKABNR.........Bc.......P.P.P.P......C...Pp...p...C..p...PNP...ab.....r...C..R.n..kab..","move":"b3f3","from":"b3","to":"f3","flipped":[],"legal":33,"losing":1,"winning":0},{"side":"red","before":"RN.AKABNR.........B....c...P.P.P.P......C...Pp...p...C..p...PNP...ab.....r...C..R.n..kab..","move":"b1d2","from":"b1","to":"d2","flipped":["f3"],"legal":47,"losing":1,"winning":0},{"side":"black","before":"R..AKABNR...N.....B....C...P.P.P.P......C...Pp...p...C..p...PNP...ab.....r...C..R.n..kab..","move":"b9a9","from":"b9","to":"a9","flipped":["f9"],"legal":23,"losing":1,"winning":0},{"side":"red","before":"R..AKABNR...N.....B....C...P.P.P.P......C...Pp...p...C..p...PNP...ab....r....c..R.n..kab..","move":"i9g9","from":"i9","to":"g9","flipped":["g10","f9"],"legal":52,"losing":0,"winning":0},{"side":"black","before":"R..AKABNR...N.....B....C...P.P.P.P......C...Pp...p...C..p...PNP...ab....r....CR...n..kaB..","move":"a9e9","from":"a9","to":"e9","flipped":["f9"],"legal":19,"losing":1,"winning":0},{"side":"red","before":"R..AKABNR...N.....B....C...P.P.P.P......C...Pp...p...C..p...PNP...ab........rcR...n..kaB..","move":"f3f7","from":"f3","to":"f7","flipped":["f10"],"legal":52,"losing":0,"winning":0},{"side":"black","before":"R..AKABNR...N.....B........P.P.P.P......C...Pp...p...C..p..CPNP...ab........rcR...n..kAB..","move":"b10d9","from":"b10","to":"d9","flipped":[],"legal":13,"losing":7,"winning":0},{"side":"red","before":"R..AKABNR...N.....B........P.P.P.P......C...Pp...p...C..p..CPNP...ab.......nrcR......kAB..","move":"g9i9","from":"g9","to":"i9","flipped":["f9"],"legal":47,"losing":0,"winning":0},{"side":"black","before":"R..AKABNR...N.....B........P.P.P.P......C...Pp...p...C..p..CPNP...ab.......nrC..R....kAB..","move":"a6a5","from":"a6","to":"a5","flipped":["a4"],"legal":6,"losing":1,"winning":0},{"side":"red","before":"R..AKABNR...N.....B........p.P.P.P..p...C...P....p...C..p..CPNP...ab.......nrC..R....kAB..","move":"f7e7","from":"f7","to":"e7","flipped":["e9"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"R..AKABNR...N.....B........p.P.P.P..p...C...P....p...C..p.C.PNP...ab.......nRC..R....kAB..","move":"a4b4","from":"a4","to":"b4","flipped":["c4"],"legal":8,"losing":3,"winning":0},{"side":"red","before":"R..AKABNR...N.....B.........pp.P.P..p...C...P....p...C..p.C.PNP...ab.......nRC..R....kAB..","move":"f9h9","from":"f9","to":"h9","flipped":["d9"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"R..AKABNR...N.....B.........pp.P.P..p...C...P....p...C..p.C.PNP...ab.......NR..CR....kAB..","move":"b4a4","from":"b4","to":"a4","flipped":["a3"],"legal":10,"losing":10,"winning":0},{"side":"red","before":"R..AKABNR...N.....b........p.p.P.P..p...C...P....p...C..p.C.PNP...ab.......NR..CR....kAB..","move":"h7g9","from":"h7","to":"g9","flipped":[],"legal":43,"losing":0,"winning":1,"after":"R..AKABNR...N.....b........p.p.P.P..p...C...P....p...C..p.C.P.P...ab.......NR.NCR....kAB.."}]},{"tag":"g14","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.C................p.p.p.p.p.c.....c..........rNbakabnr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":38,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.p.P.P.C................p.p.p.p.p.c..c.............rNbakabnr","move":"h3b3","from":"h3","to":"b3","flipped":["b8"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.p.P.P.C................p.p.p.p.p.C..c.............rNbakabnr","move":"e4e3","from":"e4","to":"e3","flipped":[],"legal":26,"losing":8,"winning":0},{"side":"red","before":"RNBAKABNR..........C..p....P.P...P.P.C................p.p.p.p.p.C..c.............rNbakabnr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":41,"losing":37,"winning":0},{"side":"black","before":"RNB.KABNR....A.....C..p....P.P...P.P.C................p.p.p.p.p.C..c.............rNbakabnr","move":"a10a8","from":"a10","to":"a8","flipped":["b8"],"legal":25,"losing":8,"winning":0},{"side":"red","before":"RNB.KABNR....A.....C..p....P.P...P.P.C................p.p.p.p.prc..c..............Nbakabnr","move":"b3b4","from":"b3","to":"b4","flipped":["b8"],"legal":35,"losing":3,"winning":0},{"side":"black","before":"RNB.KABNR....A........p....PCP...P.P.C................p.p.p.p.prC..c..............Nbakabnr","move":"e3d3","from":"e3","to":"d3","flipped":[],"legal":24,"losing":8,"winning":0},{"side":"red","before":"RNB.KABNR....A.......p.....PCP...P.P.C................p.p.p.p.prC..c..............Nbakabnr","move":"b5a5","from":"b5","to":"a5","flipped":["a8"],"legal":37,"losing":3,"winning":0},{"side":"black","before":"RNB.KABNR....A.......p.....PCP...P.PC.................p.p.p.p.pRC..c..............Nbakabnr","move":"a7a6","from":"a7","to":"a6","flipped":["a5"],"legal":23,"losing":8,"winning":0},{"side":"red","before":"RNB.KABNR....A.......p.....PCP...P.Pc........p..........p.p.p.pRC..c..............Nbakabnr","move":"b4b5","from":"b4","to":"b5","flipped":[],"legal":33,"losing":28,"winning":0},{"side":"black","before":"RNB.KABNR....A.......p.....P.P...P.PcC.......p..........p.p.p.pRC..c..............Nbakabnr","move":"d3c3","from":"d3","to":"c3","flipped":[],"legal":22,"losing":8,"winning":0},{"side":"red","before":"RNB.KABNR....A......p......P.P...P.PcC.......p..........p.p.p.pRC..c..............Nbakabnr","move":"i4i5","from":"i4","to":"i5","flipped":[],"legal":39,"losing":12,"winning":0},{"side":"black","before":"RNB.KABNR....A......p......P.P...P..cC......Pp..........p.p.p.pRC..c..............Nbakabnr","move":"c3c2","from":"c3","to":"c2","flipped":["c1"],"legal":22,"losing":8,"winning":0},{"side":"red","before":"RNb.KABNR..p.A.............P.P...P..cC......Pp..........p.p.p.pRC..c..............Nbakabnr","move":"b1a3","from":"b1","to":"a3","flipped":["c2"],"legal":38,"losing":12,"winning":0},{"side":"black","before":"R.b.KABNR..P.A....N........P.P...P..cC......Pp..........p.p.p.pRC..c..............Nbakabnr","move":"g10i8","from":"g10","to":"i8","flipped":[],"legal":20,"losing":8,"winning":0},{"side":"red","before":"R.b.KABNR..P.A....N........P.P...P..cC......Pp..........p.p.p.pRC..c...b..........Nbaka.nr","move":"a8a10","from":"a8","to":"a10","flipped":["a6"],"legal":39,"losing":12,"winning":0},{"side":"black","before":"R.b.KABNR..P.A....N........P.P...P..cC......PP..........p.p.p.p.C..c...b.........RNbaka.nr","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":20,"losing":7,"winning":0},{"side":"red","before":"R.b.KABNR..P.A....N........P.P...P..cC......PP.p..........p.p.p.C..c...b.........RNbaka.nr","move":"b10c8","from":"b10","to":"c8","flipped":["d10","e7"],"legal":43,"losing":12,"winning":0},{"side":"black","before":"R.b.KABNR..P.A....N........P.P...P..cC......PP.p..........P.p.p.CN.c...b.........R.bAka.nr","move":"i8g6","from":"i8","to":"g6","flipped":[],"legal":17,"losing":6,"winning":0},{"side":"red","before":"R.b.KABNR..P.A....N........P.P...P..cC......PP.p...b......P.p.p.CN.c.............R.bAka.nr","move":"c8d6","from":"c8","to":"d6","flipped":["e8"],"legal":48,"losing":14,"winning":0},{"side":"black","before":"R.b.KABNR..P.A....N........P.P...P..cC......PP.pN..b......P.p.p.C..C.............R.bAka.nr","move":"c6c5","from":"c6","to":"c5","flipped":["c4","b5"],"legal":12,"losing":2,"winning":0},{"side":"red","before":"R.b.KABNR..P.A....N........P.p...P..ccp.....PP..N..b......P.p.p.C..C.............R.bAka.nr","move":"a1b1","from":"a1","to":"b1","flipped":["b5","c1"],"legal":45,"losing":42,"winning":0},{"side":"black","before":".RB.KABNR..P.A....N........P.p...P..cCp.....PP..N..b......P.p.p.C..C.............R.bAka.nr","move":"f10e9","from":"f10","to":"e9","flipped":["d10"],"legal":14,"losing":2,"winning":0},{"side":"red","before":".RB.KABNR..P.A....N........P.p...P..cCp.....PP..N..b......P.p.p.C..C........a....R.bak..nr","move":"e8g8","from":"e8","to":"g8","flipped":["g6"],"legal":50,"losing":0,"winning":0},{"side":"black","before":".RB.KABNR..P.A....N........P.p...P..cCp.....PP..N..B......P.p.p.C....C......a....R.bak..nr","move":"e9f8","from":"e9","to":"f8","flipped":[],"legal":15,"losing":12,"winning":0},{"side":"red","before":".RB.KABNR..P.A....N........P.p...P..cCp.....PP..N..B......P.p.p.C...aC...........R.bak..nr","move":"e7e8","from":"e7","to":"e8","flipped":["f8"],"legal":53,"losing":0,"winning":0},{"side":"black","before":".RB.KABNR..P.A....N........P.p...P..cCp.....PP..N..B........p.p.C..PAC...........R.bak..nr","move":"i7i6","from":"i7","to":"i6","flipped":["i5"],"legal":13,"losing":13,"winning":0},{"side":"red","before":".RB.KABNR..P.A....N........P.p...P..cCp.....pP..N..B.p......p...C..PAC...........R.bak..nr","move":"e8e9","from":"e8","to":"e9","flipped":[],"legal":49,"losing":0,"winning":1,"after":".RB.KABNR..P.A....N........P.p...P..cCp.....pP..N..B.p......p...C...AC......P....R.bak..nr"}]},{"tag":"g15","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c..b..c..........rn.akabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C.....C.p.p.p.p.p.c..b..c..........rN.akabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":26,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P.P..........C.....C.p.p.p.p.p.c..b..c.....a....rN.ak.bNr","move":"b10d9","from":"b10","to":"d9","flipped":["e7","c7","b8"],"legal":47,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C.....C.p.P.P.p.p.C..b..c....Na....r..ak.bNr","move":"a10c10","from":"a10","to":"c10","flipped":["c7"],"legal":21,"losing":15,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P.P..........C.....C.p.p.P.p.p.C..b..c....Na......rak.bNr","move":"b6c6","from":"b6","to":"c6","flipped":["c10"],"legal":53,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P...........C....C.p.p.P.p.p.C..b..c....Na......Rak.bNr","move":"h8h9","from":"h8","to":"h9","flipped":["h1","d9"],"legal":16,"losing":4,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P...........C....C.p.p.P.p.p.C..b.......na..c...Rak.bNr","move":"c10c9","from":"c10","to":"c9","flipped":["c7","d9"],"legal":53,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR..................P.P.P.P.P...........C....C.p.P.P.p.p.C..b......RNa..c....ak.bNr","move":"h9h8","from":"h9","to":"h8","flipped":["b8"],"legal":17,"losing":16,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P...........C....C.p.P.P.p.p.c..b..c...RNa.......ak.bNr","move":"c9c8","from":"c9","to":"c8","flipped":["e8","b8"],"legal":46,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR..................P.P.P.P.P...........C....C.p.P.P.p.p.CR.B..c....Na.......ak.bNr","move":"h8i8","from":"h8","to":"i8","flipped":["i4","c8"],"legal":17,"losing":17,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.p...........C....C.p.P.P.p.p.Cr.B...c...Na.......ak.bNr","move":"b8b10","from":"b8","to":"b10","flipped":[],"legal":52,"losing":1,"winning":1,"after":"RNBAKABnR..................P.P.P.P.p...........C....C.p.P.P.p.p..r.B...c...Na.....C.ak.bNr"}]},{"tag":"g16","result":"black","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNB.KABNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.....C.P.P.P.P.P.c................p.p.p.p.p.......c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":38,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c.....C..........p.p.p.p.p.......c..........rnbakabNr","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":42,"losing":34,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c.....C..........p.p.p.p.p.......c.....a....rnb.kabNr","move":"h10g8","from":"h10","to":"g8","flipped":["f10","e9","e7"],"legal":42,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c.....C..........p.p.P.p.p......Nc.....A....rnb.kAb.r","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":34,"losing":0,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c.....C.......p..p.p.P...p......Nc.....A....rnb.kAb.r","move":"h5i5","from":"h5","to":"i5","flipped":["i10"],"legal":49,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c......C......p..p.p.P...p......Nc.....A....rnb.kAb.R","move":"h8i8","from":"h8","to":"i8","flipped":["i5"],"legal":36,"losing":0,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c......c......p..p.p.P...p......N.c....A....rnb.kAb.R","move":"b3i3","from":"b3","to":"i3","flipped":["i5"],"legal":40,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A............CP.P.P.P.P.c......C......p..p.p.P...p......N.c....A....rnb.kAb.R","move":"i8i9","from":"i8","to":"i9","flipped":["i5"],"legal":30,"losing":0,"winning":0},{"side":"red","before":"RnB.KABNR....A............CP.P.P.P.P.c......c......p..p.p.P...p......N......A...crnb.kAb.R","move":"c1a3","from":"c1","to":"a3","flipped":[],"legal":34,"losing":4,"winning":0},{"side":"black","before":"Rn..KABNR....A....B.......CP.P.P.P.P.c......c......p..p.p.P...p......N......A...crnb.kAb.R","move":"i5i6","from":"i5","to":"i6","flipped":["i3"],"legal":40,"losing":0,"winning":0},{"side":"red","before":"Rn..KABNR....A....B.......cP.P.P.P.P.c.............p.cp.p.P...p......N......A...crnb.kAb.R","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":25,"losing":22,"winning":0},{"side":"black","before":"Rn..KA.NR....A....B...B...cP.P.P.P.P.c.............p.cp.p.P...p......N......A...crnb.kAb.R","move":"i3g3","from":"i3","to":"g3","flipped":["a3"],"legal":39,"losing":0,"winning":0},{"side":"red","before":"Rn..KA.NR....A....b...B.c..P.P.P.P.P.c.............p.cp.p.P...p......N......A...crnb.kAb.R","move":"i1i3","from":"i1","to":"i3","flipped":["g3"],"legal":28,"losing":27,"winning":0},{"side":"black","before":"Rn..KA.N.....A....b...B.C.RP.P.P.P.P.c.............p.cp.p.P...p......N......A...crnb.kAb.R","move":"a3c1","from":"a3","to":"c1","flipped":["e3"],"legal":37,"losing":0,"winning":0},{"side":"red","before":"Rnb.KA.N.....A........b.C.RP.P.P.P.P.c.............p.cp.p.P...p......N......A...crnb.kAb.R","move":"e2d1","from":"e2","to":"d1","flipped":[],"legal":29,"losing":1,"winning":0},{"side":"black","before":"RnbAKA.N..............b.C.RP.P.P.P.P.c.............p.cp.p.P...p......N......A...crnb.kAb.R","move":"b5a5","from":"b5","to":"a5","flipped":["a1"],"legal":39,"losing":0,"winning":0},{"side":"red","before":"rnbAKA.N..............b.C.RP.P.P.P.Pc..............p.cp.p.P...p......N......A...crnb.kAb.R","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":25,"losing":1,"winning":0},{"side":"black","before":"rnb.KA.N.....A........b.C.RP.P.P.P.Pc..............p.cp.p.P...p......N......A...crnb.kAb.R","move":"e3g5","from":"e3","to":"g5","flipped":["i3"],"legal":35,"losing":0,"winning":0},{"side":"red","before":"rnb.KA.N.....A..........C.rP.P.P.P.Pc.....b........p.cp.p.P...p......N......A...crnb.kAb.R","move":"g3h3","from":"g3","to":"h3","flipped":[],"legal":27,"losing":4,"winning":0},{"side":"black","before":"rnb.KA.N.....A...........CrP.P.P.P.Pc.....b........p.cp.p.P...p......N......A...crnb.kAb.R","move":"a1a3","from":"a1","to":"a3","flipped":["a4","h3"],"legal":32,"losing":2,"winning":0},{"side":"red","before":".nb.KA.N.....A....r......crp.P.P.P.Pc.....b........p.cp.p.P...p......N......A...crnb.kAb.R","move":"i10h10","from":"i10","to":"h10","flipped":["h3","g10"],"legal":19,"losing":17,"winning":0},{"side":"black","before":".nb.KA.N.....A....r......Crp.P.P.P.Pc.....b........p.cp.p.P...p......N......A...crnb.kABR.","move":"a3d3","from":"a3","to":"d3","flipped":["h3"],"legal":36,"losing":0,"winning":0},{"side":"red","before":".nb.KA.N.....A.......r...crp.P.P.P.Pc.....b........p.cp.p.P...p......N......A...crnb.kABR.","move":"h10h8","from":"h10","to":"h8","flipped":["h3"],"legal":25,"losing":25,"winning":0},{"side":"black","before":".nb.KA.N.....A.......r...Crp.P.P.P.Pc.....b........p.cp.p.P...p......NR.....A...crnb.kAB..","move":"d3d1","from":"d3","to":"d1","flipped":[],"legal":46,"losing":0,"winning":1,"after":".nbrKA.N.....A...........Crp.P.P.P.Pc.....b........p.cp.p.P...p......NR.....A...crnb.kAB.."}]},{"tag":"g17","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"b8d8","from":"b8","to":"d8","flipped":[],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p...cc.............rNbakabNr","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P.p.P.P..........C.....C.p.p.p.p.p...cc.............rNbakabNr","move":"d8d5","from":"d8","to":"d5","flipped":[],"legal":31,"losing":5,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P.p.P.P...c......C.....C.p.p.p.p.p....c.............rNbakabNr","move":"b6a6","from":"b6","to":"a6","flipped":["a10"],"legal":50,"losing":3,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P.p.P.P...c.....C......C.p.p.p.p.p....c.............RNbakabNr","move":"i7i6","from":"i7","to":"i6","flipped":[],"legal":37,"losing":9,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P.p.P.P...c.....C......Cpp.p.p.p......c.............RNbakabNr","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":46,"losing":3,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P.p.P.P...c.....C......Cpp.P.p.p..N...c.............R.bakabNr","move":"d5d9","from":"d5","to":"d9","flipped":[],"legal":35,"losing":34,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P.p.P.P.........C......Cpp.P.p.p..N...c.......c.....R.bakabNr","move":"a6d6","from":"a6","to":"d6","flipped":["d10","i6"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P.p.P.P............C...CPp.P.p.p..N...c.......c.....R.bAkabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":29,"losing":17,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P.p.P.P............C..pCPp.P.p....N...c.......c.....R.bAkabNr","move":"i6i7","from":"i6","to":"i7","flipped":[],"legal":49,"losing":0,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P.p.P.P............C..pC.p.P.p...PN...c.......c.....R.bAkabNr","move":"f10e9","from":"f10","to":"e9","flipped":["d10"],"legal":28,"losing":17,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P.p.P.P............C..pC.p.P.p...PN...c.......ca....R.bak.bNr","move":"a10a9","from":"a10","to":"a9","flipped":["d9"],"legal":50,"losing":0,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P.p.P.P............C..pC.p.P.p...PN...c....R..Ca......bak.bNr","move":"e8g8","from":"e8","to":"g8","flipped":["g4"],"legal":19,"losing":1,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P.p.p.P............C..pC.p.P.p...PN.....c..R..Ca......bak.bNr","move":"d9d7","from":"d9","to":"d7","flipped":["a7"],"legal":52,"losing":0,"winning":0},{"side":"black","before":"RN.AKABNR.............B....P.P.p.p.P............C..pC.P.PCp...PN.....c..R...a......bak.bNr","move":"e10f10","from":"e10","to":"f10","flipped":[],"legal":25,"losing":23,"winning":0},{"side":"red","before":"RN.AKABNR.............B....P.P.p.p.P............C..pC.P.PCp...PN.....c..R...a......ba.kbNr","move":"a1a2","from":"a1","to":"a2","flipped":[],"legal":49,"losing":0,"winning":0},{"side":"black","before":".N.AKABNRR............B....P.P.p.p.P............C..pC.P.PCp...PN.....c..R...a......ba.kbNr","move":"g4f4","from":"g4","to":"f4","flipped":[],"legal":25,"losing":23,"winning":0},{"side":"red","before":".N.AKABNRR............B....P.P.pp..P............C..pC.P.PCp...PN.....c..R...a......ba.kbNr","move":"h6h2","from":"h6","to":"h2","flipped":[],"legal":56,"losing":0,"winning":0},{"side":"black","before":".N.AKABNRR......C.....B....P.P.pp..P............C..p..P.PCp...PN.....c..R...a......ba.kbNr","move":"f4f3","from":"f4","to":"f3","flipped":["e3"],"legal":23,"losing":23,"winning":0},{"side":"red","before":".N.AKABNRR......C.....bp...P.P.p...P............C..p..P.PCp...PN.....c..R...a......ba.kbNr","move":"h2f2","from":"h2","to":"f2","flipped":[],"legal":55,"losing":1,"winning":1,"after":".N.AKABNRR....C.......bp...P.P.p...P............C..p..P.PCp...PN.....c..R...a......ba.kbNr"}]},{"tag":"g18","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"b8b9","from":"b8","to":"b9","flipped":["b1"],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"b6a6","from":"b6","to":"a6","flipped":["a10"],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P.P.........C......C.p.p.p.p.p....c.....c.......RNbakabNr","move":"b9b5","from":"b9","to":"b5","flipped":[],"legal":39,"losing":9,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P.c.......C......C.p.p.p.p.p....c.............RNbakabNr","move":"c4c5","from":"c4","to":"c5","flipped":[],"legal":44,"losing":39,"winning":0},{"side":"black","before":"RnBAKABNR..................P...p.P.P.cP......C......C.p.p.p.p.p....c.............RNbakabNr","move":"b1a3","from":"b1","to":"a3","flipped":[],"legal":33,"losing":9,"winning":0},{"side":"red","before":"R.BAKABNR.........n........P...p.P.P.cP......C......C.p.p.p.p.p....c.............RNbakabNr","move":"a1a2","from":"a1","to":"a2","flipped":["a3"],"legal":43,"losing":40,"winning":0},{"side":"black","before":"..BAKABNRR........N........P...p.P.P.cP......C......C.p.p.p.p.p....c.............RNbakabNr","move":"i7i6","from":"i7","to":"i6","flipped":[],"legal":32,"losing":9,"winning":0},{"side":"red","before":"..BAKABNRR........N........P...p.P.P.cP......C......Cpp.p.p.p......c.............RNbakabNr","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":51,"losing":4,"winning":0},{"side":"black","before":"..BAKABNRR........N........P...p.P.P.cP......C......Cpp.P.p.p..N...c.............R.bakabNr","move":"b5b8","from":"b5","to":"b8","flipped":[],"legal":31,"losing":30,"winning":0},{"side":"red","before":"..BAKABNRR........N........P...p.P.P..P......C......Cpp.P.p.p..Nc..c.............R.bakabNr","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":53,"losing":3,"winning":0},{"side":"black","before":"..BAKABNRR........N........P...p.P.P..P......C......Cpp.P.p.P..Nc..c...N.........R.bakab.r","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":27,"losing":26,"winning":0},{"side":"red","before":"..BAKABNRR........N........P...p.P.P..P......C......Cpp.P.p.P..Nc..c...n........rR.bakab..","move":"a10a9","from":"a10","to":"a9","flipped":["i9"],"legal":55,"losing":3,"winning":0},{"side":"black","before":"..BAKABNRR........N........P...p.P.P..P......C......Cpp.P.p.P..Nc..c...nR.......R..bakab..","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":26,"losing":24,"winning":0},{"side":"red","before":"..BAKABNRR........N........P...p.P.P..P......C......Cpp.P.p.P..Nc..c...nR...a...R..b.kab..","move":"a2b2","from":"a2","to":"b2","flipped":["b8"],"legal":60,"losing":3,"winning":0},{"side":"black","before":"..BAKABNR.R.......N........P...p.P.P..P......C......Cpp.P.p.P..NC..c...nR...a...R..b.kab..","move":"i8g9","from":"i8","to":"g9","flipped":[],"legal":15,"losing":15,"winning":0},{"side":"red","before":"..BAKABNR.R.......N........P...p.P.P..P......C......Cpp.P.p.P..NC..c....R...a.n.R..b.kab..","move":"b8b10","from":"b8","to":"b10","flipped":[],"legal":75,"losing":1,"winning":1,"after":"..BAKABNR.R.......N........P...p.P.P..P......C......Cpp.P.p.P..N...c....R...a.n.R.Cb.kab.."}]},{"tag":"g19","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"b8b9","from":"b8","to":"b9","flipped":["b1"],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"h6i6","from":"h6","to":"i6","flipped":["i10"],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P.P..........C......Cp.p.p.p.p....c.....c.......rNbakabNR","move":"b9i9","from":"b9","to":"i9","flipped":["i6"],"legal":34,"losing":9,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P..........C......cp.p.p.p.p....c............crNbakabNR","move":"i4i5","from":"i4","to":"i5","flipped":["i6"],"legal":35,"losing":26,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P..........P.C......Cp.p.p.p.p....c............crNbakabNR","move":"i9i8","from":"i9","to":"i8","flipped":["i6"],"legal":34,"losing":9,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P..........P.C......cp.p.p.p.p....c...c.........rNbakabNR","move":"b6h6","from":"b6","to":"h6","flipped":[],"legal":35,"losing":27,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P..........P.......Ccp.p.p.p.p....c...c.........rNbakabNR","move":"e7e6","from":"e7","to":"e6","flipped":[],"legal":27,"losing":8,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P..........P....p..Ccp.p...p.p....c...c.........rNbakabNR","move":"h10g8","from":"h10","to":"g8","flipped":["f10","i7"],"legal":30,"losing":1,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P..........P....p..Ccp.p...p.P....c.N.c.........rNbakAb.R","move":"e4e3","from":"e4","to":"e3","flipped":[],"legal":23,"losing":2,"winning":0},{"side":"red","before":"RnBAKABNR.............p....P.P...P..........P....p..Ccp.p...p.P....c.N.c.........rNbakAb.R","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":35,"losing":31,"winning":0},{"side":"black","before":"RnBAK.BNR....A........p....P.P...P..........P....p..Ccp.p...p.P....c.N.c.........rNbakAb.R","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":22,"losing":2,"winning":0},{"side":"red","before":"R.BAK.BNR....A....n...p....P.p...P..........P....p..Ccp.p...p.P....c.N.c.........rNbakAb.R","move":"a1a2","from":"a1","to":"a2","flipped":["a3"],"legal":34,"losing":31,"winning":0},{"side":"black","before":"..BAK.BNRR...A....N...p....P.p...P..........P....p..Ccp.p...p.P....c.N.c.........rNbakAb.R","move":"i8h8","from":"i8","to":"h8","flipped":["h1"],"legal":23,"losing":2,"winning":0},{"side":"red","before":"..BAK.BnRR...A....N...p....P.p...P..........P....p..Ccp.p...p.P....c.Nc..........rNbakAb.R","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":33,"losing":4,"winning":0},{"side":"black","before":"..BAK.BnRR...A....N...p....P.p...P..........P....p..Ccp.P...p.PN...c.Nc..........r.bakAb.R","move":"e8b8","from":"e8","to":"b8","flipped":[],"legal":25,"losing":23,"winning":0},{"side":"red","before":"..BAK.BnRR...A....N...p....P.p...P..........P....p..Ccp.P...p.PNc....Nc..........r.bakAb.R","move":"a2b2","from":"a2","to":"b2","flipped":["b8"],"legal":35,"losing":4,"winning":0},{"side":"black","before":"..BAK.BnR.R..A....N...p....P.p...P..........P....p..Ccp.P...p.PNC....Nc..........r.bakAb.R","move":"a10b10","from":"a10","to":"b10","flipped":["b8"],"legal":21,"losing":3,"winning":0},{"side":"red","before":"..BAK.BnR.R..A....N...p....P.p...P..........P....p..Ccp.P...p.PNc....Nc...........rbakAb.R","move":"i10i8","from":"i10","to":"i8","flipped":["h8"],"legal":40,"losing":4,"winning":0},{"side":"black","before":"..BAK.BnR.R..A....N...p....P.p...P..........P....p..Ccp.P...p.PNc....NCR..........rbakAb..","move":"d10e9","from":"d10","to":"e9","flipped":["f10"],"legal":26,"losing":12,"winning":0},{"side":"red","before":"..BAK.BnR.R..A....N...p....P.p...P..........P....p..Ccp.P...p.PNc....NCR....a.....rb.kab..","move":"g8e7","from":"g8","to":"e7","flipped":[],"legal":39,"losing":4,"winning":0},{"side":"black","before":"..BAK.BnR.R..A....N...p....P.p...P..........P....p..Ccp.P.N.p.PNc.....CR....a.....rb.kab..","move":"e9f8","from":"e9","to":"f8","flipped":[],"legal":29,"losing":25,"winning":0},{"side":"red","before":"..BAK.BnR.R..A....N...p....P.p...P..........P....p..Ccp.P.N.p.PNc...a.CR..........rb.kab..","move":"e7d9","from":"e7","to":"d9","flipped":["f10","f8","b10","b8"],"legal":44,"losing":4,"winning":0},{"side":"black","before":"..BAK.BnR.R..A....N...p....P.p...P..........P....p..Ccp.P...p.PNC...A.CR...N......Rb.kAb..","move":"h1i3","from":"h1","to":"i3","flipped":["g4"],"legal":13,"losing":3,"winning":0},{"side":"red","before":"..BAK.B.R.R..A....N...p...nP.p...p..........P....p..Ccp.P...p.PNC...A.CR...N......Rb.kAb..","move":"i1i2","from":"i1","to":"i2","flipped":["i3"],"legal":50,"losing":46,"winning":0},{"side":"black","before":"..BAK.B...R..A...RN...p...NP.p...p..........P....p..Ccp.P...p.PNC...A.CR...N......Rb.kAb..","move":"g4g3","from":"g4","to":"g3","flipped":[],"legal":14,"losing":3,"winning":0},{"side":"red","before":"..BAK.B...R..A...RN...p.p.NP.p..............P....p..Ccp.P...p.PNC...A.CR...N......Rb.kAb..","move":"b10a10","from":"b10","to":"a10","flipped":["c10"],"legal":55,"losing":3,"winning":0},{"side":"black","before":"..BAK.B...R..A...RN...p.p.NP.p..............P....p..Ccp.P...p.PNC...A.CR...N.....R.B.kAb..","move":"c4b4","from":"c4","to":"b4","flipped":["a4"],"legal":14,"losing":14,"winning":0},{"side":"red","before":"..BAK.B...R..A...RN...p.p.Npp...............P....p..Ccp.P...p.PNC...A.CR...N.....R.B.kAb..","move":"b8b10","from":"b8","to":"b10","flipped":[],"legal":52,"losing":3,"winning":1,"after":"..BAK.B...R..A...RN...p.p.Npp...............P....p..Ccp.P...p.PN....A.CR...N.....RCB.kAb.."}]},{"tag":"g20","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P...............pC.p.p.p...p.c.....c..........rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C....pC.p.p.p...p.c.....c..........rNbakabNr","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":32,"losing":24,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P.P..........C....pC.p.p.p...p.c.....c.....a....rNb.kabNr","move":"a1a3","from":"a1","to":"a3","flipped":[],"legal":40,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR.........R........P.P.P.P.P..........C....pC.p.p.p...p.c.....c.....a....rNb.kabNr","move":"c10a8","from":"c10","to":"a8","flipped":[],"legal":33,"losing":4,"winning":0},{"side":"red","before":".NBAKABNR.........R........P.P.P.P.P..........C....pC.p.p.p...pbc.....c.....a....rN..kabNr","move":"a3d3","from":"a3","to":"d3","flipped":[],"legal":46,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR............R.....P.P.P.P.P..........C....pC.p.p.p...pbc.....c.....a....rN..kabNr","move":"b8d8","from":"b8","to":"d8","flipped":["d1"],"legal":31,"losing":29,"winning":0},{"side":"red","before":".NBaKABNR............R.....P.P.P.P.P..........C....pC.p.p.p...pb..c...c.....a....rN..kabNr","move":"d3d4","from":"d3","to":"d4","flipped":["d8","d1"],"legal":52,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR..................P.PRP.P.P..........C....pC.p.p.p...pb..C...c.....a....rN..kabNr","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":21,"losing":19,"winning":0},{"side":"red","before":".NBAKABNR..................P.PRP.P.P..........C....pC.p.p.p...pb..Cb..c.....a....rN..ka.Nr","move":"d8c8","from":"d8","to":"c8","flipped":["h8"],"legal":53,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR..................P.PRP.P.P..........C....pC.p.p.p...pb.C.b..C.....a....rN..ka.Nr","move":"e9d8","from":"e9","to":"d8","flipped":[],"legal":17,"losing":16,"winning":0},{"side":"red","before":".NBAKABNR..................P.PRP.P.P..........C....pC.p.p.p...pb.Cab..C..........rN..ka.Nr","move":"h6i6","from":"h6","to":"i6","flipped":["i10"],"legal":53,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR..................P.PRP.P.P..........C....p.Cp.p.p...pb.Cab..C..........rN..ka.NR","move":"a8c10","from":"a8","to":"c10","flipped":[],"legal":14,"losing":5,"winning":0},{"side":"red","before":".NBAKABNR..................P.PRP.P.P..........C....p.Cp.p.p...p..Cab..C..........rNb.ka.NR","move":"h10f9","from":"h10","to":"f9","flipped":["e7","d8"],"legal":56,"losing":0,"winning":0},{"side":"black","before":".NBAKABNR..................P.PRP.P.P..........C....p.Cp.p.P...p..CAb..C......N...rNb.ka..R","move":"a10a9","from":"a10","to":"a9","flipped":["f9"],"legal":10,"losing":10,"winning":0},{"side":"red","before":".NBAKABNR..................P.PRP.P.P..........C....p.Cp.p.P...p..CAb..C.r....n....Nb.ka..R","move":"h8h10","from":"h8","to":"h10","flipped":[],"legal":59,"losing":0,"winning":1,"after":".NBAKABNR..................P.PRP.P.P..........C....p.Cp.p.P...p..CAb....r....n....Nb.ka.CR"}]},{"tag":"g21","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAK.BNR....A.....C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b10a8","from":"b10","to":"a8","flipped":[],"legal":34,"losing":7,"winning":0},{"side":"red","before":"RNBAK.BNR....A.....C.......P.P.p.P.P................C.p.p.p.p.pnc..c.............r.bakabNr","move":"b3b6","from":"b3","to":"b6","flipped":[],"legal":50,"losing":0,"winning":0},{"side":"black","before":"RNBAK.BNR....A.............P.P.p.P.P..........C.....C.p.p.p.p.pnc..c.............r.bakabNr","move":"b8b9","from":"b8","to":"b9","flipped":["b1"],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RnBAK.BNR....A.............P.P.p.P.P..........C.....C.p.p.p.p.pn...c.....c.......r.bakabNr","move":"h6e6","from":"h6","to":"e6","flipped":["e8"],"legal":45,"losing":0,"winning":0},{"side":"black","before":"RnBAK.BNR....A.............P.P.p.P.P..........C..C....p.p.p.p.pn...C.....c.......r.bakabNr","move":"i7i6","from":"i7","to":"i6","flipped":[],"legal":30,"losing":1,"winning":0},{"side":"red","before":"RnBAK.BNR....A.............P.P.p.P.P..........C..C...pp.p.p.p..n...C.....c.......r.bakabNr","move":"b6a6","from":"b6","to":"a6","flipped":["a8","i6"],"legal":43,"losing":0,"winning":0},{"side":"black","before":"RnBAK.BNR....A.............P.P.p.P.P.........C...C...Pp.p.p.p..N...C.....c.......r.bakabNr","move":"b9b8","from":"b9","to":"b8","flipped":[],"legal":32,"losing":28,"winning":0},{"side":"red","before":"RnBAK.BNR....A.............P.P.p.P.P.........C...C...Pp.p.p.p..Nc..C.............r.bakabNr","move":"e8g8","from":"e8","to":"g8","flipped":[],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RnBAK.BNR....A.............P.P.p.P.P.........C...C...Pp.p.p.p..Nc....C...........r.bakabNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":30,"losing":29,"winning":0},{"side":"red","before":"RnBAK.BNR....A.............P.P.p.P.P.........C...C...Pp.p.p.p..Nc..b.C...........r..akabNr","move":"g8i8","from":"g8","to":"i8","flipped":["b8"],"legal":37,"losing":0,"winning":0},{"side":"black","before":"RnBAK.BNR....A.............P.P.p.P.P.........C...C...Pp.p.p.p..NC..b...C.........r..akabNr","move":"a10b10","from":"a10","to":"b10","flipped":["b8"],"legal":17,"losing":14,"winning":0},{"side":"red","before":"RnBAK.BNR....A.............P.P.p.P.P.........C...C...Pp.p.p.p..Nc..b...C..........r.akabNr","move":"a6b6","from":"a6","to":"b6","flipped":["b10"],"legal":37,"losing":0,"winning":0},{"side":"black","before":"RnBAK.BNR....A.............P.P.p.P.P..........C..C...Pp.p.p.p..Nc..b...C..........R.akabNr","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":19,"losing":9,"winning":0},{"side":"red","before":"R.BAK.BNR....A....n........P.p.p.P.P..........C..C...Pp.p.p.p..Nc..b...C..........R.akabNr","move":"a1a2","from":"a1","to":"a2","flipped":["a3"],"legal":42,"losing":37,"winning":0},{"side":"black","before":"..BAK.BNRR...A....N........P.p.p.P.P..........C..C...Pp.p.p.p..Nc..b...C..........R.akabNr","move":"e4e3","from":"e4","to":"e3","flipped":["e2"],"legal":20,"losing":9,"winning":0},{"side":"red","before":"..BAK.BNRR...a....N...p....P.p...P.P..........C..C...Pp.p.p.p..Nc..b...C..........R.akabNr","move":"a2d2","from":"a2","to":"d2","flipped":["d10","e2"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"..BAK.BNR...RA....N...p....P.p...P.P..........C..C...Pp.p.p.p..Nc..b...C..........R.AkabNr","move":"f10e9","from":"f10","to":"e9","flipped":["d10"],"legal":18,"losing":8,"winning":0},{"side":"red","before":"..BAK.BNR...RA....N...p....P.p...P.P..........C..C...Pp.p.p.p..Nc..b...C....a.....R.ak.bNr","move":"d2d8","from":"d2","to":"d8","flipped":["d10","e8","b8"],"legal":51,"losing":3,"winning":0},{"side":"black","before":"..BAK.BNR....A....N...p....P.p...P.P..........C..C...Pp.p.p.p..NC.RB...C....a.....R.Ak.bNr","move":"c4d4","from":"c4","to":"d4","flipped":[],"legal":12,"losing":1,"winning":0},{"side":"red","before":"..BAK.BNR....A....N...p....P..p..P.P..........C..C...Pp.p.p.p..NC.RB...C....a.....R.Ak.bNr","move":"b8b9","from":"b8","to":"b9","flipped":[],"legal":53,"losing":3,"winning":0},{"side":"black","before":"..BAK.BNR....A....N...p....P..p..P.P..........C..C...Pp.p.p.p..N..RB...C.C..a.....R.Ak.bNr","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":12,"losing":12,"winning":0},{"side":"red","before":"..BAK.BNR....A....N...p....P..p..P.P..........C..C...Pp.p.p.p..N..RB...c.C..a...r.R.Ak.bN.","move":"a8c9","from":"a8","to":"c9","flipped":[],"legal":52,"losing":4,"winning":1,"after":"..BAK.BNR....A....N...p....P..p..P.P..........C..C...Pp.p.p.p.....RB...c.CN.a...r.R.Ak.bN."}]},{"tag":"g22","result":"black","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b7","from":"b3","to":"b7","flipped":["b10","e7"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"a10a9","from":"a10","to":"a9","flipped":[],"legal":27,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P................C.pCp.P.p.p.c..c....r.........NbakabNr","move":"h6b6","from":"h6","to":"b6","flipped":["b8"],"legal":45,"losing":3,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C.......pCp.P.p.p.C..c....r.........NbakabNr","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":31,"losing":8,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P..........Cp......pC..P.p.p.C..c....r.........NbakabNr","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":36,"losing":3,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........Cp......pC..P.P.p.C..c...Nr.........Nbakab.r","move":"a9g9","from":"a9","to":"g9","flipped":["g7"],"legal":28,"losing":23,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P..........Cp......pC..P.p.p.C..c...N......r...Nbakab.r","move":"b6b4","from":"b6","to":"b4","flipped":["e4"],"legal":35,"losing":3,"winning":0},{"side":"black","before":"RNBAKABNR..................PCP.P.P.P...........p......pC..P.p.p.C..c...N......r...Nbakab.r","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":25,"losing":8,"winning":0},{"side":"red","before":"RNBAKABNR..................PCP.P.P.P...........p......pC..P.p.p.C..c...n......r.r.Nbakab..","move":"b8a8","from":"b8","to":"a8","flipped":["i8"],"legal":36,"losing":2,"winning":0},{"side":"black","before":"RNBAKABNR..................PCP.P.P.P...........p......pC..P.p.pC...c...N......r.r.Nbakab..","move":"e8b8","from":"e8","to":"b8","flipped":["b4"],"legal":24,"losing":8,"winning":0},{"side":"red","before":"RNBAKABNR..................PcP.P.P.P...........p......pC..P.p.pCc......N......r.r.Nbakab..","move":"b1c3","from":"b1","to":"c3","flipped":[],"legal":30,"losing":2,"winning":0},{"side":"black","before":"R.BAKABNR...........N......PcP.P.P.P...........p......pC..P.p.pCc......N......r.r.Nbakab..","move":"b4b1","from":"b4","to":"b1","flipped":["d1"],"legal":31,"losing":7,"winning":0},{"side":"red","before":"RcBaKABNR...........N......P.P.P.P.P...........p......pC..P.p.pCc......N......r.r.Nbakab..","move":"c3e2","from":"c3","to":"e2","flipped":[],"legal":32,"losing":4,"winning":0},{"side":"black","before":"RcBaKABNR....N.............P.P.P.P.P...........p......pC..P.p.pCc......N......r.r.Nbakab..","move":"g9g8","from":"g9","to":"g8","flipped":["i8"],"legal":31,"losing":7,"winning":0},{"side":"red","before":"RcBaKABNR....N.............P.P.P.P.P...........p......pC..P.p.pCc....r.n........r.Nbakab..","move":"e2c3","from":"e2","to":"c3","flipped":["d1","b1"],"legal":32,"losing":2,"winning":0},{"side":"black","before":"RCBAKABNR...........N......P.P.P.P.P...........p......pC..P.p.pCc....r.n........r.Nbakab..","move":"i9e9","from":"i9","to":"e9","flipped":["e7"],"legal":30,"losing":1,"winning":0},{"side":"red","before":"RCBAKABNR...........N......P.P.P.P.P...........p......pC..p.p.pCc....r.n....r.....Nbakab..","move":"b1b5","from":"b1","to":"b5","flipped":["b8"],"legal":35,"losing":0,"winning":0},{"side":"black","before":"R.BAKABNR...........N......P.P.P.P.P.C.........p......pC..p.p.pCC....r.n....r.....Nbakab..","move":"g8h8","from":"g8","to":"h8","flipped":["h1","b8"],"legal":24,"losing":16,"winning":0},{"side":"red","before":"R.BAKABnR...........N......P.P.P.P.P.C.........p......pC..p.p.pCc.....rn....r.....Nbakab..","move":"b10c8","from":"b10","to":"c8","flipped":["d10","e9","e7"],"legal":39,"losing":1,"winning":0},{"side":"black","before":"R.BAKABnR...........N......P.P.P.P.P.C.........p......pC..P.p.pCcN....rn....R......bAkab..","move":"h8e8","from":"h8","to":"e8","flipped":["e9","e7","c8"],"legal":23,"losing":20,"winning":0},{"side":"red","before":"R.BAKABnR...........N......P.P.P.P.P.C.........p......pC..p.p.pCcn.r...n....r......bAkab..","move":"b5c5","from":"b5","to":"c5","flipped":["c8"],"legal":38,"losing":1,"winning":0},{"side":"black","before":"R.BAKABnR...........N......P.P.P.P.P..C........p......pC..p.p.pCcN.r...n....r......bAkab..","move":"e8d8","from":"e8","to":"d8","flipped":["d10","d1","c8"],"legal":22,"losing":0,"winning":0},{"side":"red","before":"R.BaKABnR...........N......P.P.P.P.P..C........p......pC..p.p.pCcnr....n....r......bakab..","move":"c5i5","from":"c5","to":"i5","flipped":["i8"],"legal":36,"losing":1,"winning":0},{"side":"black","before":"R.BaKABnR...........N......P.P.P.P.P........C..p......pC..p.p.pCcnr....N....r......bakab..","move":"d8g8","from":"d8","to":"g8","flipped":["i8"],"legal":35,"losing":30,"winning":0},{"side":"red","before":"R.BaKABnR...........N......P.P.P.P.P........C..p......pC..p.p.pCcn...r.n....r......bakab..","move":"i5b5","from":"i5","to":"b5","flipped":["b8"],"legal":37,"losing":1,"winning":0},{"side":"black","before":"R.BaKABnR...........N......P.P.P.P.P.C.........p......pC..p.p.pCCn...r.n....r......bakab..","move":"c6c5","from":"c6","to":"c5","flipped":["c4","b5"],"legal":29,"losing":13,"winning":0},{"side":"red","before":"R.BaKABnR...........N......P.p.P.P.P.cp...............pC..p.p.pCCn...r.n....r......bakab..","move":"a1b1","from":"a1","to":"b1","flipped":["b5"],"legal":25,"losing":3,"winning":0},{"side":"black","before":".RBaKABnR...........N......P.p.P.P.P.Cp...............pC..p.p.pCCn...r.n....r......bakab..","move":"g8d8","from":"g8","to":"d8","flipped":[],"legal":31,"losing":5,"winning":0},{"side":"red","before":".RBaKABnR...........N......P.p.P.P.P.Cp...............pC..p.p.pCCnr....n....r......bakab..","move":"g1i3","from":"g1","to":"i3","flipped":[],"legal":30,"losing":1,"winning":0},{"side":"black","before":".RBaKA.nR...........N.....BP.p.P.P.P.Cp...............pC..p.p.pCCnr....n....r......bakab..","move":"h1f2","from":"h1","to":"f2","flipped":["g4","e4"],"legal":37,"losing":2,"winning":0},{"side":"red","before":".RBaKA..R.....n.....N.....BP.p.p.p.P.Cp...............pC..p.p.pCCnr....n....r......bakab..","move":"i1i2","from":"i1","to":"i2","flipped":["f2"],"legal":29,"losing":25,"winning":0},{"side":"black","before":".RBaKA........N..R..N.....BP.p.p.p.P.Cp...............pC..p.p.pCCnr....n....r......bakab..","move":"d1e2","from":"d1","to":"e2","flipped":["f1"],"legal":41,"losing":2,"winning":0},{"side":"red","before":".RB.Ka.......aN..R..N.....BP.p.p.p.P.Cp...............pC..p.p.pCCnr....n....r......bakab..","move":"b7d7","from":"b7","to":"d7","flipped":["d10","g7"],"legal":30,"losing":28,"winning":0},{"side":"black","before":".RB.Ka.......aN..R..N.....BP.p.p.p.P.Cp...............p..Cp.P.pCCnr....n....r......bAkab..","move":"c8b6","from":"c8","to":"b6","flipped":["a8","d7"],"legal":36,"losing":2,"winning":0},{"side":"red","before":".RB.Ka.......aN..R..N.....BP.p.p.p.P.Cp.......n.......p..cp.P.pcC.r....n....r......bAkab..","move":"b8b7","from":"b8","to":"b7","flipped":["e7"],"legal":29,"losing":0,"winning":0},{"side":"black","before":".RB.Ka.......aN..R..N.....BP.p.p.p.P.Cp.......n.......pC.cP.P.pc..r....n....r......bAkab..","move":"d8e8","from":"d8","to":"e8","flipped":["e7"],"legal":46,"losing":1,"winning":0},{"side":"red","before":".RB.Ka.......aN..R..N.....BP.p.p.p.P.Cp.......n.......pC.cp.P.pc...r...n....r......bAkab..","move":"c1e3","from":"c1","to":"e3","flipped":["c5"],"legal":29,"losing":1,"winning":0},{"side":"black","before":".R..Ka.......aN..R..N.B...BP.p.p.p.P.CP.......n.......pC.cp.P.pc...r...n....r......bAkab..","move":"e8c8","from":"e8","to":"c8","flipped":["c5"],"legal":44,"losing":0,"winning":0},{"side":"red","before":".R..Ka.......aN..R..N.B...BP.p.p.p.P.Cp.......n.......pC.cp.P.pc.r.....n....r......bAkab..","move":"b1d1","from":"b1","to":"d1","flipped":["d7"],"legal":31,"losing":0,"winning":0},{"side":"black","before":"...RKa.......aN..R..N.B...BP.p.p.p.P.Cp.......n.......pC.Cp.P.pc.r.....n....r......bAkab..","move":"c8c7","from":"c8","to":"c7","flipped":["d7","b7"],"legal":39,"losing":2,"winning":0},{"side":"red","before":"...RKa.......aN..R..N.B...BP.p.p.p.P.Cp.......n.......pcrcp.P.pc.......n....r......bAkab..","move":"d1d3","from":"d1","to":"d3","flipped":["d7"],"legal":29,"losing":0,"winning":0},{"side":"black","before":"....Ka.......aN..R..NRB...BP.p.p.p.P.Cp.......n.......pcrCp.P.pc.......n....r......bAkab..","move":"c5d5","from":"c5","to":"d5","flipped":[],"legal":42,"losing":1,"winning":0},{"side":"red","before":"....Ka.......aN..R..NRB...BP.p.p.p.P.C.p......n.......pcrCp.P.pc.......n....r......bAkab..","move":"b5b1","from":"b5","to":"b1","flipped":["b7","f1"],"legal":31,"losing":0,"winning":0},{"side":"black","before":".C..KA.......aN..R..NRB...BP.p.p.p.P...p......n.......pCrCp.P.pc.......n....r......bAkab..","move":"e9d9","from":"e9","to":"d9","flipped":["d10","d7"],"legal":41,"losing":2,"winning":0},{"side":"red","before":".C..KA.......aN..R..NRB...BP.p.p.p.P...p......n.......pCrcp.P.pc.......n...r.......bakab..","move":"f2h1","from":"f2","to":"h1","flipped":[],"legal":31,"losing":0,"winning":0},{"side":"black","before":".C..KA.N.....a...R..NRB...BP.p.p.p.P...p......n.......pCrcp.P.pc.......n...r.......bakab..","move":"d7d6","from":"d7","to":"d6","flipped":["d3"],"legal":45,"losing":2,"winning":0},{"side":"red","before":".C..KA.N.....a...R..NrB...BP.p.p.p.P...p......n.c.....pCr.p.P.pc.......n...r.......bakab..","move":"c3d1","from":"c3","to":"d1","flipped":[],"legal":30,"losing":27,"winning":0},{"side":"black","before":".C.NKA.N.....a...R...rB...BP.p.p.p.P...p......n.c.....pCr.p.P.pc.......n...r.......bakab..","move":"d9b9","from":"d9","to":"b9","flipped":["b7"],"legal":59,"losing":2,"winning":0},{"side":"red","before":".C.NKA.N.....a...R...rB...BP.p.p.p.P...p......n.c.....pcr.p.P.pc.......n.r.........bakab..","move":"b1b4","from":"b1","to":"b4","flipped":["b7","e4"],"legal":25,"losing":1,"winning":0},{"side":"black","before":"...NKA.N.....a...R...rB...BPCp.P.p.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"d3d2","from":"d3","to":"d2","flipped":["d1"],"legal":58,"losing":0,"winning":0},{"side":"red","before":"...nKA.N....ra...R....B...BPCp.P.p.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"b4b2","from":"b4","to":"b2","flipped":["e2"],"legal":22,"losing":0,"winning":0},{"side":"black","before":"...nKA.N..C.rA...R....B...BP.p.P.p.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"c4d4","from":"c4","to":"d4","flipped":["e4"],"legal":56,"losing":0,"winning":0},{"side":"red","before":"...nKA.N..C.rA...R....B...BP..pp.p.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"b2b1","from":"b2","to":"b1","flipped":[],"legal":24,"losing":2,"winning":0},{"side":"black","before":".C.nKA.N....rA...R....B...BP..pp.p.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"d2b2","from":"d2","to":"b2","flipped":["b1","e2"],"legal":62,"losing":0,"winning":0},{"side":"red","before":".c.nKA.N..r..a...R....B...BP..pp.p.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"e3c1","from":"e3","to":"c1","flipped":[],"legal":17,"losing":16,"winning":0},{"side":"black","before":".cBnKA.N..r..a...R........BP..pp.p.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"e4f4","from":"e4","to":"f4","flipped":[],"legal":68,"losing":0,"winning":0},{"side":"red","before":".cBnKA.N..r..a...R........BP..p.pp.P...p......n.c.....pCr.p.P.pc.......n.r.........bakab..","move":"b7b8","from":"b7","to":"b8","flipped":["b2"],"legal":15,"losing":15,"winning":0},{"side":"black","before":".cBnKA.N..R..a...R........BP..p.pp.P...p......n.c.....p.r.p.P.pcC......n.r.........bakab..","move":"d6e6","from":"d6","to":"e6","flipped":[],"legal":56,"losing":3,"winning":1,"after":".cBnKA.N..R..a...R........BP..p.pp.P...p......n..c....p.r.p.P.pcC......n.r.........bakab.."}]},{"tag":"g23","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAK.BNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAK.BnR....A.....C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"h3h4","from":"h3","to":"h4","flipped":["h10"],"legal":38,"losing":4,"winning":0},{"side":"black","before":"RNBAK.BnR....A.....C.......P.P.P.PCP.......c..........p.p.p.p.p.c................rnbakabNr","move":"i10i8","from":"i10","to":"i8","flipped":[],"legal":45,"losing":1,"winning":0},{"side":"red","before":"RNBAK.BnR....A.....C.......P.P.P.PCP.......c..........p.p.p.p.p.c......r.........rnbakabN.","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":35,"losing":4,"winning":0},{"side":"black","before":"RNBAK.BnR....A.............P.P.P.PCP.C.....c..........p.p.p.p.p.c......r.........rNbakabN.","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":43,"losing":34,"winning":0},{"side":"red","before":"RNBAK.BnR....A.............P.P.P.PCP.C.....c..........p.p.p.p.p.c......r....a....rNbak.bN.","move":"h10g8","from":"h10","to":"g8","flipped":["i7","e9","e7"],"legal":35,"losing":4,"winning":0},{"side":"black","before":"RNBAK.BnR....A.............P.P.P.PCP.C.....c..........p.p.P.p.P.c....N.r....A....rNbak.b..","move":"b8b6","from":"b8","to":"b6","flipped":["b1"],"legal":33,"losing":6,"winning":0},{"side":"red","before":"RnBAK.BnR....A.............P.P.P.PCP.C.....c..c.......p.p.P.p.P......N.r....A....rNbak.b..","move":"e7d7","from":"e7","to":"d7","flipped":["c7"],"legal":40,"losing":4,"winning":0},{"side":"black","before":"RnBAK.BnR....A.............P.P.P.PCP.C.....c..c.......p.PP..p.P......N.r....A....rNbak.b..","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":37,"losing":33,"winning":0},{"side":"red","before":"RnBAK.BnR....A.............P.P.P.PCP.C.....c..c.......p.PP..p.P....b.N.r....A....rNbak....","move":"e9f10","from":"e9","to":"f10","flipped":[],"legal":42,"losing":4,"winning":0},{"side":"black","before":"RnBAK.BnR....A.............P.P.P.PCP.C.....c..c.......p.PP..p.P....b.N.r.........rNbakA...","move":"e8g10","from":"e8","to":"g10","flipped":[],"legal":38,"losing":34,"winning":0},{"side":"red","before":"RnBAK.BnR....A.............P.P.P.PCP.C.....c..c.......p.PP..p.P......N.r.........rNbakAb..","move":"b5a5","from":"b5","to":"a5","flipped":["a10"],"legal":40,"losing":4,"winning":0},{"side":"black","before":"RnBAK.BnR....A.............P.P.P.PCPC......c..c.......p.PP..p.P......N.r.........RNbakAb..","move":"b6a6","from":"b6","to":"a6","flipped":["a10","a4"],"legal":41,"losing":5,"winning":0},{"side":"red","before":"RnBAK.BnR....A.............p.P.P.PCPC......c.c........p.PP..p.P......N.r.........rNbakAb..","move":"g1i3","from":"g1","to":"i3","flipped":[],"legal":36,"losing":4,"winning":0},{"side":"black","before":"RnBAK..nR....A............Bp.P.P.PCPC......c.c........p.PP..p.P......N.r.........rNbakAb..","move":"h5e5","from":"h5","to":"e5","flipped":["e2"],"legal":37,"losing":5,"winning":0},{"side":"red","before":"RnBAK..nR....a............Bp.P.P.PCPC...c....c........p.PP..p.P......N.r.........rNbakAb..","move":"d7e7","from":"d7","to":"e7","flipped":[],"legal":33,"losing":1,"winning":0},{"side":"black","before":"RnBAK..nR....a............Bp.P.P.PCPC...c....c........p.P.P.p.P......N.r.........rNbakAb..","move":"e2f3","from":"e2","to":"f3","flipped":[],"legal":36,"losing":6,"winning":0},{"side":"red","before":"RnBAK..nR..............a..Bp.P.P.PCPC...c....c........p.P.P.p.P......N.r.........rNbakAb..","move":"d1e2","from":"d1","to":"e2","flipped":["f3"],"legal":36,"losing":34,"winning":0},{"side":"black","before":"RnB.K..nR....A.........A..Bp.P.P.PCPC...c....c........p.P.P.p.P......N.r.........rNbakAb..","move":"i8h8","from":"i8","to":"h8","flipped":["h4","g8"],"legal":33,"losing":6,"winning":0},{"side":"red","before":"RnB.K..nR....A.........A..Bp.P.P.PcPC...c....c........p.P.P.p.P......nr..........rNbakAb..","move":"i7i8","from":"i7","to":"i8","flipped":["h8"],"legal":28,"losing":5,"winning":0},{"side":"black","before":"RnB.K..nR....A.........A..Bp.P.P.PcPC...c....c........p.P.P.p........nRP.........rNbakAb..","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":37,"losing":6,"winning":0},{"side":"red","before":"R.B.K..nR....A....n....A..Bp.p.P.PcPC...c....c........p.P.P.p........nRP.........rNbakAb..","move":"a1a2","from":"a1","to":"a2","flipped":["a3"],"legal":30,"losing":28,"winning":0},{"side":"black","before":"..B.K..nRR...A....N....A..Bp.p.P.PcPC...c....c........p.P.P.p........nRP.........rNbakAb..","move":"h4h3","from":"h4","to":"h3","flipped":["a3"],"legal":37,"losing":6,"winning":0},{"side":"red","before":"..B.K..nRR...A....n....A.cBp.p.P.P.PC...c....c........p.P.P.p........nRP.........rNbakAb..","move":"a2c2","from":"a2","to":"c2","flipped":["c4"],"legal":34,"losing":30,"winning":0},{"side":"black","before":"..B.K..nR..R.A....n....A.cBp.P.P.P.PC...c....c........p.P.P.p........nRP.........rNbakAb..","move":"a3b1","from":"a3","to":"b1","flipped":[],"legal":36,"losing":6,"winning":0},{"side":"red","before":".nB.K..nR..R.A.........A.cBp.P.P.P.PC...c....c........p.P.P.p........nRP.........rNbakAb..","move":"b10a8","from":"b10","to":"a8","flipped":[],"legal":36,"losing":4,"winning":0},{"side":"black","before":".nB.K..nR..R.A.........A.cBp.P.P.P.PC...c....c........p.P.P.p..N.....nRP.........r.bakAb..","move":"a10a9","from":"a10","to":"a9","flipped":["a8"],"legal":37,"losing":36,"winning":0},{"side":"red","before":".nB.K..nR..R.A.........A.cBp.P.P.P.PC...c....c........p.P.P.p..n.....nRPr..........bakAb..","move":"h8h9","from":"h8","to":"h9","flipped":["h3","a9"],"legal":34,"losing":5,"winning":0},{"side":"black","before":".nB.K..nR..R.A.........A.CBp.P.P.P.PC...c....c........p.P.P.p..n.....n.PR......R...bakAb..","move":"g8e9","from":"g8","to":"e9","flipped":[],"legal":32,"losing":30,"winning":0},{"side":"red","before":".nB.K..nR..R.A.........A.CBp.P.P.P.PC...c....c........p.P.P.p..n.......PR...n..R...bakAb..","move":"a9a10","from":"a9","to":"a10","flipped":["a8","c10"],"legal":48,"losing":4,"winning":0},{"side":"black","before":".nB.K..nR..R.A.........A.CBp.P.P.P.PC...c....c........p.P.P.p..N.......P....n..R.R.BakAb..","move":"e5c5","from":"e5","to":"c5","flipped":["c10","c2"],"legal":28,"losing":28,"winning":0},{"side":"red","before":".nB.K..nR..r.A.........A.CBp.P.P.P.PC.c......c........p.P.P.p..N.......P....n..R.R.bakAb..","move":"a8c9","from":"a8","to":"c9","flipped":[],"legal":42,"losing":7,"winning":1,"after":".nB.K..nR..r.A.........A.CBp.P.P.P.PC.c......c........p.P.P.p..........P..N.n..R.R.bakAb.."}]},{"tag":"g24","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b7","from":"b3","to":"b7","flipped":["b10","e7"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P................C.pCp.P.p.p.c..c.............rNbakabNr","move":"b8b9","from":"b8","to":"b9","flipped":["b1"],"legal":27,"losing":7,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P................C.pCp.P.p.p....c.....c.......rNbakabNr","move":"h6e6","from":"h6","to":"e6","flipped":["e8"],"legal":42,"losing":3,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P.P.............C....pCp.P.p.p....C.....c.......rNbakabNr","move":"a10a8","from":"a10","to":"a8","flipped":["e8"],"legal":26,"losing":1,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P.............C....pCp.P.p.pr...c.....c........NbakabNr","move":"e6a6","from":"e6","to":"a6","flipped":["a8"],"legal":36,"losing":1,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P.P.........C........pCp.P.p.pR...c.....c........NbakabNr","move":"b9b8","from":"b9","to":"b8","flipped":[],"legal":31,"losing":8,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P.........C........pCp.P.p.pRc..c..............NbakabNr","move":"a6e6","from":"a6","to":"e6","flipped":["e8"],"legal":38,"losing":3,"winning":0},{"side":"black","before":"RnBAKABNR..................P.P.p.P.P.............C....pCp.P.p.pRc..C..............NbakabNr","move":"e4e3","from":"e4","to":"e3","flipped":[],"legal":18,"losing":1,"winning":0},{"side":"red","before":"RnBAKABNR.............p....P.P...P.P.............C....pCp.P.p.pRc..C..............NbakabNr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":44,"losing":40,"winning":0},{"side":"black","before":"RnB.KABNR....A........p....P.P...P.P.............C....pCp.P.p.pRc..C..............NbakabNr","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":17,"losing":1,"winning":0},{"side":"red","before":"R.B.KABNR....A....n...p....P.p...P.P.............C....pCp.P.p.pRc..C..............NbakabNr","move":"e6a6","from":"e6","to":"a6","flipped":["a3"],"legal":44,"losing":40,"winning":0},{"side":"black","before":"R.B.KABNR....A....N...p....P.p...P.P.........C........pCp.P.p.pRc..C..............NbakabNr","move":"i10i8","from":"i10","to":"i8","flipped":["e8"],"legal":17,"losing":1,"winning":0},{"side":"red","before":"R.B.KABNR....A....N...p....P.p...P.P.........C........pCp.P.p.pRc..c...r..........NbakabN.","move":"a6b6","from":"a6","to":"b6","flipped":["b8"],"legal":37,"losing":3,"winning":0},{"side":"black","before":"R.B.KABNR....A....N...p....P.p...P.P..........C.......pCp.P.p.pRC..c...r..........NbakabN.","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":23,"losing":7,"winning":0},{"side":"red","before":"R.B.KABNR....A....N...p....P.p...P.P..........Cp......pC..P.p.pRC..c...r..........NbakabN.","move":"b8d8","from":"b8","to":"d8","flipped":["i8"],"legal":33,"losing":3,"winning":0},{"side":"black","before":"R.B.KABNR....A....N...p....P.p...P.P..........Cp......pC..P.p.pR..Cc...R..........NbakabN.","move":"e8h8","from":"e8","to":"h8","flipped":["a8"],"legal":16,"losing":2,"winning":0},{"side":"red","before":"R.B.KABNR....A....N...p....P.p...P.P..........Cp......pC..P.p.pr..C...cR..........NbakabN.","move":"b7b8","from":"b7","to":"b8","flipped":["h8"],"legal":46,"losing":3,"winning":0},{"side":"black","before":"R.B.KABNR....A....N...p....P.p...P.P..........Cp......p...P.p.prC.C...CR..........NbakabN.","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":16,"losing":4,"winning":0},{"side":"red","before":"R.B.KABNR....A....N...p....P.p...P.P..........Cp......p...P.p.prC.Cb..CR..........N.akabN.","move":"b6a6","from":"b6","to":"a6","flipped":["a8"],"legal":51,"losing":3,"winning":0},{"side":"black","before":"R.B.KABNR....A....N...p....P.p...P.P.........C.p......p...P.p.pRC.Cb..CR..........N.akabN.","move":"e8c10","from":"e8","to":"c10","flipped":["a8"],"legal":13,"losing":1,"winning":0},{"side":"red","before":"R.B.KABNR....A....N...p....P.p...P.P.........C.p......p...P.p.prC.C...CR..........NbakabN.","move":"d8c8","from":"d8","to":"c8","flipped":["c4","a8"],"legal":56,"losing":3,"winning":0},{"side":"black","before":"R.B.KABNR....A....N...p....P.P...P.P.........C.p......p...P.p.pRCC....CR..........NbakabN.","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":10,"losing":5,"winning":0},{"side":"red","before":"R.B.KABNR....A....N...p....P.P...P.P.........C.p......p...P.p.pRCC.b..CR..........Nbaka.N.","move":"h10f9","from":"h10","to":"f9","flipped":["g7","d10"],"legal":47,"losing":3,"winning":0},{"side":"black","before":"R.B.KABNR....A....N...p....P.P...P.P.........C.p......p...P.P.pRCC.b..CR.....N....NbAka...","move":"e8g6","from":"e8","to":"g6","flipped":["i8"],"legal":7,"losing":7,"winning":0},{"side":"red","before":"R.B.KABNR....A....N...p....P.P...P.P.........C.p...b..p...P.P.pRCC....Cr.....N....NbAka...","move":"h8h10","from":"h8","to":"h10","flipped":[],"legal":56,"losing":3,"winning":2,"after":"R.B.KABNR....A....N...p....P.P...P.P.........C.p...b..p...P.P.pRCC.....r.....N....NbAka.C."}]},{"tag":"g25","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P...............pC.p.p.p...p.c.....c..........rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C....pC.p.p.p...p.c.....c..........rNbakabNr","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":32,"losing":24,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P.P..........C....pC.p.p.p...p.c.....c.....a....rNb.kabNr","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":40,"losing":0,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P.P.P.P..........C....pC.p.p.p...p.c.....c.....a....rNb.kabNr","move":"h8h7","from":"h8","to":"h7","flipped":["h1"],"legal":33,"losing":4,"winning":0},{"side":"red","before":"RNBAKA.nR.............B....P.P.P.P.P..........C....pC.p.p.p..cp.c...........a....rNb.kabNr","move":"b1c3","from":"b1","to":"c3","flipped":[],"legal":37,"losing":1,"winning":0},{"side":"black","before":"R.BAKA.nR...........N.B....P.P.P.P.P..........C....pC.p.p.p..cp.c...........a....rNb.kabNr","move":"h1f2","from":"h1","to":"f2","flipped":["g4","e4","d1"],"legal":34,"losing":4,"winning":0},{"side":"red","before":"R.BaKA..R.....n.....N.B....P.P.p.p.P..........C....pC.p.p.p..cp.c...........a....rNb.kabNr","move":"i1i2","from":"i1","to":"i2","flipped":["f2"],"legal":39,"losing":34,"winning":0},{"side":"black","before":"R.BaKA........N..R..N.B....P.P.p.p.P..........C....pC.p.p.p..cp.c...........a....rNb.kabNr","move":"d1e2","from":"d1","to":"e2","flipped":["f1"],"legal":37,"losing":4,"winning":0},{"side":"red","before":"R.B.Ka.......aN..R..N.B....P.P.p.p.P..........C....pC.p.p.p..cp.c...........a....rNb.kabNr","move":"c3d1","from":"c3","to":"d1","flipped":[],"legal":40,"losing":6,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....P.P.p.p.P..........C....pC.p.p.p..cp.c...........a....rNb.kabNr","move":"a7a6","from":"a7","to":"a6","flipped":[],"legal":38,"losing":4,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC...p.p..cp.c...........a....rNb.kabNr","move":"h10g8","from":"h10","to":"g8","flipped":["f10","i7","e9","e7"],"legal":36,"losing":1,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC...p.P..cP.c....N......A....rNb.kAb.r","move":"i10i8","from":"i10","to":"i8","flipped":["i7","g8"],"legal":33,"losing":1,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC...p.P..cp.c....n.r....A....rNb.kAb..","move":"e9f8","from":"e9","to":"f8","flipped":[],"legal":40,"losing":1,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC...p.P..cp.c...An.r.........rNb.kAb..","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":36,"losing":32,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC...p.P..cp.c..bAn.r.........rNb.kA...","move":"e7d7","from":"e7","to":"d7","flipped":["c7"],"legal":38,"losing":1,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC...PP...cp.c..bAn.r.........rNb.kA...","move":"e8g10","from":"e8","to":"g10","flipped":[],"legal":34,"losing":33,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC...PP...cp.c...An.r.........rNb.kAb..","move":"c7b7","from":"c7","to":"b7","flipped":["b8"],"legal":40,"losing":1,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC..P.P...cp.C...An.r.........rNb.kAb..","move":"a10a8","from":"a10","to":"a8","flipped":["b8"],"legal":30,"losing":5,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....B....P.P.p.p.P.........pC....pC..P.P...cprc...An.r..........Nb.kAb..","move":"b6b4","from":"b6","to":"b4","flipped":["b8","e4"],"legal":39,"losing":1,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....PCP.P.p.P.........p.....pC..P.P...cprC...An.r..........Nb.kAb..","move":"a8a10","from":"a8","to":"a10","flipped":["b10"],"legal":27,"losing":2,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....B....PCP.P.p.P.........p.....pC..P.P...cp.C...An.r.........rnb.kAb..","move":"b8e8","from":"b8","to":"e8","flipped":["g8"],"legal":40,"losing":1,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....PCP.P.p.P.........p.....pC..P.P...cp....CAN.r.........rnb.kAb..","move":"a10a8","from":"a10","to":"a8","flipped":["e8"],"legal":25,"losing":2,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....B....PCP.P.p.P.........p.....pC..P.P...cpr...cAN.r..........nb.kAb..","move":"d7d8","from":"d7","to":"d8","flipped":["e8"],"legal":39,"losing":1,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....B....PCP.P.p.P.........p.....pC..P.....cpr..PCAN.r..........nb.kAb..","move":"h7e7","from":"h7","to":"e7","flipped":["e3"],"legal":27,"losing":3,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....b....PCP.P.p.P.........p.....pC..P..c...pr..PCAN.r..........nb.kAb..","move":"h6i6","from":"h6","to":"i6","flipped":["i8","a6"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....b....PCP.P.p.P.........P.....p.C.P..c...pr..PCAN.R..........nb.kAb..","move":"a8a10","from":"a8","to":"a10","flipped":["a6"],"legal":23,"losing":2,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....b....PCP.P.p.P.........p.....p.C.P..c...p...PCAN.R.........rnb.kAb..","move":"d8d9","from":"d8","to":"d9","flipped":[],"legal":37,"losing":0,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....b....PCP.P.p.P.........p.....p.C.P..c...p....CAN.R...P.....rnb.kAb..","move":"a10a9","from":"a10","to":"a9","flipped":["d9"],"legal":24,"losing":23,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....b....PCP.P.p.P.........p.....p.C.P..c...p....CAN.Rr..p......nb.kAb..","move":"i8i9","from":"i8","to":"i9","flipped":["i7","d9"],"legal":39,"losing":0,"winning":0},{"side":"black","before":"R.BNKa.......aN..R....b....PCP.P.p.P.........p.....p.C.P..c...P....CAN..r..P....R.nb.kAb..","move":"a9b9","from":"a9","to":"b9","flipped":["b7","d9"],"legal":27,"losing":27,"winning":0},{"side":"red","before":"R.BNKa.......aN..R....b....PCP.P.p.P.........p.....p.C.p..c...P....CAN...r.p....R.nb.kAb..","move":"i9e9","from":"i9","to":"e9","flipped":[],"legal":40,"losing":0,"winning":1,"after":"R.BNKa.......aN..R....b....PCP.P.p.P.........p.....p.C.p..c...P....CAN...r.pR.....nb.kAb.."}]},{"tag":"g26","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"e7e6","from":"e7","to":"e6","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.............p..C.p.p...p.p.c.....c..........rnbakabNr","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":43,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P.C...........p..C.p.p...p.p.c.....c..........rNbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":33,"losing":26,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P.C...........p..C.p.p...p.p.c..c.............rNbakabNr","move":"h6h8","from":"h6","to":"h8","flipped":["b8"],"legal":46,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P.C...........p....p.p...p.p.C..c..C..........rNbakabNr","move":"e4e3","from":"e4","to":"e3","flipped":[],"legal":23,"losing":6,"winning":0},{"side":"red","before":"RNBAKABNR.............p....P.P...P.P.C...........p....p.p...p.p.C..c..C..........rNbakabNr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":50,"losing":45,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p....P.P...P.P.C...........p....p.p...p.p.C..c..C..........rNbakabNr","move":"i10i8","from":"i10","to":"i8","flipped":["h8"],"legal":22,"losing":6,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p....P.P...P.P.C...........p....p.p...p.p.C..c..cr.........rNbakabN.","move":"b5a5","from":"b5","to":"a5","flipped":["a10"],"legal":40,"losing":5,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p....P.P...P.PC............p....p.p...p.p.C..c..cr.........RNbakabN.","move":"h8f8","from":"h8","to":"f8","flipped":["b8"],"legal":28,"losing":6,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p....P.P...P.PC............p....p.p...p.p.c..cc..r.........RNbakabN.","move":"a5e5","from":"a5","to":"e5","flipped":["e8"],"legal":31,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p....P.P...P.P....C........p....p.p...p.p.c..Cc..r.........RNbakabN.","move":"e3d3","from":"e3","to":"d3","flipped":[],"legal":34,"losing":3,"winning":0},{"side":"red","before":"RNBAK.BNR....A.......p.....P.P...P.P....C........p....p.p...p.p.c..Cc..r.........RNbakabN.","move":"a10a8","from":"a10","to":"a8","flipped":["a7","b8"],"legal":38,"losing":0,"winning":0},{"side":"black","before":"RNBAK.BNR....A.......p.....P.P...P.P....C........p....P.p...p.pRC..Cc..r..........NbakabN.","move":"i8h8","from":"i8","to":"h8","flipped":["h10","h1"],"legal":23,"losing":3,"winning":0},{"side":"red","before":"RNBAK.BnR....A.......p.....P.P...P.P....C........p....P.p...p.pRC..Cc.r...........Nbakabn.","move":"b8d8","from":"b8","to":"d8","flipped":["f8"],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RNBAK.BnR....A.......p.....P.P...P.P....C........p....P.p...p.pR..CCC.r...........Nbakabn.","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":23,"losing":3,"winning":0},{"side":"red","before":"RNBAK.BnR....A.......p.....P.P...P.P....C........p.p..P.p.....pR..CCC.r...........Nbakabn.","move":"a8a10","from":"a8","to":"a10","flipped":[],"legal":51,"losing":1,"winning":0},{"side":"black","before":"RNBAK.BnR....A.......p.....P.P...P.P....C........p.p..P.p.....p...CCC.r..........RNbakabn.","move":"h1i3","from":"h1","to":"i3","flipped":["g4"],"legal":24,"losing":3,"winning":0},{"side":"red","before":"RNBAK.B.R....A.......p....nP.P...p.P....C........p.p..P.p.....p...CCC.r..........RNbakabn.","move":"i1i2","from":"i1","to":"i2","flipped":["i3"],"legal":50,"losing":46,"winning":0},{"side":"black","before":"RNBAK.B......A...R...p....NP.P...p.P....C........p.p..P.p.....p...CCC.r..........RNbakabn.","move":"h8h5","from":"h8","to":"h5","flipped":["e5"],"legal":26,"losing":3,"winning":0},{"side":"red","before":"RNBAK.B......A...R...p....NP.P...p.P....c..r.....p.p..P.p.....p...CCC............RNbakabn.","move":"e8e9","from":"e8","to":"e9","flipped":["e5"],"legal":45,"losing":40,"winning":0},{"side":"black","before":"RNBAK.B......A...R...p....NP.P...p.P....C..r.....p.p..P.p.....p...C.C.......C....RNbakabn.","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":26,"losing":24,"winning":0},{"side":"red","before":"RNBAK.B......A...R...p....NP.P...p.P....C..r.....p.p..P.p.....p...CbC.......C....RN.akabn.","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":60,"losing":2,"winning":0},{"side":"black","before":"RNBAK.B......A...R...p....NP.P...p.P....C..r.....p.p..P.P.....pN..CbC.......C....R..akabn.","move":"h5h9","from":"h5","to":"h9","flipped":["e9"],"legal":24,"losing":24,"winning":0},{"side":"red","before":"RNBAK.B......A...R...p....NP.P...p.P....C........p.p..P.P.....pN..CbC.......c..r.R..akabn.","move":"a8c9","from":"a8","to":"c9","flipped":[],"legal":55,"losing":2,"winning":1,"after":"RNBAK.B......A...R...p....NP.P...p.P....C........p.p..P.P.....p...CbC.....N.c..r.R..akabn."}]},{"tag":"g27","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c.....c..........rnbakabNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":38,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c..b..c..........rn.akabNr","move":"b3h3","from":"b3","to":"h3","flipped":["h8"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.......C..........p.p.p.p.p.c..b..C..........rn.akabNr","move":"b8b6","from":"b8","to":"b6","flipped":[],"legal":29,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P.......C..c.......p.p.p.p.p....b..C..........rn.akabNr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":49,"losing":43,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P.......C..c.......p.p.P.p.p....b..C..........rn.akabNr","move":"i10i9","from":"i10","to":"i9","flipped":[],"legal":33,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR.............C....P.P.P.P.P.......C..c.......p.p.P.p.p....b..C.........rrn.akabN.","move":"e7f7","from":"e7","to":"f7","flipped":["g7"],"legal":50,"losing":8,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P.......C..c.......p.p..PP.p....b..C.........rrn.akabN.","move":"b6e6","from":"b6","to":"e6","flipped":["e3"],"legal":39,"losing":35,"winning":0},{"side":"red","before":"RNBAKABNR.............c....P.P.P.P.P.......C.....c....p.p..PP.p....b..C.........rrn.akabN.","move":"h5a5","from":"h5","to":"a5","flipped":["a10"],"legal":43,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR.............c....P.P.P.P.PC............c....p.p..PP.p....b..C.........rRn.akabN.","move":"e3h3","from":"e3","to":"h3","flipped":["h10"],"legal":41,"losing":11,"winning":0},{"side":"red","before":"RNBAKABNR................c.P.P.P.P.PC............c....p.p..PP.p....b..C.........rRn.akabn.","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":42,"losing":38,"winning":0},{"side":"black","before":"RN.AKABNR.............B..c.P.P.P.P.PC............c....p.p..PP.p....b..C.........rRn.akabn.","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":42,"losing":11,"winning":0},{"side":"red","before":"RN.AKABNR.............B..c.P.P.P.P.PC............c....p.p..PP.p....b..C.....a...rRn..kabn.","move":"i1i3","from":"i1","to":"i3","flipped":["h3"],"legal":43,"losing":3,"winning":0},{"side":"black","before":"RN.AKABN..............B..CRP.P.P.P.PC............c....p.p..PP.p....b..C.....a...rRn..kabn.","move":"e6a6","from":"e6","to":"a6","flipped":["a10","a4"],"legal":30,"losing":5,"winning":0},{"side":"red","before":"RN.AKABN..............B..CRp.P.P.P.PC........c........p.p..PP.p....b..C.....a...rrn..kabn.","move":"h8h6","from":"h8","to":"h6","flipped":[],"legal":45,"losing":3,"winning":0},{"side":"black","before":"RN.AKABN..............B..CRp.P.P.P.PC........c......C.p.p..PP.p....b........a...rrn..kabn.","move":"g10i8","from":"g10","to":"i8","flipped":[],"legal":29,"losing":5,"winning":0},{"side":"red","before":"RN.AKABN..............B..CRp.P.P.P.PC........c......C.p.p..PP.p....b...b....a...rrn..ka.n.","move":"h3h4","from":"h3","to":"h4","flipped":["h10"],"legal":47,"losing":3,"winning":0},{"side":"black","before":"RN.AKABN..............B...Rp.P.P.PCPC........c......C.p.p..PP.p....b...b....a...rrn..ka.N.","move":"i9h9","from":"i9","to":"h9","flipped":["h10","h6"],"legal":28,"losing":6,"winning":0},{"side":"red","before":"RN.AKABN..............B...Rp.P.P.PCPC........c......c.p.p..PP.p....b...b....a..r.rn..ka.n.","move":"a5h5","from":"a5","to":"h5","flipped":["h9"],"legal":36,"losing":3,"winning":0},{"side":"black","before":"RN.AKABN..............B...Rp.P.P.PCP.......C.c......c.p.p..PP.p....b...b....a..R.rn..ka.n.","move":"h6h7","from":"h6","to":"h7","flipped":["h4","f7"],"legal":34,"losing":6,"winning":0},{"side":"red","before":"RN.AKABN..............B...Rp.P.P.PcP.......C.c........p.p..pPcp....b...b....a..R.rn..ka.n.","move":"h9h8","from":"h9","to":"h8","flipped":["h10","h7","i8","e8"],"legal":35,"losing":3,"winning":0},{"side":"black","before":"RN.AKABN..............B...Rp.P.P.PcP.......C.c........p.p..pPCp....B..RB....a....rn..ka.N.","move":"h4h2","from":"h4","to":"h2","flipped":["h7"],"legal":25,"losing":3,"winning":0},{"side":"red","before":"RN.AKABN........c.....B...Rp.P.P.P.P.......C.c........p.p..pPcp....B..RB....a....rn..ka.N.","move":"h8h9","from":"h8","to":"h9","flipped":["h7","e9"],"legal":41,"losing":3,"winning":0},{"side":"black","before":"RN.AKABN........c.....B...Rp.P.P.P.P.......C.c........p.p..pPCp....B...B....A..R.rn..ka.N.","move":"a6e6","from":"a6","to":"e6","flipped":["e9","e3"],"legal":30,"losing":0,"winning":0},{"side":"red","before":"RN.AKABN........c.....b...Rp.P.P.P.P.......C.....c....p.p..pPCp....B...B....a..R.rn..ka.N.","move":"e4e5","from":"e4","to":"e5","flipped":["e6"],"legal":39,"losing":0,"winning":0},{"side":"black","before":"RN.AKABN........c.....b...Rp.P...P.P....P..C.....C....p.p..pPCp....B...B....a..R.rn..ka.N.","move":"e3g5","from":"e3","to":"g5","flipped":["i3"],"legal":28,"losing":3,"winning":0},{"side":"red","before":"RN.AKABN........c.........rp.P...P.P....P.bC.....C....p.p..pPCp....B...B....a..R.rn..ka.N.","move":"a1a3","from":"a1","to":"a3","flipped":["a4","i3"],"legal":35,"losing":28,"winning":0},{"side":"black","before":".N.AKABN........c.R.......RP.P...P.P....P.bC.....C....p.p..pPCp....B...B....a..R.rn..ka.N.","move":"h2e2","from":"h2","to":"e2","flipped":["e6"],"legal":24,"losing":4,"winning":0},{"side":"red","before":".N.AKABN.....c....R.......RP.P...P.P....P.bC.....c....p.p..pPCp....B...B....a..R.rn..ka.N.","move":"a3d3","from":"a3","to":"d3","flipped":[],"legal":41,"losing":0,"winning":0},{"side":"black","before":".N.AKABN.....c.......R....RP.P...P.P....P.bC.....c....p.p..pPCp....B...B....a..R.rn..ka.N.","move":"b10d9","from":"b10","to":"d9","flipped":[],"legal":33,"losing":31,"winning":0},{"side":"red","before":".N.AKABN.....c.......R....RP.P...P.P....P.bC.....c....p.p..pPCp....B...B...na..R.r...ka.N.","move":"d3d6","from":"d3","to":"d6","flipped":["d9","e6"],"legal":42,"losing":0,"winning":0},{"side":"black","before":".N.AKABN.....c............RP.P...P.P....P.bC....RC....p.p..pPCp....B...B...Na..R.r...ka.N.","move":"e2d2","from":"e2","to":"d2","flipped":["d9"],"legal":24,"losing":3,"winning":0},{"side":"red","before":".N.AKABN....c.............RP.P...P.P....P.bC....RC....p.p..pPCp....B...B...na..R.r...ka.N.","move":"d6d5","from":"d6","to":"d5","flipped":["d9","d2"],"legal":48,"losing":0,"winning":0},{"side":"black","before":".N.AKABN....C.............RP.P...P.P...RP.bC.....C....p.p..pPCp....B...B...Na..R.r...ka.N.","move":"a10a9","from":"a10","to":"a9","flipped":["d9"],"legal":14,"losing":4,"winning":0},{"side":"red","before":".N.AKABN....C.............RP.P...P.P...RP.bC.....C....p.p..pPCp....B...Br..na..R.....ka.N.","move":"e6a6","from":"e6","to":"a6","flipped":["a9"],"legal":62,"losing":0,"winning":0},{"side":"black","before":".N.AKABN....C.............RP.P...P.P...RP.bC.C........p.p..pPCp....B...BR..na..R.....ka.N.","move":"d9b8","from":"d9","to":"b8","flipped":["a6"],"legal":11,"losing":11,"winning":0},{"side":"red","before":".N.AKABN....C.............RP.P...P.P...RP.bC.c........p.p..pPCp.n..B...BR...a..R.....ka.N.","move":"d5d10","from":"d5","to":"d10","flipped":[],"legal":62,"losing":49,"winning":2,"after":".N.AKABN....C.............RP.P...P.P....P.bC.c........p.p..pPCp.n..B...BR...a..R....Rka.N."}]},{"tag":"g28","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P...............pC.p.p.p...p.c.....c..........rnbakabNr","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P.C.............pC.p.p.p...p.c.....c..........rNbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":33,"losing":27,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P.C.............pC.p.p.p...p.c..c.............rNbakabNr","move":"b5b6","from":"b5","to":"b6","flipped":[],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C....pC.p.p.p...p.c..c.............rNbakabNr","move":"b8d8","from":"b8","to":"d8","flipped":[],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P..........C....pC.p.p.p...p...cc.............rNbakabNr","move":"b6d6","from":"b6","to":"d6","flipped":["d10"],"legal":43,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P............C..pC.p.p.p...p...cc.............rNbAkabNr","move":"i7i6","from":"i7","to":"i6","flipped":[],"legal":26,"losing":5,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P............C..pCpp.p.p.......cc.............rNbAkabNr","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":41,"losing":1,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P.p.P.P............C..pCpp.p.p.......cc.............rNbAkabNr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":26,"losing":5,"winning":0},{"side":"red","before":"RNBAKA.NR.............B....P.P..pp.P............C..pCpp.p.p.......cc.............rNbAkabNr","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":40,"losing":2,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P..pp.P............C..pCpp.P.p....N..cc.............r.bAkabNr","move":"d8b8","from":"d8","to":"b8","flipped":[],"legal":25,"losing":22,"winning":0},{"side":"red","before":"RNBAKA.NR.............B....P.P..pp.P............C..pCpp.P.p....Nc..c.............r.bAkabNr","move":"d6e6","from":"d6","to":"e6","flipped":["e8"],"legal":44,"losing":2,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P..pp.P.............C.pCpp.P.p....Nc..C.............r.bAkabNr","move":"i10i8","from":"i10","to":"i8","flipped":["e8"],"legal":25,"losing":11,"winning":0},{"side":"red","before":"RNBAKA.NR.............B....P.P..pp.P.............C.pCpp.P.p....Nc..c...r.........r.bAkabN.","move":"h6h8","from":"h6","to":"h8","flipped":["b8"],"legal":38,"losing":0,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P..pp.P.............C.p.pp.P.p....NC..c..Cr.........r.bAkabN.","move":"i8i9","from":"i8","to":"i9","flipped":[],"legal":19,"losing":6,"winning":0},{"side":"red","before":"RNBAKA.NR.............B....P.P..pp.P.............C.p.pp.P.p....NC..c..C.........rr.bAkabN.","move":"d10e9","from":"d10","to":"e9","flipped":["f10"],"legal":52,"losing":0,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P..pp.P.............C.p.pp.P.p....NC..c..C.....A...rr.b.kAbN.","move":"a10b10","from":"a10","to":"b10","flipped":["b8"],"legal":21,"losing":20,"winning":0},{"side":"red","before":"RNBAKA.NR.............B....P.P..pp.P.............C.p.pp.P.p....Nc..c..C.....A...r.rb.kAbN.","move":"h8g8","from":"h8","to":"g8","flipped":["g4","b8"],"legal":43,"losing":0,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P..pP.P.............C.p.pp.P.p....NC..c.C......A...r.rb.kAbN.","move":"i9i8","from":"i9","to":"i8","flipped":["g8"],"legal":18,"losing":5,"winning":0},{"side":"red","before":"RNBAKA.NR.............B....P.P..pP.P.............C.p.pp.P.p....NC..c.c.r....A.....rb.kAbN.","move":"e6e4","from":"e6","to":"e4","flipped":["e8"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RNBAKA.NR.............B....P.P.CpP.P...............p.pp.P.p....NC..C.c.r....A.....rb.kAbN.","move":"g8f8","from":"g8","to":"f8","flipped":["f1","b8"],"legal":16,"losing":2,"winning":0},{"side":"red","before":"RNBAKa.NR.............B....P.P.CpP.P...............p.pp.P.p....Nc..Cc..r....A.....rb.kAbN.","move":"e8d8","from":"e8","to":"d8","flipped":["i8"],"legal":29,"losing":0,"winning":0},{"side":"black","before":"RNBAKa.NR.............B....P.P.CpP.P...............p.pp.P.p....Nc.C.c..R....A.....rb.kAbN.","move":"f8e8","from":"f8","to":"e8","flipped":["e4"],"legal":26,"losing":23,"winning":0},{"side":"red","before":"RNBAKa.NR.............B....P.P.cpP.P...............p.pp.P.p....Nc.Cc...R....A.....rb.kAbN.","move":"b1c3","from":"b1","to":"c3","flipped":["e4"],"legal":39,"losing":33,"winning":0},{"side":"black","before":"R.BAKa.NR...........N.B....P.P.CpP.P...............p.pp.P.p....Nc.Cc...R....A.....rb.kAbN.","move":"b10a10","from":"b10","to":"a10","flipped":["a8"],"legal":21,"losing":13,"winning":0},{"side":"red","before":"R.BAKa.NR...........N.B....P.P.CpP.P...............p.pp.P.p....nc.Cc...R....A....r.b.kAbN.","move":"i8g8","from":"i8","to":"g8","flipped":["g10","g6","e8"],"legal":44,"losing":2,"winning":0},{"side":"black","before":"R.BAKa.NR...........N.B....P.P.CpP.P...............P.pp.P.p....nc.CC.R......A....r.b.kABN.","move":"b8b4","from":"b8","to":"b4","flipped":["e4"],"legal":19,"losing":2,"winning":0},{"side":"red","before":"R.BAKa.NR...........N.B....PcP.cpP.P...............P.pp.P.p....n..CC.R......A....r.b.kABN.","move":"h1g3","from":"h1","to":"g3","flipped":["f1","e4"],"legal":46,"losing":41,"winning":0},{"side":"black","before":"R.BAKA..R...........N.B.N..PcP.CpP.P...............P.pp.P.p....n..CC.R......A....r.b.kABN.","move":"b4b10","from":"b4","to":"b10","flipped":[],"legal":18,"losing":2,"winning":0},{"side":"red","before":"R.BAKA..R...........N.B.N..P.P.CpP.P...............P.pp.P.p....n..CC.R......A....rcb.kABN.","move":"h10i8","from":"h10","to":"i8","flipped":[],"legal":52,"losing":2,"winning":0},{"side":"black","before":"R.BAKA..R...........N.B.N..P.P.CpP.P...............P.pp.P.p....n..CC.R.N....A....rcb.kAB..","move":"b10b8","from":"b10","to":"b8","flipped":["e8"],"legal":16,"losing":16,"winning":0},{"side":"red","before":"R.BAKA..R...........N.B.N..P.P.CpP.P...............P.pp.P.p....nc.Cc.R.N....A....r.b.kAB..","move":"i8g9","from":"i8","to":"g9","flipped":[],"legal":51,"losing":2,"winning":1,"after":"R.BAKA..R...........N.B.N..P.P.CpP.P...............P.pp.P.p....nc.Cc.R......A.N..r.b.kAB.."}]},{"tag":"g29","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P...............pC.p.p.p...p.c.....c..........rnbakabNr","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P.C.............pC.p.p.p...p.c.....c..........rNbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":33,"losing":27,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P.C.............pC.p.p.p...p.c..c.............rNbakabNr","move":"h6h8","from":"h6","to":"h8","flipped":["b8"],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P.C.............p..p.p.p...p.C..c..C..........rNbakabNr","move":"a10a8","from":"a10","to":"a8","flipped":["b8"],"legal":22,"losing":6,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P.C.............p..p.p.p...prc..c..C...........NbakabNr","move":"h8i8","from":"h8","to":"i8","flipped":["b8"],"legal":45,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P.C.............p..p.p.p...prC..c...C..........NbakabNr","move":"e4e3","from":"e4","to":"e3","flipped":[],"legal":20,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR.............p....P.P...P.P.C.............p..p.p.p...prC..c...C..........NbakabNr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":41,"losing":36,"winning":0},{"side":"black","before":"RNB.KABNR....A........p....P.P...P.P.C.............p..p.p.p...prC..c...C..........NbakabNr","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":19,"losing":7,"winning":0},{"side":"red","before":"RNB.KABNR....A........p....P.P...P.P.C.............p..p.p.p...prC..c...c........r.NbakabN.","move":"b5e5","from":"b5","to":"e5","flipped":["e8"],"legal":38,"losing":4,"winning":0},{"side":"black","before":"RNB.KABNR....A........p....P.P...P.P....C..........p..p.p.p...prC..C...c........r.NbakabN.","move":"a8a9","from":"a8","to":"a9","flipped":[],"legal":24,"losing":1,"winning":0},{"side":"red","before":"RNB.KABNR....A........p....P.P...P.P....C..........p..p.p.p...p.C..C...cr.......r.NbakabN.","move":"h10g8","from":"h10","to":"g8","flipped":["f10","i9","i7","e7"],"legal":47,"losing":4,"winning":0},{"side":"black","before":"RNB.KABNR....A........p....P.P...P.P....C..........p..p.p.P...P.C..C.N.cr.......R.NbakAb..","move":"a9h9","from":"a9","to":"h9","flipped":["h1","i9"],"legal":18,"losing":10,"winning":0},{"side":"red","before":"RNB.KABnR....A........p....P.P...P.P....C..........p..p.p.P...P.C..C.N.c.......rr.NbakAb..","move":"e8c8","from":"e8","to":"c8","flipped":["i8"],"legal":50,"losing":4,"winning":0},{"side":"black","before":"RNB.KABnR....A........p....P.P...P.P....C..........p..p.p.P...P.CC...N.C.......rr.NbakAb..","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":28,"losing":26,"winning":0},{"side":"red","before":"RNB.KABnR....A........p....P.P...P.P....C..........p..p.p.P...P.CC.b.N.C.......rr.NbakA...","move":"i8h8","from":"i8","to":"h8","flipped":["e8"],"legal":46,"losing":4,"winning":0},{"side":"black","before":"RNB.KABnR....A........p....P.P...P.P....C..........p..p.p.P...P.CC.B.NC........rr.NbakA...","move":"h1i3","from":"h1","to":"i3","flipped":["g4"],"legal":20,"losing":8,"winning":0},{"side":"red","before":"RNB.KAB.R....A........p...nP.P...p.P....C..........p..p.p.P...P.CC.B.NC........rr.NbakA...","move":"e5i5","from":"e5","to":"i5","flipped":["i9","i3"],"legal":54,"losing":50,"winning":0},{"side":"black","before":"RNB.KAB.R....A........p...NP.P...p.P........C......p..p.p.P...P.CC.B.NC........rR.NbakA...","move":"e3f3","from":"e3","to":"f3","flipped":[],"legal":19,"losing":9,"winning":0},{"side":"red","before":"RNB.KAB.R....A.........p..NP.P...p.P........C......p..p.p.P...P.CC.B.NC........rR.NbakA...","move":"i5h5","from":"i5","to":"h5","flipped":["h9"],"legal":57,"losing":1,"winning":0},{"side":"black","before":"RNB.KAB.R....A.........p..NP.P...p.P.......C.......p..p.p.P...P.CC.B.NC........RR.NbakA...","move":"d10e9","from":"d10","to":"e9","flipped":["f10"],"legal":12,"losing":11,"winning":0},{"side":"red","before":"RNB.KAB.R....A.........p..NP.P...p.P.......C.......p..p.p.P...P.CC.B.NC.....a..RR.Nb.ka...","move":"h9f9","from":"h9","to":"f9","flipped":["f10","f3","e9"],"legal":59,"losing":0,"winning":0},{"side":"black","before":"RNB.KAB.R....A.........P..NP.P...p.P.......C.......p..p.p.P...P.CC.B.NC.....AR..R.Nb.kA...","move":"g6g5","from":"g6","to":"g5","flipped":["h5"],"legal":8,"losing":8,"winning":0},{"side":"red","before":"RNB.KAB.R....A.........P..NP.P...p.P......pc..........p.p.P...P.CC.B.NC.....AR..R.Nb.kA...","move":"h8h10","from":"h8","to":"h10","flipped":[],"legal":57,"losing":1,"winning":1,"after":"RNB.KAB.R....A.........P..NP.P...p.P......pc..........p.p.P...P.CC.B.N......AR..R.Nb.kA.C."}]},{"tag":"g30","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c.....c..........rnbakabNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":38,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c..b..c..........rn.akabNr","move":"b3h3","from":"b3","to":"h3","flipped":["h8"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.......C..........p.p.p.p.p.c..b..C..........rn.akabNr","move":"b8b5","from":"b8","to":"b5","flipped":[],"legal":29,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P.c.....C..........p.p.p.p.p....b..C..........rn.akabNr","move":"h5e5","from":"h5","to":"e5","flipped":["e8"],"legal":47,"losing":37,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.c..C.............p.p.p.p.p....B..C..........rn.akabNr","move":"b5b6","from":"b5","to":"b6","flipped":[],"legal":26,"losing":1,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P....C.....c.......p.p.p.p.p....B..C..........rn.akabNr","move":"e8c6","from":"e8","to":"c6","flipped":[],"legal":54,"losing":8,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P....C.....cB......p.p.p.p.p.......C..........rn.akabNr","move":"e7e6","from":"e7","to":"e6","flipped":["e5"],"legal":24,"losing":22,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P....c.....cB.p....p.p...p.p.......C..........rn.akabNr","move":"h3e3","from":"h3","to":"e3","flipped":["e5"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P....C.....cB.p....p.p...p.p.......C..........rn.akabNr","move":"i10i8","from":"i10","to":"i8","flipped":["h8"],"legal":23,"losing":3,"winning":0},{"side":"red","before":"RNBAKABNR.............C....P.P.P.P.P....C.....cB.p....p.p...p.p.......cr.........rn.akabN.","move":"e5i5","from":"e5","to":"i5","flipped":["i8"],"legal":37,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR.............C....P.P.P.P.P........C.cB.p....p.p...p.p.......cR.........rn.akabN.","move":"i7i6","from":"i7","to":"i6","flipped":["i5"],"legal":35,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR.............C....P.P.P.P.P........c.cB.p...pp.p...p.........cR.........rn.akabN.","move":"e3i3","from":"e3","to":"i3","flipped":["i5"],"legal":32,"losing":7,"winning":0},{"side":"black","before":"RNBAKABNR.................CP.P.P.P.P........C.cB.p...pp.p...p.........cR.........rn.akabN.","move":"e6e5","from":"e6","to":"e5","flipped":["e4"],"legal":34,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR.................CP.P.p.P.P....p...C.cB.....pp.p...p.........cR.........rn.akabN.","move":"i8i7","from":"i8","to":"i7","flipped":["i6","g7"],"legal":33,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR.................CP.P.p.P.P....p...C.cB.....Pp.p...P.R.......c..........rn.akabN.","move":"e4e3","from":"e4","to":"e3","flipped":[],"legal":39,"losing":5,"winning":0},{"side":"red","before":"RNBAKABNR.............p...CP.P...P.P....p...C.cB.....Pp.p...P.R.......c..........rn.akabN.","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":32,"losing":28,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p...CP.P...P.P....p...C.cB.....Pp.p...P.R.......c..........rn.akabN.","move":"h8i8","from":"h8","to":"i8","flipped":["i6"],"legal":39,"losing":2,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p...CP.P...P.P....p...C.cB.....pp.p...P.R........c.........rn.akabN.","move":"i3h3","from":"i3","to":"h3","flipped":[],"legal":28,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..C.P.P...P.P....p...C.cB.....pp.p...P.R........c.........rn.akabN.","move":"b6b3","from":"b6","to":"b3","flipped":["h3"],"legal":33,"losing":2,"winning":0},{"side":"red","before":"RNBAK.BNR....A.....c..p..c.P.P...P.P....p...C..B.....pp.p...P.R........c.........rn.akabN.","move":"i7h7","from":"i7","to":"h7","flipped":["h3"],"legal":27,"losing":5,"winning":0},{"side":"black","before":"RNBAK.BNR....A.....c..p..C.P.P...P.P....p...C..B.....pp.p...PR.........c.........rn.akabN.","move":"b3b4","from":"b3","to":"b4","flipped":["g4"],"legal":36,"losing":2,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..C.PcP...p.P....p...C..B.....pp.p...PR.........c.........rn.akabN.","move":"h7i7","from":"h7","to":"i7","flipped":["i8","i6"],"legal":37,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..C.PcP...p.P....p...C..B.....Pp.p...P.R........C.........rn.akabN.","move":"a10a8","from":"a10","to":"a8","flipped":["i8"],"legal":25,"losing":4,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..C.PcP...p.P....p...C..B.....Pp.p...P.Rr.......c..........n.akabN.","move":"c6e8","from":"c6","to":"e8","flipped":["g10"],"legal":36,"losing":4,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..C.PcP...p.P....p...C........Pp.p...P.Rr...B...c..........n.akaBN.","move":"g4g3","from":"g4","to":"g3","flipped":["h3"],"legal":32,"losing":3,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p.pc.PcP.....P....p...C........Pp.p...P.Rr...B...c..........n.akaBN.","move":"i7h7","from":"i7","to":"h7","flipped":["h3"],"legal":27,"losing":4,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p.pC.PcP.....P....p...C........Pp.p...PR.r...B...c..........n.akaBN.","move":"a8a10","from":"a8","to":"a10","flipped":[],"legal":32,"losing":3,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p.pC.PcP.....P....p...C........Pp.p...PR.....B...c.........rn.akaBN.","move":"h3h4","from":"h3","to":"h4","flipped":["b4"],"legal":37,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p.p..PCP....CP....p...C........Pp.p...PR.....B...c.........rn.akaBN.","move":"g3h3","from":"g3","to":"h3","flipped":[],"legal":24,"losing":7,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..p.PCP....CP....p...C........Pp.p...PR.....B...c.........rn.akaBN.","move":"b4b6","from":"b4","to":"b6","flipped":[],"legal":45,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..p.P.P....CP....p...C.C......Pp.p...PR.....B...c.........rn.akaBN.","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":24,"losing":21,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..p.P.P....CP....p...C.C......Pp.p...PR.....B...c....a....rn..kaBN.","move":"h7i7","from":"h7","to":"i7","flipped":["i8"],"legal":52,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..p.P.P....CP....p...C.C......Pp.p...P.R....B...C....a....rn..kaBN.","move":"c7c6","from":"c7","to":"c6","flipped":[],"legal":19,"losing":3,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..p.P.P....CP....p...C.Cp.....Pp.....P.R....B...C....a....rn..kaBN.","move":"b6a6","from":"b6","to":"a6","flipped":["a10"],"legal":49,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..p.P.P....CP....p...CC.p.....Pp.....P.R....B...C....a....Rn..kaBN.","move":"e9d10","from":"e9","to":"d10","flipped":[],"legal":16,"losing":3,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..p.P.P....CP....p...CC.p.....Pp.....P.R....B...C.........Rn.akaBN.","move":"e8g6","from":"e8","to":"g6","flipped":[],"legal":45,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..p.P.P....CP....p...CC.p...B.Pp.....P.R........C.........Rn.akaBN.","move":"e5f5","from":"e5","to":"f5","flipped":[],"legal":15,"losing":12,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..p.P.P....CP.....p..CC.p...B.Pp.....P.R........C.........Rn.akaBN.","move":"g7g8","from":"g7","to":"g8","flipped":[],"legal":49,"losing":3,"winning":0},{"side":"black","before":"RNBAK.BNR....A........p..p.P.P....CP.....p..CC.p...B.Pp.......R......P.C.........Rn.akaBN.","move":"c6c5","from":"c6","to":"c5","flipped":["c4"],"legal":15,"losing":15,"winning":0},{"side":"red","before":"RNBAK.BNR....A........p..p.P.p....CP..p..p..CC.....B.Pp.......R......P.C.........Rn.akaBN.","move":"i7e7","from":"i7","to":"e7","flipped":[],"legal":50,"losing":3,"winning":1,"after":"RNBAK.BNR....A........p..p.P.p....CP..p..p..CC.....B.Pp...R..........P.C.........Rn.akaBN."}]},{"tag":"g31","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P...............pC.p.p.p...p.c.....c..........rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C....pC.p.p.p...p.c.....c..........rNbakabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":32,"losing":24,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.P.P.P..........C....pC.p.p.p...p.c.....c.....a....rNbak.bNr","move":"c4c5","from":"c4","to":"c5","flipped":[],"legal":40,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P...P.P.P..P.......C....pC.p.p.p...p.c.....c.....a....rNbak.bNr","move":"i7i6","from":"i7","to":"i6","flipped":[],"legal":33,"losing":4,"winning":0},{"side":"red","before":"RNBAKABNR..................P...P.P.P..P.......C....pCpp.p.p.....c.....c.....a....rNbak.bNr","move":"h10g8","from":"h10","to":"g8","flipped":["e9","e7"],"legal":39,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P...P.P.P..P.......C....pCpp.p.P.....c....Nc.....A....rNbak.b.r","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":26,"losing":1,"winning":0},{"side":"red","before":"RNBAKABNR..................P...P.P.P..P.......C....pCpp.p.P.....c..b.Nc.....A....rNbak...r","move":"g1i3","from":"g1","to":"i3","flipped":[],"legal":45,"losing":0,"winning":0},{"side":"black","before":"RNBAKA.NR.................BP...P.P.P..P.......C....pCpp.p.P.....c..b.Nc.....A....rNbak...r","move":"b8a8","from":"b8","to":"a8","flipped":["a4","g8"],"legal":25,"losing":0,"winning":0},{"side":"red","before":"RNBAKA.NR.................Bp...P.P.P..P.......C....pCpp.p.P....c...b.nc.....A....rNbak...r","move":"i3g1","from":"i3","to":"g1","flipped":[],"legal":41,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................p...P.P.P..P.......C....pCpp.p.P....c...b.nc.....A....rNbak...r","move":"a8b8","from":"a8","to":"b8","flipped":["b1"],"legal":27,"losing":0,"winning":0},{"side":"red","before":"RnBAKABNR..................p...P.P.P..P.......C....pCpp.p.P.....c..b.nc.....A....rNbak...r","move":"g1i3","from":"g1","to":"i3","flipped":[],"legal":39,"losing":1,"winning":0},{"side":"black","before":"RnBAKA.NR.................Bp...P.P.P..P.......C....pCpp.p.P.....c..b.nc.....A....rNbak...r","move":"h8h7","from":"h8","to":"h7","flipped":["h1"],"legal":32,"losing":0,"winning":0},{"side":"red","before":"RnBAKA.nR.................Bp...P.P.P..P.......C....pCpp.p.P..c..c..b.n......A....rNbak...r","move":"i3g1","from":"i3","to":"g1","flipped":[],"legal":35,"losing":2,"winning":0},{"side":"black","before":"RnBAKABnR..................p...P.P.P..P.......C....pCpp.p.P..c..c..b.n......A....rNbak...r","move":"g8f6","from":"g8","to":"f6","flipped":["g4","e4"],"legal":38,"losing":0,"winning":0},{"side":"red","before":"RnBAKABnR..................p...p.p.P..P.......C...npCpp.p.P..c..c..b........A....rNbak...r","move":"a1a3","from":"a1","to":"a3","flipped":["a4"],"legal":33,"losing":2,"winning":0},{"side":"black","before":".nBAKABnR.........R........P...p.p.P..P.......C...npCpp.p.P..c..c..b........A....rNbak...r","move":"b1c3","from":"b1","to":"c3","flipped":["d1","a4"],"legal":39,"losing":0,"winning":0},{"side":"red","before":"..BaKABnR.........R.n......p...p.p.P..P.......C...npCpp.p.P..c..c..b........A....rNbak...r","move":"i1i3","from":"i1","to":"i3","flipped":["c3"],"legal":33,"losing":2,"winning":0},{"side":"black","before":"..BaKABn..........R.N.....Rp...p.p.P..P.......C...npCpp.p.P..c..c..b........A....rNbak...r","move":"d1e2","from":"d1","to":"e2","flipped":["f1"],"legal":39,"losing":0,"winning":0},{"side":"red","before":"..B.KaBn.....a....R.N.....Rp...p.p.P..P.......C...npCpp.p.P..c..c..b........A....rNbak...r","move":"c3d5","from":"c3","to":"d5","flipped":["c7","f6"],"legal":41,"losing":4,"winning":0},{"side":"black","before":"..B.KaBn.....a....R.......Rp...p.p.P..PN......C...NpCpp.P.P..c..c..b........A....rNbak...r","move":"i10f10","from":"i10","to":"f10","flipped":["f6"],"legal":37,"losing":1,"winning":0},{"side":"red","before":"..B.KaBn.....a....R.......Rp...p.p.P..PN......C...npCpp.P.P..c..c..b........A....rNbakr...","move":"d5c3","from":"d5","to":"c3","flipped":["e4","e2","a4"],"legal":49,"losing":5,"winning":0},{"side":"black","before":"..B.KaBn.....A....R.N.....RP...P.p.P..P.......C...npCpp.P.P..c..c..b........A....rNbakr...","move":"g4g3","from":"g4","to":"g3","flipped":[],"legal":32,"losing":3,"winning":0},{"side":"red","before":"..B.KaBn.....A....R.N...p.RP...P...P..P.......C...npCpp.P.P..c..c..b........A....rNbakr...","move":"e9f8","from":"e9","to":"f8","flipped":[],"legal":44,"losing":4,"winning":0},{"side":"black","before":"..B.KaBn.....A....R.N...p.RP...P...P..P.......C...npCpp.P.P..c..c..bA............rNbakr...","move":"f10i10","from":"f10","to":"i10","flipped":[],"legal":32,"losing":5,"winning":0},{"side":"red","before":"..B.KaBn.....A....R.N...p.RP...P...P..P.......C...npCpp.P.P..c..c..bA............rNbak...r","move":"e7d7","from":"e7","to":"d7","flipped":[],"legal":43,"losing":4,"winning":0},{"side":"black","before":"..B.KaBn.....A....R.N...p.RP...P...P..P.......C...npCpp.PP...c..c..bA............rNbak...r","move":"d10e9","from":"d10","to":"e9","flipped":["f8"],"legal":34,"losing":31,"winning":0},{"side":"red","before":"..B.KaBn.....A....R.N...p.RP...P...P..P.......C...npCpp.PP...c..c..ba.......a....rNb.k...r","move":"c7b7","from":"c7","to":"b7","flipped":["b8","a7"],"legal":41,"losing":8,"winning":0},{"side":"black","before":"..B.KaBn.....A....R.N...p.RP...P...P..P.......C...npCpPP.P...c..C..ba.......a....rNb.k...r","move":"a10a9","from":"a10","to":"a9","flipped":["a7"],"legal":30,"losing":5,"winning":0},{"side":"red","before":"..B.KaBn.....A....R.N...p.RP...P...P..P.......C...npCppP.P...c..C..ba...r...a.....Nb.k...r","move":"b6a6","from":"b6","to":"a6","flipped":["a9","g6"],"legal":44,"losing":3,"winning":0},{"side":"black","before":"..B.KaBn.....A....R.N...p.RP...P...P..P......C....nPCppP.P...c..C..ba...R...a.....Nb.k...r","move":"h7h9","from":"h7","to":"h9","flipped":["a9"],"legal":27,"losing":5,"winning":0},{"side":"red","before":"..B.KaBn.....A....R.N...p.RP...P...P..P......C....nPCppP.P......C..ba...r...a..c..Nb.k...r","move":"i3i1","from":"i3","to":"i1","flipped":["h1"],"legal":43,"losing":0,"winning":0},{"side":"black","before":"..B.KaBNR....A....R.N...p..P...P...P..P......C....nPCppP.P......C..ba...r...a..c..Nb.k...r","move":"a9b9","from":"a9","to":"b9","flipped":["b10","b8"],"legal":31,"losing":5,"winning":0},{"side":"red","before":"..B.KaBNR....A....R.N...p..P...P...P..P......C....nPCppP.P......c..ba....r..a..c..nb.k...r","move":"a6b6","from":"a6","to":"b6","flipped":["b8"],"legal":38,"losing":2,"winning":0},{"side":"black","before":"..B.KaBNR....A....R.N...p..P...P...P..P.......C...nPCppP.P......C..ba....r..a..c..nb.k...r","move":"f6d5","from":"f6","to":"d5","flipped":["c3"],"legal":29,"losing":5,"winning":0},{"side":"red","before":"..B.KaBNR....A....R.n...p..P...P...P..Pn......C....PCppP.P......C..ba....r..a..c..nb.k...r","move":"b8c8","from":"b8","to":"c8","flipped":["c3","f8"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"..B.KaBNR....A....R.N...p..P...P...P..Pn......C....PCppP.P.......C.bA....r..a..c..nb.k...r","move":"d5e7","from":"d5","to":"e7","flipped":["g6"],"legal":32,"losing":6,"winning":0},{"side":"red","before":"..B.KaBNR....A....R.N...p..P...P...P..P.......C....pCppP.Pn......C.bA....r..a..c..nb.k...r","move":"b7b8","from":"b7","to":"b8","flipped":["b9"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"..B.KaBNR....A....R.N...p..P...P...P..P.......C....pCpp..Pn.....PC.bA....R..a..c..nb.k...r","move":"e7f5","from":"e7","to":"f5","flipped":["h6"],"legal":27,"losing":6,"winning":0},{"side":"red","before":"..B.KaBNR....A....R.N...p..P...P...P..P..n....C....pcpp..P......PC.bA....R..a..c..nb.k...r","move":"b9d9","from":"b9","to":"d9","flipped":["e9"],"legal":44,"losing":0,"winning":0},{"side":"black","before":"..B.KaBNR....A....R.N...p..P...P...P..P..n....C....pcpp..P......PC.bA......RA..c..nb.k...r","move":"h9f9","from":"h9","to":"f9","flipped":["d9"],"legal":35,"losing":32,"winning":0},{"side":"red","before":"..B.KaBNR....A....R.N...p..P...P...P..P..n....C....pcpp..P......PC.bA......rAc....nb.k...r","move":"b6d6","from":"b6","to":"d6","flipped":["d9","h6"],"legal":45,"losing":2,"winning":0},{"side":"black","before":"..B.KaBNR....A....R.N...p..P...P...P..P..n......C..pCpp..P......PC.bA......RAc....nb.k...r","move":"f9h9","from":"f9","to":"h9","flipped":["h1","d9"],"legal":25,"losing":22,"winning":0},{"side":"red","before":"..B.KaBnR....A....R.N...p..P...P...P..P..n......C..pCpp..P......PC.bA......rA..c..nb.k...r","move":"d7d8","from":"d7","to":"d8","flipped":["d9","e8"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"..B.KaBnR....A....R.N...p..P...P...P..P..n......C..pCpp.........PCPBA......RA..c..nb.k...r","move":"h9g9","from":"h9","to":"g9","flipped":["d9"],"legal":28,"losing":24,"winning":0},{"side":"red","before":"..B.KaBnR....A....R.N...p..P...P...P..P..n......C..pCpp.........PCPBA......rA.c...nb.k...r","move":"e9f10","from":"e9","to":"f10","flipped":[],"legal":49,"losing":0,"winning":0},{"side":"black","before":"..B.KaBnR....A....R.N...p..P...P...P..P..n......C..pCpp.........PCPBA......r..c...nb.kA..r","move":"g9i9","from":"g9","to":"i9","flipped":["i4"],"legal":34,"losing":34,"winning":0},{"side":"red","before":"..B.KaBnR....A....R.N...p..P...P...p..P..n......C..pCpp.........PCPBA......r....c.nb.kA..r","move":"d6e6","from":"d6","to":"e6","flipped":[],"legal":48,"losing":0,"winning":2,"after":"..B.KaBnR....A....R.N...p..P...P...p..P..n.......C.pCpp.........PCPBA......r....c.nb.kA..r"}]},{"tag":"g32","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c.....c..........rnbakabNr","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":38,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c..b..c..........rnbaka.Nr","move":"h10f9","from":"h10","to":"f9","flipped":["g7","e7","h8","d10"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.P.P.p.c..b..C......N...rnbAka..r","move":"b8d8","from":"b8","to":"d8","flipped":["h8"],"legal":24,"losing":22,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.P.P.p...cb..c......N...rnbAka..r","move":"g7g8","from":"g7","to":"g8","flipped":["h8"],"legal":55,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.P...p...cb.PC......N...rnbAka..r","move":"i10i8","from":"i10","to":"i8","flipped":["h8"],"legal":26,"losing":22,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.P...p...cb.Pcr.....N...rnbAka...","move":"b3h3","from":"b3","to":"h3","flipped":["h8"],"legal":55,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.......C..........p.p.P...p...cb.PCr.....N...rnbAka...","move":"f10e9","from":"f10","to":"e9","flipped":["d10"],"legal":24,"losing":23,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P.......C..........p.p.P...p...cb.PCr....aN...rnbak....","move":"f9g7","from":"f9","to":"g7","flipped":["i8","e8"],"legal":51,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P.......C..........p.p.P.N.p...cB.PCR....a....rnbak....","move":"d8d7","from":"d8","to":"d7","flipped":["g7"],"legal":21,"losing":21,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P.......C..........p.pcP.n.p....B.PCR....a....rnbak....","move":"i8i10","from":"i8","to":"i10","flipped":[],"legal":52,"losing":1,"winning":1,"after":"RNBAKABNR................C.P.P.P.P.P.......C..........p.pcP.n.p....B.PC.....a....rnbak...R"}]},{"tag":"g33","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c.....a....rnbak.bNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.P.P.P..........C.....C.p.p.p.p.p.c.....c.....a....rNbak.bNr","move":"h8h9","from":"h8","to":"h9","flipped":["h1"],"legal":33,"losing":4,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P..........C.....C.p.p.p.p.p.c...........a..c.rNbak.bNr","move":"b10c8","from":"b10","to":"c8","flipped":["d10","e9","e7"],"legal":43,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR..................P.P.P.P.P..........C.....C.p.p.P.p.p.cN..........A..c.r.bAk.bNr","move":"h9h7","from":"h9","to":"h7","flipped":["e7"],"legal":24,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P..........C.....C.p.p.p.pcp.cN..........A....r.bAk.bNr","move":"e9d8","from":"e9","to":"d8","flipped":[],"legal":45,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR..................P.P.P.P.P..........C.....C.p.p.p.pcp.cNA..............r.bAk.bNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":24,"losing":21,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P..........C.....C.p.p.p.pcp.cNAb.............r..Ak.bNr","move":"b6a6","from":"b6","to":"a6","flipped":["a10"],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR..................P.P.P.P.P.........C......C.p.p.p.pcp.cNAb.............R..Ak.bNr","move":"b8b9","from":"b8","to":"b9","flipped":[],"legal":25,"losing":5,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P.........C......C.p.p.p.pcp..NAb.....c.......R..Ak.bNr","move":"a10b10","from":"a10","to":"b10","flipped":["b9"],"legal":46,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR..................P.P.P.P.P.........C......C.p.p.p.pcp..NAb.....C........R.Ak.bNr","move":"h7h8","from":"h7","to":"h8","flipped":["d8"],"legal":16,"losing":5,"winning":0},{"side":"red","before":"RNBAKABnR..................P.P.P.P.P.........C......C.p.p.p.p.p..Nab..c..C........R.Ak.bNr","move":"b9b2","from":"b9","to":"b2","flipped":[],"legal":58,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR.C................P.P.P.P.P.........C......C.p.p.p.p.p..Nab..c...........R.Ak.bNr","move":"d8e9","from":"d8","to":"e9","flipped":["d10"],"legal":20,"losing":5,"winning":0},{"side":"red","before":"RNBAKABnR.C................P.P.P.P.P.........C......C.p.p.p.p.p..N.b..c.....a.....R.ak.bNr","move":"b10a10","from":"b10","to":"a10","flipped":["a7","d10"],"legal":61,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR.C................P.P.P.P.P.........C......C.P.p.p.p.p..N.b..c.....a....R..Ak.bNr","move":"e8c10","from":"e8","to":"c10","flipped":[],"legal":21,"losing":20,"winning":0},{"side":"red","before":"RNBAKABnR.C................P.P.P.P.P.........C......C.P.p.p.p.p..N....c.....a....R.bAk.bNr","move":"b2h2","from":"b2","to":"h2","flipped":["h8"],"legal":59,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR.......C..........P.P.P.P.P.........C......C.P.p.p.p.p..N....C.....a....R.bAk.bNr","move":"i10i8","from":"i10","to":"i8","flipped":["h8"],"legal":14,"losing":11,"winning":0},{"side":"red","before":"RNBAKABnR.......C..........P.P.P.P.P.........C......C.P.p.p.p.p..N....cr....a....R.bAk.bN.","move":"h2h3","from":"h2","to":"h3","flipped":["h8"],"legal":54,"losing":0,"winning":0},{"side":"black","before":"RNBAKABnR................C.P.P.P.P.P.........C......C.P.p.p.p.p..N....Cr....a....R.bAk.bN.","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":15,"losing":13,"winning":0},{"side":"red","before":"RNBAKABnR................C.P.P.P.P.P.........C......C.P.p.p.p.p..N.b..Cr....a....R.bAk..N.","move":"h6i6","from":"h6","to":"i6","flipped":["i8"],"legal":59,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR................C.P.P.P.P.P.........C.......CP.p.p.p.p..N.b..CR....a....R.bAk..N.","move":"e9f10","from":"e9","to":"f10","flipped":[],"legal":13,"losing":4,"winning":0},{"side":"red","before":"RNBAKABnR................C.P.P.P.P.P.........C.......CP.p.p.p.p..N.b..CR.........R.bAka.N.","move":"h10f9","from":"h10","to":"f9","flipped":["g7","e7"],"legal":67,"losing":1,"winning":0},{"side":"black","before":"RNBAKABnR................C.P.P.P.P.P.........C.......CP.p.P.P.p..N.b..CR.....N...R.bAka...","move":"h1g3","from":"h1","to":"g3","flipped":["f1","e4"],"legal":8,"losing":8,"winning":0},{"side":"red","before":"RNBAKaB.R...............nC.P.P.p.P.P.........C.......CP.p.P.P.p..N.b..CR.....N...R.bAka...","move":"h8h10","from":"h8","to":"h10","flipped":[],"legal":66,"losing":1,"winning":2,"after":"RNBAKaB.R...............nC.P.P.p.P.P.........C.......CP.p.P.P.p..N.b...R.....N...R.bAka.C."}]},{"tag":"g34","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c.....a....rnbak.bNr","move":"b3h3","from":"b3","to":"h3","flipped":["h8"],"legal":48,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.c.....C.....a....rnbak.bNr","move":"c10e8","from":"c10","to":"e8","flipped":[],"legal":32,"losing":26,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.c..b..C.....a....rn.ak.bNr","move":"h8g8","from":"h8","to":"g8","flipped":["b8"],"legal":49,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.C..b.C......a....rn.ak.bNr","move":"i10i8","from":"i10","to":"i8","flipped":["g8"],"legal":20,"losing":5,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.C..b.c.r....a....rn.ak.bN.","move":"b8c8","from":"b8","to":"c8","flipped":["g8"],"legal":54,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p..C.b.C.r....a....rn.ak.bN.","move":"a10a8","from":"a10","to":"a8","flipped":["c8"],"legal":19,"losing":18,"winning":0},{"side":"red","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.pr.c.b.C.r....a.....n.ak.bN.","move":"g8h8","from":"g8","to":"h8","flipped":["c8"],"legal":47,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR................C.P.P.P.P.P................C.p.p.p.p.pr.C.b..Cr....a.....n.ak.bN.","move":"a8b8","from":"a8","to":"b8","flipped":["b1","c8"],"legal":18,"losing":17,"winning":0},{"side":"red","before":"RnBAKABNR................C.P.P.P.P.P................C.p.p.p.p.p.rc.b..Cr....a.....n.ak.bN.","move":"h10g8","from":"h10","to":"g8","flipped":["e9","e7"],"legal":45,"losing":1,"winning":0},{"side":"black","before":"RnBAKABNR................C.P.P.P.P.P................C.p.p.P.p.p.rc.b.NCr....A.....n.ak.b..","move":"b8a8","from":"b8","to":"a8","flipped":[],"legal":25,"losing":25,"winning":0},{"side":"red","before":"RnBAKABNR................C.P.P.P.P.P................C.p.p.P.p.pr.c.b.NCr....A.....n.ak.b..","move":"h8h10","from":"h8","to":"h10","flipped":[],"legal":50,"losing":1,"winning":1,"after":"RnBAKABNR................C.P.P.P.P.P................C.p.p.P.p.pr.c.b.N.r....A.....n.ak.bC."}]},{"tag":"g35","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":37,"losing":29,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P................C.p.p.p.p.p.c..c.............rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p.c..c.............rNbakabNr","move":"b8b9","from":"b8","to":"b9","flipped":["b1"],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RnBAKABNR..................P.P.p.P.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":44,"losing":1,"winning":0},{"side":"black","before":"RnBAKA.NR.............B....P.P.p.P.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":36,"losing":9,"winning":0},{"side":"red","before":"RnBAKA.NR.............B....P.P..pp.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":43,"losing":3,"winning":0},{"side":"black","before":"RnB.KA.NR....A........B....P.P..pp.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":38,"losing":9,"winning":0},{"side":"red","before":"R.B.KA.NR....A....n...B....P.p..pp.P..........C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"e3c5","from":"e3","to":"c5","flipped":["a3"],"legal":43,"losing":38,"winning":0},{"side":"black","before":"R.B.KA.NR....A....N........P.p..pp.P..B.......C.....C.p.p.p.p.p....c.....c.......rNbakabNr","move":"i7i6","from":"i7","to":"i6","flipped":[],"legal":39,"losing":9,"winning":0},{"side":"red","before":"R.B.KA.NR....A....N........P.p..pp.P..B.......C.....Cpp.p.p.p......c.....c.......rNbakabNr","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":44,"losing":9,"winning":0},{"side":"black","before":"R...KA.NR....A....N...B....P.p..pp.P..B.......C.....Cpp.p.p.p......c.....c.......rNbakabNr","move":"e7e6","from":"e7","to":"e6","flipped":[],"legal":40,"losing":9,"winning":0},{"side":"red","before":"R...KA.NR....A....N...B....P.p..pp.P..B.......C..p..Cpp.p...p......c.....c.......rNbakabNr","move":"i4i5","from":"i4","to":"i5","flipped":["i6"],"legal":40,"losing":0,"winning":0},{"side":"black","before":"R...KA.NR....A....N...B....P.p..pp....B.....P.C..p..CPp.p...p......c.....c.......rNbakabNr","move":"f4f3","from":"f4","to":"f3","flipped":["e3"],"legal":40,"losing":2,"winning":0},{"side":"red","before":"R...KA.NR....A....N...bp...P.p...p....B.....P.C..p..CPp.p...p......c.....c.......rNbakabNr","move":"a3c2","from":"a3","to":"c2","flipped":["e3"],"legal":38,"losing":0,"winning":0},{"side":"black","before":"R...KA.NR..N.A........Bp...P.p...p....B.....P.C..p..CPp.p...p......c.....c.......rNbakabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":41,"losing":2,"winning":0},{"side":"red","before":"R...KA.NR..N.A........Bp...P.p...p....B.....P.C..p.pCPp.p..........c.....c.......rNbakabNr","move":"c5a3","from":"c5","to":"a3","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"R...KA.NR..N.A....B...Bp...P.p...p..........P.C..p.pCPp.p..........c.....c.......rNbakabNr","move":"a7a6","from":"a7","to":"a6","flipped":[],"legal":41,"losing":2,"winning":0},{"side":"red","before":"R...KA.NR..N.A....B...Bp...P.p...p..........PpC..p.pCP..p..........c.....c.......rNbakabNr","move":"i6i7","from":"i6","to":"i7","flipped":[],"legal":41,"losing":0,"winning":0},{"side":"black","before":"R...KA.NR..N.A....B...Bp...P.p...p..........PpC..p.pC...p.....P....c.....c.......rNbakabNr","move":"e8f8","from":"e8","to":"f8","flipped":["f1"],"legal":41,"losing":2,"winning":0},{"side":"red","before":"R...Ka.NR..N.A....B...Bp...P.p...p..........PpC..p.pC...p.....P.....c....c.......rNbakabNr","move":"h6i6","from":"h6","to":"i6","flipped":["i10","e6"],"legal":44,"losing":0,"winning":0},{"side":"black","before":"R...Ka.NR..N.A....B...Bp...P.p...p..........PpC..P.p.C..p.....P.....c....c.......rNbakabNR","move":"f8f6","from":"f8","to":"f6","flipped":["i6","b6"],"legal":43,"losing":1,"winning":0},{"side":"red","before":"R...Ka.NR..N.A....B...Bp...P.p...p..........Ppc..Pcp.c..p.....P..........c.......rNbakabNR","move":"i10i9","from":"i10","to":"i9","flipped":["b9"],"legal":30,"losing":5,"winning":0},{"side":"black","before":"R...Ka.NR..N.A....B...Bp...P.p...p..........Ppc..Pcp.c..p.....P..........C......RrNbakabN.","move":"f6f9","from":"f6","to":"f9","flipped":[],"legal":35,"losing":32,"winning":0},{"side":"red","before":"R...Ka.NR..N.A....B...Bp...P.p...p..........Ppc..P.p.c..p.....P..........C...c..RrNbakabN.","move":"i9g9","from":"i9","to":"g9","flipped":["g10","g6","f9"],"legal":39,"losing":5,"winning":0},{"side":"black","before":"R...Ka.NR..N.A....B...Bp...P.p...p..........Ppc..P.P.c..p.....P..........C...CR..rNbakaBN.","move":"a10a9","from":"a10","to":"a9","flipped":["b9"],"legal":27,"losing":1,"winning":0},{"side":"red","before":"R...Ka.NR..N.A....B...Bp...P.p...p..........Ppc..P.P.c..p.....P.........rc...CR...NbakaBN.","move":"f9f7","from":"f9","to":"f7","flipped":["f1"],"legal":45,"losing":5,"winning":0},{"side":"black","before":"R...KA.NR..N.A....B...Bp...P.p...p..........Ppc..P.P.c..p..C..P.........rc....R...NbakaBN.","move":"b9f9","from":"b9","to":"f9","flipped":[],"legal":33,"losing":32,"winning":0},{"side":"red","before":"R...KA.NR..N.A....B...Bp...P.p...p..........Ppc..P.P.c..p..C..P.........r....cR...NbakaBN.","move":"b10a8","from":"b10","to":"a8","flipped":["b6","c7"],"legal":47,"losing":6,"winning":0},{"side":"black","before":"R...KA.NR..N.A....B...Bp...P.p...p..........PpC..P.P.c..P..C..PN........r....cR....bakaBN.","move":"a9d9","from":"a9","to":"d9","flipped":[],"legal":24,"losing":21,"winning":0},{"side":"red","before":"R...KA.NR..N.A....B...Bp...P.p...p..........PpC..P.P.c..P..C..PN...........r.cR....bakaBN.","move":"a1d1","from":"a1","to":"d1","flipped":["d9"],"legal":61,"losing":53,"winning":0},{"side":"black","before":"...RKA.NR..N.A....B...Bp...P.p...p..........PpC..P.P.c..P..C..PN...........R.cR....bakaBN.","move":"f3f2","from":"f3","to":"f2","flipped":["f1","e2"],"legal":15,"losing":15,"winning":0},{"side":"red","before":"...RKa.NR..N.ap...B...B....P.p...p..........PpC..P.P.c..P..C..PN...........R.cR....bakaBN.","move":"d9e9","from":"d9","to":"e9","flipped":[],"legal":75,"losing":0,"winning":1,"after":"...RKa.NR..N.ap...B...B....P.p...p..........PpC..P.P.c..P..C..PN............RcR....bakaBN."}]},{"tag":"g36","result":"red","reason":"general-flipped","firstMover":"red","plies":[{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P.......C..........p.p.p.p.p.c.....c..........rnbakabNr","move":"h8e8","from":"h8","to":"e8","flipped":["e4"],"legal":38,"losing":32,"winning":0},{"side":"red","before":"RNBAKABNR..........C.......P.P.p.P.P.......C..........p.p.p.p.p.c..c.............rnbakabNr","move":"b3b6","from":"b3","to":"b6","flipped":["b10"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P.......C..C.......p.p.p.p.p.c..c.............rNbakabNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":29,"losing":7,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P.......C..C....p..p.p.p...p.c..c.............rNbakabNr","move":"h5b5","from":"h5","to":"b5","flipped":["b8"],"legal":48,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P.C........C....p..p.p.p...p.C..c.............rNbakabNr","move":"a10a9","from":"a10","to":"a9","flipped":[],"legal":24,"losing":8,"winning":0},{"side":"red","before":"RNBAKABNR..................P.P.p.P.P.C........C....p..p.p.p...p.C..c....r.........NbakabNr","move":"b5e5","from":"b5","to":"e5","flipped":["e8"],"legal":45,"losing":1,"winning":0},{"side":"black","before":"RNBAKABNR..................P.P.p.P.P....C.....C....p..p.p.p...p.C..C....r.........NbakabNr","move":"a9f9","from":"a9","to":"f9","flipped":["f1"],"legal":25,"losing":1,"winning":0},{"side":"red","before":"RNBAKaBNR..................P.P.p.P.P....C.....C....p..p.p.p...p.C..C.........r....NbakabNr","move":"b10a8","from":"b10","to":"a8","flipped":[],"legal":53,"losing":1,"winning":0},{"side":"black","before":"RNBAKaBNR..................P.P.p.P.P....C.....C....p..p.p.p...pNC..C.........r.....bakabNr","move":"f9f5","from":"f9","to":"f5","flipped":["e5"],"legal":30,"losing":2,"winning":0},{"side":"red","before":"RNBAKaBNR..................P.P.p.P.P....cr....C....p..p.p.p...pNC..C...............bakabNr","move":"e8e9","from":"e8","to":"e9","flipped":["e5"],"legal":43,"losing":38,"winning":0},{"side":"black","before":"RNBAKaBNR..................P.P.p.P.P....Cr....C....p..p.p.p...pNC...........C......bakabNr","move":"f5f8","from":"f5","to":"f8","flipped":["b8"],"legal":24,"losing":21,"winning":0},{"side":"red","before":"RNBAKaBNR..................P.P.p.P.P....C.....C....p..p.p.p...pNc...r.......C......bakabNr","move":"e5b5","from":"e5","to":"b5","flipped":["b8"],"legal":49,"losing":1,"winning":0},{"side":"black","before":"RNBAKaBNR..................P.P.p.P.P.C........C....p..p.p.p...pNC...r.......C......bakabNr","move":"f8h8","from":"f8","to":"h8","flipped":["h10","h1","b8"],"legal":27,"losing":20,"winning":0},{"side":"red","before":"RNBAKaBnR..................P.P.p.P.P.C........C....p..p.p.p...pNc.....r.....C......bakabnr","move":"e9g9","from":"e9","to":"g9","flipped":[],"legal":43,"losing":1,"winning":0},{"side":"black","before":"RNBAKaBnR..................P.P.p.P.P.C........C....p..p.p.p...pNc.....r.......C....bakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":42,"losing":38,"winning":0},{"side":"red","before":"RNBAKaBnR..................P.P.p.P.P.C........C....p..p.p.p...pNc.....r.....a.C....bak.bnr","move":"g9g8","from":"g9","to":"g8","flipped":[],"legal":39,"losing":1,"winning":0},{"side":"black","before":"RNBAKaBnR..................P.P.p.P.P.C........C....p..p.p.p...pNc....Cr.....a......bak.bnr","move":"h8i8","from":"h8","to":"i8","flipped":["g8"],"legal":36,"losing":32,"winning":0},{"side":"red","before":"RNBAKaBnR..................P.P.p.P.P.C........C....p..p.p.p...pNc....c.r....a......bak.bnr","move":"b5b4","from":"b5","to":"b4","flipped":["b8","e4"],"legal":34,"losing":1,"winning":0},{"side":"black","before":"RNBAKaBnR..................PCP.P.P.P..........C....p..p.p.p...pNC....c.r....a......bak.bnr","move":"g8c8","from":"g8","to":"c8","flipped":["c4","a8"],"legal":24,"losing":19,"winning":0},{"side":"red","before":"RNBAKaBnR..................PCp.P.P.P..........C....p..p.p.p...pnCc.....r....a......bak.bnr","move":"b6a6","from":"b6","to":"a6","flipped":["a8"],"legal":29,"losing":1,"winning":0},{"side":"black","before":"RNBAKaBnR..................PCp.P.P.P.........C.....p..p.p.p...pNCc.....r....a......bak.bnr","move":"h1g3","from":"h1","to":"g3","flipped":["i4","e4"],"legal":29,"losing":8,"winning":0},{"side":"red","before":"RNBAKaB.R...............n..PCp.p.P.p.........C.....p..p.p.p...pNCc.....r....a......bak.bnr","move":"a1a2","from":"a1","to":"a2","flipped":[],"legal":32,"losing":1,"winning":0},{"side":"black","before":".NBAKaB.RR..............n..PCp.p.P.p.........C.....p..p.p.p...pNCc.....r....a......bak.bnr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":35,"losing":9,"winning":0},{"side":"red","before":".NBAKaB.RR..............n..PCp..pp.p.........C.....p..p.p.p...pNCc.....r....a......bak.bnr","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":39,"losing":32,"winning":0},{"side":"black","before":".N.AKaB.RR............B.n..PCp..pp.p.........C.....p..p.p.p...pNCc.....r....a......bak.bnr","move":"g3e4","from":"g3","to":"e4","flipped":[],"legal":36,"losing":8,"winning":0},{"side":"red","before":".N.AKaB.RR............B....PCp.npp.p.........C.....p..p.p.p...pNCc.....r....a......bak.bnr","move":"a8b10","from":"a8","to":"b10","flipped":["c8"],"legal":39,"losing":1,"winning":0},{"side":"black","before":".N.AKaB.RR............B....PCp.npp.p.........C.....p..p.p.p...p.CC.....r....a.....Nbak.bnr","move":"i8f8","from":"i8","to":"f8","flipped":["c8"],"legal":31,"losing":23,"winning":0},{"side":"red","before":".N.AKaB.RR............B....PCp.npp.p.........C.....p..p.p.p...p.Cc..r.......a.....Nbak.bnr","move":"b1c3","from":"b1","to":"c3","flipped":["e4"],"legal":39,"losing":1,"winning":0},{"side":"black","before":"...AKaB.RR..........N.B....PCp.Npp.p.........C.....p..p.p.p...p.Cc..r.......a.....Nbak.bnr","move":"f1e2","from":"f1","to":"e2","flipped":["d1"],"legal":35,"losing":4,"winning":0},{"side":"red","before":"...aK.B.RR...a......N.B....PCp.Npp.p.........C.....p..p.p.p...p.Cc..r.......a.....Nbak.bnr","move":"b8a8","from":"b8","to":"a8","flipped":["f8"],"legal":35,"losing":0,"winning":0},{"side":"black","before":"...aK.B.RR...a......N.B....PCp.Npp.p.........C.....p..p.p.p...pC.c..R.......a.....Nbak.bnr","move":"i10i8","from":"i10","to":"i8","flipped":["f8"],"legal":27,"losing":26,"winning":0},{"side":"red","before":"...aK.B.RR...a......N.B....PCp.Npp.p.........C.....p..p.p.p...pC.c..r..r....a.....Nbak.bn.","move":"a6c6","from":"a6","to":"c6","flipped":["c8"],"legal":34,"losing":0,"winning":0},{"side":"black","before":"...aK.B.RR...a......N.B....PCp.Npp.p...........C...p..p.p.p...pC.C..r..r....a.....Nbak.bn.","move":"f8d8","from":"f8","to":"d8","flipped":["c8"],"legal":32,"losing":27,"winning":0},{"side":"red","before":"...aK.B.RR...a......N.B....PCp.Npp.p...........C...p..p.p.p...pC.cr....r....a.....Nbak.bn.","move":"c6c5","from":"c6","to":"c5","flipped":["c8"],"legal":34,"losing":0,"winning":0},{"side":"black","before":"...aK.B.RR...a......N.B....PCp.Npp.p..C............p..p.p.p...pC.Cr....r....a.....Nbak.bn.","move":"c4d4","from":"c4","to":"d4","flipped":["e4"],"legal":37,"losing":10,"winning":0},{"side":"red","before":"...aK.B.RR...a......N.B....PC.pnpp.p..C............p..p.p.p...pC.Cr....r....a.....Nbak.bn.","move":"a8b8","from":"a8","to":"b8","flipped":["d8"],"legal":39,"losing":0,"winning":0},{"side":"black","before":"...aK.B.RR...a......N.B....PC.pnpp.p..C............p..p.p.p...p.CCR....r....a.....Nbak.bn.","move":"d4c4","from":"d4","to":"c4","flipped":["c3","b4"],"legal":30,"losing":5,"winning":0},{"side":"red","before":"...aK.B.RR...a......n.B....Pcp.npp.p..C............p..p.p.p...p.CCR....r....a.....Nbak.bn.","move":"a2b2","from":"a2","to":"b2","flipped":["b4","e2"],"legal":39,"losing":37,"winning":0},{"side":"black","before":"...aK.B.R.R..A......n.B....PCp.npp.p..C............p..p.p.p...p.CCR....r....a.....Nbak.bn.","move":"i8e8","from":"i8","to":"e8","flipped":["d8"],"legal":28,"losing":5,"winning":0},{"side":"red","before":"...aK.B.R.R..A......n.B....PCp.npp.p..C............p..p.p.p...p.CCrr........a.....Nbak.bn.","move":"c5e5","from":"c5","to":"e5","flipped":["e8"],"legal":35,"losing":0,"winning":0},{"side":"black","before":"...aK.B.R.R..A......n.B....PCp.npp.p....C..........p..p.p.p...p.CCrR........a.....Nbak.bn.","move":"d8d2","from":"d8","to":"d2","flipped":["e2","b2"],"legal":28,"losing":4,"winning":0},{"side":"red","before":"...aK.B.R.r.ra......n.B....PCp.npp.p....C..........p..p.p.p...p.CC.R........a.....Nbak.bn.","move":"e8d8","from":"e8","to":"d8","flipped":["d10","d2"],"legal":33,"losing":0,"winning":0},{"side":"black","before":"...aK.B.R.r.Ra......n.B....PCp.npp.p....C..........p..p.p.p...p.CCR.........a.....NbAk.bn.","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":30,"losing":5,"winning":0},{"side":"red","before":"...aK.B.R.r.Ra......n.B....PCp.npp.p....C..........p..p.p.p...p.CCRb........a.....NbAk..n.","move":"b10a8","from":"b10","to":"a8","flipped":[],"legal":39,"losing":0,"winning":0},{"side":"black","before":"...aK.B.R.r.Ra......n.B....PCp.npp.p....C..........p..p.p.p...pNCCRb........a......bAk..n.","move":"b2c2","from":"b2","to":"c2","flipped":["d2"],"legal":29,"losing":0,"winning":0},{"side":"red","before":"...aK.B.R..rra......n.B....PCp.npp.p....C..........p..p.p.p...pNCCRb........a......bAk..n.","move":"b8b7","from":"b8","to":"b7","flipped":["e7"],"legal":35,"losing":0,"winning":0},{"side":"black","before":"...aK.B.R..rra......n.B....PCp.npp.p....C..........p..pCp.P...pN.CRb........a......bAk..n.","move":"e10f10","from":"e10","to":"f10","flipped":[],"legal":31,"losing":30,"winning":0},{"side":"red","before":"...aK.B.R..rra......n.B....PCp.npp.p....C..........p..pCp.P...pN.CRb........a......bA.k.n.","move":"d8d6","from":"d8","to":"d6","flipped":["d2","g6"],"legal":38,"losing":0,"winning":0},{"side":"black","before":"...aK.B.R..rRa......n.B....PCp.npp.p....C.......R..P..pCp.P...pN.C.b........a......bA.k.n.","move":"c2b2","from":"c2","to":"b2","flipped":["b4","d2"],"legal":26,"losing":26,"winning":0},{"side":"red","before":"...aK.B.R.r.ra......n.B....Pcp.npp.p....C.......R..P..pCp.P...pN.C.b........a......bA.k.n.","move":"d6f6","from":"d6","to":"f6","flipped":[],"legal":42,"losing":0,"winning":1,"after":"...aK.B.R.r.ra......n.B....Pcp.npp.p....C.........RP..pCp.P...pN.C.b........a......bA.k.n."}]},{"tag":"g37","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c.....a....rnbak.bnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c.....a....rnbak.bNr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":38,"losing":4,"winning":0},{"side":"red","before":"RnBAKABNR..........C.......P.P.P.P.P.c..............C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"e4e5","from":"e4","to":"e5","flipped":[],"legal":43,"losing":36,"winning":0},{"side":"black","before":"RnBAKABNR..........C.......P.P...P.P.c..P...........C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"b5b6","from":"b5","to":"b6","flipped":[],"legal":39,"losing":4,"winning":0},{"side":"red","before":"RnBAKABNR..........C.......P.P...P.P....P.....c.....C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":42,"losing":33,"winning":0},{"side":"black","before":"RnBAKA.NR..........C..B....P.P...P.P....P.....c.....C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"i7i6","from":"i7","to":"i6","flipped":[],"legal":42,"losing":4,"winning":0},{"side":"red","before":"RnBAKA.NR..........C..B....P.P...P.P....P.....c.....Cpp.p.p.p.........c.....a....rnbak.bNr","move":"b3b2","from":"b3","to":"b2","flipped":["b10"],"legal":37,"losing":4,"winning":0},{"side":"black","before":"RnBAKA.NR.C...........B....P.P...P.P....P.....c.....Cpp.p.p.p.........c.....a....rNbak.bNr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":40,"losing":4,"winning":0},{"side":"red","before":"RnBAKA.NR.C...........B....P.P...P.P....P.....c....pCpp.p.p...........c.....a....rNbak.bNr","move":"h6h4","from":"h6","to":"h4","flipped":[],"legal":38,"losing":3,"winning":0},{"side":"black","before":"RnBAKA.NR.C...........B....P.P...PCP....P.....c....p.pp.p.p...........c.....a....rNbak.bNr","move":"g6g5","from":"g6","to":"g5","flipped":["g4"],"legal":41,"losing":1,"winning":0},{"side":"red","before":"RnBAKA.NR.C...........B....P.P...pCP....P.p...c......pp.p.p...........c.....a....rNbak.bNr","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":36,"losing":2,"winning":0},{"side":"black","before":"RnBAKA.NR.C...........B....P.P...pCP....P.p...c......pp.P.p....N......c.....a....r.bak.bNr","move":"b6a6","from":"b6","to":"a6","flipped":["a8","a1"],"legal":44,"losing":40,"winning":0},{"side":"red","before":"rnBAKA.NR.C...........B....P.P...pCP....P.p..c.......pp.P.p....n......c.....a....r.bak.bNr","move":"b2h2","from":"b2","to":"h2","flipped":["h8"],"legal":40,"losing":2,"winning":0},{"side":"black","before":"rnBAKA.NR.......C.....B....P.P...pCP....P.p..c.......pp.P.p....n......C.....a....r.bak.bNr","move":"i10i8","from":"i10","to":"i8","flipped":["h8"],"legal":32,"losing":26,"winning":0},{"side":"red","before":"rnBAKA.NR.......C.....B....P.P...pCP....P.p..c.......pp.P.p....n......cr....a....r.bak.bN.","move":"h2h3","from":"h2","to":"h3","flipped":["h8"],"legal":30,"losing":3,"winning":0},{"side":"black","before":"rnBAKA.NR.............B..C.P.P...pCP....P.p..c.......pp.P.p....n......Cr....a....r.bak.bN.","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":31,"losing":26,"winning":0},{"side":"red","before":"rnBAKA.NR.............B..C.P.P...pCP....P.p..c.......pp.P.p....n...b..Cr....a....r.bak..N.","move":"h8g8","from":"h8","to":"g8","flipped":["g4","a8"],"legal":33,"losing":3,"winning":0},{"side":"black","before":"rnBAKA.NR.............B..C.P.P...PCP....P.p..c.......pp.P.p....N...b.C.r....a....r.bak..N.","move":"a10a9","from":"a10","to":"a9","flipped":["a8"],"legal":29,"losing":26,"winning":0},{"side":"red","before":"rnBAKA.NR.............B..C.P.P...PCP....P.p..c.......pp.P.p....n...b.C.rr...a......bak..N.","move":"g8h8","from":"g8","to":"h8","flipped":["a8"],"legal":34,"losing":3,"winning":0},{"side":"black","before":"rnBAKA.NR.............B..C.P.P...PCP....P.p..c.......pp.P.p....N...b..Crr...a......bak..N.","move":"a9c9","from":"a9","to":"c9","flipped":["c7"],"legal":30,"losing":26,"winning":0},{"side":"red","before":"rnBAKA.NR.............B..C.P.P...PCP....P.p..c.......pp.p.p....N...b..Cr..r.a......bak..N.","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":31,"losing":3,"winning":0},{"side":"black","before":"rnBAK..NR....A........B..C.P.P...PCP....P.p..c.......pp.p.p....N...b..Cr..r.a......bak..N.","move":"a6h6","from":"a6","to":"h6","flipped":["h10","h3"],"legal":31,"losing":5,"winning":0},{"side":"red","before":"rnBAK..NR....A........B..c.P.P...PCP....P.p.........cpp.p.p....N...b..Cr..r.a......bak..n.","move":"h1f2","from":"h1","to":"f2","flipped":["h3"],"legal":22,"losing":2,"winning":0},{"side":"black","before":"rnBAK...R....AN.......B..C.P.P...PCP....P.p.........cpp.p.p....N...b..Cr..r.a......bak..n.","move":"h6h5","from":"h6","to":"h5","flipped":["h3","e5"],"legal":35,"losing":4,"winning":0},{"side":"red","before":"rnBAK...R....AN.......B..c.P.P...PCP....p.pc.........pp.p.p....N...b..Cr..r.a......bak..n.","move":"i1i3","from":"i1","to":"i3","flipped":["h3"],"legal":22,"losing":5,"winning":0},{"side":"black","before":"rnBAK........AN.......B..CRP.P...PCP....p.pc.........pp.p.p....N...b..Cr..r.a......bak..n.","move":"h5h7","from":"h5","to":"h7","flipped":["h3"],"legal":31,"losing":4,"winning":0},{"side":"red","before":"rnBAK........AN.......B..cRP.P...PCP....p.p..........pp.p.p..c.N...b..Cr..r.a......bak..n.","move":"c1a3","from":"c1","to":"a3","flipped":[],"legal":19,"losing":3,"winning":0},{"side":"black","before":"rn.AK........AN...B...B..cRP.P...PCP....p.p..........pp.p.p..c.N...b..Cr..r.a......bak..n.","move":"e9d8","from":"e9","to":"d8","flipped":[],"legal":37,"losing":4,"winning":0},{"side":"red","before":"rn.AK........AN...B...B..cRP.P...PCP....p.p..........pp.p.p..c.N..ab..Cr..r........bak..n.","move":"h4h6","from":"h4","to":"h6","flipped":[],"legal":21,"losing":4,"winning":0},{"side":"black","before":"rn.AK........AN...B...B..cRP.P...P.P....p.p.........Cpp.p.p..c.N..ab..Cr..r........bak..n.","move":"h10g8","from":"h10","to":"g8","flipped":["h6"],"legal":42,"losing":8,"winning":0},{"side":"red","before":"rn.AK........AN...B...B..cRP.P...P.P....p.p.........cpp.p.p..c.N..ab.nCr..r........bak....","move":"h8h10","from":"h8","to":"h10","flipped":["h6","d10"],"legal":18,"losing":4,"winning":0},{"side":"black","before":"rn.AK........AN...B...B..cRP.P...P.P....p.p.........Cpp.p.p..c.N..ab.n.r..r........bAk..C.","move":"g8f6","from":"g8","to":"f6","flipped":["g4"],"legal":47,"losing":10,"winning":0},{"side":"red","before":"rn.AK........AN...B...B..cRP.P...p.P....p.p.......n.Cpp.p.p..c.N..ab...r..r........bAk..C.","move":"h10h8","from":"h10","to":"h8","flipped":["d8"],"legal":25,"losing":4,"winning":0},{"side":"black","before":"rn.AK........AN...B...B..cRP.P...p.P....p.p.......n.Cpp.p.p..c.N..Ab..Cr..r........bAk....","move":"a1a2","from":"a1","to":"a2","flipped":["a3","e2"],"legal":46,"losing":8,"winning":0},{"side":"red","before":".n.AK....r...aN...b...B..cRP.P...p.P....p.p.......n.Cpp.p.p..c.N..Ab..Cr..r........bAk....","move":"f2h1","from":"f2","to":"h1","flipped":[],"legal":20,"losing":3,"winning":0},{"side":"black","before":".n.AK..N.r...a....b...B..cRP.P...p.P....p.p.......n.Cpp.p.p..c.N..Ab..Cr..r........bAk....","move":"f6h5","from":"f6","to":"h5","flipped":["i3"],"legal":53,"losing":8,"winning":0},{"side":"red","before":".n.AK..N.r...a....b...B..crP.P...p.P....p.pn........Cpp.p.p..c.N..Ab..Cr..r........bAk....","move":"h6c6","from":"h6","to":"c6","flipped":["c9"],"legal":23,"losing":6,"winning":0},{"side":"black","before":".n.AK..N.r...a....b...B..crP.P...p.P....p.pn...C.....pp.p.p..c.N..Ab..Cr..R........bAk....","move":"i8i9","from":"i8","to":"i9","flipped":["c9"],"legal":41,"losing":40,"winning":0},{"side":"red","before":".n.AK..N.r...a....b...B..crP.P...p.P....p.pn...C.....pp.p.p..c.N..Ab..C...r.....r..bAk....","move":"c6c5","from":"c6","to":"c5","flipped":["c9","g5"],"legal":25,"losing":6,"winning":0},{"side":"black","before":".n.AK..N.r...a....b...B..crP.P...p.P..C.p.Pn.........pp.p.p..c.N..Ab..C...R.....r..bAk....","move":"i9f9","from":"i9","to":"f9","flipped":["c9"],"legal":46,"losing":41,"winning":0},{"side":"red","before":".n.AK..N.r...a....b...B..crP.P...p.P..C.p.Pn.........pp.p.p..c.N..Ab..C...r..r.....bAk....","move":"h8f8","from":"h8","to":"f8","flipped":[],"legal":20,"losing":19,"winning":0},{"side":"black","before":".n.AK..N.r...a....b...B..crP.P...p.P..C.p.Pn.........pp.p.p..c.N..AbC.....r..r.....bAk....","move":"e2d3","from":"e2","to":"d3","flipped":[],"legal":51,"losing":3,"winning":0},{"side":"red","before":".n.AK..N.r........b..aB..crP.P...p.P..C.p.Pn.........pp.p.p..c.N..AbC.....r..r.....bAk....","move":"d1e2","from":"d1","to":"e2","flipped":["d3"],"legal":27,"losing":26,"winning":0},{"side":"black","before":".n..K..N.r...A....b..AB..crP.P...p.P..C.p.Pn.........pp.p.p..c.N..AbC.....r..r.....bAk....","move":"b1d2","from":"b1","to":"d2","flipped":[],"legal":48,"losing":3,"winning":0},{"side":"red","before":"....K..N.r..nA....b..AB..crP.P...p.P..C.p.Pn.........pp.p.p..c.N..AbC.....r..r.....bAk....","move":"c5c6","from":"c5","to":"c6","flipped":["c9"],"legal":28,"losing":28,"winning":0},{"side":"black","before":"....K..N.r..nA....b..AB..crP.P...p.P....p.Pn...C.....pp.p.p..c.N..AbC.....R..r.....bAk....","move":"a2a1","from":"a2","to":"a1","flipped":[],"legal":41,"losing":34,"winning":1,"after":"r...K..N....nA....b..AB..crP.P...p.P....p.Pn...C.....pp.p.p..c.N..AbC.....R..r.....bAk...."}]},{"tag":"g38","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RnBAKABNR..........C.....C.P.P.P.P.P.c................p.p.p.p.p.......c..........rnbakabnr","move":"e4e5","from":"e4","to":"e5","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RnBAKABNR..........C.....C.P.P...P.P.c..P.............p.p.p.p.p.......c..........rnbakabnr","move":"h8h6","from":"h8","to":"h6","flipped":["h1"],"legal":43,"losing":0,"winning":0},{"side":"red","before":"RnBAKABnR..........C.....C.P.P...P.P.c..P...........c.p.p.p.p.p..................rnbakabnr","move":"b3e3","from":"b3","to":"e3","flipped":["e7"],"legal":33,"losing":26,"winning":0},{"side":"black","before":"RnBAKABnR.............C..C.P.P...P.P.c..P...........c.p.p.P.p.p..................rnbakabnr","move":"b5b3","from":"b5","to":"b3","flipped":["h3"],"legal":46,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C..c.P.P...P.P....P...........c.p.p.P.p.p..................rnbakabnr","move":"e5e6","from":"e5","to":"e6","flipped":[],"legal":23,"losing":6,"winning":0},{"side":"black","before":"RnBAKABnR..........c..C..c.P.P...P.P.............P..c.p.p.P.p.p..................rnbakabnr","move":"h3h5","from":"h3","to":"h5","flipped":[],"legal":47,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C....P.P...P.P.......c.....P..c.p.p.P.p.p..................rnbakabnr","move":"g4g5","from":"g4","to":"g5","flipped":[],"legal":27,"losing":17,"winning":0},{"side":"black","before":"RnBAKABnR..........c..C....P.P.....P......Pc.....P..c.p.p.P.p.p..................rnbakabnr","move":"h5h4","from":"h5","to":"h4","flipped":["a4"],"legal":43,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C....p.P....cP......P......P..c.p.p.P.p.p..................rnbakabnr","move":"e3f3","from":"e3","to":"f3","flipped":[],"legal":26,"losing":16,"winning":0},{"side":"black","before":"RnBAKABnR..........c...C...p.P....cP......P......P..c.p.p.P.p.p..................rnbakabnr","move":"h4f4","from":"h4","to":"f4","flipped":["f1"],"legal":50,"losing":1,"winning":0},{"side":"red","before":"RnBAKaBnR..........c...C...p.P..c..P......P......P..c.p.p.P.p.p..................rnbakabnr","move":"a1a3","from":"a1","to":"a3","flipped":["a4","b3"],"legal":25,"losing":5,"winning":0},{"side":"black","before":".nBAKaBnR.........RC...C...P.P..c..P......P......P..c.p.p.P.p.p..................rnbakabnr","move":"f1e2","from":"f1","to":"e2","flipped":["f3","d1"],"legal":42,"losing":1,"winning":0},{"side":"red","before":".nBaK.BnR....a....RC...c...P.P..c..P......P......P..c.p.p.P.p.p..................rnbakabnr","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":27,"losing":24,"winning":0},{"side":"black","before":".nBaK..nR....a....RC..Bc...P.P..c..P......P......P..c.p.p.P.p.p..................rnbakabnr","move":"e2f1","from":"e2","to":"f1","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"red","before":".nBaKa.nR.........RC..Bc...P.P..c..P......P......P..c.p.p.P.p.p..................rnbakabnr","move":"e3g1","from":"e3","to":"g1","flipped":[],"legal":25,"losing":22,"winning":0},{"side":"black","before":".nBaKaBnR.........RC...c...P.P..c..P......P......P..c.p.p.P.p.p..................rnbakabnr","move":"f3e3","from":"f3","to":"e3","flipped":["e7","a3"],"legal":50,"losing":1,"winning":0},{"side":"red","before":".nBaKaBnR.........rC..c....P.P..c..P......P......P..c.p.p.p.p.p..................rnbakabnr","move":"b3b4","from":"b3","to":"b4","flipped":["f4"],"legal":19,"losing":18,"winning":0},{"side":"black","before":".nBaKaBnR.........r...c....PCP..C..P......P......P..c.p.p.p.p.p..................rnbakabnr","move":"h1i3","from":"h1","to":"i3","flipped":[],"legal":49,"losing":0,"winning":0},{"side":"red","before":".nBaKaB.R.........r...c...nPCP..C..P......P......P..c.p.p.p.p.p..................rnbakabnr","move":"b4b3","from":"b4","to":"b3","flipped":["i3"],"legal":27,"losing":24,"winning":0},{"side":"black","before":".nBaKaB.R.........rC..c...NP.P..C..P......P......P..c.p.p.p.p.p..................rnbakabnr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":43,"losing":0,"winning":0},{"side":"red","before":".nBaK.B.R....a....rC..c...NP.P..C..P......P......P..c.p.p.p.p.p..................rnbakabnr","move":"i3g2","from":"i3","to":"g2","flipped":["e3"],"legal":33,"losing":33,"winning":0},{"side":"black","before":".nBaK.B.R....a.N..rC..C....P.P..C..P......P......P..c.p.p.p.p.p..................rnbakabnr","move":"h6h1","from":"h6","to":"h1","flipped":[],"legal":36,"losing":0,"winning":1,"after":".nBaK.BcR....a.N..rC..C....P.P..C..P......P......P....p.p.p.p.p..................rnbakabnr"}]},{"tag":"g39","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c................rnbakabnr","move":"b8b4","from":"b8","to":"b4","flipped":["b1","e4"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........C..C....PcP.p.P.P.......c..........p.p.P.p.p..................rnbakabnr","move":"a4a5","from":"a4","to":"a5","flipped":[],"legal":27,"losing":7,"winning":0},{"side":"black","before":"RnBAKABnR..........C..C.....cP.p.P.PP......c..........p.p.P.p.p..................rnbakabnr","move":"h5b5","from":"h5","to":"b5","flipped":["b3"],"legal":45,"losing":3,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C.....cP.p.P.PPc................p.p.P.p.p..................rnbakabnr","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":24,"losing":8,"winning":0},{"side":"black","before":"RnBAKABnR..........c..C.....cP.p.P.PPc................p.p...p.p....P.............rnbakabnr","move":"i10i8","from":"i10","to":"i8","flipped":["e8"],"legal":39,"losing":34,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C.....cP.p.P.PPc................p.p...p.p....p...r.........rnbakabn.","move":"a1a4","from":"a1","to":"a4","flipped":["b4"],"legal":21,"losing":8,"winning":0},{"side":"black","before":".nBAKABnR..........c..C....RCP.p.P.PPc................p.p...p.p....p...r.........rnbakabn.","move":"b1a3","from":"b1","to":"a3","flipped":[],"legal":40,"losing":2,"winning":0},{"side":"red","before":"..BAKABnR.........nc..C....RCP.p.P.PPc................p.p...p.p....p...r.........rnbakabn.","move":"c4c5","from":"c4","to":"c5","flipped":[],"legal":17,"losing":9,"winning":0},{"side":"black","before":"..BAKABnR.........nc..C....RC..p.P.PPcP...............p.p...p.p....p...r.........rnbakabn.","move":"i8f8","from":"i8","to":"f8","flipped":["f1"],"legal":32,"losing":2,"winning":0},{"side":"red","before":"..BAKaBnR.........nc..C....RC..p.P.PPcP...............p.p...p.p....pr............rnbakabn.","move":"e3f3","from":"e3","to":"f3","flipped":["f10","a3"],"legal":18,"losing":3,"winning":0},{"side":"black","before":"..BAKaBnR.........Nc...C...RC..p.P.PPcP...............p.p...p.p....pr............rnbakAbn.","move":"f1e2","from":"f1","to":"e2","flipped":["f3","d1"],"legal":38,"losing":3,"winning":0},{"side":"red","before":"..BaK.BnR....a....Nc...c...RC..p.P.PPcP...............p.p...p.p....pr............rnbakAbn.","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":14,"losing":13,"winning":0},{"side":"black","before":"..BaK..nR....a....Nc..Bc...RC..p.P.PPcP...............p.p...p.p....pr............rnbakAbn.","move":"f3f6","from":"f3","to":"f6","flipped":["f10"],"legal":47,"losing":1,"winning":0},{"side":"red","before":"..BaK..nR....a....Nc..B....RC..p.P.PPcP...........c...p.p...p.p....pr............rnbakabn.","move":"i1i3","from":"i1","to":"i3","flipped":[],"legal":12,"losing":3,"winning":0},{"side":"black","before":"..BaK..n.....a....Nc..B...RRC..p.P.PPcP...........c...p.p...p.p....pr............rnbakabn.","move":"f6i6","from":"f6","to":"i6","flipped":["i3"],"legal":50,"losing":1,"winning":0},{"side":"red","before":"..BaK..n.....a....Nc..B...rRC..p.P.PPcP..............cp.p...p.p....pr............rnbakabn.","move":"e3g5","from":"e3","to":"g5","flipped":["i3"],"legal":10,"losing":10,"winning":0},{"side":"black","before":"..BaK..n.....a....Nc......RRC..p.P.PPcP...B..........cp.p...p.p....pr............rnbakabn.","move":"b3e3","from":"b3","to":"e3","flipped":[],"legal":55,"losing":2,"winning":2,"after":"..BaK..n.....a....N...c...RRC..p.P.PPcP...B..........cp.p...p.p....pr............rnbakabn."}]},{"tag":"g40","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RnBAKABNR..........C.....C.P.P.P.P.P.c................p.p.p.p.p.......c..........rnbakabnr","move":"b3e3","from":"b3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RnBAKABNR.............C..C.P.P.P.P.P.c................p.p.P.p.p.......c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR.............C..C.P.P.P.P.P.c.....c..........p.p.P.p.p..................rnbakabnr","move":"h3h2","from":"h3","to":"h2","flipped":["h10"],"legal":29,"losing":7,"winning":0},{"side":"black","before":"RnBAKABnR.......C.....C....P.P.P.P.P.c.....c..........p.p.P.p.p..................rnbakabNr","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":44,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR.......C.....C....P.P.P.P.P.c.....c..........p.p.P.p.p....b.............rnbaka.Nr","move":"a4a5","from":"a4","to":"a5","flipped":[],"legal":37,"losing":9,"winning":0},{"side":"black","before":"RnBAKABnR.......C.....C......P.P.P.PPc.....c..........p.p.P.p.p....b.............rnbaka.Nr","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":43,"losing":1,"winning":0},{"side":"red","before":"R.BAKABnR.......C.n...C......p.P.P.PPc.....c..........p.p.P.p.p....b.............rnbaka.Nr","move":"h2h3","from":"h2","to":"h3","flipped":["a3"],"legal":34,"losing":29,"winning":0},{"side":"black","before":"R.BAKABnR.........N...C..C...p.P.P.PPc.....c..........p.p.P.p.p....b.............rnbaka.Nr","move":"b5b1","from":"b5","to":"b1","flipped":["d1"],"legal":46,"losing":1,"winning":0},{"side":"red","before":"RcBaKABnR.........N...C..C...p.P.P.PP......c..........p.p.P.p.p....b.............rnbaka.Nr","move":"h10f9","from":"h10","to":"f9","flipped":["g7","d10"],"legal":28,"losing":6,"winning":0},{"side":"black","before":"RcBaKABnR.........N...C..C...p.P.P.PP......c..........p.p.P.P.p....b.........N...rnbAka..r","move":"i10i9","from":"i10","to":"i9","flipped":["f9"],"legal":43,"losing":39,"winning":0},{"side":"red","before":"RcBaKABnR.........N...C..C...p.P.P.PP......c..........p.p.P.P.p....b.........n..rrnbAka...","move":"a1a2","from":"a1","to":"a2","flipped":[],"legal":29,"losing":6,"winning":0},{"side":"black","before":".cBaKABnRR........N...C..C...p.P.P.PP......c..........p.p.P.P.p....b.........n..rrnbAka...","move":"f9h10","from":"f9","to":"h10","flipped":[],"legal":47,"losing":7,"winning":0},{"side":"red","before":".cBaKABnRR........N...C..C...p.P.P.PP......c..........p.p.P.P.p....b............rrnbAka.n.","move":"h3h2","from":"h3","to":"h2","flipped":["h10"],"legal":37,"losing":6,"winning":0},{"side":"black","before":".cBaKABnRR......C.N...C......p.P.P.PP......c..........p.p.P.P.p....b............rrnbAka.N.","move":"d1e2","from":"d1","to":"e2","flipped":["f1"],"legal":49,"losing":1,"winning":0},{"side":"red","before":".cB.KaBnRR...a..C.N...C......p.P.P.PP......c..........p.p.P.P.p....b............rrnbAka.N.","move":"a2a1","from":"a2","to":"a1","flipped":["b1"],"legal":34,"losing":32,"winning":0},{"side":"black","before":"RCB.KaBnR....a..C.N...C......p.P.P.PP......c..........p.p.P.P.p....b............rrnbAka.N.","move":"i9b9","from":"i9","to":"b9","flipped":["b1"],"legal":42,"losing":1,"winning":0},{"side":"red","before":"RcB.KaBnR....a..C.N...C......p.P.P.PP......c..........p.p.P.P.p....b.....r.......rnbAka.N.","move":"a3b5","from":"a3","to":"b5","flipped":["c7","a7"],"legal":31,"losing":2,"winning":0},{"side":"black","before":"RcB.KaBnR....a..C.....C......p.P.P.PPN.....c..........P.P.P.P.p....b.....r.......rnbAka.N.","move":"b9b7","from":"b9","to":"b7","flipped":["b5","c7","a7"],"legal":40,"losing":1,"winning":0},{"side":"red","before":"RcB.KaBnR....a..C.....C......p.P.P.PPn.....c..........prp.P.P.p....b.............rnbAka.N.","move":"c1a3","from":"c1","to":"a3","flipped":[],"legal":33,"losing":4,"winning":0},{"side":"black","before":"Rc..KaBnR....a..C.B...C......p.P.P.PPn.....c..........prp.P.P.p....b.............rnbAka.N.","move":"b5d4","from":"b5","to":"d4","flipped":[],"legal":42,"losing":1,"winning":0},{"side":"red","before":"Rc..KaBnR....a..C.B...C......pnP.P.PP......c..........prp.P.P.p....b.............rnbAka.N.","move":"e3d3","from":"e3","to":"d3","flipped":[],"legal":31,"losing":30,"winning":0},{"side":"black","before":"Rc..KaBnR....a..C.B..C.......pnP.P.PP......c..........prp.P.P.p....b.............rnbAka.N.","move":"e2d1","from":"e2","to":"d1","flipped":[],"legal":46,"losing":1,"winning":0},{"side":"red","before":"Rc.aKaBnR.......C.B..C.......pnP.P.PP......c..........prp.P.P.p....b.............rnbAka.N.","move":"a1a2","from":"a1","to":"a2","flipped":[],"legal":38,"losing":38,"winning":0},{"side":"black","before":".c.aKaBnRR......C.B..C.......pnP.P.PP......c..........prp.P.P.p....b.............rnbAka.N.","move":"b1c1","from":"b1","to":"c1","flipped":[],"legal":46,"losing":1,"winning":3,"after":"..caKaBnRR......C.B..C.......pnP.P.PP......c..........prp.P.P.p....b.............rnbAka.N."}]},{"tag":"g41","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c................rnbakabnr","move":"b8b4","from":"b8","to":"b4","flipped":["b1","e4"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........C..C....PcP.p.P.P.......c..........p.p.P.p.p..................rnbakabnr","move":"a4a5","from":"a4","to":"a5","flipped":[],"legal":27,"losing":7,"winning":0},{"side":"black","before":"RnBAKABnR..........C..C.....cP.p.P.PP......c..........p.p.P.p.p..................rnbakabnr","move":"h5b5","from":"h5","to":"b5","flipped":["b3"],"legal":45,"losing":3,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C.....cP.p.P.PPc................p.p.P.p.p..................rnbakabnr","move":"a1a3","from":"a1","to":"a3","flipped":["b3"],"legal":24,"losing":8,"winning":0},{"side":"black","before":".nBAKABnR.........RC..C.....cP.p.P.PPc................p.p.P.p.p..................rnbakabnr","move":"b5e5","from":"b5","to":"e5","flipped":["e3"],"legal":36,"losing":3,"winning":0},{"side":"red","before":".nBAKABnR.........RC..c.....cP.p.P.PP...c.............p.p.P.p.p..................rnbakabnr","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":19,"losing":1,"winning":0},{"side":"black","before":".nBAKABnR.........RC..c.....cP.p.P.PP...c.............p.p...p.p....P.............rnbakabnr","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":44,"losing":39,"winning":0},{"side":"red","before":".nBAKABnR.........RC..c.....cP.p.P.PP...c.............p.p...p.p....P........a....rnb.kabnr","move":"i1i3","from":"i1","to":"i3","flipped":["e3"],"legal":18,"losing":1,"winning":0},{"side":"black","before":".nBAKABn..........RC..C...R.cP.p.P.PP...c.............p.p...p.p....P........a....rnb.kabnr","move":"e4f4","from":"e4","to":"f4","flipped":["g4"],"legal":37,"losing":3,"winning":0},{"side":"red","before":".nBAKABn..........RC..C...R.cP..pp.PP...c.............p.p...p.p....P........a....rnb.kabnr","move":"e3d3","from":"e3","to":"d3","flipped":[],"legal":26,"losing":19,"winning":0},{"side":"black","before":".nBAKABn..........RC.C....R.cP..pp.PP...c.............p.p...p.p....P........a....rnb.kabnr","move":"f4f3","from":"f4","to":"f3","flipped":[],"legal":42,"losing":3,"winning":0},{"side":"red","before":".nBAKABn..........RC.C.p..R.cP...p.PP...c.............p.p...p.p....P........a....rnb.kabnr","move":"d3d4","from":"d3","to":"d4","flipped":["b4"],"legal":29,"losing":6,"winning":0},{"side":"black","before":".nBAKABn..........RC...p..R.CPC..p.PP...c.............p.p...p.p....P........a....rnb.kabnr","move":"e5e3","from":"e5","to":"e3","flipped":["i3","a3"],"legal":38,"losing":6,"winning":0},{"side":"red","before":".nBAKABn..........rC..cp..r.CPC..p.PP.................p.p...p.p....P........a....rnb.kabnr","move":"d4d3","from":"d4","to":"d3","flipped":["f3","a3"],"legal":27,"losing":3,"winning":0},{"side":"black","before":".nBAKABn..........RC.CcP..r.CP...p.PP.................p.p...p.p....P........a....rnb.kabnr","move":"i3h3","from":"i3","to":"h3","flipped":["f3"],"legal":32,"losing":5,"winning":0},{"side":"red","before":".nBAKABn..........RC.Ccp.r..CP...p.PP.................p.p...p.p....P........a....rnb.kabnr","move":"b3c3","from":"b3","to":"c3","flipped":["c7","e3"],"legal":29,"losing":3,"winning":0},{"side":"black","before":".nBAKABn..........R.CCCp.r..CP...p.PP.................p.P...p.p....P........a....rnb.kabnr","move":"h3h6","from":"h3","to":"h6","flipped":[],"legal":33,"losing":5,"winning":0},{"side":"red","before":".nBAKABn..........R.CCCp....CP...p.PP...............r.p.P...p.p....P........a....rnb.kabnr","move":"b4b2","from":"b4","to":"b2","flipped":[],"legal":39,"losing":2,"winning":0},{"side":"black","before":".nBAKABn..C.......R.CCCp.....P...p.PP...............r.p.P...p.p....P........a....rnb.kabnr","move":"f3f2","from":"f3","to":"f2","flipped":["f1"],"legal":39,"losing":6,"winning":0},{"side":"red","before":".nBAKaBn..C...p...R.CCC......P...p.PP...............r.p.P...p.p....P........a....rnb.kabnr","move":"d1e2","from":"d1","to":"e2","flipped":["f1"],"legal":45,"losing":42,"winning":0},{"side":"black","before":".nB.KABn..C..Ap...R.CCC......P...p.PP...............r.p.P...p.p....P........a....rnb.kabnr","move":"h6e6","from":"h6","to":"e6","flipped":["e8","e3"],"legal":38,"losing":6,"winning":0},{"side":"red","before":".nB.KABn..C..Ap...R.CCc......P...p.PP............r....p.P...p.p....p........a....rnb.kabnr","move":"c3b3","from":"c3","to":"b3","flipped":["b1","e3"],"legal":35,"losing":33,"winning":0},{"side":"black","before":".NB.KABn..C..Ap...RC.CC......P...p.PP............r....p.P...p.p....p........a....rnb.kabnr","move":"e6e5","from":"e6","to":"e5","flipped":["e3","a5"],"legal":35,"losing":3,"winning":0},{"side":"red","before":".NB.KABn..C..Ap...RC.Cc......P...p.Pp...r.............p.P...p.p....p........a....rnb.kabnr","move":"b3c3","from":"b3","to":"c3","flipped":["e3"],"legal":32,"losing":30,"winning":0},{"side":"black","before":".NB.KABn..C..Ap...R.CCC......P...p.Pp...r.............p.P...p.p....p........a....rnb.kabnr","move":"e5e6","from":"e5","to":"e6","flipped":["e3"],"legal":36,"losing":3,"winning":0},{"side":"red","before":".NB.KABn..C..Ap...R.CCc......P...p.Pp............r....p.P...p.p....p........a....rnb.kabnr","move":"c3b3","from":"c3","to":"b3","flipped":["e3"],"legal":34,"losing":32,"winning":0},{"side":"black","before":".NB.KABn..C..Ap...RC.CC......P...p.Pp............r....p.P...p.p....p........a....rnb.kabnr","move":"e6e5","from":"e6","to":"e5","flipped":["e3"],"legal":37,"losing":3,"winning":0},{"side":"red","before":".NB.KABn..C..Ap...RC.Cc......P...p.Pp...r.............p.P...p.p....p........a....rnb.kabnr","move":"b3c3","from":"b3","to":"c3","flipped":["e3"],"legal":32,"losing":30,"winning":0},{"side":"black","before":".NB.KABn..C..Ap...R.CCC......P...p.Pp...r.............p.P...p.p....p........a....rnb.kabnr","move":"a5a4","from":"a5","to":"a4","flipped":["a3"],"legal":36,"losing":3,"winning":0},{"side":"red","before":".NB.KABn..C..Ap...r.CCC....p.P...p.P....r.............p.P...p.p....p........a....rnb.kabnr","move":"b2c2","from":"b2","to":"c2","flipped":["f2"],"legal":35,"losing":2,"winning":0},{"side":"black","before":".NB.KABn...C.AP...r.CCC....p.P...p.P....r.............p.P...p.p....p........a....rnb.kabnr","move":"e5e6","from":"e5","to":"e6","flipped":["e3"],"legal":38,"losing":1,"winning":0},{"side":"red","before":".NB.KABn...C.AP...r.CCc....p.P...p.P.............r....p.P...p.p....p........a....rnb.kabnr","move":"c3b3","from":"c3","to":"b3","flipped":["e3"],"legal":23,"losing":19,"winning":0},{"side":"black","before":".NB.KABn...C.AP...rC.CC....p.P...p.P.............r....p.P...p.p....p........a....rnb.kabnr","move":"a4b4","from":"a4","to":"b4","flipped":["b3","c4"],"legal":37,"losing":3,"winning":0},{"side":"red","before":".NB.KABn...C.AP...rc.CC.....pp...p.P.............r....p.P...p.p....p........a....rnb.kabnr","move":"c2c3","from":"c2","to":"c3","flipped":["a3"],"legal":30,"losing":1,"winning":0},{"side":"black","before":".NB.KABn.....AP...RcCCC.....pp...p.P.............r....p.P...p.p....p........a....rnb.kabnr","move":"e6e5","from":"e6","to":"e5","flipped":["e3"],"legal":37,"losing":0,"winning":0},{"side":"red","before":".NB.KABn.....AP...RcCCc.....pp...p.P....r.............p.P...p.p....p........a....rnb.kabnr","move":"e2d1","from":"e2","to":"d1","flipped":[],"legal":24,"losing":21,"winning":0},{"side":"black","before":".NBAKABn......P...RcCCc.....pp...p.P....r.............p.P...p.p....p........a....rnb.kabnr","move":"b4a4","from":"b4","to":"a4","flipped":["a3"],"legal":43,"losing":0,"winning":0},{"side":"red","before":".NBAKABn......P...rcCCc....p.p...p.P....r.............p.P...p.p....p........a....rnb.kabnr","move":"d3d2","from":"d3","to":"d2","flipped":[],"legal":18,"losing":3,"winning":0},{"side":"black","before":".NBAKABn....C.P...rcC.c....p.p...p.P....r.............p.P...p.p....p........a....rnb.kabnr","move":"a3a2","from":"a3","to":"a2","flipped":["d2"],"legal":53,"losing":0,"winning":0},{"side":"red","before":".NBAKABn.r..c.P....cC.c....p.p...p.P....r.............p.P...p.p....p........a....rnb.kabnr","move":"c7b7","from":"c7","to":"b7","flipped":["a7"],"legal":13,"losing":3,"winning":0},{"side":"black","before":".NBAKABn.r..c.P....cC.c....p.p...p.P....r.............PP....p.p....p........a....rnb.kabnr","move":"d2d4","from":"d2","to":"d4","flipped":["i4"],"legal":64,"losing":0,"winning":0},{"side":"red","before":".NBAKABn.r....P....cC.c....p.pc..p.p....r.............PP....p.p....p........a....rnb.kabnr","move":"c3c2","from":"c3","to":"c2","flipped":["c10"],"legal":12,"losing":12,"winning":0},{"side":"black","before":".NBAKABn.r.C..P....c..c....p.pc..p.p....r.............PP....p.p....p........a....rnB.kabnr","move":"d4e4","from":"d4","to":"e4","flipped":[],"legal":66,"losing":1,"winning":1,"after":".NBAKABn.r.C..P....c..c....p.p.c.p.p....r.............PP....p.p....p........a....rnB.kabnr"}]},{"tag":"g42","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c................rnbakabnr","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c...........a....rnb.kabnr","move":"i1i3","from":"i1","to":"i3","flipped":[],"legal":34,"losing":7,"winning":0},{"side":"black","before":"RNBAKABn...........C..C...RP.P.P.P.P.......c..........p.p.P.p.p.c...........a....rnb.kabnr","move":"h5i5","from":"h5","to":"i5","flipped":["i3"],"legal":49,"losing":0,"winning":0},{"side":"red","before":"RNBAKABn...........C..C...rP.P.P.P.P........c.........p.p.P.p.p.c...........a....rnb.kabnr","move":"b3d3","from":"b3","to":"d3","flipped":["i3"],"legal":29,"losing":6,"winning":0},{"side":"black","before":"RNBAKABn.............CC...RP.P.P.P.P........c.........p.p.P.p.p.c...........a....rnb.kabnr","move":"b8b5","from":"b8","to":"b5","flipped":[],"legal":45,"losing":0,"winning":0},{"side":"red","before":"RNBAKABn.............CC...RP.P.P.P.P.c......c.........p.p.P.p.p.............a....rnb.kabnr","move":"e7f7","from":"e7","to":"f7","flipped":["g7"],"legal":35,"losing":4,"winning":0},{"side":"black","before":"RNBAKABn.............CC...RP.P.P.P.P.c......c.........p.p..PP.p.............a....rnb.kabnr","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":41,"losing":3,"winning":0},{"side":"red","before":"RNBAKABn.............CC...RP.P.P.P.P.c......c.........p.p..PP.p....b........a....rnb.ka.nr","move":"i3h3","from":"i3","to":"h3","flipped":["h10","h1"],"legal":36,"losing":4,"winning":0},{"side":"black","before":"RNBAKABN.............CC..R.P.P.P.P.P.c......c.........p.p..PP.p....b........a....rnb.ka.Nr","move":"i5d5","from":"i5","to":"d5","flipped":["d1"],"legal":37,"losing":0,"winning":0},{"side":"red","before":"RNBaKABN.............CC..R.P.P.P.P.P.c.c..............p.p..PP.p....b........a....rnb.ka.Nr","move":"c4c5","from":"c4","to":"c5","flipped":[],"legal":40,"losing":2,"winning":0},{"side":"black","before":"RNBaKABN.............CC..R.P...P.P.P.cPc..............p.p..PP.p....b........a....rnb.ka.Nr","move":"d5d4","from":"d5","to":"d4","flipped":["g4"],"legal":36,"losing":1,"winning":0},{"side":"red","before":"RNBaKABN.............CC..R.P..cP.p.P.cP...............p.p..PP.p....b........a....rnb.ka.Nr","move":"h3h6","from":"h3","to":"h6","flipped":[],"legal":38,"losing":1,"winning":0},{"side":"black","before":"RNBaKABN.............CC....P..cP.p.P.cP.............R.p.p..PP.p....b........a....rnb.ka.Nr","move":"c7c6","from":"c7","to":"c6","flipped":["c5"],"legal":36,"losing":1,"winning":0},{"side":"red","before":"RNBaKABN.............CC....P..cP.p.P.cp........p....R.p....PP.p....b........a....rnb.ka.Nr","move":"h10i8","from":"h10","to":"i8","flipped":[],"legal":41,"losing":1,"winning":0},{"side":"black","before":"RNBaKABN.............CC....P..cP.p.P.cp........p....R.p....PP.p....b...N....a....rnb.ka..r","move":"i10i9","from":"i10","to":"i9","flipped":["i8"],"legal":37,"losing":33,"winning":0},{"side":"red","before":"RNBaKABN.............CC....P..cP.p.P.cp........p....R.p....PP.p....b...n....a...rrnb.ka...","move":"b1c3","from":"b1","to":"c3","flipped":["b5","d1"],"legal":39,"losing":1,"winning":0},{"side":"black","before":"R.BAKABN............NCC....P..cP.p.P.Cp........p....R.p....PP.p....b...n....a...rrnb.ka...","move":"i9h9","from":"i9","to":"h9","flipped":["h6"],"legal":30,"losing":3,"winning":0},{"side":"red","before":"R.BAKABN............NCC....P..cP.p.P.Cp........p....r.p....PP.p....b...n....a..r.rnb.ka...","move":"b5b6","from":"b5","to":"b6","flipped":["h6"],"legal":35,"losing":2,"winning":0},{"side":"black","before":"R.BAKABN............NCC....P..cP.p.P..p.......Cp....R.p....PP.p....b...n....a..r.rnb.ka...","move":"d4d6","from":"d4","to":"d6","flipped":["d1","b6"],"legal":34,"losing":2,"winning":0},{"side":"red","before":"R.BaKABN............NCC....P...P.p.P..p.......cpc...R.p....PP.p....b...n....a..r.rnb.ka...","move":"a1b1","from":"a1","to":"b1","flipped":["b6"],"legal":38,"losing":5,"winning":0},{"side":"black","before":".RBaKABN............NCC....P...P.p.P..p.......Cpc...R.p....PP.p....b...n....a..r.rnb.ka...","move":"h9h10","from":"h9","to":"h10","flipped":["h6"],"legal":36,"losing":2,"winning":0},{"side":"red","before":".RBaKABN............NCC....P...P.p.P..p.......Cpc...r.p....PP.p....b...n....a....rnb.ka.r.","move":"b6a6","from":"b6","to":"a6","flipped":["a10","d6"],"legal":37,"losing":5,"winning":0},{"side":"black","before":".RBaKABN............NCC....P...P.p.P..p......C.pC...r.p....PP.p....b...n....a....Rnb.ka.r.","move":"h6f6","from":"h6","to":"f6","flipped":["f7","f1","d6"],"legal":33,"losing":5,"winning":0},{"side":"red","before":".RBaKaBN............NCC....P...P.p.P..p......C.pc.r...p....pP.p....b...n....a....Rnb.ka.r.","move":"c3d5","from":"c3","to":"d5","flipped":["f6"],"legal":34,"losing":5,"winning":0},{"side":"black","before":".RBaKaBN.............CC....P...P.p.P..pN.....C.pc.R...p....pP.p....b...n....a....Rnb.ka.r.","move":"h10h6","from":"h10","to":"h6","flipped":["h1","f6"],"legal":32,"losing":0,"winning":0},{"side":"red","before":".RBaKaBn.............CC....P...P.p.P..pN.....C.pc.r.r.p....pP.p....b...n....a....Rnb.ka...","move":"e3e2","from":"e3","to":"e2","flipped":["e8"],"legal":33,"losing":5,"winning":0},{"side":"black","before":".RBaKaBn.....C.......C.....P...P.p.P..pN.....C.pc.r.r.p....pP.p....B...n....a....Rnb.ka...","move":"h1i3","from":"h1","to":"i3","flipped":[],"legal":38,"losing":0,"winning":0},{"side":"red","before":".RBaKaB......C.......C....nP...P.p.P..pN.....C.pc.r.r.p....pP.p....B...n....a....Rnb.ka...","move":"d3h3","from":"d3","to":"h3","flipped":[],"legal":43,"losing":42,"winning":0},{"side":"black","before":".RBaKaB......C...........CnP...P.p.P..pN.....C.pc.r.r.p....pP.p....B...n....a....Rnb.ka...","move":"h6h10","from":"h6","to":"h10","flipped":["h3"],"legal":35,"losing":2,"winning":0},{"side":"red","before":".RBaKaB......C...........cnP...P.p.P..pN.....C.pc.r...p....pP.p....B...n....a....Rnb.ka.r.","move":"b1b3","from":"b1","to":"b3","flipped":["b10","h3"],"legal":34,"losing":29,"winning":0},{"side":"black","before":"..BaKaB......C.....R.....CnP...P.p.P..pN.....C.pc.r...p....pP.p....B...n....a....RNb.ka.r.","move":"f6f3","from":"f6","to":"f3","flipped":["h3","b3"],"legal":34,"losing":2,"winning":0},{"side":"red","before":"..BaKaB......C.....r...r.cnP...P.p.P..pN.....C.pc.....p....pP.p....B...n....a....RNb.ka.r.","move":"a10a9","from":"a10","to":"a9","flipped":["a7","e9"],"legal":28,"losing":9,"winning":0},{"side":"black","before":"..BaKaB......C.....r...r.cnP...P.p.P..pN.....C.pc.....P....pP.p....B...nR...A.....Nb.ka.r.","move":"f3f2","from":"f3","to":"f2","flipped":["e2"],"legal":57,"losing":1,"winning":0},{"side":"red","before":"..BaKaB......cr....r.....cnP...P.p.P..pN.....C.pc.....P....pP.p....B...nR...A.....Nb.ka.r.","move":"d5e3","from":"d5","to":"e3","flipped":["g4"],"legal":26,"losing":24,"winning":0},{"side":"black","before":"..BaKaB......cr....r..N..cnP...P.P.P..p......C.pc.....P....pP.p....B...nR...A.....Nb.ka.r.","move":"e2a2","from":"e2","to":"a2","flipped":["a6"],"legal":62,"losing":1,"winning":0},{"side":"red","before":"..BaKaB..c....r....r..N..cnP...P.P.P..p......c.pc.....P....pP.p....B...nR...A.....Nb.ka.r.","move":"a9b9","from":"a9","to":"b9","flipped":["b3"],"legal":24,"losing":24,"winning":0},{"side":"black","before":"..BaKaB..c....r....R..N..cnP...P.P.P..p......c.pc.....P....pP.p....B...n.R..A.....Nb.ka.r.","move":"f2e2","from":"f2","to":"e2","flipped":[],"legal":60,"losing":1,"winning":1,"after":"..BaKaB..c...r.....R..N..cnP...P.P.P..p......c.pc.....P....pP.p....B...n.R..A.....Nb.ka.r."}]},{"tag":"g43","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RnBAKABNR..........C.....C.P.P.P.P.P.c................p.p.p.p.p.......c..........rnbakabnr","move":"b3e3","from":"b3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RnBAKABNR.............C..C.P.P.P.P.P.c................p.p.P.p.p.......c..........rnbakabnr","move":"h8h4","from":"h8","to":"h4","flipped":["h1","e4"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR.............C..C.P.P.p.PcP.c................p.p.P.p.p..................rnbakabnr","move":"h3h2","from":"h3","to":"h2","flipped":["h10"],"legal":27,"losing":7,"winning":0},{"side":"black","before":"RnBAKABnR.......C.....C....P.P.p.PcP.c................p.p.P.p.p..................rnbakabNr","move":"b5e5","from":"b5","to":"e5","flipped":["e3"],"legal":42,"losing":3,"winning":0},{"side":"red","before":"RnBAKABnR.......C.....c....P.P.p.PcP....c.............p.p.P.p.p..................rnbakabNr","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":26,"losing":1,"winning":0},{"side":"black","before":"RnBAKABnR.......C.....c....P.P.p.PcP....c.............p.p...p.p....P.............rnbakabNr","move":"d10e9","from":"d10","to":"e9","flipped":[],"legal":44,"losing":40,"winning":0},{"side":"red","before":"RnBAKABnR.......C.....c....P.P.p.PcP....c.............p.p...p.p....P........a....rnb.kabNr","move":"i1i3","from":"i1","to":"i3","flipped":["e3"],"legal":25,"losing":1,"winning":0},{"side":"black","before":"RnBAKABn........C.....C...RP.P.p.PcP....c.............p.p...p.p....P........a....rnb.kabNr","move":"e5i5","from":"e5","to":"i5","flipped":["i3"],"legal":36,"losing":3,"winning":0},{"side":"red","before":"RnBAKABn........C.....C...rP.P.p.PcP........c.........p.p...p.p....P........a....rnb.kabNr","move":"h2h3","from":"h2","to":"h3","flipped":[],"legal":30,"losing":8,"winning":0},{"side":"black","before":"RnBAKABn..............C..CrP.P.p.PcP........c.........p.p...p.p....P........a....rnb.kabNr","move":"b10a8","from":"b10","to":"a8","flipped":[],"legal":37,"losing":3,"winning":0},{"side":"red","before":"RnBAKABn..............C..CrP.P.p.PcP........c.........p.p...p.pn...P........a....r.b.kabNr","move":"g4g5","from":"g4","to":"g5","flipped":[],"legal":23,"losing":7,"winning":0},{"side":"black","before":"RnBAKABn..............C..CrP.P.p..cP......P.c.........p.p...p.pn...P........a....r.b.kabNr","move":"h4h6","from":"h4","to":"h6","flipped":[],"legal":31,"losing":3,"winning":0},{"side":"red","before":"RnBAKABn..............C..CrP.P.p...P......P.c.......c.p.p...p.pn...P........a....r.b.kabNr","move":"c4c5","from":"c4","to":"c5","flipped":[],"legal":25,"losing":7,"winning":0},{"side":"black","before":"RnBAKABn..............C..CrP...p...P..P...P.c.......c.p.p...p.pn...P........a....r.b.kabNr","move":"b1a3","from":"b1","to":"a3","flipped":[],"legal":37,"losing":3,"winning":0},{"side":"red","before":"R.BAKABn..........n...C..CrP...p...P..P...P.c.......c.p.p...p.pn...P........a....r.b.kabNr","move":"h3f3","from":"h3","to":"f3","flipped":["a3"],"legal":23,"losing":20,"winning":0},{"side":"black","before":"R.BAKABn..........N...CC..rP...p...P..P...P.c.......c.p.p...p.pn...P........a....r.b.kabNr","move":"i3h3","from":"i3","to":"h3","flipped":["f3"],"legal":39,"losing":3,"winning":0},{"side":"red","before":"R.BAKABn..........N...Cc.r.P...p...P..P...P.c.......c.p.p...p.pn...P........a....r.b.kabNr","move":"d1e2","from":"d1","to":"e2","flipped":["f3"],"legal":20,"losing":5,"winning":0},{"side":"black","before":"R.B.KABn.....A....N...CC.r.P...p...P..P...P.c.......c.p.p...p.pn...P........a....r.b.kabNr","move":"h3g3","from":"h3","to":"g3","flipped":["g5","g1","f3"],"legal":39,"losing":3,"winning":0},{"side":"red","before":"R.B.KAbn.....A....N...Ccr..P...p...P..P...p.c.......c.p.p...p.pn...P........a....r.b.kabNr","move":"c5c6","from":"c5","to":"c6","flipped":["c7"],"legal":17,"losing":3,"winning":0},{"side":"black","before":"R.B.KAbn.....A....N...Ccr..P...p...P......p.c..P....c.p.P...p.pn...P........a....r.b.kabNr","move":"i5h5","from":"i5","to":"h5","flipped":["h10"],"legal":46,"losing":3,"winning":0},{"side":"red","before":"R.B.KAbn.....A....N...Ccr..P...p...P......pc...P....c.p.P...p.pn...P........a....r.b.kabnr","move":"e8d8","from":"e8","to":"d8","flipped":[],"legal":20,"losing":3,"winning":0},{"side":"black","before":"R.B.KAbn.....A....N...Ccr..P...p...P......pc...P....c.p.P...p.pn..P.........a....r.b.kabnr","move":"f3f7","from":"f3","to":"f7","flipped":[],"legal":46,"losing":3,"winning":0},{"side":"red","before":"R.B.KAbn.....A....N...C.r..P...p...P......pc...P....c.p.P..cp.pn..P.........a....r.b.kabnr","move":"e2f3","from":"e2","to":"f3","flipped":[],"legal":23,"losing":0,"winning":0},{"side":"black","before":"R.B.KAbn..........N...CAr..P...p...P......pc...P....c.p.P..cp.pn..P.........a....r.b.kabnr","move":"h1i3","from":"h1","to":"i3","flipped":[],"legal":46,"losing":5,"winning":0},{"side":"red","before":"R.B.KAb...........N...CAr.nP...p...P......pc...P....c.p.P..cp.pn..P.........a....r.b.kabnr","move":"e1d1","from":"e1","to":"d1","flipped":[],"legal":23,"losing":22,"winning":0},{"side":"black","before":"R.BK.Ab...........N...CAr.nP...p...P......pc...P....c.p.P..cp.pn..P.........a....r.b.kabnr","move":"h5h3","from":"h5","to":"h3","flipped":["f3"],"legal":47,"losing":5,"winning":0},{"side":"red","before":"R.BK.Ab...........N...CarcnP...p...P......p....P....c.p.P..cp.pn..P.........a....r.b.kabnr","move":"e3e2","from":"e3","to":"e2","flipped":["e9"],"legal":23,"losing":21,"winning":0},{"side":"black","before":"R.BK.Ab......C....N....arcnP...p...P......p....P....c.p.P..cp.pn..P.........A....r.b.kabnr","move":"g1e3","from":"g1","to":"e3","flipped":["c1"],"legal":46,"losing":3,"winning":0},{"side":"red","before":"R.bK.A.......C....N...barcnP...p...P......p....P....c.p.P..cp.pn..P.........A....r.b.kabnr","move":"a1b1","from":"a1","to":"b1","flipped":["c1"],"legal":28,"losing":28,"winning":0},{"side":"black","before":".RBK.A.......C....N...barcnP...p...P......p....P....c.p.P..cp.pn..P.........A....r.b.kabnr","move":"h3h1","from":"h3","to":"h1","flipped":[],"legal":47,"losing":2,"winning":1,"after":".RBK.A.c.....C....N...bar.nP...p...P......p....P....c.p.P..cp.pn..P.........A....r.b.kabnr"}]},{"tag":"g44","result":"red","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c.....a....rnbak.bnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAKABNR..........C.......P.P.P.P.P................C.p.p.p.p.p.c.....c.....a....rnbak.bNr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":38,"losing":4,"winning":0},{"side":"red","before":"RnBAKABNR..........C.......P.P.P.P.P.c..............C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"e4e5","from":"e4","to":"e5","flipped":[],"legal":43,"losing":36,"winning":0},{"side":"black","before":"RnBAKABNR..........C.......P.P...P.P.c..P...........C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"b5b6","from":"b5","to":"b6","flipped":[],"legal":39,"losing":4,"winning":0},{"side":"red","before":"RnBAKABNR..........C.......P.P...P.P....P.....c.....C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":42,"losing":33,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P...P.P....P.....c.....C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"b6a6","from":"b6","to":"a6","flipped":["a1"],"legal":42,"losing":4,"winning":0},{"side":"red","before":"rnB.KABNR....A.....C.......P.P...P.P....P....c......C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"a4a5","from":"a4","to":"a5","flipped":["a6"],"legal":46,"losing":4,"winning":0},{"side":"black","before":"rnB.KABNR....A.....C.........P...P.PP...P....C......C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"b1c3","from":"b1","to":"c3","flipped":["e2"],"legal":33,"losing":4,"winning":0},{"side":"red","before":"r.B.KABNR....a.....Cn........P...P.PP...P....C......C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"a6d6","from":"a6","to":"d6","flipped":[],"legal":42,"losing":2,"winning":0},{"side":"black","before":"r.B.KABNR....a.....Cn........P...P.PP...P.......C...C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"a1a4","from":"a1","to":"a4","flipped":["a5","c4"],"legal":39,"losing":4,"winning":0},{"side":"red","before":"..B.KABNR....a.....Cn......r.p...P.Pp...P.......C...C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"d6a6","from":"d6","to":"a6","flipped":["a10","a4"],"legal":46,"losing":2,"winning":0},{"side":"black","before":"..B.KABNR....a.....Cn......R.p...P.Pp...P....C......C.p.p.p.p.p.......c.....a....Rnbak.bNr","move":"c4b4","from":"c4","to":"b4","flipped":["b3","a4"],"legal":35,"losing":4,"winning":0},{"side":"red","before":"..B.KABNR....a.....cn......rp....P.Pp...P....C......C.p.p.p.p.p.......c.....a....Rnbak.bNr","move":"a6b6","from":"a6","to":"b6","flipped":["b3"],"legal":34,"losing":30,"winning":0},{"side":"black","before":"..B.KABNR....a.....Cn......rp....P.Pp...P.....C.....C.p.p.p.p.p.......c.....a....Rnbak.bNr","move":"b4c4","from":"b4","to":"c4","flipped":[],"legal":40,"losing":4,"winning":0},{"side":"red","before":"..B.KABNR....a.....Cn......r.p...P.Pp...P.....C.....C.p.p.p.p.p.......c.....a....Rnbak.bNr","move":"a10a8","from":"a10","to":"a8","flipped":["a7","h8"],"legal":43,"losing":1,"winning":0},{"side":"black","before":"..B.KABNR....a.....Cn......r.p...P.Pp...P.....C.....C.P.p.p.p.pR......C.....a.....nbak.bNr","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":27,"losing":24,"winning":0},{"side":"red","before":"..B.KABNR....a.....Cn......r.p...P.Pp...P.....C.....C.P.p.p.p.pR...b..C.....a.....nbak..Nr","move":"b3b5","from":"b3","to":"b5","flipped":["b10"],"legal":53,"losing":1,"winning":0},{"side":"black","before":"..B.KABNR....a......n......r.p...P.PpC..P.....C.....C.P.p.p.p.pR...b..C.....a.....Nbak..Nr","move":"c3a2","from":"c3","to":"a2","flipped":["c1"],"legal":26,"losing":4,"winning":0},{"side":"red","before":"..b.KABNRn...a.............r.p...P.PpC..P.....C.....C.P.p.p.p.pR...b..C.....a.....Nbak..Nr","move":"h6i6","from":"h6","to":"i6","flipped":["i10"],"legal":51,"losing":1,"winning":0},{"side":"black","before":"..b.KABNRn...a.............r.p...P.PpC..P.....C......CP.p.p.p.pR...b..C.....a.....Nbak..NR","move":"a2b4","from":"a2","to":"b4","flipped":[],"legal":22,"losing":4,"winning":0},{"side":"red","before":"..b.KABNR....a.............rnp...P.PpC..P.....C......CP.p.p.p.pR...b..C.....a.....Nbak..NR","move":"b6b7","from":"b6","to":"b7","flipped":["b4","e7"],"legal":51,"losing":47,"winning":0},{"side":"black","before":"..b.KABNR....a.............rNp...P.PpC..P............CPCp.P.p.pR...b..C.....a.....Nbak..NR","move":"c1e3","from":"c1","to":"e3","flipped":["g1"],"legal":19,"losing":4,"winning":0},{"side":"red","before":"....KAbNR....a........b....rNp...P.PpC..P............CPCp.P.p.pR...b..C.....a.....Nbak..NR","move":"i6a6","from":"i6","to":"a6","flipped":["a4"],"legal":48,"losing":46,"winning":0},{"side":"black","before":"....KAbNR....a........b....RNp...P.PpC..P....C........PCp.P.p.pR...b..C.....a.....Nbak..NR","move":"e2f3","from":"e2","to":"f3","flipped":[],"legal":19,"losing":4,"winning":0},{"side":"red","before":"....KAbNR.............ba...RNp...P.PpC..P....C........PCp.P.p.pR...b..C.....a.....Nbak..NR","move":"h10g8","from":"h10","to":"g8","flipped":["e9"],"legal":52,"losing":1,"winning":0},{"side":"black","before":"....KAbNR.............ba...RNp...P.PpC..P....C........PCp.P.p.pR...b.NC.....A.....Nbak...R","move":"f3e2","from":"f3","to":"e2","flipped":["f1"],"legal":14,"losing":14,"winning":0},{"side":"red","before":"....KabNR....a........b....RNp...P.PpC..P....C........PCp.P.p.pR...b.NC.....A.....Nbak...R","move":"i10h10","from":"i10","to":"h10","flipped":[],"legal":54,"losing":0,"winning":3,"after":"....KabNR....a........b....RNp...P.PpC..P....C........PCp.P.p.pR...b.NC.....A.....Nbak..R."}]},{"tag":"g45","result":"red","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c................rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c...........a....rnbak.bnr","move":"i1i3","from":"i1","to":"i3","flipped":[],"legal":34,"losing":7,"winning":0},{"side":"black","before":"RNBAKABn...........C..C...RP.P.P.P.P.......c..........p.p.P.p.p.c...........a....rnbak.bnr","move":"h5h3","from":"h5","to":"h3","flipped":["b3"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RNBAKABn...........c..C..cRP.P.P.P.P..................p.p.P.p.p.c...........a....rnbak.bnr","move":"a1a3","from":"a1","to":"a3","flipped":["b3"],"legal":23,"losing":2,"winning":0},{"side":"black","before":".NBAKABn..........RC..C..cRP.P.P.P.P..................p.p.P.p.p.c...........a....rnbak.bnr","move":"b8b6","from":"b8","to":"b6","flipped":["b1"],"legal":43,"losing":0,"winning":0},{"side":"red","before":".nBAKABn..........RC..C..cRP.P.P.P.P..........c.......p.p.P.p.p.............a....rnbak.bnr","move":"b3c3","from":"b3","to":"c3","flipped":["c7","h3"],"legal":25,"losing":6,"winning":0},{"side":"black","before":".nBAKABn..........R.C.C..CRP.P.P.P.P..........c.......p.P.P.p.p.............a....rnbak.bnr","move":"b6d6","from":"b6","to":"d6","flipped":[],"legal":35,"losing":2,"winning":0},{"side":"red","before":".nBAKABn..........R.C.C..CRP.P.P.P.P............c.....p.P.P.p.p.............a....rnbak.bnr","move":"c3c2","from":"c3","to":"c2","flipped":[],"legal":35,"losing":4,"winning":0},{"side":"black","before":".nBAKABn...C......R...C..CRP.P.P.P.P............c.....p.P.P.p.p.............a....rnbak.bnr","move":"d6i6","from":"d6","to":"i6","flipped":["i3"],"legal":36,"losing":2,"winning":0},{"side":"red","before":".nBAKABn...C......R...C..CrP.P.P.P.P.................cp.P.P.p.p.............a....rnbak.bnr","move":"a3d3","from":"a3","to":"d3","flipped":["d10"],"legal":43,"losing":6,"winning":0},{"side":"black","before":".nBAKABn...C.........RC..CrP.P.P.P.P.................cp.P.P.p.p.............a....rnbAk.bnr","move":"g7g6","from":"g7","to":"g6","flipped":[],"legal":32,"losing":2,"winning":0},{"side":"red","before":".nBAKABn...C.........RC..CrP.P.P.P.P...............p.cp.P.P...p.............a....rnbAk.bnr","move":"e3g3","from":"e3","to":"g3","flipped":["g6","i3"],"legal":46,"losing":1,"winning":0},{"side":"black","before":".nBAKABn...C.........R..CCRP.P.P.P.P...............P.cp.P.P...p.............a....rnbAk.bnr","move":"a10a8","from":"a10","to":"a8","flipped":[],"legal":21,"losing":3,"winning":0},{"side":"red","before":".nBAKABn...C.........R..CCRP.P.P.P.P...............P.cp.P.P...pr............a.....nbAk.bnr","move":"d3d8","from":"d3","to":"d8","flipped":["a8"],"legal":53,"losing":1,"winning":0},{"side":"black","before":".nBAKABn...C............CCRP.P.P.P.P...............P.cp.P.P...pR..R.........a.....nbAk.bnr","move":"b1a3","from":"b1","to":"a3","flipped":["c4","c2"],"legal":16,"losing":5,"winning":0},{"side":"red","before":"..BAKABn...c......n.....CCRP.p.P.P.P...............P.cp.P.P...pR..R.........a.....nbAk.bnr","move":"g6h6","from":"g6","to":"h6","flipped":["i6"],"legal":51,"losing":2,"winning":0},{"side":"black","before":"..BAKABn...c......n.....CCRP.p.P.P.P................PCp.P.P...pR..R.........a.....nbAk.bnr","move":"c2b2","from":"c2","to":"b2","flipped":[],"legal":25,"losing":3,"winning":0},{"side":"red","before":"..BAKABn..c.......n.....CCRP.p.P.P.P................PCp.P.P...pR..R.........a.....nbAk.bnr","move":"d8d3","from":"d8","to":"d3","flipped":["a3"],"legal":47,"losing":43,"winning":0},{"side":"black","before":"..BAKABn..c.......N..R..CCRP.p.P.P.P................PCp.P.P...pR............a.....nbAk.bnr","move":"b2b6","from":"b2","to":"b6","flipped":["i6"],"legal":32,"losing":3,"winning":0},{"side":"red","before":"..BAKABn..........N..R..CCRP.p.P.P.P..........c.....Pcp.P.P...pR............a.....nbAk.bnr","move":"d3b3","from":"d3","to":"b3","flipped":["b6"],"legal":48,"losing":41,"winning":0},{"side":"black","before":"..BAKABn..........NR....CCRP.p.P.P.P..........C.....Pcp.P.P...pR............a.....nbAk.bnr","move":"i10i8","from":"i10","to":"i8","flipped":["a8"],"legal":17,"losing":4,"winning":0},{"side":"red","before":"..BAKABn..........NR....CCRP.p.P.P.P..........C.....Pcp.P.P...pr.......r....a.....nbAk.bn.","move":"i4i5","from":"i4","to":"i5","flipped":["i6"],"legal":47,"losing":1,"winning":0},{"side":"black","before":"..BAKABn..........NR....CCRP.p.P.P..........P.C.....PCp.P.P...pr.......r....a.....nbAk.bn.","move":"c4b4","from":"c4","to":"b4","flipped":["b3","a4"],"legal":30,"losing":4,"winning":0},{"side":"red","before":"..BAKABn..........Nr....CCRpp..P.P..........P.C.....PCp.P.P...pr.......r....a.....nbAk.bn.","move":"b6b9","from":"b6","to":"b9","flipped":["b3"],"legal":37,"losing":26,"winning":0},{"side":"black","before":"..BAKABn..........NR....CCRpp..P.P..........P.......PCp.P.P...pr.......r.C..a.....nbAk.bn.","move":"a8a9","from":"a8","to":"a9","flipped":["b9"],"legal":27,"losing":1,"winning":0},{"side":"red","before":"..BAKABn..........NR....CCRpp..P.P..........P.......PCp.P.P...p........rrc..a.....nbAk.bn.","move":"b3e3","from":"b3","to":"e3","flipped":[],"legal":33,"losing":0,"winning":0},{"side":"black","before":"..BAKABn..........N...R.CCRpp..P.P..........P.......PCp.P.P...p........rrc..a.....nbAk.bn.","move":"b9b6","from":"b9","to":"b6","flipped":["i6"],"legal":28,"losing":1,"winning":0},{"side":"red","before":"..BAKABn..........N...R.CCRpp..P.P..........P.c.....Pcp.P.P...p........rr...a.....nbAk.bn.","move":"a3c4","from":"a3","to":"c4","flipped":["b6"],"legal":29,"losing":4,"winning":0},{"side":"black","before":"..BAKABn..............R.CCRppN.P.P..........P.C.....Pcp.P.P...p........rr...a.....nbAk.bn.","move":"i8b8","from":"i8","to":"b8","flipped":["b6"],"legal":28,"losing":4,"winning":0},{"side":"red","before":"..BAKABn..............R.CCRppN.P.P..........P.c.....Pcp.P.P...p.r.......r...a.....nbAk.bn.","move":"c4e5","from":"c4","to":"e5","flipped":[],"legal":32,"losing":5,"winning":0},{"side":"black","before":"..BAKABn..............R.CCRpp..P.P......N...P.c.....Pcp.P.P...p.r.......r...a.....nbAk.bn.","move":"b6g6","from":"b6","to":"g6","flipped":["g3"],"legal":39,"losing":1,"winning":0},{"side":"red","before":"..BAKABn..............R.cCRpp..P.P......N...P......cPcp.P.P...p.r.......r...a.....nbAk.bn.","move":"c7c8","from":"c7","to":"c8","flipped":["b8"],"legal":28,"losing":1,"winning":0},{"side":"black","before":"..BAKABn..............R.cCRpp..P.P......N...P......cPcp...P...p.RP......r...a.....nbAk.bn.","move":"g3f3","from":"g3","to":"f3","flipped":["i3"],"legal":32,"losing":1,"winning":0},{"side":"red","before":"..BAKABn..............Rc.Crpp..P.P......N...P......cPcp...P...p.RP......r...a.....nbAk.bn.","move":"e3c3","from":"e3","to":"c3","flipped":["f3"],"legal":29,"losing":2,"winning":0},{"side":"black","before":"..BAKABn............R..C.Crpp..P.P......N...P......cPcp...P...p.RP......r...a.....nbAk.bn.","move":"b4c4","from":"b4","to":"c4","flipped":["c3"],"legal":34,"losing":0,"winning":0},{"side":"red","before":"..BAKABn............r..C.Crp.p.P.P......N...P......cPcp...P...p.RP......r...a.....nbAk.bn.","move":"h3g3","from":"h3","to":"g3","flipped":["g6","c3"],"legal":40,"losing":32,"winning":0},{"side":"black","before":"..BAKABn............R..CC.rp.p.P.P......N...P......CPcp...P...p.RP......r...a.....nbAk.bn.","move":"g10i8","from":"g10","to":"i8","flipped":["g6"],"legal":25,"losing":3,"winning":0},{"side":"red","before":"..BAKABn............R..CC.rp.p.P.P......N...P......cPcp...P...p.RP.....br...a.....nbAk..n.","move":"f3d3","from":"f3","to":"d3","flipped":["i3"],"legal":42,"losing":4,"winning":0},{"side":"black","before":"..BAKABn............RC..C.Rp.p.P.P......N...P......cPcp...P...p.RP.....br...a.....nbAk..n.","move":"g6e6","from":"g6","to":"e6","flipped":["e4"],"legal":31,"losing":0,"winning":0},{"side":"red","before":"..BAKABn............RC..C.Rp.p.p.P......N...P....c..Pcp...P...p.RP.....br...a.....nbAk..n.","move":"b8b9","from":"b8","to":"b9","flipped":["b10","e9","a9"],"legal":45,"losing":3,"winning":0},{"side":"black","before":"..BAKABn............RC..C.Rp.p.p.P......N...P....c..Pcp...P...p..P.....bRR..A.....NbAk..n.","move":"e4e3","from":"e4","to":"e3","flipped":["d3"],"legal":20,"losing":0,"winning":0},{"side":"red","before":"..BAKABn............Rcp.C.Rp.p...P......N...P....c..Pcp...P...p..P.....bRR..A.....NbAk..n.","move":"d1e2","from":"d1","to":"e2","flipped":["d3"],"legal":41,"losing":38,"winning":0},{"side":"black","before":"..B.KABn.....A......RCp.C.Rp.p...P......N...P....c..Pcp...P...p..P.....bRR..A.....NbAk..n.","move":"h10g8","from":"h10","to":"g8","flipped":["h6","e9","e7"],"legal":18,"losing":0,"winning":0},{"side":"red","before":"..B.KABn.....A......RCp.C.Rp.p...P......N...P....c..pcp...p...p..P...n.bRR..a.....NbAk....","move":"e5g6","from":"e5","to":"g6","flipped":["e7"],"legal":41,"losing":3,"winning":0},{"side":"black","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....c.Npcp...P...p..P...n.bRR..a.....NbAk....","move":"e10f10","from":"e10","to":"f10","flipped":[],"legal":24,"losing":22,"winning":0},{"side":"red","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....c.Npcp...P...p..P...n.bRR..a.....NbA.k...","move":"g6f8","from":"g6","to":"f8","flipped":["e6"],"legal":46,"losing":3,"winning":0},{"side":"black","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....C..pcp...P...p..P..Nn.bRR..a.....NbA.k...","move":"f10e10","from":"f10","to":"e10","flipped":["d10"],"legal":16,"losing":15,"winning":0},{"side":"red","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....C..pcp...P...p..P..Nn.bRR..a.....Nbak....","move":"b9d9","from":"b9","to":"d9","flipped":["d10","e9"],"legal":53,"losing":2,"winning":0},{"side":"black","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....C..pcp...P...p..P..Nn.bR..RA.....NbAk....","move":"i8g6","from":"i8","to":"g6","flipped":[],"legal":15,"losing":1,"winning":0},{"side":"red","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....C.bpcp...P...p..P..Nn..R..RA.....NbAk....","move":"e9f10","from":"e9","to":"f10","flipped":[],"legal":51,"losing":2,"winning":0},{"side":"black","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....C.bpcp...P...p..P..Nn..R..R......NbAkA...","move":"e10e9","from":"e10","to":"e9","flipped":["d9"],"legal":14,"losing":14,"winning":0},{"side":"red","before":"..B.KABn.....A......RCp.C.Rp.p...P..........P....C.bpcp...P...p..P..Nn..R..rk.....NbA.A...","move":"f8d7","from":"f8","to":"d7","flipped":[],"legal":43,"losing":2,"winning":4,"after":"..B.KABn.....A......RCp.C.Rp.p...P..........P....C.bpcp..NP...p..P...n..R..rk.....NbA.A..."}]},{"tag":"g46","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"e4e5","from":"e4","to":"e5","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C.....C.P.P...P.P....P..c..........p.p.p.p.p.c................rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":43,"losing":0,"winning":0},{"side":"red","before":"RnBAKABnR..........C.....C.P.P...P.P.c..P..c..........p.p.p.p.p..................rnbakabnr","move":"i4i5","from":"i4","to":"i5","flipped":[],"legal":32,"losing":1,"winning":0},{"side":"black","before":"RnBAKABnR..........C.....C.P.P...P...c..P..cP.........p.p.p.p.p..................rnbakabnr","move":"b5a5","from":"b5","to":"a5","flipped":["a1"],"legal":39,"losing":0,"winning":0},{"side":"red","before":"rnBAKABnR..........C.....C.P.P...P..c...P..cP.........p.p.p.p.p..................rnbakabnr","move":"b3a3","from":"b3","to":"a3","flipped":["a5"],"legal":35,"losing":1,"winning":0},{"side":"black","before":"rnBAKABnR.........C......C.P.P...P..C...P..cP.........p.p.p.p.p..................rnbakabnr","move":"a7a6","from":"a7","to":"a6","flipped":["a5"],"legal":31,"losing":0,"winning":0},{"side":"red","before":"rnBAKABnR.........C......C.P.P...P..c...P..cPp..........p.p.p.p..................rnbakabnr","move":"c4c5","from":"c4","to":"c5","flipped":[],"legal":29,"losing":1,"winning":0},{"side":"black","before":"rnBAKABnR.........C......C.P.....P..c.P.P..cPp..........p.p.p.p..................rnbakabnr","move":"h10g8","from":"h10","to":"g8","flipped":[],"legal":32,"losing":0,"winning":0},{"side":"red","before":"rnBAKABnR.........C......C.P.....P..c.P.P..cPp..........p.p.p.p......n...........rnbakab.r","move":"a3a2","from":"a3","to":"a2","flipped":["a5"],"legal":29,"losing":1,"winning":0},{"side":"black","before":"rnBAKABnRC...............C.P.....P..C.P.P..cPp..........p.p.p.p......n...........rnbakab.r","move":"b1a3","from":"b1","to":"a3","flipped":[],"legal":34,"losing":0,"winning":0},{"side":"red","before":"r.BAKABnRC........n......C.P.....P..C.P.P..cPp..........p.p.p.p......n...........rnbakab.r","move":"a2c2","from":"a2","to":"c2","flipped":["c7"],"legal":31,"losing":28,"winning":0},{"side":"black","before":"r.BAKABnR..C......n......C.P.....P..C.P.P..cPp..........P.p.p.p......n...........rnbakab.r","move":"a3b1","from":"a3","to":"b1","flipped":[],"legal":35,"losing":0,"winning":0},{"side":"red","before":"rnBAKABnR..C.............C.P.....P..C.P.P..cPp..........P.p.p.p......n...........rnbakab.r","move":"h3b3","from":"h3","to":"b3","flipped":[],"legal":38,"losing":1,"winning":0},{"side":"black","before":"rnBAKABnR..C.......C.......P.....P..C.P.P..cPp..........P.p.p.p......n...........rnbakab.r","move":"b1a3","from":"b1","to":"a3","flipped":[],"legal":37,"losing":0,"winning":0},{"side":"red","before":"r.BAKABnR..C......nC.......P.....P..C.P.P..cPp..........P.p.p.p......n...........rnbakab.r","move":"i1i3","from":"i1","to":"i3","flipped":[],"legal":42,"losing":1,"winning":0},{"side":"black","before":"r.BAKABn...C......nC......RP.....P..C.P.P..cPp..........P.p.p.p......n...........rnbakab.r","move":"a1a2","from":"a1","to":"a2","flipped":["c2"],"legal":35,"losing":0,"winning":0},{"side":"red","before":"..BAKABn.r.c......nC......RP.....P..C.P.P..cPp..........P.p.p.p......n...........rnbakab.r","move":"i3d3","from":"i3","to":"d3","flipped":["d10"],"legal":36,"losing":2,"winning":0},{"side":"black","before":"..BAKABn.r.c......nC.R.....P.....P..C.P.P..cPp..........P.p.p.p......n...........rnbAkab.r","move":"g8e9","from":"g8","to":"e9","flipped":[],"legal":43,"losing":1,"winning":0},{"side":"red","before":"..BAKABn.r.c......nC.R.....P.....P..C.P.P..cPp..........P.p.p.p.............n....rnbAkab.r","move":"b3b8","from":"b3","to":"b8","flipped":[],"legal":36,"losing":2,"winning":0},{"side":"black","before":"..BAKABn.r.c......n..R.....P.....P..C.P.P..cPp..........P.p.p.p.C...........n....rnbAkab.r","move":"b10c8","from":"b10","to":"c8","flipped":["d10"],"legal":43,"losing":33,"winning":0},{"side":"red","before":"..BAKABn.r.c......n..R.....P.....P..C.P.P..cPp..........P.p.p.p.Cn..........n....r.bakab.r","move":"b8b3","from":"b8","to":"b3","flipped":[],"legal":37,"losing":2,"winning":0},{"side":"black","before":"..BAKABn.r.c......nC.R.....P.....P..C.P.P..cPp..........P.p.p.p..n..........n....r.bakab.r","move":"a10b10","from":"a10","to":"b10","flipped":["b3"],"legal":43,"losing":2,"winning":0},{"side":"red","before":"..BAKABn.r.c......nc.R.....P.....P..C.P.P..cPp..........P.p.p.p..n..........n.....rbakab.r","move":"d3c3","from":"d3","to":"c3","flipped":["c2","b3"],"legal":26,"losing":3,"winning":0},{"side":"black","before":"..BAKABn.r.C......nCR......P.....P..C.P.P..cPp..........P.p.p.p..n..........n.....rbakab.r","move":"b10b4","from":"b10","to":"b4","flipped":["b3","g4","a4"],"legal":36,"losing":0,"winning":0},{"side":"red","before":"..BAKABn.r.C......ncR......pr....p..C.P.P..cPp..........P.p.p.p..n..........n......bakab.r","move":"c2b2","from":"c2","to":"b2","flipped":["b4"],"legal":26,"losing":20,"winning":0},{"side":"black","before":"..BAKABn.rC.......ncR......pR....p..C.P.P..cPp..........P.p.p.p..n..........n......bakab.r","move":"h5h4","from":"h5","to":"h4","flipped":["b4"],"legal":32,"losing":0,"winning":0},{"side":"red","before":"..BAKABn.rC.......ncR......pr....pc.C.P.P...Pp..........P.p.p.p..n..........n......bakab.r","move":"c3c4","from":"c3","to":"c4","flipped":["g4","b4"],"legal":28,"losing":21,"winning":0},{"side":"black","before":"..BAKABn.rC.......nc.......pRR...Pc.C.P.P...Pp..........P.p.p.p..n..........n......bakab.r","move":"h4i4","from":"h4","to":"i4","flipped":["c4"],"legal":35,"losing":0,"winning":0},{"side":"red","before":"..BAKABn.rC.......nc.......pRr...P.cC.P.P...Pp..........P.p.p.p..n..........n......bakab.r","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":27,"losing":25,"winning":0},{"side":"black","before":"..BAKA.n.rC.......nc..B....pRr...P.cC.P.P...Pp..........P.p.p.p..n..........n......bakab.r","move":"h1g3","from":"h1","to":"g3","flipped":["f1"],"legal":31,"losing":0,"winning":0},{"side":"red","before":"..BAKa...rC.......nc..B.n..pRr...P.cC.P.P...Pp..........P.p.p.p..n..........n......bakab.r","move":"b4b8","from":"b4","to":"b8","flipped":["b3","c8"],"legal":25,"losing":25,"winning":0},{"side":"black","before":"..BAKa...rC.......nC..B.n..p.r...P.cC.P.P...Pp..........P.p.p.p.RN..........n......bakab.r","move":"i4i1","from":"i4","to":"i1","flipped":[],"legal":30,"losing":0,"winning":1,"after":"..BAKa..crC.......nC..B.n..p.r...P..C.P.P...Pp..........P.p.p.p.RN..........n......bakab.r"}]},{"tag":"g47","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h6","from":"h8","to":"h6","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P................c.p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":38,"losing":32,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P................c.p.p.P.p.p.c................rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........C..C....P.P.P.P.P.c..............c.p.p.P.p.p..................rnbakabnr","move":"g4g5","from":"g4","to":"g5","flipped":[],"legal":29,"losing":7,"winning":0},{"side":"black","before":"RnBAKABnR..........C..C....P.P.P...P.c....P.........c.p.p.P.p.p..................rnbakabnr","move":"h6b6","from":"h6","to":"b6","flipped":["b3"],"legal":48,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C....P.P.P...P.c....P...c.......p.p.P.p.p..................rnbakabnr","move":"a1a2","from":"a1","to":"a2","flipped":[],"legal":24,"losing":8,"winning":0},{"side":"black","before":".nBAKABnRR.........c..C....P.P.P...P.c....P...c.......p.p.P.p.p..................rnbakabnr","move":"b3b2","from":"b3","to":"b2","flipped":[],"legal":45,"losing":1,"winning":0},{"side":"red","before":".nBAKABnRRc...........C....P.P.P...P.c....P...c.......p.p.P.p.p..................rnbakabnr","move":"c4c5","from":"c4","to":"c5","flipped":[],"legal":25,"losing":9,"winning":0},{"side":"black","before":".nBAKABnRRc...........C....P...P...P.cP...P...c.......p.p.P.p.p..................rnbakabnr","move":"b5a5","from":"b5","to":"a5","flipped":["a2","g5"],"legal":44,"losing":1,"winning":0},{"side":"red","before":".nBAKABnRrc...........C....P...P...Pc.P...p...c.......p.p.P.p.p..................rnbakabnr","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":21,"losing":9,"winning":0},{"side":"black","before":".nBAKABnRrc...........C....P...P...Pc.P...p...c.......p.p...p.p....P.............rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":50,"losing":45,"winning":0},{"side":"red","before":".nBAKABnRrc...........C....P...P...Pc.P...p...c.......p.p...p.p....P........a....rnbak.bnr","move":"c5c6","from":"c5","to":"c6","flipped":["c7","b6"],"legal":20,"losing":9,"winning":0},{"side":"black","before":".nBAKABnRrc...........C....P...P...Pc.....p...CP......p.P...p.p....P........a....rnbak.bnr","move":"b2i2","from":"b2","to":"i2","flipped":[],"legal":40,"losing":3,"winning":0},{"side":"red","before":".nBAKABnRr.......c....C....P...P...Pc.....p...CP......p.P...p.p....P........a....rnbak.bnr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":30,"losing":26,"winning":0},{"side":"black","before":".nBAK.BnRr...A...c....C....P...P...Pc.....p...CP......p.P...p.p....P........a....rnbak.bnr","move":"b1a3","from":"b1","to":"a3","flipped":[],"legal":39,"losing":3,"winning":0},{"side":"red","before":"..BAK.BnRr...A...cn...C....P...P...Pc.....p...CP......p.P...p.p....P........a....rnbak.bnr","move":"e3b3","from":"e3","to":"b3","flipped":["b10"],"legal":29,"losing":27,"winning":0},{"side":"black","before":"..BAK.BnRr...A...cnC.......P...P...Pc.....p...CP......p.P...p.p....P........a....rNbak.bnr","move":"a2b2","from":"a2","to":"b2","flipped":["b3","e2"],"legal":34,"losing":3,"winning":0},{"side":"red","before":"..BAK.BnR.r..a...cnc.......P...P...Pc.....p...CP......p.P...p.p....P........a....rNbak.bnr","move":"g1e3","from":"g1","to":"e3","flipped":["g5"],"legal":20,"losing":18,"winning":0},{"side":"black","before":"..BAK..nR.r..a...cnc..B....P...P...Pc.....P...CP......p.P...p.p....P........a....rNbak.bnr","move":"b3b4","from":"b3","to":"b4","flipped":["b10","i4"],"legal":40,"losing":3,"winning":0},{"side":"red","before":"..BAK..nR.r..a...cn...B....Pc..P...pc.....P...CP......p.P...p.p....P........a....rnbak.bnr","move":"b6b9","from":"b6","to":"b9","flipped":["b2"],"legal":16,"losing":16,"winning":0},{"side":"black","before":"..BAK..nR.R..a...cn...B....Pc..P...pc.....P....P......p.P...p.p....P.....C..a....rnbak.bnr","move":"a3c2","from":"a3","to":"c2","flipped":[],"legal":42,"losing":3,"winning":1,"after":"..BAK..nR.Rn.a...c....B....Pc..P...pc.....P....P......p.P...p.p....P.....C..a....rnbak.bnr"}]},{"tag":"g48","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c................rnbakabnr","move":"b8b4","from":"b8","to":"b4","flipped":["b1","e4"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........C..C....PcP.p.P.P.......c..........p.p.P.p.p..................rnbakabnr","move":"i4i5","from":"i4","to":"i5","flipped":[],"legal":27,"losing":7,"winning":0},{"side":"black","before":"RnBAKABnR..........C..C....PcP.p.P.........cP.........p.p.P.p.p..................rnbakabnr","move":"h5e5","from":"h5","to":"e5","flipped":["e3"],"legal":44,"losing":3,"winning":0},{"side":"red","before":"RnBAKABnR..........C..c....PcP.p.P......c...P.........p.p.P.p.p..................rnbakabnr","move":"i5i6","from":"i5","to":"i6","flipped":["i7"],"legal":21,"losing":1,"winning":0},{"side":"black","before":"RnBAKABnR..........C..c....PcP.p.P......c............Pp.p.P.p.P..................rnbakabnr","move":"h1i3","from":"h1","to":"i3","flipped":["g4"],"legal":45,"losing":1,"winning":0},{"side":"red","before":"RnBAKAB.R..........C..c...nPcP.p.p......c............Pp.p.P.p.P..................rnbakabnr","move":"i1i2","from":"i1","to":"i2","flipped":["i3"],"legal":20,"losing":16,"winning":0},{"side":"black","before":"RnBAKAB..........R.C..c...NPcP.p.p......c............Pp.p.P.p.P..................rnbakabnr","move":"e5a5","from":"e5","to":"a5","flipped":["a1"],"legal":45,"losing":1,"winning":0},{"side":"red","before":"rnBAKAB..........R.C..c...NPcP.p.p..c................Pp.p.P.p.P..................rnbakabnr","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":26,"losing":1,"winning":0},{"side":"black","before":"rnBAKAB..........R.C..c...NPcP.p.p..c................Pp.p...p.P....P.............rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":45,"losing":39,"winning":0},{"side":"red","before":"rnBAKAB..........R.C..c...NPcP.p.p..c................Pp.p...p.P....P........a....rnbak.bnr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":25,"losing":1,"winning":0},{"side":"black","before":"rnBAK.B......A...R.C..c...NPcP.p.p..c................Pp.p...p.P....P........a....rnbak.bnr","move":"e3d3","from":"e3","to":"d3","flipped":[],"legal":45,"losing":4,"winning":0},{"side":"red","before":"rnBAK.B......A...R.C.c....NPcP.p.p..c................Pp.p...p.P....P........a....rnbak.bnr","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":21,"losing":18,"winning":0},{"side":"black","before":"rnBAK........A...R.C.cB...NPcP.p.p..c................Pp.p...p.P....P........a....rnbak.bnr","move":"d3d2","from":"d3","to":"d2","flipped":["i2"],"legal":48,"losing":4,"winning":0},{"side":"red","before":"rnBAK.......cA...r.C..B...NPcP.p.p..c................Pp.p...p.P....P........a....rnbak.bnr","move":"e3g1","from":"e3","to":"g1","flipped":[],"legal":20,"losing":19,"winning":0},{"side":"black","before":"rnBAK.B.....cA...r.C......NPcP.p.p..c................Pp.p...p.P....P........a....rnbak.bnr","move":"a1a3","from":"a1","to":"a3","flipped":["a4","b3"],"legal":55,"losing":3,"winning":0},{"side":"red","before":".nBAK.B.....cA...rrc......NpcP.p.p..c................Pp.p...p.P....P........a....rnbak.bnr","move":"i3h5","from":"i3","to":"h5","flipped":["g7"],"legal":13,"losing":13,"winning":0},{"side":"black","before":".nBAK.B.....cA...rrc.......pcP.p.p..c......N.........Pp.p...P.P....P........a....rnbak.bnr","move":"b3e3","from":"b3","to":"e3","flipped":[],"legal":62,"losing":3,"winning":1,"after":".nBAK.B.....cA...rr...c....pcP.p.p..c......N.........Pp.p...P.P....P........a....rnbak.bnr"}]},{"tag":"g49","result":"red","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h6","from":"h8","to":"h6","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P................c.p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":38,"losing":32,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P................c.p.p.P.p.p.c................rnbakabnr","move":"b10a8","from":"b10","to":"a8","flipped":[],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RNBAKABnR..........C..C....P.P.P.P.P................c.p.p.P.p.pnc................r.bakabnr","move":"b3b6","from":"b3","to":"b6","flipped":[],"legal":34,"losing":7,"winning":0},{"side":"black","before":"RNBAKABnR.............C....P.P.P.P.P..........C.....c.p.p.P.p.pnc................r.bakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":42,"losing":33,"winning":0},{"side":"red","before":"RNBAKABnR.............C....P.P.P.P.P..........C.....c.p.p.P.p.pnc...........a....r.bak.bnr","move":"e7d7","from":"e7","to":"d7","flipped":["c7"],"legal":39,"losing":9,"winning":0},{"side":"black","before":"RNBAKABnR.............C....P.P.P.P.P..........C.....c.p.PP..p.pnc...........a....r.bak.bnr","move":"h6d6","from":"h6","to":"d6","flipped":[],"legal":42,"losing":35,"winning":0},{"side":"red","before":"RNBAKABnR.............C....P.P.P.P.P..........C.c.....p.PP..p.pnc...........a....r.bak.bnr","move":"c7b7","from":"c7","to":"b7","flipped":["b8","a7"],"legal":36,"losing":9,"winning":0},{"side":"black","before":"RNBAKABnR.............C....P.P.P.P.P..........C.c.....PP.P..p.pnC...........a....r.bak.bnr","move":"i10i8","from":"i10","to":"i8","flipped":["b8"],"legal":28,"losing":24,"winning":0},{"side":"red","before":"RNBAKABnR.............C....P.P.P.P.P..........C.c.....PP.P..p.pnc......r....a....r.bak.bn.","move":"b6b5","from":"b6","to":"b5","flipped":["b8"],"legal":35,"losing":9,"winning":0},{"side":"black","before":"RNBAKABnR.............C....P.P.P.P.P.C..........c.....PP.P..p.pnC......r....a....r.bak.bn.","move":"i8e8","from":"i8","to":"e8","flipped":["e4","b8"],"legal":34,"losing":31,"winning":0},{"side":"red","before":"RNBAKABnR.............C....P.P.p.P.P.C..........c.....PP.P..p.pnc..r........a....r.bak.bn.","move":"e3e2","from":"e3","to":"e2","flipped":["e8"],"legal":40,"losing":9,"winning":0},{"side":"black","before":"RNBAKABnR....C.............P.P.p.P.P.C..........c.....PP.P..p.pnc..R........a....r.bak.bn.","move":"h1i3","from":"h1","to":"i3","flipped":["g4"],"legal":33,"losing":4,"winning":0},{"side":"red","before":"RNBAKAB.R....C............nP.P.p.p.P.C..........c.....PP.P..p.pnc..R........a....r.bak.bn.","move":"i1i2","from":"i1","to":"i2","flipped":["i3"],"legal":46,"losing":43,"winning":0},{"side":"black","before":"RNBAKAB......C...R........NP.P.p.p.P.C..........c.....PP.P..p.pnc..R........a....r.bak.bn.","move":"d6d3","from":"d6","to":"d3","flipped":[],"legal":34,"losing":4,"winning":0},{"side":"red","before":"RNBAKAB......C...R...c....NP.P.p.p.P.C................PP.P..p.pnc..R........a....r.bak.bn.","move":"e2e3","from":"e2","to":"e3","flipped":[],"legal":48,"losing":37,"winning":0},{"side":"black","before":"RNBAKAB..........R...cC...NP.P.p.p.P.C................PP.P..p.pnc..R........a....r.bak.bn.","move":"d3b3","from":"d3","to":"b3","flipped":["b7","i3"],"legal":28,"losing":4,"winning":0},{"side":"red","before":"RNBAKAB..........R.c..C...nP.P.p.p.P.C................Pp.P..p.pnc..R........a....r.bak.bn.","move":"i2f2","from":"i2","to":"f2","flipped":[],"legal":48,"losing":42,"winning":0},{"side":"black","before":"RNBAKAB.......R....c..C...nP.P.p.p.P.C................Pp.P..p.pnc..R........a....r.bak.bn.","move":"e4f4","from":"e4","to":"f4","flipped":[],"legal":29,"losing":27,"winning":0},{"side":"red","before":"RNBAKAB.......R....c..C...nP.P..pp.P.C................Pp.P..p.pnc..R........a....r.bak.bn.","move":"e8f8","from":"e8","to":"f8","flipped":["f4","b8"],"legal":53,"losing":7,"winning":0},{"side":"black","before":"RNBAKAB.......R....c..C...nP.P..Pp.P.C................Pp.P..p.pnC...R.......a....r.bak.bn.","move":"b7b6","from":"b7","to":"b6","flipped":["b5"],"legal":23,"losing":23,"winning":0},{"side":"red","before":"RNBAKAB.......R....c..C...nP.P..Pp.P.c........p.......P..P..p.pnC...R.......a....r.bak.bn.","move":"e3e4","from":"e3","to":"e4","flipped":[],"legal":53,"losing":33,"winning":8,"after":"RNBAKAB.......R....c......nP.P.CPp.P.c........p.......P..P..p.pnC...R.......a....r.bak.bn."}]},{"tag":"g50","result":"red","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"g4g5","from":"g4","to":"g5","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C.....C.P.P.P...P......Pc..........p.p.p.p.p.c................rnbakabnr","move":"b8b6","from":"b8","to":"b6","flipped":["b1"],"legal":41,"losing":0,"winning":0},{"side":"red","before":"RnBAKABnR..........C.....C.P.P.P...P......Pc..c.......p.p.p.p.p..................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":33,"losing":27,"winning":0},{"side":"black","before":"RnBAKABnR..........C..C....P.P.P...P......Pc..c.......p.p.P.p.p..................rnbakabnr","move":"h5h3","from":"h5","to":"h3","flipped":["b3"],"legal":44,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........c..C..c.P.P.P...P......P...c.......p.p.P.p.p..................rnbakabnr","move":"i1i3","from":"i1","to":"i3","flipped":["h3"],"legal":22,"losing":6,"winning":0},{"side":"black","before":"RnBAKABn...........c..C..CRP.P.P...P......P...c.......p.p.P.p.p..................rnbakabnr","move":"b3d3","from":"b3","to":"d3","flipped":["h3"],"legal":41,"losing":1,"winning":0},{"side":"red","before":"RnBAKABn.............cC..cRP.P.P...P......P...c.......p.p.P.p.p..................rnbakabnr","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":19,"losing":4,"winning":0},{"side":"black","before":"RnBAKABn.............cC..cRP.P.P...P......P...c.......p.p...p.p....P.............rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":54,"losing":49,"winning":0},{"side":"red","before":"RnBAKABn.............cC..cRP.P.P...P......P...c.......p.p...p.p....P........a....rnbak.bnr","move":"a1a3","from":"a1","to":"a3","flipped":["d3"],"legal":18,"losing":4,"winning":0},{"side":"black","before":".nBAKABn..........R..CC..cRP.P.P...P......P...c.......p.p...p.p....P........a....rnbak.bnr","move":"b6e6","from":"b6","to":"e6","flipped":["e3"],"legal":44,"losing":3,"winning":0},{"side":"red","before":".nBAKABn..........R..Cc..cRP.P.P...P......P......c....p.p...p.p....P........a....rnbak.bnr","move":"e8d8","from":"e8","to":"d8","flipped":[],"legal":25,"losing":1,"winning":0},{"side":"black","before":".nBAKABn..........R..Cc..cRP.P.P...P......P......c....p.p...p.p...P.........a....rnbak.bnr","move":"e10f10","from":"e10","to":"f10","flipped":[],"legal":44,"losing":0,"winning":0},{"side":"red","before":".nBAKABn..........R..Cc..cRP.P.P...P......P......c....p.p...p.p...P.........a....rnba.kbnr","move":"i3i2","from":"i3","to":"i2","flipped":[],"legal":24,"losing":1,"winning":0},{"side":"black","before":".nBAKABn.........RR..Cc..c.P.P.P...P......P......c....p.p...p.p...P.........a....rnba.kbnr","move":"f10e10","from":"f10","to":"e10","flipped":[],"legal":46,"losing":39,"winning":0},{"side":"red","before":".nBAKABn.........RR..Cc..c.P.P.P...P......P......c....p.p...p.p...P.........a....rnbak.bnr","move":"d3d7","from":"d3","to":"d7","flipped":["d10","i7","a7"],"legal":33,"losing":1,"winning":0},{"side":"black","before":".nBAKABn.........RR...c..c.P.P.P...P......P......c....P.pC..p.P...P.........a....rnbAk.bnr","move":"e9f10","from":"e9","to":"f10","flipped":[],"legal":47,"losing":40,"winning":0},{"side":"red","before":".nBAKABn.........RR...c..c.P.P.P...P......P......c....P.pC..p.P...P..............rnbAkabnr","move":"i2f2","from":"i2","to":"f2","flipped":["f10"],"legal":39,"losing":1,"winning":0},{"side":"black","before":".nBAKABn......R...R...c..c.P.P.P...P......P......c....P.pC..p.P...P..............rnbAkAbnr","move":"e3f3","from":"e3","to":"f3","flipped":["f1"],"legal":46,"losing":5,"winning":0},{"side":"red","before":".nBAKaBn......R...R....c.c.P.P.P...P......P......c....P.pC..p.P...P..............rnbAkAbnr","move":"d1e2","from":"d1","to":"e2","flipped":["f3","f1"],"legal":39,"losing":35,"winning":0},{"side":"black","before":".nB.KABn.....AR...R....C.c.P.P.P...P......P......c....P.pC..p.P...P..............rnbAkAbnr","move":"i10i9","from":"i10","to":"i9","flipped":["i7"],"legal":39,"losing":13,"winning":0},{"side":"red","before":".nB.KABn.....AR...R....C.c.P.P.P...P......P......c....P.pC..p.p...P.............rrnbAkAbn.","move":"f3g3","from":"f3","to":"g3","flipped":["g7"],"legal":45,"losing":12,"winning":0},{"side":"black","before":".nB.KABn.....AR...R.....Cc.P.P.P...P......P......c....P.pC..P.p...P.............rrnbAkAbn.","move":"e6e7","from":"e6","to":"e7","flipped":["e2"],"legal":45,"losing":13,"winning":0},{"side":"red","before":".nB.KABn.....aR...R.....Cc.P.P.P...P......P...........P.pCc.P.p...P.............rrnbAkAbn.","move":"d7d6","from":"d7","to":"d6","flipped":[],"legal":48,"losing":6,"winning":0},{"side":"black","before":".nB.KABn.....aR...R.....Cc.P.P.P...P......P.....C.....P.p.c.P.p...P.............rrnbAkAbn.","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":42,"losing":37,"winning":0},{"side":"red","before":".nB.KABn.....aR...R.....Cc.P.P.P...P......P.....C.....P.p.c.P.p...Pb............rrnbAkA.n.","move":"f2f9","from":"f2","to":"f9","flipped":["i9"],"legal":55,"losing":6,"winning":0},{"side":"black","before":".nB.KABn.....a....R.....Cc.P.P.P...P......P.....C.....P.p.c.P.p...Pb.........R..RrnbAkA.n.","move":"a10a9","from":"a10","to":"a9","flipped":["a7","f9"],"legal":29,"losing":28,"winning":0},{"side":"red","before":".nB.KABn.....a....R.....Cc.P.P.P...P......P.....C.....p.p.c.P.p...Pb....r....r..R.nbAkA.n.","move":"i9h9","from":"i9","to":"h9","flipped":["h10","h3","f9"],"legal":48,"losing":6,"winning":0},{"side":"black","before":".nB.KABn.....a....R.....CC.P.P.P...P......P.....C.....p.p.c.P.p...Pb....r....R.R..nbAkA.N.","move":"a9e9","from":"a9","to":"e9","flipped":["f9"],"legal":24,"losing":20,"winning":0},{"side":"red","before":".nB.KABn.....a....R.....CC.P.P.P...P......P.....C.....p.p.c.P.p...Pb........rr.R..nbAkA.N.","move":"h9i9","from":"h9","to":"i9","flipped":["i7","f9"],"legal":56,"losing":1,"winning":0},{"side":"black","before":".nB.KABn.....a....R.....CC.P.P.P...P......P.....C.....p.p.c.P.P...Pb........rR..R.nbAkA.N.","move":"e7e6","from":"e7","to":"e6","flipped":[],"legal":20,"losing":0,"winning":0},{"side":"red","before":".nB.KABn.....a....R.....CC.P.P.P...P......P.....Cc....p.p...P.P...Pb........rR..R.nbAkA.N.","move":"h10g8","from":"h10","to":"g8","flipped":["e9"],"legal":62,"losing":1,"winning":0},{"side":"black","before":".nB.KABn.....a....R.....CC.P.P.P...P......P.....Cc....p.p...P.P...Pb.N......RR..R.nbAkA...","move":"e6h6","from":"e6","to":"h6","flipped":[],"legal":18,"losing":17,"winning":0},{"side":"red","before":".nB.KABn.....a....R.....CC.P.P.P...P......P.....C...c.p.p...P.P...Pb.N......RR..R.nbAkA...","move":"e9b9","from":"e9","to":"b9","flipped":["b10","b1"],"legal":64,"losing":1,"winning":0},{"side":"black","before":".NB.KABn.....a....R.....CC.P.P.P...P......P.....C...c.p.p...P.P...Pb.N...R...R..R.NbAkA...","move":"h6h9","from":"h6","to":"h9","flipped":["b9"],"legal":19,"losing":19,"winning":0},{"side":"red","before":".NB.KABn.....a....R.....CC.P.P.P...P......P.....C.....p.p...P.P...Pb.N...r...R.cR.NbAkA...","move":"f9e9","from":"f9","to":"e9","flipped":[],"legal":69,"losing":0,"winning":2,"after":".NB.KABn.....a....R.....CC.P.P.P...P......P.....C.....p.p...P.P...Pb.N...r..R..cR.NbAkA..."}]},{"tag":"g51","result":"red","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c.....a....rnbak.bnr","move":"d1e2","from":"d1","to":"e2","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNB.KABNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c.....a....rnbak.bnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":43,"losing":0,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.....C.P.P.P.P.P.c................p.p.p.p.p.......c.....a....rnbak.bnr","move":"h3h5","from":"h3","to":"h5","flipped":["h10"],"legal":38,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.......P.P.P.P.P.c.....C..........p.p.p.p.p.......c.....a....rnbak.bNr","move":"h8i8","from":"h8","to":"i8","flipped":["i4"],"legal":43,"losing":4,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C.......P.P.P.P.p.c.....C..........p.p.p.p.p........c....a....rnbak.bNr","move":"a4a5","from":"a4","to":"a5","flipped":[],"legal":42,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR....A.....C.........P.P.P.pPc.....C..........p.p.p.p.p........c....a....rnbak.bNr","move":"i4i3","from":"i4","to":"i3","flipped":[],"legal":40,"losing":4,"winning":0},{"side":"red","before":"RnB.KABNR....A.....C......p..P.P.P..Pc.....C..........p.p.p.p.p........c....a....rnbak.bNr","move":"b3b2","from":"b3","to":"b2","flipped":["b10"],"legal":39,"losing":4,"winning":0},{"side":"black","before":"RnB.KABNR.C..A............p..P.P.P..Pc.....C..........p.p.p.p.p........c....a....rNbak.bNr","move":"i8b8","from":"i8","to":"b8","flipped":["b2"],"legal":37,"losing":4,"winning":0},{"side":"red","before":"RnB.KABNR.c..A............p..P.P.P..Pc.....C..........p.p.p.p.p.c...........a....rNbak.bNr","move":"a1a2","from":"a1","to":"a2","flipped":["b2"],"legal":32,"losing":3,"winning":0},{"side":"black","before":".nB.KABNRRC..A............p..P.P.P..Pc.....C..........p.p.p.p.p.c...........a....rNbak.bNr","move":"b5d5","from":"b5","to":"d5","flipped":[],"legal":39,"losing":4,"winning":0},{"side":"red","before":".nB.KABNRRC..A............p..P.P.P..P..c...C..........p.p.p.p.p.c...........a....rNbak.bNr","move":"h10i8","from":"h10","to":"i8","flipped":["g7"],"legal":37,"losing":4,"winning":0},{"side":"black","before":".nB.KABNRRC..A............p..P.P.P..P..c...C..........p.p.p.P.p.c......N....a....rNbak.b.r","move":"b8h8","from":"b8","to":"h8","flipped":["h1"],"legal":43,"losing":42,"winning":0},{"side":"red","before":".nB.KABnRRC..A............p..P.P.P..P..c...C..........p.p.p.P.p.......cN....a....rNbak.b.r","move":"b2b8","from":"b2","to":"b8","flipped":[],"legal":38,"losing":4,"winning":0},{"side":"black","before":".nB.KABnRR...A............p..P.P.P..P..c...C..........p.p.p.P.p.C.....cN....a....rNbak.b.r","move":"d5d8","from":"d5","to":"d8","flipped":["i8"],"legal":42,"losing":37,"winning":0},{"side":"red","before":".nB.KABnRR...A............p..P.P.P..P......C..........p.p.p.P.p.C.c...cn....a....rNbak.b.r","move":"b8a8","from":"b8","to":"a8","flipped":["h8"],"legal":44,"losing":1,"winning":0},{"side":"black","before":".nB.KABnRR...A............p..P.P.P..P......C..........p.p.p.P.pC..c...Cn....a....rNbak.b.r","move":"g10e8","from":"g10","to":"e8","flipped":[],"legal":31,"losing":29,"winning":0},{"side":"red","before":".nB.KABnRR...A............p..P.P.P..P......C..........p.p.p.P.pC..cb..Cn....a....rNbak...r","move":"a2d2","from":"a2","to":"d2","flipped":["d8"],"legal":43,"losing":1,"winning":0},{"side":"black","before":".nB.KABnR...RA............p..P.P.P..P......C..........p.p.p.P.pC..Cb..Cn....a....rNbak...r","move":"i3i2","from":"i3","to":"i2","flipped":["i1"],"legal":21,"losing":6,"winning":0},{"side":"red","before":".nB.KABnr...RA...p...........P.P.P..P......C..........p.p.p.P.pC..Cb..Cn....a....rNbak...r","move":"h8h6","from":"h8","to":"h6","flipped":["h1"],"legal":53,"losing":1,"winning":0},{"side":"black","before":".nB.KABNr...RA...p...........P.P.P..P......C........C.p.p.p.P.pC..Cb...n....a....rNbak...r","move":"e9f8","from":"e9","to":"f8","flipped":[],"legal":20,"losing":6,"winning":0},{"side":"red","before":".nB.KABNr...RA...p...........P.P.P..P......C........C.p.p.p.P.pC..Cba..n.........rNbak...r","move":"a8c8","from":"a8","to":"c8","flipped":["e8"],"legal":59,"losing":1,"winning":0},{"side":"black","before":".nB.KABNr...RA...p...........P.P.P..P......C........C.p.p.p.P.p..CCBa..n.........rNbak...r","move":"e10e9","from":"e10","to":"e9","flipped":["e8"],"legal":20,"losing":4,"winning":0},{"side":"red","before":".nB.KABNr...RA...p...........P.P.P..P......C........C.p.p.p.P.p..CCba..n....k....rNba....r","move":"h6a6","from":"h6","to":"a6","flipped":["a10"],"legal":57,"losing":1,"winning":0},{"side":"black","before":".nB.KABNr...RA...p...........P.P.P..P......C.C........p.p.p.P.p..CCba..n....k....RNba....r","move":"e9e10","from":"e9","to":"e10","flipped":[],"legal":20,"losing":19,"winning":0},{"side":"red","before":".nB.KABNr...RA...p...........P.P.P..P......C.C........p.p.p.P.p..CCba..n.........RNbak...r","move":"b10a8","from":"b10","to":"a8","flipped":["c7"],"legal":59,"losing":1,"winning":0},{"side":"black","before":".nB.KABNr...RA...p...........P.P.P..P......C.C........p.P.p.P.pN.CCba..n.........R.bak...r","move":"d10e9","from":"d10","to":"e9","flipped":["d8"],"legal":18,"losing":18,"winning":0},{"side":"red","before":".nB.KABNr...RA...p...........P.P.P..P......C.C........p.P.p.P.pN.Ccba..n....a....R.b.k...r","move":"a8c9","from":"a8","to":"c9","flipped":[],"legal":55,"losing":1,"winning":1,"after":".nB.KABNr...RA...p...........P.P.P..P......C.C........p.P.p.P.p..Ccba..n..N.a....R.b.k...r"}]},{"tag":"g52","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"f10e9","from":"f10","to":"e9","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c.....a....rnbak.bnr","move":"f1e2","from":"f1","to":"e2","flipped":[],"legal":42,"losing":0,"winning":0},{"side":"black","before":"RNBAK.BNR....A.....C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c.....a....rnbak.bnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":43,"losing":0,"winning":0},{"side":"red","before":"RnBAK.BNR....A.....C.....C.P.P.P.P.P.c................p.p.p.p.p.......c.....a....rnbak.bnr","move":"h3h6","from":"h3","to":"h6","flipped":["h10"],"legal":38,"losing":3,"winning":0},{"side":"black","before":"RnBAK.BNR....A.....C.......P.P.P.P.P.c..............C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"b5i5","from":"b5","to":"i5","flipped":["i1"],"legal":44,"losing":4,"winning":0},{"side":"red","before":"RnBAK.BNr....A.....C.......P.P.P.P.P........c.......C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"b3h3","from":"b3","to":"h3","flipped":["h8"],"legal":46,"losing":3,"winning":0},{"side":"black","before":"RnBAK.BNr....A...........C.P.P.P.P.P........c.......C.p.p.p.p.p.......C.....a....rnbak.bNr","move":"i5h5","from":"i5","to":"h5","flipped":["h8","h1"],"legal":32,"losing":27,"winning":0},{"side":"red","before":"RnBAK.Bnr....A...........C.P.P.P.P.P.......c........C.p.p.p.p.p.......c.....a....rnbak.bNr","move":"h6i6","from":"h6","to":"i6","flipped":["i10","i1"],"legal":36,"losing":4,"winning":0},{"side":"black","before":"RnBAK.BnR....A...........C.P.P.P.P.P.......c.........Cp.p.p.p.p.......c.....a....rnbak.bNR","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":42,"losing":4,"winning":0},{"side":"red","before":"R.BAK.BnR....A....n......C.P.p.P.P.P.......c.........Cp.p.p.p.p.......c.....a....rnbak.bNR","move":"i6a6","from":"i6","to":"a6","flipped":["a10","a3"],"legal":37,"losing":34,"winning":0},{"side":"black","before":"R.BAK.BnR....A....N......C.P.p.P.P.P.......c.C........p.p.p.p.p.......c.....a....Rnbak.bNR","move":"h8h6","from":"h8","to":"h6","flipped":["h3"],"legal":41,"losing":4,"winning":0},{"side":"red","before":"R.BAK.BnR....A....N......c.P.p.P.P.P.......c.C......c.p.p.p.p.p.............a....Rnbak.bNR","move":"i1i3","from":"i1","to":"i3","flipped":["h3"],"legal":30,"losing":27,"winning":0},{"side":"black","before":"R.BAK.Bn.....A....N......CRP.p.P.P.P.......c.C......c.p.p.p.p.p.............a....Rnbak.bNR","move":"h6h9","from":"h6","to":"h9","flipped":["h3"],"legal":37,"losing":4,"winning":0},{"side":"red","before":"R.BAK.Bn.....A....N......cRP.p.P.P.P.......c.C........p.p.p.p.p.............a..c.Rnbak.bNR","move":"a6h6","from":"a6","to":"h6","flipped":["h3"],"legal":29,"losing":26,"winning":0},{"side":"black","before":"R.BAK.Bn.....A....N......CRP.p.P.P.P.......c........C.p.p.p.p.p.............a..c.Rnbak.bNR","move":"h5a5","from":"h5","to":"a5","flipped":["a10","a3"],"legal":32,"losing":3,"winning":0},{"side":"red","before":"R.BAK.Bn.....A....n......CRP.p.P.P.Pc...............C.p.p.p.p.p.............a..c.rnbak.bNR","move":"h3b3","from":"h3","to":"b3","flipped":[],"legal":36,"losing":34,"winning":0},{"side":"black","before":"R.BAK.Bn.....A....nC......RP.p.P.P.Pc...............C.p.p.p.p.p.............a..c.rnbak.bNR","move":"a5i5","from":"a5","to":"i5","flipped":["i10","i3"],"legal":35,"losing":4,"winning":0},{"side":"red","before":"R.BAK.Bn.....A....nC......rP.p.P.P.P........c.......C.p.p.p.p.p.............a..c.rnbak.bNr","move":"h6h3","from":"h6","to":"h3","flipped":["a3"],"legal":39,"losing":18,"winning":0},{"side":"black","before":"R.BAK.Bn.....A....NC.....CrP.p.P.P.P........c.........p.p.p.p.p.............a..c.rnbak.bNr","move":"c4c3","from":"c4","to":"c3","flipped":["b3"],"legal":41,"losing":0,"winning":0},{"side":"red","before":"R.BAK.Bn.....A....Ncp....CrP...P.P.P........c.........p.p.p.p.p.............a..c.rnbak.bNr","move":"h3g3","from":"h3","to":"g3","flipped":["g7","b3"],"legal":22,"losing":5,"winning":0},{"side":"black","before":"R.BAK.Bn.....A....NCp...C.rP...P.P.P........c.........p.p.p.P.p.............a..c.rnbak.bNr","move":"i3h3","from":"i3","to":"h3","flipped":["g3"],"legal":41,"losing":0,"winning":0},{"side":"red","before":"R.BAK.Bn.....A....NCp...cr.P...P.P.P........c.........p.p.p.P.p.............a..c.rnbak.bNr","move":"c1e3","from":"c1","to":"e3","flipped":[],"legal":24,"losing":21,"winning":0},{"side":"black","before":"R..AK.Bn.....A....NCp.B.cr.P...P.P.P........c.........p.p.p.P.p.............a..c.rnbak.bNr","move":"h1i3","from":"h1","to":"i3","flipped":[],"legal":46,"losing":0,"winning":0},{"side":"red","before":"R..AK.B......A....NCp.B.crnP...P.P.P........c.........p.p.p.P.p.............a..c.rnbak.bNr","move":"b3b7","from":"b3","to":"b7","flipped":["e7"],"legal":25,"losing":3,"winning":0},{"side":"black","before":"R..AK.B......A....N.p.B.crnP...P.P.P........c.........pCp.P.P.p.............a..c.rnbak.bNr","move":"h3h2","from":"h3","to":"h2","flipped":["e2"],"legal":46,"losing":0,"winning":0},{"side":"red","before":"R..AK.B......a..r.N.p.B.c.nP...P.P.P........c.........pCp.P.P.p.............a..c.rnbak.bNr","move":"b7b2","from":"b7","to":"b2","flipped":["h2"],"legal":27,"losing":27,"winning":0},{"side":"black","before":"R..AK.B...C..a..R.N.p.B.c.nP...P.P.P........c.........p.p.P.P.p.............a..c.rnbak.bNr","move":"i3g2","from":"i3","to":"g2","flipped":[],"legal":45,"losing":1,"winning":1,"after":"R..AK.B...C..a.nR.N.p.B.c..P...P.P.P........c.........p.p.P.P.p.............a..c.rnbak.bNr"}]},{"tag":"g53","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7"],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C..C....P.P.P.P.P.......c..........p.p.P.p.p.c................rnbakabnr","move":"b8b4","from":"b8","to":"b4","flipped":["b1","e4"],"legal":49,"losing":1,"winning":0},{"side":"red","before":"RnBAKABnR..........C..C....PcP.p.P.P.......c..........p.p.P.p.p..................rnbakabnr","move":"b3d3","from":"b3","to":"d3","flipped":[],"legal":27,"losing":7,"winning":0},{"side":"black","before":"RnBAKABnR............CC....PcP.p.P.P.......c..........p.p.P.p.p..................rnbakabnr","move":"i10i9","from":"i10","to":"i9","flipped":[],"legal":47,"losing":3,"winning":0},{"side":"red","before":"RnBAKABnR............CC....PcP.p.P.P.......c..........p.p.P.p.p.................rrnbakabn.","move":"e7e8","from":"e7","to":"e8","flipped":[],"legal":31,"losing":5,"winning":0},{"side":"black","before":"RnBAKABnR............CC....PcP.p.P.P.......c..........p.p...p.p....P............rrnbakabn.","move":"a10a8","from":"a10","to":"a8","flipped":["e8"],"legal":53,"losing":47,"winning":0},{"side":"red","before":"RnBAKABnR............CC....PcP.p.P.P.......c..........p.p...p.pr...p............r.nbakabn.","move":"i1i2","from":"i1","to":"i2","flipped":[],"legal":28,"losing":5,"winning":0},{"side":"black","before":"RnBAKABn.........R...CC....PcP.p.P.P.......c..........p.p...p.pr...p............r.nbakabn.","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":55,"losing":2,"winning":0},{"side":"red","before":"R.BAKABn.........Rn..CC....Pcp.p.P.P.......c..........p.p...p.pr...p............r.nbakabn.","move":"a1a2","from":"a1","to":"a2","flipped":["a3"],"legal":33,"losing":27,"winning":0},{"side":"black","before":"..BAKABn.R.......RN..CC....Pcp.p.P.P.......c..........p.p...p.pr...p............r.nbakabn.","move":"h5a5","from":"h5","to":"a5","flipped":["a3"],"legal":56,"losing":2,"winning":0},{"side":"red","before":"..BAKABn.R.......Rn..CC....Pcp.p.P.Pc.................p.p...p.pr...p............r.nbakabn.","move":"a2c2","from":"a2","to":"c2","flipped":["c4"],"legal":37,"losing":30,"winning":0},{"side":"black","before":"..BAKABn...R.....Rn..CC....PcP.p.P.Pc.................p.p...p.pr...p............r.nbakabn.","move":"h1g3","from":"h1","to":"g3","flipped":["f1","i4","i2"],"legal":49,"losing":2,"winning":0},{"side":"red","before":"..BAKaB....R.....rn..CC.n..PcP.p.P.pc.................p.p...p.pr...p............r.nbakabn.","move":"c2a2","from":"c2","to":"a2","flipped":["a3","i2"],"legal":24,"losing":21,"winning":0},{"side":"black","before":"..BAKaB..R.......RN..CC.n..PcP.p.P.pc.................p.p...p.pr...p............r.nbakabn.","move":"f1e2","from":"f1","to":"e2","flipped":["d3","d1"],"legal":51,"losing":2,"winning":0},{"side":"red","before":"..BaK.B..R...a...RN..cC.n..PcP.p.P.pc.................p.p...p.pr...p............r.nbakabn.","move":"a3c2","from":"a3","to":"c2","flipped":["b4"],"legal":15,"losing":2,"winning":0},{"side":"black","before":"..BaK.B..R.N.a...R...cC.n..PCP.p.P.pc.................p.p...p.pr...p............r.nbakabn.","move":"d3d2","from":"d3","to":"d2","flipped":["i2","a2"],"legal":54,"losing":2,"winning":0},{"side":"red","before":"..BaK.B..r.Nca...r....C.n..PCP.p.P.pc.................p.p...p.pr...p............r.nbakabn.","move":"b4b6","from":"b4","to":"b6","flipped":[],"legal":21,"losing":2,"winning":0},{"side":"black","before":"..BaK.B..r.Nca...r....C.n..P.P.p.P.pc.........C.......p.p...p.pr...p............r.nbakabn.","move":"a2b2","from":"a2","to":"b2","flipped":["b6","c2"],"legal":60,"losing":52,"winning":0},{"side":"red","before":"..BaK.B...rnca...r....C.n..P.P.p.P.pc.........c.......p.p...p.pr...p............r.nbakabn.","move":"e3a3","from":"e3","to":"a3","flipped":["a5"],"legal":9,"losing":2,"winning":0},{"side":"black","before":"..BaK.B...rnca...rC.....n..P.P.p.P.pC.........c.......p.p...p.pr...p............r.nbakabn.","move":"b2b5","from":"b2","to":"b5","flipped":["a5"],"legal":70,"losing":62,"winning":0},{"side":"red","before":"..BaK.B....nca...rC.....n..P.P.p.P.pcr........c.......p.p...p.pr...p............r.nbakabn.","move":"a3e3","from":"a3","to":"e3","flipped":["e8"],"legal":12,"losing":3,"winning":0},{"side":"black","before":"..BaK.B....nca...r....C.n..P.P.p.P.pcr........c.......p.p...p.pr...P............r.nbakabn.","move":"b5e5","from":"b5","to":"e5","flipped":["e8"],"legal":74,"losing":65,"winning":0},{"side":"red","before":"..BaK.B....nca...r....C.n..P.P.p.P.pc...r.....c.......p.p...p.pr...p............r.nbakabn.","move":"e3b3","from":"e3","to":"b3","flipped":["b10"],"legal":10,"losing":3,"winning":0},{"side":"black","before":"..BaK.B....nca...r.C....n..P.P.p.P.pc...r.....c.......p.p...p.pr...p............r.Nbakabn.","move":"e5b5","from":"e5","to":"b5","flipped":["b3"],"legal":78,"losing":1,"winning":0},{"side":"red","before":"..BaK.B....nca...r.c....n..P.P.p.P.pcr........c.......p.p...p.pr...p............r.Nbakabn.","move":"b10c8","from":"b10","to":"c8","flipped":["d10","a7"],"legal":7,"losing":7,"winning":0},{"side":"black","before":"..BaK.B....nca...r.c....n..P.P.p.P.pcr........c.......P.p...p.pr.N.p............r..bAkabn.","move":"b3e3","from":"b3","to":"e3","flipped":[],"legal":77,"losing":0,"winning":1,"after":"..BaK.B....nca...r....c.n..P.P.p.P.pcr........c.......P.p...p.pr.N.p............r..bAkabn."}]},{"tag":"g54","result":"black","reason":"general-flipped","firstMover":"black","plies":[{"side":"black","before":"RNBAKABNR..........C.....C.P.P.P.P.P..................p.p.p.p.p.c.....c..........rnbakabnr","move":"h8h5","from":"h8","to":"h5","flipped":["h1"],"legal":42,"losing":0,"winning":0},{"side":"red","before":"RNBAKABnR..........C.....C.P.P.P.P.P.......c..........p.p.p.p.p.c................rnbakabnr","move":"e4e5","from":"e4","to":"e5","flipped":[],"legal":37,"losing":29,"winning":0},{"side":"black","before":"RNBAKABnR..........C.....C.P.P...P.P....P..c..........p.p.p.p.p.c................rnbakabnr","move":"b8b5","from":"b8","to":"b5","flipped":["b1"],"legal":43,"losing":0,"winning":0},{"side":"red","before":"RnBAKABnR..........C.....C.P.P...P.P.c..P..c..........p.p.p.p.p..................rnbakabnr","move":"i4i5","from":"i4","to":"i5","flipped":[],"legal":32,"losing":1,"winning":0},{"side":"black","before":"RnBAKABnR..........C.....C.P.P...P...c..P..cP.........p.p.p.p.p..................rnbakabnr","move":"b5a5","from":"b5","to":"a5","flipped":["a1"],"legal":39,"losing":0,"winning":0},{"side":"red","before":"rnBAKABnR..........C.....C.P.P...P..c...P..cP.........p.p.p.p.p..................rnbakabnr","move":"b3a3","from":"b3","to":"a3","flipped":["a5"],"legal":35,"losing":1,"winning":0},{"side":"black","before":"rnBAKABnR.........C......C.P.P...P..C...P..cP.........p.p.p.p.p..................rnbakabnr","move":"a7a6","from":"a7","to":"a6","flipped":["a5"],"legal":31,"losing":0,"winning":0},{"side":"red","before":"rnBAKABnR.........C......C.P.P...P..c...P..cPp..........p.p.p.p..................rnbakabnr","move":"a3f3","from":"a3","to":"f3","flipped":[],"legal":29,"losing":1,"winning":0},{"side":"black","before":"rnBAKABnR..............C.C.P.P...P..c...P..cPp..........p.p.p.p..................rnbakabnr","move":"b1a3","from":"b1","to":"a3","flipped":["c4"],"legal":36,"losing":0,"winning":0},{"side":"red","before":"r.BAKABnR.........n....C.C.P.p...P..c...P..cPp..........p.p.p.p..................rnbakabnr","move":"f3b3","from":"f3","to":"b3","flipped":[],"legal":28,"losing":25,"winning":0},{"side":"black","before":"r.BAKABnR.........nC.....C.P.p...P..c...P..cPp..........p.p.p.p..................rnbakabnr","move":"c4b4","from":"c4","to":"b4","flipped":["b3","a4"],"legal":38,"losing":0,"winning":0},{"side":"red","before":"r.BAKABnR.........nc.....C.pp....P..c...P..cPp..........p.p.p.p..................rnbakabnr","move":"h3e3","from":"h3","to":"e3","flipped":["e7","a3"],"legal":20,"losing":4,"winning":0},{"side":"black","before":"r.BAKABnR.........Nc..C....pp....P..c...P..cPp..........p.P.p.p..................rnbakabnr","move":"h10g8","from":"h10","to":"g8","flipped":["e7"],"legal":40,"losing":1,"winning":0},{"side":"red","before":"r.BAKABnR.........Nc..C....pp....P..c...P..cPp..........p.p.p.p......n...........rnbakab.r","move":"e3h3","from":"e3","to":"h3","flipped":[],"legal":19,"losing":4,"winning":0},{"side":"black","before":"r.BAKABnR.........Nc.....C.pp....P..c...P..cPp..........p.p.p.p......n...........rnbakab.r","move":"e7e6","from":"e7","to":"e6","flipped":["e5"],"legal":45,"losing":0,"winning":0},{"side":"red","before":"r.BAKABnR.........Nc.....C.pp....P..c...p..cPp...p......p...p.p......n...........rnbakab.r","move":"a3b1","from":"a3","to":"b1","flipped":[],"legal":20,"losing":4,"winning":0},{"side":"black","before":"rNBAKABnR..........c.....C.pp....P..c...p..cPp...p......p...p.p......n...........rnbakab.r","move":"e5e4","from":"e5","to":"e4","flipped":[],"legal":49,"losing":2,"winning":0},{"side":"red","before":"rNBAKABnR..........c.....C.pp..p.P..c......cPp...p......p...p.p......n...........rnbakab.r","move":"g1e3","from":"g1","to":"e3","flipped":[],"legal":22,"losing":19,"winning":0},{"side":"black","before":"rNBAKA.nR..........c..B..C.pp..p.P..c......cPp...p......p...p.p......n...........rnbakab.r","move":"h1f2","from":"h1","to":"f2","flipped":["g4","h3","d1"],"legal":54,"losing":0,"winning":0},{"side":"red","before":"rNBaKA..R.....n....c..B..c.pp..p.p..c......cPp...p......p...p.p......n...........rnbakab.r","move":"f1e2","from":"f1","to":"e2","flipped":["d1"],"legal":13,"losing":12,"winning":0},{"side":"black","before":"rNBAK...R....An....c..B..c.pp..p.p..c......cPp...p......p...p.p......n...........rnbakab.r","move":"a1a2","from":"a1","to":"a2","flipped":["e2"],"legal":61,"losing":0,"winning":0},{"side":"red","before":".NBAK...Rr...an....c..B..c.pp..p.p..c......cPp...p......p...p.p......n...........rnbakab.r","move":"i1i3","from":"i1","to":"i3","flipped":["h3"],"legal":13,"losing":5,"winning":0},{"side":"black","before":".NBAK....r...an....c..B..CRpp..p.p..c......cPp...p......p...p.p......n...........rnbakab.r","move":"g4g3","from":"g4","to":"g3","flipped":["h3"],"legal":61,"losing":0,"winning":0},{"side":"red","before":".NBAK....r...an....c..B.pcRpp..p....c......cPp...p......p...p.p......n...........rnbakab.r","move":"i3i4","from":"i3","to":"i4","flipped":["e4"],"legal":10,"losing":3,"winning":0},{"side":"black","before":".NBAK....r...an....c..B.pc.pp..P...Rc......cPp...p......p...p.p......n...........rnbakab.r","move":"e2f1","from":"e2","to":"f1","flipped":[],"legal":63,"losing":0,"winning":0},{"side":"red","before":".NBAKa...r....n....c..B.pc.pp..P...Rc......cPp...p......p...p.p......n...........rnbakab.r","move":"i4f4","from":"i4","to":"f4","flipped":["f10","f2"],"legal":15,"losing":15,"winning":0},{"side":"black","before":".NBAKa...r....N....c..B.pc.pp..PR...c......cPp...p......p...p.p......n...........rnbakAb.r","move":"a2e2","from":"a2","to":"e2","flipped":[],"legal":59,"losing":1,"winning":2,"after":".NBAKa.......rN....c..B.pc.pp..PR...c......cPp...p......p...p.p......n...........rnbakAb.r"}]}]}</script>
</div>

<p>对局结束不是因为有人出错。结束是因为一方已经没有不输的着法可走，而这类着法的数量会在棋盘上出现任何可见变化之前攀升二十着。</p>

<h2 id="用蛋糕规则把它变公平">用蛋糕规则把它变公平</h2>

<p>那 42 个开局之间的分布差异正是这件事可以挽救的原因，而解决办法在别的游戏里已经存在。</p>

<p>蛋糕规则的运作方式就像两个小孩分蛋糕：一个人切，另一个人先挑。红方走出第一着。黑方随后选择继续执黑，还是干脆接手红方的局面。这一个选项改变了红方的优化目标，因为当黑方可以直接拿走最强开局时，走出最强开局就变得毫无意义。</p>

<p>于是红方被推向最接近均势的那一着，42 个里有四个落在那里。其中两个是炮放弃自己最好的那个落点，另外两个是棋盘上最平静的出子着法。</p>

<!-- Generated by scripts/gen-benedict-diagrams.mts. Do not hand-edit. -->
<div class="xq-quad">
  <figure class="xq-quad-cell">
    <div class="xq-quad-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 131 292 216" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle"></text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-b3-b4-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="49" y1="263" x2="49" y2="242" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-b3-b4-0)" /></g></svg></div>
    <figcaption><b>b3b4</b> <span class="xq-quad-score">45.8%</span><br />炮向前一步，远未到能造成杀伤的第五路。</figcaption>
  </figure>
  <figure class="xq-quad-cell">
    <div class="xq-quad-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 131 292 216" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle"></text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-b3-b7-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="49" y1="263" x2="49" y2="149" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-b3-b7-0)" /></g></svg></div>
    <figcaption><b>b3b7</b> <span class="xq-quad-score">50.0%</span><br />炮一路推到底，此刻兑子，放弃了原有的持续威胁。</figcaption>
  </figure>
  <figure class="xq-quad-cell">
    <div class="xq-quad-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 131 292 216" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle"></text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-d1-e2-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="111" y1="325" x2="134.92893218813452" y2="301.0710678118655" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-d1-e2-0)" /></g></svg></div>
    <figcaption><b>d1e2</b> <span class="xq-quad-score">54.2%</span><br />仕出动，腾空d1。将帅同线从第一着起就已生效。</figcaption>
  </figure>
  <figure class="xq-quad-cell">
    <div class="xq-quad-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 131 292 216" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle"></text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text><svg x="4" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="97" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红帅"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑将"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-general.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红仕"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="159" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑士"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-advisor.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红相"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑象"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-elephant.png" x="-5" y="-5" width="110" height="110" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑马"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-horse.png" x="-7" y="-7" width="114" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="311" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="32" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑车"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-chariot.png" x="-5.5" y="-7" width="111" height="114" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="35" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="249" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红炮"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="221" y="94" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑砲"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-cannon.png" x="-11" y="-11" width="122" height="122" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="4" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="66" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="128" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="190" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="218" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="红兵"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#c30d0d" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/red-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><svg x="252" y="125" width="28" height="28" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-label="黑卒"><circle cx="50" cy="50" r="46" fill="#fef0d7" stroke="#202427" stroke-width="2.8" /><image href="/assets/posts/benedict-xiangqi-balance/pieces/black-soldier.png" x="0" y="0" width="100" height="100" preserveAspectRatio="xMidYMid meet" /></svg><defs><marker id="xq-arrow-e4-e5-0" markerWidth="4" markerHeight="4" refX="2.05" refY="2" orient="auto" overflow="visible" markerUnits="strokeWidth"><path d="M0,0 V4 L3,2 Z" fill="#15781B" /></marker></defs><line x1="142" y1="232" x2="142" y2="211" stroke="#15781B" stroke-width="5.25" stroke-linecap="round" opacity="0.38" marker-end="url(#xq-arrow-e4-e5-0)" /></g></svg></div>
    <figcaption><b>e4e5</b> <span class="xq-quad-score">54.2%</span><br />中兵：唯一一步不算失误的安静开动着法。</figcaption>
  </figure>
</div>

<p>被迫走上其中之一，对局结果就落在 50% 附近。这不是把优势压小，而是取消了红方使用它的能力，这比听起来更干净。Hex 在任何棋盘尺寸下都可证明是先行方必胜，却在全世界作为竞技项目进行，完全靠的就是交换权。</p>

<p>诚实的保留意见在于样本。那四个数字各来自 24 局，宽到我不会拿它们互相排名，也窄到足以说 0% 到 83% 的差距是真实的。用足够的样本确认其中之一确实稳定在 50% 附近，是尚未完成的工作。</p>

<p>蛋糕规则修好了公平性，却不触及锋利度。输着占比是规则本身的属性，不取决于谁领先，所以它完全不变。它让对抗变得均衡，但没有让它变得平和，而那是不是人们愿意玩的游戏，是另一个问题，我无法从胜率里回答。</p>

<h2 id="目前的状态">目前的状态</h2>

<p>作为竞技游戏还不能发布。先行方四局赢三局，没有任何等级分阶梯能撑得住。</p>

<p>这一点值得和一个听起来相似的说法区分开。不公平不等于不能玩：losing chess 是<em>已被证明</em>的先行方必胜，却每天都有人在竞技对局，因为那个证明花了五年、八台机器，而且走的是没有人类能找到的变例。Hex 在任何棋盘尺寸下都是已被证明的先行方必胜，也靠交换权照样在下。先手优势本身不会杀死一个游戏。</p>

<p>这里不同的地方在于深度。这 78% 建立在一步可以用一句话说清的着法上，把炮提到第五横线，而且引擎每一次都能找到它。一个被证明但无法企及的胜利只是奇谈。一个可以背下来的胜利就是这个游戏本身。</p>

<p>除蛋糕规则之外还有两种未经测试的修补。给将/帅（黑/红）做标记而不是直接转化它，让防守方有一步应招的机会，这会直接钝化炮的威胁，而把攻击方的棋子转化过来本来就是一种合法的应招。或者调整起始阵形里中路卒/兵的位置，因为这个威胁之所以存在，只是因为黑方的卒正好站在炮需要炮架的地方。</p>

<p>无论如何都能留下来的是这个设计。把转化规则放到象棋棋盘上，得到的是一个没有残局的游戏，炮永远不会变弱，防守棋子一文不值，被转化的士/仕永远滞留在敌方阵后。这一点贯穿了测量的每一个版本，因为规则是我用四种独立方式验证过的那一部分。</p>

<p>下一步是那条单一先手节奏规则：内核里二十行代码，再把已有的测试框架重跑一遍。</p>

<p><strong>尚未解决的问题是红方是否有必胜。</strong>上面的一切都是胜率，那是关于两个特定引擎的陈述。底下的问题是，在双方最佳着法下这个游戏是否是先行方必胜，而这个问题的答案不依赖任何一方下得多好。</p>

<p>我手上有的是一个下界：13 着之内没有必胜，用 208 亿节点和大约半小时证明。这排除了廉价的胜法，而一个中位长度为 29 着的游戏，被它探索的部分刚刚过半。</p>

<p>有两件事让这件事比看上去更难，还有一件让它变容易。子力守恒，所以状态空间永不缩小，这意味着没有残局数据库可以建，也没有东西能让正向搜索在中途会合。逆向分析，也就是每一个已解决的国际象棋残局背后的技术，在原理上就不可用，而不只是昂贵。策略窃取，也就是通常从对称起点得到超弱解的办法，同样不适用：棋子是移动而不是累积，所以先行方不能随便走一着然后再把它丢掉。有帮助的是对局很短。中位数是 29 着，而 54 局引擎对局和 6,000 局随机走子中都没有和棋，所以这棵树很浅、终局很锋利，正是证明数搜索擅长的形状。</p>

<p>下一级是 14，而杠杆不在于更多硬件。上面那个证明可以按红方的 42 个首着拆分，几乎完美并行，恰恰因为答案是「没有」：既然没有必胜，任何一个分支都不会剪掉另一个，所以同时搜索它们不会有任何损失。这在一台笔记本上做到了 13。往下拆两着可以得到大约 1,700 个独立任务，那是需要集群的形状；而证明数搜索，也就是把力气花在证明树最窄处而不是均匀搜深，根本还没实现。最后这一条不是假想：losing chess 就是这样被解决的。Mark Watkins 在八台十六核机器上跑了五年多的证明数搜索，证明 1.e3 白方取胜，这既是这里需要的技术，也是一个关于完成这项工作代价的公平警告。</p>

<p>如果有人拿出弱解，甚至用我没想到的论证给出一个超弱解，那么蛋糕规则的问题也一并解决了，因为已被证明的先行方必胜正是交换权被发明出来所针对的情形。Hex 在任何棋盘尺寸下都是已被证明的先行方必胜，照样作为竞技项目在下。</p>

<div class="cta-row">
  <a class="cta cta-primary" href="https://github.com/brianhliou/benedict-xiangqi">核对这些数字</a>
  <a class="cta cta-secondary" href="https://mistboard.com/?utm_source=brianhliou&amp;utm_medium=referral&amp;utm_campaign=benedict-xiangqi-2026-09">试玩已完成的变体</a>
</div>

<style>
/* The inlined SVG colour rules come from Mistboard's articles.css, which paints
   diagram titles and outside text with --site-heading / --site-text. Those are
   Mistboard's token names and do not exist here, so without this mapping every
   board title fell back to its hardcoded dark brown and vanished on the dark
   page. Map them onto this site's tokens once, for the whole post. */
.post-content {
  --site-text: var(--text-2);
  --site-heading: var(--text);
}

/* Board frames are rendered by Mistboard's own article diagram primitives
   (xqBoardSvg / xqVisionDemoState) and written out by
   scripts/gen-benedict-diagrams.mts in the Mistboard repo, with the
   .xq-diagram-* colour rules lifted out of articles.css at build time and
   inlined into each SVG. Mistboard is the reference for this art. Do not
   hand-edit the SVGs here; re-run the generator. */
.xq-stepper {
  margin: 2.5rem 0 2.75rem;
}

.xq-step {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.xq-step-board {
  width: 100%;
  max-width: 340px;
}

/* Mistboard's stylesheet sizes .xq-article-svg; off-site the frames carry their
   own sizing so the inline SVG does not collapse. */
.xq-step-board .xq-article-svg {
  display: block;
  width: 100%;
  height: auto;
}

/* The theme sets display on figure, which beats the hidden attribute. */
.xq-step[hidden] {
  display: none !important;
}

.xq-step figcaption {
  margin: 12px auto 0;
  max-width: 600px;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--text-2);
  text-align: center;
  min-height: 3em;
}

.xq-step-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 10px;
}

.xq-step-nav button {
  font: inherit;
  font-size: 1rem;
  line-height: 1;
  padding: 6px 14px;
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--text-2);
  border-radius: 3px;
  cursor: pointer;
}

.xq-step-nav button:hover:not(:disabled) {
  background: var(--surface-2);
}

.xq-step-nav button:disabled {
  opacity: 0.35;
  cursor: default;
}

.xq-step-count {
  font-variant-numeric: tabular-nums;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  color: var(--text-3);
  min-width: 3.5em;
  text-align: center;
}

.xq-browser {
  margin: 2.5rem 0 2.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.xq-browser-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 0.85rem;
  color: var(--text-2);
}

.xq-browser-head select {
  font: inherit;
  padding: 3px 6px;
  border: 1px solid var(--line-strong);
  border-radius: 3px;
  background: var(--surface);
  color: var(--text);
}

.xq-browser-meta {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-3);
}

.xq-browser-board {
  width: 100%;
  max-width: 460px;
}

.xq-browser-board .xq-article-svg {
  display: block;
  width: 100%;
  height: auto;
}

.xq-browser-nav {
  display: flex;
  align-items: center;
  gap: 10px;
}

.xq-browser-nav button {
  font: inherit;
  font-size: 0.95rem;
  line-height: 1;
  padding: 6px 12px;
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--text-2);
  border-radius: 3px;
  cursor: pointer;
}

.xq-browser-nav button:hover { background: var(--surface-2); }

.xq-browser-ply {
  font-variant-numeric: tabular-nums;
  font-size: 0.8rem;
  color: var(--text-3);
  min-width: 4.5em;
  text-align: center;
}

.xq-play {
  margin: 2.5rem 0 2.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.xq-play-board {
  width: 100%;
  max-width: 460px;
}

.xq-play-board .xq-article-svg {
  display: block;
  width: 100%;
  height: auto;
  touch-action: manipulation;
}

.xq-play-board svg { cursor: pointer; }
.xq-play-board [data-sq] { cursor: grab; }
.xq-play-dragging { cursor: grabbing; pointer-events: none; filter: drop-shadow(0 3px 5px rgba(0,0,0,0.35)); }
/* The note element is gone from the play widget; keep the turn line breathing. */
.xq-play-turn { min-height: 1.2em; }

.xq-play-turn {
  margin: 0;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-3);
}

.xq-play-nav {
  display: flex;
  gap: 10px;
}

.xq-play-nav button {
  font: inherit;
  font-size: 0.9rem;
  line-height: 1;
  padding: 7px 14px;
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--text-2);
  border-radius: 3px;
  cursor: pointer;
}

.xq-play-nav button:hover:not(:disabled) { background: var(--surface-2); }
.xq-play-nav button:disabled { opacity: 0.35; cursor: default; }

.xq-play-note {
  margin: 0;
  max-width: 520px;
  font-size: 0.87rem;
  line-height: 1.5;
  color: var(--text-2);
  text-align: center;
  min-height: 2.6em;
}

.xq-quad {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 26px;
  margin: 2.5rem auto 2.75rem;
  max-width: 620px;
}

@media (max-width: 560px) {
  .xq-quad { grid-template-columns: minmax(0, 1fr); }
}

.xq-quad-cell {
  margin: 0;
}

.xq-quad-board .xq-article-svg {
  display: block;
  width: 100%;
  height: auto;
}

.xq-quad-cell figcaption {
  margin-top: 8px;
  font-size: 0.85rem;
  line-height: 1.45;
  color: var(--text-2);
}

.xq-quad-score {
  color: var(--text-3);
  font-variant-numeric: tabular-nums;
}

.xq-caption {
  margin: 4px auto 0;
  max-width: 620px;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--text-3);
  text-align: center;
}
</style>

<script>
// Playable board. No engine and no opponent: both sides are the reader's, and
// the point is to feel a conversion rather than to play a game. The rules come
// from the bundled kernel, the same one the static frames are checked against,
// so this cannot enforce something the article does not describe.
//
// Marks follow Mistboard's own grammar for INTERSECTION boards (board-lastmove.ts):
// an origin wash stopping at the piece radius, and a destination halo in the
// board between the piece and the cell edge. Not the cell tint, which is for
// cell-centre boards like banqi and would trace the grid lines here.
document.querySelectorAll('.xq-play').forEach((root) => {
  const K = window.BenedictXQ;
  if (!K) return;
  const data = JSON.parse(root.querySelector('.xq-play-data').textContent);
  const svg = root.querySelector('.xq-play-board svg');
  const pieces = root.querySelector('.xq-play-pieces');
  const marks = root.querySelector('.xq-play-dots');
  const turnEl = root.querySelector('.xq-play-turn');
  const undoBtn = root.querySelector('[data-play="undo"]');
  const resetBtn = root.querySelector('[data-play="reset"]');
  const NAME = { red: 'Red', black: 'Black' };
  const S = data.size, R = S / 2;

  let history = [K.createInitialBenedictXiangqiState('play')];
  let from = null;      // selected square
  let drag = null;      // { sq, el, dx, dy } while a piece is under the pointer
  const state = () => history[history.length - 1];

  const centre = (sq) => ({ x: data.points[sq].x + R, y: data.points[sq].y + R });
  const crossed = (piece, sq) => piece.role === 'soldier'
    && (piece.color === 'red' ? Number(sq.slice(1)) >= 6 : Number(sq.slice(1)) <= 5) ? '-crossed' : '';

  // Pointer position in the board's own coordinate space, so the drag tracks
  // correctly whatever width the SVG is rendered at.
  function boardPoint(ev) {
    const r = svg.getBoundingClientRect();
    const vb = svg.viewBox.baseVal;
    return {
      x: (ev.clientX - r.left) / r.width * vb.width + vb.x - 4,
      y: (ev.clientY - r.top) / r.height * vb.height + vb.y - 4,
    };
  }

  function squareAt(pt) {
    let best = null, bestD = Infinity;
    for (const [sq, p] of Object.entries(data.points)) {
      const d = (p.x + R - pt.x) ** 2 + (p.y + R - pt.y) ** 2;
      if (d < bestD) { bestD = d; best = sq; }
    }
    return bestD <= (S * 0.75) ** 2 ? best : null;
  }

  function draw() {
    const st = state();
    const flipped = new Set(st.lastFlipped || []);
    const last = st.lastMove;

    const under = [];
    if (last) {
      const o = centre(last.from), t = centre(last.to);
      // Origin stops at the piece radius; the halo uses the board outside it.
      under.push(`<circle cx="${o.x}" cy="${o.y}" r="${R}" fill="rgba(250,204,21,0.22)" stroke="rgba(180,83,9,0.55)" stroke-width="2"/>`);
      under.push(`<circle cx="${t.x}" cy="${t.y}" r="${R * 1.1}" fill="none" stroke="#d6af4e" stroke-width="4"/>`);
    }
    if (from) {
      for (const to of K.benedictXiangqiMovesFrom(st.board, from)) {
        const c = centre(to);
        under.push(`<circle cx="${c.x}" cy="${c.y}" r="6.5" fill="#15781B" opacity="0.5"/>`);
      }
    }
    marks.innerHTML = under.join('');

    const parts = [];
    for (const [sq, piece] of Object.entries(st.board)) {
      if (drag && sq === drag.sq) continue;   // drawn on the drag layer instead
      const p = data.points[sq];
      parts.push(
        `<svg data-sq="${sq}" x="${p.x}" y="${p.y}" width="${S}" height="${S}" viewBox="0 0 100 100">` +
        `${data.sprites[`${piece.color}-${piece.role}${crossed(piece, sq)}`]}</svg>`);
      if (flipped.has(sq)) {
        parts.push(`<circle cx="${p.x + R}" cy="${p.y + R}" r="${R}" fill="none" stroke="#b07d1a" stroke-width="2" pointer-events="none"/>`);
      }
    }
    if (drag) {
      const piece = st.board[drag.sq];
      parts.push(
        `<svg class="xq-play-dragging" x="${drag.x}" y="${drag.y}" width="${S}" height="${S}" viewBox="0 0 100 100">` +
        `${data.sprites[`${piece.color}-${piece.role}${crossed(piece, drag.sq)}`]}</svg>`);
    }
    pieces.innerHTML = parts.join('');

    turnEl.textContent = st.status.type === 'finished'
      ? `${NAME[st.status.winner]} wins`
      : `${NAME[st.status.turn]} to move`;
    undoBtn.disabled = history.length < 2;
    resetBtn.disabled = history.length < 2;
  }

  function play(to) {
    const st = state();
    if (from && to && K.benedictXiangqiMovesFrom(st.board, from).includes(to)) {
      history.push(K.applyBenedictXiangqiMove(st, { from, to }));
      from = null;
      return true;
    }
    return false;
  }

  svg.addEventListener('pointerdown', (ev) => {
    const st = state();
    if (st.status.type !== 'playing') return;
    const sq = squareAt(boardPoint(ev));
    if (!sq) { from = null; draw(); return; }
    const piece = st.board[sq];
    // Clicking a legal destination while something is selected plays the move.
    if (from && K.benedictXiangqiMovesFrom(st.board, from).includes(sq)) { play(sq); draw(); return; }
    if (!piece || piece.color !== st.status.turn) { from = null; draw(); return; }
    from = sq;
    const p = data.points[sq];
    drag = { sq, x: p.x, y: p.y, grabX: boardPoint(ev).x - p.x, grabY: boardPoint(ev).y - p.y, moved: false };
    svg.setPointerCapture(ev.pointerId);
    draw();
  });

  svg.addEventListener('pointermove', (ev) => {
    if (!drag) return;
    const pt = boardPoint(ev);
    drag.x = pt.x - drag.grabX;
    drag.y = pt.y - drag.grabY;
    drag.moved = true;
    ev.preventDefault();
    draw();
  });

  svg.addEventListener('pointerup', (ev) => {
    if (!drag) return;
    const dropped = drag.moved ? squareAt(boardPoint(ev)) : null;
    const wasDragging = drag.moved;
    drag = null;
    // A drag that lands on a legal square plays; a plain click leaves the piece
    // selected so click-to-move still works for anyone not dragging.
    if (wasDragging && !play(dropped)) from = from;
    draw();
  });

  svg.addEventListener('pointercancel', () => { drag = null; draw(); });

  undoBtn.addEventListener('click', () => { if (history.length > 1) history.pop(); from = null; drag = null; draw(); });
  resetBtn.addEventListener('click', () => { history = history.slice(0, 1); from = null; drag = null; draw(); });
  draw();
});

// Game browser: one board, every recorded game. Both the coordinate table and
// the piece sprites come out of the same render the static frames came from, so
// the two boards cannot disagree about where a square is or what a piece on it
// looks like. Drawing bare PNGs here instead is what made this widget read as a
// different, cruder board than the diagrams above it.
document.querySelectorAll('.xq-browser').forEach((root) => {
  const data = JSON.parse(root.querySelector('.xq-browser-data').textContent);
  const layer = root.querySelector('.xq-browser-pieces');
  const pick = root.querySelector('.xq-browser-pick');
  const meta = root.querySelector('.xq-browser-meta');
  const plyLabel = root.querySelector('.xq-browser-ply');
  const ROLES = { K: 'general', A: 'advisor', B: 'elephant', N: 'horse', R: 'chariot', C: 'cannon', P: 'soldier' };
  const FILES = 'abcdefghi';
  let g = 0;
  let at = 0;

  data.games.forEach((game, i) => {
    const o = document.createElement('option');
    const who = game.result === 'red' ? 'Red' : 'Black';
    const upset = game.result !== game.firstMover;
    o.value = String(i);
    o.textContent = `${i + 1}. ${who} in ${game.plies.length}` +
      (game.firstMover === 'black' ? ', Black first' : '') + (upset ? '  (first mover lost)' : '');
    pick.appendChild(o);
  });

  const boardAt = (game, n) => n === 0
    ? game.plies[0].before
    : (game.plies[n - 1].after ?? game.plies[n]?.before ?? game.plies[game.plies.length - 1].after);

  function draw() {
    const game = data.games[g];
    const board = boardAt(game, at);
    const last = at > 0 ? game.plies[at - 1] : null;
    const flipped = new Set(last ? last.flipped : []);
    // The winning move is the one that bears on the enemy general, and the
    // rules stop there: the general is NOT converted, because generals never
    // change colour and the win resolves before any conversion applies. On the
    // final position only, show it turned anyway. It is how Troyka states the
    // win condition and how this post opens, and it is the clearest way to say
    // "this is where it ended" on a board where nothing ever leaves.
    const finished = at === game.plies.length;
    const won = finished ? game.result : null;
    const loserGeneral = finished
      ? Object.entries(data.points).find(([sq]) => {
          const i = FILES.indexOf(sq[0]) + (Number(sq.slice(1)) - 1) * 9;
          const ch = board[i];
          return ch && ch.toUpperCase() === 'K' && (ch === ch.toUpperCase() ? 'red' : 'black') !== won;
        })?.[0] ?? null
      : null;
    const parts = [];
    for (let i = 0; i < 90; i++) {
      const ch = board[i];
      if (ch === '.') continue;
      const square = FILES[i % 9] + (Math.floor(i / 9) + 1);
      const p = data.points[square];
      let colour = ch === ch.toUpperCase() ? 'red' : 'black';
      const role = ROLES[ch.toUpperCase()];
      if (square === loserGeneral) colour = won;
      // A soldier past the river is drawn differently, and the sprite sheet
      // carries both. Red crosses at rank 6, black at rank 5.
      const rank = Math.floor(i / 9) + 1;
      const crossed = role === 'soldier'
        && (colour === 'red' ? rank >= 6 : rank <= 5) ? '-crossed' : '';
      parts.push(`<svg x="${p.x}" y="${p.y}" width="${data.size}" height="${data.size}" viewBox="0 0 100 100">${data.sprites[`${colour}-${role}${crossed}`]}</svg>`);
      if (flipped.has(square) || square === loserGeneral) {
        parts.push(`<circle cx="${p.x + data.size / 2}" cy="${p.y + data.size / 2}" r="${data.size / 2}" fill="none" stroke="#b07d1a" stroke-width="2"/>`);
      }
    }
    layer.innerHTML = parts.join('');
    plyLabel.textContent = `${at} / ${game.plies.length}`;
    meta.textContent = `${game.firstMover === 'red' ? 'Red' : 'Black'} moved first`;
  }

  const step = (n) => {
    const len = data.games[g].plies.length;
    at = Math.max(0, Math.min(len, at + n));
    draw();
  };

  // Arrow keys walk the move list, the way a board viewer is expected to work.
  // Scoped to when the board is actually on screen, so the keys still scroll
  // the page everywhere else, and skipped while the game picker has focus.
  document.addEventListener('keydown', (e) => {
    if (e.key !== 'ArrowLeft' && e.key !== 'ArrowRight') return;
    if (e.metaKey || e.ctrlKey || e.altKey) return;
    const tag = e.target instanceof Element ? e.target.tagName : '';
    if (tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT') return;
    const box = root.getBoundingClientRect();
    if (box.bottom < 0 || box.top > window.innerHeight) return;
    e.preventDefault();
    step(e.key === 'ArrowRight' ? 1 : -1);
  });

  pick.addEventListener('change', () => { g = Number(pick.value); at = 0; draw(); });
  root.querySelectorAll('[data-step]').forEach((b) =>
    b.addEventListener('click', () => step(Number(b.dataset.step))));
  root.querySelectorAll('[data-jump]').forEach((b) => b.addEventListener('click', () => {
    at = b.dataset.jump === 'start' ? 0 : data.games[g].plies.length;
    draw();
  }));
  draw();
});

// Same interaction as Mistboard's raw-svg-stepper article block: prev/next over
// independently rendered frames, each with its own narrative.
document.querySelectorAll('.xq-stepper').forEach((root) => {
  const steps = [...root.querySelectorAll('.xq-step')];
  const count = root.querySelector('.xq-step-count');
  const [prev, next] = root.querySelectorAll('.xq-step-nav button');
  let at = 0;
  const show = () => {
    steps.forEach((s, i) => { s.hidden = i !== at; });
    count.textContent = `${at + 1} / ${steps.length}`;
    prev.disabled = at === 0;
    next.disabled = at === steps.length - 1;
  };
  prev.addEventListener('click', () => { if (at > 0) { at--; show(); } });
  next.addEventListener('click', () => { if (at < steps.length - 1) { at++; show(); } });
  show();
});
</script>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[把 Benedict Chess 的转化规则搬到象棋棋盘上：四个没有默认答案的设计决定，以及一个用来检验公平性的引擎。红方胜率 78%，蛋糕规则可以修正。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/benedict-xiangqi-balance/social-card.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/benedict-xiangqi-balance/social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">从真实对局中挖掘象棋残局题</title><link href="https://brianhliou.com/zh-hans/posts/xiangqi-puzzle-miner/" rel="alternate" type="text/html" title="从真实对局中挖掘象棋残局题" /><published>2026-09-02T00:00:00+00:00</published><updated>2026-09-02T00:00:00+00:00</updated><id>https://brianhliou.com/posts/xiangqi-puzzle-miner</id><content type="html" xml:base="https://brianhliou.com/posts/xiangqi-puzzle-miner/"><![CDATA[<p>象棋没有公开的谜题语料库。国际象棋有数百万个从真实对局中挖掘出来、公开且免费的局面；而网上能找到的象棋谜题多是人工拟制的残局排局，那是另一回事，数量也少得多。</p>

<p>于是我做了一个挖掘器。它读取真实对局，找出人们走错的着，保留那些恰好只有一着能取胜的局面。目前它在 <a href="https://mistboard.com/puzzles">Mistboard 上提供 1415 道谜题</a>，另有一份<a href="https://mistboard.com/study/E63eGK5V">十二个局面的选辑</a>可以逐着演练。</p>

<p>下面这道是今天的题目，直接取自该语料库。在棋盘上走着法即可；框内的尝试不计入评分，所以不必有压力。</p>

<iframe src="https://mistboard.com/embed/puzzle?theme=light" title="今日象棋谜题" loading="lazy" class="xq-puzzle"></iframe>

<p>接下来讲的是这样一道题是怎么造出来的，以及用这种方式建成的语料库最终呈现出什么样貌。</p>

<h2 id="对局来源">对局来源</h2>

<p>对局来自 <a href="https://elephantchess.io/about/datasets">ElephantChess</a>，该站以 GPL-3.0 许可按月发布自己站内的匿名化对局数据。业余对局，这一点很关键：高手失误的频率不足以构成供给。每个来源都标注许可状态，来源未获许可的谜题一律不予发布。</p>

<p>每次运行在花费任何引擎算力之前先冻结其对局清单，按等级分、用时规则、结果和对局长度分层抽样，以免全都是快棋。运行一旦开始就不再追加，这正是它可复现的原因。</p>

<h2 id="两轮筛查以及拆分为何划算">两轮筛查，以及拆分为何划算</h2>

<p>整套做法的经济性来自一个不对称：廉价的那一轮跑遍每盘对局的每个局面，昂贵的那一轮只跑过关的那些。</p>

<p>廉价那一轮重放对局，在第 8 着之后的每个局面停下，以 60000 节点向 Pikafish 询问最佳两着，大致相当于 10 到 14 层深度。</p>

<p>当实际走出的着法比引擎的最佳着至少差 250 个百分兵值，且留下的局面对另一方至少领先 250 时，这个局面成为候选。一个让局面回归均势的失误不是谜题；没有东西可找。</p>

<p>有一个细节把这一轮的开销减半。判断一着需要该局面走前和走后的评估值，只要扫描保持顺序，两者其实都已在手，因为所走之着的价值等于下一个局面分值的取反：</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for </span><span class="p">(</span><span class="kd">let</span> <span class="nx">ply</span> <span class="o">=</span> <span class="nx">minPly</span><span class="p">;</span> <span class="nx">ply</span> <span class="o">&lt;</span> <span class="nx">moveCount</span><span class="p">;</span> <span class="nx">ply</span> <span class="o">+=</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
  <span class="kd">const</span> <span class="nx">pre</span> <span class="o">=</span> <span class="nx">scans</span><span class="p">[</span><span class="nx">ply</span><span class="p">];</span>       <span class="c1">// the best that was available</span>
  <span class="kd">const</span> <span class="nx">post</span> <span class="o">=</span> <span class="nx">scans</span><span class="p">[</span><span class="nx">ply</span> <span class="o">+</span> <span class="mi">1</span><span class="p">];</span>  <span class="c1">// what they left behind, opponent's view</span>
  <span class="k">if </span><span class="p">(</span><span class="nx">pre</span> <span class="o">===</span> <span class="kc">null</span> <span class="o">||</span> <span class="nx">post</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="k">continue</span><span class="p">;</span>

  <span class="k">if </span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nf">abs</span><span class="p">(</span><span class="nx">pre</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="nx">decidedCp</span><span class="p">)</span> <span class="k">continue</span><span class="p">;</span>  <span class="c1">// already decided: no tactic</span>
  <span class="k">if </span><span class="p">(</span><span class="nx">post</span> <span class="o">&lt;</span> <span class="nx">winCp</span><span class="p">)</span> <span class="k">continue</span><span class="p">;</span>                <span class="c1">// solver must end up winning</span>

  <span class="kd">const</span> <span class="nx">playedCp</span> <span class="o">=</span> <span class="o">-</span><span class="nx">post</span><span class="p">;</span>                    <span class="c1">// the move, in their own terms</span>
  <span class="kd">const</span> <span class="nx">swing</span> <span class="o">=</span> <span class="nx">pre</span> <span class="o">-</span> <span class="nx">playedCp</span><span class="p">;</span>
  <span class="k">if </span><span class="p">(</span><span class="nx">swing</span> <span class="o">&lt;</span> <span class="nx">swingCp</span><span class="p">)</span> <span class="k">continue</span><span class="p">;</span>             <span class="c1">// a mistake, but a small one</span>

  <span class="nx">candidates</span><span class="p">.</span><span class="nf">push</span><span class="p">({</span> <span class="nx">ply</span><span class="p">,</span> <span class="na">swingCp</span><span class="p">:</span> <span class="nx">swing</span><span class="p">,</span> <span class="na">preBestCp</span><span class="p">:</span> <span class="nx">pre</span><span class="p">,</span> <span class="na">postBestCp</span><span class="p">:</span> <span class="nx">post</span> <span class="p">});</span>
<span class="p">}</span>
</code></pre></div></div>

<p>每个局面一次搜索而不是两次，而这一轮要触及每盘对局的每个局面。这个减半使扫描整个语料库变得可承受：每一千盘对局约六核心小时，大致相当于每发布一道谜题一核心分钟。</p>

<p>昂贵那一轮随后把每个候选以 20 层深度、600000 节点交还给引擎，预算是前者的十倍，并且只递交一个裸 FEN，不带着法历史。同一个局面，没有上下文，引擎便无法依赖它刚做过的搜索。</p>

<h2 id="什么让它只有一个答案">什么让它只有一个答案</h2>

<p>解答是一着一着搭起来的，每一着都必须自身唯一最佳。整段照搬引擎的主要变例行不通：主要变例只是引擎在一次搜索中偏好的一条路线，它说明不了第三着是否唯一。一个找到了不同第三着却被告知走错的解题者，等于被骗了。</p>

<p>唯一性也不是百分兵值差距。相差 50 个百分兵值的两着都没问题，硬要判定其中之一反而惩罚了选对的解题者。让一着成为<em>那个</em>答案的，是所有替代着都错：要么把胜势送掉，要么赢得的物质明显更少。</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">function</span> <span class="nf">classifySolverMove</span><span class="p">(</span><span class="nx">best</span><span class="p">,</span> <span class="nx">second</span><span class="p">)</span> <span class="p">{</span>
  <span class="c1">// Mate saturates both centipawns and win%, so mates get their own rule:</span>
  <span class="c1">// unique only when this is the strictly fastest forced mate.</span>
  <span class="k">if </span><span class="p">(</span><span class="nf">mates</span><span class="p">(</span><span class="nx">best</span><span class="p">))</span> <span class="p">{</span>
    <span class="k">if </span><span class="p">(</span><span class="o">!</span><span class="nx">second</span> <span class="o">||</span> <span class="o">!</span><span class="nf">mates</span><span class="p">(</span><span class="nx">second</span><span class="p">))</span> <span class="k">return</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">fastest-mate</span><span class="dl">'</span> <span class="p">};</span>
    <span class="k">return</span> <span class="nx">best</span><span class="p">.</span><span class="nx">mate</span> <span class="o">&lt;</span> <span class="nx">second</span><span class="p">.</span><span class="nx">mate</span>
      <span class="p">?</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">fastest-mate</span><span class="dl">'</span> <span class="p">}</span>
      <span class="p">:</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">mate-not-unique</span><span class="dl">'</span> <span class="p">};</span>
  <span class="p">}</span>

  <span class="k">if </span><span class="p">(</span><span class="nf">winRate</span><span class="p">(</span><span class="nx">best</span><span class="p">.</span><span class="nx">scoreCp</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.8</span><span class="p">)</span> <span class="k">return</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">best-not-winning</span><span class="dl">'</span> <span class="p">};</span>
  <span class="k">if </span><span class="p">(</span><span class="o">!</span><span class="nx">second</span><span class="p">)</span> <span class="k">return</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">only-move</span><span class="dl">'</span> <span class="p">};</span>

  <span class="kd">const</span> <span class="nx">gapCp</span> <span class="o">=</span> <span class="nx">best</span><span class="p">.</span><span class="nx">scoreCp</span> <span class="o">-</span> <span class="nx">second</span><span class="p">.</span><span class="nx">scoreCp</span><span class="p">;</span>
  <span class="k">if </span><span class="p">(</span><span class="nx">gapCp</span> <span class="o">&lt;</span> <span class="mi">200</span><span class="p">)</span> <span class="k">return</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">near-tie</span><span class="dl">'</span> <span class="p">};</span>

  <span class="c1">// The runner-up is wrong if it gives the win away outright...</span>
  <span class="k">if </span><span class="p">(</span><span class="nf">winRate</span><span class="p">(</span><span class="nx">second</span><span class="p">.</span><span class="nx">scoreCp</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="mf">0.6</span><span class="p">)</span> <span class="k">return</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">runner-up-loses-win</span><span class="dl">'</span> <span class="p">};</span>
  <span class="c1">// ...or if it still wins, but wins a whole piece less.</span>
  <span class="k">if </span><span class="p">(</span><span class="nx">gapCp</span> <span class="o">&gt;=</span> <span class="mi">250</span><span class="p">)</span> <span class="k">return</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">material-gap</span><span class="dl">'</span> <span class="p">};</span>

  <span class="k">return</span> <span class="p">{</span> <span class="na">unique</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span> <span class="na">reason</span><span class="p">:</span> <span class="dl">'</span><span class="s1">alternative-still-good</span><span class="dl">'</span> <span class="p">};</span>
<span class="p">}</span>
</code></pre></div></div>

<p>它默认拒绝。凡是关卡无法区分的一律丢弃，原因记录在候选上，因此每次拒绝事后都可审计。</p>

<p>第二轮在 22 层深度、不设节点上限的条件下复核过关者，运行在另一个进程中，且不知道第一轮的判定。其中约 6% 没能站住。同一个引擎在不同预算下两次运行之间的这种分歧率，正是必须保留第二轮的理由：一个引擎在一个深度上，不能作为它自身判定的真理来源。</p>

<h2 id="给还没人解过的着法线路评分">给还没人解过的着法线路评分</h2>

<p>一条线路可以经过验证、唯一，却仍然是道差题，决定优劣的是难度。</p>

<p>朴素的评分是将死步数，这对整个语料库只能给出四个不同取值。真正的评分沿着解答走一遍，给那些让局面难以看出的因素打分：安静的首着加分，吃子减分，未收回的弃子最多加 200，防守方应着的数量则可加可减。无法被反吃的吃子扣分最重，并按吃到的物质缩放，因为盘面上最容易被发现的东西就是一个无根子：</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Only the solver's first move, and only while the game is still running: a</span>
<span class="c1">// capture that MATES also leaves the opponent no legal moves, and reading that</span>
<span class="c1">// as "nothing can recapture" would penalise every mating capture in the corpus.</span>
<span class="k">if </span><span class="p">(</span><span class="nx">index</span> <span class="o">===</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="nx">captured</span> <span class="o">&amp;&amp;</span> <span class="nx">state</span><span class="p">.</span><span class="nx">status</span><span class="p">.</span><span class="nx">type</span> <span class="o">===</span> <span class="dl">'</span><span class="s1">playing</span><span class="dl">'</span><span class="p">)</span> <span class="p">{</span>
  <span class="kd">const</span> <span class="nx">recaptures</span> <span class="o">=</span> <span class="nf">getLegalMoves</span><span class="p">(</span><span class="nx">state</span><span class="p">).</span><span class="nf">filter</span><span class="p">((</span><span class="nx">reply</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="nx">reply</span><span class="p">.</span><span class="nx">to</span> <span class="o">===</span> <span class="nx">move</span><span class="p">.</span><span class="nx">to</span><span class="p">);</span>
  <span class="k">if </span><span class="p">(</span><span class="nx">recaptures</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="nx">freeCaptureCp</span> <span class="o">=</span> <span class="nx">MATERIAL_CP</span><span class="p">[</span><span class="nx">captured</span><span class="p">.</span><span class="nx">role</span><span class="p">];</span>
<span class="p">}</span>
</code></pre></div></div>

<p>那道保护判断才是值得借用的部分：这个检查的显然写法是错的，而且错得能通过你想得到的每一项测试，因为造成将死的吃子同样会让对方无合法应着。</p>

<p>有一类局面被扣下而不是评分。解题者原本就已多赢一个马以上，<em>而且</em>答案是吃掉一个无保护的子，这样的谜题在任何难度下都教不了什么，而评分只能决定把题目展示给谁。</p>

<h2 id="语料库最终的样貌">语料库最终的样貌</h2>

<p>从选辑中取三章，各对应其中一项数字。</p>

<p><strong>三分之二的谜题首着不吃任何子。</strong>如果你找战术时先扫吃子着法，也就是我们大多数人的做法，那你多数时间都在看错的那三分之一棋盘。下面这道出自四月广东对山东的团体赛，整条线路中双方哪里都没吃子，最后仍以将死告终：</p>

<iframe src="https://mistboard.com/embed/study/E63eGK5V/baUOd99U?theme=light" title="一子未吃，却是将死" loading="lazy" class="xq-embed"></iframe>

<p><strong>只有约十分之一涉及送子。</strong>弃子是人们记得住的战术，所以我原以为占比会更大。在真实棋手之间的真实对局里，取胜之着通常只是普通一着。这里车横越棋盘到 c1，再踏入 f1 任对方吃，马在 d1 成杀：</p>

<iframe src="https://mistboard.com/embed/study/E63eGK5V/lYD4IQA7?theme=light" title="弃车成杀网" loading="lazy" class="xq-embed"></iframe>

<p><strong>还有 40% 根本不以将死收尾。</strong>它们以解题者单纯取得胜势收尾，而这正是将杀型直觉容易漏掉的一类。下面的取胜之着是帅走一步：红帅从 e2 走到 e1，不吃子，不叫将，三着之后的兑换让红方多出 650 个百分兵值。</p>

<iframe src="https://mistboard.com/embed/study/E63eGK5V/0F3BJPSF?theme=light" title="取胜之着是帅走一步" loading="lazy" class="xq-embed"></iframe>

<table>
  <thead>
    <tr>
      <th> </th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>已提供谜题数</td>
      <td>1,415</td>
    </tr>
    <tr>
      <td>难度区间</td>
      <td>1000 至 2600，479 个不同取值</td>
    </tr>
    <tr>
      <td>首着不吃子</td>
      <td>约三分之二</td>
    </tr>
    <tr>
      <td>以非将死方式收尾</td>
      <td>~40%</td>
    </tr>
    <tr>
      <td>涉及送子</td>
      <td>~10%</td>
    </tr>
  </tbody>
</table>

<h2 id="一道谜题究竟是什么">一道谜题究竟是什么</h2>

<p>多数胜势局面都有好几个取胜着法，而这正是它们被淘汰的原因：挖掘器找到的东西里有三分之一仅因这一条就出局。一道谜题是只有一个答案的局面，深到找出它需要费力，稳到一小时后更强的引擎依然认同。十个失误里有九个不合格，这才是没人手头有一个大型象棋谜题库的真正原因：供给难题不在于找到失误，而在于其中几乎没有一个是谜题。</p>

<h2 id="去下一下">去下一下</h2>

<p>语料库免费，无需账号。选辑是十二个挖掘出的局面，每个附一条说明它展示了什么；训练器提供全部 1415 道，带难度评分。</p>

<div class="cta-row">
  <a class="cta cta-primary" href="https://mistboard.com/puzzles">开始解题</a>
  <a class="cta cta-secondary" href="https://mistboard.com/study/E63eGK5V">演练选辑</a>
  <a class="cta cta-secondary" href="https://mistboard.com/blog/how-puzzle-mining-works">这条流水线，写给棋手</a>
</div>

<style>
/* Mistboard's replay widget puts the move list beside the board and stacks it
   underneath below a 720px viewport. An iframe's viewport is its own width, and
   this column is 680px, so at column width the embed always stacked and the
   board shrank to fit what was left. Where the page has room either side of the
   column, break out to 740px for the side-by-side layout; narrower than that,
   stack and take the extra height it needs.

   No border: the widget already draws its own panel, and a second frame around
   the whole thing reads as a screenshot pasted into the page. */
.xq-embed {
  display: block;
  width: 100%;
  height: 880px;
  border: 0;
}

@media (min-width: 960px) {
  .xq-embed {
    width: 740px;
    margin-left: -30px;
    /* The widget sizes the board to the shorter of its column's width and
       height, so at 620px the board was height-capped and sat in ~50px of dead
       space either side. 712px is the height at which it becomes width-capped
       instead: the board fills its column and the side gaps close. */
    height: 712px;
  }
}

/* The daily-puzzle frame is shorter than the study frame: it carries a board,
   a one-line prompt and two buttons, not a full move tree. Below the widget's
   720px stacking point the prompt drops under the board and it needs the extra
   height back. */
.xq-puzzle {
  display: block;
  width: 100%;
  height: 720px;
  border: 0;
}

@media (min-width: 960px) {
  .xq-puzzle {
    width: 740px;
    margin-left: -30px;
    height: 520px;
  }
}

</style>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[一条把授权发布的业余象棋对局数据转化为 1415 道带难度评分谜题的流水线：两轮引擎筛查、唯一解关卡，以及什么才算一道谜题。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/xiangqi-puzzle-miner/social-card.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/xiangqi-puzzle-miner/social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">MCP 工具调用的重试安全性</title><link href="https://brianhliou.com/zh-hans/posts/mcp-retry-safety/" rel="alternate" type="text/html" title="MCP 工具调用的重试安全性" /><published>2026-09-01T00:00:00+00:00</published><updated>2026-09-01T00:00:00+00:00</updated><id>https://brianhliou.com/posts/mcp-retry-safety</id><content type="html" xml:base="https://brianhliou.com/posts/mcp-retry-safety/"><![CDATA[<p>在客户端失败的工具调用，在服务端仍可能已经完成。如果调用方重试，工具就会执行两次。本文记录了这一现象的四种复现、相关的规范文本，以及参考实现中幂等性支持的现状。</p>

<h2 id="概述">概述</h2>

<table>
  <thead>
    <tr>
      <th>#</th>
      <th>场景</th>
      <th>传输方式</th>
      <th>重试发起方</th>
      <th>调用次数</th>
      <th>副作用</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>客户端超时，随后取消</td>
      <td>stdio</td>
      <td>测试程序</td>
      <td>1</td>
      <td>2</td>
    </tr>
    <tr>
      <td>2</td>
      <td>服务端 SIGKILL，随后重启</td>
      <td>stdio</td>
      <td>测试程序</td>
      <td>1</td>
      <td>2</td>
    </tr>
    <tr>
      <td>3</td>
      <td>客户端超时，随后取消</td>
      <td>Streamable HTTP</td>
      <td>测试程序</td>
      <td>1</td>
      <td>2</td>
    </tr>
    <tr>
      <td>4</td>
      <td>工具返回后出现 <code class="language-plaintext highlighter-rouge">ConnectionError</code></td>
      <td>stdio</td>
      <td>LangGraph，默认策略</td>
      <td>1</td>
      <td>3</td>
    </tr>
  </tbody>
</table>

<p>在每种情形下，工具都声明了 <code class="language-plaintext highlighter-rouge">idempotentHint: false</code>，并且客户端也收到了该注解。</p>

<h2 id="环境">环境</h2>

<p>这里固定了版本，因为这些东西每周都在变。</p>

<table>
  <thead>
    <tr>
      <th>组件</th>
      <th>版本</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">@modelcontextprotocol/sdk</code>（TypeScript）</td>
      <td>1.30.0</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">mcp</code>（Python）</td>
      <td>1.29.1</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">langgraph</code></td>
      <td>1.2.11</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">langchain-mcp-adapters</code></td>
      <td>0.3.2</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">langchain-core</code></td>
      <td>1.6.1</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">@cloudflare/think</code></td>
      <td>0.17.0</td>
    </tr>
    <tr>
      <td>协商出的协议版本</td>
      <td>2025-11-25</td>
    </tr>
    <tr>
      <td>Node</td>
      <td>26.7.0</td>
    </tr>
  </tbody>
</table>

<p>TypeScript SDK 的 <code class="language-plaintext highlighter-rouge">LATEST_PROTOCOL_VERSION</code> 为 <code class="language-plaintext highlighter-rouge">2025-11-25</code>，<code class="language-plaintext highlighter-rouge">SUPPORTED_PROTOCOL_VERSIONS</code> 也止于此，因此参考客户端无法协商到 2026-07-28。复现都在 2025-11-25 上运行。</p>

<p>测试服务端暴露一个工具 <code class="language-plaintext highlighter-rouge">charge</code>，它向一个账本文件追加一行，然后进入睡眠。写入发生在睡眠之前，所以副作用在调用早期就已提交，之后的任何失败都不会撤销它。</p>

<h2 id="2026-07-28-修订版改了什么">2026-07-28 修订版改了什么</h2>

<p><a href="https://modelcontextprotocol.io/specification/2026-07-28/changelog">当前修订版</a> 中有两组改动与此相关。</p>

<p>重试在两个特性中作为普通控制流出现。多轮往返请求在客户端「在原始请求的重试中」提供 <code class="language-plaintext highlighter-rouge">inputResponses</code> 时完成。elicitation 完成通知被移除，理由是「客户端通过重试原始请求来得知带外交互的结果」。</p>

<p>四种跨连接携带状态的机制被移除：</p>

<table>
  <thead>
    <tr>
      <th>被移除项</th>
      <th>变更</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>协议会话，<code class="language-plaintext highlighter-rouge">Mcp-Session-Id</code></td>
      <td>重大变更 1</td>
    </tr>
    <tr>
      <td>SSE 可恢复性，<code class="language-plaintext highlighter-rouge">Last-Event-ID</code>，事件 ID</td>
      <td>重大变更 9</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">initialize</code> / <code class="language-plaintext highlighter-rouge">notifications/initialized</code></td>
      <td>重大变更 2</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">ping</code>、<code class="language-plaintext highlighter-rouge">logging/setLevel</code></td>
      <td>重大变更 5</td>
    </tr>
  </tbody>
</table>

<p>重大变更 9 规定了替代行为：「响应流中断会丢失进行中的请求；客户端<strong>必须</strong>以新的请求 ID 作为新请求重新发出。」</p>

<p>该修订版保留了六个 <code class="language-plaintext highlighter-rouge">_meta</code> 键（<code class="language-plaintext highlighter-rouge">clientCapabilities</code>、<code class="language-plaintext highlighter-rouge">clientInfo</code>、<code class="language-plaintext highlighter-rouge">logLevel</code>、<code class="language-plaintext highlighter-rouge">oauth</code>、<code class="language-plaintext highlighter-rouge">protocolVersion</code>、<code class="language-plaintext highlighter-rouge">serverInfo</code>）。其中没有一个是去重键或幂等键。规范中并未出现 <code class="language-plaintext highlighter-rouge">exactly-once</code>、<code class="language-plaintext highlighter-rouge">at-least-once</code>、<code class="language-plaintext highlighter-rouge">deduplicate</code> 这些字符串。</p>

<h2 id="场景-1超时与取消">场景 1：超时与取消</h2>

<p>客户端设置 1 秒超时，工具耗时 3 秒，随后进行一次重试。</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[client] attempt 1 {"timeoutMs":1000}
[server] SIDE EFFECT COMMITTED {"reqId":"2","amount":100}
[client] attempt 1 FAILED {"code":-32001,"message":"Request timed out"}
[client] retrying
[server] &lt;&lt;&lt; INBOUND notifications/cancelled {"requestId":2}
[server] SIDE EFFECT COMMITTED {"reqId":"3","amount":100}
[server] handler finishing {"reqId":"2","aborted":true}
[client] RESULT {"logicalInvocations":1,"actualCharges":2}
</code></pre></div></div>

<p>顺序上有三点值得注意。</p>

<p><code class="language-plaintext highlighter-rouge">notifications/cancelled</code> 到达服务端的时间，晚于客户端把错误返回给调用方的时间。SDK 之上的任何重试逻辑，都在服务端得到任何通知之前就已运行。</p>

<p>请求 2 的服务端处理函数观察到 <code class="language-plaintext highlighter-rouge">aborted: true</code>，但仍然执行完毕。写入早已发生。</p>

<p>客户端没有收到请求 2 的任何结果。规范要求服务端不要对被取消的请求作出响应，因此调用方关于第一次尝试掌握的信息只是「它没有返回」，这无法区分「没有发生」和「已经发生但响应被丢弃」。</p>

<h2 id="场景-2进程重启">场景 2：进程重启</h2>

<p>stdio 传输一节规定了恢复流程：</p>

<blockquote>
  <p>如果服务端进程意外退出，客户端应当重启它。由于协议是无状态的，任何进行中的请求都会直接丢失，客户端可以对新进程重试这些请求。</p>
</blockquote>

<p>照此执行，并在写入提交之后发送 SIGKILL：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[server] SIDE EFFECT COMMITTED {"reqId":"1","amount":100}
[client] SIGKILL the server process
[client] attempt 1 FAILED {"code":-32000,"message":"Connection closed"}
[client] restarting per spec guidance and retrying
[server] SIDE EFFECT COMMITTED {"reqId":"1","amount":100}
[client] RESULT {"logicalInvocations":1,"actualCharges":2}
</code></pre></div></div>

<p>给出的理由是协议无状态。协议无状态描述的是连接，而不是服务端副作用，并不能说明一个请求可以安全地重复执行。</p>

<p>两条账本记录都带有 <code class="language-plaintext highlighter-rouge">reqId: 1</code>。重启后的进程会重新开始请求计数，因此请求 ID 在重启前后并不唯一。</p>

<h2 id="场景-3streamable-http">场景 3：Streamable HTTP</h2>

<p>与场景 1 相同的超时与重试，但走 <code class="language-plaintext highlighter-rouge">StreamableHTTPServerTransport</code> 和 <code class="language-plaintext highlighter-rouge">StreamableHTTPClientTransport</code>。一次调用产生两次副作用，请求 ID 分别为 1 和 2。传输方式的选择并未改变结果。</p>

<h2 id="场景-4langgraph-的默认重试策略">场景 4：LangGraph 的默认重试策略</h2>

<p>场景 1 到 3 使用的是测试程序自己写的重试。这一个用的是框架的重试。</p>

<p>一个 LangGraph 节点通过 <code class="language-plaintext highlighter-rouge">langchain-mcp-adapters</code> 调用 <code class="language-plaintext highlighter-rouge">charge</code>，然后抛出 <code class="language-plaintext highlighter-rouge">ConnectionError</code>，这正是 MCP 传输断开时表现出的异常。整个过程不涉及 LLM，因此运行是确定性的。该节点使用默认的 <code class="language-plaintext highlighter-rouge">RetryPolicy</code>，没有覆盖 <code class="language-plaintext highlighter-rouge">retry_on</code>。</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[client] tool 'charge' metadata: {'title': None, 'readOnlyHint': None,
         'destructiveHint': True, 'idempotentHint': False, 'openWorldHint': None}
[client] node attempt 1: calling charge -&gt; 'charged 100.0'
[client] node attempt 2: calling charge -&gt; 'charged 100.0'
[client] node attempt 3: calling charge -&gt; 'charged 100.0'
[client] RESULT {"logicalInvocations":1,"nodeAttempts":3,"actualCharges":3}
</code></pre></div></div>

<p>默认策略的两个特性导致了这一结果。</p>

<p><code class="language-plaintext highlighter-rouge">langgraph/_internal/_retry.py</code> 首先检查 <code class="language-plaintext highlighter-rouge">isinstance(exc, ConnectionError)</code> 并返回 <code class="language-plaintext highlighter-rouge">True</code>。随后它对 <code class="language-plaintext highlighter-rouge">ValueError</code>、<code class="language-plaintext highlighter-rouge">TypeError</code>、<code class="language-plaintext highlighter-rouge">RuntimeError</code>、<code class="language-plaintext highlighter-rouge">ArithmeticError</code>、<code class="language-plaintext highlighter-rouge">LookupError</code>、<code class="language-plaintext highlighter-rouge">NameError</code> 等返回 <code class="language-plaintext highlighter-rouge">False</code>，理由是这些表示程序错误而非瞬时错误。这种分类是有意为之，而传输错误恰恰属于「完成状态未知」的那一类。</p>

<p>重试的粒度是节点。工具调用位于节点内部，所以重新运行节点就会重新运行该调用。这一点具有普遍性：这些框架中的检查点边界比单次工具调用要粗。</p>

<h2 id="idempotenthint-的使用方"><code class="language-plaintext highlighter-rouge">idempotentHint</code> 的使用方</h2>

<p>从 2025-03-26 修订版起，MCP 的工具注解中就带有 <code class="language-plaintext highlighter-rouge">idempotentHint</code>。在两套参考实现中搜索读取它的代码：</p>

<p><strong>TypeScript，<code class="language-plaintext highlighter-rouge">@modelcontextprotocol/sdk</code> 1.30.0。</strong> 只有一处运行时出现，即 <code class="language-plaintext highlighter-rouge">dist/esm/types.js</code> 中的一个 Zod schema 字段。其余全部出现在 <code class="language-plaintext highlighter-rouge">.d.ts</code> 声明中，而这些在执行前就被擦除了。</p>

<p><strong>Python，涵盖 <code class="language-plaintext highlighter-rouge">langgraph</code> 1.2.11、<code class="language-plaintext highlighter-rouge">langchain-core</code> 1.6.1、<code class="language-plaintext highlighter-rouge">langchain-mcp-adapters</code> 0.3.2、<code class="language-plaintext highlighter-rouge">mcp</code> 1.29.1。</strong> 只有一处出现，即 <code class="language-plaintext highlighter-rouge">mcp/types.py:1276</code> 的一个字段声明。</p>

<p>两套实现中都没有使用方。这个注解被传输、被接收，并且如场景 4 所示，在 <code class="language-plaintext highlighter-rouge">tool.metadata</code> 中暴露给了 agent 层。</p>

<h2 id="客户端幂等性cloudflarethink">客户端幂等性：<code class="language-plaintext highlighter-rouge">@cloudflare/think</code></h2>

<p>有一个实现带有幂等性机制。<code class="language-plaintext highlighter-rouge">@cloudflare/think</code> 0.17.0 在 15 个文件中出现 <code class="language-plaintext highlighter-rouge">idempotencyKey</code>，在 4 个文件中有 <code class="language-plaintext highlighter-rouge">ActionPendingError</code> 类型，文档中写道「投递是至少一次的；请使用 <code class="language-plaintext highlighter-rouge">idempotencyKey</code> 或 <code class="language-plaintext highlighter-rouge">occurrenceKey</code> 来实现你自己的持久化幂等」。它列举了残留的至少一次情形，以及其中哪些是可以接受的。</p>

<p>只搜索其运行时文件，排除 <code class="language-plaintext highlighter-rouge">.d.ts</code>：</p>

<ul>
  <li>5 个运行时文件调用 <code class="language-plaintext highlighter-rouge">callTool</code></li>
  <li>8 个运行时文件引用 <code class="language-plaintext highlighter-rouge">idempotencyKey</code></li>
  <li>0 个运行时文件同时包含两者</li>
</ul>

<p>依赖树中唯一的共现处是 <code class="language-plaintext highlighter-rouge">agents/dist/agent-routing-*.d.ts</code> 中的一个类型声明。这些幂等键由它自己的调度层使用，并不会传到 <code class="language-plaintext highlighter-rouge">tools/call</code>，而后者也没有保留任何字段来携带它。</p>

<h2 id="范围">范围</h2>

<p>本文未涵盖：</p>

<ul>
  <li>协议修订版 2026-07-28。参考客户端无法协商该版本。</li>
  <li>网络分区与时钟偏移。二者均未测试。</li>
  <li>LangGraph 之外的框架。</li>
  <li>在协议之外自行维护去重的服务端实现。</li>
  <li>是否有生产部署真的遇到过这种情况。这些都是人为构造的复现。</li>
</ul>

<h2 id="已有工作">已有工作</h2>

<p>Sajjad Khan 的 <a href="https://arxiv.org/abs/2608.03836">“Resume Means Resume”</a>（2026 年 8 月）对持久化层那一半的讨论比本文更深入：一份用 TLA+ 和 TLAPS 验证的六项性质一致性契约、一张 39 格的故障矩阵，以及在真实 SIGKILL 下对五个已部署框架的测量。它测得 LangGraph 1.2.9 是「跨中断恰好一次，跨崩溃至少一次」，并指出没有任何两个框架具有相同的一致性画像。该文未涉及 MCP、网络分区或时钟偏移。</p>

<h2 id="相关提案">相关提案</h2>

<p><a href="https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3182">SEP-3182</a> 提议在 <code class="language-plaintext highlighter-rouge">tools/call</code> 上增加一个可选的 <code class="language-plaintext highlighter-rouge">idempotencyKey</code> 字段，让服务端能够识别重试并返回原始结果，而不是重新执行。</p>

<p>该讨论持续了三周。一位评审者在 08-01 提出了多轮往返等价性的缺口，以及参考实现中的一处线级不匹配；作者在 08-02 推送了针对两者的修复，并在 08-05 询问这个键应该放在专用字段中还是保留的 <code class="language-plaintext highlighter-rouge">_meta</code> 键中。这个问题是向工作组提出的，之后十八天无人回应。08-23 一位维护者关闭了该 PR，附言「AI 生成的 PR，未作披露也没有背景说明」。作者询问还需要哪些背景信息，截至 2026-09-01 仍未得到回复。</p>

<p>该讨论中的评审来自其他非成员。维护者在任何阶段都未就提案的技术内容展开讨论，包括关闭时。</p>

<h2 id="复现方式">复现方式</h2>

<p>不需要 API 密钥，也不涉及模型调用。</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>npm i @modelcontextprotocol/sdk@1.30.0 zod@3 tsx@4
<span class="nv">LEDGER</span><span class="o">=</span><span class="nv">$PWD</span>/ledger.jsonl <span class="nv">DELAY_MS</span><span class="o">=</span>3000 <span class="nv">TIMEOUT_MS</span><span class="o">=</span>1000 node <span class="nt">--import</span> tsx client.ts
<span class="nv">LEDGER</span><span class="o">=</span><span class="nv">$PWD</span>/ledger2.jsonl node <span class="nt">--import</span> tsx client-restart.ts
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>uv pip <span class="nb">install </span>langgraph langchain-mcp-adapters mcp
<span class="nv">LEDGER</span><span class="o">=</span><span class="nv">$PWD</span>/ledger.jsonl python graph.py
</code></pre></div></div>

<p>给想要在此基础上扩展的人一点提醒。场景 2 的早期版本以 <code class="language-plaintext highlighter-rouge">npx tsx server.ts</code> 启动服务端，这会让传输层的子进程变成 <code class="language-plaintext highlighter-rouge">npx</code>，而服务端成为孙进程。SIGKILL 打中了 <code class="language-plaintext highlighter-rouge">npx</code>，服务端存活下来，第 1 次尝试成功，而测试程序重试了一个成功的调用。它报告了两次副作用，却什么也没证明。请用 <code class="language-plaintext highlighter-rouge">node --import tsx server.ts</code> 启动，使子进程就是服务端，并在统计任何数据之前断言第 1 次尝试以 <code class="language-plaintext highlighter-rouge">-32000</code> 失败。</p>

<h2 id="怎样才能解决">怎样才能解决</h2>

<p>在 <code class="language-plaintext highlighter-rouge">tools/call</code> 上加一个去重键，也就是 SEP-3182 所提议的方案。或者，提供一种方式让客户端能向服务端查询某个丢失了响应的请求最终结果如何。</p>

<p>目前这两者都不存在。在其中之一出现之前，需要工具调用只发生一次的应用只能在工具参数里自带一个键，并在服务端去重，因为协议本身不会替你携带它。</p>

<hr />

<p><strong>资源：</strong></p>
<ul>
  <li><a href="https://github.com/brianhliou/mcp-retry-repro">复现测试程序</a> - 四个场景，固定版本</li>
  <li><a href="https://modelcontextprotocol.io/specification/2026-07-28/changelog">MCP 2026-07-28 变更日志</a></li>
  <li><a href="https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3182">SEP-3182：请求幂等性</a></li>
  <li><a href="https://arxiv.org/abs/2608.03836">Resume Means Resume</a> - Khan，工作流持久化的一致性契约</li>
</ul>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[MCP 上工具重复执行的四种复现：超时取消、stdio 重启、Streamable HTTP、LangGraph 的重试策略。附可运行的测试程序。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/images/site-card.png" /><media:content medium="image" url="https://brianhliou.com/assets/images/site-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">在斗兽棋引擎里测试「冲穴竞速」评估项</title><link href="https://brianhliou.com/zh-hans/posts/jungle-den-term/" rel="alternate" type="text/html" title="在斗兽棋引擎里测试「冲穴竞速」评估项" /><published>2026-08-31T00:00:00+00:00</published><updated>2026-08-31T00:00:00+00:00</updated><id>https://brianhliou.com/posts/jungle-den-term</id><content type="html" xml:base="https://brianhliou.com/posts/jungle-den-term/"><![CDATA[<p>Mistboard 的斗兽棋引擎没有「冲穴竞速」这个概念。它给局面打分的方式是子力加上每个棋子向敌方兽穴推进的奖励，从不问奔向<em>自己</em>兽穴的那个跑者是否先到。它要等搜索抵达兽穴才知道，大约十二着之外。</p>

<p>这看着像个明显的缺口，起因是一局对弈中机器人把鼠来回挪动，而敌方的鼠径直走了进来，于是我开了个 issue。我花了一天想补上它。三条路线，全部无效或为负。下面是测量的结果，以及我会从中保留的东西。</p>

<h2 id="引擎已经会做的事">引擎已经会做的事</h2>

<p>值得先分开说，因为它框定了后面的一切。引擎完全理解胜利条件：抵达兽穴被计为将死，在候选着法中排在最前，并在静止搜索中被搜索。它缺的是预见力，不是理解力。</p>

<p>它照样能赢，因为斗兽棋由子力主导，而评估函数对子力读得很准。在进入兽穴的那一刻，胜方的中位子力领先 20 分，大约一只猫。只有 4.7% 的对局是由落后一方赢下的。</p>

<h2 id="没有这个概念时它怎么下">没有这个概念时它怎么下</h2>

<p>本研究的第 10 局只有四着长，却比下面任何表格都更好地回答了这个问题。</p>

<p>斗兽棋的中部是三行河。d 路是唯一横跨其上的陆桥。虎只能纵向跳河，绝不横向，所以站在那条走廊里的虎几乎无处可去。</p>

<p><img src="/assets/posts/jungle-den-term/position.png" alt="斗兽棋局面：红方的虎孤身在 d 路陆桥上，两侧是河，蓝方的象正在它上方" style="max-width: 440px; height: auto; display: block; margin: 0 auto;" />
<em>第 20 着，蓝方行棋。红色方格是刚走的一着：红方的虎吃掉了
d6 的狼，现在站在走廊里。蓝方的象就在它上方一格，
且等级高于它。</em> 第 20 着时红方在 d5 的虎有两个
合法着法。向前或向后，都仍在走廊里。它选择向前，吃掉了
那只狼，这让蓝方损失 40 分，并把虎停在了蓝方象的旁边。</p>

<p>蓝方的象等级高于虎，所以这看起来像是送礼。蓝方没有立刻吃掉它，这正是别人要我解释的那一着。引擎的理由是虎逃不掉：象在 d7 时虎唯一的着法是 d5，而从 d5 它唯一的着法是 d4，被一个等级高于它的棋子沿着单车道走廊一路逼下去。抓它要花一个先手去收已经到手的东西。蓝方走了一步免费的改善着法，两着之后在 d5 而不是 d6 吃掉了虎。两条路线到达的子力完全相同。</p>

<p>决定这局的四着：</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>41  Blue  elephant d7 -&gt; d6    steps into the corridor after the tiger
42  Red   lion     c3 -&gt; c7    jumps into the square the elephant just left
43  Blue  elephant d6 -&gt; d5    takes the tiger, up a piece
    Red's lion is now three moves from a den Blue cannot defend
</code></pre></div></div>

<p>那只虎是诱饵。不是弃子：它本来就几乎被困死，而吃狼的得分是 +10，对比几乎所有替代着法的 +6，这是四分的差距而不是一个计划。它在离场路上做的事，是把唯一等级高于狮的棋子拉到 d 路上。第 20 着时狮的跳河得分是 <strong>-195</strong>，因为 c7 紧邻 d7 的蓝方象。两着之后同样的跳跃就赢了，因为象走开了。</p>

<p>蓝方在这段结束时领先 13 分，然后输了。</p>

<p>把这个计划复述一遍，听起来像是引擎理解了冲穴竞速。它并没有。在那个评估函数里，无论这个项目之前还是之后，都没有任何冲穴竞速项。它搜索了五百万个节点，这条线就出来了。整个结果就是这样：issue 想装上的那种行为已经在那里了，由搜索深度而不是知识产生。</p>

<h2 id="基准率47-的对局而且要在发布强度下测">基准率：4.7% 的对局，而且要在发布强度下测</h2>

<p>172 局自我对弈，使用生产预算每着五百万节点。</p>

<table>
  <thead>
    <tr>
      <th>终局类型</th>
      <th>占比</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>重复和棋</td>
      <td>52.9%</td>
    </tr>
    <tr>
      <td>进入兽穴</td>
      <td>26.2%</td>
    </tr>
    <tr>
      <td>无进展和棋</td>
      <td>20.9%</td>
    </tr>
    <tr>
      <td><strong>真正的竞速</strong>（胜方在十着之前持平或落后）</td>
      <td><strong>4.7%</strong></td>
    </tr>
  </tbody>
</table>

<p>同一套测试框架在 200k 节点下报告 22% 的竞速。棋力更弱会把这个数字大约放大五倍。便宜的测量本来就能做，而它会在「值得多干活」的方向上错 5 倍。</p>

<h2 id="余量搜索加深-12-倍只换来两着">余量：搜索加深 12 倍只换来两着</h2>

<p>对每一局竞速，我在败方的对局中用二分查找找出每种预算最早能识别出必败的那一着，然后取差值。</p>

<table>
  <thead>
    <tr>
      <th>差距</th>
      <th>竞速局数</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0 着</td>
      <td>4</td>
    </tr>
    <tr>
      <td>2 着</td>
      <td>3</td>
    </tr>
    <tr>
      <td>4 着</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

<p>六千万节点对五百万节点，更深的搜索识别出败势的时间中位数只早两着。在那个视野之前两者贴得很近，只在最后一两着才分开。</p>

<p>这个数字本该终结这个项目。如果十二倍的搜索只换回两着，那么这些信息并不是摆在那里等一个更聪明的评估函数去挖出来。</p>

<h2 id="路线-a搜索延伸免费版与付费版">路线 A：搜索延伸，免费版与付费版</h2>

<p>不实现就先探测。测试框架的策略是：只要有棋子处在敌方兽穴 R 格以内，就给这一方更大的节点预算，这对任何真实延伸都是严格的上界。</p>

<p>第一个发现，在任何 Elo 之前：触发条件并不稀疏。</p>

<table>
  <thead>
    <tr>
      <th>半径</th>
      <th>触发的着数占比</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2</td>
      <td>23%</td>
    </tr>
    <tr>
      <td>3</td>
      <td>43%</td>
    </tr>
    <tr>
      <td>4</td>
      <td>72%</td>
    </tr>
  </tbody>
</table>

<p>斗兽棋的棋盘很小，兽穴又在底线上。在 R=4，也就是要早早看到竞速所需的半径下，这个延伸不过是「到处都多搜十二倍」，所以「精准手术」这个说法从一开始就是错的。</p>

<p>在 R=2，每组 300 对换色对局：</p>

<table>
  <thead>
    <tr>
      <th>组别</th>
      <th>Elo</th>
      <th>节点数对比对照组</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>兽穴附近 12 倍深度，免费给予</td>
      <td><strong>+45</strong></td>
      <td>3.3x</td>
    </tr>
    <tr>
      <td>预算中性，基础 3.7M + 兽穴附近 10M</td>
      <td><strong>-15</strong></td>
      <td>1.04x</td>
    </tr>
    <tr>
      <td>预算中性，基础 1.1M + 兽穴附近 20M</td>
      <td><strong>-12</strong></td>
      <td>0.98x</td>
    </tr>
  </tbody>
</table>

<p>同一个想法，同一份代码，符号相反。引擎的五百万节点由玩家愿意等多久决定，所以真实的延伸变不出深度：它只能从搜索的其余部分里拿。免费那一组测的是额外算力。跟兽穴没有任何关系。</p>

<p>我之所以跑预算中性那一组，是因为 +45 看着太好了。就此停手，会为一个价值略低于零的特性换来一周的工作量。</p>

<p>两组都只花了一个下午，因为两者都不需要动引擎。这个延伸只是测试框架的一条策略，根据棋盘条件改变节点预算。对于任何「让它更懂 X」形式的提案，先免费给它完美的 X，是弄清 X 到底有没有意义的最便宜办法。</p>

<h2 id="路线-b这个评估项本身">路线 B：这个评估项本身</h2>

<p>还是做了，因为搜索延伸失败的理由并不适用于评估项。延伸要花节点；评估项每个叶子几乎不花什么。</p>

<p>这是当时的评估函数。在棋盘上循环一遍，每个棋子独立贡献：</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="n">idx</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">N</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">v</span> <span class="o">=</span> <span class="n">VAL</span><span class="p">[</span><span class="nf">role_of</span><span class="p">(</span><span class="n">code</span><span class="p">)</span> <span class="k">as</span> <span class="nb">usize</span><span class="p">];</span>
    <span class="k">let</span> <span class="n">friendly</span> <span class="o">=</span> <span class="nf">color_of</span><span class="p">(</span><span class="n">code</span><span class="p">)</span> <span class="o">==</span> <span class="n">me</span><span class="p">;</span>
    <span class="n">s</span> <span class="o">+=</span> <span class="k">if</span> <span class="n">friendly</span> <span class="p">{</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">v</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="o">-</span><span class="mi">2</span> <span class="o">*</span> <span class="n">v</span> <span class="p">};</span>

    <span class="c1">// Advancement toward the relevant den: the enemy's for our pieces, ours for theirs.</span>
    <span class="k">let</span> <span class="n">target</span> <span class="o">=</span> <span class="k">if</span> <span class="n">friendly</span> <span class="p">{</span> <span class="n">enemy_den</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="n">own_den</span> <span class="p">};</span>
    <span class="k">let</span> <span class="n">dist</span> <span class="o">=</span> <span class="nf">manhattan</span><span class="p">(</span><span class="n">idx</span> <span class="k">as</span> <span class="nb">u8</span><span class="p">,</span> <span class="n">target</span><span class="p">);</span>
    <span class="k">let</span> <span class="n">advance</span> <span class="o">=</span> <span class="k">if</span> <span class="n">dist</span> <span class="o">&lt;=</span> <span class="mi">1</span> <span class="p">{</span> <span class="mi">400</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="p">(</span><span class="mi">16</span> <span class="o">-</span> <span class="n">dist</span><span class="p">)</span> <span class="o">*</span> <span class="mi">3</span> <span class="p">};</span>
    <span class="n">s</span> <span class="o">+=</span> <span class="k">if</span> <span class="n">friendly</span> <span class="p">{</span> <span class="n">advance</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="o">-</span><span class="n">advance</span> <span class="p">};</span>
<span class="p">}</span>
</code></pre></div></div>

<p>那个推进项正是评估函数对竞速视而不见的原因，原因在于对称性。我的跑者离你兽穴三格得 +39。你的跑者离我兽穴三格得 -39。双方都在冲刺得出的数字接近零，于是局面在最该被判定的那一刻读起来风平浪静。</p>

<p>所以这个项不能是又一个按棋子计的奖励。它必须是每方一个结论，只算一次，把两个跑者互相比较：</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="n">side</span> <span class="k">in</span> <span class="p">[</span><span class="n">me</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">me</span><span class="p">]</span> <span class="p">{</span>
    <span class="c1">// Nearest enemy runner to this side's den, and this side's nearest defender</span>
    <span class="c1">// to its own trap ring.</span>
    <span class="k">let</span> <span class="p">(</span><span class="k">mut</span> <span class="n">att</span><span class="p">,</span> <span class="k">mut</span> <span class="n">def</span><span class="p">)</span> <span class="o">=</span> <span class="p">(</span><span class="mi">99</span><span class="p">,</span> <span class="mi">99</span><span class="p">);</span>
    <span class="k">for</span> <span class="n">idx</span> <span class="k">in</span> <span class="mi">0</span><span class="o">..</span><span class="n">N</span> <span class="p">{</span> <span class="cm">/* ...scan once... */</span> <span class="p">}</span>

    <span class="k">if</span> <span class="n">att</span> <span class="o">&gt;</span> <span class="n">RACE_RADIUS</span> <span class="p">{</span> <span class="k">continue</span><span class="p">;</span> <span class="p">}</span>   <span class="c1">// no race here: contribute nothing</span>

    <span class="c1">// The side to move gets one free step in the race for its own den.</span>
    <span class="k">let</span> <span class="n">margin</span> <span class="o">=</span> <span class="n">att</span> <span class="o">-</span> <span class="n">def</span> <span class="o">+</span> <span class="nn">i32</span><span class="p">::</span><span class="nf">from</span><span class="p">(</span><span class="n">side</span> <span class="o">==</span> <span class="n">me</span><span class="p">);</span>
    <span class="k">let</span> <span class="n">pen</span> <span class="o">=</span> <span class="k">if</span> <span class="n">margin</span> <span class="o">&lt;=</span> <span class="mi">0</span> <span class="p">{</span> <span class="n">RACE_LOST</span> <span class="p">}</span>
              <span class="k">else</span> <span class="k">if</span> <span class="n">margin</span> <span class="o">==</span> <span class="mi">1</span> <span class="p">{</span> <span class="n">RACE_TIGHT</span> <span class="p">}</span>
              <span class="k">else</span> <span class="p">{</span> <span class="mi">0</span> <span class="p">};</span>
    <span class="n">score</span> <span class="o">+=</span> <span class="k">if</span> <span class="n">side</span> <span class="o">==</span> <span class="n">me</span> <span class="p">{</span> <span class="o">-</span><span class="n">pen</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="n">pen</span> <span class="p">};</span>
<span class="p">}</span>
</code></pre></div></div>

<p>防守方的距离量到<strong>陷阱环</strong>，而不是兽穴。那才是正确的拦截区，因为兽穴的三个相邻格<em>就是</em>它的三个陷阱，而站在陷阱上的棋子可以被任何防守棋子吃掉，不论等级。走进你兽穴的象必须穿过一个你的鼠能吃掉它的格子。</p>

<p>在它专为之设计的局面中，它改变了 17% 的选择着法，并在等节点下花掉约 17% 的实际耗时。每个权重 300 对换色对局，在计入这个开销之前：</p>

<table>
  <thead>
    <tr>
      <th>权重</th>
      <th>Elo</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>10</td>
      <td><strong>-3</strong></td>
    </tr>
    <tr>
      <td>25</td>
      <td><strong>+9</strong></td>
    </tr>
  </tbody>
</table>

<p>无效，而且是在宽松的那个方向上。</p>

<h2 id="我会保留什么">我会保留什么</h2>

<p>把预算固定住，否则你测的就是预算。实验的免费版本是最省事的搭法，而它会递给你一个自信的正数。这项改动本该从哪里拿资源，就从那里拿，再看结果能否存活。</p>

<p>这个陷阱一天里坑了我两次。同一个下午的和棋厌恶（contempt）扫描显示决定性对局从 32% 升到 50%，而这正是更高的 contempt 按构造必然产生的结果，因为自我对弈扫描中双方都用同一设置。只有让两个数值互相对抗，才能说明它是否有代价。结果没有，所以那一项发布了。</p>

<p>评估函数的缺口是真实的，诊断也正确。只是它背后什么也没有。在同一批对局中找到的两个常数，一个是过早结束对局的无吃子和棋计时，一个是接近零的和棋厌恶，把斗兽棋从四分之一的对局以胜负收场提升到约一半，而这两者都没教引擎任何东西。那个 issue 要的是理解。理解从来不是瓶颈。</p>

<p>这些对局是公开的，上面那个局面也是。分析棋盘跑的是同一个引擎，所以如果你认为蓝方该吃那只虎，可以让它把这条线走完。</p>

<div class="cta-row">
  <a class="cta cta-primary" href="https://mistboard.com/study/4UhOMlsE">浏览这 52 局</a>
  <a class="cta cta-secondary" href="https://mistboard.com/analysis/jungle?fen=6l%2F1tc2d1%2F3ep2%2F3T3%2F7%2F1R2r2%2F1PL1W2%2F3DCE1%2F7%20b%200%2020">重播该局面</a>
</div>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[三次尝试让斗兽棋引擎理解冲穴竞速，全部无效。冲穴竞速只占 4.7% 的对局，搜索加深 12 倍只换来两着；根本没有可挖的东西。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/jungle-den-term/social-card.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/jungle-den-term/social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">象棋冠军七十年，引擎详注</title><link href="https://brianhliou.com/zh-hans/posts/xiangqi-champions-annotated/" rel="alternate" type="text/html" title="象棋冠军七十年，引擎详注" /><published>2026-08-30T00:00:00+00:00</published><updated>2026-08-30T00:00:00+00:00</updated><id>https://brianhliou.com/posts/xiangqi-champions-annotated</id><content type="html" xml:base="https://brianhliou.com/posts/xiangqi-champions-annotated/"><![CDATA[<p>让国际象棋棋迷说出谁最伟大，你会得到一场有脉络的争论：菲舍尔、卡斯帕罗夫、卡尔森，都以1886年以来代代相传的头衔为尺度。换成象棋来问，大多数英文的回答止步于这个问题本身。</p>

<p>答案是有的，而且几乎无人异议。胡荣华拿过十四次全国冠军，十五岁夺得首冠，五十五岁拿下最后一冠，1960年至1979年的十届冠军全部由他独得或并列。</p>

<p>于是我把这份纪录整理了出来。两项象棋头衔的每一位冠军，大多数人配有一局引擎详注的对局，免费且可逐着打谱。</p>

<ul>
  <li><strong><a href="https://mistboard.com/blog/xiangqi-champions">历届全国冠军，1956至2025</a></strong>：22位得主，57次冠军</li>
  <li><strong><a href="https://mistboard.com/blog/xiangqi-world-championship">历届世界冠军，1990至2025</a></strong>：11位得主，19次冠军</li>
  <li><strong>两份研究</strong>，可逐条分支打谱：<a href="https://mistboard.com/study/ytSzepET">全国</a>、<a href="https://mistboard.com/study/1pfJeXA1">世界</a></li>
  <li>全部提供<strong>英文、简体中文和繁体中文</strong>版本</li>
</ul>

<h2 id="近年的纪录带着一个星号">近年的纪录带着一个星号</h2>

<p>2005年以来夺得全国冠军的十三人中，有十人被公开处罚，2010年至2023年的每一位冠军都在其中。2024年至2026年间，中国象棋协会对49人就买卖棋作出处罚，杭州一家法院判决六位特级大师受贿罪成立。我把所有名字连同处理结论一并保留在表格里，因为悄悄删掉他们只会让这份记录更失真。</p>

<p>这件事远不止表格里的一列那么简单，而且几乎没有英文报道。<a href="https://mistboard.com/blog/xiangqi-match-fixing">完整记述在这里</a>：调查经过、所有被处罚者、判罚理由，以及全部中文出处。</p>

<h2 id="背后的流程">背后的流程</h2>

<p>我为象棋对局搭了一条分析流水线，这些页面上的每一条注释都由它生成。输入一局棋，它返回一份成品研究：每一着都有评判，引擎偏好的替代着法挂成可打入的分支，每条分支末尾给出结论，并用平实的语言说明这一着损失了什么。</p>

<p>它分四个阶段运行。</p>

<p><strong>采集与校验。</strong> 棋谱来自公开档案，保存之前我会让每一局在规则引擎里重放一遍。无法合法重放的棋谱会被标记为损坏而不是发布。这比听上去更重要：档案里存在誊录错误，而没人核对过的棋谱迟早会把一步违规着法摆到读者面前。</p>

<p><strong>分析。</strong> 使用Pikafish，每个局面一百万节点，每一着跑一次，MultiPV 2，因此每个局面都会给出最佳着法和次选着法。次选是开销最大的部分，但物有所值：没有它，你可以说某一着差，却不能说某一着是唯一选择，于是<code class="language-plaintext highlighter-rouge">!</code>和<code class="language-plaintext highlighter-rouge">!!</code>就无法标注。在有子力被舍弃的那些着上还会做第二次搜索，看看引擎的变化是否接受。</p>

<p><strong>评判。</strong> 每一着前后的胜率决定它属于不精确、失误还是错着。另有一轮专门寻找值得称赞的着法。引擎自己的变化会作为同级分支挂在它本该取代的那一着上。</p>

<p><strong>评分。</strong> 每条分支以国际象棋棋手早已熟悉的评估符号收尾：<code class="language-plaintext highlighter-rouge">±</code> 明显优势，<code class="language-plaintext highlighter-rouge">⩲</code> 略优，<code class="language-plaintext highlighter-rouge">=</code> 均势。</p>

<p>这一切都不是为这25局专门定制的。它和Mistboard其他地方的变化分支与注释是同一套机器，把它对准一局新棋，花的是一个下午的引擎时间，而不是一个月的手工注解。</p>

<h2 id="数据">数据</h2>

<table>
  <thead>
    <tr>
      <th> </th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>局详注对局</td>
      <td>25</td>
    </tr>
    <tr>
      <td>步主线着法</td>
      <td>3,081</td>
    </tr>
    <tr>
      <td>步值得标注的着法</td>
      <td>201</td>
    </tr>
    <tr>
      <td>条引擎支线</td>
      <td>183</td>
    </tr>
    <tr>
      <td>步支线内的着法</td>
      <td>4,228</td>
    </tr>
    <tr>
      <td>步已发布着法树中的着法</td>
      <td>7,309</td>
    </tr>
    <tr>
      <td>个研究章节，两份名单合计</td>
      <td>25</td>
    </tr>
  </tbody>
</table>

<p>在201步被评判的着法中，108步是不精确，82步是失误或错着，11步是引擎想要称赞的着法。其中三步被标为妙手。</p>

<h2 id="整理这份纪录">整理这份纪录</h2>

<p>工作量更大的是数据而不是引擎。我找不到一份可供核对的英文名单，于是从中文资料中整理并交叉核对：57次全国冠军中的22位得主，19次世界冠军中的11位得主，含夺冠次数、每一个夺冠年份，1962年的并列冠军也标注为并列。</p>

<p>两张图表都由同一份数据生成，因此图与表不会互相矛盾。</p>

<p><img src="/assets/posts/every-chinese-chess-champion/national-champions.svg" alt="1956年至2025年全国象棋冠军时间轴，每位棋手一行，夺冠年份为绿色条，后被处罚的冠军为红色条，未举办赛事的年份为斜线列。" />
<em>胡荣华占据中间四十年。他连胜纪录中的空档来自文化大革命，而不是对手。从2005年起，色条转为红色。</em></p>

<p><img src="/assets/posts/every-chinese-chess-champion/world-champions.svg" alt="1990年至2025年象棋世界冠军时间轴。" />
<em>历史只有三分之一长，末尾却是同样的形状。</em></p>

<p>下面是1965年的决赛：首位冠军与五年前从他手中夺走头衔的人之间，九十回合的残局较量。</p>

<iframe src="https://mistboard.com/embed/study/ytSzepET/kkN9Bwhq?theme=light" title="杨官璘 对 胡荣华，1965年" loading="lazy" class="xq-embed"></iframe>

<h2 id="打谱">打谱</h2>

<p>如果你会下国际象棋，大约十分钟就能看懂象棋棋盘，注释使用的也是你已经熟悉的符号。入门页面约需五分钟，研究中的引擎变化都是可以直接打入的分支。</p>

<div class="cta-row">
  <a class="cta cta-primary" href="https://mistboard.com/learn/xiangqi">学习各子走法</a>
  <a class="cta cta-secondary" href="https://mistboard.com/study/ytSzepET">打谱冠军对局</a>
  <a class="cta cta-secondary" href="https://mistboard.com/">下一局棋</a>
</div>

<style>
/* Mistboard's replay widget puts the move list beside the board and stacks it
   underneath below a 720px viewport. An iframe's viewport is its own width, and
   this column is 680px, so at column width the embed always stacked and the
   board shrank to fit what was left. Where the page has room either side of the
   column, break out to 740px for the side-by-side layout; narrower than that,
   stack and take the extra height it needs.

   No border: the widget already draws its own panel, and a second frame around
   the whole thing reads as a screenshot pasted into the page. */
.xq-embed {
  display: block;
  width: 100%;
  height: 880px;
  border: 0;
}

@media (min-width: 960px) {
  .xq-embed {
    width: 740px;
    margin-left: -30px;
    /* The widget sizes the board to the shorter of its column's width and
       height, so at 620px the board was height-capped and sat in ~50px of dead
       space either side. 712px is the height at which it becomes width-capped
       instead: the board fills its column and the side gaps close. */
    height: 712px;
  }
}
</style>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[1956年以来的每一位象棋冠军，配以引擎对其对局的分析：25局详注，201步着法评判，可中英文逐着打谱。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/every-chinese-chess-champion/card.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/every-chinese-chess-champion/card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">机器人田径纪录同时被刷新</title><link href="https://brianhliou.com/zh-hans/posts/robot-records-moved-at-once/" rel="alternate" type="text/html" title="机器人田径纪录同时被刷新" /><published>2026-08-26T00:00:00+00:00</published><updated>2026-08-26T00:00:00+00:00</updated><id>https://brianhliou.com/posts/robot-records-moved-at-once</id><content type="html" xml:base="https://brianhliou.com/posts/robot-records-moved-at-once/"><![CDATA[<p>8月22日，在北京举行的世界人形机器人运动会上，一台人形机器人以9.39秒跑完100米，我能找到的每一家英文媒体都把这个数字和博尔特的9.58秒并列印了出来。<a href="https://www.cbsnews.com/news/china-robot-usain-bolt-sprint-run-record-faster/">CBS</a>、<a href="https://www.bloomberg.com/news/articles/2026-08-23/humanoid-robot-beats-usain-bolt-s-100m-record-in-beijing">Bloomberg</a>、<a href="https://fortune.com/2026/08/22/chinese-robots-beijing-games-athletic-records-humans-usain-bolt/">Fortune</a>、<a href="https://www.nbcnews.com/tech/tech-news/chinese-humanoid-robot-lightning-beats-human-100m-world-record-rcna593869">NBC</a>、<a href="https://www.espn.com/olympics/story/_/id/49692320/humanoid-robots-surpass-human-records-100m-high-jump">ESPN</a>、<a href="https://www.aljazeera.com/video/newsfeed/2026/8/23/chinese-robot-beats-usain-bolts-100m-world-record-at-humanoid-games">Al Jazeera</a>、<a href="https://www.france24.com/en/asia-pacific/20260823-humanoid-robots-break-records-at-competition-in-beijing">France 24</a>、<a href="https://www.abc.net.au/news/2026-08-22/the-robot-that-can-beat-usain-bolt/107067592">ABC</a>。</p>

<p>三天后，同一实验室的另一支队伍跑出8.86秒，通讯社又报了一轮。闭幕之夜决赛举行，第三支队伍以8.64秒夺冠。</p>

<p>前两个成绩都不是决赛成绩。9.39秒出自预赛，8.86秒出自半决赛，也就是说，有四天时间，所有英文标题赖以成立的「纪录」其实是一个资格赛成绩。主办方早就说过这种对比并不成立。他们是用中文说的，没有传过去。</p>

<p>我去找中文报道，是因为一台机器在十二个月里快了2.5倍，要么是真正的突破，要么是衡量口径变了，而英文报道没有给我任何办法判断是哪一种。我找到的结果是：100米根本不是重点。所有计时项目同时发生了跃迁。</p>

<h2 id="整张赛程表按同一倍数跃升">整张赛程表按同一倍数跃升</h2>

<table>
  <thead>
    <tr>
      <th>项目</th>
      <th>2025</th>
      <th>2026</th>
      <th>人类纪录</th>
      <th>一年</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>100米</td>
      <td>21.50秒</td>
      <td><strong>8.64秒</strong></td>
      <td>9.58秒</td>
      <td>快2.49倍</td>
    </tr>
    <tr>
      <td>400米</td>
      <td>1:28.03</td>
      <td><strong>38.15秒</strong></td>
      <td>43.03秒</td>
      <td>快2.31倍</td>
    </tr>
    <tr>
      <td>1500米</td>
      <td>6:34.40</td>
      <td><strong>2:21.64</strong></td>
      <td>3:26.00</td>
      <td>快2.78倍</td>
    </tr>
    <tr>
      <td>半程马拉松</td>
      <td>2:40:42</td>
      <td><strong>50:26</strong></td>
      <td>56:42</td>
      <td>快3.19倍</td>
    </tr>
  </tbody>
</table>

<p>2025年那一栏里的每台机器都比人慢，多数慢一倍。在包含本表之外两个项目的完整赛程中，2026年的机器人在六个项目里有四个超过了人类成绩。</p>

<p><img src="/assets/posts/robot-records-moved-at-once/curve.svg" alt="左：2005至2026年有记录的最快足式移动速度。右：四个计时项目中机器人成绩相对人类世界纪录的倍数，2025年运动会对比2026年运动会。" />
<em>左：十一年间年增4.5%，然后出现一个台阶。右：机器人成绩除以人类世界纪录。在线上方表示比人慢，下方表示比人快。四个项目都在十二个月内越过了这条线。</em></p>

<p>单个项目提升2.5倍，可能是某支队伍的突破。四个项目同时提升2.3倍到3.2倍，跨不同队伍、不同机器，那就是关于整个领域的断言了。</p>

<h2 id="足式机器人停滞了十年">足式机器人停滞了十年</h2>

<p>其中一部分是真实的，记录本身说明了这一点。</p>

<table>
  <thead>
    <tr>
      <th>年份</th>
      <th>机器</th>
      <th>速度</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1996</td>
      <td>Honda P2</td>
      <td>仅能行走</td>
    </tr>
    <tr>
      <td>2005</td>
      <td>ASIMO</td>
      <td>6.0 km/h</td>
    </tr>
    <tr>
      <td>2011</td>
      <td>ASIMO</td>
      <td>9.0 km/h</td>
    </tr>
    <tr>
      <td>2022</td>
      <td>Cassie</td>
      <td>14.6 km/h</td>
    </tr>
    <tr>
      <td>2025</td>
      <td>天工 Ultra</td>
      <td>16.7 km/h</td>
    </tr>
    <tr>
      <td>2026</td>
      <td>天工 Ultra</td>
      <td>41.7 km/h</td>
    </tr>
  </tbody>
</table>

<p>ASIMO的9 km/h大约保持了十一年。从2011年到2022年，这一领域的年复合增速是4.5%，换个说法就是停滞。随后强化学习步态出现，2022年到2026年的年复合增速达到30%。</p>

<p>这个拐点是真实的，而中文的工程解读里有一项比冲刺成绩更值得注意：循迹线被SLAM取代，机器是在自主导航，而不是沿着一条色带走。这一点在英文报道里完全没有出现。</p>

<p>2026年的数字仍然对不上。在一条本已急剧上翘的曲线上，一年2.5倍是个异常值。这就是为什么在相信标题之前，应该先看规则手册。</p>

<h2 id="主办方实际公布了什么">主办方实际公布了什么</h2>

<blockquote>
  <p>机器人比赛与人类田径赛事在起跑方式、身体结构、计时认证上并不等同。赛会成绩与人类世界纪录属于两个体系。</p>

  <p><small>需要说明的是，机器人比赛与人类田径赛事在起跑方式、身体结构、计时认证上并不等同，赛会成绩与人类世界纪录属于两个体系。</small></p>
</blockquote>

<p>这是赛会自己的声明，见于<a href="https://www.163.com/dy/article/L4VANPLT0514R9OJ.html">中文报道</a>，而我读到的每一篇英文报道都没有。</p>

<p>中文的每日报道里还有另外三件事。</p>

<p><strong>三次刷新纪录的跑动中，有两次是资格赛。</strong> 9.39秒出自8月22日晚的大尺寸组预赛：九组，四十支队伍。8.86秒出自25日的第一个半决赛小组。天骄队在26日以8.64秒夺得决赛冠军，并同时拿下亚军，所以机器人跑过的最快100米只在赛事结束当天获得了一轮新闻周期。</p>

<p>通讯社在这一点上出现分歧。<a href="https://www.aljazeera.com/sports/2026/8/25/chinese-robot-tiangong-clocks-sub-9-second-100-metres-in-beijing">路透</a>把8.86秒定位在「大尺寸机器人组的半决赛」；ABC News和《华盛顿时报》刊载的<a href="https://abcnews.com/Technology/wireStory/chinese-humanoid-robot-sets-new-100-meter-sprint-135942873">美联社版本</a>给出了成绩、博尔特的9.58秒和三天前的9.39秒，却始终没有说明是哪一轮。到闭幕日，两家都补上了，<a href="https://www.globaltimes.cn/page/202608/1369085.shtml">环球时报</a>称之为「100米大尺寸组决赛」。正确的轮次在报道结束之后才姗姗来迟。</p>

<p><a href="https://www.clickorlando.com/business/2026/08/26/a-robot-sprinter-shatters-a-100-meter-record-again-as-sparks-fly-at-chinas-robot-competition/">美联社的闭幕报道</a>记下了任何纪录表都不会有的细节：包括冠军在内的几台完赛机器人冲过终点后撞上了缓冲护栏，工作人员拿着灭火器上场处理在地上冒火花的机器。停下来这件事不算在计时成绩里。</p>

<p><strong>分组是新设的。</strong> 2026年首次按身高把田径项目分组。大尺寸组为1.4米以上，小尺寸组为1.4米以下。去年只有一个不分组的赛场，所以北京联合大学一台80厘米的参赛机器才会和1.8米的天工 Ultra 同场跑100米。</p>

<p><strong>四支队伍在英文里被压缩成了一个名字。</strong></p>

<table>
  <thead>
    <tr>
      <th>中文</th>
      <th>英文</th>
      <th>夺得的项目</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>天工</td>
      <td>Tiangong（也作 Tien Kung，「Sky Project」）</td>
      <td>400米两个组别、4x100接力</td>
    </tr>
    <tr>
      <td>天卓</td>
      <td>Tianzhuo</td>
      <td>1500米、原地跳高；100米预赛中率先撞线</td>
    </tr>
    <tr>
      <td>天骄</td>
      <td>Tianjiao</td>
      <td><strong>100米决赛</strong>、跳远、400米障碍</td>
    </tr>
    <tr>
      <td>天骁</td>
      <td>Tianxiao</td>
      <td>100米小尺寸组</td>
    </tr>
  </tbody>
</table>

<p>这四支中有三支是北京人形机器人创新中心的队伍，它们使用的机器都是天工 Ultra。所以英文的叙述框架，一个型号从9.39秒进步到8.86秒再到8.64秒，就硬件而言是对的，但丢掉了三支不同的队伍。那个散落的9.32秒数字，有说法归于荣耀的「闪电」在赛前测试中的成绩，也有说法归于天工 Ultra 在后面某一组的成绩，我无法从公开来源把两者对上。</p>

<h2 id="机器人赢的是人类因疲劳而输的项目">机器人赢的是人类因疲劳而输的项目</h2>

<p>一旦掌握了分组划分和完整赛程，「机器人战胜人类」就是六项断言，而不是一项：</p>

<table>
  <thead>
    <tr>
      <th>项目</th>
      <th>机器人</th>
      <th>人类纪录</th>
      <th>差距</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>100米</td>
      <td>8.64秒</td>
      <td>9.58秒</td>
      <td>+9.8%</td>
    </tr>
    <tr>
      <td>400米，大尺寸组</td>
      <td>38.15秒</td>
      <td>43.03秒</td>
      <td>+11.3%</td>
    </tr>
    <tr>
      <td>400米，小尺寸组</td>
      <td>45.66秒</td>
      <td>43.03秒</td>
      <td><strong>−6.1%</strong></td>
    </tr>
    <tr>
      <td>1500米</td>
      <td>2:21.64</td>
      <td>3:26.00</td>
      <td>+31.2%</td>
    </tr>
    <tr>
      <td>半程马拉松</td>
      <td>50:26</td>
      <td>56:42</td>
      <td>+11.1%</td>
    </tr>
    <tr>
      <td>跳远</td>
      <td>7.97米</td>
      <td>8.95米</td>
      <td><strong>−10.9%</strong></td>
    </tr>
  </tbody>
</table>

<p>优势随距离增长：100米领先百分之十，400米十一，1500米三十一。电池不产生乳酸，所以比赛越长，人类纪录衡量的越是人类生理，说明机器的成分越少。人类短跑选手在400米上大约能保持100米配速的89%，大尺寸组机器人保持了91%。</p>

<p>当项目需要的是一次爆发而非持续输出时，机器人就输了。跳远成绩7.97米，对比迈克·鲍威尔1991年的8.95米；小尺寸组机器人跑400米比人慢。半程马拉松以11.1%打破了这一趋势，我倾向于归因于路面条件和电池，而不是步态。</p>

<h2 id="跳高衡量的完全是另一回事">跳高衡量的完全是另一回事</h2>

<p>一台机器人在原地跳高中越过2.8843米，而去年 Robot Era 的星动 L7 成绩是95.641厘米。报道把2026年的数字和索托马约尔的2.45米并列。</p>

<p>2.8843米出自开幕式前的一场表演。正式奖牌项目在8月25日举行，天卓队015号参赛机器以3.4米夺冠，天工 Ultra 机器包揽前四。新华社自己的闭幕总结把这一年的进步表述为从0.95641米到3.40米，决赛对决赛。英文报道拿表演成绩去比索托马约尔，却始终没有提奖牌赛结果，这意味着英文媒体上每一次与索托马约尔的对比，比的都是一场表演。</p>

<p>计分规则如下：</p>

<blockquote>
  <p>以机器人跳至最高点时，身体任何部位最低点至地面的垂直距离为成绩。</p>

  <p><small>以机器人跳至最高点时，身体任何部位最低点至地面的垂直距离为成绩。</small></p>
</blockquote>

<p>规则（<a href="https://k.sina.cn/article_7879924061_1d5ae195d02001ixts.html">中文来源</a>）刻意不规定机器人如何起跳。所以这个数字是原地起跳、方式不受限制条件下的整体离地高度，而索托马约尔的2.45米是助跑起跳的过杆高度。这是两种以不同方式测量的不同量，而不是同一个项目的两个版本。</p>

<p>这一条也不是翻译失误。中文报道把2.45米描述为人类男子双脚<em>原地</em>跳高最好成绩，而索托马约尔的纪录是助跑跳。错误起于中文通稿，英文报道原封不动地继承了。</p>

<h2 id="赛事把遥操作的分值打了对折">赛事把遥操作的分值打了对折</h2>

<p>2026年51个项目中有21个是场景赛事，比2025年的6个大幅增加。扩容发生在这里，而不是田径。</p>

<p>场景计分对完全自主完成的任务赋予1.0的权重，<a href="https://www.bjnews.com.cn/detail/1787486804129130.html">同一任务在遥控下完成则为0.5</a>。包括400米在内的若干竞速项目今年彻底取消了遥操作，<a href="https://finance.sina.cn/stock/jdts/2026-08-25/detail-inipnpza5667596.d.html">全程完全自主</a>。</p>

<p>遥操作是人形机器人领域的可信度问题。演示中的机器人到底是在思考还是被人驾驶，是每个怀疑者首先要问的，而各家公司不断被指责在这一点上含糊其辞。这届赛事的主办方把答案写进了计分规则。被驾驶的机器人只得一半分。</p>

<p>关于这一点，我没有找到任何英文报道。</p>

<p>8月23日场景赛事的结果如下：</p>

<table>
  <thead>
    <tr>
      <th>场景</th>
      <th>冠军</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>图书馆，图书整理</td>
      <td>清华／上海交大／智元联合队，270分</td>
    </tr>
    <tr>
      <td>酒店，宾客服务</td>
      <td>优理奇黑豹</td>
    </tr>
    <tr>
      <td>应急，消防救援</td>
      <td>上海智元</td>
    </tr>
    <tr>
      <td>园林，公园管理</td>
      <td>北京人形与河南科技大学</td>
    </tr>
    <tr>
      <td>家庭，家政</td>
      <td>北京银河星数</td>
    </tr>
  </tbody>
</table>

<p>这些任务的具体程度是短跑所没有的。用镊子夹豆子。拧螺丝。称量粉末。关阀门。园林组机器人有三十分钟时间检查违禁物品、提醒游客不文明行为并捡拾垃圾。<a href="https://www.news.cn/tech/20260821/11f2ebaa5b0341b3b957f31bef793f48/c.html">新华社对这一类别的定位</a>是面向脏、险、繁、难工作中的劳动力缺口。这是否能落地是另一个问题；但至少这是关于部署的主张，而不是关于速度。</p>

<p>赛程的其余部分也是如此。清华 Vulcan 队在2025年5v5足球决赛中以1比0战胜由 HTWK Robots 和 Nao Devils 组成的德国联合队，那是我在两届赛事中找到的唯一非中国决赛队伍。香港大学 SMASH 队拿下乒乓球。智元的灵犀 X2 以1:28.32赢得100米障碍，智元首次参赛便在两张奖牌榜上都居首，18金、共46枚，用的是量产机型而非专门打造的竞速机；其灵巧手子公司拿下八个手部项目中的七个。主办方在闭幕时宣布免费开放涵盖十二个场景、四十四项任务的2,500小时真实世界人形机器人数据。最后这一项对这个领域未来一年的意义，超过赛道上的任何成绩，而这些在英文里都没有产生一条标题。</p>

<h2 id="真正在册的是什么">真正在册的是什么</h2>

<p>我把能溯源并核实的机器人运动纪录都整理了一遍，共四十一条，附上说明。其中重要的几条：</p>

<table>
  <thead>
    <tr>
      <th>项目</th>
      <th>成绩</th>
      <th>机器</th>
      <th>日期</th>
      <th>状态</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>100米</td>
      <td><strong>24.73秒</strong></td>
      <td>Cassie（俄勒冈州立／Agility）</td>
      <td>2022-05-11</td>
      <td><strong>吉尼斯认证</strong></td>
    </tr>
    <tr>
      <td>100米</td>
      <td>9.39秒</td>
      <td>天卓队</td>
      <td>2026-08-22</td>
      <td>媒体报道，预赛</td>
    </tr>
    <tr>
      <td>100米</td>
      <td>8.86秒</td>
      <td>天工</td>
      <td>2026-08-25</td>
      <td>媒体报道，半决赛</td>
    </tr>
    <tr>
      <td>100米</td>
      <td><strong>8.64秒</strong></td>
      <td>Tianjiao</td>
      <td>2026-08-26</td>
      <td>赛会官方，决赛</td>
    </tr>
    <tr>
      <td>人形机器人行走</td>
      <td>3.3 m/s</td>
      <td>宇树 H1 V3.0</td>
      <td>2024-03</td>
      <td><strong>吉尼斯认证</strong></td>
    </tr>
    <tr>
      <td>足式最高速度</td>
      <td>45.5 km/h</td>
      <td>BD Cheetah</td>
      <td>2012-03</td>
      <td>跑步机，有线牵引，四足</td>
    </tr>
    <tr>
      <td>罚球</td>
      <td>连续2,020次</td>
      <td>Toyota CUE3</td>
      <td>2019</td>
      <td><strong>吉尼斯认证</strong></td>
    </tr>
    <tr>
      <td>最远投篮</td>
      <td>24.55米</td>
      <td>Toyota CUE6</td>
      <td>2024-09-26</td>
      <td><strong>吉尼斯认证</strong></td>
    </tr>
  </tbody>
</table>

<p>双足机器人<a href="https://www.guinnessworldrecords.com/world-records/629600-fastest-100-m-by-a-bipedal-robot">经认证的100米纪录</a>仍是 Cassie 的24.73秒，2022年5月创造于俄勒冈州立大学。吉尼斯没有认证两届运动会中的任何成绩。官方数字和标题数字相差16秒，却没人去对账。</p>

<p>Boston Dynamics 的 Cheetah 之所以在表里，是因为它才是真正的天花板。2012年的45.5 km/h，十四年后仍无人企及，而它是一台在跑步机上、由外置液压系统牵引的四足机器。把机器人和短跑选手作比的报道从不提它。</p>

<p>还有一件事。这里每一项吉尼斯认证的纪录都来自美国或日本，且至少已有两年。每一项中国的成绩都是赛会官方或媒体报道。这不是在断言谁造的机器人更快，而是在说谁愿意接受外部认证，这也解释了为什么报道中最快的成绩和经核实的最快成绩是两个不同的数字。</p>

<h2 id="规则能解释什么不能解释什么">规则能解释什么，不能解释什么</h2>

<p>规则手册解释了很多混乱：三次纪录跑动中有两次是资格赛，身高分组拆开了过去同场竞技的赛场，跳高衡量的量与被拿来比较的人类项目不同，而主办方明确否认了这种对比。</p>

<p>工程层面的说明是具体的，而它只存在于我能找到的一个地方：<a href="https://xinwen.bjd.com.cn/content/s6a8bd362e4b0e45f3fd66b96.html">新京报的一篇解读</a>，中文。关节扭矩上限提高到大致相当于小型电动车的水平。更大的电池以维持功耗。更轻的机身。按项目调参，一位工程师总结为100米要加速度，而400米和1500米要过弯。以及每个项目约一个月的集中强化学习训练。所有这些都合理，多数可核查。</p>

<p>但这些都解释不了跃升的幅度。一个年复合增速30%的领域可以出现一个丰收赛季。但我找不到任何说法能解释四个项目同时提升2.3倍到3.2倍，跨不同队伍、不同机器。这种同步通常意味着规则变了或测量变了。两者的证据我都没找到。</p>

<p>能给出定论的是：公开的计时方法、2025与2026规则手册的差异对照，以及由非赛事主办方做出的认证。这三样都没有公开。</p>

<h2 id="赛事自己先说了">赛事自己先说了</h2>

<p>机器人很快，而且在迅速变快，工程层面的说明也站得住。我并不是说结果造假。出问题的是对比。关于起跑方式和计时认证的说明写在中文稿里，从未进入英文。</p>

<p>赛事中试图做到严谨的那一半被落下了。一个因为你遥控机器人就把你分数减半的组委会，是在认真对待那个难题，比大多数演示视频被无评论转发的公司都认真。那才是值得报道的，而它就写在计分规则里。</p>

<p>把这些拼起来比应有的难度大得多。任何语言都没有官方成绩发布渠道，我能找到的2025年运动会最完整奖牌榜，是北京市政府网站上的一张PNG图片。哪些成绩能留存下来近乎随机。2026年的接力成绩公布了；五项全能没有，而那正是闭幕日的项目，机器人要在操作工具、负重的同时跑完100米。它比赛程上任何其他项目都更好地回应了单纯短跑所招致的质疑，而它在任何语言里都没有公开成绩。</p>

<p>如果你要一个能经受住所有附注的数字：双足机器人100米的官方计时成绩是24.73秒，而这项纪录已有四年。</p>

<hr />

<p><strong>原始来源。</strong> 这些内容几乎都没有英文版本，所以中文原文才是有用的链接：</p>

<ul>
  <li><a href="https://app.myzaker.com/news/article.php?pk=6a8a60b2b15ec060b34bd5c7">ZAKER</a> - 2026年短跑，附英文通讯社没有报道的同比对照</li>
  <li><a href="https://www.163.com/dy/article/L4VANPLT0514R9OJ.html">网易</a> - 载有主办方关于不可比性的声明</li>
  <li><a href="https://k.sina.cn/article_7879924061_1d5ae195d02001ixts.html">新浪</a> - 原地跳高计分规则</li>
  <li><a href="https://www.news.cn/sports/20260824/f6eaa13b7b434f2cb47134e34cb606ae/c.html">新华社</a>和<a href="https://m.gmw.cn/2026-08/24/content_38959523.htm">光明网</a> - 2026年每日成绩，含身高分组</li>
  <li><a href="https://www.news.cn/photo/20260826/a659737a9e8a461f969b11a1f5914727/c.html">新华社图片通稿</a> - 100米决赛，两个组别，附队伍名称</li>
  <li><a href="https://www.news.cn/sports/20260827/9405acb738244569837ce7c7bc729e39/c.html">新华社闭幕总结</a> - 各项田径纪录同比，决赛对决赛</li>
  <li><a href="http://www.news.cn/20250817/6fbd7cf29b01459c8c621ff9eab9678b/c.html">新华社，2025</a>和<a href="https://m.bjnews.com.cn/detail/1755570203129946.html">新京报</a> - 首届运动会</li>
  <li><a href="https://www.ncsti.gov.cn/kjdt/ztbd/2025sjrxjqrydh/202508/t20250819_216546.html">北京市科委</a> - 现存最完整的2025年奖牌榜，以图片形式发布</li>
</ul>

<p>更早的纪录：<a href="https://www.guinnessworldrecords.com/world-records/629600-fastest-100-m-by-a-bipedal-robot">吉尼斯</a>、<a href="https://news.oregonstate.edu/news/bipedal-robot-developed-oregon-state-makes-history-learning-run-completing-5k">俄勒冈州立关于 Cassie 跑5公里的报道</a>、<a href="https://spectrum.ieee.org/honda-p2-robot-ieee-milestone">IEEE Spectrum 关于 Honda P2 的文章</a>，以及<a href="https://newatlas.com/darpa-drc-finals-2015-results-kaist-win/37914/">2015年DARPA机器人挑战赛决赛</a>。</p>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[2025年，人形机器人在所有计时田径项目上都输给了人类纪录。一年后，它们在六个项目中赢下四个；100米纪录在五天内被刷新三次。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/robot-records-moved-at-once/thumbnail.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/robot-records-moved-at-once/thumbnail.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">餐厅违规条数大半只是记账方式</title><link href="https://brianhliou.com/zh-hans/posts/restaurant-violations-are-bookkeeping/" rel="alternate" type="text/html" title="餐厅违规条数大半只是记账方式" /><published>2026-08-18T00:00:00+00:00</published><updated>2026-08-18T00:00:00+00:00</updated><id>https://brianhliou.com/posts/restaurant-violations-are-bookkeeping</id><content type="html" xml:base="https://brianhliou.com/posts/restaurant-violations-are-bookkeeping/"><![CDATA[<p>美国每个卫生部门都会公布餐厅检查结果，也有一长串应用试图在你挑选餐厅的那一刻把这些结果摆在你面前。它们的前提是：违规条数能告诉你一些关于后厨的信息。</p>

<p>我本想比较几个辖区，看看各县标准到底差多少。结果发现这种比较根本做不了，而原因比比较本身更有意思。</p>

<p>下面的一切都来自公开的实时 API。<a href="https://github.com/brianhliou/food-inspection-comparability">代码在这里</a>，只用标准库、不需要 API key 就能重新生成每一个数字。</p>

<h2 id="两个县一张表相差-265-倍">两个县，一张表，相差 2.65 倍</h2>

<p>Boulder County 和 Tri-County（Adams、Arapahoe、Douglas）都向科罗拉多州的开放数据门户发布数据，都使用同一份 56 项的 FDA 食品法典检查表。相同的工具，相同的违规代码 FC01 到 FC56，相同的州。</p>

<p>两个数据集重叠的部分，即 2019 年至 2022 年 10 月的例行检查：</p>

<table>
  <thead>
    <tr>
      <th> </th>
      <th>每次检查的违规条数</th>
      <th>n</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Boulder County</td>
      <td>2.10</td>
      <td>1,984</td>
    </tr>
    <tr>
      <td>Tri-County</td>
      <td><strong>5.57</strong></td>
      <td>7,886</td>
    </tr>
  </tbody>
</table>

<p>我最初的想法是 Tri-County 更严。数据似乎也支持这一点。Tri-County 是覆盖三个县的单一机构，这就把地理与监管者分开了；在其内部，三个县分别是 5.83、5.36 和 5.54。同一机构、跨越两条县界，差距约 9%。而机构之间是 165%。</p>

<p>接着我固定住餐厅。Subway 就是 Subway：相同的企业流程，相同的设备，相同的审核制度。</p>

<table>
  <thead>
    <tr>
      <th>连锁品牌</th>
      <th>Boulder</th>
      <th>Tri-County</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Subway</td>
      <td>2.42</td>
      <td>4.41</td>
    </tr>
    <tr>
      <td>Starbucks</td>
      <td>0.65</td>
      <td>2.18</td>
    </tr>
    <tr>
      <td>Chipotle</td>
      <td>0.69</td>
      <td>1.94</td>
    </tr>
    <tr>
      <td>McDonald’s</td>
      <td>1.47</td>
      <td>3.11</td>
    </tr>
    <tr>
      <td>Taco Bell</td>
      <td>1.00</td>
      <td>3.36</td>
    </tr>
    <tr>
      <td>Wendy’s</td>
      <td>0.11</td>
      <td>4.47</td>
    </tr>
    <tr>
      <td><strong>合计</strong></td>
      <td><strong>1.15</strong></td>
      <td><strong>3.16</strong></td>
    </tr>
  </tbody>
</table>

<p>九个连锁品牌，九个都指向同一方向，合计 2.76 倍。那时我确信，科罗拉多州两个相邻卫生部门之间的执法力度存在真实差异。</p>

<h2 id="这个数字是个分数而我只拿到了分子">这个数字是个分数，而我只拿到了分子</h2>

<p>Boulder 为检查表的每一项各发布一行，每行带一个状态。Tri-County 每次检查发布一行，带 56 个二元标记。</p>

<p>差别在于每种格式能表达什么。</p>

<table>
  <thead>
    <tr>
      <th>检查员记录了什么</th>
      <th>Boulder</th>
      <th>Tri-County</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>已开具违规</td>
      <td><code class="language-plaintext highlighter-rouge">Out</code>、<code class="language-plaintext highlighter-rouge">Out-High</code>、<code class="language-plaintext highlighter-rouge">Out-Medium</code>、<code class="language-plaintext highlighter-rouge">Out-Low</code></td>
      <td>标记 = 1</td>
    </tr>
    <tr>
      <td>看过，没问题</td>
      <td><code class="language-plaintext highlighter-rouge">In</code></td>
      <td><em>无法区分</em></td>
    </tr>
    <tr>
      <td>没看</td>
      <td><code class="language-plaintext highlighter-rouge">Not Observed</code></td>
      <td><em>无法区分</em></td>
    </tr>
    <tr>
      <td>此处不适用</td>
      <td><code class="language-plaintext highlighter-rouge">Not Applicable</code></td>
      <td><em>无法区分</em></td>
    </tr>
  </tbody>
</table>

<p>Boulder 能说「我查过这一项，没问题」和「我根本没查这一项」。Tri-County 的格式把两者都压成了零。</p>

<p>于是我统计了 Boulder 的检查员实际评估了表格的多大比例：</p>

<table>
  <thead>
    <tr>
      <th> </th>
      <th>表格项数</th>
      <th><strong>已评估项数</strong></th>
      <th>违规条数</th>
      <th>每个已评估项的违规率</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Boulder</td>
      <td>56.8</td>
      <td><strong>24.1</strong></td>
      <td>2.10</td>
      <td><strong>8.7%</strong></td>
    </tr>
    <tr>
      <td>Tri-County</td>
      <td>56</td>
      <td>无法得知</td>
      <td>5.57</td>
      <td>若按全部 56 项计则为 9.9%</td>
    </tr>
  </tbody>
</table>

<p>Boulder 的检查员有 58% 的表格内容根本没碰。用实际查看过的项数作分母，2.65 倍就变成了约 1.14 倍。</p>

<p>即便如此，这仍然夸大了残余差异，因为 Tri-County 的分母无法复原。如果他们的检查员同样只评估约 24 项，他们的真实违规率大约是 23%，是 Boulder 的两倍多，效应的方向就反过来了。Boulder 的比率有上下界，Tri-County 的没有。</p>

<p>马里兰州 Montgomery County 使用一份 15 项的表格，采用同样的三分类词汇，标为「Not Observed」的项占 2% 到 6%，而 Boulder 是 58%。没有全国统一惯例可供归一化，这正是为什么任何只比较已公布条数的人都看不见这个问题。</p>

<h2 id="同样的问题也出现在时间维度上">同样的问题也出现在时间维度上</h2>

<p>如果这个数字会随记录惯例而变动，那么只要某个辖区改变了记录方式，它在这个辖区内部也应当变动。</p>

<p>加州 Marin County 公布了 12 年的检查数据。按年份统计的每次例行检查违规条数：</p>

<p><img src="/assets/posts/restaurant-violations-are-bookkeeping/marin-break.svg" alt="Marin County 按年份的每次例行检查违规条数，以及同一批八名检查员在 2019 年前后的表现" />
<em>左：序列在 2019 年断裂，此后再未恢复。右：跨越断点两侧工作的每一位检查员都下降了。</em></p>

<table>
  <thead>
    <tr>
      <th>2014</th>
      <th>2015</th>
      <th>2016</th>
      <th>2017</th>
      <th>2018</th>
      <th>2019</th>
      <th>2020</th>
      <th>2021</th>
      <th>2022</th>
      <th>2023</th>
      <th>2024</th>
      <th>2025</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>4.08</td>
      <td>3.73</td>
      <td>4.97</td>
      <td>5.02</td>
      <td>3.63</td>
      <td><strong>1.42</strong></td>
      <td>1.21</td>
      <td>0.74</td>
      <td>0.95</td>
      <td>0.93</td>
      <td>1.01</td>
      <td>1.07</td>
    </tr>
  </tbody>
</table>

<p><strong>在单个年度边界上从 4.30 降到 1.11。</strong>同期检查量还上升了，从 2018 年的 1,351 次例行检查增加到 2019 年的 1,514 次。违规代码词汇没有变化。评级牌项目自 2015 年起就已在运行。</p>

<p>Marin 在每一行都标注了检查员姓名，几乎没有别的辖区这样做。所以我能核查人员是否更换过。在断点两侧各至少有 40 次例行检查的检查员：</p>

<table>
  <thead>
    <tr>
      <th>检查员</th>
      <th>2019 年之前</th>
      <th>2019+</th>
      <th>变化</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>A</td>
      <td>7.90</td>
      <td>1.42</td>
      <td><strong>−6.48</strong></td>
    </tr>
    <tr>
      <td>B</td>
      <td>5.17</td>
      <td>1.27</td>
      <td>−3.90</td>
    </tr>
    <tr>
      <td>C</td>
      <td>4.32</td>
      <td>1.10</td>
      <td>−3.22</td>
    </tr>
    <tr>
      <td>D</td>
      <td>3.89</td>
      <td>2.09</td>
      <td>−1.79</td>
    </tr>
    <tr>
      <td>E</td>
      <td>3.60</td>
      <td>0.91</td>
      <td>−2.68</td>
    </tr>
    <tr>
      <td>F</td>
      <td>2.65</td>
      <td>0.90</td>
      <td>−1.75</td>
    </tr>
    <tr>
      <td>G</td>
      <td>1.43</td>
      <td>0.81</td>
      <td>−0.62</td>
    </tr>
    <tr>
      <td>H</td>
      <td>1.02</td>
      <td>0.93</td>
      <td>−0.09</td>
    </tr>
  </tbody>
</table>

<p>八个人全部下降。合计 −69%。检查员 A 是同一个人做同一份工作，从每次检查 7.90 条违规降到 1.42 条。</p>

<p>再固定住餐厅：在断点两侧都被检查过的 1,059 家商户，从 4.58 降到 1.11。</p>

<p>同样的人。同样的餐厅。同样的代码。违规条数只剩四分之一。</p>

<p>真正变化的东西体现在检查如何被分类上。「未发现问题」的比例几乎没动，从 11-16% 变为 13-26%。被归为重大问题的比例从 23-39% 降到 8-15%，差额被轻微问题吸收，而每次开具违规的检查中逐条列出的违规数从约 4.1-5.8 降到 1.1-2.1。一次检查发现问题的概率大致稳定。每次检查被写下来的问题数量则崩塌了。</p>

<h2 id="核查我看到的是不是一次数据迁移">核查我看到的是不是一次数据迁移</h2>

<p>能推翻这一结论的解释是数据来源。如果 2019 年之前的行来自另一个系统并被迁移进来，那这个断点就是数据集的假象，而不是实务的变化。</p>

<p>三项检验，全部为否：</p>

<p><strong>记录 ID 是连续的。</strong>全部 13 年是一个单调递增的序列，且在边界处范围有重叠：2018 年跨 25,039 到 37,081，2019 年跨 24,518 到 42,338。没有重新计数，也没有缺口。</p>

<p><strong>表结构没有变动。</strong><code class="language-plaintext highlighter-rouge">inspector</code>、<code class="language-plaintext highlighter-rouge">placard</code>、<code class="language-plaintext highlighter-rouge">correct_by_date</code>、<code class="language-plaintext highlighter-rouge">corrected_on_site</code>、<code class="language-plaintext highlighter-rouge">inspector_comments</code>、<code class="language-plaintext highlighter-rouge">inspection_frequency</code> 和 <code class="language-plaintext highlighter-rouge">license_number</code> 在 2014 到 2026 的每一年都是 100% 填充。唯一变化的字段是违规代码，从 96-97% 降到 67-90%，而这本身就是结论，不是表结构变化。</p>

<p><strong>抽取指纹变化发生在别处。</strong>这个数据集中有些字符串值被字面引号包裹。这一假象在 2024 年及之前占 0% 的行，2025 年占 83%，2026 年占 100%。</p>

<p>最后一点是这里最强的证据。数据管道确实变过，但是在 2025 年，不是 2019 年。如果那 74% 的下降是迁移造成的，格式特征也会随之移动。</p>

<p>它也造成了我遇到的第一个 bug。按检查员分组时若不剥掉这些引号，会得到 46 名检查员。实际有 40 名。其中六人是同一个人出现了两次，一次带引号，一次不带。</p>

<h2 id="像-marin-这样的断点有多常见">像 Marin 这样的断点有多常见</h2>

<p>此时一个合理的质疑是：我是专门去找不连续点的，所以找到了；而卫生部门本来就不断修改自己的文书。于是我用同样的方法核查了另外三个长时间序列。</p>

<table>
  <thead>
    <tr>
      <th>辖区</th>
      <th>指标</th>
      <th>时间跨度</th>
      <th>最大单年变动</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>科罗拉多州 Boulder County</td>
      <td>每次例行检查的违规条数</td>
      <td>2013-2025</td>
      <td>13 年间从 1.60 到 2.35，无断点</td>
    </tr>
    <tr>
      <td>芝加哥</td>
      <td>检查不合格比例</td>
      <td>2010-2026</td>
      <td>16.0% 到 24.9%，缓慢漂移，无断点</td>
    </tr>
    <tr>
      <td>纽约市</td>
      <td>被标为关键的违规占比</td>
      <td>2022-2026</td>
      <td>52.4% 到 56.7%，无断点</td>
    </tr>
  </tbody>
</table>

<p>Marin 是异常值。Boulder 是干净的对照，因为它是同一指标、跨度更长，且逐年变动从未超过约 20%。</p>

<p>关于这张表有两点说明。芝加哥的通过/不通过和纽约市的关键违规占比都是比违规条数更粗的指标，一个部门完全可以改变逐条列举的程度而这两者都不动。另外纽约市公布的序列只能回溯到 2022 年，这几乎算不上检验。</p>

<p>综合起来：像 Marin 这样的断点不是这类数据的常态，但也没有稀少到可以忽略。我手里有长序列的四个辖区中，有一个存在这样的断点，而公布的数据里没有任何东西提示它的存在。</p>

<p>这也加强了科罗拉多州的那组比较。Boulder 在 13 年里保持平稳，意味着 2.65 倍差距中它那一侧不是我恰好选了哪些年份造成的假象。</p>

<h2 id="谁来检查几乎与是哪家餐厅一样有预测力">谁来检查，几乎与是哪家餐厅一样有预测力</h2>

<p>芝加哥把它的检查优先级排序模型开源了，一项独立评审发现最大的单一影响来源是由哪位卫生检查员执行检查。那用的是内部数据。Marin 的检查员字段让这一点在公开数据上也可检验。</p>

<p>在 15,888 次例行检查、1,645 家商户和 40 名检查员的范围内，检查员的原始均值从 0.74 到 5.99。其中大部分来自时代因素，因为检查员在不同时间窗工作，而 2019 年的断点正好落在中间。</p>

<p>于是我减去了商户均值，使用被两名或更多不同检查员检查过的 1,453 家商户，然后再减去年份均值：</p>

<table>
  <thead>
    <tr>
      <th>控制项</th>
      <th>检查员之间的差距</th>
      <th>标准差</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>原始</td>
      <td>8.1 倍</td>
      <td>1.41</td>
    </tr>
    <tr>
      <td>减去商户均值</td>
      <td>5.18 条违规</td>
      <td>1.27</td>
    </tr>
    <tr>
      <td>减去商户和年份</td>
      <td><strong>3.81 条违规，为 2.22 均值的 172%</strong></td>
      <td>0.86</td>
    </tr>
  </tbody>
</table>

<p>在年份控制下排序被打乱，这正好排除了纯粹的时代解释。控制后最严格的那位检查员是 2025 年上岗的，处在断点的宽松一侧。最宽松的那位工作于 2018-2019 年，处在严格一侧。</p>

<p>对原始序列做粗略的方差分解：商户身份约占 24%，检查员身份约占 21%。</p>

<p>这只是算术去均值，不是拟合模型，所以请把它当作方向和量级，而不是标准误。检查员与年份部分共线，识别力由跨越断点的那八名检查员承担。另外两项发现没有这个问题，因为它们是在精确控制下的原始均值。</p>

<h2 id="结论落在哪里">结论落在哪里</h2>

<p>三个维度，这个计数在三个维度上全部失效。跨辖区，它因一项记录惯例而变动 2.65 倍。跨时间，在同一批人检查同一批餐厅的情况下变动 74%。跨检查员，控制后变动幅度达均值的 172%。</p>

<p>这些都不衡量检查制度是否有效。检查员确实发现真实问题、确实关停真实的后厨，这里的内容对此没有任何正反判断。我衡量的是那个数字，而这个数字恰恰在你把一个与另一个相比时失效，而这正是下游所有人唯一会拿它做的事。</p>

<p>真正的风险位于查询类应用的下游：用违规结果训练的城市预测模型，以及跨地区或跨政策时点比较评级制度的研究。芝加哥的模型就是用这类结果训练的，它自己的审计发现检查员是首要预测因子，而当预测目标的一部分本质上是文书工作时，这正是你会预期的结果。一项跨越某辖区自身记录方式变更的研究会直接撞上 Marin 问题，因为现实静止不动而序列却在移动。</p>

<p>实用版本：违规条数只有在单一辖区内、单一时代内，并针对由谁上门检查做过调整之后，才是可解读的。其他任何情况下都不行。如果你要在这类数据上做开发，第一件要核查的不是那个数字，而是你的数据源能否表达「未观察」，以及这一惯例在你的时间窗内是否保持不变。</p>

<p>这一切都不是餐厅独有的。一个公布的计数记录的是一个机构写下了什么，而我看过的四个部门中就有一个改变了自己的记录方式，却没有对外说明。</p>

<p>如果你知道 Marin County 在 2019 年发生了什么变化，欢迎告诉我，我会更新本文。这里的每个数字都能用<a href="https://github.com/brianhliou/food-inspection-comparability">代码</a>对实时 API 重新生成，欢迎核查我的工作。</p>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[科罗拉多州两个县使用完全相同的检查表，结果却相差 2.65 倍。Marin County 在同一批检查员手下一年内违规数下降 74%。这些数字到底意味着什么。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/restaurant-violations-are-bookkeeping/thumbnail.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/restaurant-violations-are-bookkeeping/thumbnail.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">YouTube 评论的点赞量主要取决于时机</title><link href="https://brianhliou.com/zh-hans/posts/comment-likes-are-timing/" rel="alternate" type="text/html" title="YouTube 评论的点赞量主要取决于时机" /><published>2026-08-16T00:00:00+00:00</published><updated>2026-08-16T00:00:00+00:00</updated><id>https://brianhliou.com/posts/comment-likes-are-timing</id><content type="html" xml:base="https://brianhliou.com/posts/comment-likes-are-timing/"><![CDATA[<p>我想知道能不能训练一个模型，写出人们真正会点赞的 YouTube 评论。最直观的训练信号就是点赞数，而最近已经有工作这么做了：在点赞数前 10% 的评论上做微调，报告的互动量大约是用随机评论训练的模型的 3 倍。</p>

<p>接着我去看了点赞数究竟在衡量什么。一条在视频上线第一小时内发布的评论，看到它的人数比一周后发布的评论要多出好几个数量级，而 YouTube 的「热门评论」排序还会放大这一点，因为排得高会带来点赞，点赞又会让它排得更高。两条一模一样的评论，仅凭出现时间的差别就能相差三个数量级。</p>

<p>于是问题不再是「模型能不能写出好评论」，而变成了「点赞数里到底有没有关于评论本身的信息」。</p>

<h2 id="用公开数据回答不了这个问题">用公开数据回答不了这个问题</h2>

<p>两个大型公开 YouTube 评论语料 YT-30M 和 YTCommentVerse，合计约有 3200 万条评论。两者都给了 <code class="language-plaintext highlighter-rouge">upvotes</code>，但都没有给时间戳。</p>

<p>没有发布时间，你就无法把评论说了什么和它何时出现区分开。在这些语料上训练的每个模型，都在拟合那份先发优势，却完全看不见它。</p>

<p>所以我自己采集了一份带时间戳的语料：<strong>来自 34 个频道、633 个视频的 1,345,353 条顶层评论</strong>，包含发布时间、抓取时间、回复数、视频统计数据，以及 YouTube 自家算法给每条评论的排名。耗时三天，约 14,900 个 API 配额单位。</p>

<p>有一个决定比其他都重要。<code class="language-plaintext highlighter-rouge">commentThreads.list</code> 返回评论时是最新优先，因此任何按视频设置的翻页上限都会丢掉<em>最早</em>的评论，而那正是本研究关心的高曝光评论。所以每个视频都被完整枚举。体量太大、无法在当日配额内跑完的视频，一开始就被排除，并记入清单，而不是被悄悄截断。</p>

<h2 id="曝光占了-835">曝光占了 83.5%</h2>

<p>预测每条评论在<em>自己所属视频内</em>的点赞排名，这样就把视频层面的效应从训练信号里剔除了。然后逐项加入特征：先是曝光特征，再是长度与形态，接着是 20 万维 TF-IDF 特征，最后是 MiniLM 嵌入。按频道切分，绝不按评论切分，这样问的就是模型能否迁移到它从未见过的受众。</p>

<table>
  <thead>
    <tr>
      <th>成分</th>
      <th>超越随机水平的排序能力占比</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>曝光（发布时间、视频体量）</td>
      <td><strong>83.5%</strong></td>
    </tr>
    <tr>
      <td>长度与形态</td>
      <td>8.4%</td>
    </tr>
    <tr>
      <td>评论实际说了什么</td>
      <td>8.2%</td>
    </tr>
  </tbody>
</table>

<p>评论长度可以说算内容，而不算曝光。若这样计入，内容就升到 16.5%。无论如何曝光都是 83.5%，所以这个结论不取决于你把界线划在哪里。</p>

<p>让我下定论的数字是：一个 384 维的句子编码器相比词袋只带来 <strong>0.0015 的 AUC</strong> 提升。对词汇层面零结果的常见反驳是文本模型太弱，而一个完全不同的表示族落在了同一个位置。</p>

<p>整体上绝对可预测性很低。最好的模型 AUC 为 0.671，随机水平是 0.5。曝光大幅领先内容，而两者都比不过决定哪些评论会被点赞的其他因素。</p>

<h2 id="这份数据集里的陷阱">这份数据集里的陷阱</h2>

<p><img src="/assets/posts/comment-likes-are-timing/arrival.svg" alt="同一批 135 万条评论在两种分组下，按出现时间的 log1p(likes) 均值" />
<em>两幅图是同一批评论、同一 y 轴。视频内的相对位置和视频上线时长都呈现同样的下滑。</em></p>

<p>我一开始把这个搞错了，你在动手处理数据之前应该先知道。</p>

<p>按评论发布得多晚来分桶，取每个桶的<strong>平均点赞数</strong>：</p>

<table>
  <thead>
    <tr>
      <th>发布时视频已上线时长</th>
      <th>&lt;1h</th>
      <th>1-6h</th>
      <th>6-24h</th>
      <th>1-7d</th>
      <th>1-30d</th>
      <th>&gt;30d</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>平均点赞数</td>
      <td>19.8</td>
      <td>21.7</td>
      <td>19.5</td>
      <td>19.8</td>
      <td>25.8</td>
      <td>20.4</td>
    </tr>
  </tbody>
</table>

<p>一条平线。完全没有出现时间效应。我还把它当成一个发现写了出来。</p>

<p>现在在完全相同的分桶上取 <code class="language-plaintext highlighter-rouge">log1p(likes)</code> 的均值：</p>

<table>
  <thead>
    <tr>
      <th>发布时视频已上线时长</th>
      <th>&lt;1h</th>
      <th>1-6h</th>
      <th>6-24h</th>
      <th>1-7d</th>
      <th>1-30d</th>
      <th>&gt;30d</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>log1p(likes) 均值</td>
      <td>0.764</td>
      <td>0.387</td>
      <td>0.230</td>
      <td>0.181</td>
      <td>0.163</td>
      <td>0.129</td>
    </tr>
  </tbody>
</table>

<p>下滑达 5.9 倍。这个效应一直都在。</p>

<p><strong>82.1% 的评论零点赞，而点赞数最高的 1% 占据了全部点赞的 94.9%。</strong>在这样的分布上取组均值，得到的是关于该组离群值的统计量，而不是关于这一组的。一条爆火评论就决定了整个桶的平均值。</p>

<p>任何对这份语料做原始点赞数平均的汇总，都会在效应很大的地方报告出没有效应。</p>

<h2 id="认定-3-倍的那个指标">认定 3 倍的那个指标</h2>

<p>此前的工作给生成评论打分的方式是：把它嵌入，从参考语料里取出 K 个最近邻，再对它们的点赞数求平均。我原以为这个指标可以靠「像不像」来钻空子：在高赞文本上训练，落到高赞文本附近，就能拿高分，不管人类会不会真的点赞。</p>

<p>我错了，而且错了两次。挑选真实的高赞评论并不能复现出 3 倍的比值（我得到 0.88 到 1.21）。生成 960 条评论、其中一半用高赞样例做少样本条件生成，也不行。</p>

<p>我反而发现这个统计量根本稳不住。在 K=5 时，均值之比显示条件生成让结果差了 3 倍，且置信区间不含 1.0。而在同样的 480 个样本上，中位数之比却显示好了 2 倍。三次运行中，同一个数字先是 138，然后 0.09，再是 0.25（按均值），按中位数则是 2.00。</p>

<p>同样的重尾，与我上面自己犯的错误是同一种失效模式。一个方向会随汇总方式翻转的指标撑不起 3 倍的论断，无论某个已发表数字是怎么得出来的。</p>

<p>它对自己所估计的东西也几乎追踪不上。对照真实点赞结果，它对评论的排序只有 <strong>Spearman 0.050</strong>。而一个只知道评论何时发布、视频有多大的模型，在同一批评论上得到 0.19。</p>

<h2 id="如果你只是想让自己的评论被看见">如果你只是想让自己的评论被看见</h2>

<p>把同样这些数字对准人而不是模型，它们就读成了一套策略。大致按影响大小排序：</p>

<p><strong>要早。</strong>在同一个视频内，最早的那一成评论平均是最晚一成的 5.4 倍。按视频上线后的绝对时间看，第一小时内的评论是一个月后发布的评论的 5.9 倍。你能控制的其他任何因素都远不及它。</p>

<p><strong>在大视频上抢早。</strong>视频体量会放大其他一切。在原始数据里，NileRed 一条上传视频下晚了六周发布的评论，仍然胜过 Computerphile 视频下第一小时内的评论。500 万播放视频下一条平庸的评论，表现好过 7 万播放视频下一条不错的评论。</p>

<p><strong>评论首页才是真正的奖品。</strong>显示在上面的评论平均 419.5 个赞，其余全部只有 1.13。这是 373 倍的门槛，不是渐变的坡度，而且由于排序依赖早期点赞，买到入场券的正是第一小时。</p>

<p><strong>挑频道。</strong>零点赞评论的占比从 Vox 的 52.8% 到 Davie504 的 90.7%。在你写下一个字之前，光是选在哪里评论，就能让你拿到任何点赞的概率差出近一倍。</p>

<p><strong>在 Shorts 上要更快。</strong>那里的早发优势是 7.6 倍，长视频是 5.3 倍。</p>

<p><strong>你写了什么大约只占 8%。</strong>它呈现的形态是短。评论平均长度随点赞上升，随后反转：100-999 赞档为 171 个字符，1000 赞以上降到 147。语料里的顶级评论是对某个具体瞬间的浓缩呼应，而不是展开的观察：</p>

<blockquote>
  <p>炼金术士最恨这一招</p>
</blockquote>

<blockquote>
  <p>这段视频几乎全是灰度的</p>
</blockquote>

<blockquote>
  <p>那句硬憋出来的「支持本地小店」把我笑到了</p>
</blockquote>

<p>引用一个瞬间，压缩它，然后收住。</p>

<p>有两点重要的限制。所有评论中 82% 零点赞，而即便用上我构建的全部特征，模型的排序 AUC 也只有 0.671，所以这里面大部分是你控制不了的方差。另外我衡量的是什么能预测点赞，而不是什么导致点赞。时机效应大概率是因果的，因为它是机械性的曝光。而「短呼应」很容易只是别的因素的相关物。</p>

<p>诚实的总结是：取胜的策略主要靠调度安排，而不是写作。</p>

<h2 id="由此得出的结论">由此得出的结论</h2>

<p>以点赞数为目标去优化评论生成器，主要是在对着一只时钟做优化。在高赞评论上训练的模型，学到的是大视频下早期评论长什么样，而可归因于评论内容本身的部分大约只有 8%。</p>

<p>这并不意味着评论质量无法衡量。它意味着衡量必须先对曝光做条件控制，而在此之前没有任何公开数据集能让你这么做。我接下来想做的，正是我没能做到的那一块：在曝光固定的条件下让人来评分评论，这份语料让它成为可能，但它本身并不包含这些评分。</p>

<p><a href="https://huggingface.co/datasets/brianhliou/youtube-comment-exposure">数据集已发布在 Hugging Face</a>，采用 CC BY 4.0 许可；<a href="https://github.com/brianhliou/youtube-comment-exposure">代码和冻结的总体清单在 GitHub</a>；<a href="/zh-hans/publications/youtube-comment-exposure/">论文</a>里有完整的特征阶梯、数据切分，以及我搞错的那些地方。</p>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[决定 YouTube 评论点赞排序的因素中，曝光占 83.5%，内容只占 8%。基于 135 万条带发布时间戳的评论测得，这是任何公开语料都没有的数据。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/images/site-card.png" /><media:content medium="image" url="https://brianhliou.com/assets/images/site-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">象棋基本残局：哪些已有定论，定论有多可靠</title><link href="https://brianhliou.com/zh-hans/posts/xiangqi-basic-endgames/" rel="alternate" type="text/html" title="象棋基本残局：哪些已有定论，定论有多可靠" /><published>2026-08-14T00:00:00+00:00</published><updated>2026-08-31T00:00:00+00:00</updated><id>https://brianhliou.com/posts/xiangqi-basic-endgames</id><content type="html" xml:base="https://brianhliou.com/posts/xiangqi-basic-endgames/"><![CDATA[<p>国际象棋有一张人人都要背的基本残局表。王加车必胜。王加双马无法强制取胜。王加单象是死局。象棋也有同样一张表，如果你读中文，你就会用同样的方式学到它：从残局手册里，而这些手册给出的结论都一致。而用英文，你只能看到碎片。</p>

<p>最好的那块碎片，是<a href="https://en.wikipedia.org/wiki/Xiangqi#Endgame">英文维基百科象棋条目</a>里的残局一节。三十来条结论，用散文写出，没有一条附了出处。中文的对应内容是一篇叫<a href="https://zh.wikipedia.org/zh-cn/象棋勝和定式">象棋勝和定式</a>（象棋勝和定式）的条目。它覆盖同样的范围，每条结论配一张图，并且引用了两本书：金启昌与杨典的《象棋残局胜和定式》（北京体育大学出版社，2008）和薛荣贤的《象棋入门实用指南》（2009）。这两本书我都没读过。下文我说「手册」，指的就是这两篇维基条目：一篇是手册传统的压缩汇报，另一篇让你看到局面。</p>

<p>下面收了其中三十二条结论，每条都做成一个局面并核对两遍，每条都是一块可以让你和核对它的引擎对下的棋盘。这份研究<a href="https://mistboard.com/study/tOceiaI7">在 Mistboard 上</a>，一条结论一章。</p>

<h2 id="基础什么能赢士象全">基础：什么能赢士象全</h2>

<p>车是象棋里最强的子，相当于国际象棋里的车换了个名字。标准的士象全保留全部四个防守子：将在原位，双士，双象，并且摆成两个士正好挡在将前面，让炮无法把它们当炮架用。</p>

<p>单车对这样的防守是和棋，而现在这是一条已被证明的结论：残局库判和，Pikafish 给出的评估值正好是 0。</p>

<p>三个卒能赢。15 步内强制将死。</p>

<p>双马也能赢，25 步。</p>

<div class="xq-figure xq-figure--pair">
<div class="xq-boards">
  <div class="xq-board">
    <p class="xq-chip xq-chip--draw">和棋</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/cziDTjZb?theme=light&amp;notation=chinese" title="红方单车对完整的士象全，一个和棋的象棋残局" loading="lazy"></iframe>
  </div>
  <div class="xq-board">
    <p class="xq-chip xq-chip--win">15 步将死</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/KkI4Onbg?theme=light&amp;notation=chinese" title="三个红高兵对完整的士象全，强制将死" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">同样的防守，同样的一方走棋。两条结论都来自残局库，而不是搜索。随便挑一个执黑试试，看能不能守住。</p>
</div>

<p>按你能找到的任何一张子力价值表，车都比三个卒值钱，也比两个马值钱。可在这个残局里，它比两者都不如。卒不能后退，这听起来是弱点，结果却成了它们取胜的原因：三个卒逼向九宫，赶不回去，而防守方也没办法把它们兑掉。</p>

<p>同样的逻辑反过来也成立。五个兵全都停在底线，对光将是和棋。五子对零子。它们不能后退，又已经贴着底线，所以既无法将死，也无法困毙。</p>

<div class="xq-figure">
<div class="xq-boards">
  <div class="xq-board">
    <p class="xq-chip xq-chip--draw">和棋</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/2Cj7dl4S?theme=light&amp;notation=chinese" title="五个红兵停在底线对黑方光将，一个和棋的象棋残局" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">五子对一子，而局面里根本不存在将死。执红试试能不能赢下来。</p>
</div>

<p>决定这些残局的是位置，而英文那一节里恰好有一对图直接把这点画了出来。</p>

<p>单车对马双象。防守方摆成堡垒（马在 e8，象在 i8 和 g6）时能守住，残局库也确认守得住。把 g6 那个象移到 g10，红方就胜，从 1.Rb7 开始。</p>

<div class="xq-figure xq-figure--pair">
<div class="xq-boards">
  <div class="xq-board">
    <p class="xq-chip xq-chip--draw">和棋</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/v7k8jLZ4?theme=light&amp;notation=chinese" title="红方一车对黑方马双象，防守方守住和棋堡垒" loading="lazy"></iframe>
  </div>
  <div class="xq-board">
    <p class="xq-chip xq-chip--win">红方胜</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/KnIOfcBN?theme=light&amp;notation=chinese" title="同样的子力，黑方一个象位置不对，红方取胜" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">全部差别就在棋盘右侧那个象，往上走了四个点。第一个局面守住，第二个局面破掉。</p>
</div>

<p>双方子力相同，进攻方相同，走棋方相同，结果却翻转。这一对能在翻译中留存下来，是因为有人把它画了出来。下面三条，是没人画的那些。</p>

<h2 id="取胜需要什么">取胜需要什么</h2>

<p>三十二条结论里有三条，取决于英文没有带上的一句指示。每一条都由一个摆位决定结果，而点明这个摆位的那句话恰好被漏掉了。</p>

<h3 id="车对马炮和棋只差一格">车对马炮，和棋只差一格</h3>

<p>英文那一节说：<em>「车对无士象的双小子：和棋，但需要良好的防守位置。」</em></p>

<p>我造了八个这样的局面。Pikafish 在八个里全都找到了强制将死，从我能构造出的最顽强那个算起是 15 步。八比零不可能是搜索的假象，于是我把这一条写成了争议并继续往下走，这个判断是错的。</p>

<p>中文条目画出了局面，并且多了一句英文没带上的指示：炮要直接摆在本方将的后面，马则尽量离将远。</p>

<div class="xq-figure xq-figure--pair">
<div class="xq-boards">
  <div class="xq-board">
    <p class="xq-chip xq-chip--draw">和棋</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/LBjRkGDk?theme=light&amp;notation=chinese" title="红方一车对黑方马炮，炮摆在本方将的后面" loading="lazy"></iframe>
  </div>
  <div class="xq-board">
    <p class="xq-chip xq-chip--win">12 步将死</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/cxwfF4lx?theme=light&amp;notation=chinese" title="同一局面，黑炮往左移一个点，红方取胜" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">一个点的差别。左边炮正好在本方将的后面，局面是和棋；右边它移了一格，红方 12 步将死。两边都可以执黑试试。</p>
</div>

<p>这个局面不论哪方走棋都是残局库判和，Pikafish 搜索深度到 40 给出 +0.10。炮在将后面守住底线，又无法被顶着将抽，这就是整个堡垒。把它横着挪一个点，同样的局面就是 12 步将死，而我试过的其他每一格也都输，从挪一个点到挪到远角都一样。</p>

<p>车自己摆在哪里，结果完全不影响。我从 a10、e5、i1 和 a1 各试了一遍，每一个仍是和棋，这正是它算堡垒而不是碰巧摆对的原因。马的要求比手册里那句「尽量离将远」宽松：它只要不站在车一步能吃到的点上。在 b7、c7、d7、e7、d6、d4 或 d2，局面守得住。在 d5，也就是和车同一线上，车直接吃掉它，5 步将死。</p>

<p>我那八个局面里，炮全都摆在别处。英文给出的结论本身是对的。「需要良好的防守位置」承担了全部结果，却什么都没告诉你。</p>

<h3 id="车炮对车其中中路不是某一个格子">车炮对车，其中「中路」不是某一个格子</h3>

<p>英文那一节说：<em>「车加炮无法战胜单车，只要防守方的车占住中路。」</em></p>

<p>这读起来像一条可以核验的规则。我的局面满足它：黑车在中路，在原位，正好挡在本方将前面。Pikafish 28 步将死。</p>

<p>能将死，是因为那句话没提到的那个子。炮吃子要隔正好一个子，所以它需要炮架，而且不管这个炮架是谁的。红炮滑到中路、落在黑车下方立刻叫将，把那个黑车当炮架，把它后面的黑将当目标。防守方自己那个求和的子，就是炮架。</p>

<p>把防守的车沿着这条线往下挪，残局库会在中间划出一条界线：</p>

<div class="xq-figure xq-figure--pair">
<div class="xq-boards">
  <div class="xq-board">
    <p class="xq-chip xq-chip--draw">和棋</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/JqQklf68?theme=light&amp;notation=chinese" title="红方车炮对黑方单车，黑车在中路第 5 线" loading="lazy"></iframe>
  </div>
  <div class="xq-board">
    <p class="xq-chip xq-chip--win">红方胜</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/Bhe4GFid?theme=light&amp;notation=chinese" title="同样的防守在中路往上一线，红方取胜" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">两个局面里防守的车都占着中路。只有位置较低的那个是和棋。最后的杀法是海底捞月，在这条线的底端完成。</p>
</div>

<p>红方按图中摆法，防守的车在第 5 线及以下都能和，搜索深度 40 给出 0.00，在第 6 线及以上则输。就差一线。</p>

<p>红方要取胜，有两件事必须成立，而两件都和红方自己有关。炮必须能落到中路并且在那里活下来，在图中这意味着落在第 5 线，也就是红车正好保护它的那一线。把炮挪离车所在的那一线，挪到第 3 线或第 7 线，那些胜势就全都变回和棋。另外红方需要中路的底端，因为这个残局赖以取胜的杀法，海底捞月，是在下面完成的：车走到中路底端，本方将在其后，防守的车最后被卡在两个将之间，离开这条线就会形成白脸将，留在线上又会被吃。</p>

<p>一个站在自己半边中路上的防守子，这两件事一件都拦不住。占住一条线，说的是一个子控制哪些点。我把它读成了它站在哪个点，造了一个字面上满足那句话的局面，结果 28 步被将死。</p>

<h3 id="马炮对马搜索深度加到多少都定不下来">马炮对马，搜索深度加到多少都定不下来</h3>

<p>英文那一节说：<em>「马+炮+士象全对单小子[加]士象全：若小子是马则胜……若是炮则和。」</em></p>

<p>十三个子。chessdb 只建过一张这么大的表，而且是另一种十三子组合，对这一种做实时查询返回的是未知。这并不意味着只剩搜索一条路。削减到十子的 KANCKAABBN，也就是给强方留一个士的那个简化，这张表是有的：24,251,768,055 个局面，红方胜率 85.48%。支撑这条结论的是这条简化阶梯，而不是搜索深度。</p>

<p>搜索解决不了它。搜索深度 26 给出 +2.24。深度 42 给出 +2.47，仍然没有将死，而防守方马的六种不同摆位落在 +2.32 到 +3.03 之间，没有一个变成决定性的。一个漫长的技术性胜势，从固定深度看正是这个样子，而一个只是红方占优但和棋的局面，看起来也一样。</p>

<p>不过有两项证据说手册仍然是对的。引擎自己就把这条结论的两半分开了：把防守方的马换成炮，也就是同一句话里判和的那一半，同样的深度给出 +1.26。这个差距就是手册作出的区分，出现在一个从未被告知这件事的数字里。</p>

<p>接着我让 Pikafish 在搜索深度 32 下自己对下这个局面。红方走了 33 着，双方都没有吃子，第 34 着吃了一个士，四着之后吃掉第二个，一直兑换到第 56 着，局面降到十个子，重新进入残局库的范围。黑方走棋，每一种合法应手都是负。</p>

<p>第一次吃子就是全部问题所在，因为有一条国际象棋里没有对应物的规则：自然限着规定双方各走 60 着都无吃子即判和。一个需要 70 着技术才能赢下来的例胜，不是你能下出来的胜。这一局在第 34 着就突破了，还剩 26 着余量。</p>

<p>象棋把另一扇门也关上了，而这一条对国际象棋棋手更致命。长将在这里算<strong>负</strong>：叫将的一方必须变着，否则判负。在国际象棋里这是把败局救回来的标准手段，所以这种本能不只是帮不上忙，而是直接把分数送出去。这两条规则合起来框住了本文里的每一个残局。防守方不能靠叫将脱身，进攻方也不能无限地磨。两者在国际象棋里都没有可以对译的东西，这正是英文摘要会把它们漏掉的原因。</p>

<p>这仍然不是对这一条的证明。黑方也是 Pikafish，更早一点更好的防守也许能守住；这里没有任何东西排除这一点。它解决的是原本靠我信任来支撑的那部分。最后的胜不是引擎在深度 32 宣布了一个将死、我选择相信，而是一个可被证明为负的局面，所以引擎给出的路线最终落到一个确切的东西上，而不是落到它自己的意见上。引擎仍然拒绝从根局面确认手册的结论。但它现在会走进一个确定的局面。如果你想体会 34 着的挤压有多紧，<a href="https://mistboard.com/study/tOceiaI7/b4Ve6wKT">就在这一条里执守方</a>，而<a href="https://mistboard.com/study/tOceiaI7/1IvgW898">判和的那一半</a>只差一个子。</p>

<div class="xq-figure">
<div class="xq-boards">
  <div class="xq-board">
    <p class="xq-chip xq-chip--open">未解决</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/b4Ve6wKT?theme=light&amp;notation=chinese" title="红方士象全后面的马炮，对黑方士象全后面的马" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">十三个子，没有任何残局库覆盖的一条。黑方要在 60 着内不丢子地活下来。</p>
</div>

<p>把子力削下来，它就不再是搜索问题。chessdb.cn 公布了这个残局各种简化形式的精确表，而它们改变了手册那句话的含义。把红方自己的士象都去掉，只留将、炮、马对士象全：5,492,247,706 个局面，红方胜 22.31%。给红方还回一个士，就变成 85.48%，覆盖 24,251,768,055 个局面。第二个士再加一个百分点。把这个士换成一个相，则加七个百分点。</p>

<p>所以那句话里进攻方一侧的「士象全」是在实实在在起作用的，而关键数字是一。一个士撑起了胜势，而象几乎是白送的。我是先用 Pikafish 得到这个结果的，在知道这些表存在之前就在搜索深度 30 跑过同一条阶梯，排序结果一样。</p>

<p>换个方向切同一个局面，答案就翻转。两边都保留士象全，改成把<em>防守方</em>的马拿掉：十二个子，10,453,951,719 个局面，chessdb 建了这一张。红方胜 92.71%，最长将死是 69 着，而表里完全没有记录到负。一种简化说胜势靠的是红方自己的士。另一种说，黑方一旦没有可以反击的东西，胜势就近乎彻底。手册真正在说的那组子力就夹在两者之间，不在那 8,705 张表的任何一张里，对它做实时查询返回未知。</p>

<h2 id="六个词两个筐">六个词，两个筐</h2>

<p>上面三条里有两条有一个共同点，而这个共同点是词汇。中文残局手册不会把结果只评为胜或和。它们用一个六级的尺度来评：</p>

<table>
  <thead>
    <tr>
      <th>结论</th>
      <th>它主张什么</th>
      <th>本文归类</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>必胜</td>
      <td>这组子力在任何局面下都胜</td>
      <td>胜</td>
    </tr>
    <tr>
      <td>例胜</td>
      <td>用常规技术即可取胜</td>
      <td>胜</td>
    </tr>
    <tr>
      <td>巧胜</td>
      <td>只在特定局面下取胜</td>
      <td>胜</td>
    </tr>
    <tr>
      <td>难胜</td>
      <td>难以取胜，这和和棋不是一回事</td>
      <td><strong>胜<em>或</em>和</strong></td>
    </tr>
    <tr>
      <td>例和</td>
      <td>用常规技术即可求和</td>
      <td>和棋</td>
    </tr>
    <tr>
      <td>必和</td>
      <td>在任何局面下都和</td>
      <td>和棋</td>
    </tr>
  </tbody>
</table>

<p>六个里有五个能在翻译中留存。第六个必须选一边站，而上面三条里有两条正踩在它上面。</p>

<p>中文条目把车对马炮归在第四级，难胜。英文那一节把它归为「和棋」。残局库站在中文这边：车在棋盘上几乎任何位置都能赢，只被唯一一种防守阵形挡住。读到「和棋」的棋手会随意防守，15 步被将死。读到「难胜」的棋手知道，要找的东西只有一个。</p>

<p>第二条从另一个方向落在同一级上。中文那张表把车炮对单车列为胜/和，然后用一段话讲哪种情况是哪种。英文保留了干脆的那一半，把那段话丢掉了，而那段话才是要紧的部分。</p>

<p>局面才是事实。结论只是有人贴在一整排标签中的一个，把标签翻过来而不带上那一整排，就丢掉了它大部分的含义。</p>

<h2 id="这些结论到底有多可靠">这些结论到底有多可靠</h2>

<p>这张表里的结论分三个等级，而它们远不等价。有些是已被证明的：某个数据库把整个残局算完了，答案就是一次查表。有些是搜索出来的：引擎在我跑的那个搜索深度上同意。那是证据，不是证明。其余的是断言，出自一本没有附出处的手册。</p>

<p>分类做了两轮。</p>

<p>我从英文那一节里取出 32 条结论，为每条造一个代表性局面，然后用 Pikafish 在搜索深度 26 下询问。</p>

<table>
  <thead>
    <tr>
      <th>搜索深度 26，32 条结论</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>引擎同意</td>
      <td>29</td>
    </tr>
    <tr>
      <td>书上说和棋，引擎找到强制取胜</td>
      <td>2</td>
    </tr>
    <tr>
      <td>书上说胜，引擎赢不下来</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

<p>然后我用第二种方式再核一遍同样的局面。象棋有云端残局库，是查答案而不是搜答案：<a href="http://www.chessdb.cn/">chessdb.cn</a> 对子力足够少的局面返回胜、和或负，外加一个步数。我那 32 个里有 27 个符合条件。这个门槛比听起来宽松，因为一个带八个士象的局面，受限程度几乎和只有三个子的局面差不多：士只有五个合法点，象只有七个，而且都不能过楚河汉界。它确实就是查表。沿着它自己给出的最佳路线一着一着走下去，结论不会翻转，步数也不会上升，而任何搜索都做不到这一点。</p>

<p>上面三条里现在有两条带上了残局库确认的防守摆法，而两次改口都是我的，不是手册的。整轮扫查的结果是 32 条里 31 条与 Pikafish 一致、1 条倾向性支持，其中 32 个局面里有 27 个小到能查残局库，而这 27 个全部精确。</p>

<h3 id="核查在我造的局面里抓到了什么">核查在我造的局面里抓到了什么</h3>

<p>核查抓到的其余问题都是我的。三个不合法的局面，两个将在一条通路上互相照面，解析没问题、看起来也没问题，但在象棋里不合法。两个我标成例和的局面，Pikafish 宣布 2 步将死，结论没错，我的截图是垃圾。还有一个局面本身没问题，但我对它的解释错了。</p>

<p>书上说三个<em>高</em>兵能赢士象全，也就是兵在第 7 线。把同样三个兵往后拉一线，胜势就消失了。我把这写成了先手快慢的问题，差一着差一切。不是的。黑象在整个棋盘上只能站在七个象位上，而从 e8 出发它正好能到 c6、g6、c10 和 g10。第 6 线上的三个兵里，有两个停在象位上。黑方在那里不需要技术，只需要吃一个子。</p>

<div class="xq-figure xq-figure--pair">
<div class="xq-boards">
  <div class="xq-board">
    <p class="xq-chip xq-chip--win">15 步将死</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/KkI4Onbg?theme=light&amp;notation=chinese" title="三个红兵在第 7 线对士象全，强制将死" loading="lazy"></iframe>
  </div>
  <div class="xq-board">
    <p class="xq-chip xq-chip--draw">黑方吃一个</p>
    <iframe src="https://mistboard.com/embed/study/tOceiaI7/D00m22hb?theme=light&amp;notation=chinese" title="同样三个兵在第 6 线，其中两个站在象位上" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">「高」保护的正是象的活动范围。第 7 线上的兵，在整局棋的任何时候、从任何点出发，都不可能被象吃掉。往后拉一线，就有两个站在象位上。</p>
</div>

<p>我的局面里有六个是坏的，核查把六个全找出来了。手册的结论里一个坏的都没有。</p>

<h2 id="边界">边界</h2>

<p>残局库能定下一个残局，是因为有人把它全部算完了。chessdb.cn 为象棋建了 8,705 张这样的表。没有任何英文页面写明它们的构成，那就写在这里。</p>

<table>
  <thead>
    <tr>
      <th>子数</th>
      <th style="text-align: right">表数</th>
      <th style="text-align: right">局面数</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>3</td>
      <td style="text-align: right">4</td>
      <td style="text-align: right">18,858</td>
    </tr>
    <tr>
      <td>4</td>
      <td style="text-align: right">36</td>
      <td style="text-align: right">690 万</td>
    </tr>
    <tr>
      <td>5</td>
      <td style="text-align: right">169</td>
      <td style="text-align: right">13 亿</td>
    </tr>
    <tr>
      <td>6</td>
      <td style="text-align: right">615</td>
      <td style="text-align: right">1880 亿</td>
    </tr>
    <tr>
      <td>7</td>
      <td style="text-align: right">1,582</td>
      <td style="text-align: right">7.0 万亿</td>
    </tr>
    <tr>
      <td>8</td>
      <td style="text-align: right">2,494</td>
      <td style="text-align: right">26.1 万亿</td>
    </tr>
    <tr>
      <td>9</td>
      <td style="text-align: right">2,169</td>
      <td style="text-align: right">33.9 万亿</td>
    </tr>
    <tr>
      <td>10</td>
      <td style="text-align: right">1,227</td>
      <td style="text-align: right">23.6 万亿</td>
    </tr>
    <tr>
      <td>11</td>
      <td style="text-align: right">368</td>
      <td style="text-align: right">10.4 万亿</td>
    </tr>
    <tr>
      <td>12</td>
      <td style="text-align: right">40</td>
      <td style="text-align: right">1.0 万亿</td>
    </tr>
    <tr>
      <td>13</td>
      <td style="text-align: right">1</td>
      <td style="text-align: right">304 亿</td>
    </tr>
  </tbody>
</table>

<p>102,230,279,715,348 个局面。磁盘占用 25.56 TiB，把兑子距离表和 DTM（将死距离）表合起来算。数量在九个子时达到峰值，十一个子之后迅速跌落，这就是从内部看到的边界形状。整个语料里最长的强制取胜走 759 着：双马一士对双象马卒。</p>

<p>双方各十三个子、两边士象全都完整，已经越过那张表的最后一行。那就是马炮那一条。手册的例胜，它所谓的「常规取胜」，是对一个没人算过的局面下的结论。</p>

<p>chessdb 唯一建过的那张十三子表是另一个残局，也正是本文开头提到的那个：士象全后面的三个卒，对士象全。30,445,843,365 个局面，象棋里有人解出的最深子力组合，红方胜 48.00%。这个数字统计的是所有摆法，而不是好的摆法，这也正是手册结论和胜率不是同一种主张的原因。</p>

<p>这两个数字都值得和本页顶部那张表摆在一起看。基本残局都是小的那些，而其中大多数已被彻底解决。一旦一条结论描述的是双方满员，它描述的就是从来没有人算过的子力，而手册仍然是唯一的来源。</p>

<hr />

<p>这 32 条条目，每一行都带来源和出处，都在 <a href="https://github.com/brianhliou/mistboard/blob/main/packages/game/src/xiangqi-endgame-corpus.ts"><code class="language-plaintext highlighter-rouge">xiangqi-endgame-corpus.ts</code></a> 里。核查程序是 <a href="https://github.com/brianhliou/mistboard/blob/main/apps/server/src/verify-xiangqi-endgames.ts"><code class="language-plaintext highlighter-rouge">verify-xiangqi-endgames.ts</code></a>；把它指向一个 Pikafish 可执行文件，它就会把手册结论和引擎读数并排打印出来，附上主要变着。加上 <code class="language-plaintext highlighter-rouge">--tablebase</code>，它还会为每一个小到有精确答案的局面补上那个答案。</p>

<p>一个基本残局是一条你可以检验的主张，这正是把它们放到棋盘上而不是放进表格里的全部理由：执书上说必负的那一方，看看你能撑多久。这 32 个都在 Mistboard 上做成了一份研究，一条一章，以该局面为根，引擎的路线作主线，结论写在下面。下得不顺的时候，Pikafish 就在机器人阶梯上以满强度待着，下面还有八个 Fairy-Stockfish 等级，供满强度不再有教益时使用。</p>

<div class="cta-row">
  <a class="cta cta-primary" href="https://mistboard.com/study/tOceiaI7">逐个走完这 32 个局面</a>
  <a class="cta cta-secondary" href="https://mistboard.com/bots">挑战机器人阶梯</a>
</div>

<style>
/* Study figures. The static board pairs this post used to carry were flat PNGs
   of positions the reader could not touch, in a post whose whole argument is
   that a verdict is only worth what you can test. Every one is now the live
   chapter it was rendered from.

   No card, no fill: the widget already paints its own white panel on a warm
   board, and wrapping that in a second tinted box put three grounds in one
   figure. The frame here is space and a caption.

   Every board is the same size, pairs and singles alike, so the post keeps one
   scale. That size is under the widget's 720px stacking breakpoint, which is
   deliberate -- stacked, the board is the top two thirds of the frame instead
   of half the width of it, and these figures are read as positions. */
.xq-figure {
  margin: 2.5rem 0 2.75rem;
}

.xq-boards {
  display: grid;
  gap: 18px;
  grid-template-columns: 1fr;
  justify-items: center;
}

.xq-board {
  min-width: 0;
  width: 100%;
}

/* Height is set here because the widget offers no auto-size and posts no resize
   message: the frame is whatever box it is given. At column width the widget is
   under its 720px stacking breakpoint, so the board sits above its move list and
   the frame has to be tall enough for both. */
.xq-board iframe {
  display: block;
  width: 100%;
  height: 1040px;
  /* No border: the widget already draws its own panel, and a second frame
     around the whole thing reads as a screenshot pasted into the page. Same
     reasoning as the champions post's embed. */
  border: 0;
}

/* The verdict, stated before the board rather than after it: the reader is
   being asked to test a claim, so they need the claim first. */
.xq-chip {
  display: inline-block;
  margin: 0 0 7px;
  padding: 2px 9px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 3px;
  line-height: 1.7;
}

.xq-chip--draw { background: #ecebe6; color: #4d4a44; }
/* Vermilion for the side that wins, which in every figure here is Red. The
   colour is doing the same job the piece colour does on the board. */
.xq-chip--win  { background: #f3ded8; color: #8d3520; }
.xq-chip--open { background: #e6e9ee; color: #3f4c63; }

/* The chips carry meaning in their hue, so they cannot fall back to a neutral
   token. Same hues, relit for a dark ground. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .xq-chip--draw { background: #2f2f33; color: #c9c6be; }
  :root:not([data-theme="light"]) .xq-chip--win  { background: #43231c; color: #f0a08a; }
  :root:not([data-theme="light"]) .xq-chip--open { background: #232a36; color: #a8bcd8; }
}
:root[data-theme="dark"] .xq-chip--draw { background: #2f2f33; color: #c9c6be; }
:root[data-theme="dark"] .xq-chip--win  { background: #43231c; color: #f0a08a; }
:root[data-theme="dark"] .xq-chip--open { background: #232a36; color: #a8bcd8; }

.xq-caption {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 14px;
  line-height: 1.55;
  color: var(--text-2);
}



/* Past 960px the figure breaks out of the 680px column, which is what the
   champions post does and the reason its board looks the way it does: 740px
   clears the widget's stacking breakpoint, so the move list moves BESIDE the
   board instead of under it. The board gets wider (about 470px against 430
   stacked) and the frame gets shorter at the same time, which is the one change
   that improves both. 712px is where the board becomes width-capped rather than
   height-capped and the dead space either side of it closes. */
@media (min-width: 960px) {
  .xq-figure {
    width: 740px;
    margin-left: -30px;
  }
  .xq-board iframe { height: 712px; }
}

/* Same CTA as the champions and jungle posts, which borrowed it from
   Mistboard's own articles: identical padding, radius, weight, and brand
   green, so a reader arriving on Mistboard from here does not feel handed to
   a different product. Third copy of this block on the blog; it should be an
   include. */
</style>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[象棋基本残局表：什么能赢士象全，各类残局取胜需要什么条件，每条结论的可靠程度如何，数据库到哪里为止。32 个局面，可对弈。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/xiangqi-basic-endgames/social-card.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/xiangqi-basic-endgames/social-card.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="zh-hans"><title type="html">Tic-Tac-Chec：规则与已被解决的游戏</title><link href="https://brianhliou.com/zh-hans/posts/solving-tic-tac-chec/" rel="alternate" type="text/html" title="Tic-Tac-Chec：规则与已被解决的游戏" /><published>2026-07-14T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://brianhliou.com/posts/solving-tic-tac-chec</id><content type="html" xml:base="https://brianhliou.com/posts/solving-tic-tac-chec/"><![CDATA[<p>Tic-Tac-Chec 给每位玩家四枚棋子，要求在 4×4 棋盘上连成四子。被吃掉的棋子会重新回到场上，兵会在棋盘两端之间往返，局面可以无限重复。</p>

<p>我强解了 1998 年的 Dream Green 原版游戏。<strong>双方最佳着法的结果是和棋。</strong> 该残局库收录了 2,476,597,610 个已索引局面，给出每一个合法着法的精确结果，并为每个必胜或必负局面给出到终局的距离。</p>

<p>可在下方探索。每个着法都按当前行棋方的视角标注结果。距离以着为单位，即一方走一步；和棋没有有限距离。</p>

<div class="demo-frame">
  <iframe src="https://tic-tac-chec.brianhliou.com/" loading="lazy" sandbox="allow-scripts allow-same-origin" referrerpolicy="strict-origin-when-cross-origin" title="Tic-Tac-Chec 残局库浏览器"></iframe>
</div>
<p class="demo-frame-fallback">
  <a href="https://tic-tac-chec.brianhliou.com/">独立窗口打开 →</a>
</p>

<p><em>拖动棋子或点击排序后的着法即可跟进一条变化。绿色为胜，灰色为和棋，红色为负。</em></p>

<h2 id="规则">规则</h2>

<p>每位玩家拥有一兵、一马、一象和一车。把四枚棋子排成一横行、一纵列或一条长对角线即获胜。</p>

<ul>
  <li><strong>开局：</strong> 棋盘起始为空。前六着中，每位玩家各放置三枚棋子。</li>
  <li><strong>回合：</strong> 一旦解锁走子，玩家可以放置手中的棋子，或移动盘面上的棋子。此后再有吃子，走子依然保持解锁状态。</li>
  <li><strong>国际象棋式走法：</strong> 马、象、车按常规走法移动和吃子。没有王，也没有将军和将死。</li>
  <li><strong>棋子回收：</strong> 被吃的棋子回到其所有者手中，而不是从游戏中移除。</li>
  <li><strong>兵：</strong> 直走一格，斜前方吃子，到达棋盘任一端时反向。重新放置时其方向重置为朝向对手。</li>
</ul>

<h2 id="结果">结果</h2>

<p><strong>空棋盘是和棋，全部 64 种首着放置都保持和棋。</strong> 在强制放置的开局阶段之后，游戏依然以和棋为主：已索引的开局后局面中有 91.51% 是和棋。</p>

<table>
  <thead>
    <tr>
      <th>部分</th>
      <th style="text-align: right">胜</th>
      <th style="text-align: right">负</th>
      <th style="text-align: right">和棋</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>开局后</td>
      <td style="text-align: right">184,895,598</td>
      <td style="text-align: right">24,178,920</td>
      <td style="text-align: right">2,253,286,227</td>
    </tr>
    <tr>
      <td>仅放置的开局阶段</td>
      <td style="text-align: right">147,472</td>
      <td style="text-align: right">30,468</td>
      <td style="text-align: right">14,058,925</td>
    </tr>
  </tbody>
</table>

<p>数值均以行棋方视角计。胜表示该方能强制连成四子；负表示一切防守都失败。开局后最深的必胜在 41 着结束，从必负局面出发最长可抵抗 40 着。仅放置的开局阶段中最深的决定性局面达到 39 着。</p>

<h2 id="和棋是什么样子">和棋是什么样子</h2>

<p>我从空棋盘提取了一条确定性的和棋变化。它走了 32 着后进入一个恰好 18 着的循环。棋盘、行棋方、手中棋子以及兵的方向全部重复。</p>

<p>这条变化上的某个局面比开局结果所暗示的要尖锐得多：</p>

<table>
  <thead>
    <tr>
      <th>黑方的选择</th>
      <th style="text-align: right">着法</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>合法</td>
      <td style="text-align: right">18</td>
    </tr>
    <tr>
      <td>保持和棋</td>
      <td style="text-align: right">3</td>
    </tr>
    <tr>
      <td>两着内落败</td>
      <td style="text-align: right">15</td>
    </tr>
  </tbody>
</table>

<p><img src="/assets/posts/tic-tac-chec/drawing-position.svg" alt="Tic-Tac-Chec 残局库棋盘上的一个和棋局面，黑方有十八个合法着法，但只有三个能保持和棋" style="max-width:min(100%,620px);height:auto;display:block;margin:1.5rem auto 0.4rem" />
<em>黑方行棋。只有 <code class="language-plaintext highlighter-rouge">a1-b2</code>、<code class="language-plaintext highlighter-rouge">d2-c2</code> 和 <code class="language-plaintext highlighter-rouge">c3-a2</code> 是和棋；其余 15 个选择都会在两着内落败。</em></p>

<p>这条变化说明了结果。完整的胜/负/和棋表才是证明，它为每个和棋局面都提供了至少一种保和的续法。</p>

<h2 id="一场注意力的较量">一场注意力的较量</h2>

<p>残局库可以检验一种更贴近人类的描述：这个游戏通常很宽容，但当对手排出三枚棋子时，你必须察觉到。</p>

<p>只有当对手存在一个能立刻连成四子的合法着法时，我才计为<em>实际威胁</em>。这就排除了那些具有误导性的三子排列：第四枚棋子被阻挡、兵的方向不对，或走子仍未解锁。两个相互独立的检测器在每一个已索引局面中都找到了完全相同的取胜着法。</p>

<table>
  <thead>
    <tr>
      <th>在开局后的和棋局面中</th>
      <th style="text-align: right">结果</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>能保持和棋的合法着法</td>
      <td style="text-align: right">93.20%</td>
    </tr>
    <tr>
      <td>多数着法均为和棋的局面</td>
      <td style="text-align: right">94.63%</td>
    </tr>
    <tr>
      <td>所有着法均为和棋的局面</td>
      <td style="text-align: right">77.45%</td>
    </tr>
    <tr>
      <td>存在实际威胁的和棋局面</td>
      <td style="text-align: right">108,060,290</td>
    </tr>
    <tr>
      <td>受威胁时能保持和棋的着法</td>
      <td style="text-align: right">25.12%</td>
    </tr>
    <tr>
      <td>只有唯一保和应手的受威胁局面</td>
      <td style="text-align: right">15.23%</td>
    </tr>
  </tbody>
</table>

<p>规律很鲜明：</p>

<ul>
  <li><strong>通常宽松：</strong> 多数和棋局面中的多数着法都没问题。</li>
  <li><strong>局部强制：</strong> 一个实际威胁把保和的选择从 93.20% 的着法压缩到 25.12%。</li>
  <li><strong>并非总能防守：</strong> 开局后所有实际威胁中有 96.89% 存在安全应手。剩下的 3,762,536 个正是残局库中的两着内负局面。</li>
</ul>

<p>处于<em>和棋</em>局面中的每一个实际威胁都有防守手段。而更强的说法（任何局面中的任何威胁都能被挡住）并不成立。</p>

<p>这些是基于完整结构索引的计数，而不是对局面在人类对局中出现频率的估计。它们支持「注意力游戏」这一解读，但并不把它变成概率论断。</p>

<h2 id="解决一个带环的游戏">解决一个带环的游戏</h2>

<p>棋子回收使游戏不会逐步收缩到残局。状态图包含环，因此配合简单置换表的前向极小化极大算法并不安全：依赖路径的重复判定可能渗入某个局面所存储的值。</p>

<p>每个值都以行棋方的视角计。走完一着后，子局面属于对手。我采用逆向方式求解状态图，并显式处理这种视角转换：</p>

<ol>
  <li>把已连成四子的终局标记为下一位该行棋者的负。</li>
  <li>当存在任一着法能让对手处于负局面时，把该局面标记为胜。</li>
  <li>当每个合法着法都让对手处于胜局面时，把该局面标记为负。</li>
  <li>反复迭代直到没有值再变化。所有未确定的局面都是和棋：任何一方都无法把状态图强行推向终局结果。</li>
</ol>

<p>原始规则没有规定重复局面的上限。残局库把无限的非取胜行棋判定为和棋；人类的重复规则可以提供终止条件。</p>

<table>
  <thead>
    <tr>
      <th>表</th>
      <th style="text-align: right">局面数</th>
      <th>表示方式</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>开局后</td>
      <td style="text-align: right">2,462,360,745</td>
      <td>带环状态图，按颜色互换与 180° 旋转归一化</td>
    </tr>
    <tr>
      <td>仅放置的开局阶段</td>
      <td style="text-align: right">14,236,865</td>
      <td>独立的六着无环表</td>
    </tr>
  </tbody>
</table>

<p>每个局面由其棋盘布局和兵方向直接映射为一个整数。工作结果每个局面占一个字节：距离的奇偶性编码胜或负，另有一个编码表示和棋。</p>

<ul>
  <li><strong>源表：</strong> 2.48 GB，含每个局面的结果与剩余距离。</li>
  <li><strong>浏览器表：</strong> 463 MiB，仅为决定性局面存储距离。</li>
  <li><strong>打包审计：</strong> 每一条压缩条目都与源表做了比对。</li>
</ul>

<h2 id="验证结果">验证结果</h2>

<p>正式求解在一台 M3 Max 上使用扁平字节数组完成。它按需生成 28,730,418,180 个开局后有向着法，而不存储边图，使整个求解能在一台笔记本上完成。</p>

<p>随后结果经过了若干独立检查：</p>

<ul>
  <li><strong>值审计：</strong> 在全部 24.6 亿个开局后局面上重新生成每个合法后继局面，并在不使用求解器前驱计数器的情况下校验极小化极大方程。</li>
  <li><strong>距离审计：</strong> 在单独一轮中检查全部 209,074,518 个开局后决定性局面。</li>
  <li><strong>开局重放：</strong> 使用一个独立的可读规则引擎。</li>
  <li><strong>表示检查：</strong> 独立测试了编号/反编号、颜色归一化、兵方向以及生成的前驱边。</li>
  <li><strong>威胁普查：</strong> 两个独立检测器在每一个已索引局面上对立即取胜着法完全一致。</li>
</ul>

<p>发布的表也带有自身标识。规则标签指明它是在哪个确切变体下求解的，内部的 CRC-64/XZ 校验和覆盖全部条目，因此浏览器绝不会悄悄地用一套规则的局面去查询另一套规则的表。</p>

<table>
  <thead>
    <tr>
      <th>字段</th>
      <th>值</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>规则标签</td>
      <td><code class="language-plaintext highlighter-rouge">0x54544303</code></td>
    </tr>
    <tr>
      <td>开局后局面数</td>
      <td>2,462,360,745</td>
    </tr>
    <tr>
      <td>仅放置阶段局面数</td>
      <td>14,236,865</td>
    </tr>
    <tr>
      <td>表 CRC-64/XZ</td>
      <td><code class="language-plaintext highlighter-rouge">0xeb952765179a695e</code></td>
    </tr>
  </tbody>
</table>

<p>在既有资料检索中，我没有找到更早的公开强解或弱解。这是一个有范围限定的否定结果，并不能证明无人私下解决过它。</p>

<h2 id="哪一套规则">哪一套规则？</h2>

<p>本次求解针对的是 <strong>1998 年 Dream Green 版游戏</strong>。这个名字如今涵盖了不止一套规则：</p>

<table>
  <thead>
    <tr>
      <th>规则集</th>
      <th>兵/开局的解读</th>
      <th>空棋盘</th>
      <th>状态</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1998，按行进方向</td>
      <td>返程的兵按其当前方向吃子</td>
      <td>和棋</td>
      <td>标准残局库</td>
    </tr>
    <tr>
      <td>1998，仅去程</td>
      <td>返程的兵不能吃子</td>
      <td>和棋</td>
      <td>备选残局库</td>
    </tr>
    <tr>
      <td>2025 年 鲍比·菲舍尔 复刻版</td>
      <td>宣称有新的兵首着和开局规则</td>
      <td>未知</td>
      <td>需要完整规则书并单独求解</td>
    </tr>
  </tbody>
</table>

<p>原始说明书写道兵在远端反向，且只在「向前」移动时吃子，但从未用图示说明返程吃子。我采用了行进方向的解读：其吃子斜线随之转向。一份详细的<a href="https://www.zpag.net/Jeux/Echec/tic_tac_chec.html">法语转录</a>和一个<a href="https://github.com/cutalion/tic-tac-chec">独立的可玩实现</a>都与此一致。设计者或出版方的直接裁定才能最终定论。</p>

<p>更严格的「仅去程」解读移除了 426,173,880 个合法着法，并改变了 16,529,908 个局面的值。其中有些彻底反转：9,366 个标准规则下的胜变成仅去程规则下的负，810 个负变成胜。开局结果仍为和棋，但由于数以百万计的表条目不同，浏览器依然能识别出是哪个变体。</p>

<h2 id="结语">结语</h2>

<p>十六个格子足以产生 24.8 亿个已索引局面，原因在于吃子会回收棋子而非移除它们。正是这条规则造就了和棋背后的环，也造就了让保和变得困难的战术。</p>

<p>可在 <a href="https://tic-tac-chec.brianhliou.com/">tic-tac-chec.brianhliou.com</a> 与完整解法对战。</p>

<p><strong>资源：</strong></p>
<ul>
  <li><a href="https://tic-tac-chec.brianhliou.com/">Tic-Tac-Chec 残局库浏览器</a>：每个合法着法都按精确结果和决定性距离排序。</li>
  <li><a href="https://github.com/brianhliou/tic-tac-chec/releases/tag/tablebase-v1">标准残局库 v1</a>：463 MiB 的压缩残局库及 SHA-256 校验和。</li>
  <li><a href="https://github.com/brianhliou/tic-tac-chec">求解器与研究记录</a>：Rust 求解器、规则台账、验证测试和复现命令。</li>
  <li><a href="https://github.com/brianhliou/tic-tac-chec/blob/main/research/runs/production-2026-07-13/summary.md">正式求解记录</a>：局面数、耗时、审计与校验和。</li>
  <li><a href="https://github.com/brianhliou/tic-tac-chec/blob/main/research/runs/production-2026-07-13/strategic-report.md">生成的战略报告</a>：完整的剩余距离直方图与重放的变化。</li>
  <li><a href="https://github.com/brianhliou/tic-tac-chec/blob/main/research/threat-census.md">威胁与防守普查</a>：穷尽式的着法宽度与立即威胁统计。</li>
  <li><a href="https://github.com/brianhliou/tic-tac-chec/blob/main/research/runs/outbound-only-2026-07-13/variant-comparison.md">兵规则变体对比</a>：两种兵解读之间的精确转变数量。</li>
  <li><a href="https://redcanoe.weebly.com/uploads/7/4/5/0/7450428/ttcwb2.pdf">Dream Green 原始规则</a>：用于标准求解的第一手规则说明书。</li>
</ul>]]></content><author><name>Brian H. Liou</name><uri>https://brianhliou.com</uri></author><summary type="html"><![CDATA[Tic-Tac-Chec 在其 1998 年原始规则下已被强解：空棋盘为和棋，由一个 24.8 亿局面的残局库支撑。]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://brianhliou.com/assets/posts/tic-tac-chec/thumbnail.png" /><media:content medium="image" url="https://brianhliou.com/assets/posts/tic-tac-chec/thumbnail.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>