ASPP / pelita

Actor-based Toolkit for Interactive Language Education in Python
https://github.com/ASPP/pelita_template
Other
62 stars 68 forks source link

Revise tournament state / state.yaml #727

Open Debilski opened 3 years ago

Debilski commented 3 years ago

The internal tournament state (especially for the second round) relies on implicit is comparisons, which is hardly manageable in code already but also leads to serialisation (which is used to restart a game in case of a crash) like:

 round2:        
   last_match: &id006 !!python/object/new:pelita.tournament.knockout_mode.Match        
     args:        
     - &id004 !!python/object/new:pelita.tournament.knockout_mode.Match        
       args:        
       - &id001 !!python/object/new:pelita.tournament.knockout_mode.Team        
         - '#2'        
       - &id002 !!python/object/new:pelita.tournament.knockout_mode.Team        
         - '#0'        
       state:        
         winner: '#0'        
     - &id005 !!python/object/new:pelita.tournament.knockout_mode.Bye        
       - &id003 !!python/object/new:pelita.tournament.knockout_mode.Team        
         - '#1'        
     state:        
       winner: '#1'        
   round_robin_ranking:        

(the '#1' etc. are not the problem here, these would be the ids of the teams, eg. 'group1'). Not going to touch this before Bordeaux but it should be cleaned up afterwards, perhaps using proper match (uu)ids to set up the references.

Debilski commented 3 years ago

Additionally, we should improve the tournament.out file to also have better information about the matches played.