tanks/docs/procs.md

48 lines
1.2 KiB
Markdown
Raw Normal View History

2024-12-05 12:02:48 -07:00
# 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.