Skip to content

Instantly share code, notes, and snippets.

@guillaumebdx
Created May 12, 2020 19:27
Show Gist options
  • Save guillaumebdx/dd3f9e3ce3008ff405eebeb82d067b2f to your computer and use it in GitHub Desktop.
Save guillaumebdx/dd3f9e3ce3008ff405eebeb82d067b2f to your computer and use it in GitHub Desktop.
<?php
namespace Molkky;
class Molkky
{
const MAX_RESULT = 50;
CONST MIDDLE_RESULT = 25;
public function getScore(array $seriesDeQuilles)
{
if ($this->hasLost($seriesDeQuilles)) {
return 'LOST';
}
$result = 0;
foreach($seriesDeQuilles as $quilles) {
$result += $this->getScoreBySerie($quilles);
}
if ($result > self::MAX_RESULT){
$result = self::MIDDLE_RESULT;
}
elseif ($result === self::MAX_RESULT){
$result = 'WIN';
}
return $result;
}
public function getScoreBySerie($quilles)
{
if (count($quilles) === 1){
$result = $quilles[0];
} else {
$result = count($quilles);
}
return $result;
}
public function hasLost($seriesDeQuilles)
{
$result = false;
if ($seriesDeQuilles[count($seriesDeQuilles) -1][0] === 0
&& $seriesDeQuilles[count($seriesDeQuilles) -2][0] === 0
&& $seriesDeQuilles[count($seriesDeQuilles) -3][0] === 0) {
$result = true;
}
return $result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment