Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.24 KB | None | 0 0
  1. <head>
  2. <meta charset="utf-8" />
  3. <title>Tournament Board</title>
  4. <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
  5. <script src="https://code.jquery.com/jquery-3.4.1.min.js"
  6. integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
  7. </head>
  8.  
  9. <body>
  10. <label id="npn" for="name">Next Player Name:</label>
  11. <input type="text" id="name" value="a,b,c,d,e,f">
  12. <input id="addPlayer" type="submit" value='Add Player'>
  13. <input id="start" type="submit" value='Start Tournament'>
  14. <p for="currentPlayers">Current Players:</p>
  15. <p id="currentPlayers"></p>
  16. <input id="removePlayer" type="submit" value='Remove Last Player'>
  17. <p id="currentMatch"></p>
  18. <label id="winLabel" for="winner">Who won the match:</label>
  19. <input type="submit" id="winner1" value="1">
  20. <input type="submit" id="winner2" value="2">
  21. <div id='myChart'></div>
  22. </body>
  23.  
  24. <script>
  25. /**
  26. * Shuffles array in place. ES6 version
  27. * @param {Array} a items An array containing the items.
  28. * https://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array
  29. */
  30. function shuffle(a) {
  31. for (let i = a.length - 1; i > 0; i--) {
  32. const j = Math.floor(Math.random() * (i + 1));
  33. [a[i], a[j]] = [a[j], a[i]];
  34. }
  35. return a;
  36. }
  37.  
  38. function removePlayer(array, player) {
  39. var index = array.indexOf(player);
  40. if (index > -1) {
  41. array.splice(index, 1);
  42. }
  43. return array;
  44. }
  45.  
  46.  
  47. $(document).ready(function () {
  48. players = [];
  49. nextBracket = []
  50. coords = []
  51. minPlayers = 2
  52. $('#winner1').hide();
  53. $('#winner2').hide();
  54. $('#winLabel').hide();
  55. $('#removePlayer').hide();
  56. $('#start').hide();
  57. });
  58.  
  59. $('#removePlayer').click(function () {
  60. var currentPlayers = $('#currentPlayers');
  61. players.pop()
  62. currentPlayers.text(players)
  63. });
  64.  
  65. $('#addPlayer').click(function () {
  66. var name = $('#name').val();
  67. var currentPlayers = $('#currentPlayers');
  68. comma = name.indexOf(",");
  69.  
  70. if (players.indexOf(name) !== -1) {
  71. alert("player has already been added")
  72. }
  73. if (comma != -1) {
  74. players = name.split(",");
  75. if (players.length < minPlayers) {
  76. alert('not enough players')
  77. return false;
  78. }
  79. currentPlayers.text(players)
  80. i = 0
  81. l = players.length;
  82. x = 2;
  83. while (1) {
  84. if (x >= l) {
  85. break;
  86. }
  87. x = Math.pow(2, ++i);
  88. }
  89. diff = x - l;
  90. for (i = 0; i < diff; i++) {
  91. players.push("free_win");
  92. }
  93. for (i = 0; i < l; i++) {
  94. coords.push([0,i*5]);
  95. }
  96. $('#name').val('');
  97. copyTextToClipboard(players)
  98. $('#npn').hide();
  99. $('#name').hide();
  100. $('#addPlayer').hide();
  101. $('#start').hide();
  102. $('#winner1').show();
  103. $('#winner2').show();
  104. $('#winLabel').show();
  105. shuffle(players);
  106. player1 = players[0];
  107. player2 = players[1];
  108. var msg = "1." + player1 + " ||||| 2." + player2;
  109. $('#currentPlayers').text(msg);
  110. } else {
  111. $('#start').show();
  112. $('#removePlayer').show();
  113. var currentPlayers = $('#currentPlayers');
  114. players.push(name)
  115. currentPlayers.text(players)
  116. $('#name').val('');
  117. }
  118. });
  119.  
  120. $('#start').click(function () {
  121. if (players.length < minPlayers) {
  122. alert('not enough players')
  123. return false;
  124. }
  125. l = players.length;
  126. x = 2;
  127. while (1) {
  128. if (x >= l) {
  129. break;
  130. }
  131. x = Math.pow(2, ++i);
  132. }
  133. diff = x - l;
  134. for (i = 0; i < diff; i++) {
  135. players.push("free_win");
  136. }
  137. for (i = 0; i < l; i++) {
  138. coords.push([0,i*5]);
  139. }
  140.  
  141. copyTextToClipboard(players)
  142. $('#npn').hide();
  143. $('#name').hide();
  144. $('#addPlayer').hide();
  145. $('#start').hide();
  146. $('#winner1').show();
  147. $('#winner2').show();
  148. $('#winLabel').show();
  149. shuffle(players);
  150. player1 = players[0];
  151. player2 = players[1];
  152. var msg = "1." + player1 + " ||||| 2." + player2;
  153. $('#currentPlayers').text(msg);
  154. });
  155.  
  156. $('#winner1').click(function () {
  157. nextBracket.push(player1);
  158. players = removePlayer(players, player1);
  159. players = removePlayer(players, player2);
  160.  
  161. if (players.length < 2) {
  162. if (nextBracket.length == 1 && players.length < 2) {
  163. alert(player1 + " wins!");
  164. location.reload(); //change with reset
  165. }
  166. console.log(players, nextBracket)
  167. players = nextBracket;
  168. nextBracket = [];
  169. }
  170.  
  171.  
  172. shuffle(players);
  173. player1 = players[0];
  174. player2 = players[1];
  175. var msg = "1." + player1 + " ||||| 2." + player2;
  176. $('#currentPlayers').text(msg);
  177. });
  178.  
  179. $('#winner2').click(function () {
  180. nextBracket.push(player2);
  181. players = removePlayer(players, player1);
  182. players = removePlayer(players, player2);
  183.  
  184. if (players.length < 2) {
  185. if (nextBracket.length == 1 && players.length < 2) {
  186. alert(player2 + " wins!");
  187. location.reload(); //change with reset
  188. }
  189. console.log(players, nextBracket)
  190. players = nextBracket;
  191. nextBracket = [];
  192. }
  193.  
  194.  
  195. shuffle(players);
  196. player1 = players[0];
  197. player2 = players[1];
  198. var msg = "1." + player1 + " ||||| 2." + player2;
  199. $('#currentPlayers').text(msg);
  200. });
  201.  
  202. function fallbackCopyTextToClipboard(text) {
  203. var textArea = document.createElement("textarea");
  204. textArea.value = text;
  205. document.body.appendChild(textArea);
  206. textArea.focus();
  207. textArea.select();
  208.  
  209. try {
  210. var successful = document.execCommand('copy');
  211. var msg = successful ? 'successful' : 'unsuccessful';
  212. console.log('Fallback: Copying text command was ' + msg);
  213. } catch (err) {
  214. console.error('Fallback: Oops, unable to copy', err);
  215. }
  216.  
  217. document.body.removeChild(textArea);
  218. }
  219.  
  220. function copyTextToClipboard(text) {
  221. if (!navigator.clipboard) {
  222. text = text
  223. fallbackCopyTextToClipboard(text);
  224. return;
  225. }
  226. navigator.clipboard.writeText(text).then(function () {
  227. console.log('Async: Copying to clipboard was successful!');
  228. }, function (err) {
  229. console.error('Async: Could not copy text: ', err);
  230. });
  231. }
  232.  
  233. function getBaseLog(x, y) {
  234. return Math.log(y) / Math.log(x);
  235. }
  236. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement