mirror of https://github.com/dirtbags/tanks.git
74 lines
1.7 KiB
Markdown
74 lines
1.7 KiB
Markdown
|
---
|
||
|
title: Running Tanks
|
||
|
---
|
||
|
|
||
|
Unfortunately, it's kind of a mess right now.
|
||
|
I know there are a few forks of this code,
|
||
|
and I would love it if someone proposed a merge to clearly illustrate how to run tanks.
|
||
|
|
||
|
When I spin up a new tanks game,
|
||
|
typically I run something like:
|
||
|
|
||
|
while sleep 60; do ./run-tanks */; done
|
||
|
|
||
|
This assumes all your tanks directories are in the same place as `run-tanks`.
|
||
|
|
||
|
|
||
|
|
||
|
Included programs
|
||
|
-----------------
|
||
|
|
||
|
I tried to stick with the Unix philosophy of one program per task. I
|
||
|
also tried to avoid doing any string processing in C. The result is a
|
||
|
hodgepodge of C, Bourne shell, and awk, but at least each piece is
|
||
|
fairly simple to audit.
|
||
|
|
||
|
|
||
|
### run-tanks tank1 tank2 ...
|
||
|
|
||
|
Runs a single round, awards points with rank.awk, and creates a new
|
||
|
summary.html with summary.awk. This is the main interface that you want
|
||
|
to run from cron or whatever.
|
||
|
|
||
|
|
||
|
### forftanks tank1 tank2 ...
|
||
|
|
||
|
A program to run a round of tanks and output a JSON description of the
|
||
|
game. This is what tanks.js uses to render a game graphically.
|
||
|
The object printed contains:
|
||
|
|
||
|
[[game-width, game-height],
|
||
|
[[tank1-color,
|
||
|
[[sensor1range, sensor1angle, sensor1width, sensor1turret],
|
||
|
...]],
|
||
|
...],
|
||
|
[[
|
||
|
[tank1x, tank1y, tank1angle, tank1sensangle,
|
||
|
tank1flags, tank1sensors],
|
||
|
...],
|
||
|
...]]
|
||
|
|
||
|
If file descriptor 3 is open for writes, it also outputs the results of
|
||
|
the round to fd3.
|
||
|
|
||
|
|
||
|
### rank.awk
|
||
|
|
||
|
Processes the fd3 output of forftanks to award points and output an
|
||
|
HTML results table.
|
||
|
|
||
|
|
||
|
### summary.awk tank1 tank2
|
||
|
|
||
|
Creates summary.html, linking to all rounds and showing overall
|
||
|
standing.
|
||
|
|
||
|
|
||
|
### designer.cgi
|
||
|
|
||
|
Accepts form input and writes a tank.
|
||
|
|
||
|
|
||
|
|
||
|
|