Proposal: Pretty Little Rows and Columns
Reached quorum 10 votes to 0. Enacted by Kevan.
Adminned at 03 Mar 2023 09:25:53 UTC
Add a new rule titled “Basic Grid Rules”, and give it the following text:
There is a Grid made up of Cells, where each Cell is a string variable with a default value of “-”, arranged in an 8 x 8 collection which is publicly tracked. The columns of the Grid are labeled with the integers 1 through 8 inclusive in numerical order, and the rows of the Grid are labeled with the letters A - J inclusive in alphabetical order. A specific Cell is identified by its row letter and column number in the Grid in the format “RowColumn”, where Row is the row letter and Column is the column number. e.g. The Cell in the fourth row and second column is identified as “D2”.
A Cell containing “-” is considered to be Empty.
Add a new subrule in the rule “Basic Grid Rules” titled “Location”, and give it the following text:
There is a string variable named “Location” which is privately tracked by the Gridmaster for each Runner and is either a blank string or contains the identification of a Cell, defaulting to a blank string. At any time, a Runner whose Location is a blank string may privately request the Gridmaster to set their Location to a specific Cell. The Gridmaster should process these requests in the order in which they were received. If no other Runner has this Cell in their Location at the time the message is processed, the Gridmaster sets the Location of the Runner to the requested Cell and replies with an acknowledgement of the request. Otherwise, the Gridmaster replies that the Cell is taken.
At any time, a Runner may privately request their current Location from the Gridmaster, to which the Gridmaster replies with that Runner’s current Location.
SingularByte: he/him
You might want to change it so that you check if cells are populated when you process it, not just when you receive it. Otherwise, if you get two people asking for a cell at once, you’d be forced to put them in the same place.