В паттерне стратегия для класса задается какое-то поведение, у каждого поведения есть свой алгоритм, для начала нужно посмотреть на простом примере вообще какие классы и интерфейсы там есть, но суть в том что у вас будет один класс Участник и будет 5 Классов поведения.
IBehavior
- public function calculate($data);
WinnerFirstBehavior implements IBehavior
WinnerFirstSecondBehavior ...
DrawFirstSecondBehavior ...
DrawSecondThirdBehavior ...
DrawAllBehavior ...
class Player
{
private $behavior;
private $score;
public function __construct(IBehavior $behavior, $score)
{
$this->behavior = $behavior;
$this->score = $score;
}
public function calculate()
{
return $this->behavior->calculate($this->score);
}
}