Introduction to programming with laby07 Jan 2010
The other day I was playing a little bit with laby, a small program to help in understanding basic programming concepts for kids, but maybe grown ups too.
It is available in Ubuntu in the laby package from karmic (9.10) on. I can highly recommend it, it is always fun to watch a graphical representation of a programmed creature do its job after the coding. I have created a general solution in ocaml that will successfully solve at least all the levels included in 0.5.0.
(* ocaml wall hugger for laby *) let ant = (* go straight ahead til we hit something *) while (Robot.look () = `Void) do Robot.forward (); done; (* main wall hugin' loop *) while not (Robot.look () = `Exit) do if (Robot.look () == `Void) then ( Robot.forward (); Robot.right (); ); if (Robot.look () == `Rock) then ( Robot.take (); Robot.forward (); Robot.left (); Robot.left (); Robot.drop (); Robot.left (); ); if (Robot.look () == `Wall) or (Robot.look () == `Web) then Robot.left (); done; Robot.door_open (); ;;
Go little robot ant!