mirror of https://github.com/dirtbags/tanks.git
48 lines
1.2 KiB
Markdown
48 lines
1.2 KiB
Markdown
|
# 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](forf.md) for more information about
|
||
|
the base language.
|
||
|
|
||
|
For tank specifications (sensor range, maximum speeds, etc.), see
|
||
|
the [introduction](intro.html).
|
||
|
|
||
|
## 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, in degrees.
|
||
|
|
||
|
a set-turret!
|
||
|
: Begin moving 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.
|