Benben's Website

猜词游戏

一个基于Web的交互式猜词游戏,玩家通过点击屏幕键盘或物理键盘猜测单词中的字母。游戏实时统计按键数据(正确/错误/无效)、字母匹配率、完成进度和用时,并支持通过URL分享自定义单词。

游戏截图章节

基于Web的交互式猜词游戏界面

核心功能特性章节

  • 核心玩法:猜测隐藏单词的字母,每猜对一个字母,单词中所有对应位置都会揭示。
  • 双输入方式
    • 虚拟键盘(响应式布局,PC/移动端自适应)
    • 物理键盘(监听keydown事件)
  • 实时统计面板
    • 总按键次数 / 速率
    • 正确/错误/无效按键统计(次数、速率、占比)
    • 字母匹配数(每个按键平均匹配字母数、速率)
    • 完成百分比(进度/按键/秒)
    • 游戏用时
  • 分享机制
    • 点击「分享」按钮生成当前单词的 Base64 编码链接
    • 通过 URL 参数?w=<base64>直接加载指定单词
  • 视觉反馈
    • 正确字母按键变绿,错误字母按键变红,无效重复按键忽略
    • 单词区域以下划线展示未猜字母,已猜字母直接显示
  • 日志系统:所有操作(游戏开始、按键结果、分享等)都记录在侧边日志区,带时间戳。
  • 新游戏:可随时重置随机单词(内置约5000个英文单词库)或通过分享链接开始新游戏。

技术栈章节

  • HTML5 / CSS3:响应式Grid布局(两栏 → 单栏自适应)
  • jQuery 4.0.0:DOM操作、事件绑定、动画帧优化
  • 原生 JavaScript:核心游戏逻辑、日期格式化、Base64编解码

快速开始章节

下载项目章节

将提供的index.html保存到本地(或部署到 Web 服务器)。

运行游戏章节

直接用浏览器打开index.html即可开始游戏(无需任何构建步骤)。

游戏代码已内嵌所有样式、脚本和单词库,单文件即可运行。

游戏规则章节

  • 页面上方展示待猜单词(以下划线_表示未猜字母)。
  • 点击虚拟键盘上的字母(或直接按物理键盘字母键)猜测。
    • 正确猜测:单词中所有相同字母位置会揭示,该按键变为绿色。
    • 错误猜测:按键变为红色,无字母匹配。
    • 重复猜测:已猜过的字母(无论对错)再次点击无效,计入“无效按键”。
  • 猜出所有字母后游戏胜利,计时停止。
  • 可通过“新游戏”按钮重置随机单词,“显示答案”直接揭示单词并结束游戏。

分享单词章节

点击“分享”按钮,游戏会生成当前单词的Base64编码,并打印一条包含完整链接的日志。该链接可直接复制发送给朋友,对方打开后会自动加载相同的单词(无需手动输入)。

项目结构章节

index.html    单文件应用,包含:
├── <style>    全部CSS样式(布局、键盘、按钮等)
├── <body>    DOM结构(单词区、信息面板、日志区、控制按钮、虚拟键盘)
└── <script>    所有游戏逻辑:
    ├── 工具函数(数组填充、随机选择、日期格式化等)
    ├── 虚拟键盘生成与渲染
    ├── 单词库(内置约5000个常见英语单词)
    ├── 游戏状态管理(guess数组、按键统计、计时)
    ├── 统计面板自动刷新(使用requestAnimationFrame)
    ├── 事件绑定(键盘点击、物理按键、按钮操作)
    └── 分享链接解析与Base64解码

核心代码说明章节

单词库章节

变量words存储了约5000个英文单词(以逗号分隔的字符串)。新游戏时随机选取单词库中的单词。

统计面板更新章节

renderInfo函数使用闭包缓存所有DOM元素,通过数据对象一次性更新。updateInfo()会每帧调用该函数,计算用时、速率、百分比等,并刷新面板。

分享链接原理章节

点击“分享”时,btoa(wordRaw)将原始单词编码为Base64,拼接成?w=xxx形式的 URL。页面加载时,读取window.location.search,若存在w参数,尝试Base64解码后作为初始单词。

自定义配置章节

修改单词库章节

直接编辑代码中words数组,增加或替换为自己的单词列表。

调整键盘布局章节

修改rows数组,例如:

var rows = ["qwertyuiop", "asdfghjkl", "zxcvbnm,"]; // 逗号代表空按键,仅用作布局

兼容性章节

  • 桌面浏览器:Chrome, Firefox, Edge, Safari
  • 移动端:iOS Safari, Android Chrome
  • IE兼容:游戏核心逻辑基于ES5,但部分功能在IE中不支持,推荐使用现代浏览器。

注意事项章节

  • 物理键盘输入会自动转为小写匹配,单词中的字母比较时不区分大小写。
  • 游戏开始时,非字母字符(如标点、空格)会被自动视为“已猜”,不计入需要猜测的字母数。
  • “显示答案”按钮会直接揭示所有字母,游戏标记为胜利,不再接受新输入。