// To fill a 3x3 grid to be a valid Sudoku grid, you must ensure that each row,
// column, and the 3x3 grid contains the numbers 1 through 9 without repetition.
use rand::seq::SliceRandom;
use rand::rng;
fn fill_sudoku_grid(grid: &mut [[u8; 3]; 3]) {
let mut numbers: Vec<u8> = (1..=9).collect();
let mut rng = rng();
numbers.shuffle(&mut rng);
let mut index = 0;
for i in 0..3 {
for j in 0..3 {
grid[i][j] = numbers[index];
index += 1;
}
}
}
fn print_grid(grid: &[[u8; 3]; 3]) {
for row in grid {
for &num in row {
print!("{} ", num);
}
println!();
}
}
fn main() {
let mut grid = [[0u8; 3]; 3];
fill_sudoku_grid(&mut grid);
println!("Generated 3x3 Sudoku Grid:");
print_grid(&grid);
}
/*
run:
Generated 3x3 Sudoku Grid:
6 9 2
5 7 4
8 3 1
*/