Foros del Web » Programando para Internet » PHP »

PHP Ahorcado

Estas en el tema de PHP Ahorcado en el foro de PHP en Foros del Web. Hola buenas, recién acabo de registrarme en el foro. ¡Mis saludos! El motivo que me trae a aquí es el siguiente: Tengo que hacer un ...
  #1 (permalink)  
Antiguo 13/06/2011, 15:07
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta PHP Ahorcado

Hola buenas, recién acabo de registrarme en el foro. ¡Mis saludos!
El motivo que me trae a aquí es el siguiente:
Tengo que hacer un juego del ahorcado con php. El caso es que he conseguido que se conecte a la base de datos (ahorcado), acceda a la tabla (lista_palabras) y muestre una palabra aleatoria sin muchos problemas. También he conseguido, por el método Get, cambiar el valor de la variable que recoge la letra sobre la que se pulsa, para luego recorrer la cadena de texto que contiene la palabra. Pero el caso es que cada vez que pulso sobre cualquier letra, la página se vuelve a cargar, y muestra otra palabra de la BDD.
He probado a poner un switch que interrumpa hasta que el número de fallos sea el máximo o el de aciertos igual que la longitud de la palabra, pero nada.

La aplicación consta de 4 archivos *.php:
- add_palabra.php - Aquí hay un formulario que guarda palabras nuevas en la BDD; No he tenido problemas.
- img_char.php - Esto es una función, que cambia todos los caracteres de la palabra que se le pasa como parámetro por imágenes de manos (lenguaje de signos); No he tenido problemas.
- index.php - Aquí sólo llamo a las funciones. Este es el código fuente:
Cita:
<?php

echo "Ahorcado PHP<br>";
include 'mostrar.php';
include 'add_palabra.php';
mostrar ();
?>
<br>
No hay ningún problema con este archivo.

- mostrar.php - Aquí están declaradas las funciones mostrar() y ahorcado():
Cita:
<?php
function mostrar()
{
$link = mysql_connect("localhost", "root", "root");
mysql_select_db("ahorcado", $link);
$result = mysql_query("SELECT palabras FROM lista_palabras ORDER BY rand() LIMIT 1", $link);
while ($row = mysql_fetch_row($result))
{
$palabra=$row[0];
img_char($palabra);
echo "<br>Aqui va el algoritmo<br>";
ahorcado($palabra);
}
}
//_________________________

function ahorcado($palabra)
{
//Variables necesarias
$aciertos=0;
$fallos=0;
$a="<a href='?opcion=a'><img src='sml/a.png'/></a>";
$b="<a href='?opcion=b'><img src='sml/b.png'/></a>";
$c="<a href='?opcion=c'><img src='sml/c.png'/></a>";
//[...] Así hasta la Z
$y="<a href='?opcion=y'><img src='sml/y.png'/></a>";
$z="<a href='?opcion=z'><img src='sml/z.png'/></a>";

echo "<br>";
$opcion=$_GET['opcion'];
echo "$a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $x $y $z";

//Aqui se van actualizando tanto los aciertos como los fallos

for($ç=0;$ç<strlen($palabra);$ç++)
{
if($palabra[$ç]==$opcion)
$coinciden=1;

if($coinciden==1)
$aciertos++;
else
$fallos++;
}
echo "<br>";
echo "Aciertos: $aciertos<br>";
echo "Fallos: $fallos<br>";
//echo "<br>$pos";
echo "$opcion";
echo "<br>$palabra";
}
?>
Pues muchas gracias por la ayuda ^^.
  #2 (permalink)  
Antiguo 13/06/2011, 15:20
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: PHP Ahorcado

yo recomiendo no volver a sacar la palabra de la base de datos.
solo pasala por get junto con la letra ovio que no sin antes encriptarla para que nadie la reconosca o tambien puedes pasarla por una cookie o sesion para que buelva a evaluar la misma palabra.
esto te puede ayudar.

http://enlinea.creaelicita.cl/guia/f...64-decode.html
  #3 (permalink)  
Antiguo 13/06/2011, 15:28
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: PHP Ahorcado

Muchas gracias por responder, enlinea777.
Lo siento, pero no te entendí bien, creo. ¿Quieres decir que no use esa consulta sql?
Cita:
$result = mysql_query("SELECT palabras FROM lista_palabras ORDER BY rand() LIMIT 1", $link);
¿o te refieres al while que rescata la columna de la base de datos?
Cita:
while ($row = mysql_fetch_row($result))
{
$palabra=$row[0];
img_char($palabra);
echo "<br>Aqui va el algoritmo<br>";
ahorcado($palabra);
}
PD: Lo de encriptar es una buena idea, no lo pensé.
  #4 (permalink)  
Antiguo 15/06/2011, 15:16
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: PHP Ahorcado

No recuerdo bien pero en la pagina donde reembias todo deves de evaluar la palabra (que envias encriptada) y el caracter sin siquiera llamar a la base de datos.
algo asi:

ejemplo Pseudocodigo

Código pseudocodigo:
Ver original
  1. pagina 1.php
  2.    if leta==""
  3.        llamar base y sacar la palabra a usar
  4.       else
  5.          if evaluar si leta existe en palabra
  6.                ok no aorca
  7.                    else
  8.                        si aorca

Etiquetas: ahorcado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:45.