Proposal: Start Your Engines
Reached quorum 7 votes to 0. Enacted by Kevan.
Adminned at 11 Jul 2022 17:28:35 UTC
Create a rule called “The Arena” (as a subrule of “Bouts”, if that rule exists):-
Bouts take place in the Arena, which is mapped as a row of thirteen spaces from left to right. Each Bot in the Arena may face either left or right. When a Bout begins, the two Bots taking part are placed in the two spaces at either end of the Arena (assigning these at secretly random), facing one another. All of this is tracked privately by the Announcer.
During a Bout, the Announcer runs the Script of each Bot in turn, starting with the Bot on the left, and continuing this process until ten turns have been taken in the Bout. The Bout then ends, and the Announcer posts a blog entry summarising its events.
Add a new rule, “BotScript”:-
Each Bot has a Script, being a list of up to ten Triggers, each Trigger having a corresponding Reaction. Bots’ Scripts are tracked privately by the Announcer.
An Operator may change their Bot’s Script at any time by privately informing the Announcer of this.
Triggers are:-
* “If the X space(s) in front are empty…”, where X is a number from 1 to 13
Possible Reactions are:-
* “...move forwards X times”, where X is a number from 1 to 13
* “...move backwards X times”, where X is a number from 1 to 13
* “...turn to face the other way”To run a Script, the Announcer reads through its list from top to bottom until they find a Trigger which is true for the Bot in question: upon finding one, they apply the corresponding effect, and this ends the run of the Script. If they reach the end of the Script and no Triggers are true, nothing happens as a result.
A Bot can only move into an empty space: if an individual move step would take the Bot into an occupied space, or if no space exists to move to, the Bot remains in its position instead.
A very basic starting system for programming bots, to see whether this makes any sense.
lendunistus: he/him
I’d add an extra row or two, one-dimensional gameplay seems too restrictive