From c403c2f5becf38d87d711c7e676ad15956e6c6ca Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Sun, 22 Nov 2020 16:40:10 +0100 Subject: [PATCH] NEW FEATURE: reading out categories from pairtwo-6 --- dist/template.php | 42 ++++++++++++-- res/categories_test.sws | Bin 0 -> 12023 bytes src/Readers/Pairtwo6.php | 13 +++-- src/Tournament.php | 44 ++++++++++++++- tests/ReadSws_test.php | 116 ++++++++++++++++++++------------------- 5 files changed, 147 insertions(+), 68 deletions(-) create mode 100644 res/categories_test.sws diff --git a/dist/template.php b/dist/template.php index 9cd3e19..345760b 100644 --- a/dist/template.php +++ b/dist/template.php @@ -49,8 +49,8 @@ foreach ($reader->Tournament->Rounds as $round) { foreach ($round->GamesByBoard as $game) { echo '' . PHP_EOL; echo '' . ($game->Board + 1) . '' . PHP_EOL; - echo '' . $game->White->Player->Name . '' . PHP_EOL; - echo '' . $game->Black->Player->Name . '' . PHP_EOL; + echo '' . $game->White->Player->Name . ' (' . $game->White->Player->getElo($reader->Tournament->PriorityElo) . ')' . PHP_EOL; + echo '' . $game->Black->Player->Name . ' (' . $game->Black->Player->getElo($reader->Tournament->PriorityElo) . ')' . PHP_EOL; echo '' . $game->Result->getValue() . '' . PHP_EOL; echo '' . PHP_EOL; } @@ -73,11 +73,11 @@ foreach ($reader->Tournament->Rounds as $round) { echo '

' . PHP_EOL; } -echo '

Rankings

' . PHP_EOL; +echo '

Global Rankings

' . PHP_EOL; echo '' . PHP_EOL; echo '' . PHP_EOL; -echo '' . PHP_EOL; -foreach ($reader->Tournament->TieBreaks as $tiebreak) { +echo '' . PHP_EOL; +foreach ($reader->Tournament->Tiebreaks as $tiebreak) { echo '' . PHP_EOL; } echo '' . PHP_EOL; @@ -88,13 +88,43 @@ $rank = 1; foreach ($reader->Tournament->Ranking as $player) { echo '' . PHP_EOL; echo '' . PHP_EOL; - echo '' . PHP_EOL; + echo '' . PHP_EOL; + echo '' . PHP_EOL; echo '' . PHP_EOL; echo '' . PHP_EOL; $rank++; } echo '' . PHP_EOL; echo '
Name (elo)
Name (elo)Category' . $tiebreak->getValue() . '
' . $rank . '' . $player->Name . '(' . $player->getElo($reader->Tournament->PriorityElo) . ')' . $player->Name . ' (' . $player->getElo($reader->Tournament->PriorityElo) . ')' . $player->Category . '' . implode('', $player->Tiebreaks) . '
' . PHP_EOL; +?> + +Rankings per Category' . PHP_EOL; + +foreach($reader->Tournament->Categories as $category) { + echo '' . PHP_EOL; + echo ''; + echo '' . PHP_EOL; + echo '' . PHP_EOL; + foreach ($reader->Tournament->Tiebreaks as $tiebreak) { + echo '' . PHP_EOL; + } + echo '' . PHP_EOL; + echo '' . PHP_EOL; + echo '' . PHP_EOL; + + $rank = 1; + foreach ($reader->Tournament->RankingForCategory($category) as $player) { + echo '' . PHP_EOL; + echo '' . PHP_EOL; + echo '' . PHP_EOL; + echo '' . PHP_EOL; + echo '' . PHP_EOL; + $rank++; + } + echo '' . PHP_EOL; + echo '
' . $category . '
Name (elo)' . $tiebreak->getValue() . '
' . $rank . '' . $player->Name . ' (' . $player->getElo($reader->Tournament->PriorityElo) . ')' . implode('', $player->Tiebreaks) . '
' . PHP_EOL; +} ?> diff --git a/res/categories_test.sws b/res/categories_test.sws new file mode 100644 index 0000000000000000000000000000000000000000..0303e9895634c4c1e5adc6279c1904adc88a3703 GIT binary patch literal 12023 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 TUBlbS{2uPX3&ylw)Qs_e0i;Oj literal 0 HcmV?d00001 diff --git a/src/Readers/Pairtwo6.php b/src/Readers/Pairtwo6.php index 72e65af..5a71faf 100644 --- a/src/Readers/Pairtwo6.php +++ b/src/Readers/Pairtwo6.php @@ -321,9 +321,14 @@ class Pairtwo6 implements ReaderInterface } // Categorie - $length = 4 * 10; - $this->Categorie = $this->readData('Int', substr($swscontents, $offset, $length)); - $offset += $length; + for($i = 0; $i < 10; $i++) { + $length = 4; + $category = $this->readData('Int', substr($swscontents, $offset, $length)); + if($category != 0) { + $this->Tournament->addCategory('+' . $category); + } + $offset += $length; + } // ExtraPoints $length = 4 * 20; @@ -401,7 +406,7 @@ class Pairtwo6 implements ReaderInterface $offset += $length; $length = 1; - $player->Category = $this->readData('String', substr($swscontents, $offset, $length)); + $player->Category = $this->Tournament->Categories[$this->readData('Int', substr($swscontents, $offset, $length)) -1]; $offset += $length; $length = 1; diff --git a/src/Tournament.php b/src/Tournament.php index 5c4a6be..9e79191 100644 --- a/src/Tournament.php +++ b/src/Tournament.php @@ -113,6 +113,13 @@ class Tournament */ public $Rounds = []; + /** + * Round objects of all rounds in the tournament + * + * @var $Categories[] + */ + public $Categories = []; + /** * The tempo of the tournament (eg. 90 min/40 moves + 30 sec. increment starting from move 1) * @@ -264,6 +271,19 @@ class Tournament $this->Rounds = $newArray; } + /** + * Adds a category with given name object + * + * @param string $name + */ + public function addCategory(string $name): void + { + $newArray = $this->Categories; + $newArray[] = $name; + $this->Categories = $newArray; + } + + /** * Gets a round by its number. * @@ -308,8 +328,8 @@ class Tournament $pairings = $this->Pairings; /** - * @var Pairing[] -*/ + * @var Pairing[] + */ $cache = array(); foreach ($pairings as $pairing) { @@ -415,6 +435,26 @@ class Tournament $this->roundByNo($round)->addGame($game); } + /** + * Get the ranking for a specific category + * + * @param string $category + * + * @return array + */ + Public function RankingForCategory(string $category): array + { + $globalRanking = $this->ranking(); + + $return = []; + foreach($globalRanking as $player) { + if($player->Category == $category) { + $return[] = $player; + } + } + return $return; + } + /** * Gets the ranking of the tournament * diff --git a/tests/ReadSws_test.php b/tests/ReadSws_test.php index 11583c1..2a91daa 100644 --- a/tests/ReadSws_test.php +++ b/tests/ReadSws_test.php @@ -30,62 +30,66 @@ require_once '../vendor/autoload.php'; $sws = IOFactory::createReader('Swar-4'); $sws->read('../res/testswar.swar'); -echo "Release: " . $sws->Release() . PHP_EOL; -echo "Name: " . $sws->Tournament()->Name . PHP_EOL; -echo "Organiser: " . $sws->Tournament()->Organiser. PHP_EOL; -echo "TempoIndex: " . $sws->Tournament()->TempoIndex . PHP_EOL; -echo "TempoType: " . $sws->Tournament()->TournoiStd . PHP_EOL; -echo "Tempo: " . $sws->Tournament()->Tempo . PHP_EOL; -echo "Place: " . $sws->Tournament()->OrganiserPlace . PHP_EOL; -echo "Arbiter 1: " . $sws->Tournament()->Arbiters[0] . PHP_EOL; -echo "Arbiter 2: " . $sws->Tournament()->Arbiter[1] . PHP_EOL; -echo "Rounds: " . $sws->Tournament()->NoOfRounds . PHP_EOL; -echo "Fidehomol: " . $sws->Tournament()->FideHomol . PHP_EOL; -echo "Start-Date: " . $sws->Tournament()->StartDate->format('d/m/Y') . PHP_EOL; -echo "End-Date: " . $sws->Tournament()->EndDate->format('d/m/Y') . PHP_EOL; -echo "System: " . $sws->Tournament()->System->Key() . PHP_EOL; -echo "Place: " . $sws->Tournament()->OrganiserPlace . PHP_EOL; -echo "Unrated-Elo: " . $sws->Tournament()->NonRatedElo . PHP_EOL; -echo "Federation: " . $sws->Tournament()->Federation . PHP_EOL; -echo "Organiser: " . $sws->Tournament()->OrganiserClubNo . PHP_EOL; -echo "Fide Elo P1: " . $sws->Tournament()->PlayerById(0)->Elo('Fide') . PHP_EOL; -echo "Fide Elo P2: " . $sws->Tournament()->PlayerById(1)->Elo('Fide') . PHP_EOL; -echo "Fide Elo P3: " . $sws->Tournament()->PlayerById(2)->Elo('Fide') . PHP_EOL; -echo "KBSB Elo P1: " . $sws->Tournament()->PlayerById(0)->Elo('Nation') . PHP_EOL; -echo "KBSB Elo P2: " . $sws->Tournament()->PlayerById(1)->Elo('Nation') . PHP_EOL; -echo "KBSB Elo P3: " . $sws->Tournament()->PlayerById(2)->Elo('Nation') . PHP_EOL; -echo "Name P1: " . $sws->Tournament()->PlayerById(0)->Name . PHP_EOL; -echo "Name P2: " . $sws->Tournament()->PlayerById(1)->Name . PHP_EOL; -echo "Name P3: " . $sws->Tournament()->PlayerById(2)->Name . PHP_EOL; -echo "Gender P1: " . $sws->Tournament()->PlayerById(0)->Gender->Key() . PHP_EOL; -echo "Gender P2: " . $sws->Tournament()->PlayerById(1)->Gender->Key() . PHP_EOL; -echo "Gender P3: " . $sws->Tournament()->PlayerById(2)->Gender->Key() . PHP_EOL; -echo "Absent P1: " . $sws->Tournament()->PlayerById(0)->Absent . PHP_EOL; -echo "Absent P2: " . $sws->Tournament()->PlayerById(1)->Absent . PHP_EOL; -echo "Absent P3: " . $sws->Tournament()->PlayerById(2)->Absent . PHP_EOL; -echo "Date Round 1: " . $sws->Tournament()->RoundByNo(0)->Date->format('d/m/Y') . PHP_EOL; -echo "Date Round 2: " . $sws->Tournament()->RoundByNo(1)->Date->format('d/m/Y') . PHP_EOL; -echo "Date Round 3: " . $sws->Tournament()->RoundByNo(2)->Date->format('d/m/Y') . PHP_EOL; -echo "Game Round 1: " . $sws->Tournament()->RoundByNo(0)->Games[0]->Result->getValue() . PHP_EOL; -echo "Game Round 2: " . $sws->Tournament()->RoundByNo(1)->Games[0]->Result->getValue() . PHP_EOL; -echo "Game Round 3: " . $sws->Tournament()->RoundByNo(2)->Games[0]->Result->getValue() . PHP_EOL; -echo "Color Pairing 1: " . $sws->Tournament()->Pairings[1]->Color->getKey() . PHP_EOL; -echo "Color Pairing 2: " . $sws->Tournament()->Pairings[2]->Color->getKey() . PHP_EOL; -echo "Color Pairing 3: " . $sws->Tournament()->Pairings[3]->Color->getKey() . PHP_EOL; -echo "Player Pairing 1: " . $sws->Tournament()->Pairings[0]->Player->Name . PHP_EOL; -echo "Player Pairing 2: " . $sws->Tournament()->Pairings[1]->Player->Name . PHP_EOL; -echo "Player Pairing 3: " . $sws->Tournament()->Pairings[2]->Player->Name . PHP_EOL; -echo "Bye Round 1: " . $sws->Tournament()->RoundByNo(2)->Bye[0]->Player->Name . PHP_EOL; -echo "Absent Round 1: " . $sws->Tournament()->RoundByNo(2)->Absent[0]->Player->Name . PHP_EOL; -echo "Tiebreak 1: " . $sws->Tournament()->Tiebreaks[0]->Value() . PHP_EOL; -echo "Tiebreak 2: " . $sws->Tournament()->Tiebreaks[1]->Value() . PHP_EOL; -echo "Tiebreak 3: " . $sws->Tournament()->Tiebreaks[2]->Value() . PHP_EOL; -echo "Tiebreak 4: " . $sws->Tournament()->Tiebreaks[3]->Value() . PHP_EOL; -echo "Tiebreak 5: " . $sws->Tournament()->Tiebreaks[4]->Value() . PHP_EOL; -echo "Tiebreak 6: " . $sws->Tournament()->Tiebreaks[5]->Value() . PHP_EOL; -echo "Average Elo: " . $sws->Tournament()->AverageElo . PHP_EOL; -foreach ($sws->Tournament()->Ranking as $player) { - echo str_pad($player->Name . '(' . $player->Elo($sws->Tournament()->PriorityElo) . ') ', 35) . implode_pad(' ', $player->Tiebreaks, 5, ' ') . PHP_EOL; + +echo "Release: " . $sws->Release . PHP_EOL; +echo "Name: " . $sws->Tournament->Name . PHP_EOL; +echo "Organiser: " . $sws->Tournament->Organiser. PHP_EOL; +echo "TempoIndex: " . $sws->Tournament->TempoIndex . PHP_EOL; +echo "TempoType: " . $sws->Tournament->TournoiStd . PHP_EOL; +echo "Tempo: " . $sws->Tournament->Tempo . PHP_EOL; +echo "Place: " . $sws->Tournament->OrganiserPlace . PHP_EOL; +echo "Arbiter 1: " . $sws->Tournament->Arbiters[0] . PHP_EOL; +echo "Arbiter 2: " . $sws->Tournament->Arbiters[1] . PHP_EOL; +echo "Rounds: " . $sws->Tournament->NoOfRounds . PHP_EOL; +echo "Fidehomol: " . $sws->Tournament->FideHomol . PHP_EOL; +echo "Start-Date: " . $sws->Tournament->StartDate->format('d/m/Y') . PHP_EOL; +echo "End-Date: " . $sws->Tournament->EndDate->format('d/m/Y') . PHP_EOL; +echo "System: " . $sws->Tournament->System->getKey() . PHP_EOL; +echo "Place: " . $sws->Tournament->OrganiserPlace . PHP_EOL; +echo "Unrated-Elo: " . $sws->Tournament->NonRatedElo . PHP_EOL; +echo "Federation: " . $sws->Tournament->Federation . PHP_EOL; +echo "Organiser: " . $sws->Tournament->OrganiserClubNo . PHP_EOL; +echo "Fide Elo P1: " . $sws->Tournament->PlayerById(0)->getElo('Fide') . PHP_EOL; +echo "Fide Elo P2: " . $sws->Tournament->PlayerById(1)->getElo('Fide') . PHP_EOL; +echo "Fide Elo P3: " . $sws->Tournament->PlayerById(2)->getElo('Fide') . PHP_EOL; +echo "KBSB Elo P1: " . $sws->Tournament->PlayerById(0)->getElo('Nation') . PHP_EOL; +echo "KBSB Elo P2: " . $sws->Tournament->PlayerById(1)->getElo('Nation') . PHP_EOL; +echo "KBSB Elo P3: " . $sws->Tournament->PlayerById(2)->getElo('Nation') . PHP_EOL; +echo "Name P1: " . $sws->Tournament->PlayerById(0)->Name . PHP_EOL; +echo "Name P2: " . $sws->Tournament->PlayerById(1)->Name . PHP_EOL; +echo "Name P3: " . $sws->Tournament->PlayerById(2)->Name . PHP_EOL; +echo "Gender P1: " . $sws->Tournament->PlayerById(0)->Gender->getKey() . PHP_EOL; +echo "Gender P2: " . $sws->Tournament->PlayerById(1)->Gender->getKey() . PHP_EOL; +echo "Gender P3: " . $sws->Tournament->PlayerById(2)->Gender->getKey() . PHP_EOL; +echo "Absent P1: " . $sws->Tournament->PlayerById(0)->Absent . PHP_EOL; +echo "Absent P2: " . $sws->Tournament->PlayerById(1)->Absent . PHP_EOL; +echo "Absent P3: " . $sws->Tournament->PlayerById(2)->Absent . PHP_EOL; +echo "Category P1: " . $sws->Tournament->PlayerById(0)->Category . PHP_EOL; +echo "Category P2: " . $sws->Tournament->PlayerById(1)->Category . PHP_EOL; +echo "Category P3: " . $sws->Tournament->PlayerById(2)->Category . PHP_EOL; +echo "Date Round 1: " . $sws->Tournament->RoundByNo(0)->Date->format('d/m/Y') . PHP_EOL; +echo "Date Round 2: " . $sws->Tournament->RoundByNo(1)->Date->format('d/m/Y') . PHP_EOL; +echo "Date Round 3: " . $sws->Tournament->RoundByNo(2)->Date->format('d/m/Y') . PHP_EOL; +echo "Game Round 1: " . $sws->Tournament->RoundByNo(0)->Games[0]->Result->getValue() . PHP_EOL; +echo "Game Round 2: " . $sws->Tournament->RoundByNo(1)->Games[0]->Result->getValue() . PHP_EOL; +echo "Game Round 3: " . $sws->Tournament->RoundByNo(2)->Games[0]->Result->getValue() . PHP_EOL; +echo "Color Pairing 1: " . $sws->Tournament->Pairings[1]->Color->getKey() . PHP_EOL; +echo "Color Pairing 2: " . $sws->Tournament->Pairings[2]->Color->getKey() . PHP_EOL; +echo "Color Pairing 3: " . $sws->Tournament->Pairings[3]->Color->getKey() . PHP_EOL; +echo "Player Pairing 1: " . $sws->Tournament->Pairings[0]->Player->Name . PHP_EOL; +echo "Player Pairing 2: " . $sws->Tournament->Pairings[1]->Player->Name . PHP_EOL; +echo "Player Pairing 3: " . $sws->Tournament->Pairings[2]->Player->Name . PHP_EOL; +echo "Bye Round 1: " . $sws->Tournament->RoundByNo(2)->Bye[0]->Player->Name . PHP_EOL; +echo "Absent Round 1: " . $sws->Tournament->RoundByNo(2)->Absent[0]->Player->Name . PHP_EOL; +echo "Tiebreak 1: " . $sws->Tournament->Tiebreaks[0]->getValue() . PHP_EOL; +echo "Tiebreak 2: " . $sws->Tournament->Tiebreaks[1]->getValue() . PHP_EOL; +echo "Tiebreak 3: " . $sws->Tournament->Tiebreaks[2]->getValue() . PHP_EOL; +echo "Tiebreak 4: " . $sws->Tournament->Tiebreaks[3]->getValue() . PHP_EOL; +echo "Tiebreak 5: " . $sws->Tournament->Tiebreaks[4]->getValue() . PHP_EOL; +echo "Tiebreak 6: " . $sws->Tournament->Tiebreaks[5]->getValue() . PHP_EOL; +echo "Average Elo: " . $sws->Tournament->AverageElo . PHP_EOL; +foreach ($sws->Tournament->RankingForCategory('+2500') as $player) { + echo str_pad($player->Name . '(' . $player->getElo($sws->Tournament->PriorityElo) . ') ', 35) . implode_pad(' ', $player->Tiebreaks, 5, ' ') . PHP_EOL; } function implode_pad($glue, $collection, $padlength, $padstring): string