<?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/ja/feed.xml" rel="self" type="application/atom+xml" /><link href="https://brianhliou.com/ja/" rel="alternate" type="text/html" /><updated>2026-09-12T02:02:51+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="ja"><title type="html">ベネディクト・シャンチー（中国象棋）：先手が78%勝つ、その原因はたった一手</title><link href="https://brianhliou.com/ja/posts/benedict-xiangqi-balance/" rel="alternate" type="text/html" title="ベネディクト・シャンチー（中国象棋）：先手が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>ベネディクト・チェスには駒取りがない。駒を動かすと、その新しいマスから利きが通っている敵駒はすべて色が変わり、自分の側につく。敵のキングを転向させれば勝ちだ。W. D. Troyka が2002年に発表し、寝返った人物であるベネディクト・アーノルドにちなんで名付けた。</p>

<p>調べた限り、このルールをシャンチー（中国象棋）の盤上に載せた人はいなかった。Chess Variant Pages は7,383のゲームを収録しているが、シャンチー盤を使う43件と転向系の十数件は互いに交わらない集合であり、Ludii の2,330ゲームや Fairy-Stockfish のバリアント一覧も同様だ。惜しい例は名前を挙げておく価値がある。その多くは蝶番一つ分しか離れていないからだ。Desertion Chess は利きではなく駒の隣に動くことで転向させ、駒取りも残している。Andernach は取られた駒ではなく取った駒の色を変える。Cleopatra Chess は Troyka 自身のルールを1種類の駒に限定したものだ。そしてシャンチー自身の裏返し系ゲームである闇棋（banqi）や掲棋（jieqi）は、駒を裏返して正体を明かすもので、所有者を変えることとはまったく別物である。</p>

<p>シャンチーには障害駒を越えて取る砲があり、九宮の9点に閉じ込められた将があり、河（楚河漢界）を越えられない象がある。だから移植は機械的に済むはずがなかった。既定の答えがない4つの設計判断を突きつけられた。</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>盤の下のカウントは、この記事が何度も立ち返る数字だ。0から始まり、そのままではいられない。</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%で、平均値はごく一部の非常に激しい局面に引き上げられている。平均は対局の最初の5分の1での24%から最後の5分の1では37%へと上がりもする。起きないのは、駒組みできる静かな序盤の段階だ。最初の5分の1でさえ、全手の4分の1が即負けになる。</p>

<h2 id="ゲームを設計する">ゲームを設計する</h2>

<p><strong>将帥対面は依然として禁止。</strong> シャンチーは両将が間に何もない同じ縦列に並ぶことを禁じており、これは残した。代わりに将帥対面を勝利条件にする手もあり、聞こえはいいが壊れる。ベネディクトでは動いた駒だけが数えられるので、縦列を開けても勝ちにならず、結果として両将が向かい合ったまま対局が続き、どちらかが将を縦列上に一歩動かして勝ちを主張するまで終わらない。</p>

<p>禁止を残すのは何の代償もなく、シャンチーにないものを一つ生む。両将の縦列上でピンされた駒は力で除去できない。ここでは何も除去されないからだ。転向させても解放されない。転向はその場で色を変えるだけだからだ。駒を得ても、それを動かせないままになる。解放するのは将が縦列から外れることだけなので、ピンはピンしている側が自分の将をそこに置き続ける限り持続する。</p>

<p><strong>士と象は、所有者ではなく自分が立っている領域に束縛される。</strong> 転向した士は敵の九宮の内側にいる。所有者に束縛されるルールではそこに永久に凍結され、死んだ駒とつまらないルールになる。立っている九宮に束縛されるなら、そのまま働き続ける。初期配置ではこの二つの解釈は同一だ。どの士もすでに自陣の九宮に立っているからで、一般化しても代償はなく、死んだ駒を攻め駒に変える。</p>

<p><strong>兵は所有者に束縛される。こちらは逆の判断だ。</strong> 兵の前進方向は現在の所有者に従わなければならない。さもなければ転向した兵は自陣から永遠に離れて進むことになる。この二つを逆にするのが、静かにゲームを壊すバグだ。</p>

<p><strong>引き分けには進展カウンタが必要。</strong> 駒取りがないので、ほとんどの手が可逆だ。同一局面3回では単独では足りないので、不可逆な二つの事象、すなわち転向と兵の移動でカウンタをリセットする。</p>

<h2 id="検証する">検証する</h2>

<p>既存のエンジンではこれを指せない。Pikafish、Fairy-Stockfish、そして自作の霧エンジンはいずれも駒取りルールを組み込んでおり、Fairy-Stockfish の唯一の転向機構（<code class="language-plaintext highlighter-rouge">flipEnclosedPieces</code>）は<em>ドロップ</em>で囲まれた駒をリバーシ式に反転させるもので、別のルールだ。</p>

<p>そこで、置換表、主要変化探索、レイトムーブリダクション、転向についての静止探索を備えた Rust の alpha-beta エンジンを書いた。シャンチーの駒価値を持ち込むのではなく、2,500局の自己対戦の結果にロジスティック回帰をかけて値をフィッティングし、これが手で選んだ値との直接対戦に勝った。</p>

<p>フィッティングした数値は引用しない。以前の草稿では引用し、駒の価値の測定値として読んでいたが、相関のある8,000局面へのロジスティック回帰が支えられる以上のことだった。データの4分の1で行った初期のフィットでは、いくつかの係数の符号が後に反転した。残るのはそれが同意した順序、すなわちここでは士と象がほぼ無価値だということで、それは回帰を必要としない。守るべきものがないことから導かれるからだ。</p>

<p>ルールカーネルは連鎖的に検証されている。後に間違ったのはすべて測定側であってルールではなかったので、これは重要だ。JavaScript のプロトタイプは、すでに使っているシャンチーライブラリ <code class="language-plaintext highlighter-rouge">elephantops</code> に対して720,947件の駒の幾何比較で差分テストされ、不一致は0だった。Rust エンジンはそのカーネルの着手数を1億1,300万局面まで正確に再現する。TypeScript 移植版は両方を再現する。</p>

<p>3つの結果は以降のあらゆる変更を通じて維持された。どれもエンジンの判断に依存しないからだ。</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>1,696手にわたり<strong>平均28%</strong>、中央値10%</td>
    </tr>
  </tbody>
</table>

<p>この3つはエンジンが変わっても動かない。だから勝率よりも信頼している。</p>

<p><strong>このエンジンはゲームを評価できるほど強いのか。</strong> 毎秒約160万局面を探索し、数秒で深さ8か9に達する。成熟したチェスエンジンには遠く及ばない。及ぶ必要もない。</p>

<p>上の3つの結果は棋力にまったく依存しない。一つはランダム手の対照実験、一つは証明、一つは合法手の数え上げだ。証明については正確に述べる価値がある。通常の探索では証明にならないからだ。このエンジンはレイトムーブリダクションを使い、後続の手を浅く探索するので、勝ちが見つからなかった通常の探索は「すべてを見たわけではない」ことしか示さない。リダクションと静止探索を切り、詰み閾値でのyes/noとして問えば証明になる。それが上の13手の意味だ。そして78%については、ここで重要な性質、すなわちエンジンが強くなったときに動くかどうかを確認した。ほとんど動かない。1手30万ノードで77.8%、200万ノードで75.4%。7倍の幅に対して、標本誤差は両方向に数ポイントある。</p>

<p>エンジン強度をまたいだ安定性が私の信頼するテストだが、それ単独では足りない。この測定の以前の版は6手のランダム定跡で対局に変化をつけ、52.7%を得て、同じ10倍の幅にわたる3つのエンジン強度で維持された。安定していたのは、その定跡がまさに測定対象のテンポを使い果たしていたからだ。ランダムな6手はどちらのエンジンが指す前に優位を投げ捨てるので、下にあるゲームがどうであれ結果は互角へ流れる。壊れた温度計はどの部屋でも室温を示す。上の78%は定跡を使わず、代わりに評価値のジッターから変化を得ている。</p>

<p>計算資源を増やして得られるものは限定的で、かなり明確だ。ビットボードと着手順序の改善で深さ12〜14に届く。深い戦術や本物の序盤理論について何か言う前に、そこには居たい。学習評価は高価な選択肢で、おそらく誤った選択だ。他のバリアントでの以前の2度の試みはいずれも置き換えるはずだった手作り評価に届かず飽和し、どちらの失敗も金の問題ではなかった。</p>

<p>というわけでこの記事はクラブ級の強さで見たゲームを記述している。残した主張は、どの強さでも成り立つものだ。</p>

<p>エンジン、カーネル、テストハーネスは数千行の Rust と TypeScript で、54局と序盤の全表とともに GitHub の <a href="https://github.com/brianhliou/benedict-xiangqi">github.com/brianhliou/benedict-xiangqi</a> にある。この記事のすべての数字は <code class="language-plaintext highlighter-rouge">cargo run</code> から出てくる。</p>

<h2 id="砲の一手が決める">砲の一手が決める</h2>

<p>先手は<strong>78%</strong>の対局に勝つ。初期配置からオンポリシーで、序盤定跡なし、両色が交互に先手を取って測定した。1手30万ノードで紅先手は80.5%、黒先手は75.0%（各100局）。200万ノードでは82.5%と68.3%（各60局）。どちらの向きもどちらの予算でも互角を大きく上回るので、優位は色ではなくテンポに従っている。だからこれは私のコードについてではなくゲームについての事実だ。高い予算では紅の方が組み合わせの良い側に見えるが、60局では誤差が約12ポイントあるので、まだ何も読み取らない。</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>最良の2つは同じ発想で、砲を5段目または6段目に上げる手だ。成績が0の3つは、象、辺への馬、そして中央を一歩上がる将である。</p>

<p>紅の初手の価値は0から92%まで幅があり、42手のうち3手は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>シャンチーの砲は自分と標的の間に駒がちょうど1枚必要だ。黒の初期配置は、その駒を、正しい位置に、無償で用意している。シャンチーの初期配置がたまたまベネディクトのルールに使える位置にあるために、この脅威が存在する。</p>

<h2 id="指したすべての対局">指したすべての対局</h2>

<p>最強設定の54局すべて、選別なし。先手が46局を勝ち、負けた8局こそ開いてみる価値がある。</p>

<!-- Generated by scripts/gen-benedict-diagrams.mts. Do not hand-edit. -->
<div class="xq-browser">
  <div class="xq-browser-head">
    <label>棋譜 <select class="xq-browser-pick"></select></label>
    <span class="xq-browser-meta"></span>
  </div>
  <div class="xq-browser-board"><svg class="xq-article-svg" data-xq-layout="single" style="--xq-svg-width: 292px" viewBox="0 0 292 351" role="img" xmlns="http://www.w3.org/2000/svg"><style>.xq-diagram-bg{fill: var(--xq-diagram-bg, #d9bd82);}.xq-diagram-palace-band{fill: var(--xq-diagram-palace-band, rgba(255, 255, 255, 0));}.xq-diagram-line{stroke: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-ink{fill: var(--xq-diagram-ink, #4b3c2a);}.xq-diagram-river-label{display: var(--xq-river-label-display, none);}.xq-diagram-title{fill: var(--site-heading, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-outside-text{fill: var(--site-text, var(--xq-diagram-ink, #4b3c2a));}.xq-diagram-fog{fill: var(--xq-diagram-fog, rgba(36, 25, 15, 0.55));}</style><g transform="translate(4 4)"><text x="142" y="14" font-family="system-ui, sans-serif" font-size="13" font-weight="700" class="xq-diagram-title" text-anchor="middle"></text><rect x="0" y="28" width="284" height="315" rx="8" class="xq-diagram-bg" /><line x1="18" y1="46" x2="266" y2="46" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="77" x2="266" y2="77" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="108" x2="266" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="139" x2="266" y2="139" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="170" x2="266" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="201" x2="266" y2="201" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="232" x2="266" y2="232" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="263" x2="266" y2="263" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="294" x2="266" y2="294" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="325" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="18" y1="46" x2="18" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="46" x2="49" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="49" y1="201" x2="49" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="46" x2="80" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="80" y1="201" x2="80" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="111" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="201" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="46" x2="142" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="142" y1="201" x2="142" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="173" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="201" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="46" x2="204" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="204" y1="201" x2="204" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="46" x2="235" y2="170" class="xq-diagram-line" stroke-width="1" /><line x1="235" y1="201" x2="235" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="266" y1="46" x2="266" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="263" x2="173" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="263" x2="111" y2="325" class="xq-diagram-line" stroke-width="1" /><line x1="111" y1="46" x2="173" y2="108" class="xq-diagram-line" stroke-width="1" /><line x1="173" y1="46" x2="111" y2="108" class="xq-diagram-line" stroke-width="1" /><text x="142" y="186.5" font-family="serif" font-size="16" class="xq-diagram-ink xq-diagram-river-label" text-anchor="middle" dominant-baseline="central">楚 河   漢 界</text></g><g class="xq-browser-pieces" transform="translate(4 4)"></g></svg></div>
  <div class="xq-browser-nav">
    <button type="button" data-jump="start" aria-label="最初の局面">&#124;&#9664;</button>
    <button type="button" data-step="-1" aria-label="1手戻る">&#9664;</button>
    <span class="xq-browser-ply">0</span>
    <button type="button" data-step="1" aria-label="1手進む">&#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>対局は誰かが悪手を指して終わるのではない。一方が負けにならない手を切らして終わるのであり、その数は盤上に何か見えるものが現れる20手ほど前から上がり続けている。</p>

<h2 id="パイルールで公平にする">パイルールで公平にする</h2>

<p>42通りの序盤の散らばりこそがこれを回復可能にしており、その修正は他のゲームにすでに存在する。</p>

<p>パイルールは、子ども二人がケーキを分けるやり方と同じだ。一方が切り、他方が選ぶ。紅が初手を指す。次に黒は、黒として続けるか、代わりに紅の局面を引き取るかを選ぶ。この一つの選択肢が紅の最適化対象を変える。黒が単に取れるのなら、最強の序盤を指す意味がなくなるからだ。</p>

<p>そこで紅は互角に最も近い手へ押される。42手のうち4手がそこに位置する。2つは砲が自分の最良のマスを見送る手で、残りの2つは盤上で最も静かな駒組みの手だ。</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 />砲が1歩進むだけで、効き目のある第5列には遠く及ばない。</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を空ける。将の筋は1手目から勝負に絡んでいる。</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%付近に落ち着く。優位を減衰させるのではなく、紅が優位を使う能力を取り除くことによってであり、これは聞こえよりもきれいな修復だ。ヘックスはどの盤サイズでも先手勝ちが証明されているが、世界中で競技として指されている。それはひとえにスワップのおかげだ。</p>

<p>正直な留保は標本だ。この4つの数字はそれぞれ24局から出ている。互いに順位づけしたくはない程度に広く、0%から83%への散らばりが本物だと言える程度に狭い。そのどれかが適切な標本の下で50%付近を保つことを確認するのが、今後の課題だ。</p>

<p>パイルールは激しさに触れずに公平性を直す。負ける手の割合はルールの性質であって誰が優勢かの性質ではないので、まったく動かない。勝負は互角になる。穏やかにはならないし、それが人が遊びたいゲームかどうかは、勝率からは答えられない別の問題だ。</p>

<h2 id="現状">現状</h2>

<p>競技ゲームとして出荷できる状態ではない。先手が4局に3局勝つのでは、レーティング制のラダーは成り立たない。</p>

<p>これは似て聞こえる主張と切り分けるべきだ。不公平は遊べないことを意味しない。ルーズチェスは先手勝ちが<em>証明済み</em>でありながら毎日競技として指されている。証明には5年と8台のマシンを要し、人間には見つからない変化を進むからだ。ヘックスはどの盤サイズでも先手勝ちが証明されており、スワップの後ろで指されている。先手の優位だけでゲームが死ぬわけではない。</p>

<p>ここで違うのは深さだ。この78%は、一文で言える一手、砲を5段目に上げる、に乗っており、エンジンは毎回それを見つける。証明されていても到達できない勝ちは好奇の対象だ。暗記できる勝ちはゲームそのものになってしまう。</p>

<p>パイルールの他に、未検証の修復が2つある。将を転向させる代わりに印を付け、守備側に応手を1手与えれば、砲の脅威を直接鈍らせる。攻めている駒を転向させるのはすでに合法な応手だ。あるいは初期配置の中央の兵を動かす。この脅威は黒の兵が砲の必要とする砲台の位置に立っているからこそ存在するのだから。</p>

<p>どちらにしても残るのは設計だ。シャンチー盤上の転向は、終盤のないゲーム、決して弱らない砲、無価値な守備駒、そして敵陣の奥に永久に取り残される転向した士を生む。これは測定のどの版を通じても保たれた。ルールは4通り別々に検証した唯一の部分だったからだ。</p>

<p>次は1テンポルールだ。カーネルに20行、そしてすでに存在するハーネスの再実行だけだ。</p>

<p><strong>残る問いは、紅に強制勝ちがあるかだ。</strong> 上のすべては勝率であり、特定の2つのエンジンについての言明だ。その下にある問いは、最善手の下でこのゲームが先手勝ちかどうかで、そちらの答えは何がどれだけ上手く指すかに依存しない。</p>

<p>手元にあるのは下限だ。13手以内に強制勝ちはなく、208億ノードと約30分で証明した。安直な勝ちは排除できるが、長さの中央値が29手のゲームでは、これでようやく半分ほどしか探索していない。</p>

<p>見た目より難しくする要素が2つ、易しくする要素が1つある。駒は保存されるので状態空間は縮まらない。つまり構築すべき終盤データベースはなく、前進探索が中間で出会う相手もいない。解決済みのチェス終盤すべての背後にある技法である後退解析は、単に高価なのではなく原理的に使えない。対称な初期配置から超弱解を得る通常の手段である戦略盗用も適用できない。駒は蓄積されるのではなく移動するので、先手が任意の手を指してそれを捨てることができないからだ。助けになるのは対局が短いことだ。中央値は29手で、54局のエンジン対局にも6,000局のランダム対局にも引き分けはなかった。木は浅く鋭く終端的で、これは証明数探索が得意とする形だ。</p>

<p>次の段は14で、そのてこはハードウェアの追加ではない。上の証明は紅の42通りの初手に分割され、ほぼ完全に並列化できる。それはまさに答えが「なし」だからだ。強制勝ちがなければどの枝も他を打ち切らないので、同時に探索しても失うものがない。それでラップトップ1台から13が得られた。2手深く分割すれば約1,700の独立ジョブになり、これはクラスタを求める形だ。そして一様に深く探索する代わりに証明木の最も狭い部分に労力を注ぐ証明数探索は、まったく実装していない。最後の点は仮定の話ではない。ルーズチェスはそうやって解かれた。Mark Watkins は16コアのマシン8台で5年以上にわたって証明数探索を走らせ、1.e3 が白の勝ちであることを示した。これは必要な技法そのものであり、この仕事をやり切る代償についての正当な警告でもある。</p>

<p>誰かが弱解、あるいは私の思いつかない論法で超弱解にまで到達すれば、パイルールの問題も決着する。先手勝ちが証明されている場合こそ、スワップが発明された場面そのものだからだ。ヘックスはどの盤サイズでも先手勝ちが証明されていて、それでも競技として指されている。</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[ベネディクト・チェスの転向ルールをシャンチー（中国象棋）の盤上へ。既定の答えがない4つの設計判断と、公平性を検証するためのエンジン。紅の勝率は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="ja"><title type="html">実戦棋譜からシャンチー（中国象棋）のパズルを掘り出す</title><link href="https://brianhliou.com/ja/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">12局面のサンプラー</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="2段階構成とその分割が得になる理由">2段階構成と、その分割が得になる理由</h2>

<p>この仕組みの経済性はすべて一つの非対称性に依る。安い走査はすべての棋譜のすべての局面に走り、高価な走査はそこを生き残ったものにしか走らない。</p>

<p>安い走査は棋譜を再生し、8手目以降のすべての局面で止まり、60,000ノード（おおよそ探索深さ10から14）でPikafishに上位2手を尋ねる。</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>すべての棋譜のすべての局面に触れる走査で、1局面あたりの探索が2回ではなく1回になる。この半減が、集合全体の走査を現実的な費用に収めている。1,000局あたり約6コア時間、公開パズル1問あたり約1コア分だ。</p>

<p>次に高価な走査が、各候補を探索深さ20、600,000ノード（10倍の予算）でエンジンにかけ直す。指し手の履歴を持たない裸のFENとして渡す。同じ局面でも文脈がないので、エンジンは直前に行った探索に頼れない。</p>

<h2 id="答えを一つにするもの">答えを一つにするもの</h2>

<p>解答は一手ずつ組み立てられ、どの手もそれ自体で唯一の最善でなければならない。エンジンの最善応手列をそのまま採るのは通らない。PVは一回の探索でエンジンが気に入った一本の変化に過ぎず、3手目が強制だったかどうかについては何も語らない。別の3手目を見つけて不正解と告げられた解き手は、嘘をつかれたことになる。</p>

<p>一意性もセンチポーンの差ではない。50センチポーン離れた2手はどちらも良く、一方を要求すると正しく選んだ解き手を罰することになる。ある手を<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>2段目の検査は、生き残ったものをノード上限なしの探索深さ22で、別プロセスで、1段目の判断を一切知らない状態で監査する。そのうち約6%が持ちこたえない。同じエンジンを異なる予算で2回走らせたときのこの不一致率こそ、2段目を置く理由そのものだ。一つのエンジンの一つの探索深さは、自らの判定についての真理の源ではない。</p>

<h2 id="まだ誰も解いていない手順にレーティングを付ける">まだ誰も解いていない手順にレーティングを付ける</h2>

<p>検証済みで一意でも、なお悪いパズルになりうる。その分かれ目を決めるのが難易度だ。</p>

<p>素朴なレーティングは詰みまでの深さだが、それでは集合全体で4通りの値しか出ない。実際のレーティングは解答をたどり、局面を見えにくくする要素を採点する。静かな初手は加点、駒取りは減点、回収されない犠打は最大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>ある種類の局面はレーティングを付けずに保留する。解き手がすでに馬1枚以上リードしており、<em>しかも</em>答えが無防備な駒を取ることであるパズルは、どのレーティングでも何も教えない。レーティングが決められるのは、誰にその問題を見せるかだけだ。</p>

<h2 id="集合の実際の姿">集合の実際の姿</h2>

<p>サンプラーから3章、それぞれが数字の一つを担っている。</p>

<p><strong>パズルの3分の2は、何も取らない手で始まる。</strong> まず駒取りを見て戦術を探すやり方（ほとんどの人がそうする）では、たいてい盤の間違った3分の1を見ていることになる。次の例は4月の広東対山東の団体戦からで、手順中どちらも一度も駒を取らないまま詰みで終わる。</p>

<iframe src="https://mistboard.com/embed/study/E63eGK5V/baUOd99U?theme=light" title="駒を取らずに詰み" loading="lazy" class="xq-embed"></iframe>

<p><strong>駒を捨てる手が絡むのは約10分の1だけ。</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へ動き、何も取らず、何も狙わず、3手後の駒交換で紅が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>約3分の2</td>
    </tr>
    <tr>
      <td>詰み以外で終わる</td>
      <td>~40%</td>
    </tr>
    <tr>
      <td>駒を捨てる</td>
      <td>~10%</td>
    </tr>
  </tbody>
</table>

<h2 id="結局パズルとは何なのか">結局パズルとは何なのか</h2>

<p>勝勢の局面はたいてい勝ちの手が複数あり、それが失格の理由になる。マイナーが見つけるもののうち3分の1はそれだけで消える。パズルとは、答えが一つで、見つけるのに労力を要するだけ深く、1時間後にさらに強いエンジンが同意するだけ安定した局面だ。誤りの10のうち9は条件を満たさない。それが、大きなシャンチーのパズル集がどこにも転がっていない本当の理由だ。供給の問題は悪手を見つけることではなく、そのほとんどがパズルではないことにある。</p>

<h2 id="解いてみる">解いてみる</h2>

<p>この集合は無料でアカウントも不要。サンプラーは掘り出した12局面に、それぞれが何を示すかの注記を付けたもの。トレーナーはレーティング付きで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問のレーティング付きパズルを生成するパイプライン。2段階のエンジン走査、一意性のゲート、そしてパズルをパズルたらしめるもの。]]></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="ja"><title type="html">MCP ツール呼び出しにおけるリトライ安全性</title><link href="https://brianhliou.com/ja/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>クライアント側で失敗したツール呼び出しが、サーバー側では完了している場合がある。呼び出し元がリトライすれば、ツールは二度実行される。本稿ではその4つの再現例、関連する仕様の記述、そしてリファレンス実装における冪等性サポートの現状を記録する。</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> というツールを1つ公開しており、台帳ファイルに1行追記してからスリープする。書き込みはスリープの前に行われるため、副作用は呼び出しの早い段階で確定し、その後の失敗では取り消されない。</p>

<h2 id="2026-07-28-改訂での変更点">2026-07-28 改訂での変更点</h2>

<p><a href="https://modelcontextprotocol.io/specification/2026-07-28/changelog">現行の改訂版</a>における2系統の変更が本件に関係する。</p>

<p>リトライは2つの機能で通常の制御フローとして現れる。Multi Round-Trip Requests は、クライアントが「元のリクエストのリトライにおいて」<code class="language-plaintext highlighter-rouge">inputResponses</code> を提供したときに解決する。エリシテーション完了通知は、「クライアントは元のリクエストをリトライすることで、帯域外のやり取りの結果を知る」ため削除された。</p>

<p>接続をまたいで状態を保持していた4つの仕組みが削除された。</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 は代替となる挙動を規定している。「レスポンスストリームが壊れると処理中のリクエストは失われる。クライアントは新しいリクエスト ID を持つ新規リクエストとして再発行<strong>しなければならない</strong>。」</p>

<p>この改訂では <code class="language-plaintext highlighter-rouge">_meta</code> キーが6つ予約された（<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>3秒かかるツールに対してクライアントのタイムアウトを1秒に設定し、その後リトライする。</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>順序について注目すべき点が3つある。</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>サーバープロセスが予期せず終了した場合、クライアントはそれを再起動すべきである（SHOULD）。プロトコルはステートレスなので、処理中のリクエストは単に失われ、クライアントは新しいプロセスに対してリトライできる。</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>台帳の2つのエントリはどちらも <code class="language-plaintext highlighter-rouge">reqId: 1</code> を持つ。再起動したプロセスはリクエストカウンタを最初から数え直すため、リクエスト ID は再起動をまたいで一意ではない。</p>

<h2 id="シナリオ-3-streamable-http">シナリオ 3: Streamable HTTP</h2>

<p>シナリオ 1 と同じタイムアウトとリトライを、<code class="language-plaintext highlighter-rouge">StreamableHTTPServerTransport</code> と <code class="language-plaintext highlighter-rouge">StreamableHTTPClientTransport</code> 上で行う。1回の呼び出しに対して副作用が2つ発生し、リクエスト ID はそれぞれ 1 と 2 で異なる。トランスポートの選択によって結果は変わらなかった。</p>

<h2 id="シナリオ-4-langgraph-のデフォルトリトライポリシー">シナリオ 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">retry_on</code> を上書きしないデフォルトの <code class="language-plaintext highlighter-rouge">RetryPolicy</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>デフォルトポリシーの2つの性質がこれを引き起こす。</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> 実行時の出現は1件で、<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> 出現は1件で、<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>冪等性の仕組みを持つ実装が1つある。<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> 型があり、ドキュメントには「配信は at-least-once である。独自の永続的な冪等性のためには <code class="language-plaintext highlighter-rouge">idempotencyKey</code> または <code class="language-plaintext highlighter-rouge">occurrenceKey</code> を使うこと」と記されている。残存する at-least-once のケースと、そのうちどれを許容するかも列挙している。</p>

<p><code class="language-plaintext highlighter-rouge">.d.ts</code> を除き、実行時ファイルのみを検索した結果は次のとおり。</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">callTool</code> を呼ぶ実行時ファイルは5件</li>
  <li><code class="language-plaintext highlighter-rouge">idempotencyKey</code> を参照する実行時ファイルは8件</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> には届かない。<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 で検証した6つの性質から成る適合性コントラクト、39セルの障害マトリクス、実際に SIGKILL を与えた5つの実稼働フレームワークでの測定である。LangGraph 1.2.9 を「割り込みをまたいでは exactly-once、クラッシュをまたいでは at-least-once」と測定し、適合プロファイルが一致するフレームワークは2つとして存在しないと報告している。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>このスレッドは3週間続いた。あるレビュアーが 08-01 にマルチラウンドトリップの等価性のギャップと、リファレンス実装におけるワイヤーレベルの不整合を指摘し、著者は 08-02 に両方の修正をプッシュ、08-05 にはキーを専用フィールドに置くべきか予約済みの <code class="language-plaintext highlighter-rouge">_meta</code> キーに置くべきかを尋ねた。この質問はワーキンググループに向けられたが、18日間回答がなかった。08-23 にメンテナが「開示も文脈もない AI 生成の PR」というコメントを添えて 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>これを拡張する人への注意点が1つある。シナリオ 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 は成功し、ハーネスは成功した呼び出しをリトライしていた。副作用は2件と報告されたが、何も証明していない。子プロセスがサーバー自身になるよう <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>現時点ではどちらも存在しない。いずれかが実現するまで、ツール呼び出しを1度だけ行う必要のあるアプリケーションは、自前のキーをツール引数に載せてサーバー側で重複排除するしかない。プロトコルはそれを運んでくれないからだ。</p>

<hr />

<p><strong>参考資料:</strong></p>
<ul>
  <li><a href="https://github.com/brianhliou/mcp-retry-repro">再現用ハーネス</a> - 4つのシナリオ、バージョン固定</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: Request Idempotency</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 上でツールが二重実行される事例を4つ再現する。タイムアウトによるキャンセル、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="ja"><title type="html">闘獣棋エンジンで巣レースの評価項を試す</title><link href="https://brianhliou.com/ja/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>巣へ向かって走る駒が先に着くかどうかを問うことはない。それが分かるのは探索が巣に到達したとき、およそ12手先である。</p>

<p>これは明らかな欠落に見え、ボットが鼠を行き来させている間に相手の鼠が入ってきた対局のあと、課題として登録した。1日かけてこれを埋めようとした。3つの経路、いずれも効果なしか悪化。以下は計測が示したことと、そこから残すべきものである。</p>

<h2 id="エンジンがすでにできていること">エンジンがすでにできていること</h2>

<p>切り分けておく価値がある。これがその後のすべての枠組みを決めたからだ。エンジンは勝利条件を完全に理解している。巣への到達は詰みとして評価され、候補手の先頭に並べられ、静止探索でも探索される。欠けているのは先読みであって、理解ではない。</p>

<p>それでも勝てるのは、闘獣棋が駒の損得に支配されるゲームで、評価が駒の損得を正確に読むからだ。巣に入る瞬間、勝者は中央値で20点リードしており、猫1匹ぶんほどである。劣勢だった側が勝つ対局は4.7%しかない。</p>

<h2 id="この概念なしで指す手">この概念なしで指す手</h2>

<p>この調査の第10局は4手しかなく、以下のどの表よりもうまく問題を片づけている。</p>

<p>闘獣棋の中央は3段ぶんの水域だ。それを渡れる陸の橋は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の狼を取り、いま通路に立っている。青の象はその1マス上に
あり、格上である。</em>20手目、赤のd5の虎には
合法手が2つあった。前か後ろ、どちらも通路の中だ。虎は前に出て狼を
取り、青に40点の損を与え、虎を青の象の隣に置いた。</p>

<p>青の象は虎より格上なので、これは贈り物に見える。青はすぐには取らなかった。これが説明を求められた手である。エンジンの理由は、虎が逃げられなかったことだ。象がd7にいると虎の唯一の手はd5、d5からの唯一の手はd4で、自分を破れる駒に一車線の通路を追い下される。取りに行くのは、すでに手に入れたものを回収するために一手損することになる。青は無料で局面を良くする手を指し、2手後にd6ではなくd5で虎を取った。どちらの手順も同じ駒の損得に行き着く。</p>

<p>対局を決めた4手：</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で、その差は4点にすぎず作戦とは言えない。ただ盤から消える途中で、獅子より格上の唯一の駒をdファイルへ引き下ろす。20手目では獅子の飛び越えは<strong>-195</strong>、c7がd7の青の象の隣だからだ。2手後には同じ飛び越えが勝ちになる。象がいなくなったからである。</p>

<p>青はこの手順の終わりに13点リードし、そして負ける。</p>

<p>作戦を読み返すと、エンジンが巣レースを理解していたように聞こえる。だが理解していない。この評価のどこにも巣レースの項はない。このプロジェクトの前も後もだ。500万ノードを探索し、手順が出てきた。これが結論のすべてである。課題が入れたかった振る舞いはすでにそこにあり、知識ではなく深さが生んだものだった。</p>

<h2 id="基礎出現率全局の47しかも実運用の強さで測ること">基礎出現率：全局の4.7%、しかも実運用の強さで測ること</h2>

<p>1手500万ノードという本番設定での自己対局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>（10手前の時点で勝者が互角または劣勢）</td>
      <td><strong>4.7%</strong></td>
    </tr>
  </tbody>
</table>

<p>同じ計測環境を20万ノードで動かすとレースは22%と出る。弱い指し手が数字をおよそ5倍に膨らませる。安い計測は使えたのだが、それは作業を増やす方向に5倍ずれていただろう。</p>

<h2 id="伸びしろ12倍深い探索で得られるのは2手">伸びしろ：12倍深い探索で得られるのは2手</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>6000万ノード対500万ノードで、深い探索が負けを見抜くのは中央値で2手早いだけだ。その地平より前では両者はほぼ一致し、最後の1、2手でようやく分かれる。</p>

<p>これがプロジェクトを終わらせるべき数字だった。探索を12倍にして2手しか回収できないなら、賢い評価が掘り出すのを待っている情報などそこにはない。</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 では、延長は単に「どこでも12倍探索する」ことになり、外科的だという枠組みは最初から間違っていた。</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.3倍</td>
    </tr>
    <tr>
      <td>予算中立、基本3.7M＋巣付近10M</td>
      <td><strong>-15</strong></td>
      <td>1.04倍</td>
    </tr>
    <tr>
      <td>予算中立、基本1.1M＋巣付近20M</td>
      <td><strong>-12</strong></td>
      <td>0.98倍</td>
    </tr>
  </tbody>
</table>

<p>同じ発想、同じコード、符号は逆。エンジンの500万ノードはプレイヤーが待てる時間で固定されているので、現実の延長は深さを生み出せない。探索の他の部分から奪うのだ。無料の条件が測っていたのは追加の計算資源である。巣とは無関係だ。</p>

<p>予算中立の条件を走らせたのは、+45が良すぎたからだ。そこで止めていたら、わずかにゼロ未満の価値しかない機能に1週間を費やしていた。</p>

<p>どちらの条件も半日で済んだ。エンジンに手を入れる必要がなかったからだ。延長は盤面条件でノード予算を変える計測環境の方針にすぎない。「Xについてもっと賢くする」という形の提案には、まずXを無料で完璧に与えてみるのが、Xがそもそも重要かを知る最も安い方法である。</p>

<h2 id="経路b評価項そのもの">経路B：評価項そのもの</h2>

<p>それでも作った。延長が失敗した理由は評価項には当てはまらないからだ。延長はノードを食うが、評価項は葉1つあたりほとんど無料である。</p>

<p>当時の評価はこうだった。盤を1回ループし、各駒が独立に寄与する。</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>この前進項こそ、評価がレースを見られない理由であり、その理由は対称性にある。自分の走者が相手の巣から3マスなら+39。相手の走者が自分の巣から3マスなら-39。両者が走っていれば数字はゼロ近くになり、最も決着に近い瞬間にちょうど局面は静かだと読まれる。</p>

<p>だからこの項はもう一つの駒別ボーナスにはできない。片側につき1つの判定として、一度だけ計算し、2つの走者を互いに比較しなければならない。</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>までで測る。巣の3つの隣接マスがそのまま3つの罠であり、罠に立った駒は格に関係なくどの守り駒にも取られるため、それが正しい迎撃区域になる。自分の巣に踏み込む象は、自分の鼠が取れるマスを越えなければならない。</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>この罠には同じ日に2回引っかかった。同じ午後に走らせた引き分け回避値のスイープでは決着局が32%から50%へ上がったが、これは自己対局のスイープでは両者に同じ設定が入るので、引き分け回避値を上げれば構造上そうなる。代償があったかを言えるのは、2つの値を互いに対戦させた場合だけだ。代償はなかったので、こちらは採用した。</p>

<p>評価の欠落は実在し、診断も正しかった。ただ、その裏には何もなかった。同じ棋譜群で見つかった2つの定数、対局を早く終わらせていた無取り引き分けカウンタと、ゼロ近くだった引き分け回避値は、闘獣棋の決着率を4分の1から約半分へ引き上げたが、どちらもエンジンに何かを教えるものではない。課題が求めたのは理解だった。理解はもともと制約ではなかった。</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[闘獣棋エンジンに巣レースを教えようとした3つの試み、すべて効果なし。巣レースは全局の4.7%で、12倍深い探索で得られたのは2手分。見つけるものは何もなかった。]]></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="ja"><title type="html">シャンチー王者70年の歴史、エンジン解説つき</title><link href="https://brianhliou.com/ja/posts/xiangqi-champions-annotated/" rel="alternate" type="text/html" title="シャンチー王者70年の歴史、エンジン解説つき" /><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>答えはあり、しかもほとんど異論がない。胡荣华は中国全国選手権を14回制し、最初は15歳、最後は55歳で獲り、1960年から1979年までの10回すべてで優勝または共同優勝している。</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年以降に全国選手権を制した13人のうち10人には公表された処分があり、2010年から2023年までの優勝者は全員が含まれる。2024年から2026年にかけて中国象棋协会は対局の売買をめぐって49人を処分し、杭州の裁判所は6人のグランドマスターを贈賄で有罪とした。表には全員の名前を残し、その横に認定内容を添えた。黙って外したリストでは、起きたことの記録としてより劣るからだ。</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を1局面あたり100万ノード、1手ごとに1回、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の他の場所にある代替手順や解説を動かしているのと同じ仕組みで、新しい対局に向けるのにかかるのは、手作業で解説する1か月ではなく、エンジン時間の半日である。</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手がエンジンが称賛したかった手である。そのうち3手はブリリアントと記されている。</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年までの中国全国シャンチー王者全員の年表。1人1行で、タイトル保持年ごとに緑のバー、のちに処分を受けた王者には赤のバー、選手権が開催されなかった年は斜線の列。" />
<em>胡荣华が40年にわたって中央を占める。連続記録の空白はライバルではなく文化大革命によるもの。2005年からバーは赤に変わる。</em></p>

<p><img src="/assets/posts/every-chinese-chess-champion/world-champions.svg" alt="1990年から2025年までのシャンチー世界王者全員の年表。" />
<em>歴史は3分の1の長さだが、終わりの形は同じ。</em></p>

<p>以下は1965年の決勝である。初代王者と、その5年前に彼からタイトルを奪った男による、90手の終盤。</p>

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

<h2 id="再生する">再生する</h2>

<p>チェスを指す人なら、シャンチーの盤は10分ほどで読めるようになり、解説にはすでに知っている記号が使われている。学習ページは5分ほどで済み、スタディにはエンジンの読み筋が実際に指し進められる枝として入っている。</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="ja"><title type="html">ロボットの陸上記録が一斉に動いた</title><link href="https://brianhliou.com/ja/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日、北京で開かれた世界ヒューマノイドロボット競技大会で、あるヒューマノイドロボットが100メートルを9.39秒で走り、私が見つけられた英語メディアはどれもその数字をウサイン・ボルトの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>3日後、同じ研究所の別チームが8.86を出し、通信社がまた一斉に報じた。閉幕の夜には決勝が行われ、3番目のチームが8.64で優勝した。</p>

<p>最初の2つの数字はどちらも決勝ではない。9.39は予選ラウンド、8.86は準決勝から出たもので、つまり4日間、英語の見出しが依拠した記録は予選タイムだった。主催者はすでに、この比較は成り立たないと述べていた。中国語で述べたため、それは伝わらなかった。</p>

<p>私が中国語の報道を探しに行ったのは、機械が12か月で2.5倍速くなるというのは本物の飛躍か、測っているものが変わったかのどちらかであり、英語の報道ではどちらなのか判断する手がかりがなかったからだ。分かったのは、100mは本題ではなかったということだ。計時種目すべてが一斉に動いていた。</p>

<h2 id="全種目が同じ倍率で跳ね上がった">全種目が同じ倍率で跳ね上がった</h2>

<table>
  <thead>
    <tr>
      <th>種目</th>
      <th>2025</th>
      <th>2026</th>
      <th>人類記録</th>
      <th>1年間</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>100m</td>
      <td>21.50秒</td>
      <td><strong>8.64秒</strong></td>
      <td>9.58秒</td>
      <td>2.49倍速い</td>
    </tr>
    <tr>
      <td>400m</td>
      <td>1:28.03</td>
      <td><strong>38.15秒</strong></td>
      <td>43.03秒</td>
      <td>2.31倍速い</td>
    </tr>
    <tr>
      <td>1500m</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年の列にある機械はすべて人間より遅く、その多くは2倍の差がある。この表に載っていない2種目を含む全種目で見ると、2026年のロボットは6種目中4種目で人類記録を上回っている。</p>

<p><img src="/assets/posts/robot-records-moved-at-once/curve.svg" alt="左：2005年から2026年までに記録された脚式移動の最高速度。右：4つの計時種目における、人類世界記録に対するロボットのタイムの倍率、2025年大会と2026年大会の比較。" />
<em>左：11年間は年4.5%、その後に段差。右：ロボットのタイムを人類世界記録で割った値。線より上は人間より遅く、下は速い。4種目すべてが12か月で線を越えている。</em></p>

<p>1種目が2.5倍改善するだけなら、あるチームの飛躍かもしれない。異なるチーム、異なる機体で4種目が同時に2.3倍から3.2倍改善するのは、この分野全体についての主張である。</p>

<h2 id="脚式ロボットは10年間停滞していた">脚式ロボットは10年間停滞していた</h2>

<p>この一部は本物であり、記録がそれを明確に示している。</p>

<table>
  <thead>
    <tr>
      <th>年</th>
      <th>機体</th>
      <th>速度</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1996</td>
      <td>Honda P2</td>
      <td>歩行のみ</td>
    </tr>
    <tr>
      <td>2005</td>
      <td>ASIMO</td>
      <td>6.0 km/h</td>
    </tr>
    <tr>
      <td>2011</td>
      <td>ASIMO</td>
      <td>9.0 km/h</td>
    </tr>
    <tr>
      <td>2022</td>
      <td>Cassie</td>
      <td>14.6 km/h</td>
    </tr>
    <tr>
      <td>2025</td>
      <td>天工 Ultra</td>
      <td>16.7 km/h</td>
    </tr>
    <tr>
      <td>2026</td>
      <td>天工 Ultra</td>
      <td>41.7 km/h</td>
    </tr>
  </tbody>
</table>

<p>ASIMOの9 km/hは約11年間破られなかった。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>中国語の日々の報道には、さらに3点が含まれている。</p>

<p><strong>3つの記録走のうち2つは予選だった。</strong> 9.39は8月22日夜の大型クラス予選ラウンドから出た。9組、40チーム。8.86は25日の準決勝第1組から出た。天骄チームが26日の決勝を8.64で制し、2位も獲得した。つまりロボットが走った史上最速の100メートルは、大会最終日に一度だけニュースになったに過ぎない。</p>

<p>通信社の扱いは分かれた。<a href="https://www.aljazeera.com/sports/2026/8/25/chinese-robot-tiangong-clocks-sub-9-second-100-metres-in-beijing">Reuters</a>は8.86を「大型ロボット部門の準決勝」で出たものとした。ABC NewsやWashington Timesに配信された<a href="https://abcnews.com/Technology/wireStory/chinese-humanoid-robot-sets-new-100-meter-sprint-135942873">AP版</a>はタイム、ボルトの9.58、3日前の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/">APの閉幕記事</a>には、どの記録表にも載らない詳細がある。複数の完走機、優勝機を含め、ゴールラインを過ぎてクッション付きの防護壁に激突し、地面で火花を上げる機体のためにスタッフが消火器を持って出てきたという。止まることは計時結果に入っていない。</p>

<p><strong>クラス区分は新しい。</strong> 2026年は初めて陸上種目を身長で分けた。大型クラスは1.4メートル超、小型クラスはそれ未満。前年は区分なしの単一グループで行われ、そのため北京聯合大学の80cmの参加機が1.8mの天工 Ultraと同じ100mを走ることになった。</p>

<p><strong>4つのチームが英語では1つの名前に潰れている。</strong></p>

<table>
  <thead>
    <tr>
      <th>中国語</th>
      <th>英語</th>
      <th>獲得種目</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>天工</td>
      <td>天工（Tien Kung、「Sky Project」とも）</td>
      <td>400m両クラス、4x100リレー</td>
    </tr>
    <tr>
      <td>天卓</td>
      <td>天卓</td>
      <td>1500m、立ち走高跳。100m予選では先頭でゴール</td>
    </tr>
    <tr>
      <td>天骄</td>
      <td>天骄</td>
      <td><strong>100m決勝</strong>、走幅跳、400m障害</td>
    </tr>
    <tr>
      <td>天骁</td>
      <td>天骁</td>
      <td>100m小型クラス</td>
    </tr>
  </tbody>
</table>

<p>この4つのうち3つは北京人形机器人创新中心のチームであり、その下にある機体はいずれも天工 Ultraである。つまり、1つのモデルが9.39から8.86、8.64へと改善したという英語の枠組みはハードウェアについては正しいが、3つの異なるチームを取り落としている。宙に浮いた9.32という数字は、事前テストでのHonorの「Lightning」によるものとも、後の予選での天工 Ultraによるものとも報じられており、公開情報からは整合させられなかった。</p>

<h2 id="ロボットは人間が疲労で落ちる種目で勝つ">ロボットは人間が疲労で落ちる種目で勝つ</h2>

<p>クラス区分と全種目を踏まえると、「ロボットが人間に勝った」は1つの主張ではなく6つの主張になる。</p>

<table>
  <thead>
    <tr>
      <th>種目</th>
      <th>ロボット</th>
      <th>人類記録</th>
      <th>差</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>100m</td>
      <td>8.64秒</td>
      <td>9.58秒</td>
      <td>+9.8%</td>
    </tr>
    <tr>
      <td>400m、大型クラス</td>
      <td>38.15秒</td>
      <td>43.03秒</td>
      <td>+11.3%</td>
    </tr>
    <tr>
      <td>400m、小型クラス</td>
      <td>45.66秒</td>
      <td>43.03秒</td>
      <td><strong>−6.1%</strong></td>
    </tr>
    <tr>
      <td>1500m</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.97m</td>
      <td>8.95m</td>
      <td><strong>−10.9%</strong></td>
    </tr>
  </tbody>
</table>

<p>優位は距離とともに拡大する。100メートルで10パーセント、400で11、1500で31である。バッテリーは乳酸を出さないので、レースが長くなるほど人類記録は人間の生理を測るものになり、機械について語ることは少なくなる。人間の短距離走者は100mのペースの約89%を400メートルで維持する。大型クラスのロボットは91%を維持した。</p>

<p>持続的な出力ではなく一発の爆発的な力を要する種目では、ロボットは負ける。走幅跳は7.97メートルで、1991年のマイク・パウエルの8.95に及ばず、小型クラスのロボットの400メートルは人間より遅い。ハーフマラソンは11.1%で傾向を外れるが、これは歩容よりも路面状況とバッテリーによるものだと考える。</p>

<h2 id="走高跳はまったく別のものを測っている">走高跳はまったく別のものを測っている</h2>

<p>立ち走高跳で、あるロボットが2.8843メートルをクリアした。前年はRobot EraのXingdong L7による95.641センチだった。報道は2026年の数字をハビエル・ソトマヨルの2.45と並べた。</p>

<p>2.8843は開会式前に行われたデモンストレーションだった。メダル種目は8月25日に行われ、天卓チームのエントリー015が3.4メートルで優勝し、天工 Ultraの機体が上位4位すべてを占めた。新華社自身の閉幕まとめは、この1年を決勝対決勝で0.95641メートルから3.40メートルへと位置づけている。英語報道は展示の数字をソトマヨルと比べ、メダル種目の結果を一度も伝えなかった。つまり英語メディアのソトマヨル比較はすべて、デモンストレーションとの比較だったことになる。</p>

<p>採点規則はこうである。</p>

<blockquote>
  <p>跳躍の最高点において、ロボットの身体のいずれかの部位の最低点から地面までの垂直距離を成績とする。</p>

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

<p>規則（<a href="https://k.sina.cn/article_7879924061_1d5ae195d02001ixts.html">出典、中国語</a>）は意図的に、ロボットがどう跳ぶかを定めていない。したがってこの数字は、方法に制約のない立ち跳躍における身体全体のクリアランスであり、ソトマヨルの2.45は助走跳躍でのバーのクリアランスである。これは1つの種目の2つのバージョンではなく、別々に測られた別の量である。</p>

<p>これも翻訳の失敗ではない。中国語の報道は2.45mを人間男子の両足立ち走高跳の最高記録と説明しているが、ソトマヨルの記録は助走跳躍である。誤りは中国語の通信記事から始まり、英語報道がそれを丸ごと引き継いだ。</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>を適用する。400mを含むいくつかの競技種目は今年、遠隔操作を完全に排し、<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>优理奇 Black Panther</td>
    </tr>
    <tr>
      <td>緊急対応、消火救助</td>
      <td>上海智元</td>
    </tr>
    <tr>
      <td>庭園、公園管理</td>
      <td>北京人形机器人创新中心と河南科技大学</td>
    </tr>
    <tr>
      <td>家庭、家事</td>
      <td>北京銀河通用（Galaxy Star Digital）</td>
    </tr>
  </tbody>
</table>

<p>課題は、短距離走とは違って具体的だ。ピンセットで豆をつまむ。ねじを回す。粉末を量る。バルブを閉める。庭園のロボットには30分が与えられ、禁止物品の確認、マナー違反の来園者への注意、ごみの拾い上げを行った。<a href="https://www.news.cn/tech/20260821/11f2ebaa5b0341b3b957f31bef793f48/c.html">新華社はこのカテゴリを</a>、汚い・危険・退屈・困難な仕事における労働力不足を狙ったものと位置づけている。それが実際に機能するかは別の問題だが、少なくとも速度についてではなく実運用についての主張である。</p>

<p>残りのプログラムも同様だった。清華大学のVulcanチームは2025年の5対5サッカー決勝で、ドイツの合同チームHTWK RobotsとNao Devilsに1対0で勝った。これは両大会で私が見つけた唯一の非中国勢の決勝進出チームである。香港大学のSMASHチームが卓球を制した。AgiBotのLingxi X2が100m障害を1:28.32で制し、AgiBotは初出場で金18、合計46とメダル表の両方で首位に立った。しかも専用のレース機ではなく製品版のモデルを使っていた。同社の器用ハンド子会社はハンド8種目のうち7つを取った。主催者は閉幕にあたり、12のシナリオ、44の課題にわたる実世界ヒューマノイドデータ2,500時間分の無償公開を発表した。この最後の項目は、トラックのどのタイムよりもこの分野の次の1年を左右する可能性が高いが、英語の見出しは一つも生まれなかった。</p>

<h2 id="実際に記録として残っているもの">実際に記録として残っているもの</h2>

<p>私は出典を確認できたロボットの競技記録を41件まとめ、留保条件を添えた。重要なものは次の通りである。</p>

<table>
  <thead>
    <tr>
      <th>種目</th>
      <th>記録</th>
      <th>機体</th>
      <th>日付</th>
      <th>状態</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>100m</td>
      <td><strong>24.73秒</strong></td>
      <td>Cassie（オレゴン州立大学／Agility）</td>
      <td>2022-05-11</td>
      <td><strong>ギネス認定</strong></td>
    </tr>
    <tr>
      <td>100m</td>
      <td>9.39秒</td>
      <td>天卓チーム</td>
      <td>2026-08-22</td>
      <td>報道ベース、予選</td>
    </tr>
    <tr>
      <td>100m</td>
      <td>8.86秒</td>
      <td>天工</td>
      <td>2026-08-25</td>
      <td>報道ベース、準決勝</td>
    </tr>
    <tr>
      <td>100m</td>
      <td><strong>8.64秒</strong></td>
      <td>天骄</td>
      <td>2026-08-26</td>
      <td>大会公式、決勝</td>
    </tr>
    <tr>
      <td>ヒューマノイド歩行</td>
      <td>3.3 m/s</td>
      <td>宇树 H1 V3.0</td>
      <td>2024-03</td>
      <td><strong>ギネス認定</strong></td>
    </tr>
    <tr>
      <td>脚式最高速度</td>
      <td>45.5 km/h</td>
      <td>BD Cheetah</td>
      <td>2012-03</td>
      <td>トレッドミル、テザー付き、四脚</td>
    </tr>
    <tr>
      <td>フリースロー</td>
      <td>2,020本連続</td>
      <td>トヨタ CUE3</td>
      <td>2019</td>
      <td><strong>ギネス認定</strong></td>
    </tr>
    <tr>
      <td>最長シュート</td>
      <td>24.55m</td>
      <td>トヨタ 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>は依然として、2022年5月にオレゴン州立大学で記録されたCassieの24.73秒である。ギネスはこの大会のどちらの回からも何も認定していない。公式の数字と見出しの数字は16秒離れており、誰もそれを突き合わせていない。</p>

<p>Boston DynamicsのCheetahをここに入れたのは、それが実際の上限だからだ。2012年の45.5 km/hは14年経ってなお破られていないが、これは外部の油圧装置にテザー接続されたトレッドミル上の四脚機だった。ロボットを短距離走者と比べる報道はこれに触れない。</p>

<p>もう一点。ここでギネス認定されている記録はすべて米国か日本のもので、少なくとも2年前のものだ。中国の記録はすべて大会公式か報道ベースである。これはどちらが速いロボットを作るかについての主張ではない。誰が外部の認定に申請するかについての主張であり、報じられた最速タイムと検証済みの最速タイムが別物である理由を説明している。</p>

<h2 id="規則が説明することと説明しないこと">規則が説明することと、説明しないこと</h2>

<p>ルールブックは混乱の多くを説明してくれる。3つの記録走のうち2つは予選であり、身長クラスはかつて一緒に走っていたグループを分割し、走高跳は比較された人間の種目とは違う量を測っており、主催者は比較そのものを明確に否定していた。</p>

<p>技術的な説明は具体的で、私が見つけられた限りではただ一か所にしかない。<a href="https://xinwen.bjd.com.cn/content/s6a8bd362e4b0e45f3fd66b96.html">新京报の解説記事</a>、中国語である。関節トルクの上限をおおむね小型EV並みに引き上げた。その消費を支えるための大容量バッテリー。軽量化されたフレーム。種目ごとのチューニングで、あるエンジニアは100mは加速を求め、400と1500はコーナリングを求めるとまとめている。そして種目ごとに約1か月の集中的な強化学習訓練。どれも妥当であり、大半は検証可能である。</p>

<p>しかしそのどれも、跳躍の大きさを説明しない。年30%で伸びる分野なら、当たり年はあり得る。だが、異なるチーム、異なる機体で4種目が同時に2.3倍から3.2倍動いたことを説明するものは何も見つからなかった。そうした同時性は通常、規則が変わったか測定が変わったことを意味する。私はそのどちらの証拠も見つけられなかった。</p>

<p>決着をつけるのに必要なもの。公表された計時手法、2025年と2026年のルールブックの差分、そして大会運営者ではない第三者による認定である。この3つはいずれも公開されていない。</p>

<h2 id="大会が先に言っていた">大会が先に言っていた</h2>

<p>ロボットは速く、速く速くなっており、技術的な説明も筋が通る。結果が偽物だと言っているのではない。壊れているのは比較の部分だ。スタート方式と計時認証についての免責は中国語の原稿にあり、英語には一度も渡らなかった。</p>

<p>厳密であろうとしていた側の半分が置き去りにされた。ロボットを操縦したら点数を半分にする組織委員会は、難しい問いを真剣に受け止めている。コメントなしにデモ動画を転載される企業の多くよりも真剣に。それこそが本題であり、それは採点規則の中にあった。</p>

<p>これをまとめるのは本来あるべきより難しい。どの言語にも公式の結果配信はなく、2025年大会について私が見つけた最も完全なメダル表は、北京市政府のウェブサイト上のPNG画像である。どの結果が残るかはほとんど恣意的だ。2026年のリレーのタイムは公表されたが、5種目複合は公表されていない。それは工具を扱い荷物を運びながらロボットが100メートルを走る、最終日の種目である。単なる短距離走が招く反論に、プログラム中の何よりもよく答える種目なのに、どの言語でも結果が公表されていない。</p>

<p>すべての注釈を生き延びる数字が欲しいなら、二足歩行ロボットは100メートルを公式に24.73秒で計時されており、その記録は4年前のものである。</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">Sina</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> - 100m決勝、両クラス、チーム名付き</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> - 第1回大会</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の5Kについてのオレゴン州立大学</a>、<a href="https://spectrum.ieee.org/honda-p2-robot-ieee-milestone">HondaのP2についてのIEEE Spectrum</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年、ヒューマノイドロボットは計時種目のすべてで人類記録に負けていた。1年後には6種目中4種目で勝っている。100mの記録は5日間で3回も塗り替えられた。]]></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="ja"><title type="html">レストランの違反件数はほとんど記録方法の産物だ</title><link href="https://brianhliou.com/ja/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="2つの郡同じ検査票265倍の差">2つの郡、同じ検査票、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>検査1回あたりの違反件数</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は3つの郡を管轄する単一の機関であり、地理と規制主体を切り離せる。その内部で3郡はそれぞれ5.83、5.36、5.54だ。同一機関のもとでは、2本の郡境をまたいでもばらつきは約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>9つのチェーン、すべてが同じ方向を向き、全体で2.76倍。この時点で私は、コロラド州の隣接する2つの保健当局のあいだに執行の実質的な差があると確信していた。</p>

<h2 id="この数字は分数であり私は分子しか持っていなかった">この数字は分数であり、私は分子しか持っていなかった</h2>

<p>Boulderはチェックリスト項目1つにつき1行を公開し、それぞれにステータスが付く。Tri-Countyは検査1回につき1行を公開し、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の2倍以上になり、効果の符号が反転する。Boulderの発生率には上限がある。Tri-Countyにはない。</p>

<p>メリーランド州のMontgomery Countyは同じ3区分の語彙を持つ15項目の検査票を使っており、Boulderが58%を「Not Observed」とするところで2%から6%しかそう記録しない。正規化の基準となる全国的な慣行は存在せず、だからこそ公開件数を比較する人にはこの問題が見えない。</p>

<h2 id="同じ問題は時系列でも現れる">同じ問題は時系列でも現れる</h2>

<p>記録の慣行が動くと数字が動くのなら、ある自治体が記録方法を変えたときには、その自治体の内部でも数字が動くはずだ。</p>

<p>カリフォルニア州のMarin Countyは12年分の検査を公開している。年別の通常検査1回あたりの違反件数は次のとおり。</p>

<p><img src="/assets/posts/restaurant-violations-are-bookkeeping/marin-break.svg" alt="Marin Countyの年別の通常検査1回あたり違反件数と、2019年の前後を通して働いた同じ8人の検査員" />
<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>8人中8人が下がっている。全体では−69%。検査員Aは1人の人間が1つの仕事をしているだけで、検査1回あたり7.90件から1.42件になった。</p>

<p>店舗を固定しても同じだ。断絶の両側で検査された1,059事業者は4.58から1.11へ下がった。</p>

<p>同じ人、同じ店、同じコード。違反件数は4分の1。</p>

<p>実際に変わったものは、検査の分類の仕方に現れている。何も見つからなかった検査の割合はほとんど動かず、11〜16%から13〜26%になった。重大と分類された割合は23〜39%から8〜15%に落ち、その差を軽微が吸収した。そして違反のあった検査1回あたりに列挙された違反件数は約4.1〜5.8から1.1〜2.1へ下がった。検査で問題が見つかる確率はほぼ変わっていない。崩れたのは検査1回あたりに書き留められる問題の数だ。</p>

<h2 id="データ移行を見ているだけではないかを確認する">データ移行を見ているだけではないかを確認する</h2>

<p>これを覆しうる説明は出自だ。2019年以前の行が別のシステムから移行されたものなら、この断絶は実務ではなくデータセットの産物になる。</p>

<p>3つの検証を行い、すべて否定的だった。</p>

<p><strong>レコードIDは連続している。</strong> 13年分すべてを通じて単調増加する1本の連番で、境界では範囲が重なっている。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>最後のものがここで最も強い証拠だ。パイプラインが変わったことは明白だが、それは2019年ではなく2025年である。74%の下落が移行によるものなら、書式の特徴もそれと一緒に動いていたはずだ。</p>

<p>これは私が最初に踏んだバグの原因でもあった。引用符を取り除かずに検査員でグループ化すると46人になる。実際は40人だ。うち6人は同一人物が引用符付きと無しで2回現れているだけだった。</p>

<h2 id="marinのような断絶はどれくらい一般的か">Marinのような断絶はどれくらい一般的か</h2>

<p>ここでの妥当な反論は、私が断絶を探しに行って見つけただけであり、保健当局は書類様式を絶えず改訂しているというものだ。そこで他の長期系列3つを同じやり方で確認した。</p>

<table>
  <thead>
    <tr>
      <th>自治体</th>
      <th>指標</th>
      <th>期間</th>
      <th>単年の最大変動</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>コロラド州Boulder County</td>
      <td>通常検査1回あたりの違反件数</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>この表には2つの留保がある。シカゴの合否とニューヨーク市の重大割合は違反件数より粗い指標であり、当局が列挙の細かさを変えてもどちらも動かないことがある。またニューヨーク市の公開系列は2022年までしか遡れず、検証としては心もとない。</p>

<p>まとめると、Marinのような断絶はこのデータの通常の状態ではないが、無視できるほど稀でもない。長期系列を持つ4自治体のうち1つに存在し、公開データのどこにもその事実は示されていない。</p>

<p>これはコロラドの比較の信頼性も高める。Boulderが13年間横ばいだということは、2.65倍の差のBoulder側が、私がたまたま選んだ年の産物ではないことを意味する。</p>

<h2 id="誰が来るかはどの店かとほぼ同じくらい予測力を持つ">誰が来るかは、どの店かとほぼ同じくらい予測力を持つ</h2>

<p>シカゴは検査優先度モデルをオープンソース化しており、独立したレビューでは影響の最大の単一要因が「どの衛生官が検査したか」だと判明した。それは内部データだった。Marinの検査員の列は、それを公開データで検証可能にする。</p>

<p>15,888件の通常検査、1,645事業者、40人の検査員で見ると、検査員ごとの生の平均は0.74から5.99まで広がる。その大部分は時期によるものだ。検査員はそれぞれ異なる期間に働いており、2019年の断絶がその真ん中にある。</p>

<p>そこで、2人以上の異なる検査員に検査された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>これは当てはめたモデルではなく算術的な平均除去なので、標準誤差ではなく方向と大きさとして受け取ってほしい。検査員と年は部分的に共線であり、断絶をまたぐ8人の検査員が識別を担っている。他の2つの発見にはその問題はない。厳密な統制のもとでの生の平均だからだ。</p>

<h2 id="結局のところ">結局のところ</h2>

<p>3つの軸があり、件数はそのすべてで破綻する。自治体をまたぐと記録の慣行だけで2.65倍動く。時間をまたぐと、同じ人が同じ店を検査しながら74%動く。検査員をまたぐと、統制後でも平均の172%動く。</p>

<p>これらは検査が機能しているかを測るものではない。検査員は本当の問題を見つけ、本当に厨房を閉鎖している。ここで述べたことはそれについて何も語らない。私が測ったのは数字であり、その数字はまさに一方と他方を比較したときに壊れる。そしてそれこそが、下流の誰もがこの数字で行っている唯一のことだ。</p>

<p>本当のリスクは検索アプリの下流にある。違反の結果で訓練された都市の予測モデル、そして地域間や政策の実施日をまたいで評価制度を比較する研究だ。シカゴのモデルはこうした結果で訓練され、自前の監査では検査員が最大の予測因子だと分かった。目的変数の一部が事務処理であるなら、それは予想される結果だ。ある自治体の記録方法の変更をまたぐ研究は、Marinの問題に真正面からぶつかる。世界が動いていないのに系列が動くのだから。</p>

<p>実用的な結論はこうだ。違反件数は、1つの自治体の中で、1つの時期において、誰が訪問したかを調整したうえでなら解釈できる。それ以外では解釈できない。このデータの上に何かを作るなら、最初に確認すべきは数字ではなく、あなたのデータ元が「未確認」を表現できるか、そしてその慣行が対象期間を通じて動かなかったかどうかだ。</p>

<p>これはレストランに限った話ではない。公開された件数は、ある組織が何を書き留めたかを記録しているだけであり、私が見た4つの当局のうち1つは、何も告げずに書き留め方を変えていた。</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つの郡は同一の検査票を使いながら2.65倍の差がある。Marin Countyは同じ検査員のまま1年で違反件数を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="ja"><title type="html">YouTubeコメントの高評価は、ほぼタイミングで決まる</title><link href="https://brianhliou.com/ja/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>そこで、高評価数が実際に何を測っているのかを見てみた。動画公開から最初の1時間に投稿されたコメントは、1週間後に投稿されたものより桁違いに多くの人に見られる。さらにYouTubeの「評価順」ランキングがそれを増幅する。上位に表示されれば高評価が付き、高評価が付けば上位に表示されるからだ。内容が同一の2つのコメントが、到着時刻だけで3桁も違い得る。</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自身のアルゴリズムが各コメントに与えた順位を含む。3日間、約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次元の文エンコーダは、bag of wordsに対して<strong>AUCで0.0015</strong>しか上乗せしない。語彙ベースの帰無仮説に対する定番の反論は「テキストモデルが弱すぎた」というものだが、まったく異なる表現系列でも同じ場所に落ち着いた。</p>

<p>絶対的な予測可能性は全体を通して低い。最良のモデルでもAUC 0.671で、偶然の0.5に対してこの水準だ。露出は内容を大きく上回るが、どちらもコメントが高評価される要因のうちそれ以外の何かには負けている。</p>

<h2 id="このデータセットに潜む罠">このデータセットに潜む罠</h2>

<p><img src="/assets/posts/comment-likes-are-timing/arrival.svg" alt="同一の135万件のコメントを2通りに分類したときの、到着時刻別の平均log1p(likes)" />
<em>両パネルとも同じコメント、同じy軸。動画内での位置と絶対的な経過時間の両方が同じ低下を示している。</em></p>

<p>私は最初これを間違えた。データに触る前に知っておいたほうがいい。</p>

<p>コメントを投稿の遅さでバケットに分け、各バケットの<strong>平均高評価数</strong>を取る。</p>

<table>
  <thead>
    <tr>
      <th>投稿時点の経過時間</th>
      <th>&lt;1h</th>
      <th>1-6h</th>
      <th>6-24h</th>
      <th>1-7d</th>
      <th>1-30d</th>
      <th>&gt;30d</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>平均高評価数</td>
      <td>19.8</td>
      <td>21.7</td>
      <td>19.5</td>
      <td>19.8</td>
      <td>25.8</td>
      <td>20.4</td>
    </tr>
  </tbody>
</table>

<p>フラット。到着効果はまったくない。私はこれを知見として書き上げた。</p>

<p>次に、まったく同じバケットで<code class="language-plaintext highlighter-rouge">log1p(likes)</code>の平均を取る。</p>

<table>
  <thead>
    <tr>
      <th>投稿時点の経過時間</th>
      <th>&lt;1h</th>
      <th>1-6h</th>
      <th>6-24h</th>
      <th>1-7d</th>
      <th>1-30d</th>
      <th>&gt;30d</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>平均log1p(likes)</td>
      <td>0.764</td>
      <td>0.387</td>
      <td>0.230</td>
      <td>0.181</td>
      <td>0.163</td>
      <td>0.129</td>
    </tr>
  </tbody>
</table>

<p>5.9倍の低下。効果はずっとそこにあった。</p>

<p><strong>コメントの82.1%は高評価がゼロで、上位1%が全高評価の94.9%を保有している。</strong> そのような分布におけるグループ平均は、グループについての統計量ではなく、グループの外れ値についての統計量だ。バズった1件のコメントがバケット全体の平均を決めてしまう。</p>

<p>このコーパスについて生の高評価数を平均するどんな要約も、大きな効果が存在するところで効果なしと報告することになる。</p>

<h2 id="3倍を裏付けた指標">3倍を裏付けた指標</h2>

<p>先行研究は、生成されたコメントを埋め込み、参照コーパスからK近傍を取り出し、その高評価数を平均することでスコアを付ける。私はそれが類似性で攻略できると予想していた。高評価上位のテキストで学習し、高評価上位のテキストの近くに着地すれば、人間が実際に高評価するかどうかに関係なく高スコアが出る、と。</p>

<p>私は二度間違っていた。実在の高評価上位コメントを選んでも3倍という比は再現しない（0.88から1.21になる）。960件のコメントを生成し、その半分を高評価上位の例でfew-shot条件付けしても再現しない。</p>

<p>代わりにわかったのは、この統計量がじっとしていないということだ。K=5では、平均の比は条件付けによって3倍<em>悪化</em>したと言い、その区間は1.0を含まない。同じ480サンプルで中央値の比は2倍良くなったと言う。3回の実行を通じて、同じ数字が平均で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倍になる。絶対的な経過時間で見ると、最初の1時間のコメントは1か月後に投稿されたものの5.9倍だ。自分で制御できる他の要素はこれに及ばない。</p>

<p><strong>大きな動画に早く投稿する。</strong> 動画の規模は他のすべてを掛け算する。生データでは、NileRedの動画に6週間遅れで投稿されたコメントが、Computerphileの動画の最初の1時間のコメントを上回っている。500万再生の動画への凡庸なコメントは、7万再生の動画への良いコメントを上回る。</p>

<p><strong>本当の賞品はトップページだ。</strong> そこに表示されたコメントは平均419.5の高評価で、それ以外は1.13。これは勾配ではなく373倍の閾値であり、ランキングが初期の高評価で動くため、参入権を買うのは最初の1時間だ。</p>

<p><strong>チャンネルを選ぶ。</strong> 高評価ゼロのコメントの割合は、Voxの52.8%からDavie504の90.7%まで幅がある。どこにコメントするかによって、一文字も書く前に、何らかの高評価が付く確率がほぼ2倍変わる。</p>

<p><strong>ショート動画ではさらに速く動く。</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>重要な留保が2つある。全コメントの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="/ja/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="ja"><title type="html">シャンチー（中国象棋）の基本終盤：何が分かっていて、どこまで確かなのか</title><link href="https://brianhliou.com/ja/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>以下にその判定のうち32件を、それぞれ局面に組み上げ、二重に検証したうえで載せる。どれも、検証に使ったエンジン相手に実際に指せる盤になっている。スタディは<a href="https://mistboard.com/study/tOceiaI7">Mistboard上にあり</a>、判定ごとに1章だ。</p>

<h2 id="基本士象全を破れるのは何か">基本：士象全を破れるのは何か</h2>

<p>車はシャンチー最強の駒で、別名で呼ばれたルークだ。標準的な士象全は守備駒4枚すべてを残す。将は元の位置、士は両方、象は両方、しかも二枚の士が将の真正面に並び、砲がそれを砲台として使えない配置にする。</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=wxf" 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=wxf" title="士象全に対する紅の高兵三枚、詰み確定" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">同じ守り、同じ手番。どちらの判定も探索ではなくデータベースから出ている。どちらでも黒を持って、守り切れるか試してほしい。</p>
</div>

<p>車はどの駒価値表を見ても兵三枚より価値が高く、馬二枚よりも高い。この終盤ではどちらよりも価値が低い。兵は後退できず、それは弱点のように聞こえて、勝因そのものに変わる。九宮に迫る三枚の兵は押し返せず、守り側にはそれを交換で消す手段がない。</p>

<p>同じ論理は逆方向にも働く。兵五枚がすべて最下段に並んでいて、相手が裸の将なら引き分けだ。5対0である。後退できず、しかもすでに壁際にいるので、詰みもステイルメイト（困斃）も強制できない。</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=wxf" title="最下段に並んだ紅の兵五枚と黒の裸の将、引き分けとなるシャンチーの終盤" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">5対1で、しかもこの局面に詰みは存在しない。紅を持って勝とうとしてみてほしい。</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=wxf" 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=wxf" title="同じ駒数で黒の象一枚の位置が悪く、紅が勝つ局面" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">違いは、盤の右側にいる象が4段ぶん上にあるかどうか、それだけだ。前者は守り切り、後者は破ってみてほしい。</p>
</div>

<p>双方同じ駒、同じ攻め手、同じ手番で、結果が反転する。この一組は誰かが図にしたから翻訳を生き延びた。以下の三つの項目は、誰もそれをしなかったものだ。</p>

<h2 id="何が必要なのか">何が必要なのか</h2>

<p>32件の判定のうち三つは、英語版が伝えていない指示にかかっている。どれも配置が結果を決めており、それを述べた一文こそが落ちているのだ。</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=wxf" 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=wxf" title="同じ局面で黒の砲が1路左にあり、紅が勝つ局面" 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=wxf" 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=wxf" 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>「馬＋砲＋守備駒4枚 対 小駒1枚［＋］守備駒4枚：小駒が馬なら勝ち……砲なら引き分け」</em></p>

<p>13枚。chessdbがその規模で作った表はちょうど一つだけあるが、それは別の13枚の組み合わせで、この局面を実際に照会すると unknown が返る。だが残るのが探索だけというわけではない。強い側に士一枚を残す縮約であるKANCKAABBNの10枚まで削れば、表は存在する。24,251,768,055局面、そのうち紅の勝ちが85.48%だ。この判定を支えているのは探索深さではなく、この縮約の階段である。</p>

<p>探索では解決しない。深さ26で+2.24。深さ42で+2.47、それでも詰みは見えず、守り側の馬の配置を6通り変えても+2.32から+3.03の間に収まり、どれも決定的にはならない。固定深さから見ると、長い技術的な勝ちはまさにこう見える。そして紅が単に有利で引き分けの局面も、同じように見える。</p>

<p>それでも教本が正しいと言う証拠が二つある。エンジンは判定の二つの半分を自力で区別している。守り側の馬を砲に替える、つまり同じ一文の引き分け側にすると、同じ深さで+1.26と読むのだ。この差が教本の区別であり、それを教えられたことのない数値の中に現れている。</p>

<p>次に、深さ32でPikafishにこの局面を自己対局させた。紅は33手を双方無取りで駆け引きに費やし、34手目で士を取り、その4手後に二枚目を取り、56手目まで手を進め続けた。そこで局面は10枚に落ち、データベースの射程に戻った。黒の手番で、合法手はどれも負けである。</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=wxf" title="士象全を背にした紅の馬と砲、対する士象全を背にした黒の馬" loading="lazy"></iframe>
  </div>
</div>
<p class="xq-caption">13枚、どのテーブルベースもカバーしていない項目。黒は駒を取られずに60手生き延びなければならない。</p>
</div>

<p>駒を削っていくと、これは探索の問題ではなくなる。chessdb.cnはこの終盤の縮約について厳密な表を公開しており、それが教本の一文の意味を変えてしまう。紅自身の士と象を取り去り、将・砲・馬だけで士象全に当たる形にすると、5,492,247,706局面で、紅の勝ちは22.31%。紅に士を一枚戻すと85.48%、24,251,768,055局面だ。二枚目の士は1ポイント足す。士の代わりに象なら7ポイント足す。</p>

<p>つまりあの一文の攻め側にある「守備駒4枚」は実際に働いており、効いてくる枚数は1枚だ。士一枚が勝ちを担い、象はほぼおまけである。私はまずPikafishでそこに至った。表の存在を知る前に深さ30で同じ階段を走らせたのだが、順序は同じに出た。</p>

<p>同じ局面を別の方向に切ると答えが反転する。双方に士象全を残したまま、<em>守り側</em>の馬を外す。12枚で10,453,951,719局面、これはchessdbに構築されている。紅の勝ちは92.71%、最長の詰みは69プライ、そして表には負けが一つも記録されていない。一方の縮約は、勝ちが紅自身の士にかかっていると言う。もう一方は、黒に反撃材料がなくなった瞬間ほぼ全面的な勝ちだと言う。教本が実際に語っている駒組みはその間にあり、8,705個の表のどれにも入っておらず、実際に照会すると unknown が返る。</p>

<h2 id="六語二つのバケツ">六語、二つのバケツ</h2>

<p>上の三つの項目のうち二つには共通点があり、それは語彙だ。中国語の終盤教本は、結果を勝ちか引き分けかで格付けしない。六段階の尺度で格付けする。</p>

<table>
  <thead>
    <tr>
      <th>判定</th>
      <th>主張する内容</th>
      <th>日本語</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>必勝</td>
      <td>この駒組みのどの局面からでも勝つ</td>
      <td>勝ち</td>
    </tr>
    <tr>
      <td>例勝</td>
      <td>標準的な技術で勝つ</td>
      <td>勝ち</td>
    </tr>
    <tr>
      <td>巧勝</td>
      <td>特定の局面からのみ勝つ</td>
      <td>勝ち</td>
    </tr>
    <tr>
      <td>難勝</td>
      <td>勝ちにくいが、引き分けと同じではない</td>
      <td><strong>勝ち<em>または</em>引き分け</strong></td>
    </tr>
    <tr>
      <td>例和</td>
      <td>標準的な技術で引き分ける</td>
      <td>引き分け</td>
    </tr>
    <tr>
      <td>必和</td>
      <td>どの局面からでも引き分ける</td>
      <td>引き分け</td>
    </tr>
  </tbody>
</table>

<p>六つのうち五つは翻訳を生き延びる。六番目はどちらかに寄せねばならず、上の三項目のうち二つがそこに乗っている。</p>

<p>中国語の記事は、車対馬砲を四段目の「勝ちにくい」に分類している。英語の節は「引き分け」に分類する。テーブルベースは中国語側に付く。車は盤上のほぼどこからでも勝ち、守り切れるのは唯一の守備陣形だけだ。「引き分け」と読んだプレイヤーは気楽に守って15手で負ける。「勝ちにくい」と読んだプレイヤーは、見つけるべきものがちょうど一つあると知っている。</p>

<p>二番目の項目は、反対方向から同じ段に着地する。中国語の表は車砲対裸の車を勝ちまたは引き分け（胜/和）として挙げ、そのうえでどちらがどちらかに一段落を費やす。英語は歯切れのよい半分だけを残して段落を落とし、そしてその段落こそが重要な部分だった。</p>

<p>事実は局面だ。判定はそうした局面が並ぶ棚に誰かが貼ったラベルであり、棚なしにラベルだけを訳せば、その意味の大半は失われる。</p>

<h2 id="どこまで確かに分かっているのか">どこまで確かに分かっているのか</h2>

<p>この表の判定は三つの等級のいずれかに入り、それらは同等とは程遠い。証明済みのものがある。データベースがその終盤を全部計算しており、答えは参照で済む。探索済みのものがある。私が走らせた深さでエンジンが同意している。それは証拠であって証明ではない。残りは主張されているだけで、出典の付いていない教本によるものだ。</p>

<p>それらの分類には二度の検証が必要だった。</p>

<p>英語の節から32件の判定を取り出し、それぞれに代表的な局面を作り、Pikafishに深さ26で尋ねた。</p>

<table>
  <thead>
    <tr>
      <th>深さ26、32件の判定</th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>エンジンが同意</td>
      <td>29</td>
    </tr>
    <tr>
      <td>教本は引き分け、エンジンは勝ち確定を発見</td>
      <td>2</td>
    </tr>
    <tr>
      <td>教本は勝ち、エンジンは決めきれない</td>
      <td>1</td>
    </tr>
  </tbody>
</table>

<p>次に同じ局面を別の方法で二度目の検証にかけた。シャンチーには探索の代わりに答えを参照するクラウド終盤データベースがあり、<a href="http://www.chessdb.cn/">chessdb.cn</a>は駒数が十分少ない局面について勝ち・引き分け・負けと手数を返す。私の32件のうち27件が収まった。この上限は聞こえるより寛大で、士と象が合わせて8枚乗っている局面は、3枚の局面とほぼ同じくらい制約が強いからだ。士の合法マスは5つ、象は7つ、どちらも自陣を離れられない。そして実際に単なる参照でもある。それ自身の最善手順を一手ずつ辿っても判定は決して反転せず、手数も決して増えない。探索ならそうはならない。</p>

<p>上の三項目のうち二つには、データベースが確認する守備配置が付いた。そしてどちらの撤回も教本のものではなく私のものだった。一巡の結果は、32件のうち31件がPikafishと一致、1件が傾きあり。32局面のうち27件がデータベースに収まる大きさで、その27件すべてが厳密だ。</p>

<h3 id="検証が私の作った局面で見つけたもの">検証が私の作った局面で見つけたもの</h3>

<p>検証が見つけた残りは私の落ち度だった。不正な局面が三つ。開いた筋で二将を向かい合わせにしたままで、構文上は通り、見た目も問題なく、しかしシャンチーとしては非合法だ。定跡引き分けと私がラベルを付けた局面が二つ、Pikafishは2手詰みを告げた。判定は正しく、私のスナップショットがゴミだった。そしてもう一つ、局面は正しくて私の説明が間違っていたものがある。</p>

<p>教本は<em>高兵</em>三枚が士象全を破ると言い、それは7段目の兵を意味する。同じ三枚を一段下げると勝ちは消える。私はそれを手数の問題、すべてに一手足りないのだと書いた。そうではない。黒の象は盤上の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=wxf" 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=wxf" 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（詰みまでの手数）の表を合わせた値だ。表の数は9枚で頂点に達し、11枚を過ぎると急速に減る。内側から見た最前線とはこういう形をしている。全体で最長の勝ち確定は759プライ。馬二枚と士一枚に対し、象二枚・馬・兵という組み合わせだ。</p>

<p>双方13枚、両方の守りが無傷という形は、その表の最後の行の先にある。それが馬砲の項目だ。教本の例勝、その「型通りの勝ち」は、誰も計算していない局面についての判定である。</p>

<p>chessdbが構築した唯一の13枚の表は別の終盤で、しかもそれは本稿の冒頭で出したものだ。士象全を背にした兵三枚が士象全に当たる形である。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上のスタディで、1件ずつ1章になっていて、局面を起点にエンジンの手順を本線とし、判定を下に書いてある。うまくいかなかったときのために、Pikafishがボットの階段に全力で控えており、全力が学びにならなくなったときのためにFairy-Stockfishの8段階がその下にある。</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="ja"><title type="html">Tic-Tac-Chec：ルールと解決済みゲーム</title><link href="https://brianhliou.com/ja/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×4の盤上で4つを一列に並べることを目指す。取った駒は再び使えるようになり、ポーンは盤の端で向きを変え、局面は無限に繰り返されうる。</p>

<p>私は1998年のDream Greenのオリジナルゲームを強解決した。<strong>最善手では引き分けである。</strong> テーブルベースは2,476,597,610のインデックス済み局面を網羅し、すべての合法手の正確な結果に加えて、必勝または必敗のすべてについて終局までの距離を与える。</p>

<p>下で試してほしい。各手には手番側から見た結果のラベルが付いている。距離は手（片方のプレイヤーの1手）単位であり、引き分けには有限の距離は存在しない。</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>各プレイヤーはポーン、ナイト、ビショップ、ルークを1つずつ持つ。4つすべてを横列、縦列、または長い対角線に並べれば勝ちとなる。</p>

<ul>
  <li><strong>序盤：</strong> 盤面は空の状態で始まる。最初の6手では、各プレイヤーが3つの駒を打つ。</li>
  <li><strong>手番：</strong> 移動が解禁されると、プレイヤーは手持ちの駒を打つか、盤上の駒を動かすことができる。以降に駒を取っても移動は解禁されたままである。</li>
  <li><strong>チェスの動き：</strong> ナイト、ビショップ、ルークは通常どおり動き、駒を取る。キング、チェック、チェックメイトは存在しない。</li>
  <li><strong>駒の再利用：</strong> 取られた駒はゲームから除かれるのではなく、持ち主の手駒に戻る。</li>
  <li><strong>ポーン：</strong> まっすぐ1マス進み、斜め前方の駒を取り、盤のどちらかの端で向きを反転する。打ち直すと向きは相手側に向けてリセットされる。</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>値は手番側から見たものである。勝ちとはそのプレイヤーが4つ並べることを強制できることを意味し、負けとはあらゆる受けが破綻することを意味する。序盤後で最も深い必勝は41手で終わり、負け局面からの最長の抵抗は40手続く。配置のみの序盤では、最も深い決着局面が39手に達する。</p>

<h2 id="引き分けの姿">引き分けの姿</h2>

<p>空の盤面から決定論的な引き分けの変化を1本抽出した。それは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>2手で負ける</td>
      <td style="text-align: right">15</td>
    </tr>
  </tbody>
</table>

<p><img src="/assets/posts/tic-tac-chec/drawing-position.svg" alt="黒に18の合法手がありながら引き分けを保つ手は3つしかない引き分け局面を示す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の選択肢はすべて2手で負ける。</em></p>

<p>この変化は結果を例示するものである。完成した勝ち／負け／引き分けの表こそが証明であり、そこにはすべての引き分け局面から少なくとも1つの引き分けの継続手が示されている。</p>

<h2 id="注意力のゲーム">注意力のゲーム</h2>

<p>テーブルベースは、より人間的なゲームの説明を検証できる。すなわち、通常は寛容だが、相手が3つの駒を並べたときには気づかなければならない、というものだ。</p>

<p>私が<em>生きた脅威</em>として数えたのは、相手が直ちに4つを完成させる合法手を持っている場合だけである。これにより、4つ目の駒が塞がれている、ポーンの向きが逆である、あるいは移動がまだ解禁されていないといった、誤解を招く3駒の並びは除外される。2つの独立した検出器が、インデックス済みのすべての局面でまったく同じ勝ち手を見つけた。</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>引き分けの応手がちょうど1つだけの脅威局面</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件は、まさにテーブルベースにおける2手負けの局面である。</li>
</ul>

<p><em>引き分け</em>局面における生きた脅威にはすべて防ぎ方がある。あらゆる局面のあらゆる脅威を止められるという、より強い主張は誤りである。</p>

<p>これらは完全な構造的インデックス全体に対する数え上げであり、人間の対局で局面がどれほどの頻度で生じるかの推定ではない。注意力のゲームという解釈を、確率的な主張に変えることなく裏付けるものである。</p>

<h2 id="循環のあるゲームを解く">循環のあるゲームを解く</h2>

<p>駒が再利用されるため、ゲームは終盤に向かって縮小していかない。グラフには循環が含まれるので、単純な置換表を用いた前向きのミニマックスは安全ではない。経路に依存する繰り返しの判断が、局面の保存値に混入しうるからだ。</p>

<p>すべての値は手番側の視点によるものである。1手指した後、子局面は相手のものになる。私はその視点の入れ替わりを明示したうえで、グラフを後ろ向きに解いた。</p>

<ol>
  <li>完成した4つ並びは、次に手番が来るプレイヤーの負けとして印を付ける。</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>6手の非循環な別表</td>
    </tr>
  </tbody>
</table>

<p>各局面は盤面配置とポーンの向きから直接整数へ写像される。実用の結果は1局面あたり1バイトを使い、距離の偶奇で勝ちか負けを符号化し、1つのコードが引き分けを表す。</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の有向な手を必要に応じて生成し、全体の求解をノートパソコン1台に収めた。</p>

<p>その結果は、次の個別の検証を経ている。</p>

<ul>
  <li><strong>値の監査：</strong> 24.6億の序盤後局面すべてについてあらゆる合法な後続局面を再生成し、ソルバーの先行局面カウンタを使わずにミニマックスの等式を検証した。</li>
  <li><strong>距離の監査：</strong> 209,074,518の序盤後の決着局面すべてを別のパスで検証した。</li>
  <li><strong>序盤の再現：</strong> 可読性を重視した別のルールエンジンを用いた。</li>
  <li><strong>表現の検証：</strong> 番号付けと逆変換、色の正規化、ポーンの向き、生成された先行局面の辺を個別に検証した。</li>
  <li><strong>脅威の全数調査：</strong> 2つの独立した検出器が、インデックス済みのすべての局面で即詰みの勝ち手を正確に一致して示した。</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>16マスで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>：2つのポーン解釈の間の正確な遷移数。</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>