Volví de nuevo con el ahorcado y aplicando los nuevos conocimientos optimice su código y lo hice de tal manera que ahora es personalizable y uno puede elegir con que palabra jugar
![Afirmando](http://static.forosdelweb.com/fdwtheme/images/smilies/afirmar.gif)
puesto que viene del mismo codigo original, posteo de nuevo aquí, bueno, aqui les dejo el nuevo codigo:
Código PHP:
<?php
//Comparación con la versión anterior:
//$q1 = $letras[0]
//$p1 = $p[0]
//No confundir $letra con $letras
//Palabra y separación de sus letras:
$palabra = $HTTP_COOKIE_VARS["palabra"];
if ($_GET["palabra"] |= ""){
$palabra = $_GET["palabra"];
setcookie("palabra","$palabra");
}
if (!($palabra == "")){
$letras = str_split($palabra);
$contador = count($letras);
$pf = 0;
$pn = 0;
$bor=0;
$borrar = $_GET["borrar"];
$letra = $_GET["letra"];
if ($borrar=="si" || $letra=="") {
while ($pn < $contador){
setcookie("p$pn",0);
$pn++;
}
$bo=1;
setcookie("L",0);
}
else {
$bo=0;
}
//Acertado o no acertada
$pn = 0;
while ($pn < $contador){
$pn++;
$p[] = 0;
}
//Intentos
if (!($bo==1)){
$L = $HTTP_COOKIE_VARS["L"];
}
//Si la letra enviada es correcta se envia una cookie recordandolo
//y se activa la letra, sino, se le suma el intento a $L y se envia
//una cookie recordandolo
$pn = 0;
while ($pn < $contador){
if ($letra == $letras[$pn]){
$p[$pn]++;
setcookie("p$pn","$p[$pn]");
}
$pn++;
}
if (!($bo==1)){
$pn = 0;
while ($pn < $contador){
if (!($letra==$letras[$pn])){
$pf++;
}
$pn++;
}
if ($pf == $contador){
$L=$L+1;
setcookie("L",$L);
}}
//Acertada o no acertada
$pn = 0;
while ($pn < $contador){
if ($p[$pn] == 0){
$p[$pn] = $HTTP_COOKIE_VARS["p$pn"];
}
$pn++;
}
?>
<html>
<head>
<title> .:Ahorcado:. </title>
</head>
<Body>
<?
$pf = 0;
$pn = 0;
while ($pn < $contador){
if ($p[$pn] != 0){
$pf++;
}
$pn++;
}
if ($pf == $contador){
echo "<b>ENORABUENA HAS GANADO; La palabra era: $palabra </b>";
?>
<form action="ahorcado2.php" method="GET">
<br><br><br>Volver a empezar ?: <input type="text" name="borrar" />
<input type="submit">
</form>
<?
} else {
//Intentos
if (!($bo==1) && $L >= 8){
echo "Perdiste, la palabra era: $palabra";
?>
<form action="ahorcado2.php" method="GET">
<br><br><br>¿Quieres volver a empezar?: <input type="text" name="borrar" />
<input type="submit">
</form>
<?
} else {
?>
<form action="ahorcado2.php" method="GET">
¿Que letra crees que contiene?(Pulsa enviar sin introducir nada para volver a empezar)
<br>
Letra: <input type="text" name="letra" />
<input type="submit">
</form>
<?
$in=8;
$in=$in-$L;
echo "<br>Escribiste la letra: $letra";
echo "<br> La palabra tiene $contador letras";
echo "<br>Te quedan $in intentos<br>";
//Letra o "_"
$pn = 0;
while ($pn < $contador){
if ($p[$pn] |= 0){
echo "$letras[$pn] ";
}
else {
echo "_ ";
}
$pn++;
}
}
echo "<br><br>";
//imagenes
$pn = 0;
while ($pn <= 8){
if ($L==$pn){
echo('<img src="ar') . "$pn" . ('.JPG">');
}
$pn++;
}
}}
?>
<br><br><br>
<form action="ahorcado2.php" method="GET">
Nueva palabra: <input type="text" name="palabra" />
<input type="submit">
</form>
Desde aquí pueden probarlo:
http://azache.com/p/ahorcado/ahorcado2.php
Explico aquí el cometido de cada función:
Código:
$HTTP_COOKIE_VARS - Coge los valores de las cookies enviadas
$L - Va almacenando los intentos
$_GET - Coge los valores de los formularios
$bor - no recuerdo para que era O_o
$bo - Tiene el cometido de indicar si se debe o no resetear todo
$borrar - Transmite a $bo el reseteo
$contador - numero de letras en la palabra
$in - Sirve para decir cuantos intentos quedan
$letra - La letra escrita
$letras - array con cada letra de la palabra
$p - array con el mismo numero de "0" que letras hay, el p[1] equivale a letras[1] si p[1] es "0" significa que no se adivino esa letra, si es uno, significa que se dio con ella.
$palabra - la palabra elegida
$pn - Tan solo lo utilizo para ponerlo a 0 y utilizarlo en los while
$pf - lo mismo que $pn solo que lo utilizo para cuando necesito más de uno.
Bueno, a ver que les parece !