2019-02-01 15:53:39 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Created by PhpStorm.
|
|
|
|
* User: jeroen
|
|
|
|
* Date: 1/02/19
|
|
|
|
* Time: 11:18
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace JeroenED\Libpairtwo;
|
|
|
|
|
|
|
|
use JeroenED\Libpairtwo\Models\Tournament as TournamentModel;
|
2019-02-11 17:54:50 +01:00
|
|
|
use JeroenED\LibPairtwo\Player;
|
2019-02-01 15:53:39 +01:00
|
|
|
|
|
|
|
class Tournament extends TournamentModel
|
|
|
|
{
|
|
|
|
/**
|
2019-02-11 17:54:50 +01:00
|
|
|
* @param integer $id
|
2019-02-01 15:53:39 +01:00
|
|
|
* @return Player
|
|
|
|
*/
|
2019-02-11 17:54:50 +01:00
|
|
|
public function getPlayerById(int $id)
|
2019-02-01 15:53:39 +01:00
|
|
|
{
|
|
|
|
return $this->GetPlayers()[$id];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param Player $Player
|
|
|
|
*/
|
|
|
|
public function addPlayer(Player $Player)
|
|
|
|
{
|
|
|
|
$newArray = $this->GetPlayers();
|
|
|
|
$newArray[] = $Player;
|
|
|
|
$this->setPlayers($newArray);
|
|
|
|
}
|
2019-02-01 17:02:33 +01:00
|
|
|
|
|
|
|
/**
|
2019-02-11 17:54:50 +01:00
|
|
|
* @param int $id
|
2019-02-01 17:02:33 +01:00
|
|
|
* @param Player $player
|
|
|
|
*/
|
2019-02-11 17:54:50 +01:00
|
|
|
public function updatePlayer(int $id, Player $player)
|
2019-02-01 17:02:33 +01:00
|
|
|
{
|
|
|
|
$newArray = $this->GetPlayers();
|
|
|
|
$newArray[$id] = $player;
|
|
|
|
$this->setPlayers($newArray);
|
|
|
|
}
|
2019-02-06 17:23:37 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param Round $round
|
|
|
|
*/
|
|
|
|
public function addRound(Round $round)
|
|
|
|
{
|
|
|
|
$newArray = $this->GetRounds();
|
|
|
|
$newArray[] = $round;
|
|
|
|
$this->setRounds($newArray);
|
|
|
|
}
|
|
|
|
|
2019-02-11 16:43:36 +01:00
|
|
|
/**
|
|
|
|
* @param Pairing $pairing
|
|
|
|
*/
|
|
|
|
public function addPairing(Pairing $pairing)
|
|
|
|
{
|
|
|
|
$newArray = $this->GetPairings();
|
|
|
|
$newArray[] = $pairing;
|
|
|
|
$this->setPairings($newArray);
|
|
|
|
}
|
|
|
|
|
2019-02-06 17:24:10 +01:00
|
|
|
/**
|
2019-02-11 17:54:50 +01:00
|
|
|
* @param bool $americansort
|
|
|
|
* @return Player[]
|
2019-02-06 17:24:10 +01:00
|
|
|
*/
|
2019-02-06 20:34:09 +01:00
|
|
|
public function getRanking(bool $americansort = false)
|
2019-02-06 17:24:10 +01:00
|
|
|
{
|
|
|
|
$players = $this->getPlayers();
|
|
|
|
|
2019-02-06 20:34:09 +01:00
|
|
|
$americansort ? usort($players, array($this, "SortAmerican")) : usort($players, array($this, "SortNormal"));
|
2019-02-06 17:24:10 +01:00
|
|
|
|
2019-02-06 18:22:25 +01:00
|
|
|
return $players;
|
|
|
|
}
|
|
|
|
|
2019-02-06 20:10:52 +01:00
|
|
|
/**
|
2019-02-11 17:54:50 +01:00
|
|
|
* @param Player $a
|
|
|
|
* @param Player $b
|
|
|
|
* @return int
|
2019-02-06 20:10:52 +01:00
|
|
|
*/
|
2019-02-11 17:54:50 +01:00
|
|
|
private function sortNormal(Player $a, Player $b)
|
2019-02-06 18:22:25 +01:00
|
|
|
{
|
|
|
|
return $b->getPoints() - $a->getPoints();
|
2019-02-06 17:24:10 +01:00
|
|
|
}
|
2019-02-06 20:10:52 +01:00
|
|
|
|
|
|
|
/**
|
2019-02-11 17:54:50 +01:00
|
|
|
* @param Player $a
|
|
|
|
* @param Player $b
|
|
|
|
* @return int
|
2019-02-06 20:10:52 +01:00
|
|
|
*/
|
2019-02-11 17:54:50 +01:00
|
|
|
private function sortAmerican(Player $a, Player $b)
|
2019-02-06 20:10:52 +01:00
|
|
|
{
|
|
|
|
return $b->getScoreAmerican() - $a->getScoreAmerican();
|
|
|
|
}
|
2019-02-01 15:53:39 +01:00
|
|
|
}
|