formation-chess-web 0.2.0

Rules engine and text notation for Formation Chess (阵棋), a strategy board game where piece formations reshape nearby abilities
<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>阵棋 Formation Chess</title>
<link rel="stylesheet" href="/css/main.css">
</head>
<body>
<div id="app">
  <div id="toolbar">
    <button id="btn-new">新局</button>
    <button id="btn-custom">自定义…</button>
    <button id="btn-rules">规则</button>
    <span class="toolbar-spacer"></span>
    <span id="player-indicator"></span>
    <span class="toolbar-sep">·</span>
    <span id="white-indicator" role="button" tabindex="0">白子×0</span>
    <button id="btn-pass" class="btn-action">按兵</button>
    <button id="btn-resign" class="btn-action">认负</button>
  </div>
  <div id="main">
    <div id="sidebar">
      <div id="black-pool" class="pool">
        <div class="pool-label">黑方持子</div>
        <div class="pool-items"></div>
      </div>
      <div class="pool-divider"></div>
      <div id="red-pool" class="pool">
        <div class="pool-label">红方持子</div>
        <div class="pool-items"></div>
      </div>
    </div>
    <div id="board-wrap">
      <div id="board"></div>
    </div>
  </div>
  <div id="status"></div>
</div>

<div id="overlay" class="overlay hidden">
  <div id="panel-custom" class="panel custom-panel hidden">
    <h2>自定义棋局</h2>
    <div class="panel-tabs">
      <button class="tab active" data-tab="tab-size">棋盘尺寸</button>
      <button class="tab" data-tab="tab-random">随机布局</button>
      <button class="tab" data-tab="tab-load">加载残局</button>
    </div>
    <div id="tab-size" class="tab-content active">
      <div class="form-row">
        <label>宽度 <input id="custom-width" type="number" min="1" max="16" value="9"></label>
        <label>高度 <input id="custom-height" type="number" min="1" max="16" value="10"></label>
      </div>
      <button id="btn-size-confirm">创建</button>
    </div>
    <div id="tab-random" class="tab-content">
      <div class="form-row">
        <label>宽度 <input id="rand-width" type="number" min="1" max="16" value="9"></label>
        <label>高度 <input id="rand-height" type="number" min="2" max="16" value="10"></label>
      </div>
      <button id="btn-random-confirm">随机开局</button>
    </div>
    <div id="tab-load" class="tab-content">
      <textarea id="load-text" placeholder="粘贴记谱法残局配置…&#10;例:&#10;行棋方:红&#10;红方:[车 马 炮]&#10;黑方:[]&#10;白方:0&#10;胜负:未决&#10;棋盘:&#10;..." rows="12"></textarea>
      <button id="btn-load-confirm">加载</button>
    </div>
    <button class="panel-close">×</button>
  </div>

  <div id="panel-rules" class="panel rules-panel hidden">
    <div class="rules-content"></div>
    <button class="panel-close">×</button>
  </div>
</div>

<div id="popup-choose" class="popup hidden"></div>

<div id="game-over" class="game-over hidden">
  <div class="game-over-content">
    <div class="game-over-title"></div>
    <button id="btn-game-over-new">新局</button>
    <button id="btn-game-over-close" class="btn-secondary">关闭</button>
  </div>
</div>

<script type="module" src="/js/main.js"></script>
</body>
</html>