shogicross
Version:
様々な将棋類の駒を並べるだけの将棋盤のようなツール
121 lines (100 loc) • 5.27 kB
Markdown
# ShogiCross(将棋クロス)
 <img src="img/all.png" height="200px">
様々な将棋類を将棋駒として実体化するプロジェクト。
## [収録ゲーム](http://shogicross.yosgspec.com/#playBoard)
* 将棋
* チェス
* シャンチー
* チャンギ
* マークルック
* チャトランガ
* どうぶつしょうぎ
* 禽将棋
* 中将棋
* Grand Acedrex
* クーリエチェス
* その他バリエーション等
### [駒情報](doc/pieces/README.md)
実装済の駒の定義一覧。
## Webアプリ
[](https://github.com/yosgspec/ShogiCross/actions/workflows/build.yml)
[](https://badge.fury.io/js/shogicross)
[](LICENSE)
様々な将棋類の駒を並べるだけの将棋盤のようなツール。
### 実装
* [ShogiCross App](http://shogicross.yosgspec.com/#app)
* [単品ゲーム集](http://shogicross.yosgspec.com/#dist)
* [将棋類紹介](http://shogicross.yosgspec.com/#playBoard)
* [将棋駒Viewer](http://shogicross.yosgspec.com/#pieceViewer)
### ライブラリ
任意のページへ設置できる。駒やボードの追加も対応。
* [ドキュメント](http://shogicross.yosgspec.com)
* [ダウンロード](http://shogicross.yosgspec.com/#doc/getStarted)
### 特徴
* 様々な将棋類の表示に対応
* 4人用ボード対応
* 手を戻す、進める機能
* 盤面回転機能(棋譜とは同期しない)
* 画像出力機能
* BOD形式での局面入出力機能(独自拡張あり)
* レスポンシブ対応
* オリジナルの駒配置を設定 (チェス対将棋も容易)
* 画像を用意せずに追加駒を設定
* 視覚的にわかりやすい駒データ定義
* Webページに簡単設置([CodePen](https://codepen.io/yosgspec/pen/bGJqNJr)、[コード付サンプル](https://shogicross.yosgspec.com/#doc/gameSoft))
* <details>
<summary>サンプルコード</summary>
```html
<canvas id="shogiCross"></canvas>
<script type="module">
import {Board, gameSoft} from "https://cdn.jsdelivr.net/gh/yosgspec/ShogiCross@0.5/src/dist/ShogiCross.min.js";
const canvas = document.getElementById("shogiCross");
const board = Board.run(canvas, gameSoft.shogi);
</script>
```
</details>
## [ペーパークラフト](paper/README.md)
様々な将棋類を紙の力で実体化。
## [ディレクトリ構成](doc/root/README.md)
プロジェクトのディレクトリ構成。
## 使用フォント
下記のフォントを採用(優先度順)。
* [Noto Serif JP Black](https://fonts.google.com/noto/specimen/Noto+Serif+JP)
* [Noto Emoji](https://fonts.google.com/noto/specimen/Noto+Emoji)
* [Noto Sans Symbols 2](https://fonts.google.com/noto/specimen/Noto+Sans+Symbols+2)
* [Noto Sans Symbols](https://fonts.google.com/noto/specimen/Noto+Sans+Symbols)
* [Noto Serif Black](https://fonts.google.com/noto/specimen/Noto+Serif)
* [Noto Serif TC Black](https://fonts.google.com/noto/specimen/Noto+Serif+TC)
* [Noto Color Emoji](https://fonts.google.com/noto/specimen/Noto+Color+Emoji) (操作パネル用)
楷書体は使用せず、文字の網羅性が高くGoogle Fontsで使用できることからからNotoフォントで統一している。
## 将棋駒の角度・寸法
将棋駒は以下寸法とした。

参考資料を基に寸法ができるだけ単純になるように設定している。
### 参考資料
* [将棋駒の寸法をしっかり計算したお - 生き抜くぜ21世紀](https://rskmoi.hatenablog.com/entry/2018/01/21/104029)
* [駒のサイズ](http://kijishi.html.xdomain.jp/komanosize.htm)
## 使用ライブラリ
Webアプリの本体についてはVanilla.jsで実装。
ビルドツールとして下記を採用。いずれも最適化のためのもので使わなくても動く。
|ライブラリ|用途
|:---------|:----
|[npm-run-all](https://github.com/mysticatea/npm-run-all)|npmビルド処理直列化
|[shx](https://github.com/shelljs/shx)|bashコマンド実行(Windows)
|[Vite](https://ja.vitejs.dev)|コード1ファイル化
|[Toptal Minifier Tool](https://www.toptal.com/developers/javascript-minifier)|コード最小化
|[jsDelivr](https://www.jsdelivr.com/github)|CDN配信
|[TypeScript](https://www.typescriptlang.org/ja/)|型定義ファイル(.d.ts)生成
|[markdown-it](https://github.com/markdown-it/markdown-it)|Markdown⇒HTML変換
|[TypeDoc](https://typedoc.org)|.d.ts(JSDoc)ドキュメント生成
|[ADM-ZIP](https://github.com/cthackers/adm-zip/wiki/ADM-ZIP)|ZIPファイル生成
|[sharp-cli](https://github.com/vseventer/sharp-cli)|画像ファイル最適化
|[icon-gen](https://github.com/akabekobeko/npm-icon-gen)|アプリアイコン生成
|[ws](https://github.com/websockets/ws)|オンライン通信(WebSocket)
|[tauri](https://v2.tauri.app/ja/)|スタンドアロンアプリビルド
## [ライセンス](LICENSE)
CC0-1.0。コードの引用再利用ご自由に。
## その他
その他不足情報があれば、下記を参照。
(過去類似作成物)
* [超棋.pdf](doc/超棋.pdf)