from turtle import * from time import sleep def trait(x, y, a, d): penup() goto(x, y) pendown() setheading(a) forward(d) def grille(c,l): H_m, L_m = -l * case / 2, -c * case /2 for i in range(1,max(c,l)): if i < l: trait(L_m, H_m + case * i, 0, 3 * case) if i < c: trait(L_m + case * i, H_m, 90, 5 * case) return H_m + c * case / 2, -L_m + case / 2 def cercle(x,y,r,c): penup() color(c) goto(x,y - r) setheading(0) pendown() circle(int(r)) def croix(x,y,r,c): for i in [-1,1]: penup() color(c) goto(x - r, y + i * r) pendown() goto(x + r, y - i * r) def pion(x,y,r,t1,t2): if t1 != t2: if t1 == 'o': cercle(x,y,r,"white") elif t1 == 'x': croix(x,y,r,"white") if t2 == 'o': cercle(x,y,r,"black") elif t2 == 'x': croix(x,y,r,"black") def base3(n): chiffres = '' for _ in range(3): chiffres = ' ox'[n % 3] + chiffres n //= 3 return chiffres def aff(preced,suiv): for l in range(5): p = base3(preced[l]) s = base3(suiv[l]) y = L_m - case * l for c in range(3): x = H_m + case * c pion(x,y,r,p[c],s[c]) def tictac(h,m,s): s = (s + 1) % 60 if s == 0: m = (m + 1) % 60 if m == 0: (h + 1) % 12 sleep(1) return [h, m,s] speed(0) hideturtle() case = 44 H_m, L_m = grille(3,5) r = case / 2.3 def go(hh,mn = 0,ss = 0): preced = [0,0,0,0,0] while True: data = [hh, mn // 10, mn % 10, ss // 10, ss % 10] aff(preced,data) preced = list(data) [hh, mn, ss] = tictac(hh, mn, ss) go(11,44,36)