site-og.rs

906 B · rust · 30 lines

1use mrlycore::errors::Result;2use mrlyfig::{grid, ink, save, Board, Frame, Grid};34const CELL: f64 = 18.0;5const ACROSS: usize = 10;6const DOWN: usize = 5;78fn main() -> Result<()> {9    let mut board = Board::og();10    let seed = grid::mask(&grid::LOGO, 1);11    let cols = 6 * ACROSS - 1;12    let rows = 6 * DOWN - 1;13    let mut mask = vec![vec![false; cols]; rows];14    for (row, line) in mask.iter_mut().enumerate() {15        for (col, on) in line.iter_mut().enumerate() {16            *on = row % 6 < 5 && col % 6 < 5 && seed[row % 6][col % 6];17        }18    }19    let w = CELL * cols as f64;20    let h = CELL * rows as f64;21    let frame = Frame::new(22        ((board.width as f64 - w) / 2.0).round(),23        ((board.height as f64 - h) / 2.0).round(),24        w,25        h,26    );27    Grid::new(frame, cols, rows, 0.0).carpet(&mut board, &mask, ink::fg());28    save("site-og", &board)?;29    Ok(())30}