rustraight 0.5.2

A simple 2D game library for Rust, inspired by DXLib
// 乱数系 API の動作確認用サンプル。ウィンドウ初期化不要、アセット不要。
//
// 確認対象:
//   rand_range   rand_f32   seed_rng
//
// コンソール出力のみで完結するため `cargo run --example 12_rng` でそのまま確認できる。

use rustraight::prelude::*;

fn main() {
    log_info!("--- rand_range(-5, 5) を10回 ---");
    for _ in 0..10 {
        let v = rand_range(-5, 5);
        assert!((-5..=5).contains(&v), "範囲外の値が出た: {v}");
        log_info!("{v}");
    }

    log_info!("--- rand_f32() を10回 ---");
    for _ in 0..10 {
        let v = rand_f32();
        assert!((0.0..1.0).contains(&v), "範囲外の値が出た: {v}");
        log_info!("{v}");
    }

    log_info!("--- seed_rng(42) で再現性を確認 ---");
    seed_rng(42);
    let first: Vec<i32> = (0..5).map(|_| rand_range(0, 100)).collect();
    seed_rng(42);
    let second: Vec<i32> = (0..5).map(|_| rand_range(0, 100)).collect();
    assert_eq!(first, second, "同一シードから異なる列が生成された");
    log_info!("1回目: {first:?}");
    log_info!("2回目: {second:?}");
    log_info!("再現性OK: 同一シードから同一列が得られた");
}