From e6e7222d5a730368ed4e84c2e0f55427460e5230 Mon Sep 17 00:00:00 2001 From: Bradley Smith Date: Mon, 21 Jan 2008 00:16:45 +0000 Subject: Imported GNU robots from CVS. Signed-off-by: Bradley Smith --- README | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 README (limited to 'README') diff --git a/README b/README new file mode 100644 index 0000000..5304fbb --- /dev/null +++ b/README @@ -0,0 +1,106 @@ + +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 + 1.3. + + Guile 1.2 will also work, but you will need to provide your own + scm_random() function. See src/random.c + +(1) Type: + + ./configure + + To specify an unusual location for GNU Guile, you can use the + `--with-guile=' option, like this: + + ./configure --with-guile=/home/jhall + + To specify an unusual location for curses, you can use the + `--with-curses=' option, like this: + + ./configure --with-curses=/hub/local + +(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. Writing this in GTK+ would seem like a good idea. +* +* If anyone would like to help write this programming interface for +* GNU Robots, please contact me! You may reach me at + + +There are three ways to run GNU Robots: + +1. X Windows ("xrobots") +2. text mode, using curses ("robots") +3. text mode, log file output ("robots_logfile") + +I use the robots_logfile when I am hosting a GNU Robots competition, +because it is not really interesting for me to see how the many robots +are individually interacting with their environments. I am only +interested in the outcome. + +I use the xrobots program when I am running my own GNU Robot game, +because there I *am* interested in what my robot is doing. + +-- + +The "robots" program is a curses-based version of the game, using an +ASCII approximation of the game elements. Your robot will appear as a +"v" when it points South, "^" when it points North, and "<" and ">" +for West and East. Empty spaces are shown as " ", walls as "#", +baddies as "@", and food and prizes as "+" and "$". + +You'll note that this is the same notation used in the GNU Robots map +files. The initial location of the robot is not shown in the map +file, but is always at 1,1 facing East (the upper-left corner is +always 0,0). + +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 robots, xrobots, robots_logfile is as follows: + + robots [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 + +Even though it's not shown, the `-f' option to load a map file is +required by GNU Robots. Otherwise, the game will not be able to open +a map for your robot to explore! + -- cgit v1.1