Update the rand crate to 0.9.x
- `thread_rng` becomes just `rng`. - `gen` is renamed to `random`, `gen_range` to `random_range`. - Avoid using the `rand` feature of the not yet updated crate `lowdim`.
This commit is contained in:
@@ -11,9 +11,9 @@ license = "MIT OR Apache-2.0"
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rand = "0.8.4"
|
|
||||||
chrono = "0.4.6"
|
chrono = "0.4.6"
|
||||||
lowdim = { version = "0.6.0", features = ["random"] }
|
lowdim = { version = "0.6.0" }
|
||||||
primal = "0.3.3"
|
primal = "0.3.3"
|
||||||
|
rand = "0.9.2"
|
||||||
serde = { version = "1.0.215", features = ["derive"] }
|
serde = { version = "1.0.215", features = ["derive"] }
|
||||||
serde_json = "1.0.132"
|
serde_json = "1.0.132"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ use std::iter::repeat;
|
|||||||
use std::thread::sleep;
|
use std::thread::sleep;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use pixelfoo_apps::color::Color;
|
use pixelfoo_apps::color::Color;
|
||||||
@@ -53,7 +53,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
let t_frame = 0.040; // s
|
let t_frame = 0.040; // s
|
||||||
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
|
|
||||||
let colors = vec![
|
let colors = vec![
|
||||||
Color::black(),
|
Color::black(),
|
||||||
@@ -70,24 +70,24 @@ fn main() -> std::io::Result<()> {
|
|||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
for x in 0..(x_size / 8) {
|
for x in 0..(x_size / 8) {
|
||||||
for y in 0..(y_size / 8) {
|
for y in 0..(y_size / 8) {
|
||||||
let fg = colors[rng.gen_range(0..colors.len())]
|
let fg = colors[rng.random_range(0..colors.len())]
|
||||||
.interpolate(Color::black(), 0.8 * rng.gen::<f64>());
|
.interpolate(Color::black(), 0.8 * rng.random::<f64>());
|
||||||
let bg = colors[rng.gen_range(0..colors.len())]
|
let bg = colors[rng.random_range(0..colors.len())]
|
||||||
.interpolate(Color::black(), 0.8 * rng.gen::<f64>());
|
.interpolate(Color::black(), 0.8 * rng.random::<f64>());
|
||||||
let start_index = rng.gen_range(0..buffer.len() / 8) * 8;
|
let start_index = rng.random_range(0..buffer.len() / 8) * 8;
|
||||||
let bitmap = &buffer[start_index..(start_index + 8)];
|
let bitmap = &buffer[start_index..(start_index + 8)];
|
||||||
paint_char(&mut frame, x, y, bitmap, fg, bg);
|
paint_char(&mut frame, x, y, bitmap, fg, bg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loop {
|
loop {
|
||||||
if rng.gen::<f64>() < 0.02 {
|
if rng.random::<f64>() < 0.02 {
|
||||||
let x = rng.gen_range(0..x_size / 8);
|
let x = rng.random_range(0..x_size / 8);
|
||||||
let y = rng.gen_range(0..y_size / 8);
|
let y = rng.random_range(0..y_size / 8);
|
||||||
let fg = colors[rng.gen_range(0..colors.len())]
|
let fg = colors[rng.random_range(0..colors.len())]
|
||||||
.interpolate(Color::black(), 0.8 * rng.gen::<f64>());
|
.interpolate(Color::black(), 0.8 * rng.random::<f64>());
|
||||||
let bg = colors[rng.gen_range(0..colors.len())]
|
let bg = colors[rng.random_range(0..colors.len())]
|
||||||
.interpolate(Color::black(), 0.8 * rng.gen::<f64>());
|
.interpolate(Color::black(), 0.8 * rng.random::<f64>());
|
||||||
let start_index = rng.gen_range(0..buffer.len() / 8) * 8;
|
let start_index = rng.random_range(0..buffer.len() / 8) * 8;
|
||||||
let bitmap = &buffer[start_index..(start_index + 8)];
|
let bitmap = &buffer[start_index..(start_index + 8)];
|
||||||
paint_char(&mut frame, x, y, bitmap, fg, bg);
|
paint_char(&mut frame, x, y, bitmap, fg, bg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use std::iter::repeat_with;
|
|||||||
use std::thread::sleep;
|
use std::thread::sleep;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use pixelfoo_apps::color::Color;
|
use pixelfoo_apps::color::Color;
|
||||||
@@ -28,12 +28,12 @@ impl Palette {
|
|||||||
where
|
where
|
||||||
R: Rng,
|
R: Rng,
|
||||||
{
|
{
|
||||||
let r = rng.gen::<f64>();
|
let r = rng.random::<f64>();
|
||||||
let mut p_sum = 0.0;
|
let mut p_sum = 0.0;
|
||||||
for &(p, c0, c1) in &self.0 {
|
for &(p, c0, c1) in &self.0 {
|
||||||
p_sum += p;
|
p_sum += p;
|
||||||
if r < p_sum {
|
if r < p_sum {
|
||||||
return c0.interpolate(c1, rng.gen::<f64>().powf(2.0));
|
return c0.interpolate(c1, rng.random::<f64>().powf(2.0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Color::black()
|
Color::black()
|
||||||
@@ -58,7 +58,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
let t_frame = 0.040; // s
|
let t_frame = 0.040; // s
|
||||||
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
|
|
||||||
let palette_29 = Palette(vec![
|
let palette_29 = Palette(vec![
|
||||||
(0.04, Color::new(86, 197, 208), Color::new(86, 197, 208)),
|
(0.04, Color::new(86, 197, 208), Color::new(86, 197, 208)),
|
||||||
@@ -164,8 +164,8 @@ fn main() -> std::io::Result<()> {
|
|||||||
.take(y_size)
|
.take(y_size)
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
loop {
|
loop {
|
||||||
let x = rng.gen_range(0..x_size);
|
let x = rng.random_range(0..x_size);
|
||||||
let y = rng.gen_range(0..y_size);
|
let y = rng.random_range(0..y_size);
|
||||||
let c = palette.pick(&mut rng);
|
let c = palette.pick(&mut rng);
|
||||||
frame[y][x] = c;
|
frame[y][x] = c;
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use std::io::Write;
|
|||||||
use std::thread::sleep;
|
use std::thread::sleep;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use lowdim::bb2d;
|
use lowdim::bb2d;
|
||||||
@@ -137,7 +137,7 @@ const E12: &[[Ring; 2]; 12] = &[
|
|||||||
];
|
];
|
||||||
|
|
||||||
fn random_element<'a, T, R: Rng>(elements: &'a [T], rng: &mut R) -> &'a T {
|
fn random_element<'a, T, R: Rng>(elements: &'a [T], rng: &mut R) -> &'a T {
|
||||||
let i = rng.gen_range(0..elements.len());
|
let i = rng.random_range(0..elements.len());
|
||||||
&elements[i]
|
&elements[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,7 +154,7 @@ fn main() -> Result<()> {
|
|||||||
};
|
};
|
||||||
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
|
|
||||||
let frame_size = x_size * y_size * COLORS;
|
let frame_size = x_size * y_size * COLORS;
|
||||||
|
|
||||||
@@ -226,11 +226,11 @@ fn main() -> Result<()> {
|
|||||||
loop {
|
loop {
|
||||||
if t == 0 {
|
if t == 0 {
|
||||||
// Pick a new resistor.
|
// Pick a new resistor.
|
||||||
if rng.gen::<f64>() < p_pruefungsfragen {
|
if rng.random::<f64>() < p_pruefungsfragen {
|
||||||
r = random_element(&pruefungsfragen, &mut rng).clone();
|
r = random_element(&pruefungsfragen, &mut rng).clone();
|
||||||
body_color = carbon_body_color;
|
body_color = carbon_body_color;
|
||||||
} else {
|
} else {
|
||||||
let is_five_ring = rng.gen::<f64>() < 0.5;
|
let is_five_ring = rng.random::<f64>() < 0.5;
|
||||||
|
|
||||||
body_color = if is_five_ring {
|
body_color = if is_five_ring {
|
||||||
// A turquise blue metal film resistor.
|
// A turquise blue metal film resistor.
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ use std::time::Duration;
|
|||||||
use chrono::Local;
|
use chrono::Local;
|
||||||
use chrono::Timelike;
|
use chrono::Timelike;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use lowdim::bb2d;
|
use lowdim::bb2d;
|
||||||
@@ -235,7 +235,7 @@ where
|
|||||||
open.push(Move {
|
open.push(Move {
|
||||||
from,
|
from,
|
||||||
dir,
|
dir,
|
||||||
prio: prio * 100 + rng.gen_range(0..1000),
|
prio: prio * 100 + rng.random_range(0..1000),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -255,7 +255,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
};
|
};
|
||||||
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
|
|
||||||
let t_frame = 0.040; // s
|
let t_frame = 0.040; // s
|
||||||
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use std::io::Write;
|
|||||||
use std::thread::sleep;
|
use std::thread::sleep;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use lowdim::bb2d;
|
use lowdim::bb2d;
|
||||||
@@ -75,7 +75,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
};
|
};
|
||||||
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
let bbox = bb2d(0..x_size as i64, 0..y_size as i64);
|
let bbox = bb2d(0..x_size as i64, 0..y_size as i64);
|
||||||
|
|
||||||
let p_alive_init = 0.125;
|
let p_alive_init = 0.125;
|
||||||
@@ -83,7 +83,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
|
|
||||||
let mut board = Board::with(bbox, |_p| {
|
let mut board = Board::with(bbox, |_p| {
|
||||||
// Initialize board randomly.
|
// Initialize board randomly.
|
||||||
let r = rng.gen::<f64>();
|
let r = rng.random::<f64>();
|
||||||
if r < p_alive_init {
|
if r < p_alive_init {
|
||||||
Square::Alive
|
Square::Alive
|
||||||
} else {
|
} else {
|
||||||
@@ -110,7 +110,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
} else {
|
} else {
|
||||||
if p.y() < bbox.y_min() || p.y() > bbox.y_max() {
|
if p.y() < bbox.y_min() || p.y() > bbox.y_max() {
|
||||||
// The invisible long edge is filled randomly.
|
// The invisible long edge is filled randomly.
|
||||||
let r = rng.gen::<f64>();
|
let r = rng.random::<f64>();
|
||||||
if r < p_alive_edge {
|
if r < p_alive_edge {
|
||||||
Square::Alive
|
Square::Alive
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ use std::iter::repeat;
|
|||||||
use std::thread::sleep;
|
use std::thread::sleep;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use pixelfoo_apps::color::Color;
|
use pixelfoo_apps::color::Color;
|
||||||
@@ -35,7 +35,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
};
|
};
|
||||||
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
|
|
||||||
let t_frame = 0.040; // s
|
let t_frame = 0.040; // s
|
||||||
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
||||||
@@ -65,7 +65,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
let b = 27.0;
|
let b = 27.0;
|
||||||
let c = 8.0 / 3.0;
|
let c = 8.0 / 3.0;
|
||||||
|
|
||||||
let mut x = rng.gen::<f64>() - 0.5;
|
let mut x = rng.random::<f64>() - 0.5;
|
||||||
let mut y = 0.0;
|
let mut y = 0.0;
|
||||||
let mut z = zc;
|
let mut z = zc;
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ use std::thread::sleep;
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use lowdim::bb2d;
|
use lowdim::bb2d;
|
||||||
@@ -75,11 +75,11 @@ impl RunningState {
|
|||||||
self.t += 1;
|
self.t += 1;
|
||||||
let y = usize::try_from(self.head_y()).unwrap();
|
let y = usize::try_from(self.head_y()).unwrap();
|
||||||
if y >= self.brightnesses.len() {
|
if y >= self.brightnesses.len() {
|
||||||
self.brightnesses.push(0.5 + 0.5 * rng.gen::<f64>());
|
self.brightnesses.push(0.5 + 0.5 * rng.random::<f64>());
|
||||||
}
|
}
|
||||||
if rng.gen::<f64>() < 0.2 {
|
if rng.random::<f64>() < 0.2 {
|
||||||
let y = rng.gen_range(0..self.brightnesses.len());
|
let y = rng.random_range(0..self.brightnesses.len());
|
||||||
self.brightnesses[y] = 0.5 + 0.5 * rng.gen::<f64>();
|
self.brightnesses[y] = 0.5 + 0.5 * rng.random::<f64>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn head_y(&self) -> i64 {
|
fn head_y(&self) -> i64 {
|
||||||
@@ -198,7 +198,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
|||||||
};
|
};
|
||||||
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
let bbox = bb2d(0..x_size as i64, 0..y_size as i64);
|
let bbox = bb2d(0..x_size as i64, 0..y_size as i64);
|
||||||
|
|
||||||
let frame_duration = Duration::from_millis(50);
|
let frame_duration = Duration::from_millis(50);
|
||||||
@@ -226,16 +226,16 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
|||||||
// Update the animation
|
// Update the animation
|
||||||
for animation in &mut animations {
|
for animation in &mut animations {
|
||||||
if animation.is_idle() {
|
if animation.is_idle() {
|
||||||
if rng.gen::<f64>() < p_new_animation {
|
if rng.random::<f64>() < p_new_animation {
|
||||||
let frames_per_step = {
|
let frames_per_step = {
|
||||||
if rng.gen::<f64>() < p_slow_animation {
|
if rng.random::<f64>() < p_slow_animation {
|
||||||
frames_per_step_slow
|
frames_per_step_slow
|
||||||
} else {
|
} else {
|
||||||
frames_per_step_normal
|
frames_per_step_normal
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if frame_count % frames_per_step == 0 {
|
if frame_count % frames_per_step == 0 {
|
||||||
let size = rng.gen_range(15..=30);
|
let size = rng.random_range(15..=30);
|
||||||
animation.start(frames_per_step, size, 15, i64::try_from(y_size)?);
|
animation.start(frames_per_step, size, 15, i64::try_from(y_size)?);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ use std::time::Duration;
|
|||||||
use chrono::Local;
|
use chrono::Local;
|
||||||
use chrono::Timelike;
|
use chrono::Timelike;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use lowdim::bb2d;
|
use lowdim::bb2d;
|
||||||
@@ -234,7 +234,7 @@ where
|
|||||||
open.push(Move {
|
open.push(Move {
|
||||||
from,
|
from,
|
||||||
dir,
|
dir,
|
||||||
prio: prio * 100 + rng.gen_range(0..1000),
|
prio: prio * 100 + rng.random_range(0..1000),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,7 +254,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
};
|
};
|
||||||
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
|
|
||||||
let t_frame = 0.040; // s
|
let t_frame = 0.040; // s
|
||||||
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
let delay = Duration::new(0, (1_000_000_000.0 * t_frame) as u32);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ use std::io::Write;
|
|||||||
use std::thread::sleep;
|
use std::thread::sleep;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use rand::thread_rng;
|
use rand::rng;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use lowdim::bb2d;
|
use lowdim::bb2d;
|
||||||
@@ -83,14 +83,14 @@ fn main() -> std::io::Result<()> {
|
|||||||
};
|
};
|
||||||
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
eprintln!("screen size {}x{}, arg {}", x_size, y_size, arg);
|
||||||
|
|
||||||
let mut rng = thread_rng();
|
let mut rng = rng();
|
||||||
let bbox = bb2d(0..x_size, 0..y_size);
|
let bbox = bb2d(0..x_size, 0..y_size);
|
||||||
|
|
||||||
let p_empty = 0.25;
|
let p_empty = 0.25;
|
||||||
let p_grass = 0.25;
|
let p_grass = 0.25;
|
||||||
let p_rabbit = 0.25;
|
let p_rabbit = 0.25;
|
||||||
let mut board = Board::new(bbox, || {
|
let mut board = Board::new(bbox, || {
|
||||||
let p = rng.gen::<f64>();
|
let p = rng.random::<f64>();
|
||||||
if p < p_empty {
|
if p < p_empty {
|
||||||
Square::Empty
|
Square::Empty
|
||||||
} else if p < p_empty + p_grass {
|
} else if p < p_empty + p_grass {
|
||||||
@@ -114,7 +114,9 @@ fn main() -> std::io::Result<()> {
|
|||||||
|
|
||||||
loop {
|
loop {
|
||||||
for _ in 0..arg {
|
for _ in 0..arg {
|
||||||
let pos = bbox.random_point(&mut rng);
|
let x = rng.random_range(bbox.x_range());
|
||||||
|
let y = rng.random_range(bbox.y_range());
|
||||||
|
let pos = p2d(x, y);
|
||||||
let sq = board.get(pos);
|
let sq = board.get(pos);
|
||||||
let dx = (pos.x() as f64 - x_mid as f64) / r as f64;
|
let dx = (pos.x() as f64 - x_mid as f64) / r as f64;
|
||||||
let dy = (pos.y() as f64 - y_mid as f64) / r as f64;
|
let dy = (pos.y() as f64 - y_mid as f64) / r as f64;
|
||||||
@@ -125,7 +127,7 @@ fn main() -> std::io::Result<()> {
|
|||||||
Square::Rabbit => p0,
|
Square::Rabbit => p0,
|
||||||
Square::Fox => 0.8 * p0,
|
Square::Fox => 0.8 * p0,
|
||||||
};
|
};
|
||||||
let new_sq = if rng.gen::<f64>() < p_survive {
|
let new_sq = if rng.random::<f64>() < p_survive {
|
||||||
sq
|
sq
|
||||||
} else {
|
} else {
|
||||||
Square::Empty
|
Square::Empty
|
||||||
|
|||||||
Reference in New Issue
Block a user