home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / internet / Cybex / scripts / Lloyd15.js < prev    next >
Text File  |  2000-03-30  |  5KB  |  216 lines

  1. /* JS Lloyd15 (C)2000 - Ondrej Mihula e-mail: omihula@cybex.cz             */
  2. /* Pouzivani celeho nebo casti scriptu je povoleno jen se souhlasem autora */
  3.  
  4. var xtimerID = null
  5. var xtimerRunning = false
  6. var xseconds = 0
  7. var timeOut = false
  8. var moveCounter = 0
  9. var fscore
  10. var desk = new Array() 
  11. var imagesL15 = new Array()
  12.  
  13. var maxTime = 3600
  14. var maxMoves = 1000
  15.  
  16. // Preload images
  17. for (i=0;i<=16;i++) {
  18.     imagesL15[i] = new Image()
  19.     imagesL15[i].src = root + "images/Lloyd15/" + i + ".jpg"
  20.     }
  21.  
  22. function stopClock()
  23. {
  24. if (xtimerRunning) {
  25.     clearTimeout(xtimerID) 
  26.     xtimerRunning = false
  27.     }
  28. }
  29.  
  30. function startClock()
  31. {   
  32. stopClock()   
  33. xseconds = 0
  34. showTime()
  35. }
  36.  
  37. function showTime()
  38. {   
  39. if (xseconds++ > (maxTime-1)) {
  40.     stopClock()
  41.     timeOut = true
  42.     if (confirm (" ╚asov² limit vyprÜel ! Checete hrßt znovu ? "))
  43.         window.location.reload()    
  44.     else
  45.         return
  46.     }
  47. minutes = (xseconds < 60) ? 0 : parseInt(xseconds/60)
  48. seconds = xseconds % 60
  49. timeValue = "╚as: "
  50. timeValue += ((minutes < 10) ? "0" : "") + minutes   
  51. timeValue += ((seconds < 10) ? ":0" : ":") + seconds   
  52. document.Lloyd15.xtimeDisp.value = timeValue
  53. showScore()
  54. xtimerID = setTimeout("showTime()",1000)   
  55. xtimerRunning = true
  56. }
  57.  
  58. function showScore()
  59. {
  60. scoreValue = "0000"
  61. scoreValue += parseInt(((maxTime-xseconds)*(maxMoves-moveCounter))/1000)
  62. scoreValue = scoreValue.substring(scoreValue.length-4,scoreValue.length)
  63. scoreValue = "Sk≤re: " + scoreValue
  64. document.Lloyd15.scoreDisp.value = scoreValue
  65. }
  66.  
  67. function gameStart()
  68. {
  69. if (xtimerRunning) return
  70. if (finished() || timeOut) {
  71.     alert("  Pokud chcete hrßt novou hru, klin∞te na Novß hra. ")
  72.     return
  73.     }
  74. startClock()
  75. }
  76.  
  77. function gameOver()
  78. {
  79. stopClock()
  80. document.img_16.src = root + "images/Lloyd15/16.jpg"
  81. fscore = parseInt(((maxTime-xseconds)*(maxMoves-moveCounter))/1000)
  82. document.Lloyd15.score.value = fscore
  83. document.Lloyd15.frmscore.value = fscore
  84. cas = document.Lloyd15.xtimeDisp.value 
  85. cas = cas.substring(cas.length-5,cas.length)
  86. alert (" ╚as slo₧enφ : \t" + cas + "     \n" +
  87.        " PoΦet tah∙ : \t" + moveCounter + "     \n" +
  88.        " Celkem sk≤re : \t" + fscore + "     \n\n" +
  89.        " Nynφ m∙₧ete ulo₧it sk≤re tlaΦφtkem Zapsat.   \n")
  90. }
  91.  
  92. function shuffle()
  93. {
  94. stopClock()
  95. var rnd
  96. i=0
  97. while (i<100) {
  98.     rnd = 4*Math.random()
  99.     if (rnd < 1) smer = 1
  100.     if (rnd >= 1 && rnd < 2) smer = -1
  101.     if (rnd >= 2 && rnd < 3) smer = 4
  102.     if (rnd >= 3) smer = -4
  103.     if ((empty+smer) > 0 && (empty+smer) < 17) {
  104.         imgMove(empty+smer, (smer*-1))
  105.         i++
  106.         }
  107.     }
  108. document.Lloyd15.xtimeDisp.value = "╚as: 00:00"
  109. document.Lloyd15.movesDisp.value = "Tah∙: 000"
  110. document.Lloyd15.score.value = 0
  111. }
  112.  
  113. function clickCheck(pozice)
  114. {
  115. return (((pozice-1) == empty) || ((pozice+1) == empty) ||
  116.         ((pozice+4) == empty) || ((pozice-4) == empty)) ? true : false
  117. }
  118.  
  119. function finished()
  120. {
  121. for(i=1;i<16;i++) 
  122.     if (desk[i] != i) return false
  123. return true
  124. }
  125.  
  126. function imgMove(pozice,smer)
  127. {
  128. image = eval("document.img_" + pozice)
  129. image.src = imagesL15[0].src
  130. image = eval("document.img_" + (pozice+smer))
  131. image.src = imagesL15[desk[pozice]].src
  132.  
  133. desk[(pozice+smer)] = desk[pozice]
  134. desk[pozice] = 0
  135. empty = pozice
  136. }
  137.  
  138. function imgClick(pozice)
  139. {
  140. var smer
  141. if (timeOut || finished()) {
  142.     //alert(" Pokud chcete hrßt novou hru, klin∞te na Novß hra. ")
  143.     return
  144.     }
  145. smer = empty - pozice
  146. if (smer!= 1 && smer!=-1 && smer!=4 && smer!=-4) return
  147.  
  148. if (!xtimerRunning && !finished()) gameStart()
  149.  
  150. imgMove (pozice, smer)
  151. if (moveCounter++ == (maxMoves-1)) {
  152.     stopClock()
  153.     timeOut = true
  154.     if (confirm (" Limit na poΦet tah∙ vyΦerpßn ! Checete hrßt znovu ? "))
  155.         window.location.reload()    
  156.     else
  157.         return
  158.     }
  159. counterValue = "000"
  160. counterValue += moveCounter
  161. counterValue = counterValue.substring(counterValue.length-3,counterValue.length)
  162. document.Lloyd15.movesDisp.value = "Tah∙: " + counterValue
  163. showScore()
  164. if (finished()) gameOver()
  165. }
  166.  
  167. function check(thisform)
  168. {
  169. if (!finished())
  170.     return false
  171.  
  172. /* if (login==0) {
  173.     alert("Nep°ihlßÜen² u₧ivatel nem∙₧e zapsat sk≤re. ")
  174.     return false
  175.     } */
  176.  
  177. if (isWhitespace(thisform.jmeno.value)) {
  178.     alert ("\nZadejte prosφm svΘ jmΘno a p°φjmenφ.")
  179.     thisform.jmeno.focus()
  180.     return false
  181.     }
  182. if (isWhitespace(thisform.ulice.value))    {
  183.     alert ("\nZadejte prosφm ulici.")
  184.     thisform.ulice.focus()
  185.     return false
  186.     }
  187. if (isWhitespace(thisform.mesto.value)){
  188.     alert ("\nZadejte prosφm m∞sto.")
  189.     thisform.mesto.focus()
  190.     return false
  191.     }
  192. if (isWhitespace(thisform.psc.value)){
  193.     alert ("\nZadejte prosφm PS╚.")
  194.     thisform.psc.focus()
  195.     return false
  196.     }
  197. if (!isPSC(thisform.psc.value)){
  198.     alert ("\nPozor! PS╚ je zadßno Üpatn∞.")
  199.     thisform.psc.focus()
  200.     return false
  201.     }
  202. if (isWhitespace(thisform.email.value)){
  203.     alert ("\nZadejte prosφm e-mailovou adresu.")
  204.     thisform.email.focus()
  205.     return false
  206.     }
  207. if (!isEmail(thisform.email.value)){
  208.     alert ("\nE-mail adresa nenφ zadßna sprßvn∞.")
  209.     thisform.email.focus()
  210.     return false
  211.     }
  212. document.Lloyd15.score.value = fscore
  213. return true
  214. }
  215.  
  216.