跳到主要内容
版本:Current

功能特性

游戏机制

  • A/B 二选一,自适应倒计时(15–40 秒,随存活人数变化)
  • 未答题淘汰、多数派淘汰、平局(2 人)与唯一获胜者判定
  • 答题 幂等提交(Redis SET NX
  • 游戏开始后 禁止新玩家中途加入(已有玩家可重连)

登录与身份

支持 国内 / 美国 两套互斥方案,详见 认证场景

国内场景

玩家(登录码)

  1. Admin 发布登录码 → 6 位数字
  2. Display 大屏展示码与已加入人数
  3. 玩家在 /login 输入 → 玩家 #NNN 显示名

工作人员(Staff)

  • /staff-login:白名单邮箱 + STAFF_*_PASSWORD
  • 与玩家入口分离,不使用 OAuth

玩家 IDlocalStorage UUID,供 verify-code 复用编号。

美国场景

三端统一 OAuth

  • /loginUsLoginPanel → Google / Azure AD
  • Admin / Display 由 OAuth 邮箱匹配 ADMIN_EMAILS / DISPLAY_EMAILS
  • 无登录码、无 /staff-login(默认构建)
  • 身份为真实 email,非 玩家 #NNN

管理端

  • 发布 / 关闭 登录码
  • 发布题目(13 道预设 + 自定义字段)
  • 重置游戏(清空 Redis 状态、登录码、玩家注册表)
  • 实时统计:存活/淘汰、A/B 票数、轮次

展示端

  • LoginCodeDisplay:全屏登录码 + 当前人数
  • 题目、倒计时、淘汰动画
  • WinnerModal / TieModal(显示 winnerDisplay / finalistsDisplay
  • 断线重连后自动补发 login_code_status

可靠性与性能

能力说明
Redis 运行时状态毫秒级读写
PostgreSQL 快照Redis 崩溃后恢复存活列表
GameResult 归档游戏结束持久化胜负
负载测试200+ 并发,flood-test/ 含登录码 E2E 脚本

UI 主题

主题环境变量风格
SpringNEXT_PUBLIC_THEME=spring(默认)春节/cloud 背景
MarioNEXT_PUBLIC_THEME=mario像素风选项与字体

主题类名通过 globals.csshtml[data-theme="..."] 切换。