Advertisement
Guest User

Untitled

a guest
Jan 26th, 2015
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. var tilesImages = [
  3.     "./img/1.png", "./img/2.png", "./img/3.png", "./img/4.png", "./img/5.png", "./img/6.png", "./img/7.png", "./img/8.png", "./img/9.png", "./img/10.png",
  4.     "./img/11.png", "./img/12.png", "./img/13.png", "./img/14.png", "./img/15.png", "./img/16.png", "./img/17.png", "./img/18.png", "./img/19.png", "./img/20.png"
  5. ];
  6.  
  7. //var difficulty = ""; // 1, 2 ,
  8. var numberOfTiles = 20;
  9. var tilesInRow = 5;
  10. var tilesIndexArray = []; // numerek obrazka
  11. var clickedTilesArray = []; // 2 element
  12. var movesCount = 0;
  13. var removedCoupleTiles = 0;
  14. var flipAnimationEnds = true;
  15.  
  16. $(document).ready(function() {
  17.     startNewGame();
  18.     $('.tile').click(function() {
  19.         $(this).flip({
  20.             direction: 'rl',
  21.             speed: 300
  22.         });
  23.     });
  24. });
  25.  
  26. function resetGameProperties() {
  27.     tilesIndexArray = [];
  28.     clickedTilesArray = [];
  29.     removedCoupleTiles = 0;
  30.     movesCount = 0;
  31.     flipAnimationEnds = true;
  32. }
  33.  
  34. function generateIndexesForTiles() {
  35.     for (var i=0; i < numberOfTiles; i++) {
  36.         tilesIndexArray.push( Math.floor(i/2) ); // wrzucamy pary indkesów kafli 0,0,1,1..
  37.     }
  38. }
  39.  
  40. function populateGameField() {
  41.     var gameField = $('#gameField');
  42.     for (var i=0; i < numberOfTiles; i++) {
  43.         var tile = $('<div class="tile"></div>'); // podpiac id...
  44.         tile.data('tileIndex', i);
  45.         tile.data('tileType', tilesIndexArray[i]);
  46.         tile.bind('click', function() {
  47.             tileClicked( $(this) )
  48.         });
  49.         gameField.append(tile);
  50.         if ( (i+1) % tilesInRow == 0) {
  51.             gameField.append('<br />');
  52.         }
  53.     }
  54. }
  55.  
  56. /* http://bost.ocks.org/mike/shuffle/ - Fisher–Yates Shuffle */
  57. function shuffle(array) {
  58.     var m = array.length, t, i;
  59.  
  60.     // While there remain elements to shuffle…
  61.     while (m) {
  62.  
  63.         // Pick a remaining element…
  64.         i = Math.floor(Math.random() * m--);
  65.  
  66.         // And swap it with the current element.
  67.         t = array[m];
  68.         array[m] = array[i];
  69.         array[i] = t;
  70.     }
  71.  
  72.     return array;
  73. }
  74.  
  75. function startNewGame() {
  76.  
  77.     //var gameField = $('#gameField').empty(); // czysci element i jego potomkow, tylko element - remove()
  78.  
  79.     resetGameProperties();
  80.     generateIndexesForTiles();
  81.     tilesIndexArray = shuffle(tilesIndexArray);
  82.     populateGameField();
  83.  
  84. }
  85.  
  86. function tileClicked(tile) {
  87.     if (flipAnimationEnds) {
  88.  
  89.         if (  !clickedTilesArray[0] || tile.data('tileIndex') !== clickedTilesArray[0].data('tileIndex') ) {
  90.  
  91.             clickedTilesArray.push(tile);
  92.             console.log('url(' + tilesImages[tile.data('tileType')] + ')');
  93.             tile.flip({
  94.                 direction: "lr",
  95.                 content:
  96.                     tile.css({
  97.                         'background' : 'url(' + tilesImages[tile.data('tileType')] + ')' + 'center center no-repeat'
  98.                     }),
  99.                 speed: 150
  100.             });
  101.  
  102.         }
  103.  
  104.         if (clickedTilesArray.length == 2) {
  105.  
  106.             flipAnimationEnds = false;
  107.             var equalTiles = clickedTilesArray[0].data('tileType') === clickedTilesArray[1].data('tileType');
  108.             if (equalTiles) {
  109.                
  110.             }
  111.  
  112.         }
  113.  
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement