SanderCokart

game.js

Jul 17th, 2019
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //variables
  2. var numbers = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8];
  3. var lastKnownButtonId = undefined;
  4. var lastKnownButtonNumber = undefined;
  5. var wait = false;
  6. var matches = 0;
  7.  
  8. //elements
  9. var buttons = document.querySelectorAll("button");
  10.  
  11. //code
  12. shuffle(numbers);
  13. distributeNumbers();
  14.  
  15. for (i = 0; i < buttons.length; i++) {
  16.   buttons[i].addEventListener('click', function (e) {
  17.     var turnable = e.target.dataset.turnable;
  18.  
  19.     //first click
  20.     if (!wait && lastKnownButtonId == undefined && lastKnownButtonNumber == undefined && turnable == 'true') {
  21.       e.target.dataset.turnable = 'false';
  22.  
  23.       e.target.innerHTML = getgImage(event.target.dataset.number);
  24.       e.target.style.backgroundColor = 'orange';
  25.  
  26.       lastKnownButtonId = e.target.id;
  27.       lastKnownButtonNumber = e.target.dataset.number;
  28.     }
  29.  
  30.     //second click
  31.     else if (!wait && lastKnownButtonId != undefined && lastKnownButtonNumber != undefined && turnable == 'true' && e.target.id != lastKnownButtonId) {
  32.       e.target.dataset.turnable = 'false';
  33.  
  34.       e.target.innerHTML = getgImage(event.target.dataset.number);
  35.  
  36.       //match
  37.       if (e.target.dataset.number == lastKnownButtonNumber) {
  38.         e.target.style.backgroundColor = 'green';
  39.         document.getElementById(lastKnownButtonId).style.backgroundColor = 'green';
  40.  
  41.         lastKnownButtonId = undefined;
  42.         lastKnownButtonNumber = undefined;
  43.  
  44.         matches++;
  45.  
  46.         if (matches == 8) {
  47.           showWinScreen();
  48.         }
  49.  
  50.       }
  51.  
  52.       //no match
  53.       else {
  54.         document.getElementById(lastKnownButtonId).style.backgroundColor = 'red';
  55.         e.target.style.backgroundColor = 'red';
  56.         wait = true;
  57.  
  58.         setTimeout(() => {
  59.           e.target.dataset.turnable = 'true';
  60.           e.target.style.backgroundColor = 'white'
  61.           e.target.innerHTML = getgImage(0);
  62.  
  63.  
  64.           var tempLastClickedButton = document.getElementById(lastKnownButtonId);
  65.  
  66.           tempLastClickedButton.dataset.turnable = 'true';
  67.           tempLastClickedButton.style.backgroundColor = 'white';
  68.           tempLastClickedButton.innerHTML = getgImage(0);
  69.  
  70.           lastKnownButtonId = undefined;
  71.           lastKnownButtonNumber = undefined;
  72.           wait = false;
  73.         }, 1000);
  74.  
  75.  
  76.       }
  77.     }
  78.  
  79.   });
  80. }
  81.  
  82. // showWinScreen();
  83.  
  84.  
  85. //functions
  86. function reset() {
  87.   lastKnownButtonId = undefined;
  88.   lastKnownButtonNumber = undefined;
  89.   wait = false;
  90.   shuffle(numbers);
  91.   distributeNumbers();
  92.   matches = 0;
  93.  
  94.   for (let i = 0; i < buttons.length; i++) {
  95.     buttons[i].innerHTML = getgImage(0);
  96.     buttons[i].style.backgroundColor = 'white';
  97.  
  98.     document.querySelector('.win-container').style.display = 'none';
  99.  
  100.     document.getElementById("6").style.display = 'block';
  101.     document.getElementById("7").style.display = 'block';
  102.     document.getElementById("10").style.display = 'block';
  103.     document.getElementById("11").style.display = 'block';
  104.  
  105.   }
  106. }
  107.  
  108.  
  109. function showWinScreen() {
  110.   document.querySelector('.win-container').style.display = 'flex';
  111.  
  112.   document.getElementById("6").style.display = 'none';
  113.   document.getElementById("7").style.display = 'none';
  114.   document.getElementById("10").style.display = 'none';
  115.   document.getElementById("11").style.display = 'none';
  116.  
  117.  
  118. }
  119.  
  120. function getgImage(number) {
  121.   switch (number) {
  122.     case '1':
  123.       return '<img src="resources/card_1.jpg">';
  124.     case '2':
  125.       return '<img src="resources/card_2.jpg">';
  126.     case '3':
  127.       return '<img src="resources/card_3.jpg">';
  128.     case '4':
  129.       return '<img src="resources/card_4.jpg">';
  130.     case '5':
  131.       return '<img src="resources/card_5.jpg">';
  132.     case '6':
  133.       return '<img src="resources/card_6.jpg">';
  134.     case '7':
  135.       return '<img src="resources/card_7.jpg">';
  136.     case '8':
  137.       return '<img src="resources/card_8.jpg">';
  138.     default:
  139.       return '<img src="resources/card_back.jpg">';
  140.  
  141.   }
  142. }
  143.  
  144. function distributeNumbers() {
  145.   for (i = 0; i < buttons.length; i++) {
  146.     buttons[i].dataset.number = numbers[i];
  147.   }
  148. }
  149.  
  150. function shuffle(array) {
  151.   var j, x, i;
  152.   for (i = array.length - 1; i > 0; i--) {
  153.     j = Math.floor(Math.random() * (i + 1));
  154.     x = array[i];
  155.     array[i] = array[j];
  156.     array[j] = x;
  157.   }
  158.   return array;
  159. }
Add Comment
Please, Sign In to add comment