# mondrian.py

Created by schraf

Created on July 11, 2022

1.18 KB

Version améliorée :

• Les blocs ne sont plus remplis plusieurs fois

```from random import randint,seed,random
from kandinsky import *
from time import sleep

def pos(nb, d):
l =[]
for i in range(nb):
# espace entre traites >= 10px
l.append(randint(1, d) * 10)
# Ajout des bords extremes
l.append(0)
l.append(10*d+8)
l.sort()
return l

def br(v) : # ajout de bruit
return int(v+v*(2*random()/20-1/20))

def coul(n):
# rouge - bleu - jaune - noir
c = [[225,45,31],[19,4,109],[242,192,17],[12,12,12]]
return color(br(c[n][0]),br(c[n][1]),br(c[n][2]))

def mondrian(s):
seed(s)
# position lignes vert et horiz
x = pos(randint(3,6), 31)
y = pos(randint(3,5), 23)
# nb de blocs en couleurs
n = randint(4,len(x)*len(y))
b = []
for k in range(0,n):
# choix du bloc
i = randint(0,len(x)-2)
j = randint(0,len(y)-2)
if [i,j] not in b:
b.append([i,j])
for k in b:
c = randint(0,3)
fill_rect(x[k[0]],y[k[1]],x[k[0]+1]-x[k[0]],y[k[1]+1]-y[k[1]],coul(c))
# Traits verticaux
for i in x:
fill_rect(i,0,2,240,coul(3))
# Traits horizontaux
for i in y:
fill_rect(0,i,320,2,coul(3))

while True:
mondrian(randint(1,500))
sleep(.4)
fill_rect(0,0,320,222,(255,255,255))```