ForHosting KIT · 開発者向けツール

シード指定でトランプ52枚を再現可能にシャッフル

このシード指定シャッフルは、整数を標準トランプ52枚の厳密な並びへ変換します。同じシードを再度指定すると、常に同じ順序が得られます。そのため、シミュレーション、テスト用データ、授業の演習、再現可能なゲームを確認したり共有したりする場面に適しています。結果はランクとスートの短いコードで表され、全カードが1回ずつ含まれます。ネットワーク、現在時刻、隠れた乱数には依存しません。異なるシードでは通常、異なる順序になりますが、デッキの作成方法とシャッフル手順は常に同じです。

● Beta無料・ブラウザ内で実行
ご利用方法 ウェブAPIメールTelegramアプリ 近日

1つの整数から同じ並びを再現できます

<code>seed</code>フィールドに整数を入力してください。最初に、スペード、ハート、ダイヤ、クラブの順で、各スートをエースからキングまで並べた標準52枚のデッキを作成します。次に、シードから生成した疑似乱数列を使い、Fisher-Yates法でカードを入れ替えます。処理に使う値がすべて固定されているため、結果も固定されます。たとえばシード42は、別の日、別の環境、別のテスト実行でもまったく同じ応答になります。この再現性が本機能の中心的な目的です。開発者は52個の値を保存せずにシャッフル済みデッキをfixtureへ組み込めます。授業では全員に同じ問題を配布でき、ゲームでは開始時の配札を復元するためにシードだけを記録できます。応答にも元のシードが含まれるため、保存した結果の由来が明確です。安全に表現できるJSON整数だけを受け付け、小数、数値文字列、未指定値、無限大、JavaScriptで正確に扱えない整数は、丸めたり読み替えたりせずエラーにします。

返されたカード順の読み方

<code>deck</code>配列には、引く順番で52個の重複しない文字列が入ります。各文字列はランクと1文字のスートコードを連結したものです。ランクは<code>A</code>、<code>2</code>から<code>10</code>、<code>J</code>、<code>Q</code>、<code>K</code>です。スートはスペードが<code>S</code>、ハートが<code>H</code>、ダイヤが<code>D</code>、クラブが<code>C</code>です。したがって、<code>AS</code>はスペードのエース、<code>10D</code>はダイヤの10を表します。配列の最初の要素が山札の一番上で、その次が2枚目に引くカードです。本機能は手札を配らず、ジョーカーを追加せず、ポーカー役を判定せず、返却後の順序も変更しません。これらは呼び出し側のアプリケーションで決めてください。たとえば4人へ5枚ずつ配る場合は、選択した配り方に従って先頭20要素を使用します。単純で明示的な結果なので、特定のゲーム規則を押し付けず、完全な並びをコピー、比較、保存、シミュレーターへの入力に利用できます。

決定的シャッフルの適切な用途

決定的なシャッフルは再現性を得るためのもので、秘密を守るためのものではありません。シードとアルゴリズムを知る人はデッキ全体を復元できます。そのため、テスト、デモ、シミュレーション、公開シードを使うパズル、状態の秘匿より再実行を重視するゲームに適しています。賭け、賞品、セキュリティ判断、次のカードを予測できることが有利になる用途には使用しないでください。その場合は暗号学的に安全な乱数源を使用し、その状態を秘密に保つ必要があります。適切な用途ではデバッグが簡単になります。失敗したテストの報告にシードを含め、同じ配札をローカルで再現し、カードごとに動作を比較できます。また、連続するシードで一括実行すれば、大きなfixtureファイルをソース管理へ保存せずに、安定したシナリオ群を用意できます。実装はネットワーク、時計、変更可能なグローバル状態、<code>Math.random</code>、外部データを使いません。固定されたデッキ定義と上限のある51回の交換により、処理時間と結果を容易に監査できます。

ゲームの不具合を再現する

不具合報告にシードを保存し、配札処理や得点処理の調査時に同じ開始デッキを復元できます。

安定したテストデータを作る

ローカル実行と継続的インテグレーションで変化しない、現実的なシャッフル順を生成できます。

授業用シミュレーションを共有する

全員に同じシードを配布し、確率の演習を同一のデッキから開始できます。

1回の利用料金はいくらですか?

APIは1回$0.002です。同じ決定的シャッフルを、このページのブラウザー内では無料で実行できます。

同じシードなら常に同じデッキになりますか?

はい。デッキの作成、疑似乱数生成器、交換手順が固定されているため、有効なシードは同じ順序を再現します。

どのカードが含まれますか?

スペード、ハート、ダイヤ、クラブの標準52枚が含まれ、ジョーカーは含まれません。

シードが拒否されたのはなぜですか?

JSONで正確に表現できる安全な整数が必要です。小数、文字列、未指定値、大きすぎる整数は無効です。

賭けやセキュリティ用途に使えますか?

いいえ。意図的に再現可能であり、シードとアルゴリズムを知る人には予測できるためです。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/game/card-deck-shuffle-seeded

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/game/card-deck-shuffle-seeded \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"seed":42}'
{
  "seed": 42
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "game.card_deck_shuffle_seeded",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

KITの完全なドキュメントを見る →