From 1f5d1274f112530e66d32a60419028c910571ccc Mon Sep 17 00:00:00 2001 From: Aaron Taylor Date: Mon, 15 Mar 2021 05:50:48 -0700 Subject: [PATCH] Added curated list of rule/seed combinations to WolframAutomata for use when user doesn't select anything specific. --- hacks/WolframAutomata/WolframAutomata.c | 56 ++++++++++++++++++++----- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/hacks/WolframAutomata/WolframAutomata.c b/hacks/WolframAutomata/WolframAutomata.c index 4f882a2..71e51bb 100644 --- a/hacks/WolframAutomata/WolframAutomata.c +++ b/hacks/WolframAutomata/WolframAutomata.c @@ -82,10 +82,9 @@ struct state { // TODO: Decorations enum seed_population { - left_only, - middle_only, - right_only, - random_seed + random_cell, + middle_cell, + edge_cell }; // TODO: Decorations @@ -94,10 +93,46 @@ struct curated_ruleset { enum seed_population seed; }; -// TODO: Check the full set of 256 CAs for visually interesting examples. -// TODO: Add comments explaining why each ruleset is interesting. +// TODO: Decorations static const struct curated_ruleset curated_ruleset_list[] = { - {110, random_seed} + {18, middle_cell}, + {30, middle_cell}, + {45, middle_cell}, + {54, middle_cell}, + {57, middle_cell}, + {73, middle_cell}, + {105, middle_cell}, + {109, middle_cell}, + {129, middle_cell}, + {133, middle_cell}, + {135, middle_cell}, + {150, middle_cell}, + {30, edge_cell}, + {45, edge_cell}, + {57, edge_cell}, + {60, edge_cell}, + {75, edge_cell}, + {107, edge_cell}, + {110, edge_cell}, + {133, edge_cell}, + {137, edge_cell}, + {169, edge_cell}, + {225, edge_cell}, + {22, random_cell}, + {30, random_cell}, + {54, random_cell}, + {62, random_cell}, + {90, random_cell}, + {105, random_cell}, + {108, random_cell}, + {110, random_cell}, + {126, random_cell}, + {146, random_cell}, + {150, random_cell}, + {182, random_cell}, + {184, random_cell}, + {225, random_cell}, + {240, random_cell} }; /* -------------------------------------------------------------------------- */ @@ -239,10 +274,9 @@ WolframAutomata_init(Display * dpy, Window win) /* setting the seed generation, instead drawing that information from */ /* the curated ruleset. */ switch (curated_ruleset->seed) { - case random_seed: generate_random_seed(state); break; - case left_only: state->current_generation[0] = True; break; - case right_only: state->current_generation[state->number_of_cells-1] = True; break; - case middle_only: state->current_generation[state->number_of_cells/2] = True; break; + case random_cell: generate_random_seed(state); break; + case middle_cell: state->current_generation[state->number_of_cells/2] = True; break; + case edge_cell : state->current_generation[0] = True; break; } } else { /* If we're not using a curated ruleset, process any relevant flags */ -- 2.20.1