05AB1E, 29(削除) 29 (削除ここまで) 25 bytes
31°Rû32FDT„O31°ÂûsvJDT„O.‡,83b¦Dr00.øü3åèJøü3εćsàÊ
Port of-4 bytes porting @boothby's Python answer @JonathanAllan's Jelly answer.
Explanation:
31° # Push 10 to the power 31
RÂ # Bifurcate it; short for Duplicate & Reverse itcopy
û # Palindromize itthis reversed copy
32Fsv # LoopSwap and foreach-loop; aka loop 32 times:
J D # DuplicateJoin the current list (from 2nd iteration onward) to a string
D # Duplicate this string of 0s/1s
T„O.‡ # Transliterate "10" to "O." in this copy
, # Pop and output it with trailing newline
0.ø 83b¦ # Push "010011"Surround (83the ascurrent binary;line with first digit removed)
D # Duplicatetrailing/leading it0
r ü3 # ReversePop theand threeconvert valuesit oninto theoverlapping stacktriplets
0.ø ε # Surround the# current lineMap withover trailing/leadingeach 0triplet:
ü3 ć # Pop and convertHead itextracted into(abc overlapping→ tripletsbc,a)
ås # Check forSwap eachso tripletthe ifremainder it's(bc) ais substringat ofthe "010011"top
èà # Use those 0sPop and 1sget tothe indexmaximum intodigit "01<ignored>"of this pair
JÊ # Join this listCheck togetherthat toit's aNOT stringequal forto the nexthead: iterationa != max(b,c)
83b¦ could alternatively be 50bR (50 as binary; reversed) or 38bÁ (38 as binary; rotated once towards the right) for the same byte-count.
05AB1E, 29 bytes
31°Rû32FDT„O.‡,83b¦Dr0.øü3åèJ
Port of @boothby's Python answer.
Explanation:
31° # Push 10 to the power 31
R # Reverse it
û # Palindromize it
32F # Loop 32 times:
D # Duplicate the current string of 0s/1s
T„O.‡ # Transliterate "10" to "O." in this copy
, # Pop and output it with trailing newline
83b¦ # Push "010011" (83 as binary; with first digit removed)
D # Duplicate it
r # Reverse the three values on the stack
0.ø # Surround the current line with trailing/leading 0
ü3 # Pop and convert it into overlapping triplets
å # Check for each triplet if it's a substring of "010011"
è # Use those 0s and 1s to index into "01<ignored>"
J # Join this list together to a string for the next iteration
83b¦ could alternatively be 50bR (50 as binary; reversed) or 38bÁ (38 as binary; rotated once towards the right) for the same byte-count.
05AB1E, (削除) 29 (削除ここまで) 25 bytes
31°ÂûsvJDT„O.‡,0.øü3εćsàÊ
-4 bytes porting @JonathanAllan's Jelly answer.
Explanation:
31° # Push 10 to the power 31
 # Bifurcate it; short for Duplicate & Reverse copy
û # Palindromize this reversed copy
sv # Swap and foreach-loop; aka loop 32 times:
J # Join the current list (from 2nd iteration onward) to a string
D # Duplicate this string of 0s/1s
T„O.‡ # Transliterate "10" to "O." in this copy
, # Pop and output it with trailing newline
0.ø # Surround the current line with trailing/leading 0
ü3 # Pop and convert it into overlapping triplets
ε # Map over each triplet:
ć # Head extracted (abc → bc,a)
s # Swap so the remainder (bc) is at the top
à # Pop and get the maximum digit of this pair
Ê # Check that it's NOT equal to the head: a != max(b,c)
05AB1E, 29 bytes
31°Rû32FDT„O.‡,83b¦Dr0.øü3åèJ
Port of @boothby's Python answer.
Explanation:
31° # Push 10 to the power 31
R # Reverse it
û # Palindromize it
32F # Loop 32 times:
D # Duplicate the current string of 0s/1s
T„O.‡ # Transliterate "10" to "O." in this copy
, # Pop and output it with trailing newline
83b¦ # Push "010011" (83 as binary; with first digit removed)
D # Duplicate it
r # Reverse the three values on the stack
0.ø # Surround the current line with trailing/leading 0
ü3 # Pop and convert it into overlapping triplets
å # Check for each triplet if it's a substring of "010011"
è # Use those 0s and 1s to index into "01<ignored>"
J # Join this list together to a string for the next iteration
83b¦ could alternatively be 50bR (50 as binary; reversed) or 38bÁ (38 as binary; rotated once towards the right) for the same byte-count.