/** @test */ public function testCompleteWithThreeRollsOnTenthFrame() { $game = new \bowling\game(); $game->frame(9, 0); $game->frame(3, 7); $game->frame(6, 1); $game->frame(3, 7); $game->frame(8, 1); $game->frame(5, 5); $game->frame(0, 10); $game->frame(8, 0); $game->frame(7, 3); $game->frame(8, 2, 8); $this->assertTrue($game->score() == 131); }
function calculateAverageScoreFor($gameID, $teamID) { $sql = "SELECT group_concat(DISTINCT player_id) as 'ids' from Frame where Team_ID = {$teamID} and Game_ID = {$gameID}"; $conn = connectToDatabase(); $result = $conn->query($sql); $totalScore = 0; if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $allPlayers = explode(',', $row['ids']); foreach ($allPlayers as $player) { $game = new \bowling\game(); $getAllFrames = "SELECT Frame_Number, Roll_One_ID, Roll_Two_ID, Roll_Three_ID From Frame where Team_ID = {$teamID} and Game_ID = {$gameID} and Frame.Player_ID = {$player}"; $resultOfPlayers = $conn->query($getAllFrames); if ($resultOfPlayers) { while ($rowOfPlayers = $resultOfPlayers->fetch_assoc()) { if ($rowOfPlayers['Frame_Number'] == 10) { if (isset($rowOfPlayers['Roll_Three_ID'])) { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Two_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Three_ID'])); } else { if (isset($rowOfPlayers['Roll_Two_ID'])) { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Two_ID'])); } else { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID'])); } } } else { if (isset($rowOfPlayers['Roll_Two_ID'])) { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Two_ID'])); } else { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID'])); } } } $totalScore += $game->score(); } } } } else { return 0; } return round($totalScore / count($allPlayers), 3); }
function calculateTotalScore($playerID, $gameID, $teamID) { $game = new \bowling\game(); $conn = connectToDatabase(); $getAllFrames = "SELECT Frame_Number, Roll_One_ID, Roll_Two_ID, Roll_Three_ID From Frame where Team_ID = {$teamID} and Game_ID = {$gameID} and Frame.Player_ID = {$playerID}"; $resultOfPlayers = $conn->query($getAllFrames); if ($resultOfPlayers) { while ($rowOfPlayers = $resultOfPlayers->fetch_assoc()) { if ($rowOfPlayers['Frame_Number'] == 10) { if (isset($rowOfPlayers['Roll_Three_ID'])) { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Two_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Three_ID'])); } else { if (isset($rowOfPlayers['Roll_Two_ID'])) { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Two_ID'])); } else { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID'])); } } } else { if (isset($rowOfPlayers['Roll_Two_ID'])) { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID']), getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_Two_ID'])); } else { $game->frame(getIntegerNumberOfPinsHitForRollID($rowOfPlayers['Roll_One_ID'])); } } } } return $game; }