[R]Investigator rule generator

For scripts to aid with computation or simulation in cellular automata.
Post Reply
User avatar
PHPBB12345
Posts: 1096
Joined: August 5th, 2015, 11:55 pm
Contact:

[R]Investigator rule generator

Post by PHPBB12345 » April 20th, 2023, 1:36 am

Original Python script:

Code: Select all

Btransitions = {
  "0": "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",

  "1c": "0, b1,E2,b3,b4,b5,b6,b7,b8, 1",
  "1e": "0, E1,b2,b3,b4,b5,b6,b7,b8, 1",
  
  "2c": "0, b1,E2,b3,E4,b5,b6,b7,b8, 1",
  "2e": "0, E1,b2,E3,b4,b5,b6,b7,b8, 1",
  "2k": "0, E1,b2,b3,E4,b5,b6,b7,b8, 1",
  "2a": "0, E1,E2,b3,b4,b5,b6,b7,b8, 1",
  "2i": "0, E1,b2,b3,b4,E5,b6,b7,b8, 1",
  "2n": "0, b1,E2,b3,b4,b5,E6,b7,b8, 1",

  "3c": "0, b1,E2,b3,E4,b5,E6,b7,b8, 1",
  "3e": "0, E1,b2,E3,b4,E5,b6,b7,b8, 1",
  "3k": "0, E1,b2,E3,b4,b5,E6,b7,b8, 1",
  "3a": "0, E1,E2,E3,b4,b5,b6,b7,b8, 1",
  "3i": "0, E1,E2,b3,b4,b5,b6,b7,E8, 1",
  "3n": "0, E1,E2,b3,E4,b5,b6,b7,b8, 1",
  "3y": "0, E1,b2,b3,E4,b5,E6,b7,b8, 1",
  "3q": "0, E1,E2,b3,b4,b5,E6,b7,b8, 1",
  "3j": "0, E1,b2,E3,E4,b5,b6,b7,b8, 1",
  "3r": "0, E1,E2,b3,b4,E5,b6,b7,b8, 1",

  "4c": "0, b1,E2,b3,E4,b5,E6,b7,E8, 1",
  "4e": "0, E1,b2,E3,b4,E5,b6,E7,b8, 1",
  "4k": "0, E1,b2,E3,E4,b5,E6,b7,b8, 1",
  "4a": "0, E1,E2,E3,E4,b5,b6,b7,b8, 1",
  "4i": "0, E1,E2,b3,E4,E5,b6,b7,b8, 1",
  "4n": "0, E1,E2,b3,E4,b5,b6,b7,E8, 1",
  "4y": "0, E1,E2,b3,E4,b5,E6,b7,b8, 1",
  "4q": "0, E1,E2,E3,b4,b5,E6,b7,b8, 1",
  "4j": "0, E1,b2,E3,b4,E5,E6,b7,b8, 1",
  "4r": "0, E1,b2,E3,E4,E5,b6,b7,b8, 1",
  "4t": "0, E1,E2,b3,b4,E5,b6,b7,E8, 1",
  "4w": "0, E1,b2,E3,E4,b5,b6,b7,E8, 1",
  "4z": "0, E1,E2,b3,b4,E5,E6,b7,b8, 1",

  "5c": "0, E1,b2,E3,b4,E5,b6,E7,E8, 1",
  "5e": "0, b1,E2,b3,E4,b5,E6,E7,E8, 1",
  "5k": "0, b1,E2,b3,E4,E5,b6,E7,E8, 1",
  "5a": "0, b1,b2,b3,E4,E5,E6,E7,E8, 1",
  "5i": "0, b1,b2,E3,E4,E5,E6,E7,b8, 1",
  "5n": "0, b1,b2,E3,b4,E5,E6,E7,E8, 1",
  "5y": "0, b1,E2,E3,b4,E5,b6,E7,E8, 1",
  "5q": "0, b1,b2,E3,E4,E5,b6,E7,E8, 1",
  "5j": "0, b1,E2,b3,b4,E5,E6,E7,E8, 1",
  "5r": "0, b1,b2,E3,E4,b5,E6,E7,E8, 1",

  "6c": "0, E1,b2,E3,b4,E5,E6,E7,E8, 1",
  "6e": "0, b1,E2,b3,E4,E5,E6,E7,E8, 1",
  "6k": "0, b1,E2,E3,b4,E5,E6,E7,E8, 1",
  "6a": "0, b1,b2,E3,E4,E5,E6,E7,E8, 1",
  "6i": "0, b1,E2,E3,E4,b5,E6,E7,E8, 1",
  "6n": "0, E1,b2,E3,E4,E5,b6,E7,E8, 1",

  "7c": "0, E1,b2,E3,E4,E5,E6,E7,E8, 1",
  "7e": "0, b1,E2,E3,E4,E5,E6,E7,E8, 1",

  "8": "0, E1,E2,E3,E4,E5,E6,E7,E8, 1",
}

Ctransitions = {
  "0": "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",

  "1c": "0, b1,1,b3,b4,b5,b6,b7,b8, 1",
  "1e": "0, 1,b2,b3,b4,b5,b6,b7,b8, 1",
  
  "2c": "0, b1,1,b3,A4,b5,b6,b7,b8, 1\n0, b1,A2,b3,1,b5,b6,b7,b8, 1",
  "2e": "0, 1,b2,A3,b4,b5,b6,b7,b8, 1\n0, A1,b2,1,b4,b5,b6,b7,b8, 1",
  "2k": "0, 1,b2,b3,A4,b5,b6,b7,b8, 1\n0, A1,b2,b3,1,b5,b6,b7,b8, 1",
  "2a": "0, 1,A2,b3,b4,b5,b6,b7,b8, 1\n0, A1,1,b3,b4,b5,b6,b7,b8, 1",
  "2i": "0, 1,b2,b3,b4,A5,b6,b7,b8, 1\n0, A1,b2,b3,b4,1,b6,b7,b8, 1",
  "2n": "0, b1,1,b3,b4,b5,A6,b7,b8, 1\n0, b1,A2,b3,b4,b5,1,b7,b8, 1",

  "3c": "0, b1,1,b3,A4,b5,A6,b7,b8, 1\n0, b1,A2,b3,1,b5,A6,b7,b8, 1\n0, b1,A2,b3,A4,b5,1,b7,b8, 1",
  "3e": "0, 1,b2,A3,b4,A5,b6,b7,b8, 1\n0, A1,b2,1,b4,A5,b6,b7,b8, 1\n0, A1,b2,A3,b4,1,b6,b7,b8, 1",
  "3k": "0, 1,b2,A3,b4,b5,A6,b7,b8, 1\n0, A1,b2,1,b4,b5,A6,b7,b8, 1\n0, A1,b2,A3,b4,b5,1,b7,b8, 1",
  "3a": "0, 1,A2,A3,b4,b5,b6,b7,b8, 1\n0, A1,1,A3,b4,b5,b6,b7,b8, 1\n0, A1,A2,1,b4,b5,b6,b7,b8, 1",
  "3i": "0, 1,A2,b3,b4,b5,b6,b7,A8, 1\n0, A1,1,b3,b4,b5,b6,b7,A8, 1\n0, A1,A2,b3,b4,b5,b6,b7,1, 1",
  "3n": "0, 1,A2,b3,A4,b5,b6,b7,b8, 1\n0, A1,1,b3,A4,b5,b6,b7,b8, 1\n0, A1,A2,b3,1,b5,b6,b7,b8, 1",
  "3y": "0, 1,b2,b3,A4,b5,A6,b7,b8, 1\n0, A1,b2,b3,1,b5,A6,b7,b8, 1\n0, A1,b2,b3,A4,b5,1,b7,b8, 1",
  "3q": "0, 1,A2,b3,b4,b5,A6,b7,b8, 1\n0, A1,1,b3,b4,b5,A6,b7,b8, 1\n0, A1,A2,b3,b4,b5,1,b7,b8, 1",
  "3j": "0, 1,b2,A3,A4,b5,b6,b7,b8, 1\n0, A1,b2,1,A4,b5,b6,b7,b8, 1\n0, A1,b2,A3,1,b5,b6,b7,b8, 1",
  "3r": "0, 1,A2,b3,b4,A5,b6,b7,b8, 1\n0, A1,1,b3,b4,A5,b6,b7,b8, 1\n0, A1,A2,b3,b4,1,b6,b7,b8, 1",

  "4c": "0, b1,1,b3,A4,b5,A6,b7,A8, 1\n0, b1,A2,b3,1,b5,A6,b7,A8, 1\n0, b1,A2,b3,A4,b5,1,b7,A8, 1\n0, b1,A2,b3,A4,b5,A6,b7,1, 1",
  "4e": "0, 1,b2,A3,b4,A5,b6,A7,b8, 1\n0, A1,b2,1,b4,A5,b6,A7,b8, 1\n0, A1,b2,A3,b4,1,b6,A7,b8, 1\n0, A1,b2,A3,b4,A5,b6,1,b8, 1",
  "4k": "0, 1,b2,A3,A4,b5,A6,b7,b8, 1\n0, A1,b2,1,A4,b5,A6,b7,b8, 1\n0, A1,b2,A3,1,b5,A6,b7,b8, 1\n0, A1,b2,A3,A4,b5,1,b7,b8, 1",
  "4a": "0, 1,A2,A3,A4,b5,b6,b7,b8, 1\n0, A1,1,A3,A4,b5,b6,b7,b8, 1\n0, A1,A2,1,A4,b5,b6,b7,b8, 1\n0, A1,A2,A3,1,b5,b6,b7,b8, 1",
  "4i": "0, 1,A2,b3,A4,A5,b6,b7,b8, 1\n0, A1,1,b3,A4,A5,b6,b7,b8, 1\n0, A1,A2,b3,1,A5,b6,b7,b8, 1\n0, A1,A2,b3,A4,1,b6,b7,b8, 1",
  "4n": "0, 1,A2,b3,A4,b5,b6,b7,A8, 1\n0, A1,1,b3,A4,b5,b6,b7,A8, 1\n0, A1,A2,b3,1,b5,b6,b7,A8, 1\n0, A1,A2,b3,A4,b5,b6,b7,1, 1",
  "4y": "0, 1,A2,b3,A4,b5,A6,b7,b8, 1\n0, A1,1,b3,A4,b5,A6,b7,b8, 1\n0, A1,A2,b3,1,b5,A6,b7,b8, 1\n0, A1,A2,b3,A4,b5,1,b7,b8, 1",
  "4q": "0, 1,A2,A3,b4,b5,A6,b7,b8, 1\n0, A1,1,A3,b4,b5,A6,b7,b8, 1\n0, A1,A2,1,b4,b5,A6,b7,b8, 1\n0, A1,A2,A3,b4,b5,1,b7,b8, 1",
  "4j": "0, 1,b2,A3,b4,A5,A6,b7,b8, 1\n0, A1,b2,1,b4,A5,A6,b7,b8, 1\n0, A1,b2,A3,b4,1,A6,b7,b8, 1\n0, A1,b2,A3,b4,A5,1,b7,b8, 1",
  "4r": "0, 1,b2,A3,A4,A5,b6,b7,b8, 1\n0, A1,b2,1,A4,A5,b6,b7,b8, 1\n0, A1,b2,A3,1,A5,b6,b7,b8, 1\n0, A1,b2,A3,A4,1,b6,b7,b8, 1",
  "4t": "0, 1,A2,b3,b4,A5,b6,b7,A8, 1\n0, A1,1,b3,b4,A5,b6,b7,A8, 1\n0, A1,A2,b3,b4,1,b6,b7,A8, 1\n0, A1,A2,b3,b4,A5,b6,b7,1, 1",
  "4w": "0, 1,b2,A3,A4,b5,b6,b7,A8, 1\n0, A1,b2,1,A4,b5,b6,b7,A8, 1\n0, A1,b2,A3,1,b5,b6,b7,A8, 1\n0, A1,b2,A3,A4,b5,b6,b7,1, 1",
  "4z": "0, 1,A2,b3,b4,A5,A6,b7,b8, 1\n0, A1,1,b3,b4,A5,A6,b7,b8, 1\n0, A1,A2,b3,b4,1,A6,b7,b8, 1\n0, A1,A2,b3,b4,A5,1,b7,b8, 1",

  "5c": "0, 1,b2,A3,b4,A5,b6,A7,A8, 1\n0, A1,b2,1,b4,A5,b6,A7,A8, 1\n0, A1,b2,A3,b4,1,b6,A7,A8, 1\n0, A1,b2,A3,b4,A5,b6,1,A8, 1\n0, A1,b2,A3,b4,A5,b6,A7,1, 1",
  "5e": "0, b1,1,b3,A4,b5,A6,A7,A8, 1\n0, b1,A2,b3,1,b5,A6,A7,A8, 1\n0, b1,A2,b3,A4,b5,1,A7,A8, 1\n0, b1,A2,b3,A4,b5,A6,1,A8, 1\n0, b1,A2,b3,A4,b5,A6,A7,1, 1",
  "5k": "0, b1,1,b3,A4,A5,b6,A7,A8, 1\n0, b1,A2,b3,1,A5,b6,A7,A8, 1\n0, b1,A2,b3,A4,1,b6,A7,A8, 1\n0, b1,A2,b3,A4,A5,b6,1,A8, 1\n0, b1,A2,b3,A4,A5,b6,A7,1, 1",
  "5a": "0, b1,b2,b3,1,A5,A6,A7,A8, 1\n0, b1,b2,b3,A4,1,A6,A7,A8, 1\n0, b1,b2,b3,A4,A5,1,A7,A8, 1\n0, b1,b2,b3,A4,A5,A6,1,A8, 1\n0, b1,b2,b3,A4,A5,A6,A7,1, 1",
  "5i": "0, b1,b2,1,A4,A5,A6,A7,b8, 1\n0, b1,b2,A3,1,A5,A6,A7,b8, 1\n0, b1,b2,A3,A4,1,A6,A7,b8, 1\n0, b1,b2,A3,A4,A5,1,A7,b8, 1\n0, b1,b2,A3,A4,A5,A6,1,b8, 1",
  "5n": "0, b1,b2,1,b4,A5,A6,A7,A8, 1\n0, b1,b2,A3,b4,1,A6,A7,A8, 1\n0, b1,b2,A3,b4,A5,1,A7,A8, 1\n0, b1,b2,A3,b4,A5,A6,1,A8, 1\n0, b1,b2,A3,b4,A5,A6,A7,1, 1",
  "5y": "0, b1,1,A3,b4,A5,b6,A7,A8, 1\n0, b1,A2,1,b4,A5,b6,A7,A8, 1\n0, b1,A2,A3,b4,1,b6,A7,A8, 1\n0, b1,A2,A3,b4,A5,b6,1,A8, 1\n0, b1,A2,A3,b4,A5,b6,A7,1, 1",
  "5q": "0, b1,b2,1,A4,A5,b6,A7,A8, 1\n0, b1,b2,A3,1,A5,b6,A7,A8, 1\n0, b1,b2,A3,A4,1,b6,A7,A8, 1\n0, b1,b2,A3,A4,A5,b6,1,A8, 1\n0, b1,b2,A3,A4,A5,b6,A7,1, 1",
  "5j": "0, b1,1,b3,b4,A5,A6,A7,A8, 1\n0, b1,A2,b3,b4,1,A6,A7,A8, 1\n0, b1,A2,b3,b4,A5,1,A7,A8, 1\n0, b1,A2,b3,b4,A5,A6,1,A8, 1\n0, b1,A2,b3,b4,A5,A6,A7,1, 1",
  "5r": "0, b1,b2,1,A4,b5,A6,A7,A8, 1\n0, b1,b2,A3,1,b5,A6,A7,A8, 1\n0, b1,b2,A3,A4,b5,1,A7,A8, 1\n0, b1,b2,A3,A4,b5,A6,1,A8, 1\n0, b1,b2,A3,A4,b5,A6,A7,1, 1",

  "6c": "0, 1,b2,A3,b4,A5,A6,A7,A8, 1\n0, A1,b2,1,b4,A5,A6,A7,A8, 1\n0, A1,b2,A3,b4,1,A6,A7,A8, 1\n0, A1,b2,A3,b4,A5,1,A7,A8, 1\n0, A1,b2,A3,b4,A5,A6,1,A8, 1\n0, A1,b2,A3,b4,A5,A6,A7,1, 1",
  "6e": "0, b1,1,b3,A4,A5,A6,A7,A8, 1\n0, b1,A2,b3,1,A5,A6,A7,A8, 1\n0, b1,A2,b3,A4,1,A6,A7,A8, 1\n0, b1,A2,b3,A4,A5,1,A7,A8, 1\n0, b1,A2,b3,A4,A5,A6,1,A8, 1\n0, b1,A2,b3,A4,A5,A6,A7,1, 1",
  "6k": "0, b1,1,A3,b4,A5,A6,A7,A8, 1\n0, b1,A2,1,b4,A5,A6,A7,A8, 1\n0, b1,A2,A3,b4,1,A6,A7,A8, 1\n0, b1,A2,A3,b4,A5,1,A7,A8, 1\n0, b1,A2,A3,b4,A5,A6,1,A8, 1\n0, b1,A2,A3,b4,A5,A6,A7,1, 1",
  "6a": "0, b1,b2,1,A4,A5,A6,A7,A8, 1\n0, b1,b2,A3,1,A5,A6,A7,A8, 1\n0, b1,b2,A3,A4,1,A6,A7,A8, 1\n0, b1,b2,A3,A4,A5,1,A7,A8, 1\n0, b1,b2,A3,A4,A5,A6,1,A8, 1\n0, b1,b2,A3,A4,A5,A6,A7,1, 1",
  "6i": "0, b1,1,A3,A4,b5,A6,A7,A8, 1\n0, b1,A2,1,A4,b5,A6,A7,A8, 1\n0, b1,A2,A3,1,b5,A6,A7,A8, 1\n0, b1,A2,A3,A4,b5,1,A7,A8, 1\n0, b1,A2,A3,A4,b5,A6,1,A8, 1\n0, b1,A2,A3,A4,b5,A6,A7,1, 1",
  "6n": "0, 1,b2,A3,A4,A5,b6,A7,A8, 1\n0, A1,b2,1,A4,A5,b6,A7,A8, 1\n0, A1,b2,A3,1,A5,b6,A7,A8, 1\n0, A1,b2,A3,A4,1,b6,A7,A8, 1\n0, A1,b2,A3,A4,A5,b6,1,A8, 1\n0, A1,b2,A3,A4,A5,b6,A7,1, 1",

  "7c": "0, 1,b2,A3,A4,A5,A6,A7,A8, 1\n0, A1,b2,1,A4,A5,A6,A7,A8, 1\n0, A1,b2,A3,1,A5,A6,A7,A8, 1\n0, A1,b2,A3,A4,1,A6,A7,A8, 1\n0, A1,b2,A3,A4,A5,1,A7,A8, 1\n0, A1,b2,A3,A4,A5,A6,1,A8, 1\n0, A1,b2,A3,A4,A5,A6,A7,1, 1\n",
  "7e": "0, b1,1,A3,A4,A5,A6,A7,A8, 1\n0, b1,A2,1,A4,A5,A6,A7,A8, 1\n0, b1,A2,A3,1,A5,A6,A7,A8, 1\n0, b1,A2,A3,A4,1,A6,A7,A8, 1\n0, b1,A2,A3,A4,A5,1,A7,A8, 1\n0, b1,A2,A3,A4,A5,A6,1,A8, 1\n0, b1,A2,A3,A4,A5,A6,A7,1, 1",

  "8": "0, 1,A2,A3,A4,A5,A6,A7,A8, 1\n0, A1,1,A3,A4,A5,A6,A7,A8, 1\n0, A1,A2,1,A4,A5,A6,A7,A8, 1\n0, A1,A2,A3,1,A5,A6,A7,A8, 1\n0, A1,A2,A3,A4,1,A6,A7,A8, 1\n0, A1,A2,A3,A4,A5,1,A7,A8, 1\n0, A1,A2,A3,A4,A5,A6,1,A8, 1\n0, A1,A2,A3,A4,A5,A6,A7,1, 1"
}

Dtransitions = {
  "0": "1, g1,g2,g3,g4,g5,g6,g7,g8, 0",

  "1c": "1, g1,F2,g3,g4,g5,g6,g7,g8, 0",
  "1e": "1, F1,g2,g3,g4,g5,g6,g7,g8, 0",
  
  "2c": "1, g1,F2,g3,F4,g5,g6,g7,g8, 0",
  "2e": "1, F1,g2,F3,g4,g5,g6,g7,g8, 0",
  "2k": "1, F1,g2,g3,F4,g5,g6,g7,g8, 0",
  "2a": "1, F1,F2,g3,g4,g5,g6,g7,g8, 0",
  "2i": "1, F1,g2,g3,g4,F5,g6,g7,g8, 0",
  "2n": "1, g1,F2,g3,g4,g5,F6,g7,g8, 0",

  "3c": "1, g1,F2,g3,F4,g5,F6,g7,g8, 0",
  "3e": "1, F1,g2,F3,g4,F5,g6,g7,g8, 0",
  "3k": "1, F1,g2,F3,g4,g5,F6,g7,g8, 0",
  "3a": "1, F1,F2,F3,g4,g5,g6,g7,g8, 0",
  "3i": "1, F1,F2,g3,g4,g5,g6,g7,F8, 0",
  "3n": "1, F1,F2,g3,F4,g5,g6,g7,g8, 0",
  "3y": "1, F1,g2,g3,F4,g5,F6,g7,g8, 0",
  "3q": "1, F1,F2,g3,g4,g5,F6,g7,g8, 0",
  "3j": "1, F1,g2,F3,F4,g5,g6,g7,g8, 0",
  "3r": "1, F1,F2,g3,g4,F5,g6,g7,g8, 0",

  "4c": "1, g1,F2,g3,F4,g5,F6,g7,F8, 0",
  "4e": "1, F1,g2,F3,g4,F5,g6,F7,g8, 0",
  "4k": "1, F1,g2,F3,F4,g5,F6,g7,g8, 0",
  "4a": "1, F1,F2,F3,F4,g5,g6,g7,g8, 0",
  "4i": "1, F1,F2,g3,F4,F5,g6,g7,g8, 0",
  "4n": "1, F1,F2,g3,F4,g5,g6,g7,F8, 0",
  "4y": "1, F1,F2,g3,F4,g5,F6,g7,g8, 0",
  "4q": "1, F1,F2,F3,g4,g5,F6,g7,g8, 0",
  "4j": "1, F1,g2,F3,g4,F5,F6,g7,g8, 0",
  "4r": "1, F1,g2,F3,F4,F5,g6,g7,g8, 0",
  "4t": "1, F1,F2,g3,g4,F5,g6,g7,F8, 0",
  "4w": "1, F1,g2,F3,F4,g5,g6,g7,F8, 0",
  "4z": "1, F1,F2,g3,g4,F5,F6,g7,g8, 0",

  "5c": "1, F1,g2,F3,g4,F5,g6,F7,F8, 0",
  "5e": "1, g1,F2,g3,F4,g5,F6,F7,F8, 0",
  "5k": "1, g1,F2,g3,F4,F5,g6,F7,F8, 0",
  "5a": "1, g1,g2,g3,F4,F5,F6,F7,F8, 0",
  "5i": "1, g1,g2,F3,F4,F5,F6,F7,g8, 0",
  "5n": "1, g1,g2,F3,g4,F5,F6,F7,F8, 0",
  "5y": "1, g1,F2,F3,g4,F5,g6,F7,F8, 0",
  "5q": "1, g1,g2,F3,F4,F5,g6,F7,F8, 0",
  "5j": "1, g1,F2,g3,g4,F5,F6,F7,F8, 0",
  "5r": "1, g1,g2,F3,F4,g5,F6,F7,F8, 0",

  "6c": "1, F1,g2,F3,g4,F5,F6,F7,F8, 0",
  "6e": "1, g1,F2,g3,F4,F5,F6,F7,F8, 0",
  "6k": "1, g1,F2,F3,g4,F5,F6,F7,F8, 0",
  "6a": "1, g1,g2,F3,F4,F5,F6,F7,F8, 0",
  "6i": "1, g1,F2,F3,F4,g5,F6,F7,F8, 0",
  "6n": "1, F1,g2,F3,F4,F5,g6,F7,F8, 0",

  "7c": "1, F1,g2,F3,F4,F5,F6,F7,F8, 0",
  "7e": "1, g1,F2,F3,F4,F5,F6,F7,F8, 0",

  "8": "1, F1,F2,F3,F4,F5,F6,F7,F8, 0",
}

nontotalistic = {
  "0": ["0"],
  "1": ["1c", "1e"],
  "2": ["2c", "2e", "2k", "2a", "2i", "2n"],
  "3": ["3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r"],
  "4": ["4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z"],
  "5": ["5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r"],
  "6": ["6c", "6e", "6k", "6a", "6i", "6n"],
  "7": ["7c", "7e"],
  "8": ["8"],
  "9": []
}

alltrans = ["0", "1c", "1e", "2c", "2e", "2k", "2a", "2i", "2n", "3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r", "4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z", "5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r", "6c", "6e", "6k", "6a", "6i", "6n", "7c", "7e", "8"]

rule = input("rule: ")
B = list(rule.split("/")[0][1:]); B.append("9")
S = list(rule.split("/")[1][1:]); S.append("9")

def hensel(L):
  trans = []; neg = False; neglist = []
  for n, x in enumerate(L):
    if x in ["0", "1", "2", "3", "4", "5", "6", "7", "8"] and L[n+1] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]:
      neg = False
      for e in nontotalistic[x]:
        trans.append(e)
    elif x in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]:
      if neglist == []:
        N = x; neg = False
      else:
        for nt in nontotalistic[N]:
          if nt not in neglist:
            trans.append(nt)
        N = x; neg = False; neglist = []
    elif x == "-":
      neg = True
    elif neg:
      neglist.append(N+x)
    else:
      trans.append(N+x)
  return trans

print("\n\n\n\n\n\n@RULE", "".join(rule.split("/"))+"Investigator")
print("""@TABLE
n_states:21
neighborhood:Moore
symmetries:rotate4reflect
var A1 = {1,2,4,6,8,10,12,15,16,17,19}
var A2 = {1,2,4,6,8,10,12,15,16,17,19}
var A3 = {1,2,4,6,8,10,12,15,16,17,19}
var A4 = {1,2,4,6,8,10,12,15,16,17,19}
var A5 = {1,2,4,6,8,10,12,15,16,17,19}
var A6 = {1,2,4,6,8,10,12,15,16,17,19}
var A7 = {1,2,4,6,8,10,12,15,16,17,19}
var A8 = {1,2,4,6,8,10,12,15,16,17,19}
var b1 = {0,3,5,7,9,11,13,18,20}
var b2 = {0,3,5,7,9,11,13,18,20}
var b3 = {0,3,5,7,9,11,13,18,20}
var b4 = {0,3,5,7,9,11,13,18,20}
var b5 = {0,3,5,7,9,11,13,18,20}
var b6 = {0,3,5,7,9,11,13,18,20}
var b7 = {0,3,5,7,9,11,13,18,20}
var b8 = {0,3,5,7,9,11,13,18,20}
var c1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c2 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c3 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c4 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c5 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c6 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c7 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c8 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var d1 = {2,3,6,7,14,16}
var d2 = {8,9,12,13,14}
var E1 = {1,2,4,6,8,10,12,17,19}
var E2 = {1,2,4,6,8,10,12,17,19}
var E3 = {1,2,4,6,8,10,12,17,19}
var E4 = {1,2,4,6,8,10,12,17,19}
var E5 = {1,2,4,6,8,10,12,17,19}
var E6 = {1,2,4,6,8,10,12,17,19}
var E7 = {1,2,4,6,8,10,12,17,19}
var E8 = {1,2,4,6,8,10,12,17,19}
var F1 = {1,2,4,6,8,10,12,15,16,18,20}
var F2 = {1,2,4,6,8,10,12,15,16,18,20}
var F3 = {1,2,4,6,8,10,12,15,16,18,20}
var F4 = {1,2,4,6,8,10,12,15,16,18,20}
var F5 = {1,2,4,6,8,10,12,15,16,18,20}
var F6 = {1,2,4,6,8,10,12,15,16,18,20}
var F7 = {1,2,4,6,8,10,12,15,16,18,20}
var F8 = {1,2,4,6,8,10,12,15,16,18,20}
var g1 = {0,3,5,7,9,11,13,17,19}
var g2 = {0,3,5,7,9,11,13,17,19}
var g3 = {0,3,5,7,9,11,13,17,19}
var g4 = {0,3,5,7,9,11,13,17,19}
var g5 = {0,3,5,7,9,11,13,17,19}
var g6 = {0,3,5,7,9,11,13,17,19}
var g7 = {0,3,5,7,9,11,13,17,19}
var g8 = {0,3,5,7,9,11,13,17,19}
""")
for b in hensel(B):
  print(Btransitions.get(b))
  print(Ctransitions.get(b))   

for l in alltrans:
  if l not in hensel(S):
    print(Dtransitions[l])
print("""1, d1,c1,c2,c3,c4,c5,c6,c7, 0
1, c1,d1,c2,c3,c4,c5,c6,c7, 0
0, d2,c1,c2,c3,c4,c5,c6,c7, 1
0, c1,d2,c2,c3,c4,c5,c6,c7, 1
6, c1,c2,c3,c4,c5,c6,c7,c8, 7
7, c1,c2,c3,c4,c5,c6,c7,c8, 6
10, c1,c2,c3,c4,c5,c6,c7,c8, 11
11, c1,c2,c3,c4,c5,c6,c7,c8, 10
12, c1,c2,c3,c4,c5,c6,c7,c8, 13
13, c1,c2,c3,c4,c5,c6,c7,c8, 12
19, c1,c2,c3,c4,c5,c6,c7,c8, 20
20, c1,c2,c3,c4,c5,c6,c7,c8, 19
@COLORS
1    0  236   91
2    0  192  254
3  254    0    0
4  254  254  254
5   75   75   75
6  233   41  254
7   64    0  128
8  254  230    0
9  150  128    0
10 130  200    0
11   0  120   40
12 254  140    0
13 140   70    0
14   0    0  254
15 192  192  192
16 128  128  128
17 254  112  140
18 174    0  168
19   0  152  127
20   0   73   59
""")
Lua script for Golly:

Code: Select all

local g = golly()

local Btransitions = {
  ["0"] = "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",

  ["1c"] = "0, b1,E2,b3,b4,b5,b6,b7,b8, 1",
  ["1e"] = "0, E1,b2,b3,b4,b5,b6,b7,b8, 1",
  
  ["2c"] = "0, b1,E2,b3,E4,b5,b6,b7,b8, 1",
  ["2e"] = "0, E1,b2,E3,b4,b5,b6,b7,b8, 1",
  ["2k"] = "0, E1,b2,b3,E4,b5,b6,b7,b8, 1",
  ["2a"] = "0, E1,E2,b3,b4,b5,b6,b7,b8, 1",
  ["2i"] = "0, E1,b2,b3,b4,E5,b6,b7,b8, 1",
  ["2n"] = "0, b1,E2,b3,b4,b5,E6,b7,b8, 1",

  ["3c"] = "0, b1,E2,b3,E4,b5,E6,b7,b8, 1",
  ["3e"] = "0, E1,b2,E3,b4,E5,b6,b7,b8, 1",
  ["3k"] = "0, E1,b2,E3,b4,b5,E6,b7,b8, 1",
  ["3a"] = "0, E1,E2,E3,b4,b5,b6,b7,b8, 1",
  ["3i"] = "0, E1,E2,b3,b4,b5,b6,b7,E8, 1",
  ["3n"] = "0, E1,E2,b3,E4,b5,b6,b7,b8, 1",
  ["3y"] = "0, E1,b2,b3,E4,b5,E6,b7,b8, 1",
  ["3q"] = "0, E1,E2,b3,b4,b5,E6,b7,b8, 1",
  ["3j"] = "0, E1,b2,E3,E4,b5,b6,b7,b8, 1",
  ["3r"] = "0, E1,E2,b3,b4,E5,b6,b7,b8, 1",

  ["4c"] = "0, b1,E2,b3,E4,b5,E6,b7,E8, 1",
  ["4e"] = "0, E1,b2,E3,b4,E5,b6,E7,b8, 1",
  ["4k"] = "0, E1,b2,E3,E4,b5,E6,b7,b8, 1",
  ["4a"] = "0, E1,E2,E3,E4,b5,b6,b7,b8, 1",
  ["4i"] = "0, E1,E2,b3,E4,E5,b6,b7,b8, 1",
  ["4n"] = "0, E1,E2,b3,E4,b5,b6,b7,E8, 1",
  ["4y"] = "0, E1,E2,b3,E4,b5,E6,b7,b8, 1",
  ["4q"] = "0, E1,E2,E3,b4,b5,E6,b7,b8, 1",
  ["4j"] = "0, E1,b2,E3,b4,E5,E6,b7,b8, 1",
  ["4r"] = "0, E1,b2,E3,E4,E5,b6,b7,b8, 1",
  ["4t"] = "0, E1,E2,b3,b4,E5,b6,b7,E8, 1",
  ["4w"] = "0, E1,b2,E3,E4,b5,b6,b7,E8, 1",
  ["4z"] = "0, E1,E2,b3,b4,E5,E6,b7,b8, 1",

  ["5c"] = "0, E1,b2,E3,b4,E5,b6,E7,E8, 1",
  ["5e"] = "0, b1,E2,b3,E4,b5,E6,E7,E8, 1",
  ["5k"] = "0, b1,E2,b3,E4,E5,b6,E7,E8, 1",
  ["5a"] = "0, b1,b2,b3,E4,E5,E6,E7,E8, 1",
  ["5i"] = "0, b1,b2,E3,E4,E5,E6,E7,b8, 1",
  ["5n"] = "0, b1,b2,E3,b4,E5,E6,E7,E8, 1",
  ["5y"] = "0, b1,E2,E3,b4,E5,b6,E7,E8, 1",
  ["5q"] = "0, b1,b2,E3,E4,E5,b6,E7,E8, 1",
  ["5j"] = "0, b1,E2,b3,b4,E5,E6,E7,E8, 1",
  ["5r"] = "0, b1,b2,E3,E4,b5,E6,E7,E8, 1",

  ["6c"] = "0, E1,b2,E3,b4,E5,E6,E7,E8, 1",
  ["6e"] = "0, b1,E2,b3,E4,E5,E6,E7,E8, 1",
  ["6k"] = "0, b1,E2,E3,b4,E5,E6,E7,E8, 1",
  ["6a"] = "0, b1,b2,E3,E4,E5,E6,E7,E8, 1",
  ["6i"] = "0, b1,E2,E3,E4,b5,E6,E7,E8, 1",
  ["6n"] = "0, E1,b2,E3,E4,E5,b6,E7,E8, 1",

  ["7c"] = "0, E1,b2,E3,E4,E5,E6,E7,E8, 1",
  ["7e"] = "0, b1,E2,E3,E4,E5,E6,E7,E8, 1",

  ["8"] = "0, E1,E2,E3,E4,E5,E6,E7,E8, 1",
}

local Ctransitions = {
  ["0"] = "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",

  ["1c"] = "0, b1,1,b3,b4,b5,b6,b7,b8, 1",
  ["1e"] = "0, 1,b2,b3,b4,b5,b6,b7,b8, 1",
  
  ["2c"] = "0, b1,1,b3,A4,b5,b6,b7,b8, 1\n0, b1,A2,b3,1,b5,b6,b7,b8, 1",
  ["2e"] = "0, 1,b2,A3,b4,b5,b6,b7,b8, 1\n0, A1,b2,1,b4,b5,b6,b7,b8, 1",
  ["2k"] = "0, 1,b2,b3,A4,b5,b6,b7,b8, 1\n0, A1,b2,b3,1,b5,b6,b7,b8, 1",
  ["2a"] = "0, 1,A2,b3,b4,b5,b6,b7,b8, 1\n0, A1,1,b3,b4,b5,b6,b7,b8, 1",
  ["2i"] = "0, 1,b2,b3,b4,A5,b6,b7,b8, 1\n0, A1,b2,b3,b4,1,b6,b7,b8, 1",
  ["2n"] = "0, b1,1,b3,b4,b5,A6,b7,b8, 1\n0, b1,A2,b3,b4,b5,1,b7,b8, 1",

  ["3c"] = "0, b1,1,b3,A4,b5,A6,b7,b8, 1\n0, b1,A2,b3,1,b5,A6,b7,b8, 1\n0, b1,A2,b3,A4,b5,1,b7,b8, 1",
  ["3e"] = "0, 1,b2,A3,b4,A5,b6,b7,b8, 1\n0, A1,b2,1,b4,A5,b6,b7,b8, 1\n0, A1,b2,A3,b4,1,b6,b7,b8, 1",
  ["3k"] = "0, 1,b2,A3,b4,b5,A6,b7,b8, 1\n0, A1,b2,1,b4,b5,A6,b7,b8, 1\n0, A1,b2,A3,b4,b5,1,b7,b8, 1",
  ["3a"] = "0, 1,A2,A3,b4,b5,b6,b7,b8, 1\n0, A1,1,A3,b4,b5,b6,b7,b8, 1\n0, A1,A2,1,b4,b5,b6,b7,b8, 1",
  ["3i"] = "0, 1,A2,b3,b4,b5,b6,b7,A8, 1\n0, A1,1,b3,b4,b5,b6,b7,A8, 1\n0, A1,A2,b3,b4,b5,b6,b7,1, 1",
  ["3n"] = "0, 1,A2,b3,A4,b5,b6,b7,b8, 1\n0, A1,1,b3,A4,b5,b6,b7,b8, 1\n0, A1,A2,b3,1,b5,b6,b7,b8, 1",
  ["3y"] = "0, 1,b2,b3,A4,b5,A6,b7,b8, 1\n0, A1,b2,b3,1,b5,A6,b7,b8, 1\n0, A1,b2,b3,A4,b5,1,b7,b8, 1",
  ["3q"] = "0, 1,A2,b3,b4,b5,A6,b7,b8, 1\n0, A1,1,b3,b4,b5,A6,b7,b8, 1\n0, A1,A2,b3,b4,b5,1,b7,b8, 1",
  ["3j"] = "0, 1,b2,A3,A4,b5,b6,b7,b8, 1\n0, A1,b2,1,A4,b5,b6,b7,b8, 1\n0, A1,b2,A3,1,b5,b6,b7,b8, 1",
  ["3r"] = "0, 1,A2,b3,b4,A5,b6,b7,b8, 1\n0, A1,1,b3,b4,A5,b6,b7,b8, 1\n0, A1,A2,b3,b4,1,b6,b7,b8, 1",

  ["4c"] = "0, b1,1,b3,A4,b5,A6,b7,A8, 1\n0, b1,A2,b3,1,b5,A6,b7,A8, 1\n0, b1,A2,b3,A4,b5,1,b7,A8, 1\n0, b1,A2,b3,A4,b5,A6,b7,1, 1",
  ["4e"] = "0, 1,b2,A3,b4,A5,b6,A7,b8, 1\n0, A1,b2,1,b4,A5,b6,A7,b8, 1\n0, A1,b2,A3,b4,1,b6,A7,b8, 1\n0, A1,b2,A3,b4,A5,b6,1,b8, 1",
  ["4k"] = "0, 1,b2,A3,A4,b5,A6,b7,b8, 1\n0, A1,b2,1,A4,b5,A6,b7,b8, 1\n0, A1,b2,A3,1,b5,A6,b7,b8, 1\n0, A1,b2,A3,A4,b5,1,b7,b8, 1",
  ["4a"] = "0, 1,A2,A3,A4,b5,b6,b7,b8, 1\n0, A1,1,A3,A4,b5,b6,b7,b8, 1\n0, A1,A2,1,A4,b5,b6,b7,b8, 1\n0, A1,A2,A3,1,b5,b6,b7,b8, 1",
  ["4i"] = "0, 1,A2,b3,A4,A5,b6,b7,b8, 1\n0, A1,1,b3,A4,A5,b6,b7,b8, 1\n0, A1,A2,b3,1,A5,b6,b7,b8, 1\n0, A1,A2,b3,A4,1,b6,b7,b8, 1",
  ["4n"] = "0, 1,A2,b3,A4,b5,b6,b7,A8, 1\n0, A1,1,b3,A4,b5,b6,b7,A8, 1\n0, A1,A2,b3,1,b5,b6,b7,A8, 1\n0, A1,A2,b3,A4,b5,b6,b7,1, 1",
  ["4y"] = "0, 1,A2,b3,A4,b5,A6,b7,b8, 1\n0, A1,1,b3,A4,b5,A6,b7,b8, 1\n0, A1,A2,b3,1,b5,A6,b7,b8, 1\n0, A1,A2,b3,A4,b5,1,b7,b8, 1",
  ["4q"] = "0, 1,A2,A3,b4,b5,A6,b7,b8, 1\n0, A1,1,A3,b4,b5,A6,b7,b8, 1\n0, A1,A2,1,b4,b5,A6,b7,b8, 1\n0, A1,A2,A3,b4,b5,1,b7,b8, 1",
  ["4j"] = "0, 1,b2,A3,b4,A5,A6,b7,b8, 1\n0, A1,b2,1,b4,A5,A6,b7,b8, 1\n0, A1,b2,A3,b4,1,A6,b7,b8, 1\n0, A1,b2,A3,b4,A5,1,b7,b8, 1",
  ["4r"] = "0, 1,b2,A3,A4,A5,b6,b7,b8, 1\n0, A1,b2,1,A4,A5,b6,b7,b8, 1\n0, A1,b2,A3,1,A5,b6,b7,b8, 1\n0, A1,b2,A3,A4,1,b6,b7,b8, 1",
  ["4t"] = "0, 1,A2,b3,b4,A5,b6,b7,A8, 1\n0, A1,1,b3,b4,A5,b6,b7,A8, 1\n0, A1,A2,b3,b4,1,b6,b7,A8, 1\n0, A1,A2,b3,b4,A5,b6,b7,1, 1",
  ["4w"] = "0, 1,b2,A3,A4,b5,b6,b7,A8, 1\n0, A1,b2,1,A4,b5,b6,b7,A8, 1\n0, A1,b2,A3,1,b5,b6,b7,A8, 1\n0, A1,b2,A3,A4,b5,b6,b7,1, 1",
  ["4z"] = "0, 1,A2,b3,b4,A5,A6,b7,b8, 1\n0, A1,1,b3,b4,A5,A6,b7,b8, 1\n0, A1,A2,b3,b4,1,A6,b7,b8, 1\n0, A1,A2,b3,b4,A5,1,b7,b8, 1",

  ["5c"] = "0, 1,b2,A3,b4,A5,b6,A7,A8, 1\n0, A1,b2,1,b4,A5,b6,A7,A8, 1\n0, A1,b2,A3,b4,1,b6,A7,A8, 1\n0, A1,b2,A3,b4,A5,b6,1,A8, 1\n0, A1,b2,A3,b4,A5,b6,A7,1, 1",
  ["5e"] = "0, b1,1,b3,A4,b5,A6,A7,A8, 1\n0, b1,A2,b3,1,b5,A6,A7,A8, 1\n0, b1,A2,b3,A4,b5,1,A7,A8, 1\n0, b1,A2,b3,A4,b5,A6,1,A8, 1\n0, b1,A2,b3,A4,b5,A6,A7,1, 1",
  ["5k"] = "0, b1,1,b3,A4,A5,b6,A7,A8, 1\n0, b1,A2,b3,1,A5,b6,A7,A8, 1\n0, b1,A2,b3,A4,1,b6,A7,A8, 1\n0, b1,A2,b3,A4,A5,b6,1,A8, 1\n0, b1,A2,b3,A4,A5,b6,A7,1, 1",
  ["5a"] = "0, b1,b2,b3,1,A5,A6,A7,A8, 1\n0, b1,b2,b3,A4,1,A6,A7,A8, 1\n0, b1,b2,b3,A4,A5,1,A7,A8, 1\n0, b1,b2,b3,A4,A5,A6,1,A8, 1\n0, b1,b2,b3,A4,A5,A6,A7,1, 1",
  ["5i"] = "0, b1,b2,1,A4,A5,A6,A7,b8, 1\n0, b1,b2,A3,1,A5,A6,A7,b8, 1\n0, b1,b2,A3,A4,1,A6,A7,b8, 1\n0, b1,b2,A3,A4,A5,1,A7,b8, 1\n0, b1,b2,A3,A4,A5,A6,1,b8, 1",
  ["5n"] = "0, b1,b2,1,b4,A5,A6,A7,A8, 1\n0, b1,b2,A3,b4,1,A6,A7,A8, 1\n0, b1,b2,A3,b4,A5,1,A7,A8, 1\n0, b1,b2,A3,b4,A5,A6,1,A8, 1\n0, b1,b2,A3,b4,A5,A6,A7,1, 1",
  ["5y"] = "0, b1,1,A3,b4,A5,b6,A7,A8, 1\n0, b1,A2,1,b4,A5,b6,A7,A8, 1\n0, b1,A2,A3,b4,1,b6,A7,A8, 1\n0, b1,A2,A3,b4,A5,b6,1,A8, 1\n0, b1,A2,A3,b4,A5,b6,A7,1, 1",
  ["5q"] = "0, b1,b2,1,A4,A5,b6,A7,A8, 1\n0, b1,b2,A3,1,A5,b6,A7,A8, 1\n0, b1,b2,A3,A4,1,b6,A7,A8, 1\n0, b1,b2,A3,A4,A5,b6,1,A8, 1\n0, b1,b2,A3,A4,A5,b6,A7,1, 1",
  ["5j"] = "0, b1,1,b3,b4,A5,A6,A7,A8, 1\n0, b1,A2,b3,b4,1,A6,A7,A8, 1\n0, b1,A2,b3,b4,A5,1,A7,A8, 1\n0, b1,A2,b3,b4,A5,A6,1,A8, 1\n0, b1,A2,b3,b4,A5,A6,A7,1, 1",
  ["5r"] = "0, b1,b2,1,A4,b5,A6,A7,A8, 1\n0, b1,b2,A3,1,b5,A6,A7,A8, 1\n0, b1,b2,A3,A4,b5,1,A7,A8, 1\n0, b1,b2,A3,A4,b5,A6,1,A8, 1\n0, b1,b2,A3,A4,b5,A6,A7,1, 1",

  ["6c"] = "0, 1,b2,A3,b4,A5,A6,A7,A8, 1\n0, A1,b2,1,b4,A5,A6,A7,A8, 1\n0, A1,b2,A3,b4,1,A6,A7,A8, 1\n0, A1,b2,A3,b4,A5,1,A7,A8, 1\n0, A1,b2,A3,b4,A5,A6,1,A8, 1\n0, A1,b2,A3,b4,A5,A6,A7,1, 1",
  ["6e"] = "0, b1,1,b3,A4,A5,A6,A7,A8, 1\n0, b1,A2,b3,1,A5,A6,A7,A8, 1\n0, b1,A2,b3,A4,1,A6,A7,A8, 1\n0, b1,A2,b3,A4,A5,1,A7,A8, 1\n0, b1,A2,b3,A4,A5,A6,1,A8, 1\n0, b1,A2,b3,A4,A5,A6,A7,1, 1",
  ["6k"] = "0, b1,1,A3,b4,A5,A6,A7,A8, 1\n0, b1,A2,1,b4,A5,A6,A7,A8, 1\n0, b1,A2,A3,b4,1,A6,A7,A8, 1\n0, b1,A2,A3,b4,A5,1,A7,A8, 1\n0, b1,A2,A3,b4,A5,A6,1,A8, 1\n0, b1,A2,A3,b4,A5,A6,A7,1, 1",
  ["6a"] = "0, b1,b2,1,A4,A5,A6,A7,A8, 1\n0, b1,b2,A3,1,A5,A6,A7,A8, 1\n0, b1,b2,A3,A4,1,A6,A7,A8, 1\n0, b1,b2,A3,A4,A5,1,A7,A8, 1\n0, b1,b2,A3,A4,A5,A6,1,A8, 1\n0, b1,b2,A3,A4,A5,A6,A7,1, 1",
  ["6i"] = "0, b1,1,A3,A4,b5,A6,A7,A8, 1\n0, b1,A2,1,A4,b5,A6,A7,A8, 1\n0, b1,A2,A3,1,b5,A6,A7,A8, 1\n0, b1,A2,A3,A4,b5,1,A7,A8, 1\n0, b1,A2,A3,A4,b5,A6,1,A8, 1\n0, b1,A2,A3,A4,b5,A6,A7,1, 1",
  ["6n"] = "0, 1,b2,A3,A4,A5,b6,A7,A8, 1\n0, A1,b2,1,A4,A5,b6,A7,A8, 1\n0, A1,b2,A3,1,A5,b6,A7,A8, 1\n0, A1,b2,A3,A4,1,b6,A7,A8, 1\n0, A1,b2,A3,A4,A5,b6,1,A8, 1\n0, A1,b2,A3,A4,A5,b6,A7,1, 1",

  ["7c"] = "0, 1,b2,A3,A4,A5,A6,A7,A8, 1\n0, A1,b2,1,A4,A5,A6,A7,A8, 1\n0, A1,b2,A3,1,A5,A6,A7,A8, 1\n0, A1,b2,A3,A4,1,A6,A7,A8, 1\n0, A1,b2,A3,A4,A5,1,A7,A8, 1\n0, A1,b2,A3,A4,A5,A6,1,A8, 1\n0, A1,b2,A3,A4,A5,A6,A7,1, 1\n",
  ["7e"] = "0, b1,1,A3,A4,A5,A6,A7,A8, 1\n0, b1,A2,1,A4,A5,A6,A7,A8, 1\n0, b1,A2,A3,1,A5,A6,A7,A8, 1\n0, b1,A2,A3,A4,1,A6,A7,A8, 1\n0, b1,A2,A3,A4,A5,1,A7,A8, 1\n0, b1,A2,A3,A4,A5,A6,1,A8, 1\n0, b1,A2,A3,A4,A5,A6,A7,1, 1",

  ["8"] = "0, 1,A2,A3,A4,A5,A6,A7,A8, 1\n0, A1,1,A3,A4,A5,A6,A7,A8, 1\n0, A1,A2,1,A4,A5,A6,A7,A8, 1\n0, A1,A2,A3,1,A5,A6,A7,A8, 1\n0, A1,A2,A3,A4,1,A6,A7,A8, 1\n0, A1,A2,A3,A4,A5,1,A7,A8, 1\n0, A1,A2,A3,A4,A5,A6,1,A8, 1\n0, A1,A2,A3,A4,A5,A6,A7,1, 1"
}

local Dtransitions = {
  ["0"] = "1, g1,g2,g3,g4,g5,g6,g7,g8, 0",

  ["1c"] = "1, g1,F2,g3,g4,g5,g6,g7,g8, 0",
  ["1e"] = "1, F1,g2,g3,g4,g5,g6,g7,g8, 0",
  
  ["2c"] = "1, g1,F2,g3,F4,g5,g6,g7,g8, 0",
  ["2e"] = "1, F1,g2,F3,g4,g5,g6,g7,g8, 0",
  ["2k"] = "1, F1,g2,g3,F4,g5,g6,g7,g8, 0",
  ["2a"] = "1, F1,F2,g3,g4,g5,g6,g7,g8, 0",
  ["2i"] = "1, F1,g2,g3,g4,F5,g6,g7,g8, 0",
  ["2n"] = "1, g1,F2,g3,g4,g5,F6,g7,g8, 0",

  ["3c"] = "1, g1,F2,g3,F4,g5,F6,g7,g8, 0",
  ["3e"] = "1, F1,g2,F3,g4,F5,g6,g7,g8, 0",
  ["3k"] = "1, F1,g2,F3,g4,g5,F6,g7,g8, 0",
  ["3a"] = "1, F1,F2,F3,g4,g5,g6,g7,g8, 0",
  ["3i"] = "1, F1,F2,g3,g4,g5,g6,g7,F8, 0",
  ["3n"] = "1, F1,F2,g3,F4,g5,g6,g7,g8, 0",
  ["3y"] = "1, F1,g2,g3,F4,g5,F6,g7,g8, 0",
  ["3q"] = "1, F1,F2,g3,g4,g5,F6,g7,g8, 0",
  ["3j"] = "1, F1,g2,F3,F4,g5,g6,g7,g8, 0",
  ["3r"] = "1, F1,F2,g3,g4,F5,g6,g7,g8, 0",

  ["4c"] = "1, g1,F2,g3,F4,g5,F6,g7,F8, 0",
  ["4e"] = "1, F1,g2,F3,g4,F5,g6,F7,g8, 0",
  ["4k"] = "1, F1,g2,F3,F4,g5,F6,g7,g8, 0",
  ["4a"] = "1, F1,F2,F3,F4,g5,g6,g7,g8, 0",
  ["4i"] = "1, F1,F2,g3,F4,F5,g6,g7,g8, 0",
  ["4n"] = "1, F1,F2,g3,F4,g5,g6,g7,F8, 0",
  ["4y"] = "1, F1,F2,g3,F4,g5,F6,g7,g8, 0",
  ["4q"] = "1, F1,F2,F3,g4,g5,F6,g7,g8, 0",
  ["4j"] = "1, F1,g2,F3,g4,F5,F6,g7,g8, 0",
  ["4r"] = "1, F1,g2,F3,F4,F5,g6,g7,g8, 0",
  ["4t"] = "1, F1,F2,g3,g4,F5,g6,g7,F8, 0",
  ["4w"] = "1, F1,g2,F3,F4,g5,g6,g7,F8, 0",
  ["4z"] = "1, F1,F2,g3,g4,F5,F6,g7,g8, 0",

  ["5c"] = "1, F1,g2,F3,g4,F5,g6,F7,F8, 0",
  ["5e"] = "1, g1,F2,g3,F4,g5,F6,F7,F8, 0",
  ["5k"] = "1, g1,F2,g3,F4,F5,g6,F7,F8, 0",
  ["5a"] = "1, g1,g2,g3,F4,F5,F6,F7,F8, 0",
  ["5i"] = "1, g1,g2,F3,F4,F5,F6,F7,g8, 0",
  ["5n"] = "1, g1,g2,F3,g4,F5,F6,F7,F8, 0",
  ["5y"] = "1, g1,F2,F3,g4,F5,g6,F7,F8, 0",
  ["5q"] = "1, g1,g2,F3,F4,F5,g6,F7,F8, 0",
  ["5j"] = "1, g1,F2,g3,g4,F5,F6,F7,F8, 0",
  ["5r"] = "1, g1,g2,F3,F4,g5,F6,F7,F8, 0",

  ["6c"] = "1, F1,g2,F3,g4,F5,F6,F7,F8, 0",
  ["6e"] = "1, g1,F2,g3,F4,F5,F6,F7,F8, 0",
  ["6k"] = "1, g1,F2,F3,g4,F5,F6,F7,F8, 0",
  ["6a"] = "1, g1,g2,F3,F4,F5,F6,F7,F8, 0",
  ["6i"] = "1, g1,F2,F3,F4,g5,F6,F7,F8, 0",
  ["6n"] = "1, F1,g2,F3,F4,F5,g6,F7,F8, 0",

  ["7c"] = "1, F1,g2,F3,F4,F5,F6,F7,F8, 0",
  ["7e"] = "1, g1,F2,F3,F4,F5,F6,F7,F8, 0",

  ["8"] = "1, F1,F2,F3,F4,F5,F6,F7,F8, 0",
}

local nontotalistic = {
  ["0"] = {"0"},
  ["1"] = {"1c", "1e"},
  ["2"] = {"2c", "2e", "2k", "2a", "2i", "2n"},
  ["3"] = {"3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r"},
  ["4"] = {"4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z"},
  ["5"] = {"5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r"},
  ["6"] = {"6c", "6e", "6k", "6a", "6i", "6n"},
  ["7"] = {"7c", "7e"},
  ["8"] = {"8"},
  ["9"] = {}
}

local alltrans = {"0", "1c", "1e", "2c", "2e", "2k", "2a", "2i", "2n", "3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r", "4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z", "5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r", "6c", "6e", "6k", "6a", "6i", "6n", "7c", "7e", "8"}

local function list (str)
  local out = {}
  for i = 1, #str do
    table.insert(out, string.sub(str, i, i))
  end
  return out
end

local function has (tab, key)
  for _, val in ipairs(tab) do
    if key == val then
      return true
    end
  end
  return false
end

local out = {}

local function CreateRule(rule)
    local fname = g.getdir("rules") .. rule .. ".rule"
    local f = io.open(fname,"r")
    if f ~= nil then
        io.close(f)  -- rule already exists
    else 
        local f = io.open(fname, "w")
        if f then
            f:write(out)
            f:close()
        else
            g.warn("Can't save " .. rule .. " rule in filename:\n" .. filename)
        end
    end
end

local rule = g.getrule()
local pos = string.find(rule, "/")
local B = list(string.sub(rule, 2, pos - 1))
table.insert(B, "9")
local S = list(string.sub(rule, pos + 1, #rule))
table.insert(S, "9")

local function hensel (L)
  local trans = {}
  local neg = false
  local neglist = {}
  local N = "9"
  for n, x in ipairs(L) do
    if x >= "0" and x <= "8" and L[n+1] >= "0" and L[n+1] <= "9" then
      neg = false
      for _, e in pairs(nontotalistic[x]) do
        table.insert(trans, e)
      end
    elseif x >= "0" and x <= "9" then
      if #neglist == 0 then
        N = x
        neg = false
      else
        for _, nt in pairs(nontotalistic[N]) do
          if not has(neglist, nt) then
            table.insert(trans, nt)
          end
        end
        N = x
        neg = false
        neglist = {}
      end
    elseif x == "-" then
      neg = true
    elseif neg then
      table.insert(neglist, N .. x)
    else
      table.insert(trans, N .. x)
    end
  end
  return trans
end

rule = string.gsub(rule, "/", "") .. "Investigator"

table.insert(out, "@RULE " .. rule)
table.insert(out, [[@TABLE
n_states:21
neighborhood:Moore
symmetries:rotate4reflect
var A1 = {1,2,4,6,8,10,12,15,16,17,19}
var A2 = {1,2,4,6,8,10,12,15,16,17,19}
var A3 = {1,2,4,6,8,10,12,15,16,17,19}
var A4 = {1,2,4,6,8,10,12,15,16,17,19}
var A5 = {1,2,4,6,8,10,12,15,16,17,19}
var A6 = {1,2,4,6,8,10,12,15,16,17,19}
var A7 = {1,2,4,6,8,10,12,15,16,17,19}
var A8 = {1,2,4,6,8,10,12,15,16,17,19}
var b1 = {0,3,5,7,9,11,13,18,20}
var b2 = {0,3,5,7,9,11,13,18,20}
var b3 = {0,3,5,7,9,11,13,18,20}
var b4 = {0,3,5,7,9,11,13,18,20}
var b5 = {0,3,5,7,9,11,13,18,20}
var b6 = {0,3,5,7,9,11,13,18,20}
var b7 = {0,3,5,7,9,11,13,18,20}
var b8 = {0,3,5,7,9,11,13,18,20}
var c1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c2 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c3 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c4 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c5 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c6 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c7 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c8 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var d1 = {2,3,6,7,14,16}
var d2 = {8,9,12,13,14}
var E1 = {1,2,4,6,8,10,12,17,19}
var E2 = {1,2,4,6,8,10,12,17,19}
var E3 = {1,2,4,6,8,10,12,17,19}
var E4 = {1,2,4,6,8,10,12,17,19}
var E5 = {1,2,4,6,8,10,12,17,19}
var E6 = {1,2,4,6,8,10,12,17,19}
var E7 = {1,2,4,6,8,10,12,17,19}
var E8 = {1,2,4,6,8,10,12,17,19}
var F1 = {1,2,4,6,8,10,12,15,16,18,20}
var F2 = {1,2,4,6,8,10,12,15,16,18,20}
var F3 = {1,2,4,6,8,10,12,15,16,18,20}
var F4 = {1,2,4,6,8,10,12,15,16,18,20}
var F5 = {1,2,4,6,8,10,12,15,16,18,20}
var F6 = {1,2,4,6,8,10,12,15,16,18,20}
var F7 = {1,2,4,6,8,10,12,15,16,18,20}
var F8 = {1,2,4,6,8,10,12,15,16,18,20}
var g1 = {0,3,5,7,9,11,13,17,19}
var g2 = {0,3,5,7,9,11,13,17,19}
var g3 = {0,3,5,7,9,11,13,17,19}
var g4 = {0,3,5,7,9,11,13,17,19}
var g5 = {0,3,5,7,9,11,13,17,19}
var g6 = {0,3,5,7,9,11,13,17,19}
var g7 = {0,3,5,7,9,11,13,17,19}
var g8 = {0,3,5,7,9,11,13,17,19}
]])

local hB = hensel(B)
local hS = hensel(S)

for _, b in ipairs(hB) do
  table.insert(out, Btransitions[b])
  table.insert(out, Ctransitions[b])
end

for _, l in ipairs(alltrans) do
  if not has(hS, l) then
    table.insert(out, Dtransitions[l])
  end
end

table.insert(out, [[1, d1,c1,c2,c3,c4,c5,c6,c7, 0
1, c1,d1,c2,c3,c4,c5,c6,c7, 0
0, d2,c1,c2,c3,c4,c5,c6,c7, 1
0, c1,d2,c2,c3,c4,c5,c6,c7, 1
6, c1,c2,c3,c4,c5,c6,c7,c8, 7
7, c1,c2,c3,c4,c5,c6,c7,c8, 6
10, c1,c2,c3,c4,c5,c6,c7,c8, 11
11, c1,c2,c3,c4,c5,c6,c7,c8, 10
12, c1,c2,c3,c4,c5,c6,c7,c8, 13
13, c1,c2,c3,c4,c5,c6,c7,c8, 12
19, c1,c2,c3,c4,c5,c6,c7,c8, 20
20, c1,c2,c3,c4,c5,c6,c7,c8, 19
@COLORS
1    0  236   91
2    0  192  254
3  254    0    0
4  254  254  254
5   75   75   75
6  233   41  254
7   64    0  128
8  254  230    0
9  150  128    0
10 130  200    0
11   0  120   40
12 254  140    0
13 140   70    0
14   0    0  254
15 192  192  192
16 128  128  128
17 254  112  140
18 174    0  168
19   0  152  127
20   0   73   59
]])

out = table.concat(out, "\n")
CreateRule(rule)
g.setrule(rule)
JavaScript for Web browser:

Code: Select all

"use strict"
{
let Btransitions = {
  "0": "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",

  "1c": "0, b1,E2,b3,b4,b5,b6,b7,b8, 1",
  "1e": "0, E1,b2,b3,b4,b5,b6,b7,b8, 1",
  
  "2c": "0, b1,E2,b3,E4,b5,b6,b7,b8, 1",
  "2e": "0, E1,b2,E3,b4,b5,b6,b7,b8, 1",
  "2k": "0, E1,b2,b3,E4,b5,b6,b7,b8, 1",
  "2a": "0, E1,E2,b3,b4,b5,b6,b7,b8, 1",
  "2i": "0, E1,b2,b3,b4,E5,b6,b7,b8, 1",
  "2n": "0, b1,E2,b3,b4,b5,E6,b7,b8, 1",

  "3c": "0, b1,E2,b3,E4,b5,E6,b7,b8, 1",
  "3e": "0, E1,b2,E3,b4,E5,b6,b7,b8, 1",
  "3k": "0, E1,b2,E3,b4,b5,E6,b7,b8, 1",
  "3a": "0, E1,E2,E3,b4,b5,b6,b7,b8, 1",
  "3i": "0, E1,E2,b3,b4,b5,b6,b7,E8, 1",
  "3n": "0, E1,E2,b3,E4,b5,b6,b7,b8, 1",
  "3y": "0, E1,b2,b3,E4,b5,E6,b7,b8, 1",
  "3q": "0, E1,E2,b3,b4,b5,E6,b7,b8, 1",
  "3j": "0, E1,b2,E3,E4,b5,b6,b7,b8, 1",
  "3r": "0, E1,E2,b3,b4,E5,b6,b7,b8, 1",

  "4c": "0, b1,E2,b3,E4,b5,E6,b7,E8, 1",
  "4e": "0, E1,b2,E3,b4,E5,b6,E7,b8, 1",
  "4k": "0, E1,b2,E3,E4,b5,E6,b7,b8, 1",
  "4a": "0, E1,E2,E3,E4,b5,b6,b7,b8, 1",
  "4i": "0, E1,E2,b3,E4,E5,b6,b7,b8, 1",
  "4n": "0, E1,E2,b3,E4,b5,b6,b7,E8, 1",
  "4y": "0, E1,E2,b3,E4,b5,E6,b7,b8, 1",
  "4q": "0, E1,E2,E3,b4,b5,E6,b7,b8, 1",
  "4j": "0, E1,b2,E3,b4,E5,E6,b7,b8, 1",
  "4r": "0, E1,b2,E3,E4,E5,b6,b7,b8, 1",
  "4t": "0, E1,E2,b3,b4,E5,b6,b7,E8, 1",
  "4w": "0, E1,b2,E3,E4,b5,b6,b7,E8, 1",
  "4z": "0, E1,E2,b3,b4,E5,E6,b7,b8, 1",

  "5c": "0, E1,b2,E3,b4,E5,b6,E7,E8, 1",
  "5e": "0, b1,E2,b3,E4,b5,E6,E7,E8, 1",
  "5k": "0, b1,E2,b3,E4,E5,b6,E7,E8, 1",
  "5a": "0, b1,b2,b3,E4,E5,E6,E7,E8, 1",
  "5i": "0, b1,b2,E3,E4,E5,E6,E7,b8, 1",
  "5n": "0, b1,b2,E3,b4,E5,E6,E7,E8, 1",
  "5y": "0, b1,E2,E3,b4,E5,b6,E7,E8, 1",
  "5q": "0, b1,b2,E3,E4,E5,b6,E7,E8, 1",
  "5j": "0, b1,E2,b3,b4,E5,E6,E7,E8, 1",
  "5r": "0, b1,b2,E3,E4,b5,E6,E7,E8, 1",

  "6c": "0, E1,b2,E3,b4,E5,E6,E7,E8, 1",
  "6e": "0, b1,E2,b3,E4,E5,E6,E7,E8, 1",
  "6k": "0, b1,E2,E3,b4,E5,E6,E7,E8, 1",
  "6a": "0, b1,b2,E3,E4,E5,E6,E7,E8, 1",
  "6i": "0, b1,E2,E3,E4,b5,E6,E7,E8, 1",
  "6n": "0, E1,b2,E3,E4,E5,b6,E7,E8, 1",

  "7c": "0, E1,b2,E3,E4,E5,E6,E7,E8, 1",
  "7e": "0, b1,E2,E3,E4,E5,E6,E7,E8, 1",

  "8": "0, E1,E2,E3,E4,E5,E6,E7,E8, 1",
}

let Ctransitions = {
  "0": "0, b1,b2,b3,b4,b5,b6,b7,b8, 1",

  "1c": "0, b1,1,b3,b4,b5,b6,b7,b8, 1",
  "1e": "0, 1,b2,b3,b4,b5,b6,b7,b8, 1",
  
  "2c": "0, b1,1,b3,A4,b5,b6,b7,b8, 1\n0, b1,A2,b3,1,b5,b6,b7,b8, 1",
  "2e": "0, 1,b2,A3,b4,b5,b6,b7,b8, 1\n0, A1,b2,1,b4,b5,b6,b7,b8, 1",
  "2k": "0, 1,b2,b3,A4,b5,b6,b7,b8, 1\n0, A1,b2,b3,1,b5,b6,b7,b8, 1",
  "2a": "0, 1,A2,b3,b4,b5,b6,b7,b8, 1\n0, A1,1,b3,b4,b5,b6,b7,b8, 1",
  "2i": "0, 1,b2,b3,b4,A5,b6,b7,b8, 1\n0, A1,b2,b3,b4,1,b6,b7,b8, 1",
  "2n": "0, b1,1,b3,b4,b5,A6,b7,b8, 1\n0, b1,A2,b3,b4,b5,1,b7,b8, 1",

  "3c": "0, b1,1,b3,A4,b5,A6,b7,b8, 1\n0, b1,A2,b3,1,b5,A6,b7,b8, 1\n0, b1,A2,b3,A4,b5,1,b7,b8, 1",
  "3e": "0, 1,b2,A3,b4,A5,b6,b7,b8, 1\n0, A1,b2,1,b4,A5,b6,b7,b8, 1\n0, A1,b2,A3,b4,1,b6,b7,b8, 1",
  "3k": "0, 1,b2,A3,b4,b5,A6,b7,b8, 1\n0, A1,b2,1,b4,b5,A6,b7,b8, 1\n0, A1,b2,A3,b4,b5,1,b7,b8, 1",
  "3a": "0, 1,A2,A3,b4,b5,b6,b7,b8, 1\n0, A1,1,A3,b4,b5,b6,b7,b8, 1\n0, A1,A2,1,b4,b5,b6,b7,b8, 1",
  "3i": "0, 1,A2,b3,b4,b5,b6,b7,A8, 1\n0, A1,1,b3,b4,b5,b6,b7,A8, 1\n0, A1,A2,b3,b4,b5,b6,b7,1, 1",
  "3n": "0, 1,A2,b3,A4,b5,b6,b7,b8, 1\n0, A1,1,b3,A4,b5,b6,b7,b8, 1\n0, A1,A2,b3,1,b5,b6,b7,b8, 1",
  "3y": "0, 1,b2,b3,A4,b5,A6,b7,b8, 1\n0, A1,b2,b3,1,b5,A6,b7,b8, 1\n0, A1,b2,b3,A4,b5,1,b7,b8, 1",
  "3q": "0, 1,A2,b3,b4,b5,A6,b7,b8, 1\n0, A1,1,b3,b4,b5,A6,b7,b8, 1\n0, A1,A2,b3,b4,b5,1,b7,b8, 1",
  "3j": "0, 1,b2,A3,A4,b5,b6,b7,b8, 1\n0, A1,b2,1,A4,b5,b6,b7,b8, 1\n0, A1,b2,A3,1,b5,b6,b7,b8, 1",
  "3r": "0, 1,A2,b3,b4,A5,b6,b7,b8, 1\n0, A1,1,b3,b4,A5,b6,b7,b8, 1\n0, A1,A2,b3,b4,1,b6,b7,b8, 1",

  "4c": "0, b1,1,b3,A4,b5,A6,b7,A8, 1\n0, b1,A2,b3,1,b5,A6,b7,A8, 1\n0, b1,A2,b3,A4,b5,1,b7,A8, 1\n0, b1,A2,b3,A4,b5,A6,b7,1, 1",
  "4e": "0, 1,b2,A3,b4,A5,b6,A7,b8, 1\n0, A1,b2,1,b4,A5,b6,A7,b8, 1\n0, A1,b2,A3,b4,1,b6,A7,b8, 1\n0, A1,b2,A3,b4,A5,b6,1,b8, 1",
  "4k": "0, 1,b2,A3,A4,b5,A6,b7,b8, 1\n0, A1,b2,1,A4,b5,A6,b7,b8, 1\n0, A1,b2,A3,1,b5,A6,b7,b8, 1\n0, A1,b2,A3,A4,b5,1,b7,b8, 1",
  "4a": "0, 1,A2,A3,A4,b5,b6,b7,b8, 1\n0, A1,1,A3,A4,b5,b6,b7,b8, 1\n0, A1,A2,1,A4,b5,b6,b7,b8, 1\n0, A1,A2,A3,1,b5,b6,b7,b8, 1",
  "4i": "0, 1,A2,b3,A4,A5,b6,b7,b8, 1\n0, A1,1,b3,A4,A5,b6,b7,b8, 1\n0, A1,A2,b3,1,A5,b6,b7,b8, 1\n0, A1,A2,b3,A4,1,b6,b7,b8, 1",
  "4n": "0, 1,A2,b3,A4,b5,b6,b7,A8, 1\n0, A1,1,b3,A4,b5,b6,b7,A8, 1\n0, A1,A2,b3,1,b5,b6,b7,A8, 1\n0, A1,A2,b3,A4,b5,b6,b7,1, 1",
  "4y": "0, 1,A2,b3,A4,b5,A6,b7,b8, 1\n0, A1,1,b3,A4,b5,A6,b7,b8, 1\n0, A1,A2,b3,1,b5,A6,b7,b8, 1\n0, A1,A2,b3,A4,b5,1,b7,b8, 1",
  "4q": "0, 1,A2,A3,b4,b5,A6,b7,b8, 1\n0, A1,1,A3,b4,b5,A6,b7,b8, 1\n0, A1,A2,1,b4,b5,A6,b7,b8, 1\n0, A1,A2,A3,b4,b5,1,b7,b8, 1",
  "4j": "0, 1,b2,A3,b4,A5,A6,b7,b8, 1\n0, A1,b2,1,b4,A5,A6,b7,b8, 1\n0, A1,b2,A3,b4,1,A6,b7,b8, 1\n0, A1,b2,A3,b4,A5,1,b7,b8, 1",
  "4r": "0, 1,b2,A3,A4,A5,b6,b7,b8, 1\n0, A1,b2,1,A4,A5,b6,b7,b8, 1\n0, A1,b2,A3,1,A5,b6,b7,b8, 1\n0, A1,b2,A3,A4,1,b6,b7,b8, 1",
  "4t": "0, 1,A2,b3,b4,A5,b6,b7,A8, 1\n0, A1,1,b3,b4,A5,b6,b7,A8, 1\n0, A1,A2,b3,b4,1,b6,b7,A8, 1\n0, A1,A2,b3,b4,A5,b6,b7,1, 1",
  "4w": "0, 1,b2,A3,A4,b5,b6,b7,A8, 1\n0, A1,b2,1,A4,b5,b6,b7,A8, 1\n0, A1,b2,A3,1,b5,b6,b7,A8, 1\n0, A1,b2,A3,A4,b5,b6,b7,1, 1",
  "4z": "0, 1,A2,b3,b4,A5,A6,b7,b8, 1\n0, A1,1,b3,b4,A5,A6,b7,b8, 1\n0, A1,A2,b3,b4,1,A6,b7,b8, 1\n0, A1,A2,b3,b4,A5,1,b7,b8, 1",

  "5c": "0, 1,b2,A3,b4,A5,b6,A7,A8, 1\n0, A1,b2,1,b4,A5,b6,A7,A8, 1\n0, A1,b2,A3,b4,1,b6,A7,A8, 1\n0, A1,b2,A3,b4,A5,b6,1,A8, 1\n0, A1,b2,A3,b4,A5,b6,A7,1, 1",
  "5e": "0, b1,1,b3,A4,b5,A6,A7,A8, 1\n0, b1,A2,b3,1,b5,A6,A7,A8, 1\n0, b1,A2,b3,A4,b5,1,A7,A8, 1\n0, b1,A2,b3,A4,b5,A6,1,A8, 1\n0, b1,A2,b3,A4,b5,A6,A7,1, 1",
  "5k": "0, b1,1,b3,A4,A5,b6,A7,A8, 1\n0, b1,A2,b3,1,A5,b6,A7,A8, 1\n0, b1,A2,b3,A4,1,b6,A7,A8, 1\n0, b1,A2,b3,A4,A5,b6,1,A8, 1\n0, b1,A2,b3,A4,A5,b6,A7,1, 1",
  "5a": "0, b1,b2,b3,1,A5,A6,A7,A8, 1\n0, b1,b2,b3,A4,1,A6,A7,A8, 1\n0, b1,b2,b3,A4,A5,1,A7,A8, 1\n0, b1,b2,b3,A4,A5,A6,1,A8, 1\n0, b1,b2,b3,A4,A5,A6,A7,1, 1",
  "5i": "0, b1,b2,1,A4,A5,A6,A7,b8, 1\n0, b1,b2,A3,1,A5,A6,A7,b8, 1\n0, b1,b2,A3,A4,1,A6,A7,b8, 1\n0, b1,b2,A3,A4,A5,1,A7,b8, 1\n0, b1,b2,A3,A4,A5,A6,1,b8, 1",
  "5n": "0, b1,b2,1,b4,A5,A6,A7,A8, 1\n0, b1,b2,A3,b4,1,A6,A7,A8, 1\n0, b1,b2,A3,b4,A5,1,A7,A8, 1\n0, b1,b2,A3,b4,A5,A6,1,A8, 1\n0, b1,b2,A3,b4,A5,A6,A7,1, 1",
  "5y": "0, b1,1,A3,b4,A5,b6,A7,A8, 1\n0, b1,A2,1,b4,A5,b6,A7,A8, 1\n0, b1,A2,A3,b4,1,b6,A7,A8, 1\n0, b1,A2,A3,b4,A5,b6,1,A8, 1\n0, b1,A2,A3,b4,A5,b6,A7,1, 1",
  "5q": "0, b1,b2,1,A4,A5,b6,A7,A8, 1\n0, b1,b2,A3,1,A5,b6,A7,A8, 1\n0, b1,b2,A3,A4,1,b6,A7,A8, 1\n0, b1,b2,A3,A4,A5,b6,1,A8, 1\n0, b1,b2,A3,A4,A5,b6,A7,1, 1",
  "5j": "0, b1,1,b3,b4,A5,A6,A7,A8, 1\n0, b1,A2,b3,b4,1,A6,A7,A8, 1\n0, b1,A2,b3,b4,A5,1,A7,A8, 1\n0, b1,A2,b3,b4,A5,A6,1,A8, 1\n0, b1,A2,b3,b4,A5,A6,A7,1, 1",
  "5r": "0, b1,b2,1,A4,b5,A6,A7,A8, 1\n0, b1,b2,A3,1,b5,A6,A7,A8, 1\n0, b1,b2,A3,A4,b5,1,A7,A8, 1\n0, b1,b2,A3,A4,b5,A6,1,A8, 1\n0, b1,b2,A3,A4,b5,A6,A7,1, 1",

  "6c": "0, 1,b2,A3,b4,A5,A6,A7,A8, 1\n0, A1,b2,1,b4,A5,A6,A7,A8, 1\n0, A1,b2,A3,b4,1,A6,A7,A8, 1\n0, A1,b2,A3,b4,A5,1,A7,A8, 1\n0, A1,b2,A3,b4,A5,A6,1,A8, 1\n0, A1,b2,A3,b4,A5,A6,A7,1, 1",
  "6e": "0, b1,1,b3,A4,A5,A6,A7,A8, 1\n0, b1,A2,b3,1,A5,A6,A7,A8, 1\n0, b1,A2,b3,A4,1,A6,A7,A8, 1\n0, b1,A2,b3,A4,A5,1,A7,A8, 1\n0, b1,A2,b3,A4,A5,A6,1,A8, 1\n0, b1,A2,b3,A4,A5,A6,A7,1, 1",
  "6k": "0, b1,1,A3,b4,A5,A6,A7,A8, 1\n0, b1,A2,1,b4,A5,A6,A7,A8, 1\n0, b1,A2,A3,b4,1,A6,A7,A8, 1\n0, b1,A2,A3,b4,A5,1,A7,A8, 1\n0, b1,A2,A3,b4,A5,A6,1,A8, 1\n0, b1,A2,A3,b4,A5,A6,A7,1, 1",
  "6a": "0, b1,b2,1,A4,A5,A6,A7,A8, 1\n0, b1,b2,A3,1,A5,A6,A7,A8, 1\n0, b1,b2,A3,A4,1,A6,A7,A8, 1\n0, b1,b2,A3,A4,A5,1,A7,A8, 1\n0, b1,b2,A3,A4,A5,A6,1,A8, 1\n0, b1,b2,A3,A4,A5,A6,A7,1, 1",
  "6i": "0, b1,1,A3,A4,b5,A6,A7,A8, 1\n0, b1,A2,1,A4,b5,A6,A7,A8, 1\n0, b1,A2,A3,1,b5,A6,A7,A8, 1\n0, b1,A2,A3,A4,b5,1,A7,A8, 1\n0, b1,A2,A3,A4,b5,A6,1,A8, 1\n0, b1,A2,A3,A4,b5,A6,A7,1, 1",
  "6n": "0, 1,b2,A3,A4,A5,b6,A7,A8, 1\n0, A1,b2,1,A4,A5,b6,A7,A8, 1\n0, A1,b2,A3,1,A5,b6,A7,A8, 1\n0, A1,b2,A3,A4,1,b6,A7,A8, 1\n0, A1,b2,A3,A4,A5,b6,1,A8, 1\n0, A1,b2,A3,A4,A5,b6,A7,1, 1",

  "7c": "0, 1,b2,A3,A4,A5,A6,A7,A8, 1\n0, A1,b2,1,A4,A5,A6,A7,A8, 1\n0, A1,b2,A3,1,A5,A6,A7,A8, 1\n0, A1,b2,A3,A4,1,A6,A7,A8, 1\n0, A1,b2,A3,A4,A5,1,A7,A8, 1\n0, A1,b2,A3,A4,A5,A6,1,A8, 1\n0, A1,b2,A3,A4,A5,A6,A7,1, 1\n",
  "7e": "0, b1,1,A3,A4,A5,A6,A7,A8, 1\n0, b1,A2,1,A4,A5,A6,A7,A8, 1\n0, b1,A2,A3,1,A5,A6,A7,A8, 1\n0, b1,A2,A3,A4,1,A6,A7,A8, 1\n0, b1,A2,A3,A4,A5,1,A7,A8, 1\n0, b1,A2,A3,A4,A5,A6,1,A8, 1\n0, b1,A2,A3,A4,A5,A6,A7,1, 1",

  "8": "0, 1,A2,A3,A4,A5,A6,A7,A8, 1\n0, A1,1,A3,A4,A5,A6,A7,A8, 1\n0, A1,A2,1,A4,A5,A6,A7,A8, 1\n0, A1,A2,A3,1,A5,A6,A7,A8, 1\n0, A1,A2,A3,A4,1,A6,A7,A8, 1\n0, A1,A2,A3,A4,A5,1,A7,A8, 1\n0, A1,A2,A3,A4,A5,A6,1,A8, 1\n0, A1,A2,A3,A4,A5,A6,A7,1, 1"
}

let Dtransitions = {
  "0": "1, g1,g2,g3,g4,g5,g6,g7,g8, 0",

  "1c": "1, g1,F2,g3,g4,g5,g6,g7,g8, 0",
  "1e": "1, F1,g2,g3,g4,g5,g6,g7,g8, 0",
  
  "2c": "1, g1,F2,g3,F4,g5,g6,g7,g8, 0",
  "2e": "1, F1,g2,F3,g4,g5,g6,g7,g8, 0",
  "2k": "1, F1,g2,g3,F4,g5,g6,g7,g8, 0",
  "2a": "1, F1,F2,g3,g4,g5,g6,g7,g8, 0",
  "2i": "1, F1,g2,g3,g4,F5,g6,g7,g8, 0",
  "2n": "1, g1,F2,g3,g4,g5,F6,g7,g8, 0",

  "3c": "1, g1,F2,g3,F4,g5,F6,g7,g8, 0",
  "3e": "1, F1,g2,F3,g4,F5,g6,g7,g8, 0",
  "3k": "1, F1,g2,F3,g4,g5,F6,g7,g8, 0",
  "3a": "1, F1,F2,F3,g4,g5,g6,g7,g8, 0",
  "3i": "1, F1,F2,g3,g4,g5,g6,g7,F8, 0",
  "3n": "1, F1,F2,g3,F4,g5,g6,g7,g8, 0",
  "3y": "1, F1,g2,g3,F4,g5,F6,g7,g8, 0",
  "3q": "1, F1,F2,g3,g4,g5,F6,g7,g8, 0",
  "3j": "1, F1,g2,F3,F4,g5,g6,g7,g8, 0",
  "3r": "1, F1,F2,g3,g4,F5,g6,g7,g8, 0",

  "4c": "1, g1,F2,g3,F4,g5,F6,g7,F8, 0",
  "4e": "1, F1,g2,F3,g4,F5,g6,F7,g8, 0",
  "4k": "1, F1,g2,F3,F4,g5,F6,g7,g8, 0",
  "4a": "1, F1,F2,F3,F4,g5,g6,g7,g8, 0",
  "4i": "1, F1,F2,g3,F4,F5,g6,g7,g8, 0",
  "4n": "1, F1,F2,g3,F4,g5,g6,g7,F8, 0",
  "4y": "1, F1,F2,g3,F4,g5,F6,g7,g8, 0",
  "4q": "1, F1,F2,F3,g4,g5,F6,g7,g8, 0",
  "4j": "1, F1,g2,F3,g4,F5,F6,g7,g8, 0",
  "4r": "1, F1,g2,F3,F4,F5,g6,g7,g8, 0",
  "4t": "1, F1,F2,g3,g4,F5,g6,g7,F8, 0",
  "4w": "1, F1,g2,F3,F4,g5,g6,g7,F8, 0",
  "4z": "1, F1,F2,g3,g4,F5,F6,g7,g8, 0",

  "5c": "1, F1,g2,F3,g4,F5,g6,F7,F8, 0",
  "5e": "1, g1,F2,g3,F4,g5,F6,F7,F8, 0",
  "5k": "1, g1,F2,g3,F4,F5,g6,F7,F8, 0",
  "5a": "1, g1,g2,g3,F4,F5,F6,F7,F8, 0",
  "5i": "1, g1,g2,F3,F4,F5,F6,F7,g8, 0",
  "5n": "1, g1,g2,F3,g4,F5,F6,F7,F8, 0",
  "5y": "1, g1,F2,F3,g4,F5,g6,F7,F8, 0",
  "5q": "1, g1,g2,F3,F4,F5,g6,F7,F8, 0",
  "5j": "1, g1,F2,g3,g4,F5,F6,F7,F8, 0",
  "5r": "1, g1,g2,F3,F4,g5,F6,F7,F8, 0",

  "6c": "1, F1,g2,F3,g4,F5,F6,F7,F8, 0",
  "6e": "1, g1,F2,g3,F4,F5,F6,F7,F8, 0",
  "6k": "1, g1,F2,F3,g4,F5,F6,F7,F8, 0",
  "6a": "1, g1,g2,F3,F4,F5,F6,F7,F8, 0",
  "6i": "1, g1,F2,F3,F4,g5,F6,F7,F8, 0",
  "6n": "1, F1,g2,F3,F4,F5,g6,F7,F8, 0",

  "7c": "1, F1,g2,F3,F4,F5,F6,F7,F8, 0",
  "7e": "1, g1,F2,F3,F4,F5,F6,F7,F8, 0",

  "8": "1, F1,F2,F3,F4,F5,F6,F7,F8, 0",
}

let nontotalistic = {
  "0": ["0"],
  "1": ["1c", "1e"],
  "2": ["2c", "2e", "2k", "2a", "2i", "2n"],
  "3": ["3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r"],
  "4": ["4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z"],
  "5": ["5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r"],
  "6": ["6c", "6e", "6k", "6a", "6i", "6n"],
  "7": ["7c", "7e"],
  "8": ["8"],
  "9": []
}

let alltrans = ["0", "1c", "1e", "2c", "2e", "2k", "2a", "2i", "2n", "3c", "3e", "3k", "3a", "3i", "3n", "3y", "3q", "3j", "3r", "4c", "4e", "4k", "4a", "4i", "4n", "4y", "4q", "4j", "4r", "4t", "4w", "4z", "5c", "5e", "5k", "5a", "5i", "5n", "5y", "5q", "5j", "5r", "6c", "6e", "6k", "6a", "6i", "6n", "7c", "7e", "8"]

let rule = prompt("rule: ");
let B = rule.split("/")[0].replace(/^b/i, "").split(""); B.push("9");
let S = rule.split("/")[1].replace(/^s/i, "").split(""); S.push("9");

let hensel = function(L) {
  let trans, neg, neglist, N = "9";
  trans = []; neg = false; neglist = [];
  for (let i = 0, n = L.length; i < n; i++) {
    let x = L[i];
    if (x >= '0' && x <= '8' && L[i+1] >= '0' && L[i+1] <= '9') {
      neg = false;
      for (let e of nontotalistic[x])
        trans.push(e);
    } else if (x >= '0' && x <= '9') {
      if (!neglist.length) {
        N = x; neg = false;
      } else {
        for (let nt of nontotalistic[N]) {
          if (!neglist.includes(nt))
            trans.push(nt);
        }
        N = x; neg = false; neglist.length = 0;
      }
    } else if (x === "-") {
      neg = true;
    } else if (neg) {
      neglist.push(N + x);
    } else {
      trans.push(N + x);
    }
  }
  return trans;
}

let out = "@RULE " + rule.replace(/\//g, "") + "Investigator\n";

out += `@TABLE
n_states:21
neighborhood:Moore
symmetries:rotate4reflect
var A1 = {1,2,4,6,8,10,12,15,16,17,19}
var A2 = {1,2,4,6,8,10,12,15,16,17,19}
var A3 = {1,2,4,6,8,10,12,15,16,17,19}
var A4 = {1,2,4,6,8,10,12,15,16,17,19}
var A5 = {1,2,4,6,8,10,12,15,16,17,19}
var A6 = {1,2,4,6,8,10,12,15,16,17,19}
var A7 = {1,2,4,6,8,10,12,15,16,17,19}
var A8 = {1,2,4,6,8,10,12,15,16,17,19}
var b1 = {0,3,5,7,9,11,13,18,20}
var b2 = {0,3,5,7,9,11,13,18,20}
var b3 = {0,3,5,7,9,11,13,18,20}
var b4 = {0,3,5,7,9,11,13,18,20}
var b5 = {0,3,5,7,9,11,13,18,20}
var b6 = {0,3,5,7,9,11,13,18,20}
var b7 = {0,3,5,7,9,11,13,18,20}
var b8 = {0,3,5,7,9,11,13,18,20}
var c1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c2 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c3 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c4 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c5 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c6 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c7 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var c8 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
var d1 = {2,3,6,7,14,16}
var d2 = {8,9,12,13,14}
var E1 = {1,2,4,6,8,10,12,17,19}
var E2 = {1,2,4,6,8,10,12,17,19}
var E3 = {1,2,4,6,8,10,12,17,19}
var E4 = {1,2,4,6,8,10,12,17,19}
var E5 = {1,2,4,6,8,10,12,17,19}
var E6 = {1,2,4,6,8,10,12,17,19}
var E7 = {1,2,4,6,8,10,12,17,19}
var E8 = {1,2,4,6,8,10,12,17,19}
var F1 = {1,2,4,6,8,10,12,15,16,18,20}
var F2 = {1,2,4,6,8,10,12,15,16,18,20}
var F3 = {1,2,4,6,8,10,12,15,16,18,20}
var F4 = {1,2,4,6,8,10,12,15,16,18,20}
var F5 = {1,2,4,6,8,10,12,15,16,18,20}
var F6 = {1,2,4,6,8,10,12,15,16,18,20}
var F7 = {1,2,4,6,8,10,12,15,16,18,20}
var F8 = {1,2,4,6,8,10,12,15,16,18,20}
var g1 = {0,3,5,7,9,11,13,17,19}
var g2 = {0,3,5,7,9,11,13,17,19}
var g3 = {0,3,5,7,9,11,13,17,19}
var g4 = {0,3,5,7,9,11,13,17,19}
var g5 = {0,3,5,7,9,11,13,17,19}
var g6 = {0,3,5,7,9,11,13,17,19}
var g7 = {0,3,5,7,9,11,13,17,19}
var g8 = {0,3,5,7,9,11,13,17,19}
` + '\n';

let hB = hensel(B), hS = hensel(S);

for (let b of hB) {
  out += Btransitions[b] + '\n';
  out += Ctransitions[b] + '\n';
}

for (let l of alltrans) {
  if (!hS.includes(l))
    out += Dtransitions[l] + '\n';
}

out += `\
1, d1,c1,c2,c3,c4,c5,c6,c7, 0
1, c1,d1,c2,c3,c4,c5,c6,c7, 0
0, d2,c1,c2,c3,c4,c5,c6,c7, 1
0, c1,d2,c2,c3,c4,c5,c6,c7, 1
6, c1,c2,c3,c4,c5,c6,c7,c8, 7
7, c1,c2,c3,c4,c5,c6,c7,c8, 6
10, c1,c2,c3,c4,c5,c6,c7,c8, 11
11, c1,c2,c3,c4,c5,c6,c7,c8, 10
12, c1,c2,c3,c4,c5,c6,c7,c8, 13
13, c1,c2,c3,c4,c5,c6,c7,c8, 12
19, c1,c2,c3,c4,c5,c6,c7,c8, 20
20, c1,c2,c3,c4,c5,c6,c7,c8, 19
@COLORS
1    0  236   91
2    0  192  254
3  254    0    0
4  254  254  254
5   75   75   75
6  233   41  254
7   64    0  128
8  254  230    0
9  150  128    0
10 130  200    0
11   0  120   40
12 254  140    0
13 140   70    0
14   0    0  254
15 192  192  192
16 128  128  128
17 254  112  140
18 174    0  168
19   0  152  127
20   0   73   59
`;

document.open();
document.write("<pre>" + out + "</pre>");
document.close();
}

User avatar
hotcrystal0
Posts: 2194
Joined: July 3rd, 2020, 5:32 pm
Location: United States

Re: [R]Investigator rule generator

Post by hotcrystal0 » October 16th, 2023, 3:05 pm

This might not be necessary, since Chris Rowett is adding [R]Investigator support to Golly.

Code: Select all

x = 192, y = 53, rule = B3/S23
33$42b4o$41b6o$40b2ob4o$41b2o3$41b2o$39bo6bo$38bo8bo$38bo8bo$38b9o3$42b
4o$41b6o$40b2ob4o$41b2o!

User avatar
confocaloid
Posts: 2939
Joined: February 8th, 2022, 3:15 pm

Re: [R]Investigator rule generator

Post by confocaloid » October 16th, 2023, 6:02 pm

Link to the original Python script: viewtopic.php?p=151690#p151690
hotcrystal0 wrote:
October 16th, 2023, 3:05 pm
Rule:LifeSuper and Rule:LifeHistory are kept for compatibility with older/other software and for archival. Associated ruletables and scripts are still useful, even if support is implemented in new versions of software.
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

User avatar
hotcrystal0
Posts: 2194
Joined: July 3rd, 2020, 5:32 pm
Location: United States

Re: [R]Investigator rule generator

Post by hotcrystal0 » October 16th, 2023, 7:15 pm

confocaloid wrote:
October 16th, 2023, 6:02 pm
Link to the original Python script: viewtopic.php?p=151690#p151690
hotcrystal0 wrote:
October 16th, 2023, 3:05 pm
Rule:LifeSuper and Rule:LifeHistory are kept for compatibility with older/other software and for archival. Associated ruletables and scripts are still useful, even if support is implemented in new versions of software.
oh.

Code: Select all

x = 192, y = 53, rule = B3/S23
33$42b4o$41b6o$40b2ob4o$41b2o3$41b2o$39bo6bo$38bo8bo$38bo8bo$38b9o3$42b
4o$41b6o$40b2ob4o$41b2o!

Post Reply