diff options
Diffstat (limited to 'presets/scripts')
| -rwxr-xr-x | presets/scripts/parse.py | 2 | ||||
| -rwxr-xr-x | presets/scripts/parse_lexicon.py | 54 | ||||
| -rw-r--r-- | presets/scripts/patterns.json | 6732 |
3 files changed, 6787 insertions, 1 deletions
diff --git a/presets/scripts/parse.py b/presets/scripts/parse.py index fb06bce..51d0eb8 100755 --- a/presets/scripts/parse.py +++ b/presets/scripts/parse.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 -with open("/home/pengu/test/rust-dev/gof-rs/presets/patterns-striped.txt", "r") as file: +with open("/home/omar/programming/rust-dev/gof-rs/presets/patterns-striped.txt", "r") as file: with open("./new.txt", "w") as newfile: cnt = 0 for line in file.readlines(): diff --git a/presets/scripts/parse_lexicon.py b/presets/scripts/parse_lexicon.py new file mode 100755 index 0000000..253b2dd --- /dev/null +++ b/presets/scripts/parse_lexicon.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 +import re +import json + +def parse_patterns(file_content): + # Split the text into sections by the pattern delimiter + sections = file_content.split("\n\n") + print(sections) + + patterns = [] + for section in sections: + # Extract the pattern name + name_match = re.match(r":([\w\-\(\),/ ]+):", section) + if not name_match: + continue + name = name_match.group(1).strip() + + + # Extract the pattern description + pattern_match = re.search(r"\n\t.*([\.\*]*\n)", section) + pattern = pattern_match.group(0).strip() if pattern_match else None + + # Extract the discoverer + discoverer_match = re.search(r"Found by ([\w\s]+) in", section, re.IGNORECASE) + discoverer = discoverer_match.group(1).strip() if discoverer_match else None + + # Add the extracted data to the patterns list + patterns.append({ + "name": name, + "pattern": pattern, + "discoverer": discoverer + }) + + return patterns + +# Load the input file +with open("../lexicon_stripped.txt", "r") as file: + content = file.read() + +# Parse the patterns +parsed_patterns = parse_patterns(content) + +print(parsed_patterns[0]) + +# Output the result as JSON +output_file = "patterns.json" +with open(output_file, "w") as json_file: + json.dump(parsed_patterns, json_file, indent=4) + + + + +print(f"Patterns saved to {output_file}") + diff --git a/presets/scripts/patterns.json b/presets/scripts/patterns.json new file mode 100644 index 0000000..9a46072 --- /dev/null +++ b/presets/scripts/patterns.json @@ -0,0 +1,6732 @@ +[ + { + "name": "0hd Demonoid", + "pattern": null, + "discoverer": null + }, + { + "name": "101", + "pattern": "....**......**....", + "discoverer": "Achim Flammenkamp" + }, + { + "name": "10hd Demonoid", + "pattern": null, + "discoverer": null + }, + { + "name": "119P4H1V0", + "pattern": ".................................*.", + "discoverer": null + }, + { + "name": "1-2-3", + "pattern": "..**......", + "discoverer": null + }, + { + "name": "1-2-3-4", + "pattern": ".....*.....", + "discoverer": null + }, + { + "name": "135-degree MWSS-to-G", + "pattern": "......**......", + "discoverer": null + }, + { + "name": "14-ner", + "pattern": null, + "discoverer": null + }, + { + "name": "17c/45 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "180-degree kickback", + "pattern": ".*.", + "discoverer": null + }, + { + "name": "1G seed", + "pattern": null, + "discoverer": null + }, + { + "name": "(2,1)c/6 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "(23,5)c/79 Herschel climber", + "pattern": "...............*.*...............*..", + "discoverer": null + }, + { + "name": "24-cell quadratic growth", + "pattern": null, + "discoverer": null + }, + { + "name": "25-cell quadratic growth", + "pattern": null, + "discoverer": null + }, + { + "name": "26-cell quadratic growth", + "pattern": null, + "discoverer": null + }, + { + "name": "295P5H1V1", + "pattern": ".............**.....................................", + "discoverer": null + }, + { + "name": "2c/3", + "pattern": null, + "discoverer": null + }, + { + "name": "2c/3 wire", + "pattern": "......*..*.......................................", + "discoverer": null + }, + { + "name": "2c/5 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "2c/7 spaceship", + "pattern": null, + "discoverer": "David Eppstein" + }, + { + "name": "2 eaters", + "pattern": null, + "discoverer": null + }, + { + "name": "2-engine Cordership", + "pattern": "............*............................", + "discoverer": null + }, + { + "name": "2-glider collision", + "pattern": null, + "discoverer": null + }, + { + "name": "2-glider mess", + "pattern": "..*.........", + "discoverer": null + }, + { + "name": "30P5H2V0", + "pattern": "....*........", + "discoverer": null + }, + { + "name": "31c/240", + "pattern": null, + "discoverer": null + }, + { + "name": "31c/240 Herschel-pair climber", + "pattern": "**.........................................................**", + "discoverer": null + }, + { + "name": "3c/7 spaceship", + "pattern": null, + "discoverer": "Tim Coe" + }, + { + "name": "3-engine Cordership", + "pattern": null, + "discoverer": null + }, + { + "name": "44P5H2V0", + "pattern": "....*.....*....", + "discoverer": null + }, + { + "name": "45-degree LWSS-to-G", + "pattern": null, + "discoverer": null + }, + { + "name": "45-degree MWSS-to-G", + "pattern": ".........*.**....*.....", + "discoverer": null + }, + { + "name": "4-8-12 diamond", + "pattern": "....****....", + "discoverer": null + }, + { + "name": "4 boats", + "pattern": "...*....", + "discoverer": null + }, + { + "name": "4F", + "pattern": null, + "discoverer": null + }, + { + "name": "4g-to-5g reaction", + "pattern": "*.*..........................................", + "discoverer": "Dieter Leithner" + }, + { + "name": "56P6H1V0", + "pattern": ".....***..........***.....", + "discoverer": null + }, + { + "name": "58P5H1V1", + "pattern": "....................**.", + "discoverer": null + }, + { + "name": "5c/9 wire", + "pattern": "....*.**............................................", + "discoverer": null + }, + { + "name": "60P312", + "pattern": "....................**....................", + "discoverer": null + }, + { + "name": "60P5H2V0", + "pattern": ".....*.......*.....", + "discoverer": null + }, + { + "name": "67P5H1V1", + "pattern": ".....***..............", + "discoverer": null + }, + { + "name": "70P5H2V0", + "pattern": "..*............*..", + "discoverer": null + }, + { + "name": "7x9 eater", + "pattern": ".*..........", + "discoverer": null + }, + { + "name": "83P7H1V1", + "pattern": null, + "discoverer": null + }, + { + "name": "86P5H1V1", + "pattern": ".........***...........", + "discoverer": null + }, + { + "name": "90-degree kickback", + "pattern": null, + "discoverer": null + }, + { + "name": "92P156", + "pattern": "....................**....................", + "discoverer": null + }, + { + "name": "9hd", + "pattern": null, + "discoverer": null + }, + { + "name": "acorn", + "pattern": ".*.....", + "discoverer": null + }, + { + "name": "A for all", + "pattern": "....**....", + "discoverer": "Dean Hickerson" + }, + { + "name": "against the grain", + "pattern": "...*..*..*..*..*..*..*..*..*..*..*...", + "discoverer": "Hartmut Holzwart" + }, + { + "name": "against-the-grain grey ship", + "pattern": null, + "discoverer": null + }, + { + "name": "agar", + "pattern": null, + "discoverer": null + }, + { + "name": "aircraft carrier", + "pattern": "**..", + "discoverer": null + }, + { + "name": "airforce", + "pattern": ".......*......", + "discoverer": "Dave Buckingham" + }, + { + "name": "AK47 reaction", + "pattern": ".....*....", + "discoverer": "Paul Callahan" + }, + { + "name": "AK94 gun", + "pattern": ".......*.......*.......**.............", + "discoverer": null + }, + { + "name": "Al Jolson", + "pattern": null, + "discoverer": null + }, + { + "name": "almost knightship", + "pattern": "....***......", + "discoverer": null + }, + { + "name": "almosymmetric", + "pattern": "....*....", + "discoverer": null + }, + { + "name": "ambidextrous", + "pattern": null, + "discoverer": null + }, + { + "name": "anteater", + "pattern": null, + "discoverer": null + }, + { + "name": "antlers", + "pattern": null, + "discoverer": null + }, + { + "name": "ants", + "pattern": "**...**...**...**...**...**...**...**...**..", + "discoverer": null + }, + { + "name": "antstretcher", + "pattern": "......................................................**.......", + "discoverer": null + }, + { + "name": "anvil", + "pattern": ".****..", + "discoverer": null + }, + { + "name": "apgluxe", + "pattern": null, + "discoverer": null + }, + { + "name": "apgmera", + "pattern": null, + "discoverer": null + }, + { + "name": "apgnano", + "pattern": null, + "discoverer": null + }, + { + "name": "apgsearch", + "pattern": null, + "discoverer": null + }, + { + "name": "APPS", + "pattern": null, + "discoverer": "Alan Hensel" + }, + { + "name": "ark", + "pattern": "...........................*....", + "discoverer": null + }, + { + "name": "arm", + "pattern": "............***............", + "discoverer": null + }, + { + "name": "armless", + "pattern": null, + "discoverer": null + }, + { + "name": "ash", + "pattern": null, + "discoverer": null + }, + { + "name": "asynchronous", + "pattern": null, + "discoverer": null + }, + { + "name": "aVerage", + "pattern": "...**........", + "discoverer": null + }, + { + "name": "B", + "pattern": null, + "discoverer": null + }, + { + "name": "B29", + "pattern": ".......***.......", + "discoverer": "Hartmut\n Holzwart" + }, + { + "name": "B-52 bomber", + "pattern": ".**....................................", + "discoverer": "Noam Elkies" + }, + { + "name": "B60", + "pattern": "*...........**.....**", + "discoverer": null + }, + { + "name": "babbling brook", + "pattern": ".......*........", + "discoverer": null + }, + { + "name": "backrake", + "pattern": ".....***...........***.....", + "discoverer": null + }, + { + "name": "backward glider", + "pattern": null, + "discoverer": null + }, + { + "name": "bait", + "pattern": null, + "discoverer": null + }, + { + "name": "baker", + "pattern": "..............**", + "discoverer": null + }, + { + "name": "bakery", + "pattern": "....**....", + "discoverer": null + }, + { + "name": "banana spark", + "pattern": "..*....", + "discoverer": null + }, + { + "name": "barberpole", + "pattern": null, + "discoverer": "the MIT group" + }, + { + "name": "barberpole intersection", + "pattern": null, + "discoverer": null + }, + { + "name": "barbershop", + "pattern": "..........*.*.......", + "discoverer": null + }, + { + "name": "barge", + "pattern": ".*..", + "discoverer": null + }, + { + "name": "basic shuttle", + "pattern": null, + "discoverer": null + }, + { + "name": "beacon", + "pattern": "**..", + "discoverer": null + }, + { + "name": "beacon maker", + "pattern": "..............**", + "discoverer": null + }, + { + "name": "beehive", + "pattern": ".**.", + "discoverer": null + }, + { + "name": "beehive and dock", + "pattern": "...**.", + "discoverer": null + }, + { + "name": "beehive on big table", + "pattern": null, + "discoverer": null + }, + { + "name": "beehive pusher", + "pattern": null, + "discoverer": null + }, + { + "name": "beehive stopper", + "pattern": ".*..........................", + "discoverer": null + }, + { + "name": "beehive wire", + "pattern": null, + "discoverer": null + }, + { + "name": "beehive with tail", + "pattern": ".**...", + "discoverer": null + }, + { + "name": "Bellman", + "pattern": null, + "discoverer": null + }, + { + "name": "belly spark", + "pattern": null, + "discoverer": null + }, + { + "name": "bent keys", + "pattern": ".*........*.", + "discoverer": null + }, + { + "name": "BFx59H", + "pattern": ".**.....................", + "discoverer": null + }, + { + "name": "B-heptomino", + "pattern": "*.**", + "discoverer": null + }, + { + "name": "B-heptomino shuttle", + "pattern": null, + "discoverer": null + }, + { + "name": "bi-block", + "pattern": "**.**", + "discoverer": null + }, + { + "name": "bi-block fuse", + "pattern": "**..**..**..**..**..**..**..**..**..**..**..**.", + "discoverer": null + }, + { + "name": "bi-block puffer", + "pattern": "...........*.*............**..............................", + "discoverer": null + }, + { + "name": "bi-boat", + "pattern": null, + "discoverer": null + }, + { + "name": "biclock", + "pattern": "..*....", + "discoverer": null + }, + { + "name": "big beacon", + "pattern": null, + "discoverer": null + }, + { + "name": "big fish", + "pattern": null, + "discoverer": null + }, + { + "name": "big glider", + "pattern": "...***............", + "discoverer": "Dean Hickerson" + }, + { + "name": "big S", + "pattern": "....**.", + "discoverer": null + }, + { + "name": "big table", + "pattern": null, + "discoverer": null + }, + { + "name": "billiard table", + "pattern": null, + "discoverer": null + }, + { + "name": "billiard table configuration", + "pattern": null, + "discoverer": null + }, + { + "name": "bi-loaf", + "pattern": ".*.....", + "discoverer": null + }, + { + "name": "bipole", + "pattern": "**...", + "discoverer": null + }, + { + "name": "bi-pond", + "pattern": ".**....", + "discoverer": null + }, + { + "name": "bi-ship", + "pattern": null, + "discoverer": null + }, + { + "name": "bistable switch", + "pattern": "................................*........................", + "discoverer": "Paul Callahan" + }, + { + "name": "bit", + "pattern": null, + "discoverer": null + }, + { + "name": "biting off more than they can chew", + "pattern": "*...........", + "discoverer": null + }, + { + "name": "blasting cap", + "pattern": null, + "discoverer": null + }, + { + "name": "blinker", + "pattern": null, + "discoverer": null + }, + { + "name": "blinker fuse", + "pattern": "....................................................*.", + "discoverer": null + }, + { + "name": "blinker puffer", + "pattern": "...*.....", + "discoverer": "Robert Wainwright" + }, + { + "name": "blinker pull", + "pattern": "***.", + "discoverer": null + }, + { + "name": "blinkers bit pole", + "pattern": ".....**", + "discoverer": null + }, + { + "name": "blinker ship", + "pattern": "..........****.............", + "discoverer": null + }, + { + "name": "block", + "pattern": "**", + "discoverer": null + }, + { + "name": "blockade", + "pattern": "**.....................", + "discoverer": null + }, + { + "name": "block and dock", + "pattern": "...**.", + "discoverer": null + }, + { + "name": "block and glider", + "pattern": "**..", + "discoverer": null + }, + { + "name": "blocker", + "pattern": "......*.*.", + "discoverer": null + }, + { + "name": "block factory", + "pattern": null, + "discoverer": null + }, + { + "name": "Blockic", + "pattern": null, + "discoverer": null + }, + { + "name": "block keeper", + "pattern": null, + "discoverer": null + }, + { + "name": "block-laying switch engine", + "pattern": null, + "discoverer": null + }, + { + "name": "block on big table", + "pattern": null, + "discoverer": null + }, + { + "name": "block on table", + "pattern": "..**", + "discoverer": null + }, + { + "name": "block pull", + "pattern": "**.", + "discoverer": null + }, + { + "name": "block pusher", + "pattern": "...................*.*", + "discoverer": null + }, + { + "name": "blom", + "pattern": "*..........*", + "discoverer": null + }, + { + "name": "blonk", + "pattern": null, + "discoverer": null + }, + { + "name": "blonker", + "pattern": "*..**....*..", + "discoverer": "Nicolay Beluchenko" + }, + { + "name": "BLSE", + "pattern": null, + "discoverer": null + }, + { + "name": "BNE14T30", + "pattern": "...........**....", + "discoverer": null + }, + { + "name": "boat", + "pattern": "**.", + "discoverer": null + }, + { + "name": "boat-bit", + "pattern": "......*..................", + "discoverer": null + }, + { + "name": "boat maker", + "pattern": "................**", + "discoverer": null + }, + { + "name": "boat on boat", + "pattern": null, + "discoverer": null + }, + { + "name": "boat-ship-tie", + "pattern": null, + "discoverer": null + }, + { + "name": "boatstretcher", + "pattern": null, + "discoverer": null + }, + { + "name": "boat-tie", + "pattern": ".*....", + "discoverer": null + }, + { + "name": "bobsled", + "pattern": null, + "discoverer": null + }, + { + "name": "boojum reflector", + "pattern": "....*.*......**.............................", + "discoverer": null + }, + { + "name": "bookend", + "pattern": "..**", + "discoverer": null + }, + { + "name": "bookends", + "pattern": "**...**", + "discoverer": null + }, + { + "name": "boss", + "pattern": ".....*.....", + "discoverer": null + }, + { + "name": "bottle", + "pattern": "....**......**....", + "discoverer": "Achim Flammenkamp" + }, + { + "name": "bouncer", + "pattern": null, + "discoverer": null + }, + { + "name": "bounding box", + "pattern": null, + "discoverer": null + }, + { + "name": "bow tie", + "pattern": null, + "discoverer": null + }, + { + "name": "brain", + "pattern": ".***.........***.", + "discoverer": null + }, + { + "name": "branching spaceship", + "pattern": ".....................*.................*......................", + "discoverer": null + }, + { + "name": "breeder", + "pattern": null, + "discoverer": null + }, + { + "name": "bridge", + "pattern": null, + "discoverer": null + }, + { + "name": "broken lines", + "pattern": null, + "discoverer": null + }, + { + "name": "broth", + "pattern": null, + "discoverer": null + }, + { + "name": "BRx46B", + "pattern": "...........**", + "discoverer": null + }, + { + "name": "BTC", + "pattern": null, + "discoverer": null + }, + { + "name": "B track", + "pattern": null, + "discoverer": null + }, + { + "name": "BTS", + "pattern": "..**...", + "discoverer": null + }, + { + "name": "buckaroo", + "pattern": "..*.....................", + "discoverer": "Dave Buckingham" + }, + { + "name": "bullet heptomino", + "pattern": ".*.", + "discoverer": null + }, + { + "name": "bumper", + "pattern": null, + "discoverer": null + }, + { + "name": "bun", + "pattern": ".**.", + "discoverer": null + }, + { + "name": "bunnies", + "pattern": "*.....*.", + "discoverer": null + }, + { + "name": "burloaf", + "pattern": null, + "discoverer": null + }, + { + "name": "burloaferimeter", + "pattern": "....**....", + "discoverer": "Dave Buckingham" + }, + { + "name": "burn", + "pattern": null, + "discoverer": null + }, + { + "name": "bushing", + "pattern": null, + "discoverer": null + }, + { + "name": "butterfly", + "pattern": "*...", + "discoverer": null + }, + { + "name": "Bx125", + "pattern": "...........................*..........", + "discoverer": null + }, + { + "name": "Bx222", + "pattern": ".............*............................", + "discoverer": null + }, + { + "name": "by flops", + "pattern": "...*..", + "discoverer": null + }, + { + "name": "c", + "pattern": null, + "discoverer": null + }, + { + "name": "c/10 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "c/12 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "c/2 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "c/3 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "c/4 spaceship", + "pattern": null, + "discoverer": null + }, + { + "name": "c/5 spaceship", + "pattern": null, + "discoverer": "Tim Coe" + }, + { + "name": "c/6 spaceship", + "pattern": "..*..............*..................................*.....", + "discoverer": "Paul Tooke" + }, + { + "name": "c/7 spaceship", + "pattern": null, + "discoverer": "Matthias Merzenich" + }, + { + "name": "CA", + "pattern": null, + "discoverer": null + }, + { + "name": "caber tosser", + "pattern": null, + "discoverer": null + }, + { + "name": "Callahan G-to-H", + "pattern": "....*.........*...................", + "discoverer": null + }, + { + "name": "Cambridge pulsar CP 48-56-72", + "pattern": null, + "discoverer": null + }, + { + "name": "Canada goose", + "pattern": "***..........", + "discoverer": null + }, + { + "name": "candelabra", + "pattern": "....**....**....", + "discoverer": null + }, + { + "name": "candlefrobra", + "pattern": ".....*....", + "discoverer": "Robert Wainwright" + }, + { + "name": "canoe", + "pattern": "...**", + "discoverer": null + }, + { + "name": "cap", + "pattern": ".**.", + "discoverer": null + }, + { + "name": "carnival shuttle", + "pattern": ".................................*...*", + "discoverer": "Robert Wainwright" + }, + { + "name": "carrier", + "pattern": null, + "discoverer": null + }, + { + "name": "casing", + "pattern": null, + "discoverer": null + }, + { + "name": "catacryst", + "pattern": null, + "discoverer": "Nick Gotts" + }, + { + "name": "Catagolue", + "pattern": null, + "discoverer": null + }, + { + "name": "catalyst", + "pattern": null, + "discoverer": null + }, + { + "name": "catch and throw", + "pattern": "..................................**.............**.......****.", + "discoverer": null + }, + { + "name": "caterer", + "pattern": "..*.....", + "discoverer": null + }, + { + "name": "Caterloopillar", + "pattern": null, + "discoverer": null + }, + { + "name": "Caterpillar", + "pattern": "...............*", + "discoverer": null + }, + { + "name": "CatForce", + "pattern": null, + "discoverer": null + }, + { + "name": "Catherine wheel", + "pattern": null, + "discoverer": null + }, + { + "name": "cauldron", + "pattern": ".....*.....", + "discoverer": null + }, + { + "name": "cavity", + "pattern": null, + "discoverer": null + }, + { + "name": "CC semi-cenark", + "pattern": ".*............**..........", + "discoverer": null + }, + { + "name": "CC semi-Snark", + "pattern": "......*..........**", + "discoverer": null + }, + { + "name": "cell", + "pattern": null, + "discoverer": null + }, + { + "name": "cellular automaton", + "pattern": null, + "discoverer": null + }, + { + "name": "census", + "pattern": null, + "discoverer": null + }, + { + "name": "centinal", + "pattern": "**................................................**", + "discoverer": null + }, + { + "name": "Centipede", + "pattern": null, + "discoverer": null + }, + { + "name": "century", + "pattern": "..**", + "discoverer": null + }, + { + "name": "century eater", + "pattern": "............*.**..............", + "discoverer": null + }, + { + "name": "century-to-glider converter", + "pattern": "......................**.......", + "discoverer": null + }, + { + "name": "channel", + "pattern": null, + "discoverer": null + }, + { + "name": "chaotic growth", + "pattern": null, + "discoverer": null + }, + { + "name": "chemist", + "pattern": ".......*.......", + "discoverer": null + }, + { + "name": "C-heptomino", + "pattern": ".***", + "discoverer": null + }, + { + "name": "Cheshire cat", + "pattern": ".*..*.", + "discoverer": null + }, + { + "name": "chicken wire", + "pattern": "**..", + "discoverer": null + }, + { + "name": "chirality", + "pattern": null, + "discoverer": null + }, + { + "name": "cigar", + "pattern": null, + "discoverer": null + }, + { + "name": "circuit", + "pattern": null, + "discoverer": null + }, + { + "name": "cis-beacon on anvil", + "pattern": "...**..", + "discoverer": null + }, + { + "name": "cis-beacon on table", + "pattern": "..**", + "discoverer": null + }, + { + "name": "cis-boat with tail", + "pattern": ".*...", + "discoverer": null + }, + { + "name": "cis fuse with two tails", + "pattern": "...*..", + "discoverer": null + }, + { + "name": "cis-mirrored R-bee", + "pattern": ".**.**.", + "discoverer": null + }, + { + "name": "cis snake", + "pattern": null, + "discoverer": null + }, + { + "name": "clean", + "pattern": null, + "discoverer": null + }, + { + "name": "clearance", + |
