[CHANGES:  
  1.  You can leave the contest now.
  2.  384,000 cycles before timeout.
  3.  Last clause of current tournament allows "testing" submissions.
]

I agree to the following public contract.  I announce my intent
to make it a Contest w/o three objections and with myself as
contestmaster (oh crud this will hit the holiday, no contestifying?)

I start the current Tournament.

-----------------------------------------------------------------------
Brainfuck Joust

This is a public contract and (if permitted by the Rules) a
Contest.  Goethe is the contestmaster; members and Agoran courts SHOULD
generally defer to eir adjudication of disputes if the need arises.
Goethe CAN terminate the contract by announcement.  Any section of the
contract text may be changed by Goethe w/o three objections from members.
Any player may join or leave this contract by announcement. 

The section of the contract labeled "CURRENT TOURNAMENT" may be changed
by Goethe by announcement, provided e has announces eir intent to make
the specific change a week or more in advance.  

If a tournament is ongoing, Goethe CAN end the tournament and start
a new one by announcement with a week's notice of intent.  If a 
tournament is not ongoing, Goethe may start one by announcement.

A "program" is a program written in the Brainfuck (BF) programming
language, with possible modifications specified in the CURRENT TOURNAMENT.

The Hill is a list of the current top ten highest-ranked BF programs
submitted to the Current Tournament.

Any player (member or non-member) may submit up to three BF programs a week
for Challenges by emailing them to Goethe.  Once a program is submitted, it
CANNOT be withdrawn.  Goethe CAN submit programs up to three/week as well,
but CANNOT receive points for them, and SHOULD only do so to keep the
tournament interesting for all.  Goethe CAN remove or add programs to the
Hill (other than through Challenges, below) only by announcement by
giving a week's notice of specific intent to add/remove.

A Challenge consists of competing a submitted program (the Challenger)
against each program on The Hill, and competing all programs on The Hill
against each other, and the programs ranked according to the CURRENT
TOURNAMENT.  The program with the lowest rank is dropped from The Hill,
and the challenger is added to The Hill if it is not the lowest scorer.
Goethe shall run a challenge for each legally submitted program in the
order it is received, and announce the results of each challenge.  The
time that the challenge is deemed to occur is the time of Submission.

REVEALING:
  1. When a program has been a Knight for the beginning of three 
     successive nomic weeks, Goethe SHALL publish its code.  Goethe 
     SHALL NOT otherwise reveal players' code (that Goethe did not 
     write) to each other.
  2. When a program is dropped from the hill after being on the hill
     for two weeks or more, the submitter SHOULD reveal the code,
     but need not.
  3. A submitter MAY always share eir own code.
  4. Goethe CAN, MAY, and SHOULD set up systems for providing code
     feedback outside "official" entrants to the hill; such feedback
     MAY include reporting results of competition between programs
     submitted by any contestant, provided this does not directly
     reveal contestant's code in a manner not otherwise permitted.

POINTS:
  When a program has been on the hill continuously for one week, or has
  survived 5 challenges from other players (whichever comes first), it
  becomes a Knight.  The Standing Rank of a knight in a given Nomic
  week is the rank it held at the beginning of the Nomic week if it was
  a knight at the beginning of that week, and 0 (lowest) otherwise.

  Each Nomic week, Goethe SHALL publish a message attempting to award
  points to contest members for each of the member's programs that
  were knights at the beginning of the Nomic week, according to the
  following schedule for the standing rank of each knight:
      8 points for highest ranking program;
      5 for second;
      3 for third;
      2 for fourth;
      1 for fifth;
      0 otherwise.

  It is expected that within submission limits, players might use
  multiple programs to achieve the highest aggregate score.

CURRENT TOURNAMENT (numbered items)
0.   The starting Hill shall consist of 10 programs, joust0..9, written
     by Goethe.  When the tournament begins, any programs submitted to Goethe
     before this tournament started shall be entered as Challenges in the 
     order they were received, with a submission date of the tournament
     start date, unless the submitter retracted them before the contest 
     started.

1.   A Jousting Match between two BF programs consists of 20 Charges.
     Each match is scored in Touches.  After all competitors on the
     hill (and the challenger) have faced each other in a match, programs
     are ranked from most touches across all matches (best, highest) to
     fewest touches (worst, lowest).

For each Charge:

2.   Two BF programs face off on the "jousting" array (the standard BF
memory space, shared).  Each BF's code is not part of the array.  No code
size limit.  The length of the array is 151 +/- 16 (uniform random each
Charge, exact length is unknowable to the code).  No code length limit.
For a single challenge, a single sequence of 20 array lengths will be
selected and the same sequence used for all matches in the challenge.
Between challenges, a new sequence will be chosen.

3.   Each program's array pointer starts at one far end of the array,
on its flag.  Each flag starts at 128.  All the other cells (between the
two opponents' flags) initialized to 0 (reminder: these are unsigned
chars with 255+1=0).

4.   Standard BF code, except that IO (. and ,) do nothing.

5.  'The enemy's gate is right'.  > is defined for each program as the
direction (at the start of the round) towards the enemy's flag, and < is
the direction away from the enemy's flag.

6.  Code execution is simultaneous between competitors, but [ and ]
comparisons for both competitors occur before + and - (only place
order matters in a cycle).  + and - are cumulative.  Every symbol takes
one cycle to execute.

7.  Winning The Charge:
    a.  If your flag is set to exactly 0, you lose (tested after each
        cycle).
    b.  If your pointer runs off either end of the array (one step
        past either flag) you lose.
    c.  If you both lose simultaneously, you both lose.
    d.  If you cease execution (reach end of your code), you do not
        lose, though of course the opponent then has free reign on
        the array for the remainder of the charge.
    e.  If 384000 cycles pass with no winner as above, you both lose.
    f.  If the opponent loses and you don't, you win!

8.  Scoring:  1 Touch for winning a Charge, 0 for ties or losses.

9.  Additional information:  Players may submit programs for testing
    to Goethe, by clearly labeling them as "for testing".  Goethe
    SHOULD report results back in a timely manner to the player, of 
    that program's results against the Hill as it existed at the
    beginning of the *previous* nomic week or at the start of the
    tournament.

---------------------------------------------------------------------


Reply via email to