Re: DIS: Re: BUS: Mad Engineer weekly random rule selection

2022-03-23 Thread Jason Cobb via agora-discussion
On 3/21/22 20:15, ais523 via agora-discussion wrote:
> On Tue, 2022-03-22 at 01:12 +0100, nethack4.org dicebot via agora-
> business wrote:
>> Assignment of dice rolls to rules:
>> 106:R2579; 107:R2581; 108:R2582; 109:R2585; 110:R2603; 111:R2605;
> [I added a special case in the randomization program so that it would
> know that R2602 isn't a rule, even though it appears in the online
> FLR.]
>
>> The dice roll was: 50
>> This is R2162, Switches.
> For reference:
> {{{
>A type of switch is a property that the rules define as a switch,
>and specify the following:
>   
>1. The type(s) of entity possessing an instance of that switch. No
>   other entity possesses an instance of that switch.
>   
>2. One or more possible values for instances of that switch,
>   exactly one of which should be designated as the default. No
>   values other than those listed are possible for instances of
>   that switch, except that, if no default is otherwise
>   specified, then rules to the contrary notwithstanding, the
>   "null" value is a possible value for that switch, and is the
>   default.
>
>3. Optionally, exactly one office whose holder tracks instances of
>   that switch. That officer's (weekly, if not specified
>   otherwise) report includes the value of each instance of that
>   switch whose value is not its default value; a public document
>   purporting to be this portion of that officer's report is
>   self-ratifying, and implies that other instances are at their
>   default value.
>
>At any given time, each instance of a switch has exactly one
>possible value for that type of switch. If an instance of a switch
>comes to have a value, it ceases to have any other value. If an
>instance of a switch would otherwise fail to have a possible
>value, it comes to have its default value. A Rule that designates
>a switch as "secured" (at a given power level) designates changes
>to the properties of that type of switch as secured (at that power
>level) and designates changes to the value of each instance of the
>switch as secured (at that power level).
>
>"To flip an instance of a switch" is to make it come to have a
>given value. "To become X" (where X is a possible value of
>exactly one of the subject's switches) is to flip that switch to
>X.
>
>If a type of switch is not explicitly designated as
>possibly-indeterminate by the rule that defines it, and if an
>action or set of actions would cause the value of an instance of
>that type of switch to become indeterminate, that instance instead
>takes on its last determinate and possible value, if any,
>otherwise it takes on its default value.
>
>A singleton switch is a switch for which Agora Nomic is the only
>entity possessing an instance of that switch.
>
>A boolean switch is a switch with values True and False. A
>positive boolean switch has a default of True; a negative boolean
>switch has a default of False.
>
>Attempting to flip an instance of a switch to a value it already
>has does not flip the switch. However, if a person is REQUIRED to
>flip a switch instance to a value it already has, then either
>attempting to do so using the required mechanism, or announcing
>that the switch already has the required value, fulfills the
>requirement without flipping the switch.
> }}}
>
> Lots of sentences to choose from this week! Any suggestions?
>

"At any given time, each instance of a device has exactly one possible
value for that type of device."
"At any given time, each device of a switch has exactly one possible
value of that type of switch."
"If an instance of a device would otherwise fail to have a possible
value, it comes to have its default value."
"If an instance of a switch would otherwise fail to have a possible
device, it comes to have its default device."
"A singleton device is a device for which Agora Nomic is the only entity
possessing an instance of that device."
"A device switch is a switch with values True and False."
"Attempting to flip an instance of a device to a value it already has
does not flip the device."

-- 
Jason Cobb

Assessor, Rulekeepor, S​tonemason



Re: DIS: Re: BUS: [Proposal] The Hexeract

2022-03-23 Thread secretsnail9 via agora-discussion
On Wed, Mar 23, 2022 at 1:29 PM Jason Cobb via agora-discussion <
agora-discussion@agoranomic.org> wrote:

> > A player CAN swap the locations of two specified spaces by paying a fee
> of
> > 5 Movies.
>
> The grid rule doesn't clearly support this. I think, in general, it
> would be better to avoid modifying the locations of spaces in order to
> avoid questions of what happens when a space's location is set to an
> invalid value.
>

I think it was fine as it was, but it should probably be kept and better
defined because the potential gameplay from it seems worth the trouble.


> Overall this just seems grindy, difficult to track, and not particularly
> fun to play. It also screws over anybody who joins in the middle of the
> round, and it's potentially significantly damaging to miss even a week
> with a free move if other players aren't willing to sell you assets to
> catch up.
>

I adjusted the win condition and how vertokens work to make it more
forgiving for new players. Now a mountain climb only counts towards a win
if you were the most recent person to climb it. Also I changed the tokens
to be liquid and destructible, because why not? This seems like something
that could be easily added to if passed, and I was hoping other people
could suggest changes to make gameplay better.

I've been throwing a lot of ideas around in my head, including:
* making the huge fence much bigger, for example placing a fence on all
spaces with a certain entry for a dimension (but that would be a third of
all spaces and definitely hard to track)
* adding some kind of mines for the products instead of having them come
for payday
* linking the current economy or point system somehow
* adding a way for assets to be stored on spaces
* Making it so only one fence can be on a space at a time and you destroy
fences instead of hopping over them
* Calling the fences gates and making the fee for passing through go to a
player, and have the fee be set by the owner
* Making fences reinforced so they take more to get over
* A way to claim others' fences as your own

I think I also addressed everything else you mentioned in this new draft:

Title: The Hexeract
AI: 1.0
Author: secretsnail
Coauthors:

Create a rule with title "Grids" and the following text:
{

A grid has D dimensions, where D is a positive integer, and where its 1st
through Dth dimensions are defined in the rules. Each finite dimension has
a width of W, where W is a positive integer. A dimension is either wrapping
(syn. wrapped) or non-wrapping (default). A dimension is either infinite or
finite (default).

A location on a grid is a vector with D dimensions, where D is the number
of dimensions the grid has, with each dimension having a value as an entry,
whose Dth entry is a non-negative integer less than the Dth dimension's
width if the Dth dimension is neither infinite nor wrapping. All entries
for a given wrapping dimension are equal modulo that dimension's width. For
example, in a grid with 2 Dimensions of widths 2 then 3, [1,2] would be a
valid location and [2,1] would, if and only if the 1st dimension is
wrapping, also be a valid location.

A grid has exactly one space for each location on that grid.

A space (A) is adjacent to another space in the same grid (B) if it is
possible to once add 1 or once subtract 1 from a single entry in B's
location to get A's location. For example, on a grid with 2 dimensions of
widths 2 then 3, [1,2] would be adjacent to [1,0] if the grid was wrapping,
and not adjacent if it is not wrapping.)

Space A and space B to swap locations is for Space A's location to be
changed to Space B's location, and for Space B's location to be changed to
Space A's location, simultaneously.

}

Create a rule with title "The Hexeract" and the following text:
{

The Hexeract is a grid with 6 dimensions. The 1st-6th dimensions all have a
width of 3.

The Hexor is an office, whose weekly report includes a visual
representation of each of The Hexeract's spaces.

Fence List is a [space on The Hexeract] switch tracked by the Hexor, with
any set of persons as a possible value, and is the empty set by default. A
person "owns a fence on" a space if e is in that space's Fence List. A
space is "fenced" if its Fence List is not the empty set. A space on The
Hexeract can be referred to by its location.

Player Space is a player switch tracked by the Hexor with possible values
from the set on all spaces on The Hexeract, defaulting to [1,1,1,1,1,1].
For a player to move to a space is to change eir Player Space value to that
space. A player is on a space if eir Player Space value is that space.

Fencehops, Fences, and Movies are each a currency, tracked by the Hexor.

Whenever a payday occurs, each active player gains 1 Fencehop, 1 Fence, and
1 Movie.

A player CAN once a month grant 1 Fencehop, 1 Fence, or 1 Movie to a
specified player by announcement.

A player CAN, if e has not already done any of the below this week:

   * move to a specified non-fenced space 

DIS: Re: BUS: [Proposal] The Hexeract

2022-03-23 Thread Jason Cobb via agora-discussion
On 3/23/22 12:38, secretsnail9 via agora-business wrote:
> I submit the following proposal:
>
> Title: The Hexeract
> AI: 1.0
> Author: secretsnail
> Coauthors:
>
> Create a rule with title "Grids" and the following text:
> {
>
> A grid has D dimensions, where D is a positive integer, and where its 1st
> through Dth dimensions are defined in the rules. Each finite dimension has
> a width of W, where W is a positive integer. A dimension is either wrapping
> (syn. wrapped) or not wrapping (default). A dimension is either infinite or
> finite (default).
>
> A location on a grid is a vector with D dimensions, where D is the number
> of dimensions the grid has, with each dimension having a value as an entry,
> whose Dth entry is a non-negative integer less than the Dth dimension's
> width if the Dth dimension is neither infinite nor wrapping. All entries
> for a given wrapping dimension are equal modulo that dimension's width. For
> example, in a grid 2 Dimensions of widths 2 then 3, [1,2] would be a valid
> location and [2,1] would not be.


This is internally inconsistent. If locations are equal modulo the
width, [2,1] is a perfectly valid location that's exactly equivalent to
[0,1].


>
> A grid has a space for each location on that grid, and that space has that
> location as a location.

The second clause seems unnecessary. This should also probably say
"exactly one space".


> A space has a location. A space (A) is adjacent to another space in the
> same grid (B) if you could add 1 or subtract 1 from a single entry in B's
> location to get A's location. For example, on a grid with 2 dimensions of
> widths 2 then 3, [1,2] would be adjacent to [1,0] if the grid was wrapping,
> and not adjacent if it is not wrapping.)
>
> }


"A space has a location" is redundant with the previous paragraph.

As I said on Discord, the use of "you" in this manner is unconventional
and doesn't gain anything. I don't think it's a good idea to either make
the text less legalistic or to introduce pronouns with unknown referents.


> Create a rule with title "The Hexeract" and the following text:
> {
>
> The Hexeract is a grid with 6 dimensions. The 1st-6th dimensions all have a
> width of 3.
>
> Each space on The Hexeract has a list of persons that own a fence on it,
> which is initially empty. A person "owns a fence on" a space if e is in the
> list of persons that own a fence on that space. A space on The Hexeract can
> be referred to by its location.

The "list" should be a switch. You should also consider making it a set,
rather than a list (unordered and ignores duplicates).


> PlayerSpace is a secured Player switch tracked by the Hexor with possible
> values from the set on all spaces on The Hexeract, defaulting to
> [1,1,1,1,1,1]. For a player to move to a space is to change eir PlayerSpace
> value to that space. A player is on a space if their PlayerSpace value is
> that space.

Player should not be capitalized.

"Hexor" is never defined.

The use of UpperCamelCase names is not standard, and I don't think it's
a good idea to introduce it. Also, why is this secured?

"their" -> "eir".


> Fencehops, Fences, and Movies are each a currency, tracked by the Hexor.
>
> Whenever a payday occurs, each active player gains 1 Fencehop, 1 Fence, and
> 1 Movie.
>
> A player CAN once a month grant 1 Fencehop, 1 Fence, or 1 Movie to
> specified player by announcement.

"specified other player"?


> A player CAN, if e has not already done any of the below this week:
>
>* move to a specified non-fenced space adjacent to the one e is on by
> announcement.

When is a space fenced or non-fenced?


>* move to a specified fenced space adjacent to the one e is on by
> announcement, provided e owns a fence on that space.
>
>* move to a specified fenced space adjacent to the one e is on without
> objection from any Player who owns a fence on that space.
>
>* move to a specified fenced space adjacent to the one e is on by paying
> a fee of 1 Fencehop.
>
>* move to a specified fenced space e owns a fence on by paying a fee of
> 3 Fencehops.
>
> A player CAN Build a Fence by paying a fee of 1 Fence, provided e doesn't
> already own a fence on the space e is on. When e does so, e is added to the
> list of players who own a fence on that space.
>
> A player CAN Build a Huge Fence by paying a fee of 5 Fences. When e does
> so, e is added to the list of players who own a fence on each space
> adjacent to the one e is on.

What if e's already in some of those space's fence lists?


>
> A player CAN move to a specified non-fenced space adjacent to the one e is
> on by paying a fee of 1 Movie.
>
> A player CAN swap the locations of two specified spaces by paying a fee of
> 5 Movies.

The grid rule doesn't clearly support this. I think, in general, it
would be better to avoid modifying the locations of spaces in order to
avoid questions of what happens when a space's location is set to an
invalid value.


> A mountain has a name,