Advertisement
Guest User

Untitled

a guest
Feb 5th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.17 KB | None | 0 0
  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `ranked_match`(tagA VARCHAR(20), tagB VARCHAR(20), scoreA tinyint(2), scoreB tinyint(2))
  2. BEGIN
  3. DECLARE playerAid, playerBid, eloA, eloB, effA, effB, maxmatchid INT(11);
  4. DECLARE expectA, expectB NUMERIC(5,3);
  5. SELECT playerid INTO playerAid FROM Player WHERE tag=tagA;
  6. SELECT playerid INTO playerBid FROM Player WHERE tag=tagB;
  7. INSERT INTO Outcomes (player1id, player2id, player1score, player2score) VALUES (playerAid, playerBid, scoreA, scoreB);
  8. SELECT elo INTO eloA FROM Player WHERE playerid=playerAid;
  9. SELECT elo INTO eloB FROM Player WHERE playerid=playerBid;
  10. SET effA=POWER(10,(eloA/400));
  11. SET effB=POWER(10,(eloB/400));
  12. SET expectA=(scoreA+scoreB)*(effA/(effA+effB));
  13. SET expectB=(scoreA+scoreB)*(effB/(effA+effB));
  14. SET eloA=eloA+32*(ScoreA-expectA);
  15. SET eloB=eloB+32*(ScoreB-expectB);
  16. UPDATE Player SET elo=eloA WHERE playerid = playerAid;
  17. UPDATE Player SET elo=eloB WHERE playerid = playerBid;
  18. SELECT MAX(matchid) INTO maxmatchid FROM Outcomes;
  19. INSERT INTO HistoricalElo (matchid, playerid, newelo) VALUES (maxmatchid, playerAid, eloA);
  20. INSERT INTO HistoricalElo (matchid, playerid, newelo) VALUES (maxmatchid, playerBid, eloB);
  21. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement