Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var possibleCards = ["ciri.png", "geralt.png", "iorweth.png", "jaskier.png", "triss.png", "yen.png"];
  2. var cards = [];
  3. var card;
  4. var oneVisible = false;
  5. var turnCounter = 0;
  6. var lock = false;
  7. var pairsLeft;
  8. var visible_nr;
  9. var Highscore;
  10. var firstGame = true;
  11. var cardTab = [];
  12.  
  13.  
  14. function randomizeCards(cardsAmount) {
  15.     var is = 0;
  16.     card = Math.floor(Math.random() * (cardsAmount / 2));
  17.  
  18.     for (var j = 0; j < cards.length; j++)
  19.     {
  20.         if (possibleCards[card] == cards[j]) is++;
  21.     }
  22.  
  23.     if (is < 2)
  24.     {
  25.         cards.push(possibleCards[card]);
  26.     }
  27.     else randomizeCards(cardsAmount);
  28. }
  29.  
  30. function revealCard(nr)
  31. {
  32.     var opacityValue = $('#c'+nr).css('opacity');
  33.    
  34.     //alert('Opacity: '+opacityValue);
  35.    
  36.     if (opacityValue != 0 && lock == false)
  37.     {
  38.         lock = true;
  39.        
  40.         //alert(nr);
  41.  
  42.         var obraz = "url(img/" + cards[nr] + ")";
  43.        
  44.         $('#c'+nr).css('background-image', obraz);
  45.         $('#c'+nr).addClass('cardA');
  46.         $('#c'+nr).removeClass('card');
  47.        
  48.         if(oneVisible == false)
  49.         {
  50.             //first card
  51.            
  52.             oneVisible = true;
  53.             visible_nr = nr;
  54.             lock = false;
  55.         }
  56.         else
  57.         {
  58.             //second card
  59.            
  60.             if(cards[visible_nr] == cards[nr])
  61.             {
  62.                 //alert("para");
  63.                
  64.                 setTimeout(function() { hide2Cards(nr, visible_nr) }, 750);
  65.                
  66.             }
  67.             else
  68.             {
  69.                 //alert("pudło");
  70.                
  71.                 setTimeout(function() { restore2Cards(nr, visible_nr) }, 1000);
  72.             }
  73.            
  74.             turnCounter++;
  75.             $('.score').html('Turn counter: '+turnCounter);
  76.             oneVisible = false;
  77.         }
  78.        
  79.     }
  80.    
  81. }
  82.  
  83. function hide2Cards(nr1, nr2)
  84. {
  85.     $('#c'+nr1).css('opacity', '0');
  86.     $('#c'+nr2).css('opacity', '0');
  87.    
  88.     pairsLeft--;
  89.    
  90.     if(pairsLeft == 0)
  91.     {
  92.  
  93.         if(firstGame)
  94.         {
  95.             $('.board').html('<p><h1>You win!<br>Done in '+turnCounter+' turns</h1></p><p><button onclick="restoreBoard()">Again?</button>');
  96.            
  97.             Highscore = turnCounter;
  98.             firstGame = false;
  99.         }
  100.         else if (turnCounter < Highscore)
  101.             {
  102.                 $('.board').html('<p><h1>You win!<br>Done in '+turnCounter+' turns</h1></p><p><h1 id= "highscore">NEW HIGHSCORE!</h1></p><p><button onclick="restoreBoard()">Again?</button>');
  103.                
  104.                 Highscore = turnCounter;
  105.             }
  106.         else
  107.         {
  108.             $('.board').html('<p><h1>You win!<br>Done in '+turnCounter+' turns</h1></p><p class="hs"><h1 id= "highscore">Highscore: ' + Highscore + '</h1></p><p><button onclick="restoreBoard()">Again?</button>');
  109.         }
  110.    
  111.     }
  112.    
  113.     lock = false;
  114. }
  115.  
  116. function restore2Cards(nr1, nr2)
  117. {
  118.     $('#c'+nr1).css('background-image', 'url(img/karta.png)');
  119.     $('#c'+nr1).addClass('card');
  120.     $('#c'+nr1).removeClass('cardA');  
  121.  
  122.     $('#c'+nr2).css('background-image', 'url(img/karta.png)');
  123.     $('#c'+nr2).addClass('card');
  124.     $('#c'+nr2).removeClass('cardA');
  125.    
  126.     lock = false;
  127. }
  128.  
  129. function restoreBoard(cardsAmount)
  130. {
  131.     $('.board').html(''); //czyszczenie planszy
  132.     cardTab = []; //czyszczenie tablicy obiektów kart
  133.    
  134.     for (var i = 0; i < cardsAmount; i++)
  135.     {
  136.         $('.board').html($('.board').html() + '<div class="card" id="c' + i + '"></div> '); //dodawanie kart na planszę
  137.         cardTab.push(document.getElementById('c' + i )); //dodawanie obiektu karty do tablicy
  138.         cardTab[i].addEventListener("click", function() { revealCard(i); }); //nasłuchiwanie karty
  139.     }  
  140.    
  141.     $('.board').html($('.board').html() + '<div class="score">Turn counter: 0</div>'); //dodanie scorecounter
  142.  
  143.    
  144.     cards = [];
  145.    
  146.     for (var i = 0; i < cardsAmount; i++)
  147.     {
  148.         randomizeCards(cardsAmount);
  149.     }
  150.    
  151.     oneVisible = false;
  152.     turnCounter = 0;
  153.     lock = false;
  154.     pairsLeft = cardsAmount / 2;
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement