Introduction ============ GNU Robots is a game/diversion where you construct a program for a little robot, then set him loose and watch him explore a world on his own. The robot program is written in Scheme, and is implemented using GNU Guile. Installing GNU Robots ====================== (0) To build GNU Robots, you *first* need to have already compiled and installed the GNU Guile library. GNU Robots was built using Guile 2.0. You also need: * GTK+ 2.x (1) Type: ./configure To specify an unusual location for GNU Guile, you can use the `--with-guile=' option, like this: ./configure --with-guile=/home/user (2) Look at the generated `Makefile', and check that everything is okay. Then type: make Notes ===== * There is really one key missing piece in GNU Robots: I had * originally envisioned a "visual" programming interface for GNU * Robots, one where you could create a robot program by dropping into * place icons that represent the robot's actions. There would be one * icon to tell the robot to move forward, another to have him turn to * the left or right, and another to have him pick up things or fire * his little gun. * * This programming interface would really just act as a kind of code * generator; it would write a Scheme program that you could then load * into GNU Robots. * * This will hopefully be in the next release! To run GNU Robots, run "gnurobots" -- The sample map that is provided as "maps/small.map" is just a single room, with prizes all along the four walls. The sample robot program "scheme/simple.scm" knows how to pick up all these prizes and then quit. Other map files can be found in the maps/ directory, and other robot programs are in the scheme/ directory. The usage for gnurobots is as follows: gnurobots [OPTION]... [FILE] Options are: -f, --map-file=FILE Load map file -s, --shields=N Set initial shields to N -e, --energy=N Set initial energy to N -V, --version Output version information and exit -h, --help Display this help and exit Note: FILE refers to a scheme file and ./bin/gnurobots enters into interactive mode if it is not specified.