GOBBLE THE PURPOSE IN LIFE OF THE SIMPLEST GERMS IS JUST TO EAT. WE SHALL CALL THIS SPECIES THE "GOBBLERS" . EACH SQUARE IN GERMLAND INITIALLY IS VERDANT WITH FOOD. BUT WHEN A GOBBLER ARRIVES, ALL OF THE FOOD ON THE SQUARE IS EATEN. THE RESULT IS A BARREN SQUARE AND THE EATER IS FORCED TO MOVE ON. THE GOAL OF PROGRAMS FOR GOBBLERS IS TO KEEP THEM MOVING AS LONG AS THERE IS ANY FOOD LEFT IN GERMLAND. THE BASIC PROBLEM GOBBLERS FACE IS GETTING TRAPPED IN A REGION OF NO FOOD. HERE IS A LISTING OF A SIMPLE GOBBLER PROGRAM: TO GOBBLE 10 EAT FOOD HERE 20 IF FOODP NORTH THEN MOVE NORTH STOP 30 IF FOODP SOUTH THEN MOVE SOUTH STOP 40 IF FOODP EAST THEN MOVE EAST STOP 50 IF FOODP WEST THEN MOVE WEST STOP END  (DEFUN GOBBLE NIL (PROG NIL 10. (EAT (FOOD (HERE))) 20. (COND ((FOODP (NORTH)) (MOVE (NORTH)) (STOP))) 30. (COND ((FOODP (SOUTH)) (MOVE (SOUTH)) (STOP))) 40. (COND ((FOODP (EAST)) (MOVE (EAST)) (STOP))) 50. (COND ((FOODP (WEST)) (MOVE (WEST)) (STOP))) (END))) (PRINC REPEAT-INTRO) (UNITE 'GOBBLE ':CONTENTS) (GRID 5.) (SETQ :HUNGRY T) (GERM 1. '(0. 0.)) (FILLFOOD 1.) (READCH) (PRINTGRID) (REPEAT (GOBBLE)) NIL FANCY/ GOBBLER HERE IS A SIMILAR, BUT SOMEWHAT FANCIER GOBBLER. IT USES THE DIRECTIONAL PRIMITIVES, AND GOES AROUND THE GRID, RATHER THAN UP AND DOWN. IT LOOKS LIKE THIS: TO XGOBBLE 10 LOCAL 'X 20 MAKE 'X 0 25 EAT FOOD HERE 30 IF FOODP FRONT THEN MOVE FRONT STOP 40 MAKE 'X :X + 1 IF :X = 4 THEN STOP 50 RIGHT 90 GO 30 END  (DEFUN XGOBBLE NIL (PROG (:X) 10. (LOCAL 'X) 20. (MAKE 'X 0.) 25. (EAT (FOOD (HERE))) 30. (COND ((FOODP (FRONT)) (MOVE (FRONT)) (STOP))) 40. (MAKE 'X (INFIX-PLUS :X 1.)) (COND ((INFIX-EQUAL :X 4.) (STOP))) 50. (RIGHT 90.) (GO 30.) (END))) (UNITE 'XGOBBLE ':CONTENTS) (PRINC REPEAT-INTRO) (GRID 5.) (SETQ :HUNGRY T) (GERM 1. '(0. 0.)) (FILLFOOD 1.) (READCH) (PRINTGRID) (REPEAT (XGOBBLE)) NIL GOAROUND THE GERMLAND GRID MAY CONTAIN OBSTACLES, WHICH PRINT AS X'S. A GERM CANNOT MOVE ONTO A SQUARE WHICH IS AN OBSTACLE, BUT IT CAN DETECT WHETHER THE SQUARE ON ANY PARTICULAR SIDE OF IT CONTAINS AN OBSTACLE. THE FOLLOWING PROGRAM DEMONSTRATES THE USE OF OBSTACLES: THIS GERM EXPECTS TO START OUT NEXT TO A COLLECTION OF OBSTACLES, WHICH IT PROCEEDS TO GOAROUND. TO GOAROUND 10 TEST TOUCH LEFTSIDE 20 IFTRUE IF TOUCH FRONT THEN RIGHT 90 GO 20 30 IFTRUE FORWARD 1 STOP 40 RIGHT 270 FORWARD 1 END  (DEFUN GOAROUND NIL (PROG NIL 10. (TEST (TOUCH (LEFTSIDE))) 20. (IFTRUE (COND ((TOUCH (FRONT)) (RIGHT 90.) (GO 20.)))) 30. (IFTRUE (FORWARD 1.) (STOP)) 40. (RIGHT 270.) (FORWARD 1.) (END))) (UNITE 'GOAROUND ':CONTENTS) (PRINC REPEAT-INTRO) (GRID 5.) (SETQ :HUNGRY NIL) (GERM 1. '(4. 1.)) (MAPC 'OBSTRUCT '((1. 1.) (1. 2.) (2. 2.) (2. 3.) (3. 1.) (3. 2.))) (READCH) (PRINTGRID) (REPEAT (GOAROUND)) NIL NIL