from turtle import * from random import random,randint,choice from time import sleep def trait(x, y, a, d): penup() goto(x, y) pendown() setheading(a) forward(d) def grille(nb): case = min(H,L) // nb H_m, L_m = -nb * case / 2, -nb * case /2 for i in range(1,nb): trait(L_m, H_m + case * i, 0, nb * case) trait(L_m + case * i, H_m, 90, nb * case) return case, H_m, L_m 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 = '' while n: chiffres = ' ox'[n % 3] + chiffres n //= 3 return (' '+ chiffres)[-3:] def aff(nb_preced,nb_suiv,l): preced = base3(nb_preced) suiv = base3(nb_suiv) y = -L_m - case / 2 - case * l for c in range(3): x = H_m + case / 2 + case * c pion(x,y,r,preced[c],suiv[c]) def tictac(h,mn): mn += 1 if mn >= 60: mn = 0 h += 1 if h > 12: h = 0 sleep(1) return [h, mn] speed(0) hideturtle() L,H = 320, 222 case, H_m, L_m = grille(3) r = case / 2.3 def go(hm): h = hm // 100 mn = hm % 100 preced = [0,0,0] while True: data = [h, mn // 10, mn % 10] for l in range(3): aff(preced[l],data[l], l) preced = list(data) [h, mn] = tictac(h, mn) go(1154)