JavaScript - Juego de fosforos

  • 0 Respuestas
  • 237 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Adalher

  • *
  • Underc0der
  • Mensajes: 84
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

JavaScript - Juego de fosforos

  • en: Octubre 18, 2019, 05:33:53 am
Hola a todos,

la mayoría de ustedes saben bien de este juego. El javascript trata de quitar los
fósforos de tal manera que al final no se tenga que sacar el último. Con ello se
juega contra la computadora.

Al principio se fija cuantos fósforos se alistaran en el juego.

En cada jugada se puede quitar entre uno y tres maderas. Entonces el
javascript calcula los fósforos restantes y actualiza la visualización en la página
principal.

Naturalmente, al mismo tiempo, la computadora o el javascript también trata de
sacarles el último fósforo y con eso ganar el juego.

Para iniciar nuevamente el javascript tienen que actualizar la página principal en el
navegador.

Código:
Código: Javascript
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <title>Ejemplo de javascript</title>
  5.   <meta charset="UTF-8">
  6. </head>
  7. <body>
  8. <!-- Presentado por javascripts-gratis.de -->
  9. <script type='text/javascript'>
  10. <!--
  11. var obj1 = new Array(100), mc,mc1, cur_obj, total_sel, win = false, cpu_sel, ost, user_sel, game = true;
  12.  
  13. function RemoveElementByNum(num) {
  14.         document.getElementById("ch"+num).style.display = 'none';
  15.         document.getElementById("im"+num).style.display = 'none';
  16. }
  17.  
  18. function RemoveCpuSel(num) {
  19.         del = num;
  20.         for ( i=0; i<mc1; i++ ) {
  21.                 ename = document.getElementById("ch"+i);
  22.                 if (del!=0) {
  23.                         if (ename.style.display != 'none') {
  24.                                 ename.style.display = 'none';
  25.                                 document.getElementById("im"+i).style.display = 'none';
  26.                                 del-=1;
  27.                         }
  28.                 }
  29.  
  30.         }
  31. }
  32.  
  33. function GetClickedElement(){  
  34.         total=0;
  35.         result=false;
  36.         for (i=0; i<mc1; i++) {
  37.                 ename = document.getElementById("ch"+i);
  38.                 if ((ename.style.display != 'none') && (ename.checked)) {
  39.                         total++;
  40.                 }
  41.         }
  42.         if (total>3) {
  43.                 alert('Demasiados fosforos seleccionados. No puedes seleccionar mas de tres fosforos!');
  44.                 result=false;
  45.         } else {
  46.                 result=true;
  47.         }
  48.         document.getElementById("maderalog").value = "Tu tomas "+total+" pieza/s.";
  49.         total_sel=total;
  50.         user_sel=total;
  51.         return result;
  52. }
  53.  
  54. function AI() {
  55.         if ( (mc>1) && (win==false) ) {
  56.                 game = true;
  57.         }
  58.         if (game == true) {
  59.                 if ( (mc-user_sel)==1 ) {
  60.                         win=true;
  61.                         game=false;
  62.                 }
  63.                 if ( (mc%4)!=1 ) {
  64.                         ost=(mc-user_sel)%4;
  65.                         if (ost==0) {
  66.                                 ost=4;
  67.                         }
  68.                         if (ost>1) {
  69.                                 cpu_sel=ost-1;
  70.                         } else {
  71.                                 cpu_sel=Math.floor( (3*Math.random()) );
  72.                                 cpu_sel++;
  73.                                 if (cpu_sel>mc) {
  74.                                         cpu_sel=mc;
  75.                                 }
  76.                         }
  77.                 }
  78.                 else {
  79.                         cpu_sel=4-user_sel;
  80.                 }
  81.                 RemoveCpuSel(cpu_sel);
  82.                 mc=mc-(cpu_sel+user_sel);
  83.                 document.getElementById("maderalog").value='La computadora toma '+cpu_sel+' pieza/s.';
  84.         }
  85.         if ( (mc==1) || (mc<1)) {
  86.                 game = false;
  87.                 if (win == true) {
  88.                         document.getElementById("maderalog1").style.visibility='hidden';
  89.                         document.getElementById("maderalog").style.visibility='hidden';
  90.                         document.getElementById("eliminar").style.visibility='hidden';
  91.                         alert('Felicitaciones! Tu has ganado!!!!');
  92.                         game=false;
  93.                 } else {
  94.                         document.getElementById("maderalog1").style.visibility='hidden';
  95.                         document.getElementById("maderalog").style.visibility='hidden';
  96.                         alert('Tu has perdido. La inteligencia artificial ha ganado!!!! JA - JA - JA!!!!');
  97.                         game=false;
  98.                         document.body.innerHTML = ""
  99.                 }
  100.         }
  101.         document.getElementById("maderalog1").value = "Sobra/n " +mc+ " pieza/s";
  102. }
  103.  
  104. function RemoveSelected(){
  105.         if ((total_sel!=0) && (total_sel<4)) {
  106.                 user_sel=total_sel;
  107.                 for (i=0; i<mc1; i++) {
  108.                         ename = document.getElementById("ch"+i);
  109.                         if ((ename.style.display != 'none') && ename.checked) {
  110.                                 RemoveElementByNum(i);
  111.                         }
  112.                         total_sel=0;
  113.                 }
  114.                 AI();
  115.         } else {
  116.                 if (total_sel>3) {
  117.                         alert("Demasiados fosforos seleccionados.");
  118.                 } else {
  119.                         alert('Nada seleccionado');
  120.                 }
  121.         }
  122. }
  123.  
  124.  
  125. function initMadera() {
  126.         mc = prompt("Cantidad de fosforos?. La cantidad debe hallarse entre 7 y 50", "23");
  127.          if (mc<7) mc=7;
  128.          if (mc>50) mc=50;
  129.  
  130.         mc1 = mc;
  131.         document.write('<center><table border="0" cellspacing="0" cellpadding="0"><tr>');
  132.         for (i=0; i<mc; i++) {
  133.                 document.write('<td align="center"><div style="height: 70px; width: 7px; background-color: #C0C077;" name="im'+i+'" id="im'+i+'"><div style="height: 7px; width: 7px; background-color: #FF3300;"></div></div></td>');
  134.                 obj1[i]=1;
  135.         }
  136.         document.write('</tr><tr>');
  137.         for (i=0; i<mc; i++) {
  138.                 document.write('<td><input type="checkbox" onclick="GetClickedElement();" name="ch'+i+'" id="ch'+i+'" /></td>');
  139.         }
  140.         document.write('</tr></table>');
  141.         document.write('<br /><input type="button" value="Eliminar fosforos seleccionados" onclick="RemoveSelected();" id="eliminar" />');
  142.         document.write('<br /><br /><br /><br />');
  143.         document.write('<input type="text" name="maderalog" id="maderalog" size="30" /><br />');
  144.         document.write('<input type="text" name="maderalog1" id="maderalog1" size="30" /><br />');
  145.         document.write('</center>');
  146. }
  147. //-->
  148. </script>
  149. <script type="text/javascript">initMadera();</script>
  150. <!-- Presentado por javascripts-gratis.de -->
  151.  
  152. </body>
  153. </html>
  154.  

Página web: https://drive.google.com/open?id=14Gu9OuiYfRsDIHCZ4CT_AIQtfvRgvD-N

Saludos
« Última modificación: Octubre 18, 2019, 06:31:54 pm por AXCESS »

 

[VIDEOTUTORIAL] Aprender Javascript desde cero - incluye hacking con Node.js

Iniciado por graphixx

Respuestas: 2
Vistas: 5309
Último mensaje Agosto 25, 2017, 10:08:45 am
por Gothiquedark
[VIDEOTUTORIAL] TypeScript (2014) Programación orientada a objetos en JavaScript

Iniciado por graphixx

Respuestas: 0
Vistas: 2064
Último mensaje Octubre 09, 2015, 08:54:14 am
por graphixx
[SOURCE] Formulario con validacion javascript de contraseña y email a mysqli

Iniciado por graphixx

Respuestas: 2
Vistas: 2710
Último mensaje Agosto 31, 2014, 03:56:47 pm
por Destructor.cs
[Curso gratis con certificado] HTML5 - CSS3 - JAVASCRIPT [OPENWEBINARS]

Iniciado por graphixx

Respuestas: 0
Vistas: 7531
Último mensaje Septiembre 12, 2016, 09:18:15 am
por graphixx
[JavaScript] Contá tu edad real (años con dígitos decimales)

Iniciado por Polsaker

Respuestas: 11
Vistas: 4891
Último mensaje Junio 06, 2015, 09:59:34 pm
por [L]ord [R]NA