本文へ移動

Korokoroコロコロ

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

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

目次

やり方

ダイス表記で振る

ダイス表記を検証し、ホールドとゲームの読み方を使います。

振る前に確認する

checkNotationでは、読み取れない理由も分かります。parseNotationは設定を返し、読み取れない場合はnullを返します。

import { checkNotation, roll, seededSource } from "@johnmorrisdotca/korokoro";
const checked = checkNotation("2d20kh1+5");
if (checked.ok) console.log(roll(checked.spec, seededSource("advantage"), 0).total);
else console.log(checked.problem, checked.message);
25

khは高い出目、klは低い出目を残します。1d20+1d4+3のように種類を組み合わせられます。ro<3は1回だけ振り直し、r<3は上限内で条件を満たさなくなるまで振り直します。表記の資料と仕様に詳しい規則があります。

ダイスをホールドする

import { normalizeSpec, rollFrom, rollHeld, seededSource } from "@johnmorrisdotca/korokoro";
const first = rollFrom(normalizeSpec({ count: 2, sides: 6 }), [6, 3], "first", 0, null)!;
const next = rollHeld(first, [true, false], seededSource("again"), 1);
console.log(next.faces);
[ 6, 1 ]

真偽値はダイスの順に指定します。規則によってはホールドできないので、canHoldで確認します。

ゲームの読み方を使う

import { getPreset, rollPreset, seededSource } from "@johnmorrisdotca/korokoro";
console.log(getPreset("Yacht")?.notation);
const turn = rollPreset("yahtzee", { source: seededSource("game-night"), at: 0 });
console.log(turn.reading.text);
5d6
Chance, for 14

プリセットには、使うダイスと出目の読み方が入っています。手番の管理や得点表はアプリ側で用意します。ゲームの一覧に規則と出典があります。ダイスウォーにはstartDiceWarから始める状態管理があります。

ブラウザに表示するにはトレイの埋め込みに進みます。

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

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