toad-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Toad-devel] Real-world deviations from ideal tournament procedure


From: Ben Finney
Subject: [Toad-devel] Real-world deviations from ideal tournament procedure
Date: Sat, 5 Apr 2003 09:01:16 +1000
User-agent: Mutt/1.5.3i

Howdy all,

John Aspinall has made some useful comments in response to a question of
mine on Sensei's Library; with his permission I'm posting them to this
list as they're useful to discuss.  (I'm also inviting John to join the
list.)

=====
Bignose: [...] When real-world deviations from ideal procedure occur, what does
the TD want the program to be able to do in the course of correcting the
problem? "Anything", or "Let me change any data", is not a useful response; the
program must (a) have some default behaviour in all cases, and (b) be designed
explicitly to allow certain things to be changed in certain ways.

So, what specific things to TDs find themselves needing to change, or envision
themselves wanting to change, in response to a problem during the course of the
tournament? JA is correct in saying that the program shouldn't enforce policy.
But if it is to allow differing policies, it is far better to know this in
advance rather than retro-fitting it. It is also necessary to determine what a
useful default policy would be in such cases; "give up and ask the TD to
intervene" is surely not the optimal solution for all problems.

JohnAspinall: [...] I think the central operation in what I called "the
dataflow" is

    * given previous results in the tournament, generate a new round of
    pairings. Let's call a module that performs this task new_round. 

The default behavior (when all is going well), when the TD pushes the
"New Round" button, is

    * program checks that all games of previous round have a result
    entered against them, 

    * and, those results are all something that new_round can handle, 

    * then a new round of pairings is emitted. 

Let's conjure up some user-scenarios for when all is not going well.

Scenario 1

AbsentMindedTD: New Round.

Program: You haven't entered a result for Tanaka(3k)-Smith(4k) from the
previous round. Do you want to enter a result for that game?

AbsentMindedTD: Oops, they haven't finished yet. Cancel.

Scenario 2

Player Xue has to leave the tournament in the middle of a game. We
assume that the TD has entered B_win_by_forfeit in the game.

TD: New Round.

Program: Xue(1d)-Lee(1d) had a forfeit. Is player Xue(1d) going to
continue in the next round?

TD: No.

Program: Is player Lee(1d) going to continue in the next round?

TD: Yes.

Scenario 3

Players Dopey and Grumpy get in a fight. In the ensuing melee, another
board, where players Sleepy and Bashful are playing, is overturned, and
neither player (Sleepy or Bashful) can restore the board from memory. TD
ejects Dopey and Grumpy, but wants to allow innocent bystanders Sleepy
and Bashful to stay.

TD: New Round

Program: You haven't entered a result for Grumpy(29k)-Dopey(30k) from
the previous round. Do you want to enter a result for that game?

TD: Yes. Selects "Double Loss by Forfeit."

Program: Is player Grumpy(29k) going to continue in the next round?

TD: No.

Program: Is player Dopey(30k) going to continue in the next round?

TD: No.

Program: You haven't entered a result for Sleepy(26k)-Bashful(26k) from
the previous round. Do you want to enter a result for that game?

TD: Yes. Selects "Draw."

(Note - not being a forfeit, the program doesn't ask about whether
Sleepy or Bashful are going to stay.) Key points.

    * All modules that perform the role of new_round insist on having
    some result entered for each game of the previous round. 

    * All modules handle common results (win_for_W, win_for_B, possibly
    draw) without user intervention. 

    * When a game result requires user intervention (e.g. the forfeits
    above) the module queries its "policy settings" and then, if
    necessary, the TD. The goal of the queries is to establish who is
    playing in the next round, and what the tournament history of each
    player is. 

Policy gets injected by the TD in several places:

    * Options to new_round determine which non-standard game results
    will cause a user query, ejection, etc. The TD who wants to
    micromanage, sets all non-standard results to query. The mean and
    nasty TD sets all forfeits to eject both players. And so on. 

    * The choice of which non-standard game result to use for a
    particular game is up to the TD. 

This is all less-than-half-baked; feel free to critique, edit, modify. 
=====

-- 
 \        "When I was crossing the border into Canada, they asked if I |
  `\     had any firearms with me. I said, 'Well, what do you need?'"  |
_o__)                                                 -- Steven Wright |
address@hidden  F'print 9CFE12B0 791A4267 887F520C B7AC2E51 BD41714B




reply via email to

[Prev in Thread] Current Thread [Next in Thread]