Advertisement
Guest User

Untitled

a guest
Sep 25th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.57 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 addToTotal(value) {
  12. getElement("total").innerHTML = (this.total += value);
  13. }
  14. function updateTotal() {
  15. let e = getElement("total");
  16. e.value = total;
  17. }
  18.  
  19. function roll() {
  20. if(rolls < 3){
  21. for(let i = 0; i<5; i++){
  22. if(hold[i] === false ){//fjernt eller med 0 rolls
  23. dices[i].value = Math.floor(Math.random()*6)+1;
  24. }
  25. }
  26. rolls++;
  27. getElement("turnNr").innerHTML = rolls;
  28. }
  29. if(rolls === 3){
  30. updateCells();
  31. }
  32. }
  33.  
  34. function rollReset() {
  35. rolls = 0;
  36. for(let i =0;i<5;i++){
  37. dices[i].value = "-";
  38. dices[i].className = 'Dice';
  39. hold[i] = false;//added at den ikke er holdt i array mere
  40. }
  41. }
  42.  
  43. function cellScore(name, value) {
  44. getElement(name).innerHTML = value;
  45. rollReset();
  46. }
  47.  
  48. function sumDice(){
  49. let sum = 0;
  50. for(let i of dices) {
  51. sum += Number(i.innerHTML);
  52. }
  53. }
  54.  
  55. function isClicked(event){
  56. let id = event.target.id;
  57. let e = event.target;
  58. if (e.className === 'Dice'){
  59. getElement(""+id).className = 'DiceHold';
  60. hold[id] = true;
  61. } else {
  62. getElement(""+id).className = 'Dice';
  63. hold[id] = false;
  64. }
  65. }
  66.  
  67. function updateCells() {
  68. let e = getElement("3kind");
  69. let temp = "";
  70.  
  71. for (let i = 1; i < 7; i++) {
  72. let temp = ("" + i) + "s";
  73. e = getElement(temp + "");
  74. if (e.disabled === false) {
  75. temp = "" + ens(e.id);
  76. e.value = temp;
  77. }
  78. }
  79. e = getElement("3kind");
  80. if (e.disabled === false) {
  81. temp = "" + threeOfAKind();
  82. e.value = temp;
  83. }
  84. e = getElement("4kind");
  85. if (e.disabled === false) {
  86. temp = "" + fourOfAKind();
  87. e.value = temp;
  88. }
  89. e = getElement("small");
  90. if (e.disabled === false) {
  91. temp = "" + smallStraight();
  92. e.value = temp;
  93. }
  94. e = getElement("large");
  95. if (e.disabled === false) {
  96. temp = "" + bigStraight();
  97. e.value = temp;
  98. }
  99. e = getElement("yathzy");
  100. if (e.disabled === false) {
  101. temp = "" + yatzy();
  102. e.value = temp;
  103. }
  104. e = getElement("1pair");
  105. if (e.disabled === false) {
  106. temp = "" + onePair();
  107. e.value = temp;
  108. }
  109. e = getElement("2pair");
  110. if (e.disabled === false) {
  111. temp = "" + twoPair();
  112. e.value = temp;
  113. }
  114. e = getElement("chance");
  115. if (e.disabled === false) {
  116. temp = "" + chance();
  117. e.value = temp;
  118. }
  119. updateTotal();
  120. }
  121. // ************** Top Grid **************************
  122. getElement("roll").onclick = roll; // Roll
  123.  
  124. getElement("0").onclick = isClicked; //Dice 1
  125. getElement("1").onclick = isClicked; //Dice 2
  126. getElement("2").onclick = isClicked; //Dice 3
  127. getElement("3").onclick = isClicked; //Dice 4
  128. getElement("4").onclick = isClicked; //Dice 5
  129.  
  130. // Hjælpe metode
  131. function occurrence(value){
  132. let count = 0;
  133. let array = dices;
  134. for(let i of array){
  135. if(i.value === value){
  136. count++;
  137. }
  138. }
  139. return count;
  140. }
  141.  
  142. function onePair() {
  143. let e = getElement("1pair");
  144. let higestValue = 0;
  145. let foundPair = false;
  146. for(let i of dices) {
  147. let value = i.innerHTML;
  148. let check = occurrence(value);
  149. if(check == 2){
  150. foundPair = true;
  151. let temp = value * 2;
  152. if(temp > higestValue){
  153. higestValue = temp;
  154. }
  155. }
  156. }
  157. if(foundPair === true){
  158. return higestValue;
  159. } else {
  160. return 0;
  161. }
  162. }
  163.  
  164.  
  165. function onePairScore(event) {
  166. let e = event.target;
  167. let n = onePair();
  168. cellScore("1pair", n);
  169. e.disabled = true;
  170. addToTotal(n);
  171. }
  172. //lavet two pair
  173. function twoPair() {
  174. let e = getElement("2pair");
  175. let returntal = 0;
  176. let foundPair = 0;
  177. for(let i of dices) {
  178. let value = Number(i.innerHTML);
  179. let check = occurrence(value);
  180. if(check == 2){
  181. foundPair++;
  182. returntal = value= value * 2;
  183.  
  184. }
  185. }
  186. if(foundPair === 2){
  187. return returantal;
  188. } else {
  189. return 0;
  190. }
  191. }
  192.  
  193. //og two pair score
  194. function twoPairScore(event) {
  195. let e = event.target;
  196. let n = twoPair();
  197. cellScore("2pair", n);
  198. e.disabled = true;
  199. addToTotal(n);
  200. }
  201.  
  202.  
  203.  
  204. function threeOfAKind() {
  205. for(let i of dices) {
  206. let value = i.value;
  207. let temp = occurrence(value);
  208. if (temp > 2) {
  209. let result = Number(value) * 3;
  210. return result;
  211. } else {
  212. return 0;
  213. }
  214. }
  215. }
  216.  
  217. function fourOfAKind() {
  218. for(let i of dices) {
  219. let value = i.value;
  220. let temp = occurrence(value);
  221. if (temp > 3) {
  222. let result = Number(value) * 4;
  223. return result;
  224. } else {
  225. return 0;
  226. }
  227. }
  228. }
  229.  
  230. function kindScore(event) {
  231. let e = event.target;
  232. let id = e.id;
  233. let toReturn = 0;
  234. if(id === "3kind"){
  235. toReturn = threeOfAKind();
  236. cellScore("3kind", toReturn);
  237. e.disabled = true;
  238. addToTotal(toReturn);
  239. } else if (id === "4kind") {
  240. toReturn = fourOfAKind();
  241. cellScore("4kind", toReturn);
  242. e.disabled = true;
  243. addToTotal(toReturn);
  244. }
  245. }
  246.  
  247. function fullHouse(event) {
  248. let e = event.target;
  249. let id = e.id;
  250. }
  251.  
  252. function smallStraight(){
  253. if(occurrence(1)===1 && occurrence(2)===1 &&
  254. occurrence(3)===1 && occurrence(4)===1 &&
  255. occurrence(5)===1) {
  256. return 15 + "";
  257. } else {
  258. return 0+"";
  259. }
  260. }
  261.  
  262. function smallStraightScore(event){
  263. let e = event.target;
  264. let n = smallStraight();
  265. cellScore(e.id+"", n);
  266. e.disabled = true;
  267. addToTotal(n);
  268. }
  269.  
  270. function bigStraight(){
  271. if(occurrence(2)===1 && occurrence(3)===1 &&
  272. occurrence(4)===1 && occurrence(5)===1 &&
  273. occurrence(6)===1) {
  274. return 20 + "";
  275. } else {
  276. return 0 +"";
  277. }
  278. }
  279.  
  280. function bigStraightScore(event){
  281. let e = event.target;
  282. let n = bigStraight();
  283. cellScore(e.id+"", n);
  284. e.disabled = true;
  285. addToTotal(n);
  286. }
  287.  
  288. function sumScore(value){
  289. sum += value;
  290. cellScore("sum", sum);
  291. }
  292.  
  293. function bonus() {
  294. if(sum >= 63){
  295. cellScore('bonus', 50);
  296. }
  297. }
  298.  
  299. function chance() {
  300. let temp = 0;
  301. for(let i =0; i<5; i++){
  302. temp += Number(dices[i].value);
  303. }
  304. return temp;
  305. }
  306.  
  307. function chanceScore(event){
  308. let e = event.target;
  309. let n = chance();
  310. cellScore(e.id+"", n);
  311. e.disabled = true;
  312. addToTotal(n);
  313. }
  314.  
  315. // ****
  316. function ens(id){
  317. let value = id.substr(0,1);
  318. let temp = value * Number(occurrence(value));
  319. return temp;
  320. }
  321.  
  322. function ensScore(event) {
  323. let e = event.target;
  324. let id = e.id;
  325. let result = ens(id);
  326. cellScore(id, result);
  327. e.disabled = true;
  328. addToTotal(result);
  329. bonus();
  330. }
  331.  
  332. // ****
  333.  
  334. function yatzy() {
  335. let found = false;
  336. for(let i =0;i<5;i++){
  337. if(occurrence(i) === 5){
  338. found = true;
  339. }
  340. } if(found){
  341. return 50;
  342. } else {
  343. return 0;
  344. }
  345. }
  346.  
  347. function yatzyScore(event){
  348. let e = event.target;
  349. let n = yatzy();
  350. cellScore(e.id+"", n);
  351. e.disabled = true;
  352. addToTotal(n);
  353. }
  354.  
  355. //Onclick
  356. // ************** Bot Grid **************************
  357. getElement("1s").onclick = ensScore; //ens 1
  358. getElement("2s").onclick = ensScore; //ens 2
  359. getElement("3s").onclick = ensScore; //ens 3
  360. getElement("4s").onclick = ensScore; //ens 4
  361. getElement("5s").onclick = ensScore; //ens 5
  362. getElement("6s").onclick = ensScore; //ens 6
  363.  
  364. getElement("1pair").onclick = onePairScore; // one pair
  365. getElement("2pair").onclick = twoPairScore; //two pair
  366. getElement("chance").onclick = chanceScore; //dice 5
  367. getElement("3kind").onclick = kindScore; // Three of a kind
  368. getElement("4kind").onclick = kindScore; // Four of a kind
  369. getElement("fullHouse").onclick = fullHouse; // Full House
  370. getElement("small").onclick = smallStraightScore; // smallStraight
  371. getElement("large").onclick = bigStraightScore; // largeStraight
  372. getElement("fullHouse").onclick = fullHouse; //full House
  373. getElement("yathzy").onclick = yatzyScore;//full House
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement