Advertisement
Fhernd

app.js

Sep 26th, 2017
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var alternarColor = true;
  2. var continuar;
  3. var puntaje;
  4. var idRealizarMovimientosInterval;
  5. var movimientos;
  6.  
  7. $(function () {
  8.     setInterval(function () {
  9.         alternarColor ? $(".main-titulo").css('color', 'white') : $(".main-titulo").css('color', 'yellow');
  10.         alternarColor = !alternarColor;
  11.     }, 1000);
  12.  
  13.     $('.col-1').droppable({
  14.         accept: ".col-2"
  15.     });
  16.     $('.col-2').droppable({
  17.         accept: ".col-1, .col-3"
  18.     });
  19.     $('.col-3').droppable({
  20.         accept: ".col-2, .col-4"
  21.     });
  22.     $('.col-4').droppable({
  23.         accept: ".col-3, .col-5"
  24.     });
  25.     $('.col-5').droppable({
  26.         accept: ".col-4, .col-6"
  27.     });
  28.     $('.col-6').droppable({
  29.         accept: ".col-5, .col-7",
  30.         drop: function(event, ui){
  31.             console.log($(this).attr("src"));
  32.         }
  33.     });
  34.     $('.col-7').droppable({
  35.         accept: ".col-6"
  36.     });
  37.  
  38.     $('.btn-reinicio').click(function () {
  39.         if ($('.btn-reinicio').text() === 'Iniciar') {
  40.             if ($(".panel-tablero").css('display') === 'none') {
  41.                 $(".panel-tablero").css('display', 'flex');
  42.                 $(".panel-tablero").css('width', '70%');
  43.                 $(".panel-tablero").css('height', '700px');
  44.                 $(".panel-score").css('display', 'flex');
  45.                 $(".panel-score").css('width', '25%');
  46.                 $(".panel-score").css('height', '700px');
  47.                 $(".time").css('display', 'block');
  48.                 $(".time").css('width', '100%');
  49.                 $(".time").css('height', '23%');
  50.                 $(".time").css('opacity', '1.0');
  51.             }
  52.  
  53.             $('.main-titulo-juego-terminado').css("display", "none");
  54.  
  55.             removerElementos();
  56.             rellenarTablero();
  57.             puntaje = 0;
  58.             movimientos = 0;
  59.             iniciarJuego();
  60.             $(this).text('Reiniciar');
  61.         }
  62.         else {
  63.             clearInterval(idRealizarMovimientosInterval);
  64.             $('#countdowntimer').countdowntimer({
  65.                 minutes: 0,
  66.                 seconds: 0
  67.             });
  68.             $(this).text('Iniciar');
  69.             $('#score-text').text('0');
  70.         }
  71.     });
  72. })
  73. ;
  74.  
  75. function removerElementos() {
  76.     for (var col = 1; col <= 7; ++col) {
  77.         $('.col-' + col).empty();
  78.     }
  79. }
  80.  
  81. function rellenarTablero() {
  82.     for (var col = 1; col <= 7; ++col) {
  83.         for (var fila = 1; fila <= 7; ++fila) {
  84.             var nuevaImagen = $('<img>',
  85.                 {"src": "image/" + (1 + Math.floor(Math.random() * 4)) + ".png", "class": "elemento"}
  86.             );
  87.             $(nuevaImagen).draggable();
  88.             $('.col-' + col).append(nuevaImagen);
  89.         }
  90.     }
  91. }
  92.  
  93. function iniciarJuego() {
  94.     continuar = true;
  95.  
  96.     $('#countdowntimer').countdowntimer({
  97.         minutes: 2,
  98.         seconds: 0,
  99.         timeUp: function () {
  100.             continuar = false;
  101.             clearInterval(realizarMovimientos());
  102.  
  103.             var anchoPanelTablero = $('.panel-tablero').css('width');
  104.  
  105.             $(".panel-tablero").animate({
  106.                 height: "0",
  107.                 width: "0"
  108.             }, 4100, function () {
  109.                 $(".panel-tablero").css('display', 'none');
  110.             });
  111.  
  112.             $('.panel-score').animate({
  113.                 width: anchoPanelTablero
  114.             }, 3000);
  115.  
  116.             $('.time').animate({
  117.                 opacity: 0.0
  118.             }, 2000);
  119.  
  120.             $('.btn-reinicio').text('Iniciar');
  121.  
  122.             $('.main-titulo-juego-terminado').css("display", "block")
  123.         }
  124.     });
  125.  
  126.     idRealizarMovimientosInterval = setInterval(realizarMovimientos, 1500);
  127. }
  128.  
  129. function actualiarNumeroMovimientos(){
  130.     movimientos += 1;
  131.  
  132.     $('#movimientos-text').text(movimientos);
  133. }
  134.  
  135. function realizarMovimientos() {
  136.     $(".elemento").draggable({
  137.         disabled:false,
  138.         containment:".panel-tablero",
  139.         revert:true,
  140.         revertDuration:500,
  141.         snap:".elemento",
  142.         snapMode:"inner",
  143.         snapTolerance:40,
  144.         stop: function(event, ui){
  145.             console.log($(event.target).parent());
  146.             console.log(ui);
  147.  
  148.             actualiarNumeroMovimientos();
  149.         }
  150.     });
  151.     var contador;
  152.     var nombreImagen;
  153.     var nombreImagenSgte;
  154.     var figurasMarcadas = inicializarFigurasMarcadas();
  155.     var huboCambios = false;
  156.  
  157.     for (var row = 0; row < 7; ++row) {
  158.         for (var col = 0; col < 7; ++col) {
  159.             if ((7 - col) > 2) {
  160.                 nombreImagen = $('.col-' + (col + 1)).children()[row];
  161.                 nombreImagen = $(nombreImagen).prop('src').substring($(nombreImagen).prop('src').length - 5);
  162.  
  163.                 contador = 1;
  164.  
  165.                 while ((7 - col) >= 3 && contador < (7 - col)) {
  166.                     nombreImagenSgte = $('.col-' + (col + contador + 1)).children()[row];
  167.                     nombreImagenSgte = $(nombreImagenSgte).prop('src').substring($(nombreImagenSgte).prop('src').length - 5);
  168.  
  169.                     if (nombreImagen !== nombreImagenSgte) {
  170.                         break;
  171.                     }
  172.  
  173.                     ++contador;
  174.                 }
  175.  
  176.                 if (contador >= 3) {
  177.                     huboCambios = true;
  178.                     for (var i = 0; i < contador; ++i) {
  179.                         figurasMarcadas[row][col + i] = true;
  180.                     }
  181.                 }
  182.             }
  183.  
  184.             if ((7 - row) > 2) {
  185.                 nombreImagen = $('.col-' + (col + 1)).children()[row];
  186.                 nombreImagen = $(nombreImagen).prop('src').substring($(nombreImagen).prop('src').length - 5);
  187.  
  188.                 contador = 1;
  189.  
  190.                 while ((7 - row) >= 3 && contador < (7 - row)) {
  191.                     nombreImagenSgte = $('.col-' + (col + 1)).children()[row + contador];
  192.                     nombreImagenSgte = $(nombreImagenSgte).prop('src').substring($(nombreImagenSgte).prop('src').length - 5);
  193.  
  194.                     if (nombreImagen !== nombreImagenSgte) {
  195.                         break;
  196.                     }
  197.  
  198.                     ++contador;
  199.                 }
  200.  
  201.                 if (contador >= 3) {
  202.                     huboCambios = true;
  203.                     for (var i = 0; i < contador; ++i) {
  204.                         figurasMarcadas[row + i][col] = true;
  205.                     }
  206.                 }
  207.             }
  208.         }
  209.     }
  210.  
  211.     if (huboCambios) {
  212.         actualizarTablero(figurasMarcadas);
  213.     } else {
  214.         clearInterval(idRealizarMovimientosInterval);
  215.     }
  216. }
  217.  
  218.  
  219. function inicializarFigurasMarcadas() {
  220.     var figurasMarcadas = [];
  221.  
  222.     for (var row = 0; row < 7; ++row) {
  223.         figurasMarcadas[row] = new Array(7);
  224.         for (var col = 0; col < 7; ++col) {
  225.             figurasMarcadas[row][col] = false;
  226.         }
  227.     }
  228.  
  229.     return figurasMarcadas;
  230. }
  231.  
  232. function actualizarTablero(figurasMarcadas) {
  233.     var puntaje = 0;
  234.     for (var col = 0; col < 7; ++col) {
  235.         for (var fila = 0; fila < 7; ++fila) {
  236.             if (figurasMarcadas[fila][col]) {
  237.                 $($('.col-' + (col + 1)).children()[fila]).addClass('remover');
  238.                 puntaje += 10;
  239.             }
  240.         }
  241.     }
  242.  
  243.     if ($('.remover').length > 0) {
  244.         $('.remover').fadeIn(400).fadeOut(400).fadeIn(400).fadeOut(300, function () {
  245.             $(this).remove();
  246.  
  247.             actualizarPuntaje(puntaje);
  248.             crearDulces();
  249.         });
  250.     }
  251. }
  252.  
  253. function crearDulces() {
  254.     for (var col = 0; col < 7; ++col) {
  255.         if ($('.col-' + (col + 1)).children().length < 7) {
  256.             var numeroDulces = 7 - $('.col-' + (col + 1)).children().length;
  257.  
  258.             for (var i = 1; i <= numeroDulces; ++i) {
  259.                 var nuevoDulce = $('<img>',
  260.                     {"src": "image/" + (1 + Math.floor(Math.random() * 4)) + ".png", "class": "elemento"});
  261.                 // $('.col-' + (col + 1)).prepend(nuevoDulce.delay(500).fadeOut("slow").fadeIn("slow"));
  262.                 $('.col-' + (col + 1)).prepend(nuevoDulce);
  263.             }
  264.         }
  265.     }
  266. }
  267.  
  268. function actualizarPuntaje(masPuntaje) {
  269.     puntaje += masPuntaje;
  270.  
  271.     $('#score-text').text(puntaje);
  272. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement