「CanDume.js」の使い方
(2024/11/17, Version 2.5対応)
- はじめに
- このツールはWebサーバにアップロードして使用する。
PC等のローカル環境では動作しない。
- 任意のファイルがアップロード可能なWebサービスであれば、ブログツール等でも利用できる(はず)。
- 必要に応じて、ダウンロードしたサンプルファイルや、サンプルのアップロード例もご参照。
- ダウンロードしたファイルの中にある「SampleFiles」フォルダのファイル一式で、動作サンプルとなっている。
- 「SampleFiles」フォルダごと、Webサーバにアップロードし、index.htmlを閲覧して動作を確認できる。
- ツールの本体は「SampleFiles」フォルダにある「candume.js」である。
- 設置方法
- HTMLの例
このツールではHTML5の<canvas>タグを使用するため、HTML5(正確にはHTML5が廃止された2021年時点のHTML Living Standard)で作成する。
HTML5とHTML4.1以前が混在している場合、正常動作しない可能性がある。
<!DOCTYPE html>
<html lang="ja">
(…中略…)
<body>
(…中略…)
<canvas data-file="filename.csa" data-zero="0手目の表示" data-start="0"></canvas> ・・・①
(…中略…)
<script src="/src/candume.js" data-wm="WatarMark文字列"></script> ・・・②
</body>
</html>
- 詰将棋を表示させる位置(複数可)に、<canvas~~></canvas>を置く。
盤面のサイズは、CSS等で指定できる。
CSS等の指定が無い場合は、ブラウザのウィンドウ・サイズを基準に適当な大きさで表示する。
1つのページの中の盤のサイズは、すべて同一になります。
- 「data-file」は、棋譜情報が入った入力ファイル名。
ファイルの場所を正しく指定する。
(上記例は、HTMLファイルと同じディレクトリに"filename.csa"が存在する場合)
「data-file」が無い<canvas>は、処理対象外になる。
- 「data-file="*"」を指定すると、<canvas>と</canvas>の間の文字列を、CSA形式の棋譜として使用する。
- 「data-zero」は、0手目局面(通常の詰将棋の初形)で右下に表示する任意の文字列を指定する。
「data-zero」を省略すると、0手目局面の右下には詰手数を表示する。
- 「data-start」は、最初に表示する局面(何手目の局面を表示するか)を指定する。
例えば「data-start="15"」は最初の表示が15手目の局面になる。
詰手数より大きな数値を指定すると、最初の表示は最終局面になる。
「data-start」を省略すると、最初の表示は0手目になる(「data-start="0"」と同じ)。
- <body>~</body>の範囲の最後に、<script~~></script>を1つ置く。
(正確にいうと、全てのcanvasより下なら良い)
src=で、ツールの格納場所を正しく指定する。
(上記例は、"/src"ディレクトリに"candume.js"が存在する場合)
- 「data-wm」は、盤面を右クリック(画像コピー等のコンテキストメニュー表示)時に表示する、Watermark文字列を指定する。
「data-wm」を省略すると、右クリック時にドメイン名を表示する。
「data-wm=""」は、コンテキストメニューを表示しない。
- 同じページ内に他にcanvasタグがある等の問題がある場合は、処理対象のcanvasとscriptを<div>~~</div>で囲む。
(例)
<div>
<canvas data-file="sample.csa"></canvas> ←処理対象
<script src="/src/candume.js"></script>
</div>
<canvas ・・・></canvas> ←処理対象外
- data-fileとdata-zeroは、scriptタグで一括設定できる。
canvasに個別設定があれば、個別設定が優先される。
- scriptタグの中にdata-zeroを設定すると、data-zeroの設定がないcanvas全てに設定するのと同じ意味になる。
- scriptタグの中にdata-fileを数値で設定すると、data-fileの設定がないcanvas全てに、1ずつ増加する「数値.csa」を設定するのと同じ意味になる。
"1.txt"のように設定すると、入力ファイルの拡張子をcsaから変更する。
(例)
<div>
<canvas></canvas> ←data-file="10.csa" と設定したのと同じ
<canvas data-file="sample.csa"></canvas> ←個別の設定は有効
<canvas></canvas> ←data-file="11.csa" と設定したのと同じ
<script src="/src/candume.js" data-file="10"></script>
</div>
- 入力ファイル
入力ファイルは、CSA標準棋譜ファイル形式の「サブセット」である。
「柿木将棋IX」などの一般的なソフトウェアで、CSA形式でファイルとして作成できる。
CSA標準棋譜ファイル形式で規定されている機能のうち、下記には対応していない。
- 2.5(1) "PI"による平手初期配置
- 2.5(3) 駒別単独表現は、持駒の指定のみ使用可
盤面配置は使用不可、"AL"「残りの駒すべてを持駒」は使用不可
- 2.5(4) 手番は無視します
- 2.6(2) 特殊な指し手は無視します
CSA形式としてのエラー(駒配置や指し手のフォーマットエラー)があれば、コンソールに出力する(ブラウザの開発者ツールで確認できる)。
将棋のルールとしてのエラーチェックはしないので、CSA形式で表現できるなら、フェアリールールでもOK。
- 動作の概要(ツールの操作方法)
- タッチスクリーン
タッチして盤面選択。
盤面の右半面をタッチして1手進む。左半面をタッチして1手戻る。
タッチし続けると加速。
- マウス
クリックして盤面選択。
盤面の右半面を左ボタンで1手進む。左半面を左ボタンで1手戻る。
押し続けると加速。
- キーボード
TABキーなどで盤面選択。
「→」キーで1手進む。「←」キーで1手戻る。押し続けると加速。
- 盤面の表示について
「杏」は成香、「圭」は成桂、「全」は成銀の表示。
- 対応ブラウザ
- Chrome、Edge、Firefox、Safari あたりのメジャーなブラウザの最新版は、いずれも動作する(はず)。
- Internet Explorer などの古いブラウザでは動作しない。
- スタイルシートのための参考情報
- サンプルの「dark.css」はダークテーマの設定(文字色と背景色)のみ。
- 盤面は正方形で、1辺は22pxの倍数。
- 選択した盤面のデザインの設定には、focus疑似クラスが使用できる。
- サンプルのHTMLについて補足説明
- ビューポートの設定
(5行目 <meta name="viewport" content="width=device-width,initial-scale=1">)
初期表示の横幅を、ブラウザのウィンドウ横幅に合わせる設定。
(例えば、スマホの縦長画面では、横幅を合わせた表示になる)
- コンテンツ・セキュリティ・ポリシー(CSP)の設定
(6行目 <meta http-equiv="Content-Security-Policy" content="default-src 'self'">)
自身のドメイン(self)以外からの読み込みをブロックする設定。
(サンプルのような単純な例では、あまり意味はない)