+
+EOF
diff --git a/grunge.png b/grunge.png
new file mode 100644
index 0000000..9a8c41a
Binary files /dev/null and b/grunge.png differ
diff --git a/intro.html b/intro.html
new file mode 100644
index 0000000..7789761
--- /dev/null
+++ b/intro.html
@@ -0,0 +1,146 @@
+
+
+
+ Tanks Introduction
+
+
+
+
+
+
+ Tanks Introduction
+
+
+
+
+ Tanks is a game in which you pit your coding abilities against
+ other hackers. You write a program for your tank, set it out on
+ the battlefield, and watch how it fares against other tanks while
+ running your program.
+
+
+
+ Each tank has a turret-mounted laser, two treads, up to ten
+ sensors, and a diagnostic LED. Sensors are used to detect when
+ other tanks are inside a given arc. In the examples on this page,
+ "triggered" sensors turn black. Most tanks will take some action
+ if a sensor is triggered, such as changing speed of the treads,
+ turning the turret, or firing.
+
+
+
+ Tanks are programmed in Forf, a stack-based language similar to
+ PostScript. Please read the Forf manual
+ to learn more about forf, and the Tanks
+ procedure reference for a description of Tanks extensions.
+
+
+ Quick Start for the Impatient
+
+
+
+
+ To get started, head over to the Tank
+ Designer and enter the following example tank. This tank will
+ move around, turn the turret, and fire if there's something in
+ front of it.
+
+
+
+Sensor 0: 50 0 7 ☑
+Sensor 1: 30 0 90 ☐
+
+get-turret 12 + set-turret! ( Rotate turret )
+37 40 set-speed! ( Go in circles )
+0 sensor? { fire! } if ( Fire if turret sensor triggered )
+1 sensor? { -50 50 set-speed! } if ( Turn if collision sensor triggered )
+
+
+
+ Obviously, this tank could be improved. Studying the examples on
+ this page should give you ideas about how to make a better tank.
+ Don't forget the Forf manual and the
+ Tank procedure reference.
+
+
+ Tank Specifications
+
+
+
+
+ Your PF-255 autonomous tank is built to the exacting
+ specifications sent to our factory in New Khavistan. All
+ distances are in meters, angles in degrees.
+
+
+
+ - Tank size
+ -
+ The targettable area of the tank—the part which can be hit by a
+ cannon—is a circle about 7½ meters in radius.
+
+
+ - Speed
+ -
+ Each tread can have a speed between -100 and 100. This is in
+ percentage of total speed for that tread, where total speed is
+ roughly 7 meters per turn.
+
+
+ - Sensors
+ -
+ Each sensor has a maximum range of 100 meters. Of course, you
+ don't have to use the full range. Sensors may be attached to
+ the turret (they turn along with the turret), or left fixed to
+ the tank.
+
+
+ - Turret
+ -
+ Turret angle can be set between -359° and 359°, with 0° directly
+ in front of the tank. Be aware that it takes time for the
+ turret to swing around: the turret can swing about 60° per turn.
+
+
+ - Cannon range and recharging
+ -
+ When the cannon is fired, it obliterates everything for 50
+ meters in front of it. It takes around 20 turns for your cannon
+ to recharge after it's been fired, so only shoot when you feel
+ like you're going to hit something.
+
+
+
+ Good luck blowing everybody up!
+
diff --git a/procs.html b/procs.html
new file mode 100644
index 0000000..c902b18
--- /dev/null
+++ b/procs.html
@@ -0,0 +1,72 @@
+
+
+
+ Tanks Procedure Reference
+
+
+
+
+ Tanks Procedure Reference
+
+
+ Each tank's program is run once per turn. The data and command
+ stacks are reset at the beginning of each turn, but memory is not,
+ so you can carry data over in memory registers if you want. See
+ the Forf manual for more information about
+ the base language.
+
+
+
+ For tank specifications (sensor range, maximum speeds, etc.), see
+ the introduction.
+
+
+
+ Limits
+
+
+ Forf Tanks has a data stack size of 200, and a command stack size
+ of 500. This means your program cannot have more than 200 data
+ items, or 500 instructions, including 2 instructions for each
+ substack.
+
+
+
+ Forf Tanks provides 10 memory registers (0-9) which persist across
+ invocations of your tank's program.
+
+
+
+ Additional Procedures
+
+
+ - fire-ready?
+ - Returns 1 if the tank can fire, 0 if not.
+
+ - fire!
+ - Fires the cannon.
+
+ - l r set-speed!
+ - Sets the speed of the left and right treads (range: -100 to
+ 100).
+
+ - get-turret
+ - Returns the current angle of the turret.
+
+ - a set-turret!
+ - Set the turret to a degrees.
+
+ - n sensor?
+ - Returns 1 if sensor n is triggered, 0 if not.
+
+ - s set-led!
+ - Turns off the LED if s is 0, on for any other value.
+
+ - n random
+ - Returns a random number in the range [0, n). That is, between
+ 0 and n-1, inclusive.
+
+
+
+
+
diff --git a/round.sh b/round.sh
index 1efe934..610fb78 100755
--- a/round.sh
+++ b/round.sh
@@ -21,7 +21,7 @@ cat <$fn