Les objets varient selon deux critères: la forme et la couleur. Chacun des critères peut prendre trois modalités: carré, rond ou triangle pour la forme, blanc, gris ou noir pour la couleur. Le programme choisit aléatoirement trois combinaisons de 1 forme et 1 couleur.
A ce stade, on peut se dire que l'on est en présence de deux variables, que l'on pourrait définir comme suit:
f = random (1;3;1) (avec 1=carré, 2=rond, 3=triangle)
c = random (1;3;1) (avec 1=blanc, 2=gris, 3=noir)
L'utilisateur définit aussi deux variables en cliquant sur l'une des formes: on pourrait sommairement nommer ces variables:
f' = forme-utilisateur (trois possiblités)
c' = couleur-utilisateur (idem)
Le test de comparaison arrive à ce niveau, test qui comporte deux modalités (booléen):
si f' = f et c' = c, alors test = true
si f' <> f ou c' <> c, alors test = false
Dans les formes que nous dessinons, chacune doit se voir attribuer les deux variables (forme et couleur) car l'ordinateur n'est pas capable de reconnaître ces paramètres.
A ce stade, il faudra peut-être créer trois variables supplémentaires, correspondant aux trois choix du logiciel:
a = (f1,c1)
b = (f2,c2)
c = (f3,c3)
Mais il faudrait pouvoir faire comprendre au logiciel que f1-f3 et c1-c3 sont des valeurs particulières de f et c respectivement. Peut-on pour cela dire qch du genre:
f* = random (1;3;1), ce qui serait valable pour f, f1, f2, f3 (mais pas f', puisque cette variable est déterminée par le clic de l'utilisateur)
Alternative, peut-on définir des types de variables: par exemple le type " random (1;3;1) " que l'on retrouve souvent, et qui est avalble pour tous les f et c ? Autre type, le " vrai/faux ", valable pour les feed-back test...
La progression finale pourrait alors être: