Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Dummy replace solution in Speedy category for Unruly by lezeroq
REPLACE = (
(".BB", "WBB"),
("BB.", "BBW"),
("WW.", "WWB"),
(".WW", "BWW"),
("B.B", "BWB"),
("W.W", "WBW"),
)
def modify(line):
l = len(line)
hl = l // 2
old_line = ""
while old_line != line:
old_line = line
for f, t in REPLACE:
line = line.replace(f, t)
for B, W in ("BW", "WB"):
count_b = line.count(B)
if count_b == hl:
return line.replace(".", W)
elif count_b == hl - 1:
for pos in range(l - 2):
chunk = line[pos : pos + 3]
if B not in chunk:
line = (
line[:pos].replace(".", W)
+ chunk
+ line[pos + 3 :].replace(".", W)
)
return line
def unruly(grid):
while any("." in line for line in grid):
for _ in range(2):
grid = [modify(line) if "." in line else line for line in grid]
grid = ["".join(line) for line in zip(*grid)]
return tuple(grid)
Jan. 19, 2023