35 lines
758 B
Python
Executable File
35 lines
758 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
r0 = 2
|
|
|
|
print('<svg width="600" height="600" xmlns="http://www.w3.org/2000/svg">')
|
|
|
|
cache = {}
|
|
|
|
def bool_r(x, y):
|
|
if x in cache:
|
|
if y in cache[x]:
|
|
return cache[x][y]
|
|
else:
|
|
cache[x] = {}
|
|
if x < 1:
|
|
cache[x][y] = (y % 2 == 1)
|
|
else:
|
|
if y < 1:
|
|
cache[x][y] = (x % 2 == 1)
|
|
else:
|
|
a = bool_r(x - 1, y)
|
|
b = bool_r(x, y - 1)
|
|
cache[x][y] = (a and not b) or (b and not a)
|
|
return cache[x][y]
|
|
|
|
|
|
for x in range(128):
|
|
for y in range(128):
|
|
cx = r0 + x * r0 * 2
|
|
cy = r0 + y * r0 * 2
|
|
if bool_r(x, y):
|
|
print(f'<circle cx="{cx}" cy="{cy}" r="{r0}" style="fill:blue;"></circle>')
|
|
|
|
print("</svg>")
|