sopatizador
v2.0.1
Published
sopa de letras
Readme
Sopatizador 🧩🔍
Generador avanzado de sopas de letras en TypeScript para Node.js y navegadores, con soporte para cruce inteligente de palabras.
Características ✨
- ✅ Generación de sopas de letras con dimensiones personalizables
- ✅ Colocación inteligente de palabras (horizontal, vertical y diagonal)
- ✅ Cruce de palabras cuando las letras coinciden
- ✅ Generación de letras aleatorias para espacios vacíos
- ✅ Totalmente escrito en TypeScript
- ✅ Configuración flexible y fácil de usar
Instalación
npm install sopatizador
# o
yarn add sopatizadorUso básico
import { Sopatizador } from 'sopatizador';
// Crear una sopa de letras 15x15
const sopatizador = new Sopatizador(15, 15);
// Agregar palabras
sopatizador.addWord("JAVASCRIPT");
sopatizador.addWord("TYPESCRIPT");
sopatizador.addWord("NODEJS");
// Obtener la sopa de letras generada
const sopaDeLetras = sopatizador.getAlphabetSoup();
// Imprimir la sopa de letras
sopaDeLetras.forEach(fila => {
console.log(fila.map(celda => celda.text).join(' '));
});API
Sopatizador(width: number = 12, height: number = 12)
Constructor que crea una nueva instancia del generador.
addWord(word: string): void
Agrega una palabra a la sopa de letras.
getAlphabetSoup(): Cell[][]
Devuelve la sopa de letras generada como matriz bidimensional.
Tipos
interface Cell {
text: string; // Letra de la celda
decorate: boolean; // Indica si es parte de una palabra
}
interface Position {
x: number; // Posición horizontal (columna)
y: number; // Posición vertical (fila)
}Ejemplo avanzado
import { Sopatizador } from 'sopatizador';
// Crear una sopa de letras 20x20
const sopa = new Sopatizador(20, 20);
// Lista de palabras para incluir
const palabrasTecnologia = [
"JAVASCRIPT",
"TYPESCRIPT",
"REACT",
"ANGULAR",
"VUE",
"NODEJS",
"EXPRESS",
"MONGODB",
"WEBSOCKET",
"GRAPHQL"
];
// Agregar todas las palabras
palabrasTecnologia.forEach(palabra => {
try {
sopa.addWord(palabra);
} catch (error) {
console.error(`No se pudo agregar: ${palabra}`);
}
});
// Función para imprimir la sopa de letras
function imprimirSopa(sopa: Cell[][]) {
console.log('\nSOPA DE LETRAS:\n');
sopa.forEach(fila => {
console.log(fila.map(c => c.decorate ? `[${c.text}]` : ` ${c.text} `).join(''));
});
console.log('\nPalabras incluidas:', palabrasTecnologia.join(', '));
}
imprimirSopa(sopa.getAlphabetSoup());Contribuciones 🛠️
Las contribuciones son bienvenidas. Sigue estos pasos:
- Haz fork del proyecto
- Crea tu branch (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Añade nueva funcionalidad') - Push al branch (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Licencia 📄
MIT © Armando Rojas
Contacto 📧
- GitHub: @rojasarmando
- LinkedIn: Armando Rojas
- Email: [email protected]
✨ ¡Diviértete generando sopas de letras! ✨
