diff --git a/expansion.cpp b/expansion.cpp index 6270a281..987a5df2 100644 --- a/expansion.cpp +++ b/expansion.cpp @@ -387,6 +387,7 @@ int type_in_quick(expansion_analyzer& ea, cell *c, const cellfunction& f) { } bool sizes_known() { + if(DIM == 3) return false; if(bounded) return false; // Castle Anthrax is infinite if(binarytiling) return false; diff --git a/yendor.cpp b/yendor.cpp index 398c268c..7759fb8b 100644 --- a/yendor.cpp +++ b/yendor.cpp @@ -266,6 +266,20 @@ namespace yendor { } } + else if(DIM == 3) { + int d = celldistance(nyi.path[0], ycw.at); + vector next; + forCellCM(c, ycw.at) if(celldistance(nyi.path[0], c) > d) next.push_back(c); + if(!isize(next)) { + printf("error: no more cells"); + ycw.at = ycw.at->move(hrand(ycw.at->type)); + } + else { + ycw.at = next[hrand(isize(next))]; + } + nyi.path[i+1] = ycw.at; + } + else { // stupid ycw += rev;