Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. use DBI;
  2.  
  3. #get_alias(player_id), returns alias of player_id
  4. sub get_alias {
  5. if (@_[0] == 0) {
  6. return '!NEWPLAYER!';
  7. }
  8. $alias_query = "SELECT alias FROM PLAYER WHERE id=@_[0]";
  9. $query = $db->prepare($alias_query);
  10. $query->execute;
  11. @query_result = $query->fetchrow_array;
  12. $query->finish;
  13. return @query_result[0];
  14. }
  15.  
  16. #get_participation(player_id, event_id), returns true if player_id participated in event_id
  17. sub get_participation {
  18. $participation_query = "SELECT event_id FROM playerevent WHERE player_id=@_[0] AND event_id=@_[1]";
  19. $query = $db->prepare($participation_query);
  20. $query->execute;
  21. if (@query_result = $query->fetchrow_array) {
  22. return 1;
  23. }
  24. return 0;
  25. }
  26.  
  27. #get_state(player_id), returns state of player_id
  28. sub get_state {
  29. if (@_[0] == 0) {
  30. return 0;
  31. }
  32. $state_query = "SELECT state_id FROM playerstate WHERE player_id=@_[0]";
  33. $query = $db->prepare($state_query);
  34. $query->execute;
  35. @query_result = $query->fetchrow_array;
  36. $query->finish;
  37. return @query_result[0];
  38. }
  39.  
  40. #get_teamrank(player_id, nationals_event_id), returns rank of the team that player_id played for at nationals_event_id
  41. sub get_teamrank {
  42. $team_query = "SELECT teamranks.rank FROM playerteam INNER JOIN teamevent ON playerteam.team_id=teamevent.team_id INNER JOIN teamranks ON playerteam.team_id=teamranks.fkey_team_id WHERE playerteam.player_id=$_[0] AND teamevent.event_id=@_[1]";
  43. $query = $db->prepare($team_query);
  44. $query->execute;
  45. @query_result = $query->fetchrow_array;
  46. $query->finish;
  47. return @query_result[0];
  48. }
  49.  
  50. #Set up connection to auszone database
  51. $database = LOL YOU WISH GRUG
  52. $hostname = LOL YOU WISH GRUG
  53. $username = LOL YOU WISH GRUG
  54. $password = LOL YOU WISH GRUG
  55. $dsn = "DBI:mysql:database=$database;host=$hostname";
  56. $db = DBI->connect($dsn, $username, $password);
  57.  
  58. #Read teams and players from text file
  59. open(TEAMS_FILE, "teams.txt");
  60. @teams_file_data = <TEAMS_FILE>;
  61. close(TEAMS_FILE);
  62.  
  63. #set up data for each nationals: event id, host state, max teams
  64. @nationals = (
  65. [52, 3, 20, 'Darwin'],
  66. [45, 6, 22, 'Sunshine Coast'],
  67. [38, 7, 18, 'Willetton'],
  68. [32, 5, 21, 'Bendigo'],
  69. [26, 2, 18, 'Campbelltown'],
  70. [20, 6, 20, 'Rockhampton']
  71. );
  72.  
  73. foreach $line (@teams_file_data) {
  74.  
  75. chomp($line);
  76. @split_line = split(':',$line);
  77. $team_name = @split_line[0];
  78. @players = split(',', @split_line[1]);
  79. @aliases = ();
  80. @ratings = ();
  81.  
  82. foreach $player (@players) {
  83.  
  84. @aliases[$#aliases + 1] = get_alias($player);
  85.  
  86. $nationals_counted = 0;
  87. $nationals_current = 0;
  88. $player_rating = 0;
  89.  
  90. while ($nationals_counted < 2 and $nationals_current < $#nationals+1) {
  91. if ((get_state($player) != $nationals[$nationals_current][1]) and (get_participation($player,$nationals[$nationals_current][0]))) {
  92. $player_rating = $player_rating + (get_teamrank($player,$nationals[$nationals_current][0]) / $nationals[$nationals_current][2] );
  93. $nationals_counted = $nationals_counted + 1;
  94. }
  95. $nationals_current = $nationals_current + 1;
  96. }
  97.  
  98. if ($nationals_counted != 0) {
  99. $final_rating = $player_rating / $nationals_counted;
  100. } else {
  101. $final_rating = 0;
  102. }
  103.  
  104. @ratings[$#ratings + 1] = $final_rating;
  105.  
  106. }
  107.  
  108. print "[$team_name]\n";
  109. $i = 0;
  110. $total_team_rating = 0;
  111. $rated_players = 0;
  112. $final_team_rating = 0;
  113.  
  114. while ($i < ($#aliases + 1)) {
  115. print "\t\t@aliases[$i]: @ratings[$i]\n";
  116. if (@ratings[$i] > 0) {
  117. $total_team_rating = $total_team_rating + @ratings[$i];
  118. $rated_players = $rated_players + 1;
  119. }
  120. $i = $i + 1;
  121. }
  122.  
  123. if ($rated_players > 0) {
  124. $final_team_rating = $total_team_rating / $rated_players;
  125. }
  126.  
  127. print "Team Rating: $final_team_rating\n\n\n";
  128.  
  129. }
  130.  
  131. $db->disconnect;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement