
Objetivo deste post
Publicamos o código-fonte usado na web de palavras cruzadas. O código só é carregado quando você abre um arquivo.
Ferramentas usadas
- Next.js 15, React 19, TypeScript: lobby, sala de jogo, APIs
- node:sqlite: armazenamento das grades e dos registros de entradas
- gemma4 no Ollama: projeto da grade e escrita das pistas. Como é chamado por uma API compatível com a OpenAI, pode ser trocado por outro modelo.
- RSS do Google Notícias e API da Wikipédia em coreano: manchetes de atualidades e palavras aleatórias
- Ranking de frequência do coreano do OpenSubtitles: níveis das palavras
Estrutura de pastas
- lib/puzzle.ts: configuração de dificuldade, transformação da grade em lista de pistas, verificação dos critérios
- lib/gridFill.ts: validação e correção da grade, grades desenhadas de antemão, preenchimento de palavras, posicionador que encaixa palavras
- lib/dynamicBank.ts: projeto da grade pela IA, escrita das pistas pela IA, palavras de notícias e da wiki
- lib/words.ts, freqRanks.ts: banco de palavras e ranking de frequência
- lib/db.ts: banco de registros de partidas, salvamento parcial, limpeza de grades vazias
- app/page.tsx, app/play/page.tsx: lobby e sala de jogo
- app/api: APIs de grade nova e de salvar, listar e retomar registros
- components/CrosswordBoard.tsx: desenho da grade
- scripts/text-agent.ts, ai-pipeline-test.ts: ferramentas que testam em texto o gerador e o processo da IA
Para rodar, copie .env.local.example para .env.local e coloque o endereço do modelo. Sem modelo, as grades são criadas só com o banco de palavras e as palavras da wiki. O banco de registros de partidas, os scripts de anúncios e de implantação e o monitor do servidor não foram incluídos.
Código-fonte completo
32 arquivos · 6.788 linhas — abra uma pasta e clique em um arquivo para carregar o código.
Raiz do projeto
.env.local.example
Carregando o código…
next.config.ts
Carregando o código…
package.json
Carregando o código…
tsconfig.json
Carregando o código…
app/
app/api/game/[code]/move/route.ts
Carregando o código…
app/api/game/[code]/route.ts
Carregando o código…
app/api/game/abandon/route.ts
Carregando o código…
app/api/game/list/route.ts
Carregando o código…
app/api/game/route.ts
Carregando o código…
app/api/puzzle/route.ts
Carregando o código…
app/globals.css
Carregando o código…
app/layout.tsx
Carregando o código…
app/page.module.css
Carregando o código…
app/page.tsx
Carregando o código…
app/play/page.tsx
Carregando o código…
app/play/play.module.css
Carregando o código…
components/
components/CrosswordBoard.module.css
Carregando o código…
components/CrosswordBoard.tsx
Carregando o código…
lib/
lib/db.ts
Carregando o código…
lib/dynamicBank.ts
Carregando o código…
lib/freqRanks.ts
Carregando o código…
lib/gameTypes.ts
Carregando o código…
lib/gridFill.ts
Carregando o código…
lib/guest.ts
Carregando o código…
lib/puzzle.ts
Carregando o código…
lib/recentWords.ts
Carregando o código…
lib/services.ts
Carregando o código…
lib/words.ts
Carregando o código…
scripts/
scripts/ai-pipeline-test.ts
Carregando o código…
scripts/dev-with-ts.mjs
Carregando o código…
scripts/text-agent.ts
Carregando o código…
types/
types/node-sqlite.d.ts
Carregando o código…
COMMENTS · CHAPTER 04
O código-fonte completo e as ferramentas usadas 0 comentários
Ainda não há comentários. Deixe uma pergunta ou algo que queira acrescentar.
Para publicar um comentário, comece com o Google e registre um apelido e um e-mail.
Começar com o Google