Skip to content
UCAS-yangxbPublic

About

建这个仓库是为了熟悉整个git操作流程,内容是一个贪吃蛇游戏

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

Repository files navigation

snake

建这个仓库是为了熟悉整个 git 操作流程,内容是一个霓虹视觉风格的贪吃蛇游戏。

在线试玩

玩法

打开页面先选模式,也可以直接按 1 或 2。

  • 长方形棋盘:活动区按窗口比例铺满整个屏幕,短边固定 20 格、长边随窗口延伸(宽屏下横向格子明显更多),格子大小与光效同步等比缩放;棋盘越大食物越多,避免在空旷地图里找不到吃的
  • 开局等待:进入对局后蛇不会立刻移动,画面上会提示「按方向键开始」;单人按一次即可,双人对战需要两位玩家各按一次方向键才一起出发,避免还没反应过来就被蛇带着走
  • 单人模式:方向键或 WASD 控制,吃到食物加 10 分,每累计 50 分升一级并自动提速,撞墙或咬到自己结束
  • 双人对战:两人共用一把键盘,玩家 1 用 W A S D(青色),玩家 2 用方向键(橙色),棋盘上同时有 3 个食物
    • 谁先撞墙、咬到自己或撞到对手的身体就算输,两个蛇头正面相撞判平局
    • 对战速度固定,升级机制只在单人模式生效,保证公平
  • 游戏中按 Esc 可随时回到模式选择,退出对局不会写入成绩

文件说明

文件 说明
index.html 游戏本体,含单人与双人对战两种模式,结束后可跳转到成绩页
scores.html 成绩记录页,含全部场次时间线、单人排行榜与对战战绩统计
Dockerfile 用 nginx 托管静态页面的镜像定义
.github/workflows/publish-image.yml 自动构建镜像并推送到 ghcr.io 的工作流
LICENSE 开源许可(Apache-2.0)

本地运行

直接双击 index.html 即可,无需构建、没有依赖。

最高分保存在浏览器的 localStorage.snakeHighScore,游戏页与成绩页共用这一份数据。

成绩记录

每局结束都会写入一条记录,存在浏览器的 localStorage.snakeRecords 里,最多保留最近 100 场。成绩页提供三个视角:

  • 概览:总场次、单人最高分、对战战绩(玩家 1 胜 / 玩家 2 胜 / 平局)
  • 记录明细:按时间倒序列出每一场,显示时间、模式与成绩,可按「全部 / 单人 / 对战」筛选
  • 单人排行榜:所有单人成绩按分数从高到低排序,前三名带金、银、铜配色

单人记录的字段是分数、等级、蛇长与用时;对战记录保存胜者、双方分数与蛇长、落败方死因。旧版本只记录过最高分(localStorage.snakeHighScore),成绩页在没有新记录时会把它作为兜底显示。

容器运行

镜像公开托管在 GitHub Packages,可以直接拉取运行:

docker run -p 8080:80 ghcr.io/ucas-yangxb/snake:latest
# 浏览器打开 http://localhost:8080

镜像标签的生成规则:

触发方式 产生的标签
推送 v* 版本标签 1.2.0、1.2、latest
推送到 main main、sha-<短SHA>
手动触发工作流 按分支名与提交打标签,可额外指定一个标签

镜像基于 nginx:1.27-alpine,内部只包含 index.html 与 scores.html 两个页面,并配置了 HEALTHCHECK。

分支约定

  • main:可发布的稳定版本,每次提交都会自动构建镜像
  • 功能开发走独立分支(例如 feat/xxx、docs/xxx),完成后通过 Pull Request 合并回 main

About

建这个仓库是为了熟悉整个git操作流程,内容是一个贪吃蛇游戏

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages