Advertisement
Guest User

Untitled

a guest
Aug 7th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.41 KB | None | 0 0
  1. <?php
  2.  
  3. $servername = "localhost";
  4. $username = "root";
  5. $password = "root";
  6. $dbname = "testing";
  7. $conn = new mysqli($servername, $username, $password, $dbname);
  8.  
  9.  
  10. //builtteam object
  11. $infoArray = new stdClass();
  12. $infoArray->defs = [98, 34, 101, 97, 138];
  13. $infoArray->fwds = [212, 25, 92];
  14. $infoArray->gk = [260, 74];
  15. $infoArray->mid = [16, 228, 409, 454, 453];
  16. $totalMoney = 100;
  17.  
  18. //pickteam object
  19. $maininfoArray = new stdClass();
  20. $maininfoArray->defs = [98, 34, 101, 97];
  21. $maininfoArray->fwds = [212, 92];
  22. $maininfoArray->gk = [74];
  23. $maininfoArray->mid = [16, 409, 454, 453];
  24. $captain_id = 74;
  25. $vice_captain_id = 453;
  26. $totalMoney = 100;
  27.  
  28.  
  29. function getAllSubstitutesIds ($buildTeam, $pickedTeam) {
  30. $allSubIds = array();
  31. if($buildTeam && $pickedTeam) {
  32. $subDef = array_diff($buildTeam->defs, $pickedTeam->defs);
  33. $subFwds = array_diff($buildTeam->fwds, $pickedTeam->fwds);
  34. $subMid = array_diff($buildTeam->mid, $pickedTeam->mid);
  35. $subGk = array_diff($buildTeam->gk, $pickedTeam->gk);
  36. $allSubIds = array_merge($subDef,$subFwds, $subMid, $subGk);
  37. }
  38. return $allSubIds;
  39. }
  40.  
  41. function getAllSubstitutesIdsExceptGoalkeeper ($buildTeam, $pickedTeam) {
  42. $allSubIds = array();
  43. if($buildTeam && $pickedTeam) {
  44. $subDef = array_diff($buildTeam->defs, $pickedTeam->defs);
  45. $subFwds = array_diff($buildTeam->fwds, $pickedTeam->fwds);
  46. $subMid = array_diff($buildTeam->mid, $pickedTeam->mid);
  47. $allSubIds = array_merge($subDef,$subFwds, $subMid);
  48. }
  49. return $allSubIds;
  50. }
  51.  
  52. function getSubGoalkeeper ($buildTeam, $pickedTeam) {
  53. $subGk = array();
  54. if($buildTeam && $pickedTeam) {
  55. $subGk = array_diff($buildTeam->gk, $pickedTeam->gk);
  56. }
  57. return $subGk;
  58. }
  59.  
  60.  
  61. function checkPlayerHasPlayed($playtime) {
  62. $playerHasPlayed = false;
  63. if($playtime > 0) {
  64. $playerHasPlayed = true;
  65. }
  66. return $playerHasPlayed;
  67.  
  68. }
  69.  
  70. function isCaptain($playerId, $captain_id) {
  71. if($playerId == $captain_id)
  72. return true;
  73. else
  74. return false;
  75. }
  76.  
  77. function isViceCaptain($playerId, $vice_captain_id) {
  78. if($playerId == $vice_captain_id)
  79. return true;
  80. else
  81. return false;
  82. }
  83.  
  84.  
  85. function getPointFromSubstitutePlayer($buildTeam, $pickedTeam, $allData, $count ) {
  86. $pointsArray = array();
  87. if($count > 0) {
  88. $subPlayers = getAllSubstitutesIds($buildTeam, $pickedTeam);
  89. $subPlayersWithInfo = array();
  90. foreach ($subPlayers as $key => $id) {
  91. $key = array_search($id, array_column($allData, 'player_id'));
  92. if($allData[$key]) {
  93. $subPlayersWithInfo = $allData[$key];
  94. if(checkPlayerHasPlayed($subPlayersWithInfo['playing_time'])) {
  95. array_push($pointsArray, $subPlayersWithInfo['player_point']);
  96. if(count($pointsArray) > $count) {
  97. break;
  98. }
  99. }
  100. }
  101.  
  102. }
  103. }
  104. return $pointsArray;
  105. }
  106.  
  107. // $availabLeBalance = calculateInitialAvailableBalance($infoArray, $conn, $totalMoney) {;
  108.  
  109. function genratePointsInfoArray($allData, $buildTeamArry,$pickedTeamArray, $gameWeekArray , $captain_id, $vice_captain_id) {
  110. $pointFinalArrayStructure = array();
  111. $totalPointArray = array();
  112. $subsPointCount = 0;
  113. $pointArray = array();
  114. $metadata = array(
  115. 'pickedTeam' =>array (
  116. 'defs' =>array(),
  117. 'mid' =>array(),
  118. 'fwds' =>array(),
  119. 'gk' =>array()
  120. ),
  121. 'subs' => array(),
  122. 'subGk' => array()
  123. );
  124. $availableBalance = 0;
  125. $subIds = getAllSubstitutesIdsExceptGoalkeeper($buildTeamArry, $pickedTeamArray);
  126. $gkId = getSubGoalkeeper($buildTeamArry, $pickedTeamArray);
  127. foreach($gameWeekArray as $key => $gameweek){
  128. foreach ($allData as $key => $row) {
  129. $playtime = $row['playing_time'];
  130. $playerId = $row['player_id'];
  131. $playerPoint = $row['player_point'];
  132. foreach($buildTeamArry as $key => $value) {
  133. if(in_array($playerId, $value)){
  134. $player['id'] = $playerId;
  135. $player['points'] = (float) $playerPoint;
  136. if(isCaptain($playerId, $captain_id)) {
  137. $player['is_captain'] = true;
  138. $player['points'] = $player['points'] * 2;
  139. }
  140. else {
  141. $player['captain'] = false;
  142. }
  143.  
  144. if(isViceCaptain($playerId, $vice_captain_id)){
  145. $player['is_vice_captain'] = true;
  146. $player['points'] = $player['points'] * 1.5;
  147. }
  148. else {
  149. $player['is_vice_captain'] = false;
  150. }
  151. $substitute = false;
  152. if(in_array($playerId, $subIds)) {
  153. array_push($metadata['subs'], $player);
  154. $substitute = true;
  155. }
  156. elseif(in_array($playerId, $gkId)) {
  157. array_push($metadata['subGk'], $player);
  158. $substitute = true;
  159. }
  160. else
  161. array_push($metadata['pickedTeam'][$key], $player);
  162. $playerHasPlayed = checkPlayerHasPlayed($playtime);
  163. if($playerHasPlayed && !$substitute) {
  164. array_push($pointArray, $player['points']);
  165. }
  166. else if(!$playerHasPlayed && !$substitute) {
  167. $subsPointCount++ ;
  168. }
  169. }
  170. }
  171. }
  172. $subPointArr = getPointFromSubstitutePlayer($buildTeamArry, $pickedTeamArray, $allData ,$subsPointCount);
  173. $gameWeekPointArr =array_merge($pointArray, $subPointArr);
  174. $metadata['point'] = array_sum($gameWeekPointArr);
  175. array_push($totalPointArray, $metadata['point']);
  176. $metadata['game_week'] = $gameweek;
  177. array_push($pointFinalArrayStructure, $metadata);
  178. }
  179. $pointFinalArrayStructure['totalPoints'] = array_sum($totalPointArray);
  180. $pointFinalArrayStructure['teamName'] = 'Royal Challengers Banglore';
  181. echo json_encode($pointFinalArrayStructure);
  182. }
  183.  
  184. function calculateInitialAvailableBalance($allData, $buildTeamArry, $totalMoney) {
  185. $totalPlayerCost = 0;
  186. $availableBalance = 0;
  187. foreach ($allData as $key => $row) {
  188. $playerCost = $row["player_cost"];
  189. $playerId = $row['player_id'];
  190. foreach($buildTeamArry as $key => $value) {
  191. if(in_array($playerId, $value)){
  192. $totalPlayerCost += (float) $playerCost;
  193. }
  194. }
  195. }
  196. $availableBalance = $totalMoney - $totalPlayerCost;
  197. return $availableBalance;
  198. }
  199.  
  200. $sqlSel = "select * from players where game_week = 1";
  201. $results = $conn->query($sqlSel);
  202. $allData = mysqli_fetch_all ($results, MYSQLI_ASSOC);
  203.  
  204. genratePointsInfoArray($allData, $infoArray, $maininfoArray, $gameWeek = array(1), $captain_id, $vice_captain_id);
  205. calculateInitialAvailableBalance($allData, $infoArray, 100)
  206.  
  207.  
  208. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement