Bonsoir , j'ai un petit probleme concernant un programme en Caml . Il est censé dessiner les carrés suivants : http://img293.imageshack.us/img293/6...rcursiftn3.jpg . Mais mon algo ne dessine qu'un seul carré sans prendre en compte la récursivité . Mon code :
Code caml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 (* initialisation graphique *) #load "graphics.cma";; Graphics.open_graph "";; Graphics.set_color 0;; (* definition du type point en 2D, de son constructeur et de ses accesseurs *) type point = {x:int; y:int};; let creer_point a b = {x=a; y=b};; let tracerCarre a taille = Graphics.set_color Graphics.red; Graphics.fill_rect (a.x) (a.y) taille taille; ;; let carre_central a taille = creer_point (a.x + (taille/3)) (a.y + (taille/3));; let rec carrecursifs a taille = if taille < 2 then tracerCarre a taille else begin tracerCarre a taille ; carrecursifs ( carre_central a taille ) (taille*(1/3)) ; carrecursifs a (taille*(1/3)) ; carrecursifs (creer_point (a.x + ((2/3)*taille) )( a.y )) (taille*(1/3)); carrecursifs (creer_point (a.x + ((2/3)*taille) )( a.y + ((2/3)*taille))) (taille*(1/3)); carrecursifs (creer_point (a.x)(a.y+ ((2/3)*taille))) (taille*(1/3)) end ;; (* val carrecursifs : point -> int -> unit = <fun> *) (* Creation d'un point *) let a = creer_point 0 0;; let taille = 333 ;; (* nettoyage de la fenetre graphique *) Graphics.clear_graph();; carrecursifs a taille;;
Si quelqu'un a une idée ou est prêt à me filer un coup de main je lui serais plutôt reconnaisant
Merci d'avance !
PS:Ce code est pour la premiere image ( à gauche ).
Partager