pkg://tclrobots-1.0.tar.gz:53994/tclrobots.ps
downloads
%!PS-Adobe-3.0
%%Creator: groff version 1.05
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%DocumentSuppliedResources: procset grops 1.05 0
%%Pages: 8
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
%%BeginResource: procset grops 1.05 0
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}bind def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/FL{
currentgray exch setgray fill setgray
}bind def
/BL/fill load def
/LW/setlinewidth load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
}bind def
/PEND{
clear
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
%%IncludeResource: font Times-Italic
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL
792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron/scaron/zcaron
/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space
/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C
/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
/bracketright/circumflex/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase
/guillemotleft/guillemotright/bullet/florin/fraction/perthousand/dagger
/daggerdbl/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guilsinglleft/logicalnot/minus
/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu
/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guilsinglright
/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde
/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex
/udieresis/yacute/thorn/ydieresis]def/Times-Italic@0 ENC0/Times-Italic RE
/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R/F1
12/Times-Roman@0 SF(TclRobots)280.998 84 Q F0(Cop)241.385 108 Q(yright 1994 T)
-.1 E(om Poinde)-.8 E(xter)-.15 E(tpoind@advtech.uswest.com)248.345 120 Q
(tpoinde)256.41 132 Q(x@n)-.15 E(yx.cs.du.edu)-.15 E/F2 9/Times-Bold@0 SF(WHA)
72 153.6 Q 2.25(TI)-.855 G 2.25(ST)105.399 153.6 S(CLR)118.656 153.6 Q(OBO)-.27
E(TS?)-.36 E F0(TclRobots is a programming g)108 165.6 Q(ame, not unlik)-.05 E
2.5(e')-.1 G(Core W)297.84 165.6 Q 2.5(ar'. T)-.8 F 2.5(op)-.8 G
(lay TclRobots, you must write a Tcl pro-)364.83 165.6 Q
(gram that controls a robot.)108 177.6 Q(The robot')5 E 2.5(sm)-.55 G
(ission is to survi)274.93 177.6 Q .3 -.15(ve a b)-.25 H
(attle with other robots.).15 E -1 -.8(Tw o)5 H 2.5(,t).8 G(hree, or four)
484.46 177.6 Q(robots compete during a battle, each running dif)108 189.6 Q
(ferent programs \(or possibly the same program in dif)-.25 E(ferent)-.25 E 2.5
(robots.\) Each)108 201.6 R(robot is equipped with a scanner)2.5 E 2.5(,c)-.4 G
(annon, dri)305.06 201.6 Q .3 -.15(ve m)-.25 H 2.5(echanism. A).15 F
(single match continues until)2.5 E(one robot is left running.)108 213.6 Q 2.5
(At)5 G(ournament can be run with an)224.66 213.6 Q 2.5(yn)-.15 G
(umber of robot programs, each robot playing)356.15 213.6 Q -2.15 -.25(ev e)108
225.6 T(ry other in a round-robin f).25 E(ashion, one-on-one.)-.1 E 2.5(Ab)5 G
(attle simulator is a)324.95 225.6 Q -.25(va)-.2 G(ilable to help deb).25 E
(ug robot pro-)-.2 E(grams.)108 237.6 Q(The TclRobots program pro)108 254.4 Q
(vides a ph)-.15 E(ysical en)-.05 E(vironment, imposing certain g)-.4 E
(ame parameters to which all)-.05 E(robots must adhere.)108 266.4 Q
(TclRobots also pro)5 E(vides a vie)-.15 E 2.5(wo)-.25 G 2.5(nab)324.8 266.4 S
(attle, and a controlling user interf)344.24 266.4 Q(ace.)-.1 E
(TclRobots is strongly in\215uenced by my 1985 g)108 283.2 Q(ame, CR)-.05 E
(OBO)-.4 E 2.5(TS. CR)-.4 F(OBO)-.4 E(TS is based on writing robot con-)-.4 E
(trol programs in C, and the entire en)108 295.2 Q
(vironment is tightly coupled into a single program that contains a small)-.4 E
2.5(Cc)108 307.2 S(ompiler)121.61 307.2 Q 2.5(,v)-.4 G
(irtual stack-based CPU, multi-tasking scheduler)162.32 307.2 Q 2.5(,a)-.4 G
(nd e)362.73 307.2 Q -.15(xe)-.15 G(cution en).15 E 2.5(vironment. TclRobots)
-.4 F(instead is loosely coupled, utilizing separate Tcl wish interpreters for\
each robot.)108 319.2 Q(Communication between)5 E 2.5(ar)108 331.2 S
(obot and the TclRobots program is accomplished with Tk')118.27 331.2 Q(s)-.55
E/F3 10/Times-Italic@0 SF(send)2.5 E F0(command.)2.5 E(TclRobots requirements:)
108 352.8 Q 2.5(aw)5 G(ish interpreter b)226.32 352.8 Q
(uilt from Tcl 7.3 and Tk 3.6.)-.2 E
(TclRobots uses the Tk "send" command - if your X serv)108 369.6 Q
(er is insecure \(xhost access list not empty\), you will)-.15 E
(need a wish compiled with the "-DNO_TK_SECURITY" \215ag.)108 381.6 Q
(Better yet, use "xauth" instead of "xhost.")5 E -1.27 -.74(Av a)108 398.4 T
(ilability:).74 E(TclRobots \(and Tcl/Tk, if you don')108 410.4 Q 2.5(ta)-.18 G
(lready ha)258.64 410.4 Q .3 -.15(ve i)-.2 H(t\) are a).15 E -.25(va)-.2 G
(ilable at the follo).25 E(wing locations:)-.25 E(ftp://harbor)108 427.2 Q
(.ecn.purdue.edu/pub/tcl/code/tclrobots-1.0.tar)-.55 E(.gz)-.55 E
(ftp://ftp.cs.berk)108 439.2 Q(ele)-.1 E -.65(y.)-.15 G(edu/ucb/tcl/tcl7.3.tar)
.65 E(.Z)-.55 E(ftp://ftp.cs.berk)108 451.2 Q(ele)-.1 E -.65(y.)-.15 G
(edu/ucb/tcl/tk3.6.tar).65 E(.Z)-.55 E F2(INST)72 472.8 Q(ALLA)-.81 E
(TION AND DEMO)-.855 E F0 32.67(-E)108 484.8 S(dit the Mak)150.11 484.8 Q 2.5
(e\214le. All)-.1 F(that is needed it the path of your wish e)2.5 E -.15(xe)
-.15 G(cutable, and the directory where).15 E(you w)144 496.8 Q(ould lik)-.1 E
2.5(eT)-.1 G(clRobots installed. See the comments at the top of the Mak)212.41
496.8 Q 2.5(e\214le. `mak)-.1 F(e' to)-.1 E(install.)144 508.8 Q 32.67(-r)108
525.6 S(un `tclrobots' from the directory where you unpack)147.33 525.6 Q
(ed the distrib)-.1 E(ution.)-.2 E 32.67(-D)108 542.4 S
(ouble-Click on the `samples' directory in the Files listbox.)151.22 542.4 Q
32.67(-C)108 559.2 S(lick on `Select All')150.67 559.2 Q 32.67(-C)108 576 S
(lick on `Run Battle')150.67 576 Q F2(SYNOPSIS)72 597.6 Q/F4 10/Times-Bold@0 SF
(tclr)108 609.6 Q(obots)-.18 E F0 2.5([[-)2.5 G 2.5(tt)163.08 609.6 S
(imelimit ])171.14 609.6 Q 2.5([-)5 G 2.5(or)225.03 609.6 S(esults-\214le ])
235.86 609.6 Q(\214les... ])7.5 E F4(Tclr)108 626.4 Q(obots)-.18 E F0
(without an)2.5 E 2.5(yc)-.15 G(ommand line ar)205.72 626.4 Q
(guments starts TclRobots in interacti)-.18 E .3 -.15(ve m)-.25 H 2.5(ode. The)
.15 F(user interf)2.5 E(ace)-.1 E(\(described belo)108 638.4 Q
(w\) is used to select \214les, start battles, tournaments, or the simulator)
-.25 E(.)-.55 E(If command line ar)108 655.2 Q(guments are speci\214ed,)-.18 E
F4(tclr)2.5 E(obots)-.18 E F0
(starts in tournament mode using the speci\214ed \214les.)2.5 E(Options:)108
667.2 Q F4 2.5(-t timelimit)108 688.8 R F0
(sets the number of minutes to run each match in a tournament.)2.5 E -.35(Ti)5
G(melimit should be speci\214ed).35 E(as an inte)144 700.8 Q
(ger number of minutes.)-.15 E
(If -t is omitted, matches run a maximum of 10 minutes each.)5 E F4 2.5(-o r)
108 717.6 R(esults-\214le)-.18 E F0
(speci\214es the \214le name in which to record tournament results.)2.5 E
(If -o is omitted, the \214le name)5 E("results.out" is used.)144 729.6 Q
211.22(8/11/94 1)290.72 768 R EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R/F1
9/Times-Bold@0 SF(THE R)72 84 Q(OBO)-.27 E(T)-.36 E F0
(All robots in TclRobots are constructed equally)108 96 Q 5(.W)-.65 G(hat dif)
314.27 96 Q(ferentiates the robots' beha)-.25 E(vior is the control pro-)-.2 E
(gram that you write.)108 108 Q(The robot has the ability to mo)5 E -.15(ve)
-.15 G 2.5(,l).15 G(ook for)334.35 108 Q 2.5(,a)-.4 G
(nd shoot at, other robots.)372.55 108 Q
(Robots use a compass system based on 0 to 359 de)108 124.8 Q
(grees, with 0 pointing due east, 90 due north, 180 due)-.15 E
(west, and 270 due south.)108 136.8 Q(The robot')108 153.6 Q 2.5(sd)-.55 G(ri)
161.33 153.6 Q .3 -.15(ve m)-.25 H(echanism can be controlled to mo).15 E .3
-.15(ve t)-.15 H(he robot in a particular direction, at some speed.).15 E
(Direction is e)108 165.6 Q(xpressed as an inte)-.15 E(ger de)-.15 E
(gree heading 0 - 359, and speed is 0 to 100 percent.)-.15 E(The motor is)5 E
(inef)108 177.6 Q(\214cient abo)-.25 E .3 -.15(ve 3)-.15 H(5% speed, and be).15
E(gins to o)-.15 E -.15(ve)-.15 G 2.5(rheat. When).15 F 2.5(ah)2.5 G(eat inde)
361.11 177.6 Q 2.5(xo)-.15 G 2.5(f2)404.84 177.6 S
(00 is reached, the motor can-)415.67 177.6 Q(not be operated o)108 189.6 Q
-.15(ve)-.15 G 2.5(r3).15 G(5% until cooling allo)197.12 189.6 Q
(ws the heat inde)-.25 E 2.5(xt)-.15 G 2.5(od)355.88 189.6 S(rop back to 0.)
368.38 189.6 Q(While the robot is v)5 E(ery)-.15 E(agile and stable, safe)108
201.6 Q(guards are b)-.15 E(uilt into the interf)-.2 E(ace to pre)-.1 E -.15
(ve)-.25 G(nt the robot from tipping o).15 E -.15(ve)-.15 G 2.5(rw).15 G
(hile trying to)486.5 201.6 Q(turn at too f)108 213.6 Q(ast a rate for an)-.1 E
2.5(yg)-.15 G -2.15 -.25(iv e)228.83 213.6 T 2.5(ns).25 G(peed.)252.04 213.6 Q
(The follo)108 230.4 Q(wing table represents maximum speeds at which a delta c\
ourse change can be made:)-.25 E(De)114.74 247.2 Q(grees of)-.15 E(Maximum)
179.92 247.2 Q(course change)108 259.2 Q(Speed)188.535 259.2 Q .4 LW 221.59
263.7 108 263.7 DL(25 or less)117.295 273.2 Q(100%)189.09 273.2 Q(25 - 50)
122.295 285.2 Q(50%)194.09 285.2 Q(50 - 75)122.295 297.2 Q(30%)194.09 297.2 Q
(75 or greater)110.915 309.2 Q(20%)194.09 309.2 Q
(If a course change is attempted at a speed abo)108 326 Q .3 -.15(ve t)-.15 H
(he maximum for the change, the dri).15 E .3 -.15(ve i)-.25 H 2.5(sd).15 G
(iseng)474.16 326 Q(aged)-.05 E(\(speed set to 0\) on the present course.)108
338 Q(The dri)5 E .3 -.15(ve m)-.25 H(echanism also allo).15 E
(ws the robot to turn f)-.25 E(aster at slo)-.1 E(wer)-.25 E(speeds.)108 350 Q
26.385(Speed Rate)121.885 366.8 R(of turn)2.5 E(per second)177.575 378.8 Q
222.98 383.3 108 383.3 DL(25% or less)110.775 392.8 Q(90)194.095 392.8 Q
(25 - 50%)115.775 404.8 Q(60)194.095 404.8 Q(50 - 75%)115.775 416.8 Q(40)
194.095 416.8 Q(75% or more)108 428.8 Q(30)194.095 428.8 Q
(At 100% speed, the robot tra)108 445.6 Q -.15(ve)-.2 G
(ls at 20 meters per second.).15 E
(Robots are also subject to acceleration and deac-)5 E
(celearation, a linear constant of 20% speed per second.)108 457.6 Q
(Each robot is equipped with a scanning de)108 474.4 Q
(vice, which can be pointed independently of the current dri)-.25 E -.15(ve)
-.25 G(heading of the robot.)108 486.4 Q 2.5(As)5 G(can can be initiated in an)
209.93 486.4 Q 2.5(yd)-.15 G(irection, 0-359 de)321.98 486.4 Q 2.5(grees. The)
-.15 F(scanner has a v)2.5 E(ariable)-.25 E(resolution capability)108 498.4 Q
2.5(,d)-.65 G(etecting other robots within a maximum of +/- 10 de)199.29 498.4
Q(grees from the scan direction.)-.15 E(If)5 E 2.5(as)108 510.4 S
(can \214nds a robot, the distance to the opposing robot is reported.)118.83
510.4 Q(Ho)5 E(we)-.25 E -.15(ve)-.25 G .8 -.4(r, i).15 H 2.5(far).4 G
(esolution greater than 0)437.45 510.4 Q(is used, the scanner')108 522.4 Q 2.5
(sr)-.55 G(esult may be reported inaccurately)198.26 522.4 Q 5(.I)-.65 G 2.5
(nt)346.18 522.4 S(his case, the distance reported may be of)356.46 522.4 Q 2.5
(fb)-.25 G(y)529.22 522.4 Q(as much as 10 meters for each de)108 534.4 Q
(gree of resolution \(up to 100 meters in error for a +/- 10 de)-.15 E
(gree resolution)-.15 E 2.5(scan.\) A)108 546.4 R
(high resolution scan \(0 speci\214ed for resolution\) will al)2.5 E -.1(wa)-.1
G(ys return accurate results.).1 E(If tw)108 563.2 Q 2.5(oo)-.1 G 2.5(rm)139.56
563.2 S(ore robots are in the scan')153.17 563.2 Q 2.5(sr)-.55 G
(esolution, the closest opponent is reported.)265.92 563.2 Q(It')5 E 2.5(sa)
-.55 G(lso possible to dis-)461.46 563.2 Q(tinguish v)108 575.2 Q(arious oppos\
ing robots, as the scanner has a rudimentary digital signal processor)-.25 E
2.5(,a)-.4 G(nd each robot)478.14 575.2 Q(has a arbitrary signature.)108 587.2
Q 2.5(Ar)5 G
(obot program can also be alerted when it is the subject of a scan by another)
224.91 587.2 Q 2.5(robot. The)108 599.2 R
(signature of the scanning robot can be determined, b)2.5 E(ut not it')-.2 E
2.5(sh)-.55 G(eading or distance.)409.43 599.2 Q 2.5(Ac)108 616 S
(annon is the robot')122.16 616 Q 2.5(so)-.55 G -.25(ff)208.27 616 S(ensi).25 E
.3 -.15(ve w)-.25 H(eapon, \214ring a shell at opposing robots.).15 E
(The cannon has a maximum)5 E
(range of 700 meters, and can be aimed independently of robot heading.)108 628
Q(Damage to all surrounding robots)5 E(is assessed as follo)108 640 Q(ws:)-.25
E(Meters from)108 656.8 Q 2.5(%D)172.71 656.8 S(amage)190.76 656.8 Q -.15(ex)
113.485 668.8 S 23.4(plosion incurred).15 F 216.86 673.3 108 673.3 DL 45.265
(10 10%)127.855 682.8 R 50.265(20 5%)127.855 694.8 R 50.265(40 2%)127.855 706.8
R(While the robot has an lar)108 723.6 Q(ge \(unlimited\) cache of shells a)
-.18 E -.25(va)-.2 G(ilable, it can only reload f).25 E(ast enough to ha)-.1 E
.3 -.15(ve o)-.2 H(ne).15 E 211.22(8/11/94 2)290.72 768 R EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R
(shell in the air at maximum range at an)108 84 Q 2.5(yo)-.15 G
(ne time \(approximately 4 seconds\).)276.44 84 Q(Cannon shells are grouped)5 E
(four to a clip;)108 96 Q(after a clip is e)5 E
(xhausted, it is ejected and a ne)-.15 E 2.5(wc)-.25 G(lip loaded in place.)
361.71 96 Q(The ef)5 E(fect is that on)-.25 E -2.15 -.25(ev e)108 108 T
(ry fourth shell, the reload time is tripled \(12 seconds.\)).25 E
(The cannon \214res its shells in a high arc; a shell)5 E
(will not impact into another robot that might be in the line of \215ight.)108
120 Q(Shells tra)5 E -.15(ve)-.2 G 2.5(la).15 G 2.5(t2)438.76 120 S
(00 meters per second)449.04 120 Q(to)108 132 Q -.1(wa)-.25 G(rd the tar).1 E
(get.)-.18 E -1.11(Va)108 148.8 S(rious feedback re)1.11 E(gisters in the robo\
t can be accessed by the control program, reporting the current)-.15 E(amount \
of damage, x and y battle\214eld location, current speed, and an internal cloc\
k tick.)108 160.8 Q(Robots incur damage e)108 177.6 Q(xpressed as a percent v)
-.15 E 2.5(alue. When)-.25 F(100% damage is reached, the robot is "dead",)2.5 E
(and ceases to function.)108 189.6 Q(Ho)5 E(we)-.25 E -.15(ve)-.25 G .8 -.4
(r, d).15 H(amage has no ef).4 E(fect on operational ability)-.25 E 5(.A)-.65 G
(robot with 99% damage)433.75 189.6 Q(operates as well as one with no damage.)
108 201.6 Q/F1 9/Times-Bold@0 SF(THE B)72 223.2 Q -.855(AT)-.27 G(TLEFIELD).855
E F0(The battle\214eld in TclRobots is a 1,000 by 1,000 meter square area.)108
235.2 Q -.8(Wa)5 G(lls surround the battle\214eld, and).8 E
(robots running into a w)108 247.2 Q(all will suf)-.1 E(fer 5% damage.)-.25 E
(The coordinate system is based on increasing x and y)5 E(axis v)108 259.2 Q
(alues from the southwest corner \(bottom left is 0,0\).)-.25 E
(999,999 is the e)5 E(xtreme northeast \(upper right\).)-.15 E
(Upon start up, robots are placed in random quadrants.)108 276 Q F1(THE R)72
297.6 Q(OBO)-.27 E 2.25(TT)-.36 G(CL LANGU)133.389 297.6 Q -.495(AG)-.54 G(E)
.495 E F0(Robot control programs are written in the Tcl language.)108 309.6 Q
(The follo)5 E(wing Tcl commands are a)-.25 E -.25(va)-.2 G(ilable:).25 E 28.62
(after if)108 326.4 R(rename)204.1 326.4 Q 18.06(append incr)108 338.4 R
(return)204.1 338.4 Q 26.4(array join)108 350.4 R(scan)204.1 350.4 Q 24.73
(break lappend)108 362.4 R(set)204.1 362.4 Q 29.73(case linde)108 374.4 R 21.81
(xs)-.15 G(ource)207.99 374.4 Q 25.84(catch linsert)108 386.4 R(split)204.1
386.4 Q 20.84(concat list)108 398.4 R(string)204.1 398.4 Q 12.5
(continue llength)108 410.4 R(switch)204.1 410.4 Q 27.51(error lrange)108 422.4
R(time)204.1 422.4 Q -.25(eva)108 434.4 S 33.28(ll).25 G 12.51(replace trace)
160.22 434.4 R -.15(ex)108 446.4 S 32.09(it lsearch).15 F(unset)204.1 446.4 Q
-.15(ex)108 458.4 S 29.32(pr lsort).15 F(update)204.1 458.4 Q 34.16(\214le pid)
108 470.4 R(uple)204.1 470.4 Q -.15(ve)-.25 G(l).15 E 35.28(for proc)108 482.4
R(upv)204.1 482.4 Q(ar)-.25 E 16.96(foreach rand)108 494.4 R(while)204.1 494.4
Q 20.28(format re)108 506.4 R(ge)-.15 E(xp)-.15 E 21.94(global re)108 518.4 R
(gsub)-.15 E(Note that the)108 535.2 Q/F2 10/Times-Italic@0 SF(after)2.5 E F0
(and)2.5 E F2(update)2.5 E F0(commands from Tk are a)2.5 E -.25(va)-.2 G 2.5
(ilable. See).25 F(the Tcl and Tk man pages for infor)2.5 E(-)-.2 E
(mation on these commands.)108 547.2 Q F1(THE R)72 568.8 Q(OBO)-.27 E 2.25(TH)
-.36 G(ARD)134.388 568.8 Q -1.08(WA)-.36 G(RE INTERF)1.08 E -.495(AC)-.81 G(ES)
.495 E F0(The follo)108 580.8 Q(wing Tcl commands are the interf)-.25 E
(ace to the robot')-.1 E 2.5(sh)-.55 G(ardw)355.94 580.8 Q(are \(syscalls.\))
-.1 E(Each interf)5 E(ace command)-.1 E(tak)108 592.8 Q
(es a minimum of 100 milliseconds to complete \(e)-.1 E
(xcept the scanner command, which requires 200 mil-)-.15 E 2.5
(liseconds.\) Commands)108 604.8 R(that tak)2.5 E 2.5(ea)-.1 G -.18(rg)245.11
604.8 S(uments will return -1 if an).18 E 2.5(ya)-.15 G -.18(rg)369.76 604.8 S
(ument is out of v).18 E(alid ranges.)-.25 E -.15(Fo)5 G(r).15 E(de)108 616.8 Q
(grees, v)-.15 E(alid v)-.25 E(alues are 0-359; for speed, 0-100, for resoluti\
on, 0-10, for cannon range, 0-700.)-.25 E/F3 10/Times-Bold@0 SF(scanner)108
638.4 Q F2(de)2.5 E(gr)-.4 E(ee r)-.37 E(esolution)-.37 E F0
(The scanner command in)144 650.4 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(st).1 G
(he robot')272.72 650.4 Q 2.5(ss)-.55 G(canner)318.83 650.4 Q(.)-.55 E F2(De)5
E(gr)-.4 E(ee)-.37 E F0(must be in the range 0-359.)2.5 E(Scanner)5 E
(returns 0 if nothing found, or an inte)144 662.4 Q
(ger greater than zero indicating the distance to an opponent.)-.15 E F2
(Resolution)144 674.4 Q F0(controls ho)2.5 E 2.5(ww)-.25 G(ide in de)250.69
674.4 Q(grees the scan can detect opponents from the absolute scanning)-.15 E
(direction, and must be in the range 0-10.)144 686.4 Q 2.5(Ar)5 G
(obot that has been destro)323.97 686.4 Q(yed is not reported by the)-.1 E
(scanner)144 698.4 Q(.)-.55 E F3(dsp)108 715.2 Q F0
(The dsp command returns a list of tw)144 727.2 Q 2.5(oi)-.1 G(nte)303.33 727.2
Q(gers, the \214rst element is the digital signature of the last)-.15 E 211.22
(8/11/94 3)290.72 768 R EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R
(robot found using the scanner)144 84 Q 5(.T)-.55 G
(he second element is the percent of damage the scanned robot has)275.93 84 Q
(accumulated, 0-99 percent.)144 96 Q
(Each robot in a battle has a distinct signature.)5 E(If nothing w)5 E
(as found)-.1 E(during the last scan \(scanner command returned 0\), then the \
dsp command will return "0 0".)144 108 Q/F1 10/Times-Bold@0 SF(alert)108 124.8
Q/F2 10/Times-Italic@0 SF(pr)2.5 E(oc-name)-.45 E F0(The alert command names a\
procedure to be called when the robot is being scanned by another)144 136.8 Q
2.5(robot. When)144 148.8 R(the robot detects it has been scanned, the)2.5 E F2
(pr)2.5 E(oc-name)-.45 E F0(procedure is called with one)2.5 E(ar)144 160.8 Q
(gument, the dsp signature of the robot that performed the scan.)-.18 E
(If proc-name is null \(""\), then)5 E(the alert feature is disabled.)144 172.8
Q F1(cannon)108 189.6 Q F2(de)2.5 E(gr)-.4 E(ee r)-.37 E(ang)-.15 E(e)-.1 E F0
(The cannon commands \214res a shell in the direction speci\214ed by)144 201.6
Q F2(de)2.5 E(gr)-.4 E(ee)-.37 E(,)-.1 E F0(for the distance)2.5 E F2 -.15(ra)
2.5 G(ng).15 E -.15(e.)-.1 G F0(Cannon returns 1 if a shell w)144 213.6 Q
(as \214red; if the cannon is reloading, 0 is returned.)-.1 E F1(damage)108
230.4 Q F0(The damage command reports the current percent of damage suf)144
242.4 Q(fered by the robot, 0-99.)-.25 E(At 100%)5 E(damage, the robot is "dea\
d", and as such, the control program is no longer running.)144 254.4 Q F1(dri)
108 271.2 Q -.1(ve)-.1 G F2(de)2.6 E(gr)-.4 E(ee speed)-.37 E F0(The dri)144
283.2 Q .3 -.15(ve c)-.25 H(ommand starts the robot').15 E 2.5(sd)-.55 G(ri)
300.25 283.2 Q .3 -.15(ve m)-.25 H(echanism.).15 E F2(De)5 E(gr)-.4 E(ee)-.37 E
F0(must be in the range 0-359.)2.5 E F2(Speed)144 295.2 Q F0
(must be in the range 0-100.)2.5 E(An)5 E 2.5(yc)-.15 G(hange in course that f)
308.82 295.2 Q(alls outside the "De)-.1 E(grees of course)-.15 E
(change" table \(see "The Robot", abo)144 307.2 Q -.15(ve)-.15 G 2.5(\)w).15 G
(ill cause the robot')311.73 307.2 Q 2.5(ss)-.55 G
(peed to be set to 0 along the current)396.17 307.2 Q 2.5(course. A)144 319.2 R
(speed of 0 causes the robot to coast to a stop.)2.5 E(The dri)5 E .3 -.15
(ve c)-.25 H(ommand returns the speed set.).15 E(If the dri)144 331.2 Q .3 -.15
(ve i)-.25 H 2.5(sc).15 G(urrently o)204.14 331.2 Q -.15(ve)-.15 G
(rheated, the maximum speed during o).15 E -.15(ve)-.15 G
(rheating \(35%\) will be set.).15 E F1(speed)108 348 Q F0
(The speed command reports the current speed of the robot, 0-100.)144 360 Q
(Speed may return more or less)5 E(than what w)144 372 Q
(as last set with the dri)-.1 E .3 -.15(ve c)-.25 H
(ommand because of acceleration/deaccelearation, dri).15 E .3 -.15(ve ove)-.25
H -.2(r-).15 G(heating, or collision into a w)144 384 Q(all.)-.1 E F1(heat)108
400.8 Q F0(The heat command returns a list of tw)144 412.8 Q 2.5(oi)-.1 G(nte)
306.1 412.8 Q(gers, the \214rst element is the o)-.15 E -.15(ve)-.15 G
(rheating \215ag, 1 if the).15 E(maximum heat v)144 424.8 Q(alue w)-.25 E
(as attained, otherwise 0.)-.1 E(The second element is the current heat inde)5
E(x,)-.15 E(0-200.)144 436.8 Q F1(loc_x)108 453.6 Q F0(The loc_x command retur\
ns the current x axis location of the robot, 0-999 meters.)144 465.6 Q F1
(loc_y)108 482.4 Q F0(The loc_y command returns the current y axis location of\
the robot, 0-999 meters.)144 494.4 Q F1(tick)108 511.2 Q F0(The tick command \
returns the current robot clock tick, which has a 500 millisecond resolution.)
144 523.2 Q(The clock is set to 0 upon robot startup.)144 535.2 Q(Con)108 556.8
Q -.15(ve)-.4 G(nience commands).15 E(The follo)108 573.6 Q
(wing Tcl commands are a)-.25 E -.25(va)-.2 G
(ilable to the robot control program.).25 E(As such, the)5 E 2.5(ye)-.15 G -.15
(xe)463.33 573.6 S(cute immedi-).15 E(ately without the 100 millisecond interf)
108 585.6 Q(ace time.)-.1 E F1(dputs)108 602.4 Q F2(ar)2.5 E(gs)-.37 E F0
(The dputs command prints a message on the robot')144 614.4 Q 2.5(ss)-.55 G
(tatus windo)358.15 614.4 Q 3.8 -.65(w. D)-.25 H(puts accepts an).65 E 2.5(yn)
-.15 G(umber of)498.47 614.4 Q(ar)144 626.4 Q(guments.)-.18 E F1(rand)108 643.2
Q F2(max)2.5 E F0(The rand command is a simple random number generator)144
655.2 Q 2.5(,b)-.4 G(ased on Knuth')383 655.2 Q 2.5(sa)-.55 G 2.5
(lgorithm. The)454.38 655.2 R(rand)2.5 E(command returns an inte)144 667.2 Q
(ger between 0 and \()-.15 E F2(max)2.5 E F0 2.5(-1)2.5 G
(\), where max is in the range 1 to 65535.)354.35 667.2 Q(The)5 E(seed v)144
679.2 Q(alue is randomly set; if a particular seed v)-.25 E
(alue is desired, the global v)-.25 E(ariable)-.25 E F2(_lastvalue)2.5 E F0
(may)2.5 E(be set to a v)144 691.2 Q(alue between 0-65535.)-.25 E 211.22
(8/11/94 4)290.72 768 R EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R/F1
9/Times-Bold@0 SF(WRITING R)72 84 Q(OBO)-.27 E 2.25(TC)-.36 G(ONTR)156.879 84 Q
(OL PR)-.27 E(OGRAMS)-.27 E F0(Se)108 96 Q -.15(ve)-.25 G(ral internal v).15 E
(ariables and procedures are loaded into a robot before loading the robot cont\
rol program.)-.25 E(Reserv)108 108 Q(ed v)-.15 E(ariables and commands be)-.25
E(gin with and underscore "_" or dot ".".)-.15 E(Do not use v)5 E
(ariables or proce-)-.25 E(dures in robot control program that be)108 120 Q
(gin with either symbol.)-.15 E(Robot control programs may set v)108 136.8 Q
(ariables or de\214ne procedures as required.)-.25 E
(Robot control programs should)5 E(ne)108 148.8 Q -.15(ve)-.25 G 2.5(re).15 G
(xit, as the)136.6 148.8 Q 2.5(yw)-.15 G(ill not be restarted by TclRobots.)
189.78 148.8 Q(Thus, the main processing should be enclosed in an)5 E
(endless loop, e.g. "while 1 { ... }")108 160.8 Q
(Most standard Tcl commands are a)108 177.6 Q -.25(va)-.2 G
(ilable to robot control programs.).25 E(Notable Tcl commands that are)5 E
(missing: all \214le I/O \()108 189.6 Q/F2 10/Times-Italic@0 SF -.1(ge)2.5 G
(ts, puts, open, close).1 E(,)-.1 E F0(etc.\),)2.5 E F2 -.2(ex)2.5 G(ec, info,)
.2 E F0(standard Tcl library procs \()2.5 E F2(auto_load,)2.5 E(unknown, tk)108
201.6 Q(err)-.1 E(or)-.45 E F0(etc.\))2.5 E
(In addition, most standard Tk commands are also missing.)108 218.4 Q
(Tk commands that are a)5 E -.25(va)-.2 G(ilable are).25 E F2(after)2.5 E F0
(and)2.5 E F2(update)108 230.4 Q(.)-.15 E F0
(Each syscall implicitly performs the)5 E F2(update)2.5 E F0
(command, or the programmer can e)2.5 E -.15(xe)-.15 G(cute it an).15 E 2.5(yt)
-.15 G(ime)517.89 230.4 Q(to ensure that commands scheduled with)108 242.4 Q F2
(after)2.5 E F0(are run.)2.5 E(An)108 259.2 Q 2.5(y")-.15 G(unkno)131.65 259.2
Q(wn" procedure, or "tk)-.25 E(error" situation is reported in the robot')-.1 E
2.5(ss)-.55 G(tatus windo)409.89 259.2 Q 1.3 -.65(w, a)-.25 H
(nd the robot pro-).65 E(gram will terminate.)108 271.2 Q
(Robot control programs may also e)108 288 Q(xamine \(b)-.15 E
(ut not set\) the global v)-.2 E(ariable)-.25 E F2(_deb)2.5 E(ug)-.2 E F0
(to cause deb)2.5 E(ugging code)-.2 E(to be e)108 300 Q -.15(xe)-.15 G
(cuted during battle simulation.).15 E F2(_deb)5 E(ug)-.2 E F0
(is set to 1 if running in the simulator)2.5 E 2.5(,0o)-.4 G 2.5
(therwise. \(see)465.42 300 R("The Simulator" belo)108 312 Q -.65(w.)-.25 G(\))
.65 E(If the)108 328.8 Q F2(alert)2.5 E F0
(command is used, the procedure it speci\214es should e)2.5 E(xist, and tak)
-.15 E 2.5(eo)-.1 G(ne ar)423.82 328.8 Q(gument, e.g.)-.18 E(proc I_W)144 345.6
Q(as_Scanned {who} {)-.8 E(dputs $who scanned me!)149 357.6 Q(})144 369.6 Q
(alert I_W)144 381.6 Q(as_Scanned)-.8 E(An)108 398.4 Q 2.5(yv)-.15 G
(alid \214lename can be used for a robot control program; a suf)132.32 398.4 Q
(\214x of)-.25 E/F3 10/Times-Bold@0 SF(.tr)2.5 E F0
(is recommended to indicate a)2.5 E(TclRobots \214le.)108 410.4 Q F1(THE TCLR)
72 432 Q(OBO)-.27 E(TS USER INTERF)-.36 E -.495(AC)-.81 G(E).495 E F0
(TclRobots has a user interf)108 444 Q(ace to start battles, run the simulator)
-.1 E 2.5(,c)-.4 G(ommence a tournament, and vie)369.96 444 Q 2.5(wb)-.25 G
(attles)512.46 444 Q(in progress.)108 456 Q
(Upon startup, TclRobots displays a bar of \214v)5 E 2.5(eb)-.15 G
(uttons, and tw)351.24 456 Q 2.5(ol)-.1 G(istbox)417.81 456 Q 2.5(es. The)-.15
F -.2(bu)2.5 G(ttons are:).2 E 32.67(-R)108 472.8 S
(un Battle - runs a battle with selected robots)150.67 472.8 Q 32.67(-S)108
489.6 S(imulator)149.56 489.6 Q(.. - starts the simulator dialog)-.55 E 32.67
(-T)108 506.4 S(ournament.. - starts the tournament controller)149.31 506.4 Q
32.67(-A)108 523.2 S(bout.. - a small about box with TclRobots v)151.22 523.2 Q
(ersion number)-.15 E 32.67(-Q)108 540 S(uit - immediately e)151.22 540 Q
(xits TclRobots)-.15 E(The tw)108 556.8 Q 2.5(ol)-.1 G(istbox)146.23 556.8 Q(e\
s are a \214le section box \(left side\), and a list of selected robot \214les\
\(right side\).)-.15 E(The \214le section box presents a list of directories \
and \214les in the current directory)108 573.6 Q 5(.D)-.65 G
(ouble-clicking on a)444.24 573.6 Q(directory changes to that directory)108
585.6 Q 5(.D)-.65 G
(ouble-clicking on a \214le chooses that \214le to be run in a battle, simula-)
259.26 585.6 Q(tor)108 597.6 Q 2.5(,o)-.4 G 2.5(rt)128.71 597.6 S 2.5
(ournament. A)137.32 597.6 R(\214le \214lter entry is presented at the top of \
the \214le selection box and may be used to \214l-)2.5 E
(ter the selection by entering a pattern and pressing "Filter".)108 609.6 Q
(At the bottom of the \214le selection list is a \214le)5 E 2.5
(selection. Entering)108 621.6 R 2.5<618c>2.5 G(le and pressing "Select" will \
enter that \214le in the "Robot Files Selected" list.)200.49 621.6 Q(The)5 E
-.2(bu)108 633.6 S(tton labeled "Select All" will select all \214les in the \
\214le selection box to the Robot Files Selected list.).2 E
(Robot \214les should be selected before pressing "Run Battle", "Simulator)108
650.4 Q(..", or "T)-.55 E 2.5(ournament..". T)-.8 F 2.5(or)-.8 G(un a sin-)
502.8 650.4 Q(gle battle, select tw)108 662.4 Q 2.5(ot)-.1 G 2.5(of)195.39
662.4 S(our robot \214les from the \214le selection list.)206.22 662.4 Q 2.5
(As)5 G(ingle \214le may be selected more than)388.16 662.4 Q
(once; separate robots will be loaded with the same \214le.)108 674.4 Q
(If the "Simulator)5 E 2.5(.." b)-.55 F(utton is pressed, the \214rst \214le)
-.2 E(in the Robot Files Selected list will be used for the Simulator)108 686.4
Q 5(.I)-.55 G 2.5(ft)362.45 686.4 S(he "T)371.06 686.4 Q(ournament.." b)-.8 E
(utton is pressed, all)-.2 E
(\214les in the Robot Files Selected list will be run in a tournament f)108
698.4 Q 2.5(ashion. In)-.1 F 2.5(at)2.5 G(ournament, duplicate \214les)420.67
698.4 Q(will be remo)108 710.4 Q -.15(ve)-.15 G 2.5(df).15 G(rom the list.)
178.52 710.4 Q(The Robot Files Selected listbox has tw)108 727.2 Q 2.5(ob)-.1 G
(uttons, "Remo)279.09 727.2 Q -.15(ve)-.15 G(", and "Remo).15 E .3 -.15(ve A)
-.15 H 2.5(ll". Selecting).15 F 2.5<618c>2.5 G(le by single)487.86 727.2 Q
211.22(8/11/94 5)290.72 768 R EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R
(clicking and pressing the Remo)108 84 Q .3 -.15(ve b)-.15 H(utton will remo)
-.05 E .3 -.15(ve t)-.15 H(hat \214le from the list.).15 E(The Remo)5 E .3 -.15
(ve A)-.15 H(ll b).15 E(utton will)-.2 E(remo)108 96 Q .3 -.15(ve a)-.15 H
(ll \214les from the Robot Files Selected list.).15 E
(Robot \214les selected are not v)108 112.8 Q 2.5(eri\214ed; if)-.15 F 2.5
<618c>2.5 G(le other than a TclRobots robot control program is selected,)278.11
112.8 Q(results are unpredictable.)108 124.8 Q
(When "Run Battle" is pressed, TclRobots will spa)108 146.4 Q(wn a ne)-.15 E
2.5(ww)-.25 G(ish interpreter)355.46 146.4 Q 2.5(,p)-.4 G
(osition it to the right of the)420.88 146.4 Q(main windo)108 158.4 Q 1.3 -.65
(w, a)-.25 H(nd load it with a selected robot control program.).65 E
(After all robot wish interpreters are)5 E(spa)108 170.4 Q
(wned, the \214le selection frame is replaced with a vie)-.15 E 2.5(wo)-.25 G
2.5(nt)341.16 170.4 S(he battle\214eld and the battle will commence.)351.44
170.4 Q(Each robot is assigned a speci\214c color)108 182.4 Q 2.5(,a)-.4 G
(nd is represented on the battle\214eld by a unique arro)269.79 182.4 Q 2.5(ws)
-.25 G(hape of that)488.39 182.4 Q(color)108 194.4 Q 5(.W)-.55 G
(hen a robot issues the)144.94 194.4 Q/F1 10/Times-Italic@0 SF(scanner)2.5 E F0
(command, the scan is represented by a dotted line emanating from)2.5 E
(the robot.)108 206.4 Q
(Shells \214red by a robot are represented by a small black dot.)5 E
(The robot')5 E 2.5(sc)-.55 G(urrent damage status is)446.28 206.4 Q(sho)108
218.4 Q(wn belo)-.25 E 2.5(wt)-.25 G(he robot')165.83 218.4 Q 2.5<738c>-.55 G
(le name, just abo)213.61 218.4 Q .3 -.15(ve t)-.15 H(he battle\214eld.).15 E
(During a battle, the "Run Battle" b)108 235.2 Q(utton is replaced, by "Halt".)
-.2 E(If pressed, the current battle is halted, and)5 E(the spa)108 247.2 Q
(wned robot interpreters e)-.15 E 2.5(xit. The)-.15 F("Halt" b)2.5 E
(utton is then replaced with "Reset", which remo)-.2 E -.15(ve)-.15 G 2.5(st)
.15 G(he)514.57 247.2 Q
(battle\214eld, and presents the \214le selection frame.)108 259.2 Q(Indi)108
276 Q(vidual wish interpreters for the robots contain a listbox and scrollbar)
-.25 E 2.5(,w)-.4 G(hich hold output from the)409.53 276 Q("dputs" command.)108
288 Q/F2 9/Times-Bold@0 SF(THE SIMULA)72 314.4 Q -.162(TO)-.855 G(R).162 E F0
(The "Simulator)108 326.4 Q(.." b)-.55 E(utton starts the simulator)-.2 E 2.5
(,u)-.4 G(sing the \214rst entry in the Robot Files Selected list.)294.18 326.4
Q 2.5(As)5 G(imula-)512.8 326.4 Q(tor control windo)108 338.4 Q 2.5(wa)-.25 G
(ppears, and a tar)191.35 338.4 Q
(get robot is placed in the middle of the battle\214eld \(500,500\).)-.18 E
(The Simulator allo)108 355.2 Q(ws a robot program to be e)-.25 E
(xamined during robot e)-.15 E -.15(xe)-.15 G(cution, re).15 E -.15(ve)-.25 G
(aling important informa-).15 E(tion about the robot.)108 367.2 Q 2.5(Ar)5 G
(obot control program can be set to stop on each "syscall" \(an)207.16 367.2 Q
2.5(yo)-.15 G 2.5(ft)462.35 367.2 S(he robot hard-)470.96 367.2 Q -.1(wa)108
379.2 S(re interf).1 E(ace commands.\))-.1 E
(While the robot program is paused, the simulator can query or set global v)5 E
(ari-)-.25 E(ables in the robot control program.)108 391.2 Q
(The Simulator has its control b)108 408 Q
(uttons at the top of the Simulator windo)-.2 E 3.8 -.65(w. A)-.25 H(checkb)
3.15 E(utton "Step syscalls")-.2 E
(toggles the single step action of the robot control program.)108 420 Q(The b)5
E(utton "Single Step" will also set the Step)-.2 E(Syscalls checkb)108 432 Q
(utton, or allo)-.2 E 2.5(wt)-.25 G(he robot control program to run to the ne)
235.04 432 Q(xt syscall if already in Step)-.15 E 2.5(Syscalls. The)108 444 R
-.2(bu)2.5 G(tton "5% Hit" simulates the robot incurring damage.).2 E(The b)5 E
(utton "Scan" simulates the)-.2 E(robot being scanned by the tar)108 456 Q 2.5
(get. The)-.18 F(tar)2.5 E(get')-.18 E 2.5(sd)-.55 G(sp signature is "1".)
303.16 456 Q(The b)5 E(utton "Close" will remo)-.2 E .3 -.15(ve t)-.15 H(he).15
E(simulator and the spa)108 468 Q(wned robot wish interpreter)-.15 E 2.5(,a)-.4
G(nd return to the \214le selection listbox frame.)312.97 468 Q
(When the "Step Syscalls" b)108 484.8 Q(utton is in the "of)-.2 E
(f" state, the robot e)-.25 E -.15(xe)-.15 G(cutes its code in real time.).15 E
(During "Sin-)5 E(gle Step", e)108 496.8 Q -.15(xe)-.15 G
(cution is paused at the ne).15 E(xt syscall and one motion time c)-.15 E
(ycle is e)-.15 E -.15(xe)-.15 G 2.5(cuted. Thus,).15 F(time is not)2.5 E
(accurately represented.)108 508.8 Q(The beha)5 E
(vior of a robot that is single stepped may be e)-.2 E
(xaggerated, especially while)-.15 E(the robot is in motion.)108 520.8 Q
(As the robot is simulated, the robot')108 537.6 Q 2.5(sXa)-.55 G
(nd Y location, current heat inde)272.16 537.6 Q
(x, speed, heading, and damage are)-.15 E 2.5(updated. If)108 549.6 R
(the simulator is in the Step Syscalls state, these attrib)2.5 E
(utes may also be set by entering a ne)-.2 E(w)-.25 E -.25(va)108 561.6 S 2.5
(lue. P).25 F(arameter \214elds only accept numeric entries in the range that \
is acceptable for an)-.15 E 2.5(yp)-.15 G(articular param-)473.75 561.6 Q(eter)
108 573.6 Q 5(.T)-.55 G(he "Heat" entry turns red \(in)136.05 573.6 Q -.15(ve)
-.4 G(rse on monochrome displays\) when the robot').15 E 2.5(sm)-.55 G
(otor is the in o)455.83 573.6 Q -.15(ve)-.15 G -.2(r-).15 G(heated state.)108
585.6 Q(The last syscall e)108 602.4 Q -.15(xe)-.15 G
(cuted by the robot is sho).15 E(wn, along with the ar)-.25 E
(guments to the call \(if an)-.18 E 2.5(y\). The)-.15 F(return)2.5 E -.25(va)
108 614.4 S(lue from the syscall is sho).25 E(wn in parentheses.)-.25 E
(The current clock tick is also displayed, b)5 E(ut cannot be)-.2 E(altered.)
108 626.4 Q(At the bottom of the simulator)108 643.2 Q 2.5(,g)-.4 G(lobal v)
238.99 643.2 Q(ariables in the robot may be e)-.25 E(xamined or set.)-.15 E
(Entering a v)5 E(ariable)-.25 E(name in the "V)108 655.2 Q
(ariable" entry and pressing enter or the "Examine" b)-1.11 E
(utton will display the v)-.2 E(ariable')-.25 E 2.5(sv)-.55 G(alue.)509.12
655.2 Q(Entering a ne)108 667.2 Q 2.5(wv)-.25 G(alue in the "V)175.54 667.2 Q
(alue" entry and pressing enter or the "Set" b)-1.11 E(utton will set the v)-.2
E(ariable.)-.25 E F2 -.162(TO)72 693.6 S(URN).162 E(AMENT CONTR)-.18 E(OLLER)
-.27 E F0(The "T)108 705.6 Q(ournament.." b)-.8 E(utton starts the T)-.2 E
(ournament Controller windo)-.8 E 3.8 -.65(w. W)-.25 H(hen the "Start T).65 E
(ournament" b)-.8 E(utton)-.2 E
(is pressed, \214les in the Robot Files Selected windo)108 717.6 Q 2.5(wa)-.25
G(re \214rst scanned for uniqueness, ignoring an)320.52 717.6 Q 2.5(yd)-.15 G
(uplicate)505.34 717.6 Q 2.5(\214lenames. A)108 729.6 R
(tournament is run on the remaining \214les in a round-robin f)2.5 E
(ashion, each robot battling e)-.1 E -.15(ve)-.25 G(ry).15 E 211.22(8/11/94 6)
290.72 768 R EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R
(other)108 84 Q 2.5(,o)-.4 G(ne-on-one.)138.15 84 Q 2.5(At)108 100.8 S
(ime limit is imposed on each battle.)120.5 100.8 Q(The def)5 E
(ault is 10 minutes per battle, and may be set in the "Maxi-)-.1 E
(mum minutes per match" entry)108 112.8 Q 5(.O)-.65 G(ptionally)246.14 112.8 Q
2.5(,t)-.65 G(ournament results may be sa)288.83 112.8 Q -.15(ve)-.2 G 2.5(di)
.15 G(nto a \214le by specifying a)422.07 112.8 Q -.25(va)108 124.8 S
(lid \214le name in the "Optional results \214le" entry).25 E(.)-.65 E
(Results of each indi)108 141.6 Q
(vidual match are displayed in the "Results" listbox.)-.25 E
(Each battle is scored.)108 158.4 Q 2.5(Ar)5 G(obot winning a match recei)
211.03 158.4 Q -.15(ve)-.25 G 2.5(st).15 G(hree points.)338.11 158.4 Q 2.5(At)5
G(ie match \(both robots still running)402.27 158.4 Q(after the time limit e)
108 170.4 Q(xpires\) results in one point each.)-.15 E
(At the end of the tournament, robots are rank)5 E(ed)-.1 E
(according to total points.)108 182.4 Q(During each match, the main windo)108
199.2 Q 2.5(wo)-.25 G
(perates as in "Run Battle" mode; "Halt may be used to stop a tour)265.78 199.2
Q(-)-.2 E(nament in progress.)108 211.2 Q(The T)5 E(ournament Controller')-.8 E
2.5(sw)-.55 G(indo)317.73 211.2 Q 2.5(ww)-.25 G
(ill display the time remaining in the current)352.2 211.2 Q(match.)108 223.2 Q
/F1 9/Times-Bold@0 SF(INTERN)72 249.6 Q(ALS)-.18 E F0
(TclRobots implements a small "ph)108 261.6 Q
(ysics" package \(proc update_robots\) to control robot and missile \(cannon)
-.05 E(shells\) mo)108 273.6 Q -.15(ve)-.15 G 2.5(ment. The).15 F
(proc is scheduled to run e)2.5 E -.15(ve)-.25 G
(ry 500 milliseconds during a battle.).15 E(Each robot in a battle e)108 290.4
Q -.15(xe)-.15 G(cutes in a separate wish interpreter).15 E 5(.W)-.55 G
(hen a ne)364.58 290.4 Q 2.5(wr)-.25 G(obot is started, a series of setup)410.7
290.4 Q(and interf)108 302.4 Q
(ace code is \214rst sent \(using "send"\) to the ne)-.1 E 2.5(wi)-.25 G
(ntepreter)336.05 302.4 Q 5(.A)-.55 G("source" command is also sent to)388.26
302.4 Q(load an indi)108 314.4 Q(vidual robot control program.)-.25 E
(The interf)5 E(ace code that is sent causes each robot to relay its inter)-.1
E(-)-.2 E -.1(fa)108 326.4 S
(ce calls back to TclRobots using the "send" command.).1 E
(Most commands set parameters in an array that TclRobots maintains.)108 343.2 Q
(The "update_robots" proc carries out)5 E(the requests.)108 355.2 Q
("Scanner" is an e)5 E(xception, in that the scan is computed and v)-.15 E
(alues returned.)-.25 E(Commands that)5 E
(return status information merely return rele)108 367.2 Q -.25(va)-.25 G
(nt portions of the robot array).25 E(.)-.65 E(Cheating?)108 384 Q
(Since each robot communicates to TclRobots via the)108 396 Q/F2 10
/Times-Italic@0 SF(send)2.5 E F0(command, it e)2.5 E
(xposes TclRobots to unauthorized)-.15 E(access to its internals.)108 408 Q
(Thus, a crafty robot programmer may be tempted to use)5 E F2(send)2.5 E F0
(to look at or set the)2.5 E(state of other robots.)108 420 Q
(The setup code is modi\214ed for each robot, renaming the)5 E F2(send)2.5 E F0
(command to a randomly)2.5 E(generated name.)108 432 Q(The Tcl)5 E F2(info)2.5
E F0(command is deleted, so that the ne)2.5 E 2.5(ws)-.25 G
(end command name is not readily)381.87 432 Q 2.5(apparent. Ho)108 444 R(we)
-.25 E -.15(ve)-.25 G .8 -.4(r, t).15 H(his method is not totally foolproof.).4
E(Just consider it to be "unsportsman-lik)108 460.8 Q
(e" to attempt such usage of send.)-.1 E F1 -.495(AC)72 487.2 S(KNO).495 E
(WLEDGMENTS)-.45 E F0(I')108 499.2 Q .3 -.15(ve u)-.5 H(sed a fe).15 E 2.5(wp)
-.25 G(ieces of code in TclRobots that I didn')175.96 499.2 Q 2.5(tw)-.18 G
(rite, and ackno)341.87 499.2 Q(wledge those people:)-.25 E
(John Ousterhout - mkDialog, from the "widget" demo included with Tk)149 520.8
Q(Mark Eichin - rand, from a comp.lang.tcl posting)149 532.8 Q
(Bill Burdick - e)149 544.8 Q -.15(ve)-.25 G(ry).15 E 2.5(,f)-.65 G
(rom a comp.lang.tcl posting)236.55 544.8 Q 2.5(Ia)149 568.8 S
(lso used the \214le selection box procs from my "wisql" and "w)159.27 568.8 Q
(osql")-.1 E(programs distrib)149 580.8 Q(uted with Sybtcl and Oratcl.)-.2 E
(I')108 597.6 Q 2.5(da)-.5 G(lso lik)126.1 597.6 Q 2.5(et)-.1 G 2.5(or)160.45
597.6 S(ecognize John Ousterhout ag)171.28 597.6 Q
(ain, for creating Tcl/Tk and making it a)-.05 E -.25(va)-.2 G(ilable to the w)
.25 E(orld.)-.1 E(Tcl/Tk is such a \215e)108 609.6 Q(xible language - I w)-.15
E(as able to graft in the simulator and tournament controller as after)-.1 E
(thoughts, without changing much e)108 621.6 Q(xisting code.)-.15 E F1(NO)72
648 Q(TES)-.36 E F0(If you are unf)108 660 Q(amiliar with 'Core w)-.1 E
(ar', it is a programming g)-.1 E(ame based on tw)-.05 E 2.5(oa)-.1 G
(ssembly language programs)427.03 660 Q
(running in one address space of a virtual computer)108 672 Q 5(.P)-.55 G
(rograms try to cause the other to terminate, lea)322.69 672 Q(ving)-.2 E
(the winning program as the only one left running.)108 684 Q(From the rec.g)108
700.8 Q(ames.core)-.05 E -.1(wa)-.25 G 2.5(rF).1 G(requently Ask)229.51 700.8 Q
(ed Questions \(Stef)-.1 E(an Strack\):)-.1 E(Core W)144 717.6 Q(ar w)-.8 E
(as \214rst described in the "Core W)-.1 E
(ar Guidelines" of March, 1984 by D. G. Jones and A.)-.8 E(K. De)144 729.6 Q
(wdne)-.25 E 2.5(yo)-.15 G 2.5(ft)201.64 729.6 S
(he Department of Computer Science at The Uni)210.25 729.6 Q -.15(ve)-.25 G
(rsity of W).15 E(estern Ontario)-.8 E 211.22(8/11/94 7)290.72 768 R EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 164.56(TclRobots\(6\) Tcl/Tk TclRobots\(6\))72 48 R 2.5
(\(Canada\). De)144 84 R(wdne)-.25 E 2.5(yw)-.15 G(rote se)235.79 84 Q -.15(ve)
-.25 G(ral "Computer Recreations" articles in "Scienti\214c American").15 E
(which discussed Core W)144 96 Q(ar)-.8 E 2.5(,s)-.4 G
(tarting with the May 1984 article.)258.61 96 Q(My CR)108 112.8 Q(OBO)-.4 E
(TS g)-.4 E(ame w)-.05 E(as released in 1985 as PC MSDOS "Share)-.1 E -.1(wa)
-.25 G 2.5(re". It).1 F(is still a)2.5 E -.25(va)-.2 G(ilable from v).25 E
(arious)-.25 E(FTP archi)108 124.8 Q -.15(ve)-.25 G(s, including:).15 E
(ftp://oak.oakland.edu/pub/msdos/c/crobots.zip)108 141.6 Q(CR)108 158.4 Q(OBO)
-.4 E(TS w)-.4 E(as released in binary form only)-.1 E 2.5(,a)-.65 G
(nd a source license w)295.87 158.4 Q(as a)-.1 E -.25(va)-.2 G
(ilable for payment of the share-).25 E -.1(wa)108 170.4 S(re fee.).1 E -.8(Wo)
5 G(rking on TclRobots has ag).8 E(ain spark)-.05 E(ed my interest in such g)
-.1 E(ames, and I'm tempted to update)-.05 E(CR)108 182.4 Q(OBO)-.4 E 2.5
(TS. An)-.4 F 2.5(ys)-.15 G
(uch release \(no promises when that might be\) will include source.)184.28
182.4 Q(If TclRobots complains that you are using "xhost" style security)108
199.2 Q 2.5(,y)-.65 G(ou should either use "xauth" style secu-)373.55 199.2 Q
(rity)108 211.2 Q 2.5(,o)-.65 G 2.5(rr)131.24 211.2 S
(ecompile your wish interpreter)140.4 211.2 Q 2.5(,u)-.4 G
(ncommenting the Tk Mak)273.03 211.2 Q(e\214le line:)-.1 E(#SECURITY_FLA)108
228 Q(GS = -DTK_NO_SECURITY)-.4 E(Information on setting up "xauth" is a)108
244.8 Q -.25(va)-.2 G(ilable at:).25 E(ftp://harbor)108 261.6 Q
(.ecn.purdue.edu/pub/tcl/docs/Xauthority)-.55 E(.gz)-.65 E/F1 9/Times-Bold@0 SF
-.09(BU)72 283.2 S(GS).09 E F0
(TclRobots is inherently simplistic in its treatment of ph)108 295.2 Q 2.5
(ysics. P)-.05 F(art of the goal is to run a challenging g)-.15 E(ame)-.05 E
(while still e)108 307.2 Q -.15(xe)-.15 G
(cuting and updating the battle\214eld in a reasonable time period.).15 E 2.5
(Id)5 G -2.15 -.25(ev e)429.61 307.2 T(loped TclRobots on a).25 E
(486-50mhz pc running Linux, and can easily run a four robot battle \(\214v)108
319.2 Q 2.5(ew)-.15 G(ish interpreters running.\))407.8 319.2 Q(I')108 336 Q .3
-.15(ve \214)-.5 H -.15(xe).15 G 2.5(dt).15 G(he size of the main windo)151.08
336 Q 1.3 -.65(w, l)-.25 H(ar).65 E
(gely for ease of plotting the robots and missiles in the can)-.18 E -.25(va)
-.4 G(s.).25 E(Currently the can)108 348 Q -.25(va)-.4 G 2.5(si).25 G 2.5(s5)
195.39 348 S(00x500 pix)206.78 348 Q
(els, so reducing the battle\214eld arena to can)-.15 E -.25(va)-.4 G 2.5(sl)
.25 G(ocations is a simple)440.39 348 Q(di)108 360 Q(vide by tw)-.25 E 2.5
(o. My)-.1 F(intent w)2.5 E(as to sa)-.1 E .3 -.15(ve a)-.2 H 2.5(sm).15 G
(uch processing during the update c)278.58 360 Q(ycle.)-.15 E
(The time limit in T)108 376.8 Q(ournament mode is not actual w)-.8 E
(all clock time, b)-.1 E(ut rather a calculation that assumes the)-.2 E
(500 millisecond tick rate of the ph)108 388.8 Q(ysics package is accurate.)
-.05 E(The time that "update_robots" tak)5 E(es to run on)-.1 E
(each tick is cumulati)108 400.8 Q .3 -.15(ve i)-.25 H 2.5(nd).15 G
(istorting tournament time.)217.31 400.8 Q(The user interf)108 417.6 Q(ace w)
-.1 E(as not designed.)-.1 E(Instead, it e)5 E -.2(vo)-.25 G(lv).2 E
(ed from functionality)-.15 E 5(.I)-.65 G 2.5(tc)417.6 417.6 S
(ould probably stand)427.32 417.6 Q(impro)108 429.6 Q -.15(ve)-.15 G(ment.).15
E(No doubt that some programmers will carefully e)108 446.4 Q(xamine the "ph)
-.15 E(ysics" package and e)-.05 E(xploit its weaknesses.)-.15 E(At least it a)
108 458.4 Q -.25(va)-.2 G(ilable for all to see.).25 E
(Some of the ideas I put in TclRobots that w)5 E(as missing from CR)-.1 E(OBO)
-.4 E(TS is)-.4 E(the "motor heating", which should eliminate robots running a\
full speed for an e)108 470.4 Q(xtended period of time.)-.15 E(Also, the cann\
on is limited on its ability for rapid \214re by introducing the notion of a "\
clip", with longer)108 482.4 Q(reloading times.)108 494.4 Q F1 -.45(AU)72 516 S
(THOR).45 E F0 -.8(To)108 528 S 2.5(mP).8 G(oinde)134.15 528 Q(xter)-.15 E 2.5
(,D)-.4 G(en)183.59 528 Q -.15(ve)-.4 G .8 -.4(r, C).15 H 2.5(olorado. V).4 F
(ersion 1.0 released August, 1994.)-1.11 E(An)108 544.8 Q 2.5(ys)-.15 G
(uggestions for impro)131.46 544.8 Q -.15(ve)-.15 G
(ment can be sent to me at either address listed at the top of this document.)
.15 E 211.22(