NAME

pairtable2yaml - Create YAML version of pairing table

SYNOPSIS

pairtable2yaml pairingtable.txt

Options:

--help This help message

--man A man page

DESCRIPTION

pairtable2yaml converts a pairing table used to pair the next round of a swiss tournament into a YAML data structure. It expects the pairing table, contained in a text file, to be formatted as a series of columns that represent a) scoregroups that players with equal scores fall into (optional), b) place so far (optional), c) pairing numbers, d) opponents each player has already met (each round's opponent being separated by a comma), e) the initial letters of the roles in the previous rounds (concatenated into one 'word'), f) downfloating/upfloating in the previous round (D/U) and in the round before the previous round (d/u) (an entry being made here only if the player floated), and g) the score of the player so far.

A typical pairing table looks like this:

                Round 5 Pairing Groups
---------------------------------------------------------------------
No  Opponents  Roles     Float Score
 1   6,4,2,5   WBWB      uD  3.5  
 2   7,3,1,4   BWBW      D   3.5  
 3   8,2,6,7   WBWB      d   2.5  
 6   1,5,3,9   BWBW          2.5  
                                 

In YAML, this becomes, or something the equivalent:

---
opponents:
  1 : [6,4,2,5]
  2 : [7,3,1,4]
  3 : [8,2,6,7]
  6 : [1,5,3,9]
roles:
  1 : [White,Black,White,Black]
  2 : [Black,White,Black,White]
  3 : [White,Black,White,Black]
  6 : [Black,White,Black,White]
floats:
  1 : [Up,Down]
  2 : [~,Down]
  3 : [Down,~]
  6 : [~,~]
score:
  1: 3.5
  2: 3.5
  3: 2.5
  6: 2.5
...

This program parses with Parse:RecDescent and is slow, but tries to make no mistakes.

The YAML data structure is dumped in pairtable.yaml in the same directory.