Advertisement
Guest User

Untitled

a guest
Sep 24th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.39 KB | None | 0 0
  1. let hold = [false, false, false, false, false];
  2. let dices = [getElement("0"), getElement("1"), getElement("2"), getElement("3"), getElement("4")];
  3. let rolls = 0;
  4. let total = 0;
  5. let sum = 0;
  6.  
  7. function getElement(id) {
  8. return document.getElementById(id);
  9. }
  10.  
  11. function roll() {
  12. if(rolls < 3){
  13. for(let i = 0; i<5; i++){
  14. if(hold[i] === false || rolls === 0){
  15. dices[i].value = Math.floor(Math.random()*6)+1;
  16. }
  17. }
  18. rolls++;
  19. //udater alle udregninger
  20. }
  21. getElement("turnNr").innerHTML = rolls;
  22. }
  23.  
  24. function rollReset() {
  25. rolls = 0;
  26. for(let i of dices){
  27. i.value = "-";
  28. }
  29. }
  30.  
  31. function disable(name) {
  32. let e = getElement(name);
  33. e.disable();
  34. }
  35.  
  36. function cellScore(name, value) {
  37. getElement(name).innerHTML = value;
  38. rollReset();
  39. }
  40.  
  41. function sumDice(){
  42. let sum = 0;
  43. for(let i of dices) {
  44. sum += Number(i.innerHTML);
  45. }
  46. }
  47. function isheld(event){
  48. let id =""+ Number(event.target.id);
  49. let e = event.target;
  50. let index = Number(id);
  51. if(e.className === 'Dice'){
  52. getElement(""+id).className = "DiceHold"
  53. hold[id] = true;
  54. }else{
  55. getElement(""+id).className = "Dice"
  56. hold[id] = false;
  57. }
  58. }
  59. // anden js?
  60. function kindScore(value , KindVal){
  61. let numersOfAKind =0;
  62. for(let i = 0;i<5;i++){
  63. if(Number(dices[i].innerHTML ===value)){
  64. numersOfAKind++;
  65. }
  66. }if(numersOfAKind>= KindVal){
  67. return sumDice();
  68. }else{
  69. return undefined;
  70. }
  71. }
  72. function Kind(KindVal){
  73. function f2() {
  74. let score = 0;
  75. for(let i =0;i<7;i++){
  76. score = kindScore(i,KindVal);
  77. if(score){
  78. if(KindVal ===3){
  79. cellScore('3kind',score)
  80. }else{
  81. cellScore('4kind',score)
  82. }
  83. }
  84. }
  85. }return f2;
  86. }
  87. function fullHouse(){
  88. let ThreeOfAKindFound =0;
  89. let TwoOfAKindFound =0;
  90. for(let i = 0 ;i<7;i++){
  91. if(kindScore(i,3)){
  92. ThreeOfAKindFound = i;
  93. }
  94. }
  95. for(let i = 0 ;i<7;i++){
  96. if(ThreeOfAKindFound !==1 && kindScore(i,2)){
  97. TwoOfAKindFound = i;
  98. }
  99. }
  100. if(ThreeOfAKindFound && TwoOfAKindFound){
  101. cellScore("fullHouse",25)
  102. }
  103. }
  104. function occurrence(value){
  105. let count = 0;
  106. let array = dices;
  107. for(let i of array){
  108. if(i.innerHTML === value){
  109. count++;
  110. }
  111. }
  112. return count;
  113. }
  114. function smallStraight(){
  115. if(occurrence(1)===1 &&
  116. occurrence(2)===1 &&
  117. occurrence(3)===1 &&
  118. occurrence(4)===1 &&
  119. occurrence(5)===1){
  120. cellScore("small",15)
  121. disable(getElement('small'));
  122. }
  123. }
  124. function bigStraight(){
  125. if(occurrence(2)===1 &&
  126. occurrence(3)===1 &&
  127. occurrence(4)===1 &&
  128. occurrence(5)===1 &&
  129. occurrence(6)===1){
  130. cellScore("large",20)
  131. disable(getElement('large'));
  132. }
  133. }
  134. function Sum(value){
  135. sum += value;
  136. cellScore("sum",sum)
  137. }
  138. function bonus() {
  139. if(sum >= 63){
  140. cellScore('bonus', 50)
  141. }
  142.  
  143. }
  144. function Chance() {
  145. let temp = 0;
  146. for(let i =0;i<5;i++){
  147. temp += dices[i].innerHTML;
  148. }
  149. cellScore('chance',temp);
  150. disable(getElement('chance'));
  151.  
  152. }
  153. function ens(event){
  154. let id = event.target.id;
  155. let value = Number(id.substr(0,1))
  156. let temp = 0;
  157. for(let i = 0;i<5;i++){
  158. if(dices[i].innerHTML ===value){
  159. temp += value;
  160. }
  161. }
  162. if(id ==='1s'){
  163. cellScore("1s",temp);
  164. disable(getElement('1s'));
  165. }else if(id ==='2s'){
  166. cellScore("2s",temp);
  167. disable(getElement('2s'));
  168. }else if(id ==='3s'){
  169. cellScore("3s",temp);
  170. disable(getElement('3s'));
  171. }else if(id ==='4s'){
  172. cellScore("4s",temp);
  173. disable(getElement('4s'));
  174. }else if(id ==='5s'){
  175. cellScore("5s",temp);
  176. disable(getElement('5s'));}
  177. else if(id ==='6s'){
  178. cellScore("6s",temp);
  179. disable(getElement('6s'));
  180. }
  181. Sum(temp)
  182. bonus()
  183. }
  184. function Yatzy(){
  185. for(let i =0;i<5;i++){
  186. if(occurrence(i)===5){
  187. cellScore("yathzy",50);
  188. disable(getElement('yathzy'));
  189. }
  190. }
  191. }
  192.  
  193. //End of Dice functions
  194.  
  195. //onclicks
  196. getElement("roll").onclick = roll;// roller mega godt
  197.  
  198. getElement("0").onclick = isheld; //dice 1
  199. getElement("1").onclick = isheld; //dice 2
  200. getElement("2").onclick = isheld; //dice 3
  201. getElement("3").onclick = isheld; //dice 4
  202. getElement("4").onclick = isheld; //dice 5
  203.  
  204. getElement("1s").onclick = ens; //ens 1
  205. getElement("2s").onclick = ens; //ens 2
  206. getElement("3s").onclick = ens; //ens 3
  207. getElement("4s").onclick = ens; //ens 4
  208. getElement("5s").onclick = ens; //ens 5
  209. getElement("6s").onclick = ens; //ens 6
  210.  
  211. getElement("chance").onclick = Chance; //dice 5
  212.  
  213.  
  214. getElement("3kind").onclick = Kind(3); // 3 of a kind
  215. getElement("4kind").onclick = Kind(4); // 4 of a kind
  216.  
  217. getElement("small").onclick = smallStraight; // smallStraight
  218. getElement("large").onclick = bigStraight; // largeStraight
  219.  
  220. getElement("fullHouse").onclick = fullHouse; //full House
  221.  
  222. // husk at returne 0??
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement