Games::Tournament::RoundRobin

Games::Tournament::RoundRobin is a Perl module for Round-Robin Tournament Schedule Pairings.
Download

Games::Tournament::RoundRobin Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Dr Bean
  • Publisher web site:
  • http://search.cpan.org/~drbean/

Games::Tournament::RoundRobin Tags


Games::Tournament::RoundRobin Description

Games::Tournament::RoundRobin is a Perl module for Round-Robin Tournament Schedule Pairings. Games::Tournament::RoundRobin is a Perl module for Round-Robin Tournament Schedule Pairings.SYNOPSIS $schedule = Games::Tournament::RoundRobin->new; $pairings = $schedule->indexesInRound($roundm); $round = $schedule->meeting($member1, ); ...Every member of a league of 2n players can be paired with every other member in 2n-1 rounds.If the league members are (Inf, 1 .. 2n-1), then in round i, i can be paired with Inf, and a can meet b, where a+b = 2i (mod 2n-1).METHODSnew Games::Tournament::RoundRobin->new( v => 5, league => ) Games::Tournament::RoundRobin->new( league => {A => $a, B => $b, C => $c})where v (optional) is the number of league members, and league (optional) is a list (or a hash) reference to the individual unique league members. One of v, or league (which takes precedence) is necessary, and if league is not given, the members are identified by the numbers 0 .. n-1.If the league is a list (or hash) of n objects, they should be instances of a class that overloads both string quoting with a 'name' method and arithmetical operations with an 'index' method. The index method, called on the n objects in order, should return the n numbers, 0 .. n-1, and in that order if they are presented as an array. If they are presented as a hash, the hash is stored internally as an array and the keys are discarded.If the league is a list of strings or numbers, indexes are constructed for the values on the basis of their positions in the list, and if a hash of strings or numbers, on the basis of the lexicographic order of their keys. Each string is expected to be unique.If n is odd, an additional n-1, 'Bye' or object (a Games::League::Member object, by default) member, depending on the type of the first member in the league, is added at the end and n is increased by 1.indexesInRound $schedule->indexesInRound($m)Returns an array reference of the pairings in round $m. This method is useful if you are using numbers to represent your league members. It is not so useful if you are using strings or objects and you don't know their index numbers. Positions in the array represent members. The values represent their partners. Each member is thus represented twice.roundsInTournament $t = $schedule-> roundsInTournament; $round1 = $t; $inRound1FourthWith = $t->->; $inLastRoundLastWith = $$t;Returns, as a reference to an array of arrays, the pairings in all rounds of the tournament. This method is useful if you are using the algorithm indexes.partner $schedule->partner($member, $m)Returns the partner of $member in round $m.membersInRound $schedule->membersInRound($m)Returns an hash reference of the pairings in round $m. This method is useful if you are using strings or objects. Keys in the hash represent league members. If the league members are objects, their names are used as keys. If 2 names are the same, the names are changed to $name.1, $name.2 etc. The values are their partners. Each player is thus represented twice.memberSchedule $schedule->memberSchedule($member)Returns, as an array reference, the partners who $member is matched with in the order in which they meet, ie round by round.meeting $schedule->meeting($member,$partner)Returns the rounds (TODO and the venue) at which $member meets $partner.meetings $schedule->meetings($member1,)Returns, as an array reference, the rounds (TODO and the venue) at which $member1 meets $member2, $member3, ...index $schedule->index($member)Returns $member's index, the number which is used to pair it with other members. The index is the position, 0..n-1, of the $member in the league argument to the constructor (if an array) or the constructed array (if a hash.)If $member is not a member of the array, or is itself an index, undef is returned.member $schedule->member($index) $schedule->member($name) $bye = $schedule->member( $schedule->size-1 )Returns the member represented by $index, a number which ranges from 0..n-1, or by $name, a string. If there is no such member, undef is returned.partners $schedule->partners($index) $schedule->partners($name)Returns an array reference of all the partners of the $indexed or $named member, in index order, or the order in the league argument.realPartners $schedule->realPartners($index) Returns an array reference of all the partners of the $indexed member, excluding the 'Bye' member. Don't use this if you have no 'Bye' member, as it just leaves off the last member.size $schedule->sizeReturns the number of members in the round robin. Sometimes this may not be the same as the number of league members specified, because the array of league members takes precedence if supplied, and a bye is added if the number is odd.rounds $schedule->roundsReturns the number of rounds in the round robin. This equals the number of league members, minus 1.Requirements:· Perl Requirements: · Perl


Games::Tournament::RoundRobin Related Software