Advertisement
Guest User

Untitled

a guest
Aug 7th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 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. $totalPlayerCost = 0;
  111. $subsPointCount = 0;
  112. $pointArray = array();
  113. $metadata = array(
  114. 'pickedTeam' =>array (
  115. 'defs' =>array(),
  116. 'mid' =>array(),
  117. 'fwds' =>array(),
  118. 'gk' =>array()
  119. ),
  120. 'subs' => array(),
  121. 'subGk' => array()
  122. );
  123. $availableBalance = 0;
  124. $subIds = getAllSubstitutesIdsExceptGoalkeeper($buildTeamArry, $pickedTeamArray);
  125. $gkId = getSubGoalkeeper($buildTeamArry, $pickedTeamArray);
  126. foreach ($allData as $key => $row) {
  127. $playtime = $row['playing_time'];
  128. $playerId = $row['player_id'];
  129. $playerPoint = $row['player_point'];
  130. foreach($buildTeamArry as $key => $value) {
  131. if(in_array($playerId, $value)){
  132. $player['id'] = $playerId;
  133. $player['points'] = (float) $playerPoint;
  134. if(isCaptain($playerId, $captain_id)) {
  135. $player['is_captain'] = true;
  136. $player['points'] = $player['points'] * 2;
  137. }
  138. else {
  139. $player['captain'] = false;
  140. }
  141.  
  142. if(isViceCaptain($playerId, $vice_captain_id)){
  143. $player['is_vice_captain'] = true;
  144. $player['points'] = $player['points'] * 1.5;
  145. }
  146. else {
  147. $player['is_vice_captain'] = false;
  148. }
  149. $substitute = false;
  150. if(in_array($playerId, $subIds)) {
  151. array_push($metadata['subs'], $player);
  152. $substitute = true;
  153. }
  154. elseif(in_array($playerId, $gkId)) {
  155. array_push($metadata['subGk'], $player);
  156. $substitute = true;
  157. }
  158. else
  159. array_push($metadata['pickedTeam'][$key], $player);
  160. $playerHasPlayed = checkPlayerHasPlayed($playtime);
  161. if($playerHasPlayed && !$substitute) {
  162. array_push($pointArray, $player['points']);
  163. }
  164. else if(!$playerHasPlayed && !$substitute) {
  165. $subsPointCount++ ;
  166. }
  167. }
  168. }
  169. }
  170. $point= array();
  171. array_push($point, $metadata);
  172. $subPointArr = getPointFromSubstitutePlayer($buildTeamArry, $pickedTeamArray, $allData ,$subsPointCount);
  173. $totalPointArr =array_merge($pointArray, $subPointArr);
  174. $point['point'] = array_sum($totalPointArr);
  175. $point['game_week'] = 1;
  176. retun $point
  177. }
  178.  
  179. function calculateInitialAvailableBalance($allData, $buildTeamArry, $totalMoney) {
  180. $totalPlayerCost = 0;
  181. $availableBalance = 0;
  182. foreach ($allData as $key => $row) {
  183. $playerCost = $row["player_cost"];
  184. $playerId = $row['player_id'];
  185. foreach($buildTeamArry as $key => $value) {
  186. if(in_array($playerId, $value)){
  187. $totalPlayerCost += (float) $playerCost;
  188. }
  189. }
  190. }
  191. $availableBalance = $totalMoney - $totalPlayerCost;
  192. return $availableBalance;
  193. }
  194.  
  195. $sqlSel = "select * from players where game_week = 1";
  196. $results = $conn->query($sqlSel);
  197. $allData = mysqli_fetch_all ($results, MYSQLI_ASSOC);
  198.  
  199. genratePointsInfoArray($allData, $infoArray, $maininfoArray, null, $captain_id, $vice_captain_id);
  200. calculateInitialAvailableBalance($allData, $infoArray, 100)
  201.  
  202.  
  203.  
  204.  
  205. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement