本文へ移動

Korokoroコロコロ

ダイスを組み合わせて振り、ダイス表記を読み取り、正確な確率を調べます。履歴の保存やシードを指定した再現もできます。

「コロコロ」は、小さなものが転がる様子を表す言葉です。 名前について(英語)

目次

やり方

ロールを保存・共有する

シードで出目を再現し、リンクとJSONで記録を共有します。

同じロールを再現する

import { normalizeSpec, roll, seededSource } from "@johnmorrisdotca/korokoro";
const spec = normalizeSpec({ count: 2, sides: 6 });
const first = roll(spec, seededSource("club-night"), 1700000000000);
const repeat = roll(spec, seededSource("club-night"), 1700000000000);
console.log(first.faces.join() === repeat.faces.join());
true

乱数源は使うたびに進みます。最初の出目をもう一度得るには乱数源を作り直し、連続した出目には同じ乱数源を使い続けます。シードは再現用です。予測できない出目には、既定の暗号論的乱数源を使います。

リンクとJSONで保存する

import { normalizeSpec, roll, seededSource, shareQuery, readShared, toJSON, fromJSON } from "@johnmorrisdotca/korokoro";
const result = roll(normalizeSpec({ count: 2, sides: 6 }), seededSource("club-night"), 0);
console.log(readShared(shareQuery(result))?.total);
console.log(fromJSON(toJSON([result]))?.length);
5
1

読み込み時には、設定と出目から合計を計算し直します。不正な内容や新しい形式ではnullになる場合があります。外部の合計をそのまま信用せず、結果を確認します。履歴のAPIでは新しいロールを先頭に置き、件数を制限します。ストレージに保存できなかった場合も結果で分かります。コマンドラインと保存形式、別の言語の例も参照できます。

ソースを見るGitHub で編集@johnmorrisdotca/korokoro 1.16.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。