Skip to content

huyhoang2001/carorandom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Tóm tắt nhanh: Dự án đang dùng 4 nguồn/loại random khác nhau.

  1. Ba PRNG tự cài (có seed)
  • xorshift32(seed): PRNG 32-bit rất nhanh, chu kỳ ~2^32−1. Trả về số trong [0,1).
  • mulberry32(seed): PRNG 32-bit đơn giản, phân phối khá ổn cho tác vụ game.
  • splitmix32(seed): Biến thể 32-bit, trộn tốt, dùng cộng hằng và mix bit.
  • Cách seed: lấy seed từ Date.now() rồi XOR với các hằng (0xABC123, 0x123456).
  • Mục đích: quyết định quân X hay O khi người chơi mở ô (sym = gen() < 0.5 ? "X" : "O").
  1. Math.random (không seed, built-in)
  • Dùng để: Chọn ngẫu nhiên 1 trong 3 PRNG ở mỗi lượt (rngs[Math.floor(Math.random()*rngs.length)]). Tạo hiệu ứng pháo hoa: vị trí nổ, vận tốc, góc bay, màu (hue), thời lượng sống, độ nhấp nháy, kích thước hạt, v.v. Các tiện ích rand(min,max) trong phần pháo hoa.

Lưu ý quan trọng

  • Tất cả đều không phải CSPRNG (không dùng cho bảo mật).
  • Vì còn dùng Math.random để chọn PRNG và cho hiệu ứng, kết quả không tái lập 100% theo seed. Nếu bạn muốn “phát lại” ván cờ y hệt, nên dùng duy nhất một PRNG có seed cho toàn bộ logic (kể cả chọn RNG) và log lại seed + chuỗi thao tác.

Releases

No releases published

Packages

No packages published

Languages