
Se pide desarrollar un generador de Sopas de letras (Word Search) utilizando HTML, CSS y Javascript. La idea es proporcionar palabras y que el sistema genere una sopa de letras que sea interactiva y funcional. Aunque no es obligatorio, se sugiere utilizar OOP para este ejercicio.
resolved para mostrarlas en verde.Recomendaciones y sugerencias para desarrollar:
WordSearch, WordPlacer y WordSelection.WordSearch se ocupa de generar la sopa de letras.WordPlacer se encarga de buscar la posición en la que colocar las palabras.WordSelection se encarga de detectar cuando el usuario pulsa en palabras.new WordSearch(12, words) se crea nuestra sopa de letras de 12x12.class WordSearch {
constructor(size, words) {} // Tareas de inicialización
generate() {} // Genera palabras y llama a fillRandom()
fillRandom() {} // Rellena huecos vacios con letras al azar
getRandomLetter() {} // Devuelve una letra al azar
toString() {} // Devuelve la sopa en string
toElement() {} // Devuelve la sopa en DOM
appendTo(container) {} // Añade la sopa al DOM container
getStats() {} // Opcional: Estadísticas
}
class WordPlacer {
constructor(grid) {} // Crea sistema de colocación de palabras
placeWord(word) {} // Reintenta colocar palabras
canPlace(word, x, y, dx, dy) {} // Comprueba si es posible colocar
doPlace(word, x, y, dx, dy) {} // Coloca la palabra en el grid
}
class WordSelection {
constructor(ws) {} // Escucha eventos pointer down/up/move
toIndex({ x, y }) {} // Pasa celda {x,y} a index (array 2d->1d)
toCell(index) {} // Pasa index a celda {x,y} (array 1d->2d)
expandSelection(start, end) {} // Pasa celda 1 y última, devuelve todas
}
50px x 50px¿...o prefieres un roadmap?
Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.
Puedes encontrar más sobre mi en Manz.dev