Peristiwa permainan

Setiap pertaruhan menukar benih kepada satu atau lebih nombor antara 0 dan 1 (apungan). Beginilah setiap Original menukar apungan itu menjadi keputusan.

  • DiceGulingan = floor(float × 10,001) / 100, iaitu nombor dari 0.00 hingga 100.00.Tunjuk kod
    const roll = Math.floor(float * 10001) / 100;// apungan 0.43050002 -> gulingan 43.05
  • LimboKeputusan = 0.99 ÷ float, dipotong kepada 2 perpuluhan, sekurang-kurangnya 1.00×.Tunjuk kod
    const point = (1e8 / (float * 1e8)) * 0.99;const result = Math.max(Math.floor(point * 100), 100) / 100;// apungan 0.43050002 -> 2.29×
  • MinesSatu apungan bagi setiap periuk api. Setiap apungan mengambil satu jubin daripada jubin yang tinggal (Fisher–Yates). Jubin yang diambil ialah periuk api.Tunjuk kod
    const tiles = [0, 1, 2, …, 24]; // 0 = kiri atas, jubin yang diambil keluar daripada senaraiconst mines = floats.slice(0, count).map((f) => tiles.splice(Math.floor(f * tiles.length), 1)[0]);
  • PlinkoSatu apungan bagi setiap baris: apungan di bawah 0.5 ke kiri, jika tidak ke kanan. Slot ialah bilangan ke kanan.Tunjuk kod
    const path = floats.slice(0, rows).map((f) => Math.floor(f * 2)); // 0 = kiri, 1 = kananconst slot = path.reduce((a, b) => a + b, 0);
  • Keno10 apungan pertama mencabut 10 daripada 40 petak. Setiap apungan mengambil satu petak daripada petak yang tinggal (Fisher–Yates).Tunjuk kod
    const squares = [1, 2, 3, …, 40];const drawn = floats.slice(0, 10).map((f) => squares.splice(Math.floor(f * squares.length), 1)[0]);
  • FlipSatu apungan bagi setiap lambungan: 0.5 atau kurang ialah ekor, lebih daripada 0.5 ialah kepala.Tunjuk kod
    const sides = floats.slice(0, 20).map((f) => (f <= 0.5 ? "tails" : "heads"));
  • Dragon TowerSatu apungan bagi setiap telur. Dalam setiap baris, setiap apungan mengambil satu jubin daripada jubin yang tinggal. Tahap kesukaran menetapkan telur dan jubin setiap baris.Tunjuk kod
    // eggs, size: setiap baris, daripada tahap kesukaranconst row = (r) => {  const tiles = [...Array(size).keys()];  return floats.slice(r * eggs, r * eggs + eggs).map((f) => tiles.splice(Math.floor(f * tiles.length), 1)[0]);};
  • Blackjack · Bakarat · Hi-LoKad = floor(float × 52) daripada dek tanpa had. Satu apungan bagi setiap kad, mengikut urutan agihan.Tunjuk kod
    const RANKS = ["2", "3", …, "K", "A"], SUITS = ["♦", "♥", "♠", "♣"];const index = Math.floor(float * 52);const card = RANKS[Math.floor(index / 4)] + SUITS[index % 4];// apungan 0.43050002 -> 7♠
  • Kad GoresApungan pertama memilih jumlah hadiah daripada jadual hadiah. Apungan seterusnya membahagikannya kepada sel yang menang dan meletakkan nombor.Tunjuk kod
    let x = Math.floor(floats[0] * 1e8); // jumlah pemberat ialah 100,000,000const total = PRIZES.find(([, weight]) => (x -= weight) < 0)[0];const split = SPLITS[total][Math.floor(floats[1] * SPLITS[total].length)];// apungan 2-3: nombor menang, 4-15: urutan sel, 16 ke atas: sel
  • RoletPoket = floor(float × 37), iaitu nombor dari 0 hingga 36.Tunjuk kod
    // satu apungan bagi setiap putaranconst POCKETS = [0, 1, 2, …, 36];const pocket = POCKETS[Math.floor(float * 37)];// apungan 0.43050002 -> poket 15
  • WheelSegmen = floor(float × segments). Bayaran datang daripada jadual untuk risiko itu.Tunjuk kod
    const index = Math.floor(float * segments);const multiplier = PAYOUTS[risk][segments][index];// apungan 0.43050002, 10 segmen -> segmen 4
  • ChickenSatu apungan bagi setiap lorong maut. Setiap apungan mengambil satu lorong daripada 20 lorong yang tinggal (Fisher–Yates). Tahap kesukaran menetapkan bilangan lorong maut.Tunjuk kod
    const lanes = [0, 1, 2, …, 19]; // 0 = lorong pertama, lorong yang diambil keluar daripada senaraiconst deaths = floats.slice(0, count).map((f) => lanes.splice(Math.floor(f * lanes.length), 1)[0]);// count = lorong maut bagi tahap kesukaran; jalan ialah 20 − count lorong pertama