Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso Práctico de PHP

Curso Práctico de PHP

Ana Belisa Martínez

Ana Belisa Martínez

¡Creando nuestro juego!

12/17
Recursos

Aportes 17

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Hice mi propia versión del juego

main.php

analisis.php

Para los que no les funcione el enviar correctamente, en el form hay que renombrar el name por posicion0 , posicion1, posicion2

Espero les ayude.

Interesante como provoco los errores para luego corregirlos, esto pasa muy seguido en la practica…

a ustedes no les pasa?

12. Creando nuestro juego

Les comparto el código de la clase con pequeños ajustes para que se vea un poco mejor, se ve así:

Formulario:

Respuesta:

main.php

<?php
$wordsList = ["sol", "luna", "cielo"];
$scrambledWords = [];

for($i=0; $i < count($wordsList); $i++){
    $scrambledWords[$i] = str_shuffle($wordsList[$i]);
    echo "Palabra " . ($i+1) . ": $scrambledWords[$i]<br>";
}
echo "
<br>
<h3>Ingresa tus respuestas:</h3>
<form action ='analisis.php'>
<span>1. </span>
<input type='text' name='word0'><br>
<span>2. </span>
<input type='text' name='word1'><br>
<span>3. </span>
<input type='text' name='word2'><br>
<button type='submit'>Enviar</button>
</form>
";

analisis.php

<?php
$wordsList = ["sol", "luna", "cielo"];

if($_REQUEST["word0"] == $wordsList[0]) {
    echo "La primera palabra ingresada es correcta<br>";
} else {
    echo "La primera palabra ingresada es incorrecta, la palabra correcta es: $wordsList[0]<br>";
}

if($_REQUEST["word1"] == $wordsList[1]) {
    echo "La segunda palabra ingresada es correcta<br>";
} else {
    echo "La segunda palabra ingresada es incorrecta, la palabra correcta es: $wordsList[1]<br>";
}

if($_REQUEST["word2"] == $wordsList[2]) {
    echo "La tercera palabra ingresada es correcta<br>";
} else {
    echo "La tercera palabra ingresada es incorrecta, la palabra correcta es: $wordsList[2]<br>";
}

Noté que puede suceder que al momento de utilizar str_shuffle nuestra palabra desordenada podría quedar en el orden correcto, así que modifiqué el codigo para evitarlo.

$palabras = array("sol", "luna", "cielo");
$palabrasDesordenadas= array();
for($i=0; $i<count($palabras); $i++){
    do{
        $palabrasDesordenadas[$i]=str_shuffle($palabras[$i]);
    }while($palabrasDesordenadas[$i]==$palabras[$i]);
    
}

Mejorando mi código anterior con lo aprendido:

<?php
$palabras=["enredadera","sombra","hoja","pasto","edificio","gatos"];
$retos = [];
foreach($palabras as $palabra) {
    $retos[] = str_shuffle($palabra);
}

if($_REQUEST) {
    $indice = 0;
    foreach($_REQUEST as $respuesta) {
        $correcta=$palabras[$indice++];
        if($respuesta == $correcta) {
            echo "<strong>$respuesta:</strong> ¡Respuesta correcta! <strong>:)</strong> <br><br>";
        }else {
            echo "<strong>$respuesta:</strong> ¡Incorrecto! <strong>:(</strong><br>La respuesta es: <strong>" . $correcta . "</strong><br><br>";
        }
    }
    echo "<input type='button' value='Volver a jugar' onClick='history.go(-1);'>";
    exit();
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Juego</title>
</head>
<body>
    <h1>Adivina la palabra</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        <?php
        $i=0;
        foreach($retos as $reto) {
            echo "<p><strong>$reto</strong>  <input type='text' name='respuesta" . ++$i ."' autocomplete='off'></p>";
        }
        ?>
        <button type="submit">Enviar</button>
    </form>
</body>
</html>

Pense que era mucho mas dificil obtener las respuestas que se envian del html

Asi escribi el analisis

<?php

print_r($_REQUEST);
echo "<br>";
for ($i = 0; $i < 3; $i++) {
    switch ($_REQUEST['palabra'.$i]) {
        case 'sol' : echo "<br>Palabra correcta<br>"; break;
        case 'luna' : echo "<br>Palabra correcta<br>"; break;
        case 'cielo' : echo "<br>Palabra correcta<br>"; break;
        default: echo "<br>Palabra incorrecta<br>";
    }
}

main.php

<?php

$palabras = ["Limon","Manzana", "Pera"];
$palabrasDesordenadas = array();


for($i = 0; $i < count($palabras); $i++){

    $palabrasDesordenadas[$i] = str_shuffle($palabras[$i]);
}


print_r($palabrasDesordenadas); // imprimimos el array con print_r()

echo "
<form  action='validar.php'>

<label> Palabra en la posicion 0 </label> <input  type = 'text' name = 'valorPosicion0'> <br>
<label> Palabra en la posicion 1 </label> <input  type = 'text' name = 'valorPosicion1'> <br>
<label> Palabra en la posicion 2 </label> <input  type = 'text' name = 'valorPosicion2'> <br>
<button type='submit'>Enviar</button>

</form>
";

Validar. php

<?php

print_r($_REQUEST);

$palabras = ["Limon","Manzana", "Pera"];

if($_REQUEST['valorPosicion0'] == $palabras[0]){
    echo "La palabras que escribiste es correcta ";
}
    else{
        echo " La palabra que escribiste es incorrecta, vuelve a intentarlo ";
    }

    if($_REQUEST['valorPosicion1'] == $palabras[1]){
        echo "La palabras que escribiste es correcta ";
    }
        else{
            echo " La palabra que escribiste es incorrecta, vuelve a intentarlo ";
        }

        if($_REQUEST['valorPosicion2'] == $palabras[2]){
            echo "La palabras que escribiste es correcta ";
        }
            else{
                echo " La palabra que escribiste es incorrecta, vuelve a intentarlo ";
            }
<?php
    $palabras=["enredadera","sombra","hoja"];
    $retos=["endararede","brosam","ahjo"];
    $envio = $_REQUEST;
    $contador = 0;
    foreach($envio as $a){
        if($a == $palabras[$contador]){
            echo "<br>La palabra ".$a." es correcta<br>";
        }
        else{
            echo "<br>La palabra ".$a." es incorrecta<br>";
        }
        $contador += 1;
    }


?>

Muy confuso el video, no explica como se añaden los elementos a la array $palabrasDesordenadas. Lo tuve que detener y mirar varias veces para entenderlo, y no me considero tonto

Mi aporte de analisis.php

<?php

print_r($_REQUEST);

$palabras = [
    "hola",
    "mundo",
    "auto"
];

echo "<br>";

for($i=0; $i<3 ; $i++) {
    if ($palabras[$i] == $_REQUEST["palabra".$i]) {
        echo "la palabra $palabras[$i] es correcta <br>";
    } else {
        echo "la palabra " . $_REQUEST['palabra'.$i] . " es in-correcta <br>";
    }
}

Me encanta la positividad con la que resuelve el error

analisis.php
// print_r($_REQUEST);

$palabras = array(“sol”, “luna”, “cielo”);

if($_REQUEST[“palabra0”] == $palabras[0]){
echo “La palabra ingresada es correcta” ."<br>";
} else {
echo “La palabra ingresada es incorrecta, la palabra correcta es: " .$palabras[0] .”<br>";
}

if($_REQUEST[“palabra1”] == $palabras[1]){
echo “La palabra ingresada es correcta” ."<br>";
} else {
echo “La palabra ingresada es incorrecta, la palabra correcta es: " .$palabras[1] .”<br>";
}

if($_REQUEST[“palabra2”] == $palabras[2]){
echo “La palabra ingresada es correcta” ."<br>";
} else {
echo “La palabra ingresada es incorrecta, la palabra correcta es: " .$palabras[2] .”<br>";
}

index.php

$palabras = array(“sol”, “luna”, “cielo”);
$palabrasDesordenadas = array();

for($i = 0; $i < 3; $i++){
$palabrasDesordenadas[$i]= str_shuffle($palabras[$i]);
}
print_r($palabrasDesordenadas);
echo “
<form action=‘analisis.php’>
<input type=‘text’ name=‘palabra0’>
<input type=‘text’ name=‘palabra1’>
<input type=‘text’ name=‘palabra2’>
<button type=‘submit’>Enviar</button>
</form>
”;