Compare commits
3 Commits
6794e44275
...
32a0021ff2
Author | SHA1 | Date |
---|---|---|
Jeroen De Meerleer | 32a0021ff2 | |
Jeroen De Meerleer | 34f0e592df | |
Jeroen De Meerleer | bbff18e64f |
|
@ -12,9 +12,7 @@ use MyCLabs\Enum\Enum;
|
|||
|
||||
class Color extends Enum
|
||||
{
|
||||
const black = 255; // Implementing two's-complement for these values only is not worth the trick
|
||||
const black3 = 253; // Especially if you can just do unsigned
|
||||
const white = 1;
|
||||
const white3 = 3;
|
||||
const none = 0;
|
||||
const black = 'B';
|
||||
const white = 'W';
|
||||
const none = '*';
|
||||
}
|
||||
|
|
|
@ -12,17 +12,17 @@ use MyCLabs\Enum\Enum;
|
|||
|
||||
class Title extends Enum
|
||||
{
|
||||
const NONE = 0;
|
||||
const ELO = 1;
|
||||
const NM = 2; // National Master
|
||||
const WCM = 3; // Woman Candidate Master
|
||||
const WFM = 4; // Women Fide Master
|
||||
const CM = 5; // Candidate Master
|
||||
const WIM = 6; // Woman International Master
|
||||
const FM = 7; // Fide Master
|
||||
const WGM = 8; // Woman Grand Master
|
||||
const HM = 9; // Honorary International master
|
||||
const IM = 10; // International Master
|
||||
const HG = 11; // Honorary Grand Master
|
||||
const GM = 12; // Grand Master
|
||||
const NONE = '*';
|
||||
const ELO = 'Elo';
|
||||
const NM = 'National Master';
|
||||
const WCM = 'Woman Candidate Master';
|
||||
const WFM = 'Woman Fide Master';
|
||||
const CM = 'Candidate Master';
|
||||
const WIM = 'Woman International Master';
|
||||
const FM = 'Fide Master';
|
||||
const WGM = 'Woman Grand Master';
|
||||
const HM = 'Honorary International Master';
|
||||
const IM = 'International Master';
|
||||
const HG = 'Honorary Grand Master';
|
||||
const GM = 'Grand Master';
|
||||
}
|
||||
|
|
|
@ -12,8 +12,8 @@ use MyCLabs\Enum\Enum;
|
|||
|
||||
class TournamentSystem extends Enum
|
||||
{
|
||||
const Swiss = 0;
|
||||
const Closed = 2;
|
||||
const American = 4;
|
||||
const Imperial = 6;
|
||||
const Swiss = 'Swiss';
|
||||
const Closed = 'Closed';
|
||||
const American = 'American';
|
||||
const Imperial = 'Imperal';
|
||||
}
|
||||
|
|
80
src/Sws.php
80
src/Sws.php
|
@ -34,7 +34,6 @@ use JeroenED\Libpairtwo\Models\Sws as SwsModel;
|
|||
use JeroenED\Libpairtwo\Enums\TournamentSystem;
|
||||
use DateTime;
|
||||
|
||||
|
||||
/**
|
||||
* This class reads a SWS file
|
||||
*
|
||||
|
@ -300,7 +299,49 @@ class Sws extends SwsModel
|
|||
$offset += $length;
|
||||
|
||||
$length = 1;
|
||||
$player->setTitle(new Title(self::ReadData('Int', substr($swscontents, $offset, $length))));
|
||||
switch (self::ReadData('Int', substr($swscontents, $offset, $length))) {
|
||||
case 1:
|
||||
$title = Title::ELO;
|
||||
break;
|
||||
case 2:
|
||||
$title = Title::NM;
|
||||
break;
|
||||
case 3:
|
||||
$title = Title::WCM;
|
||||
break;
|
||||
case 4:
|
||||
$title = Title::WFM;
|
||||
break;
|
||||
case 5:
|
||||
$title = Title::CM;
|
||||
break;
|
||||
case 6:
|
||||
$title = Title::WIM;
|
||||
break;
|
||||
case 7:
|
||||
$title = Title::FM;
|
||||
break;
|
||||
case 8:
|
||||
$title = Title::WGM;
|
||||
break;
|
||||
case 9:
|
||||
$title = Title::HM;
|
||||
break;
|
||||
case 10:
|
||||
$title = Title::IM;
|
||||
break;
|
||||
case 11:
|
||||
$title = Title::HG;
|
||||
break;
|
||||
case 12:
|
||||
$title = Title::GM;
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
$title = Title::NONE;
|
||||
break;
|
||||
}
|
||||
$player->setTitle(new Title($title));
|
||||
$offset += $length;
|
||||
|
||||
$length = 1;
|
||||
|
@ -442,7 +483,20 @@ class Sws extends SwsModel
|
|||
|
||||
// Type
|
||||
$length = 4;
|
||||
$sws->getTournament()->setSystem(new TournamentSystem(self::ReadData('Int', substr($swscontents, $offset, $length))));
|
||||
Switch(self::ReadData('Int', substr($swscontents, $offset, $length))) {
|
||||
case 0:
|
||||
$system = TournamentSystem::Swiss;
|
||||
break;
|
||||
case 2:
|
||||
$system = TournamentSystem::Closed;
|
||||
break;
|
||||
case 4:
|
||||
$system = TournamentSystem::American;
|
||||
break;
|
||||
case 6:
|
||||
$system = TournamentSystem::Imperial;
|
||||
}
|
||||
$sws->getTournament()->setSystem(new TournamentSystem($system));
|
||||
$offset += $length;
|
||||
|
||||
// Federation
|
||||
|
@ -505,12 +559,26 @@ class Sws extends SwsModel
|
|||
$offset += $length;
|
||||
|
||||
$length = 1;
|
||||
$pairing->setColor(new Color(self::ReadData('Int', substr($swscontents, $offset, $length))));
|
||||
|
||||
switch (self::ReadData('Int', substr($swscontents, $offset, $length))) {
|
||||
case 255:
|
||||
case 253:
|
||||
$color = 'B';
|
||||
break;
|
||||
case 1:
|
||||
case 3:
|
||||
$color = 'W';
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
$color = '*';
|
||||
break;
|
||||
}
|
||||
$pairing->setColor(new Color($color));
|
||||
$offset += $length;
|
||||
|
||||
$length = 1;
|
||||
Switch(self::ReadData('Int', substr($swscontents, $offset, $length)))
|
||||
{
|
||||
switch (self::ReadData('Int', substr($swscontents, $offset, $length))) {
|
||||
case 0:
|
||||
$result = '*';
|
||||
break;
|
||||
|
|
|
@ -89,7 +89,7 @@ class Tournament extends TournamentModel
|
|||
$result = $pairing->getResult();
|
||||
|
||||
$game = new Game();
|
||||
if ($color->getValue() == Color::white || $color->getValue() == Color::white3) {
|
||||
if ($color->getValue() == Color::white) {
|
||||
if(! is_null($player)) $game->setWhite($player);
|
||||
if(! is_null($opponent)) $game->setBlack($opponent);
|
||||
switch ($result->getValue()) {
|
||||
|
@ -115,7 +115,7 @@ class Tournament extends TournamentModel
|
|||
default:
|
||||
$game->setResult(new Gameresult('-')); break;
|
||||
}
|
||||
} elseif ($color->getValue() == Color::black || $color->getValue() == Color::black3) {
|
||||
} elseif ($color->getValue() == Color::black) {
|
||||
if(! is_null($player)) $game->setBlack($player);
|
||||
if(! is_null($opponent)) $game->setWhite($opponent);
|
||||
switch ($result->getValue()) {
|
||||
|
|
|
@ -62,4 +62,10 @@ echo "Absent P3: " . $sws->getTournament()->getPlayerById(2)->getAbsent() . P
|
|||
echo "Date Round 1: " . $sws->getTournament()->getRoundByNo(0)->getDate()->format('d/m/Y') . PHP_EOL;
|
||||
echo "Date Round 2: " . $sws->getTournament()->getRoundByNo(1)->getDate()->format('d/m/Y') . PHP_EOL;
|
||||
echo "Date Round 3: " . $sws->getTournament()->getRoundByNo(2)->getDate()->format('d/m/Y') . PHP_EOL;
|
||||
echo "Color Pairing 1: " . $sws->getTournament()->getPairings()[1]->getColor()->getKey() . PHP_EOL;
|
||||
echo "Color Pairing 2: " . $sws->getTournament()->getPairings()[2]->getColor()->getKey() . PHP_EOL;
|
||||
echo "Color Pairing 3: " . $sws->getTournament()->getPairings()[3]->getColor()->getKey() . PHP_EOL;
|
||||
echo "Player Pairing 1: " . $sws->getTournament()->getPairings()[0]->getPlayer()->getName() . PHP_EOL;
|
||||
echo "Player Pairing 2: " . $sws->getTournament()->getPairings()[1]->getPlayer()->getName() . PHP_EOL;
|
||||
echo "Player Pairing 3: " . $sws->getTournament()->getPairings()[2]->getPlayer()->getName() . PHP_EOL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue