本文的目的

公开填字游戏网页使用的源代码。只有在展开文件时才会加载代码。

使用的工具

  • Next.js 15、React 19、TypeScript:大厅、游戏房间、API
  • node:sqlite:保存网格和输入记录
  • Ollama 上的 gemma4:网格设计和出题。通过兼容 OpenAI 的 API 调用,所以可以换成其他模型。
  • 谷歌新闻 RSS、韩语维基百科 API:时事头条和随机单词
  • OpenSubtitles 韩语频率排名:单词等级

文件夹结构

  • lib/puzzle.ts:难度设置、把网格转换为题目列表、标准检查
  • lib/gridFill.ts:网格验证与校正、预先画好的网格、单词填充、单词连接式放置器
  • lib/dynamicBank.ts:AI 网格设计、AI 出题、新闻与维基单词
  • lib/words.ts、freqRanks.ts:词库和频率排名
  • lib/db.ts:记录数据库、中途保存、清理空网格
  • app/page.tsx、app/play/page.tsx:大厅和游戏房间
  • app/api:新网格、记录保存、列表、继续解题 API
  • components/CrosswordBoard.tsx:绘制网格
  • scripts/text-agent.ts、ai-pipeline-test.ts:以文字形式测试生成器和 AI 流程的工具

运行时,把 .env.local.example 复制为 .env.local,并填入模型地址。没有模型时,只用词库和维基单词来生成网格。记录数据库、广告与部署脚本、服务器监控程序均未附上。

完整源代码

32 个文件 · 6,788 行 — 展开文件夹后点击文件即可加载代码。

项目根目录4 个文件
.env.local.exampletext · 9 行 · 319B

正在加载代码…

next.config.tstypescript · 16 行 · 353B

正在加载代码…

package.jsonjson · 24 行 · 597B

正在加载代码…

tsconfig.jsonjson · 21 行 · 592B

正在加载代码…

app/12 个文件
app/api/game/[code]/move/route.tstypescript · 50 行 · 1KB

正在加载代码…

app/api/game/[code]/route.tstypescript · 51 行 · 2KB

正在加载代码…

app/api/game/abandon/route.tstypescript · 15 行 · 522B

正在加载代码…

app/api/game/list/route.tstypescript · 17 行 · 539B

正在加载代码…

app/api/game/route.tstypescript · 45 行 · 2KB

正在加载代码…

app/api/puzzle/route.tstypescript · 74 行 · 2KB

正在加载代码…

app/globals.csscss · 57 行 · 1KB

正在加载代码…

app/layout.tsxtsx · 34 行 · 1KB

正在加载代码…

app/page.module.csscss · 225 行 · 3KB

正在加载代码…

app/page.tsxtsx · 172 行 · 6KB

正在加载代码…

app/play/page.tsxtsx · 861 行 · 29KB

正在加载代码…

app/play/play.module.csscss · 425 行 · 6KB

正在加载代码…

components/2 个文件
components/CrosswordBoard.module.csscss · 83 行 · 1KB

正在加载代码…

components/CrosswordBoard.tsxtsx · 98 行 · 3KB

正在加载代码…

lib/10 个文件
lib/db.tstypescript · 433 行 · 13KB

正在加载代码…

lib/dynamicBank.tstypescript · 360 行 · 14KB

正在加载代码…

lib/freqRanks.tstypescript · 404 行 · 8KB

正在加载代码…

lib/gameTypes.tstypescript · 63 行 · 1KB

正在加载代码…

lib/gridFill.tstypescript · 970 行 · 32KB

正在加载代码…

lib/guest.tstypescript · 60 行 · 2KB

正在加载代码…

lib/puzzle.tstypescript · 579 行 · 17KB

正在加载代码…

lib/recentWords.tstypescript · 33 行 · 891B

正在加载代码…

lib/services.tstypescript · 88 行 · 2KB

正在加载代码…

lib/words.tstypescript · 1,229 行 · 88KB

正在加载代码…

scripts/3 个文件
scripts/ai-pipeline-test.tstypescript · 41 行 · 1KB

正在加载代码…

scripts/dev-with-ts.mjsjavascript · 91 行 · 2KB

正在加载代码…

scripts/text-agent.tstypescript · 147 行 · 4KB

正在加载代码…

types/1 个文件
types/node-sqlite.d.tstypescript · 13 行 · 378B

正在加载代码…