Advertisement
Guest User

r/programmingprompts - "big six"

a guest
Nov 16th, 2014
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.96 KB | None | 0 0
  1. /****Javascript*****/
  2.  
  3. function Die(sides) {
  4. if (sides == undefined) {
  5. this.sides = 6;
  6. } else {
  7. this.sides = sides;
  8. }
  9. }
  10.  
  11. Die.prototype.roll = function() {
  12. if (this.held === 1) {
  13. return this.latestRoll;
  14. } else {
  15. this.latestRoll = Math.floor((Math.random() * this.sides) + 1);
  16. return this.latestRoll;
  17. }
  18. };
  19.  
  20. Die.prototype.toggleHold = function() {
  21. if (this.held === 1) {
  22. this.held = 0;
  23. } else {
  24. this.held = 1;
  25. }
  26. return this.held;
  27. };
  28.  
  29. var dicebag = {
  30. dice: [], //array with all dice ever
  31.  
  32. addDie: function(sides) { //adds die to end
  33. this.dice.push(new Die(sides));
  34. return this.dice;
  35. },
  36.  
  37. removeDie: function(index) { //removes die at index
  38. this.dice.pop(this.dice[index]);
  39. return this.dice;
  40. },
  41.  
  42. rollAll: function() { //rolls all dice
  43. var result = [];
  44. for (var i = 0; i < this.dice.length; i++) {
  45. result.push(this.dice[i].roll());
  46. }
  47. this.latestResult = result;
  48. return result;
  49. },
  50. sumLastRes: function() {
  51. var sum = 0;
  52. for (var i = 0; i < this.latestResult.length; i++) {
  53. sum += this.latestResult[i];
  54. }
  55. return sum;
  56. },
  57.  
  58. };
  59.  
  60. /**********************************************************************
  61. ***********************************************************************
  62. *****************BIG SIX GAME******************************************
  63. ***********************************************************************
  64. **********************************************************************/
  65.  
  66. var players = prompt("How many players?");
  67.  
  68. function Player(tokens) {
  69. this.tokens = tokens;
  70. this.die_ = new Die(6);
  71. }
  72.  
  73. var allPlayers = [];
  74. var cells = {
  75. one: 0,
  76. two: 0,
  77. three: 0,
  78. four: 0,
  79. five: 0
  80. };
  81.  
  82. var turn = 1, round = 1;
  83.  
  84. for (var i = 0; i < players; i++) {
  85. allPlayers.push(new Player(5));
  86. }
  87. console.log(allPlayers);
  88.  
  89. var speed = prompt("How fast would you like the game to go? (give a number in miliseconds for each turn. smaller number = faster game)");
  90.  
  91. var interval = setInterval(function() {
  92. $("#log").append("Player " + turn + " is rolling...<br>")
  93. var playerRoll = allPlayers[turn - 1].die_.roll();
  94. if (playerRoll === 6) {
  95. allPlayers[turn - 1].tokens--; //6 removes token from play
  96. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  97. } else if (playerRoll === 5) {
  98. if (cells.five === 0) {
  99. cells.five++;
  100. allPlayers[turn - 1].tokens--;
  101. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  102. } else if (cells.five === 1) {
  103. cells.five--;
  104. allPlayers[turn - 1].tokens++;
  105. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  106. }
  107. } else if (playerRoll === 4) {
  108. if (cells.four === 0) {
  109. cells.four++;
  110. allPlayers[turn - 1].tokens--;
  111. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  112. } else if (cells.four === 1) {
  113. cells.four--;
  114. allPlayers[turn - 1].tokens++;
  115. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  116. }
  117. } else if (playerRoll === 3) {
  118. if (cells.three === 0) {
  119. cells.three++;
  120. allPlayers[turn - 1].tokens--;
  121. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  122. } else if (cells.three === 1) {
  123. cells.three--;
  124. allPlayers[turn - 1].tokens++;
  125. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  126. }
  127. } else if (playerRoll === 2) {
  128. if (cells.two === 0) {
  129. cells.two++;
  130. allPlayers[turn - 1].tokens--;
  131. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  132. } else if (cells.two === 1) {
  133. cells.two--;
  134. allPlayers[turn - 1].tokens++;
  135. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  136. }
  137. } else if (playerRoll === 1) {
  138. if (cells.one === 0) {
  139. cells.one++
  140. allPlayers[turn - 1].tokens--;
  141. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  142. } else if (cells.one === 1) {
  143. cells.one--;
  144. allPlayers[turn - 1].tokens++;
  145. $("#log").append("Player " + turn + " rolled a " + playerRoll + " and has " + allPlayers[turn - 1].tokens + " tokens remaining. <br>");
  146. }
  147. }
  148. //update cells
  149. $("#cell_1_tokens").html(cells.one + " tokens");
  150. $("#cell_2_tokens").html(cells.two + " tokens");
  151. $("#cell_3_tokens").html(cells.three + " tokens");
  152. $("#cell_4_tokens").html(cells.four + " tokens");
  153. $("#cell_5_tokens").html(cells.five + " tokens");
  154.  
  155. if (allPlayers[turn - 1].tokens === 0) {
  156. $("#log").prepend("<h3>Player " + turn + " has won!<h3><br>");
  157. clearInterval(interval);
  158. }
  159.  
  160. if (turn === allPlayers.length) {
  161. turn = 1;
  162. } else {
  163. turn++;
  164. }
  165. round++;
  166. }, speed);
  167. /**************
  168. Accompanying HTML
  169. *****************/
  170. <!doctype HTML>
  171. <html>
  172. <head>
  173. <style>
  174. table {
  175. width: 100%;
  176. height: 200px;
  177. text-align: center;
  178. font-size: 20px;
  179. font-weight: bold;
  180. }
  181. .six {
  182. background-color: black;
  183. }
  184. </style>
  185. </head>
  186. <body>
  187.  
  188. <table border="2px dotted black">
  189. <tr>
  190. <td id="cell_1">
  191. <h4>1</h4>
  192. <p id="cell_1_tokens">0 tokens</p>
  193. </td>
  194.  
  195. <td id="cell_2">
  196. <h4>2</h4>
  197. <p id="cell_2_tokens">0 tokens</p>
  198. </td>
  199.  
  200. <td id="cell_3">
  201. <h4>3</h4>
  202. <p id="cell_3_tokens">0 tokens</p>
  203. </td>
  204.  
  205. <td id="cell_4">
  206. <h4>4</h4>
  207. <p id="cell_4_tokens">0 tokens</p>
  208. </td>
  209.  
  210. <td id="cell_5">
  211. <h4>5</h4>
  212. <p id="cell_5_tokens">0 tokens</p>
  213. </td>
  214.  
  215. <td id="cell_6">
  216. <h4>6</h4>
  217. <p id="cell_6_tokens">0 tokens</p>
  218. </td>
  219. </tr>
  220. </table>
  221.  
  222. <p id="log"></p>
  223.  
  224. <script type="text/javascript" src="jquery-1.11.1.min (1).js"></script>
  225. <script type="text/javascript" src="bigsix.js"></script>
  226. </body>
  227. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement