# リリースノート

# 1.1.33 → 2.0.0

201件のコミットをまとめたアップデートで以下が主な内容です。

  • モデル層のリファクタリング
  • 詰み判定機能の追加
  • 指し手を読み上げるためのテキスト生成処理の完全削除
  • 不具合修正
  • 安定性向上
  • 高速化

通常の使い方であればそのままアップデートして問題ないはずですが、もし動かなくなった場合は、いったん 1.x 系に戻すかご一報ください。

また、本体とは別で、あわせてスタイルエディタも更新しています。 これまでサイドバー下部にコンポーネント引数やCSS変数をすべて表示していましたが、 知りたいのはデフォルトとの差分なので、差分のみを表示する仕様に変更したりしています。

# 新機能

  • 詰み判定を追加しました。(デフォルトでは機能OFF)
  • 詰み判定を追加できたことで打歩詰め等の反則判定もできるようになりました。(デフォルトでは機能OFF)
  • オプションにより盤上の特定の領域だけを表示できるようにしました。(例えば左上の5x5など)
  • 星の位置をカスタマイズできるようにしました (いらん機能)
  • カーソル形状を整理しました。(駒を持ってない・駒を持つことができる・駒を持っている の3つの状態に合わせて形状が適切に変化する)
  • 盤の種類(正確にはSVGによる模様エフェクト)を追加しました。
  • sp_request_* 系のオプションをいろいろ有効にしたとき、ev_play_mode_move に追加情報を含めるようにしました。

# 内部的なもの

  • CSSをなるべくモダンブラウザに対応したシンプルな書き方に置き換えました。
  • 反則時のイベントを強化しました。(主に共有将棋盤用)
  • 思考印機能を追加しました。(が、一般的な機能ではないのでドキュメントにも詳しく書いてない)
  • 移動元印機能を追加しました。指し手の移動元を盤上に表示できます。(が、一般的な機能ではないのでドキュメントにも詳しく書いてない)
  • 棋譜を正しくパースできないときに alert を表示するようにしました。
  • 縦配置のときは、プレイヤー名の背景バルーンの角を丸めないようにしました。
  • 駒数表示の部分のボーダーをカスタマイズできるようにしました。

# 修正

  • プレイヤー名が英字のとき縦書きにすると文字の頭が右を向いてしまう問題を修正しました。
  • 座標表示がクリックイベントを奪ってしまう問題を修正しました。
  • 予期しないイベントが発生していたため、持駒操作を主ボタンに限定しました。
  • 操作モード用の API を再生モード用と誤記していたドキュメントを修正しました。

# 内部変更・リファクタリング

  • System Spec の導入でブラウザ上のでテストをできるようにしました。
  • 移動元印のシステムテストを追加しました。
  • 持駒が空のときは MembershipStand コンポーネントを表示しないようにしました。(CSSを当てやすくするため)
  • SVG の hsl() 表記からパーセント記号を削除しました。
  • sp_lift_cancel_action のデフォルト値を standard に変更しました。
  • .ShogiPlayercontainer-type: inline-size を指定するようにしました。
  • sp_board_variant_to_stand prop を追加しました。
  • 明示的に ☗☖▲△ を返す Location#pentagon_char / Location#polygon_char を追加しました。
  • 盤面だけを見て手合割を推測する guess_preset_info を追加しました。
  • illegal_info に千日手のレコードを追加しました。
  • ev_illegal_click_but_self_is_not_turn イベントの引数に event を渡すようにしました(右クリック判定用)。
  • 持駒を非表示にできる機能を追加しました(実験的)。
  • リサイズ監視の機能を prop sp_resize_observer_feature で ON / OFF できるようにしました。
  • Membershipsp_membership_vertical_gap / sp_membership_horizontal_gap を追加しました。
  • 盤の上と右に表示する符号をただの飾りではなく本当の位置を表示するようにしました。
  • 神クラス化していた Xcontainer を関心事ごとにファイル分割しました(持駒・手数・シリアライズ等)。
  • xcontainerpiece_box を Hash 型から Value Object の PieceBox 型に置き換えました。
  • mod_vector を Vue.js に依存しない Vec2d に置き換え、マジックナンバーを削減しました。
  • Xcontainer / Soldier / Place などのインスタンスを new で直接生成せず、適切なファクトリメソッド経由で生成するようにしました。
  • 千日手判定用のハッシュを to_sfen_without_turn から position_hash(旧 snapshot_hash)に統一しました。
  • 「読み上げ」に関するコードをすべて削除しました。
  • deep-object-diff への依存を整理しました。
  • CSS を全面的に見直しました(100vh などを 100dvh 表記に統一、AspectRatioFixedBlock を padding-top ハックから aspect-ratio プロパティに置換、CSS カラー形式を hsl(h s% l% / a) に統一)。
  • DeviseHelper.mouse_click_event_p が呼べない問題を修正しました。
  • DomHelper.focus_on_input_tag_p で radio ボタンにフォーカスしているときも true になるように修正しました。
  • OpDisabledBlock.vueis_layer_on が指定する階層がずれていた問題を修正しました。
  • TheSpTheSP に統一しました。
  • 各種モデル(Board / Piece / Place / Soldier / Xcontainer 等)のテストを大幅に追加・強化しました。
  • sp_request_snapshot_hashsp_request_position_hash にリネームしました。あわせてモデル内部の snapshot_hashposition_hash に統一しています。
  • sp_request_snapshot_hash(現 sp_request_position_hash)の初期値を false に変更しました。

# スタイルエディタの変更

  • コンポーネント引数や CSS 変数について、デフォルトから変化した差分だけを表示するオプションを追加しました。
  • カスタム CSS のプリセットを大幅に追加・更新しました(「ノイズ盤」「ノイズビニ盤」「木目」「紙面風」など)。
  • 思考印や移動元印の動作を確認できるようにしました。
  • 盤のマスの表示領域を指定を確認できるようにしました。
  • ショートカットの種類を増やしました。

# 内部的なもの

  • UI コンポーネントのラッパーを用意して DRY 化しました。
  • 色変換ライブラリを chroma-js から colorjs.io (opens new window) に移行しました。
  • VariableInforelative_model と min / max / step を追加し、コントロールパネルを整理しました。
  • プリセットを SVG ファイル読み込みに移行しました。
  • se_tf_*_modese_tf_*_switch にリネームしました。
  • 設定の永続化バージョンを変更しました。
Last Updated: 8/3/2026, 6:01:06 AM