1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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 <jhall1@isd.net>
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!
|