Code : Tout sélectionner
INPUT C # Même taille pour les 2 cercles
SEQ(RANDINT(0,10),X,1,C²,1→L1 # Distribution initiale aléatoire
Disp L1 # Affichage de la liste
1→T
LBL 0 # Pas de while
IF T≥0
L2→L1
SEQ(0,X,1,C²,1→L2 # Matrice nulle
1+T→T
FOR(I,0,C-1
FOR(J,1,C
INT(.5 + .5L1(1+REMAINDER(C-1+C*I+J,C²→D # Calculs de la nouvelle valeur en (I,J)
INT(.5 + .5L1(C*I+1+REMAINDER(J+C-2,C→H
D+H+L2(C*I+J→L2(C*I+J # Mise à jour de la case
END
END
IF T<20 *MAX(L1≠L2 # Arrêt si plus de 20 tours ou si tous les éléments sont identiques
GOTO 0 # Retour au label 0
DISP L2,T # Affichage du résultat