Menu1 Menu2 Menu3 Menu4 Menu5 Menu6

1) Charger et ouvrir la bibliothèque graphique, ouvrir une fenêtre graphique de taille quelconque.
Pour charger et ouvrir la bibliothèque :
#load "graphics.cma";;
open Graphics;;

Pour ouvrir une fenêtre graphique de taille quelconque, on utilise open_graph sans préciser d'argument :
open_graph "";;

2) Colorier la totalité de la fenêtre en gris clair (niveau de rouge, vert et bleu : 192).
La couleur gris n'est pas prédéfinie : il faut d'abord la définir à Caml avec la fonction rgb. Pour colorier la fenêtre en gris, puisqu'elle a une forme rectangulaire, on va utiliser fill_rect avec comme arguments les coordonnées de l'angle en bas à gauche (0,0) ainsi que la largeur et la hauteur de la fenêtre. Pour ces dernières, puisqu'on ne connaît pas a priori la taille de la fenêtre, il faut utiliser size_x et size_y :
let gris = rgb 192 192 192;;
set_color gris;;
fill_rect 0 0 (size_x()) (size_y());;

3) Dessiner un tableau de 10 cases (largeur) sur 5 (hauteur), chaque case étant un carré de 20 pixels sur 20 (contour des cases en noir). Ce tableau doit être placé à 10 pixels des bordures gauche et bas de la fenêtre.
Tout d'abord on sélectionne la couleur noire. Ensuite il suffit pour tracer ce tableau de dessiner 6 lignes horizontales et 11 lignes verticales. Les 6 lignes horizontales partent de l'abscisse 10 jusqu'à 210 (pour avoir la place de 10 cases de 20 pixels, soit 200 pixels) et sont placées en ordonnée à partir de 10, décalées les unes des autres de 20. Elles seront créées par une boucle for. Chaque ligne est tracée en utilisant moveto pour se placer sur le point de départ puis lineto.
Le principe est semblable pour les lignes verticales.
set_color black;;
for i = 0 to 5 do
   moveto 10 (10+20*i); lineto 210 (10+20*i)
done;
for i = 0 to 10 do
   moveto (10+20*i) 10; lineto (10+20*i) 110
done;;

4) On imagine que les cases de ce tableau sont repérées par une abscisse entre 1 et 10 (de gauche à droite, comme pour les abscisses des pixels) et une ordonnée entre 1 et 5 (de bas en haut, comme pour les ordonnées des pixels). Créer une fonction qui attend que l'utilisateur clique quelque part et rend les coordonnées de la case (couple d'entiers) si l'utilisateur a cliqué dans le tableau et une erreur « Hors_du_tableau » sinon.
Solution

> Haut de la page