PHP Programación

Programando un bingo con PHP en 5 minutos

single image

¿Qué haces cuando tus sobrinas quieren jugar al bingo, y solo tienes los cartones? ¿recortar papelitos, escribir los números en ellos y meterlos en una bolsa para ir sacándolos uno a uno?
Pues eso es justo lo que me ha pasado esta tarde, y la solución ha sido programar un pequeño script php en cinco minutos, subirlo a un server y acceder a él desde el móvil. Sí, es una frikada, y sí, podría haberlo hecho en javascript, y no tener que utilizar un servidor, pero en ese momento esto ha sido lo que ha salido.

Screenshot-Bingo-PHP

Si queréis verlo online, desde aquí: ¡bingo!

Y este es el código:

  1. <?php
  2.  
  3. session_start();
  4.  
  5. $numero=-1;
  6. srand((double)microtime()*1000000);
  7. $numero=rand(1,90);
  8. $salida='';
  9.  
  10. if(isset($_POST['finPartida'])){
  11.         $_SESSION['i']=90;
  12.         unset($_POST['finPartida']);
  13. }
  14. if($_SESSION['i']==90){
  15.         $salida='<div class="mensaje">Otra partida?</div>';
  16.         $salida.='<div id="panelControl">
  17.                         <form id="nuevoJuego" method="post" action="bingo.php">
  18.                                 <input type="submit" id="nuevaPartida" name="nuevaPartida" value="NUEVA PARTIDA"/>
  19.                         </form>
  20.                 </div>';
  21.         $_SESSION = array();
  22.  
  23.         if (ini_get("session.use_cookies")) {
  24.                 $params = session_get_cookie_params();
  25.                 setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
  26.         }
  27.         session_destroy();
  28. }else{
  29.  
  30.         if(isset($_SESSION['cantados'])==FALSE){
  31.  
  32.                 $_SESSION['i']=1;
  33.                 $_SESSION['cantados'][]=$numero;
  34.         }else{
  35.                 while(in_array($numero,$_SESSION['cantados']))   {
  36.                         $numero=rand(1,90);
  37.                 }
  38.                 $_SESSION['cantados'][]= $numero;
  39.                 $_SESSION['i']=$_SESSION['i']+1;
  40.         }
  41.  
  42.         sort($_SESSION['cantados']);
  43.         $salida.='<div class="detalle"># restantes: <span class="negrita">'.(90-$_SESSION['i']).'</span></div>';
  44.         $salida.='<div id="pizarraMain">
  45.                         <div id="pizarraNumero">'.$numero.'</div>
  46.                         <div id="panelControl">
  47.                                 <form method="post" action="bingo.php">
  48.                                         <input type="submit" id="nuevoNumero" name="nuevoNumero" value="NUEVO NUMERO"/>
  49.                                         <input type="submit" id="finPartida" name="finPartida" value="FIN PARTIDA"/>
  50.                                 </form>
  51.                         </div>
  52.                 </div>';
  53.         $salida.='<div id="pizarraResumen"><table>';
  54.  
  55.         $decena=0;
  56.  
  57.         for($num=1;$num<=90;$num=$num+1){
  58.                 if($decena==0)
  59.                         $salida.='<tr>';
  60.  
  61.                 if(in_array($num, $_SESSION['cantados'])){
  62.                         $salida.='<td class="cantado">'.$num.'</td>';
  63.                 }else{
  64.                         $salida.='<td>'.$num.'</td>';
  65.                 }
  66.  
  67.                 if($decena==9)  {
  68.                         $decena=0;
  69.                         $salida.='</tr>';
  70.                 }else
  71.                         $decena++;
  72.         }
  73.  
  74.         $salida.='</table></div>';
  75. }
  76. ?>
  77. <html>
  78. <head><title>Bingoooooo!!!</title>
  79. <style>
  80. body {margin:20px; padding:0px;}
  81. div.mensaje{color:red;padding:20px;font-size:100px;width:100%;text-align:center;}
  82. div#pizarraMain{padding:20px;width:30%;font-size:200px;color:red;float:left;}
  83. div#pizarraNumero{padding-left:100px;width:100%;}
  84. div#panelControl {width:100%;font-size:30px;}
  85. div#pizarraResumen {width:50%;float:left;}
  86. table {font-size:30px;margin:0;padding:0;margin-left:50px;}
  87. td {padding:5px 10px;}
  88. .cantado {color:red;}
  89. .instrucciones {display:none;font-size:20px;width:100%;color:grey;background-color:#efefef;}
  90. .detalle {display:block; font-size:30px;width:100%;}
  91. .negrita {font-weight:bold;}
  92. form {margin:0px;padding:0px; }
  93. input {height:120px;width:190px;font-size:20px;}
  94. form#nuevoJuego{width:100%;text-align:center;}
  95. </style>
  96. </head>
  97. <body>
  98.  
  99. <?php echo $salida;?>
  100.  
  101. </body>
  102. </html>

Todo eso guardado en un archivo .php y subido a un server.

5 Comentarios
  1. Cheli Cheli 7 años ago
    Contestar

    5 minutos, lo que se dicen 5 minutos no creo que fueran jejejejeje. Demasiado código para 5 minutos.

    • AraDaen 7 años ago
      Contestar

      jajaja pues no fueron muchos más la verdad… más sencillito no puede ser.. de hecho no utilicé  js, porque no me acordaba del uso de sesiones y para modificar el DOM..xDD Entre subirlo y demás, no sería más de 10

      • Otto 7 años ago
        Contestar

        Si haces esto en 5 minutos, miedo me da lo que puedas hacer en la práctica de Tecnologías Web 🙂 Un saludo

  2. karurosu 5 años ago
    Contestar

    Que bueno! ya se que han pasado unos cuantos años desde esto…. pero… y ahora algun codigo php para poder generar los cartones y imprimirlos?
    Gracias

Escribir comentario

Tu email no será publicado.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Otras noticias de interés