wiki-pascals-triangle.rs
752 B · rust · 27 lines
1use mrlycore::errors::Result;2use mrlyfig::{ink, save, Board};34const ROWS: usize = 64;56fn main() -> Result<()> {7 let mut board = Board::square();8 let frame = board.frame(0.06);9 let step = frame.w / ROWS as f64;10 let (cx, _) = frame.center();11 let mut odd = 0usize;12 for n in 0..ROWS {13 let y = frame.y + (n as f64 + 0.5) * step;14 for k in 0..=n {15 let x = cx + (k as f64 - n as f64 / 2.0) * step;16 if n & k == k {17 board.disc(x, y, step * 0.42, ink::blue());18 odd += 1;19 } else {20 board.disc(x, y, step * 0.11, ink::dim());21 }22 }23 }24 assert_eq!(odd, 729);25 save("wiki-pascals-triangle", &board)?;26 Ok(())27}