Code
def rec():
r =rectangle(x=-100,y=100,w=200,h=200,fill="white",stroke="none")
p1=point(x=-50,y=0)
p2=point(x=0,y=0)
p3=point(x=-50,y=50)
c = polygon([p1,p2,p3],stroke="none",fill="blue")
p4=point(x=0,y=50)
p5=point(x=-50,y=100)
p3=point(x=-50,y=50)
d = polygon([p4,p5,p3],stroke="none",fill="blue")
p4=point(x=0,y=50)
p5=point(x=-50,y=100)
p6=point(x=0,y=100)
e = polygon([p4,p5,p6],stroke="none",fill="red")
p8=point(x=0,y=150)
p7=point(x=-50,y=150)
p6=point(x=0,y=100)
f = polygon([p8,p7,p6],stroke="none",fill="blue")
p8=point(x=0,y=150)
p7=point(x=-50,y=150)
p10=point(x=0,y=200)
h = polygon([p8,p7,p10],stroke="none",fill="red")
p9=point(x=-50,y=200)
p7=point(x=-50,y=150)
p10=point(x=0,y=200)
i = polygon([p9,p7,p10],stroke="none",fill="blue")
p1=point(x=-50,y=0)
p11=point(x=-100,y=0)
p12=point(x=-100,y=50)
j = polygon([p1,p11,p12],stroke="none",fill="blue")
p3=point(x=-50,y=50)
p13=point(x=-100,y=100)
p12=point(x=-100,y=50)
g = polygon([p3,p13,p12],stroke="none",fill="blue")
p3=point(x=-50,y=50)
p13=point(x=-100,y=100)
p5=point(x=-50,y=100)
a = polygon([p3,p13,p5],stroke="none",fill="red")
p14=point(x=-100,y=150)
p13=point(x=-100,y=100)
p5=point(x=-50,y=100)
b = polygon([p5,p13,p14],stroke="none",fill="red")
p14=point(x=-100,y=150)
p7=point(x=-50,y=150)
p5=point(x=-50,y=100)
z = polygon([p5,p7,p14],stroke="none",fill="blue")
p16=point(x=-150,y=50)
p11=point(x=-100,y=0)
p15=point(x=-150,y=0)
y = polygon([p15,p11,p16],stroke="none",fill="red")
p16=point(x=-150,y=50)
p11=point(x=-100,y=0)
p12=point(x=-100,y=50)
x = polygon([p12,p11,p16],stroke="none",fill="blue")
p17=point(x=-150,y=100)
p13=point(x=-100,y=100)
p12=point(x=-100,y=50)
s = polygon([p12,p13,p17],stroke="none",fill="blue")
p17=point(x=-150,y=100)
p13=point(x=-100,y=100)
p18=point(x=-150,y=150)
t = polygon([p18,p13,p17],stroke="none",fill="blue")
re = combine([r,c,d,e,f,h,i,j,g,a,b,z,y,x,s,t])
return re
ro=rec()
show(ro |repeat(4,rotate(90)))