Version pour TI-83 Plus , TI-84 Plus, TI-84 Pocket. Mettre le programme sur la calculatrice puis le lancer en faisant 2nde CATALOG Asm( PRGM MERLIN. Vous avez à l’écran Asm(prgmMERLIN puis ENTER
Il s’agit de la réécriture de “carré magique” qui existait sur un jeu électronique de 1978 nommé MERLIN.
La règle est simple :
Une fois que vous serez à l’aise avec la version de base, tentez >> go(2)
from random import * from kandinsky import * from ion import * from time import * T = [432,448,216,292,186,73,54,7,27] NR, GR = (0,0,0), (230,230,230) TOUCHES = [KEY_ZERO,KEY_ONE,KEY_TWO,KEY_THREE,KEY_FOUR,KEY_FIVE,KEY_SIX,KEY_SEVEN,KEY_EIGHT,KEY_NINE] def binaire(p): return ("0"*8 + bin(p)[2:])[-9:] def grille(): for c in [70, 140]: fill_rect(c, 5, 1, 215, GR) fill_rect(0, c, 210, 1, GR) def dessin(p, x = 31, y = 176, t = 70, w = 10): b = binaire(p) for c in range(9): coul = NR if b[c] == "1" else GR fill_rect(x + t * (c%3), y - t * (c//3), w, w, coul) sleep(0.2) def solution(d, g): for p in range(512): r, b = d, binaire(p) for c in range(9): if b[c] == "1": r ^= T[c] if r == g: break sol = "" for c in range(9): if b[c] == "1": sol += str(c+1) draw_string(sol[:5], 240, 160) draw_string(sol[5:], 240, 180) return len(sol) def go(n = 1): GA = 495 if n == 1 else randint(0, 511) dessin(GA, 270, 30, 10, 5) pos = GA grille() cp = 0 while pos == GA: pos = randint(0, 511) depart = pos while pos != GA: dessin(pos) wait = True while wait: for (i, t) in enumerate(TOUCHES): if keydown(t): n = i wait = False if n == 0: cp, pos = 0, depart dessin(pos) solution(pos, GA) else: cp += 1 pos ^= T[n - 1] if n > 0: draw_string("GAGNE !", 230, 85) best = solution(depart, GA) sc = int(100 * best / cp) draw_string(str(sc) + "%", 235, 110) dessin(GA)