elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Buscaminas en php!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Buscaminas en php!!  (Leído 4,961 veces)
kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Buscaminas en php!!
« en: 14 Enero 2011, 23:55 pm »

Buenas!

He hecho este buscaminas, cueglo aquí el código para que me digais si hay alguna formas más senzilla de hacerlo:

Código
  1. <?php
  2. $H= 5; //filas
  3. $V= 5; //Columnes
  4. $B= 7; //Bombas
  5. $total_casillas= $H*$V; //Guardo el total de las casillas para moverme luego en un for
  6. $vector; //declaramos el vector vacio
  7.  
  8.  
  9. //vector vacio pero con todas las posiciones
  10. function vector_v(&$vector,$total_casillas,$V){
  11. $j=0;
  12. $p=0;
  13. for($i=1;$i <= $total_casillas;$i++){
  14. $vector[$p][$j]= "&nbsp"; //Primero dejamos las posiciones vacias para luego poner los asteriscos
  15. if($i % $V == 0){ //Si el modulo de $i con las columnas es 0 creamos otra fila y empezamos otra columna.
  16. $p++;
  17. $j=0;
  18. }else{ //Si no es l modulo segimos creand casillas de columna.
  19. $j++;
  20. }
  21. }
  22.  return $vector;
  23. }
  24.  
  25.  
  26.  
  27. //Esta funcion introduce las minas aleatoriamente en el vector
  28. function poner_m($B,$V,$H,&$vector){
  29. $total=1;//usaremos esta variable para controlar que se escriban correctamente las minas.
  30. while($total <= $B){
  31. $h=rand(0,$H-1);//creamos un numero aleatorio para movernos por las filas
  32. $v=rand(0,$V-1);//creamos un numero para movernos por las columnas.
  33.            if ($vector[$h][$v] == "*"){//Si en esa posición aleatoria hay un asterisco que no haga nada
  34.  
  35. }else{//Si no hay un asterisco que lo ponga y que incremente el contador.
  36. $vector[$h][$v] = "*";
  37. $total++;
  38. }
  39. }
  40. return $vector;
  41. }
  42.  
  43. //Esta funcion pone los números que indican las posiciones de las minas
  44. function poner_n($H,$V,&$vector){
  45.  
  46. for($I=0;$I < $H;$I++){ //hacemos 2 fors que nos recorran el vector (columnas y filas)
  47. for($J=0;$J < $V;$J++){ //Tenemos 8 if's que miran las posiciones que rodean dónde nos encontremos
  48. if($vector[$I][$J+1]=="*"){ //miramos si delante hay un asterisco
  49. if($vector[$I][$J]=="*"){//Si lo hay, ahí no hacemos nada.
  50.  
  51. }else{
  52. $vector[$I][$J]=$vector[$I][$J]+1;//Si delante a avido un número incrementamos en la posicion q estamos.
  53. }
  54. }if($vector[$I][$J-1]=="*"){//A partir de aquí es lo mismo todo el rato pero cambiando la posicion.
  55. if($vector[$I][$J]=="*"){//Miramos detras, arriba,abajo,etc.
  56.  
  57. }else{
  58. $vector[$I][$J]=$vector[$I][$J]+1;
  59. }
  60. }if($vector[$I-1][$J-1]=="*"){
  61. if($vector[$I][$J]=="*"){
  62.  
  63. }else{
  64. $vector[$I][$J]=$vector[$I][$J]+1;
  65. }
  66. }if($vector[$I+1][$J-1]=="*"){
  67. if($vector[$I][$J]=="*"){
  68.  
  69. }else{
  70. $vector[$I][$J]=$vector[$I][$J]+1;
  71. }
  72.  
  73. }if($vector[$I-1][$J]=="*"){
  74. if($vector[$I][$J]=="*"){
  75.  
  76. }else{
  77. $vector[$I][$J]=$vector[$I][$J]+1;
  78. }
  79. }if($vector[$I+1][$J]=="*"){
  80. if($vector[$I][$J]=="*"){
  81.  
  82. }else{
  83. $vector[$I][$J]=$vector[$I][$J]+1;
  84. }
  85. }if($vector[$I-1][$J+1]=="*"){
  86. if($vector[$I][$J]=="*"){
  87. }else{
  88. $vector[$I][$J]=$vector[$I][$J]+1;
  89. }
  90. }
  91. if($vector[$I+1][$J+1]=="*"){
  92. if($vector[$I][$J]=="*"){
  93.  
  94. }else{
  95. $vector[$I][$J]=$vector[$I][$J]+1;
  96. }
  97. }
  98. }
  99. }
  100. return $vector;
  101. }
  102.  
  103.  
  104. //Llamamos a todas las funciones para que se genere el array con el juego hecho.
  105. vector_v($vector,$total_casillas,$V);
  106. poner_m($B,$V,$H,$vector);
  107. poner_n($H,$V,$vector);
  108.  
  109. echo "<center>";
  110. echo "<h1><b>JUEGO DEL BUSCAMINAS</b></h1>";//Presentamos el juego
  111. echo "Usamos $H filas, $V columnas y $B minas";
  112.  
  113. echo "<table border='3'cellpadding='20'>";//Mostramos la tabla con 2 fors que hacen las columnas y las filas
  114. for ($i=0;$i < $H; $i++){
  115. echo "<tr>";
  116. for($j=0;$j < $V;$j++){
  117. echo "<td>".$vector[$i][$j]."</td>";//Aqui nos escribe el array dentro de la tabla
  118. }
  119. echo "</tr>";
  120. }
  121. echo "</table>";
  122.  
  123. echo "</center>";
  124. ?>
  125.  

Saludos!!


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: Buscaminas en php!!
« Respuesta #1 en: 15 Enero 2011, 05:26 am »

Pero y entonces, como se juega?


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
kodeone

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: Buscaminas en php!!
« Respuesta #2 en: 15 Enero 2011, 17:45 pm »

A ver, es una "especie" de buscaminas que es como si te saliera la partida hecha xDD, es raro de explicar. Aún no domino como para hacer un juego con el que poder interaccionar con php. Es un ejercicio de clase que nos pedia eso. Cada vez que se le da a f5 es como una partida distinta gracias al rand.

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buscaminas
Ejercicios
alos 4 5,885 Último mensaje 8 Septiembre 2006, 15:36 pm
por Ap0caLiPse
[C++] [Aporte] Buscaminas por consola
Programación C/C++
Wofo 5 5,778 Último mensaje 15 Marzo 2013, 11:18 am
por Wofo
[Ayuda] Buscaminas en C++
Programación C/C++
DiegoConD 6 2,984 Último mensaje 16 Mayo 2015, 20:40 pm
por DiegoConD
buscaminas en pascal
Programación General
bmaleke 1 2,138 Último mensaje 22 Junio 2015, 11:24 am
por tincopasan
ayuda con buscaminas porfavor
Programación C/C++
bileto 0 1,365 Último mensaje 4 Mayo 2017, 18:47 pm
por bileto
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines