chiark / gitweb /
wip corners settlings etc.
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 29 Oct 2022 20:10:29 +0000 (21:10 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 29 Oct 2022 20:10:29 +0000 (21:10 +0100)
src/bin/every-corner.rs
src/bin/settlings.rs

index 875dc0671857e997eb2196d8877f894724aa4801..527b06669d8b67f257b1b35f8ba5997bc12204c5 100644 (file)
@@ -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())
index 27dca194b50e39d1d8b68f481840cd3df16e46b1..ec59964eded17c334268f81c25d3da32f2eeb1cc 100644 (file)
@@ -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();