#open "graphics";; open_graph " 600x600";; let wait = let time = ref 0. in fun delay -> while sys__time () -. !time < delay do done; time := sys__time () let draw_all = let prec_move = ref (1,0) in fun serpent pomme -> let aff c (x,y) = set_color c ; fill_rect (x*20) (y*20) 20 20 in let rec foo c = function | a::q -> aff c a ; foo green q | [] -> () in clear_graph (); foo blue serpent ; aff red pomme ; let ev = wait_next_event [Key_pressed; Poll] in if ev.keypressed then prec_move := (match read_key () with | `q` -> (-1,0) | `d` -> (1,0) | `z` -> (0,1) | `s` -> (0,-1) | _ -> !prec_move ) ; !prec_move let joue (s,p,g) = let (ax,ay) = draw_all s p in let r = maj s p g ax ay in wait 0.2; joue r and maj serpent pomme grandir ax ay = (serpent,pomme,grandir) let x = joue ([(2,10);(1,10);(0,10)],(random__int 30,random__int 30),0)