El desarrollo de aplicaciones educativas puede ser todo un desafío, pero también una experiencia altamente gratificante. Uno de los proyectos que abordaremos es la creación de una aplicación que muestre palabras en desorden para que el usuario las ordene correctamente. Este ejercicio no solo enriquecerá tus habilidades de programación, sino que también te permitirá aplicar lógica y creatividad. Vamos a analizar paso a paso cómo puedes llevar a cabo este proyecto.
¿Cómo se estructura el proyecto?
La primera etapa para lograr una aplicación eficiente es entender claramente el problema. En este caso, nuestra meta es desarrollar una aplicación donde el usuario vea una lista de palabras con sus letras desordenadas. El usuario deberá ordenar las letras, y luego verificar si ha acertado.
Aquí están los pasos iniciales que debes seguir:
Lista de palabras: Inicialmente, necesitas una lista de palabras que usaremos como referencia para desarrollar el algoritmo. Por ejemplo, puedes empezar con "sol", "luna" y "cielo".
Desordenar las letras: Cada palabra se debe mostrar con sus letras en orden aleatorio. Así, "sol" puede presentarse como "l o s".
Creación de inputs y botones: Al lado de cada palabra desordenada, deberás incluir un campo input donde el usuario pueda escribir lo que cree que es la palabra correcta. Añade un botón para enviar la respuesta.
¿Cómo se confirma la respuesta del usuario?
Una parte esencial de la aplicación es proporcionar retroalimentación al usuario sobre sus respuestas. Después de que el usuario ingresa su respuesta, deberás determinar si es correcta o incorrecta y mostrar el resultado correspondiente.
Verificación de las respuestas: Las respuestas ingresadas por el usuario se compararán con las palabras originales. Necesitarás un script en PHP que realice esta verificación y envíe la respuesta adecuada.
Mostrar resultados:
Si el usuario acierta, se le debe indicar que era la palabra correcta.
En caso contrario, debes mostrarle cuál era la palabra correcta.
¿Cómo se lleva esto al código?
El diseño del flujo de flujo previamente descrito debe traducirse en código. Inicialmente, centrarás tu atención en el front-end, construyendo la interfaz gráfica, y después integrarás la lógica del back-end:
Front-end: Con HTML y JavaScript podrás crear la estructura de la aplicación. Aquí es donde implementarás los inputs y el botón para enviar las respuestas
Back-end: Utiliza PHP para recibir los datos, procesarlos y devolver un feedback inmediato al usuario. Aquí realizarás todas las comparaciones necesarias.
<?php// Ejemplo de lógica para verificar la respuestaif($_POST['word1']=="sol"){echo"¡Correcto!";}else{echo"Incorrecto, la palabra era 'sol'";}?>
¿Cuál es el siguiente paso?
Una vez que tengas una versión funcional básica, es hora de pensar en mejorar la experiencia del usuario. Puedes agregar más palabras, utilizar efectos visuales para las animaciones de las letras, o incluso almacenar el progreso del usuario para ofrecer una experiencia más personalizada.
¡La creatividad es el límite! Con este proyecto, no solo mejorarás como programador, sino que también potenciarás tu habilidad para resolver problemas. Así que, ¡manos a la obra y sigue aprendiendo!
logrado, el sistema evalua el array, lo cuenta y de este toma una palabra gracias el script de rang, el cual me genera un numero aleatorio, con readline, mando a preguntar la palabra y si esta corecta, este suma un punto si es incorecta otro tipo de punto, eso hasta llegar al total de intentos, que es el total de palabras del array
Me quedé en el array de palabras desordenadas
<?php
$palabras =["armario","feriado","colegio","oficina","azulejo"];$palabras_barajadas =[];foreach($palabras as $barajar)array_push($palabras_barajadas,str_shuffle($barajar));var_dump( $palabras_barajadas);?>
Hice mi intento con lo que entendí de la descripción. Me quedó diferente a lo que la profe luego explicó que debía ser el juego. Hice mi juego para ser utilizado en consola, donde el usuario tiene 6 intentos para adivinar correctamente cuál es la palabra.
Comparto mi código:
<?php$words=["Lampara","Esquina","Cuadrado","Aguja","Panel","Juguete","Avion","Carro","Pelicula","Esternocleidomastoideo"];$randomWord=$words[rand(0,count($words)-1)];$shuffledWord=str_shuffle($randomWord);$totalAttempts=6;echo"Bienvenido al juego 🤡".PHP_EOL;echo"Te voy a dar una palabra desordenada. Tu tarea es adivinar cuál es la palabra correcta.".PHP_EOL;echo"La palabra es: '$shuffledWord'. Tienes $totalAttempts intentos.".PHP_EOL;echo"\n";do{$userAttempt=trim(strtolower(readline("Escribe aquí tu palabra: ".PHP_EOL)));if($userAttempt===strtolower($randomWord)){echo"Lo lograste! 😄".PHP_EOL;break;}else{$totalAttempts--;if(!$totalAttempts)break;echo"Buen intento, pero no. Te ".($totalAttempts===1?'queda':'quedan')." $totalAttempts ".($totalAttempts===1?'intento':'intentos').PHP_EOL;}}while($totalAttempts>0);if($totalAttempts===0){echoPHP_EOL."Perdiste :( La palabra era '$randomWord'".PHP_EOL;}
he a qui la forma en como lo hice.
<?php
/*
Lista de palabras
Mostra lista de palabras desordenadas
solicitar ingresar palabras ordenadas al usuairo
mostrar resultado
*///Lista de palabras$palabras =["Hallking","Quesada","Medina"];$palabrasCorrectas =[];$palabrasIncorrectas =[];foreach($palabras as $value){//Desordenar palabras echo
//Solicitamos el ingreso de la palabra. $palabraOrdenada =readline("Ingresa la siguiente palabra en el orde correto '".str_shuffle($value)."'\n");//Asignamos la palabra a el array correcto o incorrecto segun corresponda.if($palabraOrdenada == $value)array_push($palabrasCorrectas, $value);elsearray_push($palabrasIncorrectas, $value);}echo "\n\n";//Mostramos el resultado de las palabras correctasecho "Tus palabras correctas fueron\n";foreach($palabrasCorrectas as $value){ echo "\n".$value."\n";}//Mostramos el resultado de las palabras incorrectasecho "\nTus palabras incorrectas fueron\n";foreach($palabrasIncorrectas as $value){ echo "\n".$value."\n";}echo "\n\n";
Hice el intento antes de seguir con las clases:
Aqui esta mi pequeño aporte. :)
voy al curso de html por que nose nada desde esta clase 12 asta la clase 17
<?php
$palabras = array('Idania', 'Omar', 'Orion', 'Meraki', 'Eduardo');
//echo sizeof($palabras); //Comprueba la longitud del arreglo, aka cantidad de palabras
shuffle ($palabras); //Revuelve las palabras, para evitar que sea repetitivo
if(isset($_POST['picafresa'])){
for($i = 0; $i < sizeof($palabras); $i++){
//Esto automatiza la captura de los input texts generados automáticamente en el caso false del if
$NombreOk = "palabraOk$i";
$Nombre = "palabra$i";
//Muestra para ver que todo está bien
//echo $NombreOk."<br>";
//echo $Nombre."<br>";
//Atrapa los valores enviados en el form usando los nombres de los inputs y asigna sus valores en las palabras correspondientes
$palabraOk = $_POST[$NombreOk];
$palabra = $_POST[$Nombre];
//echo $palabraOk."<br>";
//echo $palabra."<br>";
//Comenzamos la evaluación con de lo ingresado
echo "Palabra: $palabraOk, ingresaste $palabra. Resultado: "; //Mensaje para el jugador
if($palabraOk == $palabra){ //Evalua si las palabras son iguales para determinar si ganó o no
echo "Correcto<br>";
}else{
echo "Incorrecto<br>";
}
}
}else{
//Crear el formulario
echo "
<form method='post'>
Acomoda las palabras y gana una picafresa:";
for($i = 0; $i < sizeof($palabras); $i++){
//echo $palabras[$i]."<br>"; //Mostrar la palabra a jugar
//$longPalabra = strlen($palabras[$i]); //Muestra la cantidad de palabras que hay en el juego
$palabraRevuelta = str_split($palabras[$i],1); //Convertimos la palabra en arreglo para seguir usando shuffle
shuffle($palabraRevuelta); //Revuelve la palabra
$palabraRevuelta = implode($palabraRevuelta); //Convierte de nuevo arreglo a string para poder usarlo en echo
//Bonito mensaje para el jugador con un cuadro escondido con la respuesta y otro a la vista para lo escrito por el jugador
echo "
<br>
$palabraRevuelta
<input type='text' name='palabraOk$i' value='$palabras[$i]' hidden >
<input type='text' name='palabra$i'>
<br>
";
}
//Termian el formulario con el botón que cambia el comportamiento de la página
echo "
<input type='submit' name='picafresa' value='Picafresa'>
</form>";
}
//sizeof me da el tamaño de los arreglos
die;
$Palabra = "Omar";
$Long = strlen($Palabra);
$Palabra = str_split($Palabra,1);
echo "Caracteres: ".$Long."<br>";
echo $Palabra[0]."<br>";
echo $Palabra[1]."<br>";
echo $Palabra[2]."<br>";
echo $Palabra[3]."<br>";
die;
for ($i=0; $i < 4; $i++) {
echo $palabras [$i]."<br>";
/*if ($i < 3) {
echo ", ";
}*/
}
/*
if(shuffle($Palabra)){
echo "Revuelto";
}else{
echo "No revuelto";
}
echo $Palabra."<br>";
*/
die;
//conteo inicia en la posicion 0, el conteo ninaliza en la posicion menor a 4 y el conteo incrementa
for ($i=0; $i < 4; $i++) {
$palabras [$i];
/*if ($i < 3) {
echo ", ";
}*/
}
echo "\n";
shuffle ($palabras);
foreach ($palabras as $palabrades){
echo "$palabrades "."\n";
}
#Para esté código me apoyaron por que me resulto complejo
?>
Buenos día,
Desarrolle el problema de la siguiente manera:
<?php
$data = $_REQUEST;$palabrasCorrectas =["palabraUna"=>"sol","palabraDos"=>"carro","palabraTres"=>"elefante"];foreach($data as$propiedad=> $valor){if($propiedad ==="palabraUna"){if($valor === $palabrasCorrectas[$propiedad]){ echo "Palabra correcta! escribiste: $valor y la palabra que esperabamos es: {$palabrasCorrectas[$propiedad]}"; echo "<br>";}else{ echo "Escogio la palabra incorrecta: $valor"; echo "<br>";}}if($propiedad ==="palabraDos"){if($valor === $palabrasCorrectas[$propiedad]){ echo "Palabra correcta! escribiste: $valor y la palabra que esperabamos es: {$palabrasCorrectas[$propiedad]}"; echo "<br>";}else{ echo "Escogio la palabra incorrecta: $valor"; echo "<br>";}}if($propiedad ==="palabraTres"){if($valor === $palabrasCorrectas[$propiedad]){ echo "Palabra correcta! escribiste: $valor y la palabra que esperabamos es: {$palabrasCorrectas["$propiedad"]}"; echo "<br>";}else{ echo "Escogio la palabra incorrecta: $valor"; echo "<br>";}}}
Optimice un poco el código, ya que me di cuenta que no había necesidad de hacer 3 validaciones, y con solo un if, me entregaba el mismo resultado
<?php
$data = $_REQUEST;$palabrasCorrectas =["palabraUna"=>"sol","palabraDos"=>"carro","palabraTres"=>"elefante"];foreach($data as$propiedad=> $valor){if($valor === $palabrasCorrectas[$propiedad]){ echo "Palabra correcta! escribiste: $valor y la palabra que esperabamos es: {$palabrasCorrectas[$propiedad]}"; echo "<br>";}else{ echo "Escogio la palabra incorrecta: $valor"; echo "<br>";}}
<?php
$edades = [
4,
5,
7,
10,
'undefined age'
];
function espacios_correspondientes_en_la_bodega (array $edades) {
for ($i = 0; $i < count($edades); $i++) {
if(is_int($edades[$i])) {
if ($edades[$i] < 5) {
echo "<br>guarde sus juguetes en la parte inferior de la bodega.<br>";
} elseif ($edades[$i] >= 5 && $edades[$i] <= 7) {
echo "<br>guarde sus juguetes en la parte media de la bodega.<br>";
} else {
echo "<br>guarde sus juguetes en la parte alta de la bodega.<br>";
}
} else {
echo "<br>guarde sus juguetes en la bodega de al lado.<br>";
}
}
}
espacios_correspondientes_en_la_bodega ($edades);
Esta es mi solución, la hice de tal manera que escogiese unas palabras aleatorias dentro del array de palabras y también que generase aleatoriamente el desorden de cada palabra, se generan los inputs dependiendo de la cantidad de palabras necesaria
Yo creo que el problema esta bien, sin embargo, para poder comprender un planteamiento del problema se requiere una redacción perfecta para que se pueda interpretar.
Cuando dice en el planteamiento: Desarrollar una aplicación que muestre una lista de palabras en desorden se piensa que ordenada alfabéticamente esas palabras hasta que se explica el segundo punto ya puedes inferir que la palabra x es la que se van a desordenar sus letras para que el usuario busque esta.