Séquence(Translation(Séquence(Rotation({ArcCercle((i, 0), (i + 0.5, 0), (i, 0.5)), ArcCercle((i + 1, 1), (i + 0.5, 1), (i + 1, 0.5))}, Si(AléaEntreBornes(1, 2) ≟ 1, 90°, 0°), (i + 0.5, 0.5)), i, 0, nc - 1, 1), (0, 1) k), k, 0, nl - 1)
Avec nc le nombre de colonnes et nl le nombre de lignes.
On peut déplacer l'ombre en déplaçant les extrémités du vecteur rouge.
from random import*
from processing import *
def setup():
size(500, 500)
background(0, 160, 120)
noFill()
stroke(255)
strokeWeight(2)
for j in range(10):
for i in range(10):
a = randint(0,1)
if a == 1:
arc(0+50*i, 0+50*j, 50, 50, 0, HALF_PI)
arc(50+50*i, 50+50*j, 50, 50, PI,PI+HALF_PI)
else:
arc(0+50*i, 50+50*j,50, 50,HALF_PI+PI,TWO_PI)
arc(50+50*i, 0+50*j,50, 50,HALF_PI,PI)
run()