let walk_step () =
A.init !selected ;
selected := 1 - !selected ;
let move = Array.make (3*(Array.length Walk.skel)) None in
move.(0+3* !selected) <- Some 0. ;
move.(1+3* !selected) <- Some 0. ;
move.(2+3* !selected) <- Some 1. ;
Solver.begin_move_precise ~steps:(-1) move ;
Glut.idleFunc
(Some (fun () ->
if Solver.move () then
begin
let (x,y,z) = Solver.pos.(!selected) in
let xgoal = if !selected = 1 then 1. else -1. in
move.(0+3* !selected) <- Some (xgoal-.x) ;
move.(1+3* !selected) <- Some (0.-.y) ;
move.(2+3* !selected) <- Some (0.) ;
move.(2+3*3) <- Some 0.5 ;
Solver.begin_move_precise ~steps:(-1) move ;
Glut.idleFunc
(Some (fun () ->
if Solver.move () then
Glut.idleFunc None
else
Glut.postRedisplay ()))
end
else
Glut.postRedisplay ()))