Pseudosphere

Joined 1 year ago
no edit summary
Line 281: Line 281:  
* [[Okinchest]]
 
* [[Okinchest]]
 
* [[Okinchess]]
 
* [[Okinchess]]
 +
* [[Rule 110]]
 +
* [[DVD in a triangle]]
 +
* [[Exterior]]
 +
* [[Text Mode]]
 
==Templates==
 
==Templates==
 
* [[Template:Tesseract CSS]]
 
* [[Template:Tesseract CSS]]
Line 309: Line 313:  
* [[Template:WBR]]
 
* [[Template:WBR]]
 
* [[Template:Text Cuboid]]
 
* [[Template:Text Cuboid]]
 +
* [[Template:Disputedly imaginary number]]
 +
* [[Template:Transclude guard]]
 +
* [[Template:Bit]]
 +
* [[Template:Unique number]]
 +
* [[Template:Text Mode]]
 +
* [[Template:Philosophical argument]]
 +
* [[Template:House of Leaves]]
 
==Scripts I made for pages==
 
==Scripts I made for pages==
 
===Licensing===
 
===Licensing===
Line 1,179: Line 1,190:     
print("".join(l))
 
print("".join(l))
 +
</syntaxhighlight>
 +
===[[Rule 110]] generator===
 +
<syntaxhighlight lang="python">
 +
#!/bin/python3
 +
#output is currently at least around 2x larger than it should be, since all triggers are reversible, but mwcollapse can't optimize for that yet
 +
import mwcollapse
 +
 +
rulenum = 110
 +
rule = tuple((1 << n & rulenum) != 0 for n in range(8))
 +
depth = 8
 +
 +
def transition(state, transition):
 +
    return tuple(state[n] != (n == transition) for n in range(8))
 +
def stategen(state):
 +
    result = list(state)
 +
    for n in range(depth - 1):
 +
        state = [rule[int(state[k - 1 & 7]) << 2 | int(state[k]) << 1 | int(state[k + 1 & 7])] for k in range(8)]
 +
        result.extend(state)
 +
    return (not x for x in result)
 +
 +
elementContainer = mwcollapse.ElementContainer(
 +
    f"""{{{{#css:
 +
#w-{rulenum} {{
 +
border-spacing: 0;
 +
margin: auto;
 +
}}
 +
#w-{rulenum} span {{
 +
display: inline-block;
 +
height: 100%;
 +
width: 100%;
 +
}}
 +
#w-{rulenum} td {{
 +
background: #FFF;
 +
display: table-cell !important;
 +
height: 64px;
 +
outline: 1px solid #CCC;
 +
width: 64px;
 +
}}
 +
#w-{rulenum} .mw-collapsed {{
 +
background: #000;
 +
}}
 +
}}}}
 +
Click the top cells!""",
 +
    mwcollapse.Element("table",
 +
        mwcollapse.Element("tr",
 +
            *(mwcollapse.Toggleable("td", n, mwcollapse.Trigger("span", n)) for n in range(8))
 +
        ),
 +
        *(mwcollapse.Element("tr",
 +
            *(mwcollapse.Toggleable("td", x + y * 8) for x in range(8))
 +
        ) for y in range(1, depth)),
 +
    attributes={"id": "w-110"}),
 +
    "[[Category:Rules]][[Category:Math]][[Category:Cellular automata]][[Category:Pages that don't even remotely resemble a Wikipedia article]]"
 +
)
 +
elementContainer.compile("w", mwcollapse.genStateMachine(range(8), transition, stategen, tuple(False for n in range(8))))
 +
print(elementContainer)
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==Kepler–Poinsot polyhedra==
 
==Kepler–Poinsot polyhedra==
1,154

edits