
Objetivo de esta entrada
Publicamos el código fuente que usamos para la web del crucigrama. El código solo se carga cuando abres un archivo.
Herramientas utilizadas
- Next.js 15, React 19, TypeScript: sala de espera, sala de juego y API
- node:sqlite: guardado de las cuadrículas y de los registros de entradas
- gemma4 en Ollama: diseño de cuadrículas y redacción de pistas. Se llama a través de una API compatible con OpenAI, así que se puede cambiar por otro modelo.
- RSS de Google Noticias y API de la Wikipedia en coreano: titulares de actualidad y palabras aleatorias
- Ranking de frecuencias en coreano de OpenSubtitles: niveles de las palabras
Estructura de carpetas
- lib/puzzle.ts: configuración de dificultad, conversión de la cuadrícula en lista de pistas y comprobación de criterios
- lib/gridFill.ts: validación y corrección de cuadrículas, cuadrículas dibujadas de antemano, relleno de palabras y el colocador que une palabras
- lib/dynamicBank.ts: diseño de cuadrículas por la IA, redacción de pistas por la IA, palabras de noticias y de la wiki
- lib/words.ts, freqRanks.ts: banco de palabras y ranking de frecuencias
- lib/db.ts: base de datos de registros de partidas, guardado a medias y limpieza de cuadrículas vacías
- app/page.tsx, app/play/page.tsx: sala de espera y sala de juego
- app/api: API de cuadrícula nueva, guardado de registros, lista y continuación
- components/CrosswordBoard.tsx: dibujo de la cuadrícula
- scripts/text-agent.ts, ai-pipeline-test.ts: herramientas que prueban en texto el generador y el proceso de la IA
Para ejecutarlo, copia .env.local.example como .env.local y escribe la dirección del modelo. Si no hay modelo, las cuadrículas se crean solo con el banco de palabras y las palabras de la wiki. No se incluyen la base de datos de registros de partidas, los scripts de anuncios y despliegue ni el monitor del servidor.
Código fuente completo
32 archivos · 6788 líneas — abre una carpeta y haz clic en un archivo para cargar su código.
Raíz del proyecto
.env.local.example
Cargando el código…
next.config.ts
Cargando el código…
package.json
Cargando el código…
tsconfig.json
Cargando el código…
app/
app/api/game/[code]/move/route.ts
Cargando el código…
app/api/game/[code]/route.ts
Cargando el código…
app/api/game/abandon/route.ts
Cargando el código…
app/api/game/list/route.ts
Cargando el código…
app/api/game/route.ts
Cargando el código…
app/api/puzzle/route.ts
Cargando el código…
app/globals.css
Cargando el código…
app/layout.tsx
Cargando el código…
app/page.module.css
Cargando el código…
app/page.tsx
Cargando el código…
app/play/page.tsx
Cargando el código…
app/play/play.module.css
Cargando el código…
components/
components/CrosswordBoard.module.css
Cargando el código…
components/CrosswordBoard.tsx
Cargando el código…
lib/
lib/db.ts
Cargando el código…
lib/dynamicBank.ts
Cargando el código…
lib/freqRanks.ts
Cargando el código…
lib/gameTypes.ts
Cargando el código…
lib/gridFill.ts
Cargando el código…
lib/guest.ts
Cargando el código…
lib/puzzle.ts
Cargando el código…
lib/recentWords.ts
Cargando el código…
lib/services.ts
Cargando el código…
lib/words.ts
Cargando el código…
scripts/
scripts/ai-pipeline-test.ts
Cargando el código…
scripts/dev-with-ts.mjs
Cargando el código…
scripts/text-agent.ts
Cargando el código…
types/
types/node-sqlite.d.ts
Cargando el código…
COMMENTS · CHAPTER 04
El código fuente completo y las herramientas utilizadas 0 comentarios
Todavía no hay comentarios. Deja una pregunta o algo que quieras añadir.
Para publicar un comentario, empieza con Google y registra un apodo y un correo.
Empezar con Google