pub struct Pos {
pub x: i16,
pub y: i16
}
impl Pos {
pub fn new(x: i16, y: i16) -> Self {
Pos{x, y}
}
}
pub struct Mino {
pub rotate: u8,
pub pos: Vec<Pos>
}
impl Mino {
pub fn new(rotate: u8, p: [[i16; 2]; 3]) -> Self {
Mino{rotate, pos: p.iter().map(|p| Pos{x: p[0], y: p[1]}).collect()}
}
pub fn gen_minos() -> Vec<Mino> {
vec![
Mino::new(1, [[0, 0], [0, 0], [0, 0]]), Mino::new(2, [[0, -1], [0, 1], [0, 2]]), Mino::new(4, [[0, -1], [0, 1], [1, 1]]), Mino::new(4, [[0, -1], [0, 1], [-1, 1]]), Mino::new(2, [[0, -1], [1, 0], [1, 1]]), Mino::new(2, [[0, -1], [-1, 0], [-1, 1]]), Mino::new(1, [[0, 1], [1, 0], [1, 1]]), Mino::new(4, [[0, -1], [1, 0], [-1, 0]]) ]
}
}