32 lines
707 B
OCaml
32 lines
707 B
OCaml
open Graphics
|
|
|
|
type dir = North | East | South | West
|
|
|
|
let turn_left = function
|
|
| North -> West
|
|
| East -> North
|
|
| South -> East
|
|
| West -> South
|
|
|
|
let turn_right = function
|
|
| North -> East
|
|
| East -> South
|
|
| South -> West
|
|
| West -> North
|
|
|
|
let move (x, y) = function
|
|
| North -> x, y + 1
|
|
| East -> x + 1, y
|
|
| South -> x, y - 1
|
|
| West -> x - 1, y
|
|
|
|
let () =
|
|
open_graph "";
|
|
let rec loop (x, y as pos) dir =
|
|
let color = point_color x y in
|
|
set_color (if color = white then black else white);
|
|
plot x y;
|
|
let dir = (if color = white then turn_right else turn_left) dir in
|
|
if not(key_pressed()) then loop (move pos dir) dir
|
|
in
|
|
loop (size_x()/2, size_y()/2) North
|