0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KniffelとZehntausendの点数ルールと、5個のサイコロでゾロ目が出る確率(JavaScript実装付き)

0
Last updated at Posted at 2026-10-14

はじめに

ドイツで定番のダイスゲーム「Kniffel(クニッフェル)」と「Zehntausend(ツェーンタウゼント/10000)」の点数ルールを整理し、あわせて「5個のサイコロでゾロ目(5個同じ目)が出る確率」を計算してみます。

Kniffel の点数ルール

Kniffel はアメリカの Yahtzee とほぼ同じゲームです。サイコロ5個を1ターン最大3回まで振り(2回目・3回目は好きなサイコロだけ振り直し可)、13個の役のどれか1つに記入します。

上段(Oberer Teil)

役 点数
Einser〜Sechser(1〜6) その目の合計
ボーナス 上段の合計が63点以上なら +35点

63点は「各目を3個ずつ」取った場合の合計((1+2+3+4+5+6)×3)です。

下段(Unterer Teil)

役 条件 点数
Dreierpasch 同じ目が3個以上 全ダイスの合計
Viererpasch 同じ目が4個以上 全ダイスの合計
Full House 3個+2個 25点
Kleine Straße 4連続 30点
Große Straße 5連続 40点
Kniffel 5個同じ目 50点
Chance 何でも 全ダイスの合計

条件を満たさない役に記入する場合は0点になります。

Zehntausend の点数ルール

Zehntausend は Farkle と同系統のゲームで、先に10,000点に到達したプレイヤーが勝ちです(地域ルールの差が大きいので、代表的なものを紹介します)。

  • 5個(ルールによっては6個)のサイコロを振り、得点になるサイコロを最低1個取り置く
  • 残りを振り直すか、そこで止めて点数を確定するかを選ぶ
  • 得点になるサイコロが1つも出なければ、そのターンの点数は0(バースト)
  • 全部のサイコロが得点になったら、全部振り直して続行できる
組み合わせ 点数
1 100
5 50
1が3個 1000
2〜6が3個 目×100(例:4が3個=400)
同じ目4個 3個の点数×2
同じ目5個 3個の点数×4
ストレート 1-2-3-4-5 500(ルールにより異なる)
ストレート 2-3-4-5-6 750(ルールにより異なる)

多くのハウスルールでは、最初の得点確定に最低350点や500点が必要です。

実装例(JavaScript)

function scoreZehntausend(dice) {
  const c = [0, 0, 0, 0, 0, 0, 0];
  dice.forEach(d => c[d]++);
  const s = [...dice].sort().join('');
  if (s === '12345') return 500;
  if (s === '23456') return 750;
  let score = 0;
  for (let v = 1; v <= 6; v++) {
    if (c[v] >= 3) {
      const base = v === 1 ? 1000 : v * 100;
      score += base * 2 ** (c[v] - 3);
      c[v] = 0;
    }
  }
  return score + c[1] * 100 + c[5] * 50;
}

5個のサイコロでゾロ目が出る確率

1回振った場合

1個目は何でもよく、残り4個が同じ目になればよいので

$$P = 6 \times \left(\frac{1}{6}\right)^5 = \frac{1}{6^4} = \frac{1}{1296} \approx 0.077%$$

Kniffel ルール(3回まで振り直し)の場合

最も多い目を残して残りを振り直す最適戦略をとると、マルコフ連鎖で計算でき、1ターンで Kniffel が出る確率は約 4.6%(およそ 1/22)になります。

// 5個中の「最多の目の個数」を状態とする遷移を3回分シミュレーション
function kniffelProbability(trials = 1e6) {
  let hit = 0;
  for (let t = 0; t < trials; t++) {
    let dice = Array.from({ length: 5 }, () => 1 + Math.floor(Math.random() * 6));
    for (let r = 1; r < 3; r++) {
      const c = [0, 0, 0, 0, 0, 0, 0];
      dice.forEach(d => c[d]++);
      let keep = 1;
      for (let v = 2; v <= 6; v++) if (c[v] > c[keep]) keep = v;
      dice = dice.map(d => (d === keep ? d : 1 + Math.floor(Math.random() * 6)));
    }
    if (dice.every(d => d === dice[0])) hit++;
  }
  return hit / trials; // ≈ 0.046
}

1回振りの約0.08%と比べると、振り直しによって約60倍も出やすくなることが分かります。

まとめ

  • Kniffel は13役を埋めるカテゴリ型、Zehntausend は取り置きと振り直しのリスク判断型
  • 5個のゾロ目は1回振りで 1/1296、Kniffel の3回ルールで約4.6%

ブラウザ上の3D物理サイコロで実際に遊べるページも作っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?