<?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-hant/feed.xml" rel="self" type="application/atom+xml" /><link href="https://brianhliou.com/zh-hant/" 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-hant"><title type="html">Benedict 象棋：先行方勝率 78%，關鍵只在一著</title><link href="https://brianhliou.com/zh-hant/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 規則下只有「移動」的那枚棋子算數，所以把中間的子讓開並不構成勝利，結果就是兩將互相照面而對局繼續進行，直到有人把將沿著那條直線走一步來宣告勝利。</p>

<p>保留這個禁令不花任何代價，卻產生出象棋所沒有的一樣東西。被牽制在將帥直線上的棋子沒辦法用武力除掉，因為這裡什麼都不能除掉；把它變色也解不開，因為變色是原地換色。你可以贏得那枚棋子，卻依然動不了它。只有將帥自己走離那條線才能解放它，所以牽制會持續到牽制方把自己的將帥移開為止。</p>

<p><strong>士和象綁定於它所站的區域，而不是擁有者的區域。</strong>一枚變色後的士會待在敵方九宮裡，若採用擁有者綁定的規則，它就永遠凍結在那裡，成為一枚死子和一條無趣的規則。綁定於它所站的九宮，它就還能繼續下。從起始擺法來看兩種解讀完全一致，因為每一枚士本來就站在自家九宮裡，所以這個一般化不花任何代價，還把一枚死子變成攻擊子力。</p>

<p><strong>卒兵綁定於擁有者，這是相反的判斷。</strong>卒兵的前進方向必須跟隨現在的擁有者，否則變色後的卒兵會永遠朝著自己這一方的反方向前進。把這兩條搞反，就是那種會悄悄毀掉遊戲的臭蟲。</p>

<p><strong>和棋需要一個進展計時。</strong>沒有吃子，幾乎每一著都是可逆的。單靠三次重複局面不夠，所以計時只在兩種不可逆事件時重置：發生變色，或走動卒兵。</p>

<h2 id="測試它">測試它</h2>

<p>沒有現成的引擎能下這個。Pikafish、Fairy-Stockfish 和我自己的迷霧引擎都內建了吃子規則，而 Fairy-Stockfish 唯一的變色機制（<code class="language-plaintext highlighter-rouge">flipEnclosedPieces</code>）翻轉的是被「落子」圍住的棋子，黑白棋那種方式，那是另一條規則。</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 萬節點時，紅先各 100 局得分 80.5%，黑先 75.0%；200 萬節點時各 60 局，分別是 82.5% 和 68.3%。兩個方向在兩種預算下都遠高於五成，所以優勢跟著手一走，而不是跟著顏色走，這就使它成為關於這個遊戲的事實，而不是關於我程式碼的事實。在較高預算下紅方看起來確實是這組配對中較好的一半，但 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 局，而它輸掉的那八局才是值得打開來看的。</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>這點值得跟一個聽起來很像的說法區分開。不公平不等於不能下：反吃棋是「已證明」的先行方必勝，而且每天都有人在競技對局，因為那個證明花了五年、八台機器，而且走的是沒有人類找得到的變例。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 個獨立工作，那是需要叢集的形狀；而證明數搜尋，也就是把力氣花在證明樹最窄的部分而不是均勻往深處搜，根本還沒實作。最後那一項不是假設：反吃棋就是這樣被解決的。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-hant"><title type="html">從實戰對局中挖掘象棋謎題</title><link href="https://brianhliou.com/zh-hant/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 上提供 1,415 道謎題</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 著之後的每個局面停下來，以 60,000 節點（大約搜尋深度 10 到 14）向 Pikafish 詢問最佳的兩著。</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、600,000 節點，預算是前者的十倍，並且只以一個純 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>這個語料庫免費，也不需要帳號。精選集是十二個挖掘出來的局面，各附一段說明它示範了什麼；訓練器則提供全部 1,415 道，並且計分。</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[一條把授權釋出的業餘象棋對局資料轉成 1,415 道帶分數謎題的流程：兩輪引擎運算、一道唯一解關卡，以及謎題之所以成為謎題的條件。]]></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-hant"><title type="html">MCP 工具呼叫的重試安全性</title><link href="https://brianhliou.com/zh-hant/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>重試在兩項功能中都作為一般控制流程出現。Multi Round-Trip Requests 會在用戶端「於原始請求的重試中」提供 <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>針對一個三秒的工具設定一秒的用戶端逾時，接著重試。</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>MCP 自 2025-03-26 修訂版起就在工具註記上帶有 <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 結構欄位。其他所有出現都在 <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> 中曝露給代理層。</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-hant"><title type="html">在鬥獸棋引擎中測試「衝獸穴競速」評估項</title><link href="https://brianhliou.com/zh-hant/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>這看起來是個明顯的缺口，是在一局對局之後被記成議題的：當時機器人把一隻鼠來回挪動，而敵方的鼠就這樣走了進來。我花了一天試著補上它。三條路線，結果全是無效或負面。以下是量測告訴我的事，以及我會從中保留的東西。</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>把這個計畫回頭讀一遍，聽起來像是引擎理解了衝獸穴競速。它並沒有。那份評估裡從頭到尾都沒有任何衝獸穴競速項，這個專案之前沒有，之後也沒有。它搜了五百萬個節點，這條路線就出來了。整個結果就是這樣：那個議題想裝進去的行為早就存在了，是靠深度而不是靠知識產生的。</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>評估上的缺口是真的，診斷也正確。它背後就是什麼都沒有。在同一批對局資料中找到的兩個常數，一個是提早結束對局的無吃子和棋計時器，一個是接近零的和棋 contempt，把鬥獸棋從四分之一的對局以勝負收場拉到大約一半，而這兩者都沒有教引擎任何東西。那個議題要的是理解。理解從來都不是瓶頸。</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-hant"><title type="html">象棋七十年冠軍史：附引擎註解</title><link href="https://brianhliou.com/zh-hant/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>請一位西洋棋棋手說出史上最強者，你會得到一場有條理的爭論：Fischer、Kasparov、Carlsen，用一個自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-hant"><title type="html">機器人田徑紀錄一次全被刷新</title><link href="https://brianhliou.com/zh-hant/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 公尺，我找得到的每一家英文媒體都把這個數字擺在 Usain Bolt 的 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 公里/小時</td>
    </tr>
    <tr>
      <td>2011</td>
      <td>ASIMO</td>
      <td>9.0 公里/小時</td>
    </tr>
    <tr>
      <td>2022</td>
      <td>Cassie</td>
      <td>14.6 公里/小時</td>
    </tr>
    <tr>
      <td>2025</td>
      <td>天工 Ultra</td>
      <td>16.7 公里/小時</td>
    </tr>
    <tr>
      <td>2026</td>
      <td>天工 Ultra</td>
      <td>41.7 公里/小時</td>
    </tr>
  </tbody>
</table>

<p>ASIMO 的 9 公里/小時大約維持了十一年。從 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 與 Washington Times 刊出的<a href="https://abcnews.com/Technology/wireStory/chinese-humanoid-robot-sets-new-100-meter-sprint-135942873">美聯社版本</a>給了成績、Bolt 的 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 公尺以上，小型組在此之下。去年只有一個不分組的賽場，所以北京聯合大學一台 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 公尺，對上 Mike Powell 在 1991 年的 8.95 公尺；小型組機器人跑 400 公尺也比人慢。半程馬拉松以 11.1% 打破了這個趨勢，我認為原因在於路面狀況與電池，而不是步態。</p>

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

<p>一台機器人在立定跳高中越過 2.8843 公尺，去年星動紀元的星動 L7 則是 95.641 公分。報導把 2026 年這個數字擺在 Javier Sotomayor 的 2.45 公尺旁邊。</p>

<p>2.8843 公尺是開幕式前的示範表演。正式獎牌項目在 8 月 25 日舉行，由天卓隊的 015 號以 3.4 公尺奪冠，天工 Ultra 機器囊括前四名。新華社自己的閉幕總結，是以決賽對決賽的方式，把這一年描述為從 0.95641 公尺到 3.40 公尺。英文報導拿示範成績去對比 Sotomayor，卻從未報導獎牌項目的成績，這表示英文媒體裡每一次與 Sotomayor 的比較，對比的都是一場示範表演。</p>

<p>以下是計分規則：</p>

<blockquote>
  <p>以機器人跳至最高點時，身體任何部位最低點至地面的垂直距離為成績。</p>

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

<p>規則（<a href="https://k.sina.cn/article_7879924061_1d5ae195d02001ixts.html">來源，中文</a>）刻意不規定機器人如何起跳。所以這個數字是立定跳中對方法毫無限制的全身離地高度，而 Sotomayor 的 2.45 公尺是助跑跳越過橫桿的高度。這是兩個以不同方式測量的不同量，不是同一個項目的兩種版本。</p>

<p>這一點也不是翻譯失誤。中文報導把 2.45 公尺描述為人類男子雙腳<em>立定</em>跳高的最佳成績，但 Sotomayor 的紀錄是助跑跳。錯誤始於中文通稿，英文報導原封不動地繼承了它。</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>賽程其餘部分也是同樣情況。清華的火神隊在 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 公尺/秒</td>
      <td>宇樹 H1 V3.0</td>
      <td>2024-03</td>
      <td><strong>金氏世界紀錄認證</strong></td>
    </tr>
    <tr>
      <td>足式最高速度</td>
      <td>45.5 公里/小時</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 公里/小時，十四年後仍無人能及，而那是一台在跑步機上、靠纜繩連接外部液壓系統的四足機器。把機器人拿來跟短跑選手比較的報導從來不提它。</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">163.com</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-hant"><title type="html">餐廳的違規數大多只是紀錄方式的產物</title><link href="https://brianhliou.com/zh-hant/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 金鑰即可重新產生每一個數字。</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>flag = 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 項的表格，同樣有三種狀態的詞彙，而它把 2% 到 6% 的項目標為「Not Observed」，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>它也造成了我碰到的第一個錯誤。如果依稽查員分組時沒有去掉那些引號，你會得到 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>如果你知道 2019 年 Marin County 究竟改了什麼，我很想聽，我會更新這篇。這裡的每個數字都能用<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-hant"><title type="html">YouTube 留言的讚數大多取決於時機</title><link href="https://brianhliou.com/zh-hant/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 合計約有 3,200 萬則留言。兩者都提供 <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>的讚數排名，這樣就把影片效應從訓練訊號中移除。然後一次加入一項：曝光特徵，接著是長度與形式，接著是 200,000 個 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="依抵達時間計算的 log1p(likes) 平均值，同一批 135 萬則留言的兩種分組方式" />
<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-hant/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-hant"><title type="html">象棋基本殘局：哪些結論已知，可靠程度如何</title><link href="https://brianhliou.com/zh-hant/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>車是象棋最強的子力，也就是換了名字的 rook。標準的士象全保有四個防守子力：將在原位、雙士、雙象，且兩個士正排在將的前方，讓炮無法拿它們當炮架。</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>第二節從另一個方向落在同一級上。中文表把車炮對單車列為勝<em>或</em>和（胜/和），然後用一整段講哪種是哪種。英文保留了其中俐落的那一半，把那一段丟掉了，而那一段才是關鍵。</p>

<p>局面才是事實。結論只是有人從一整架標籤裡挑一個貼上去，而把標籤翻出來卻不帶那整架，就失去了它大部分的意義。</p>

<h2 id="這些結論的可靠程度如何">這些結論的可靠程度如何</h2>

<p>這張表裡的結論屬於三個等級之一，而它們遠遠不等價。有些是已證明的：資料庫算完了整個殘局，答案是一次查表。有些是搜尋出來的：引擎在我跑的深度上同意。那是證據，不是證明。剩下的是斷言，出自一本沒有引註的手冊。</p>

<p>把它們分類花了兩輪。</p>

<p>我把英文那一節的 32 條結論取出來，為每一條做了一個代表性局面，然後在深度 26 問 Pikafish。</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 個裡有二十七個符合。這個門檻比聽起來寬鬆，因為一個盤上有八個士象的局面，受限程度幾乎和只有三個子的局面一樣：士只有五個合法格，象只有七個，而且都不能離開自己半邊。它也確實是查表。沿著它自己的最佳著法一步步走，結論從不翻轉，距離也從不上升，沒有任何搜尋會這樣。</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-hant"><title type="html">Tic-Tac-Chec：規則與已被解決的遊戲</title><link href="https://brianhliou.com/zh-hant/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>棋子回收使遊戲不會朝殘局逐步收斂。這個圖含有環，因此搭配簡單置換快取的前向 minimax 並不安全：一個依賴路徑的重複判定可能滲入某個局面所儲存的值。</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 億個開局後局面中重新生成每個合法後繼局面，並在不使用求解器前驅計數器的情況下檢驗 minimax 等式。</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>