チェスの代数表記を検証
Nbd2+は正しい表記で、bファイルのナイトがd2へ動きチェックをかける手を表します。指し手を1つ入力すると、標準の代数表記に沿っているかを確かめ、駒、行き先のマス、駒取り、チェック、昇格が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 表記
- Nbd2+
- 手の種類
- piece
- 駒
- N
- 目的地
- d2
- 出発ファイル
- b
この検証ツールは、1手の文字列が標準代数表記(SAN)の構文に従っているかを確認します。ポーンと駒の移動、取り、移動元の曖昧性解消、昇格、キャスリング、チェック、チェックメイトを認識します。確認するのは構文だけであり、盤面を必要とせず、特定の局面でその手が合法だとは判定しません。チェスデータを保存、取り込み、表示、処理する前に、形式の崩れた文字列を検出する用途にお使いいただけます。
検証できる表記
標準代数表記は、チェスの1手を短い構造化文字列で表します。駒の手は大文字の K、Q、R、B、N のいずれかで始まり、その後に任意の移動元指定、取りを示す記号、e4 や h8 のような移動先が続きます。ポーンの手では駒文字を省略します。
e4 は通常の前進、exd5 は e ファイルのポーンが d5 で駒を取る手です。昇格では e8=Q や fxg8=N のように、等号と Q、R、B、N のいずれかを付けます。短いキャスリングの O-O と長いキャスリングの O-O-O にも対応します。
末尾のプラス記号はチェック、ハッシュ記号はメイトを表します。駒文字は大文字、ファイルは小文字であるため、大文字と小文字は区別されます。結果には手の種類、移動先、取り、チェック、メイトの状態と、指定された移動元や昇格先が含まれます。
構文の正しさと合法手は別です
このツールが答えるのは、文字列が SAN の1手として正しい形かどうかです。盤面、手順、手番、キャスリング権、アンパッサンの状態は受け取りません。そのため、指定した駒が実際に移動先へ到達できるかは判断できません。
たとえば Nf3 は、ある局面で f3 に動けるナイトが存在しなくても構文上は有効です。同様に、末尾のチェック記号が正しい位置にあれば、相手キングが本当に攻撃されていることを証明せずに受理します。この分離はデータ取り込みで役立ちます。
表記ミスとルール違反では、利用者へ返す説明が異なるためです。不完全な移動先、小文字の駒文字、誤った位置の取り記号、無効なファイル、未対応の接尾辞は、対局を再構築せずに拒否できます。成功後、盤面を扱うチェスエンジンで合法性を別途確認してください。
valid は表記構造だけを保証します。
活用例
取り込んだ指し手列の整備
不正な SAN 文字列を、チェスデータベースや棋譜解析器へ登録する前に拒否できます。
フォーム入力の検証
プレイヤーや編集者が1手を入力した際に、即時かつ一貫したフィードバックを返せます。
生成したチェス教材の事前確認
レッスン、問題、レポートなどの決定的なツールが生成した指し手の構文を確認できます。
よくある質問
有効という結果は合法手であることを意味しますか?
いいえ。 確認するのは SAN の構文だけです。合法性の判定には局面、手順、チェスルールエンジンが必要です。
どの駒文字を使用できますか?
大文字の K、Q、R、B、N を使用できます。SAN ではポーンに先頭文字を付けません。
取り、チェック、メイトに対応していますか?
はい。 SAN で定められた位置に、取りは x、チェックは +、メイトは # を付けます。
キャスリングと昇格を認識しますか?
はい。 O-O、O-O-O、および =Q、=R、=B、=N を使うポーン昇格に対応します。
指し手の前後にある空白は削除されますか?
いいえ。 データの清掃漏れを見える状態にするため、前後の空白は不正な入力として扱います。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/game/chess-algebraic-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"notation":"Nbd2+"}'const res = await fetch("https://api.kit.forhosting.com/game/chess-algebraic-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"notation": "Nbd2+"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/chess-algebraic-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"notation": "Nbd2+"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/chess-algebraic-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"notation":"Nbd2+"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"notation":"Nbd2+"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/chess-algebraic-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"notation": "Nbd2+"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.chess_algebraic_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
アプリケーションやデータ処理での利用方法
前後の空白は黙って削除せず拒否するため、データベース列や行単位の取り込みに混入した汚れを発見できます。駒の手には SAN の駒文字と移動先が入り、ポーンは P で表します。capture は常に真偽値です。notation フィールドへ1手だけを送信してください。成功時は元の文字列を保持し、ソフトウェアが SAN を再解析せず参照できる安定したフィールドを返します。move_type はポーン、駒、キャスリングを区別します。origin_file、origin_rank、promotion、キャスリング側は該当する場合だけ現れ、check と mate は独立した真偽値です。不正な値は valid を false にした結果ではなく invalid_input エラーになり、取り込みの停止や入力欄の指摘に利用できます。処理は決定的で通信を行わず、ブラウザーと API で同じ結果を返します。対話利用は無料で、自動化した API 検証は1件 $0.002 です。
技術的な質問
API による検証の料金はいくらですか?
API リクエスト1回につき $0.002 です。このページのブラウザー版は無料で利用できます。