Challenge n°4 : Affichage du terrain en niveau de gris

 

1. description

Le but de ce challenge est de représenter en niveau de gris les terrains décrits dans le défi n°2 (Cf. HoPsy n°1 page 24 & líencadré du défi n°3). Il ne síagit pas díécrire un programme qui affiche le terrain en niveau de gris, mais de créer simplement un grob spécial qui traité par un programme spécifique comme CC ou CC2 représente le terrain en 4 niveaux de gris lors de líaffichage.

2. Principe du niveau de gris

On utilise le rafraîchissement de la HP pour afficher successivement deux grobs ; líun pendant deux rafraîchissements, líautre pendant un seul. Ce qui donne :

De plus pour optimiser, les deux grobs sont réunis de façon à níen former quíun seul, en les plaçant líun en dessous de líautre. Malheureusement, deux standards existent actuellement. Soit le grob du haut est affiché deux fois et celui du bas une seule fois, soit le contraire. Le grob résultat a alors deux représentations possibles.

 

 3. Échantillonnage

 Pour représenter le terrain en 4 niveaux de gris, líéchantillonnage est le suivant :

Valeur en hexadécimal díune case

Couleur représentant la case

0 à 3

blanc

4 à 7

gris clair

8 à B

gris foncé

C à F

noir

 4. Le programme

Le programme à réaliser devra générer un grob représentant le terrain en niveau de gris. Pour cela , il doit prendre en argument au niveau 2 de la pile une liste représentant le terrain et au niveau 1 un entier dont les deux seules valeurs possibles sont 0 ou 1 ( respectivement un booléen dans le cas des versions RPL-Système ou Assembleur, )) et rendre comme résultat au niveau 1 de la pile le grob en codage 1 si líentier vaut 1 (respectivement true) et en codage 2 si líentier vaut 0 (respectivement false).

Le programme ne doit en aucun cas modifier le reste de la pile (niveau 3 et supérieurs).

5. Exemple en RPL

Pile

Arguments

Pile

Arguments

3:

"Objet"

3:

 

2:

{ 8 { # 2468ACEh } { # FDB97531h }

2:

"Objet"

1 :

1

1:

Graphic 8 x 4

où Graphic 8 x 4 a pour représentation en mémoire : GROB 8 4 0FF0CC33

6. Gagnant

Le gagnant sera le programme dont la taille (en octet) multipliée par la vitesse díexécution (en seconde) sera la plus petite (mesuré avec TK.EXT, CF. HoPsy n°0). Actuellement il níy a aucun programme de référence.

La date limite de participation est fixée à un mois après la parution du HoPsy n°3.

Bonne algorithme et bonne course !

 

 

Slamp