From 20cc7d80631224837045278634ac8641b0a707bd Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 29 Oct 2022 21:10:29 +0100 Subject: [PATCH] wip corners settlings etc. --- src/bin/every-corner.rs | 9 ++++----- src/bin/settlings.rs | 12 ++++++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/bin/every-corner.rs b/src/bin/every-corner.rs index 875dc06..527b066 100644 --- a/src/bin/every-corner.rs +++ b/src/bin/every-corner.rs @@ -4,15 +4,14 @@ use z3_treefoil::*; fn main() -> io::Result<()> { for shape in read_vertices() { - let has_all_corners = + let has_corners = iter::repeat([0,MAX].into_iter()) .take(DIM) .multi_cartesian_product() - .all(|need| shape.iter().any(|got| &got[..]==need)); - - if !has_all_corners { continue } + .filter(|need| shape.iter().any(|got| &got[..]==need)) + .count(); - if !has_all_corners { continue } + print!("{} ", has_corners); let middle_vertices = iter::repeat([1,2].into_iter()) diff --git a/src/bin/settlings.rs b/src/bin/settlings.rs index 27dca19..ec59964 100644 --- a/src/bin/settlings.rs +++ b/src/bin/settlings.rs @@ -9,8 +9,16 @@ fn main() -> io::Result<()> { let mut fromcnrs = (0..DIM) .map(|i| { - let minc = shape.iter().map(|p| p[i]).min().unwrap(); - dbg!(i, minc); + let minc = shape + .iter() + // point is on the outer edge in direction of index i + .filter(|p| { + p.iter() + .enumerate() + .filter(|(j,_)| *j!=i) + .all(|(_,c)| *c==0) + }) + .map(|p| p[i]).min().unwrap_or(MAX+1); minc }) .collect_vec(); -- 2.30.2