Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // global variable for the project
  2.  
  3. // default initial width and heigth for the target
  4. var TARGET_WIDTH = 40;
  5. var TARGET_HEIGHT = 40;
  6.  
  7. // chrono management
  8. // value of time in tenth of seconds
  9. var time = 0;
  10. // timer variable
  11. var chronoTimer = null;
  12.  
  13.  
  14. // YOUR NAME HERE
  15.  
  16. // YOUR CODE BELOW
  17.  
  18. (function()
  19. {
  20.     var terrain, start_time, interval_id
  21.  
  22.     function numero_aleatoir( max )
  23.     {
  24.         return Math.floor( Math.random() * max )
  25.     }
  26.  
  27.     function ajouter_cible()
  28.     {
  29.         var cible = document.createElement('span')
  30.         cible.className = 'target on'
  31.         cible.addEventListener('click', supprimer_cible)
  32.  
  33.         terrain.appendChild( cible )
  34.  
  35.         // style
  36.         var top = Math.min( terrain.scrollHeight, numero_aleatoir( terrain.scrollHeight - cible.scrollHeight ) )
  37.         var left = Math.min( terrain.scrollWidth, numero_aleatoir( terrain.scrollWidth - cible.scrollWidth ) )
  38.  
  39.         cible.style.top = top + 'px'
  40.         cible.style.left = left + 'px'
  41.  
  42.         calculer_nombre_cible_restants()
  43.     }
  44.  
  45.     function supprimer_cible()
  46.     {
  47.         if ( ! this.classList.contains('on') )
  48.             return
  49.  
  50.         this.classList.remove('on')
  51.         this.style.zIndex = -1
  52.  
  53.         if ( calculer_nombre_cible_restants() === 0 ) {
  54.             if ( start_time > 0 ) {
  55.                 arreter_le_jeu()
  56.  
  57.                 setTimeout(alert, 1000, 'Gagne en ' + document.getElementById('chrono').innerText)
  58.             }
  59.         }
  60.     }
  61.  
  62.     function calculer_nombre_cible_restants()
  63.     {
  64.         var nombre = document.querySelectorAll( '#terrain .target.on' ).length
  65.  
  66.         document.getElementById('remaining').innerText = nombre
  67.  
  68.         return nombre
  69.     }
  70.  
  71.     function ajouter_des_cible( nombre )
  72.     {
  73.         for ( var i=0; i<nombre; i++ ) {
  74.             ajouter_cible( terrain )
  75.         }
  76.     }
  77.  
  78.     function demarrer_jeu()
  79.     {
  80.         // fresh start
  81.         terrain.innerHTML = ''
  82.  
  83.         var nbtargets = parseInt( document.getElementById('nbtargets').value )
  84.  
  85.         if ( nbtargets <= 0 ) {
  86.             return alert( 'Veuillez sisair un nombre plus que zero' )
  87.         }
  88.  
  89.         ajouter_des_cible( nbtargets )
  90.  
  91.         // arret
  92.         if ( start_time > 0 )
  93.             arreter_le_jeu()
  94.  
  95.         // start time
  96.         start_time = Date.now()
  97.  
  98.         var chrono = document.getElementById('chrono')
  99.  
  100.         interval_id = setInterval(function()
  101.         {
  102.             var difference = Date.now() - start_time
  103.  
  104.             var ms = Math.floor( (difference % 1000) / 100 )
  105.             var seconds = Math.floor( difference/1000 ) % 60
  106.             var minutes = Math.floor( difference/1000 /60 )
  107.  
  108.             if ( seconds < 10 ) {
  109.                 seconds = '0' + seconds
  110.             }
  111.  
  112.             chrono.innerHTML = '<span id="minutes">' + minutes + '</span>\'<span id="seconds">' + seconds + '</span>"<span id="tenth">'  + ms + '</span>'
  113.         }, 100)
  114.     }
  115.  
  116.     function arreter_le_jeu()
  117.     {
  118.         if ( interval_id > 0 ) {
  119.             clearInterval( interval_id )
  120.         }
  121.  
  122.         start_time = null
  123.     }
  124.  
  125.     document.addEventListener('DOMContentLoaded', function()
  126.     {
  127.         terrain = document.getElementById('terrain')
  128.  
  129.         // Une cible
  130.         document.getElementById('create').addEventListener('click', function()
  131.         {
  132.             ajouter_cible( 1 )
  133.         })
  134.  
  135.         document.getElementById('start').addEventListener('click', demarrer_jeu)
  136.     })
  137.  
  138. })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement