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==