双界面版本
普通终端版与 ncurses 版并存,可按需编译使用。
Oimo.js · lo-th/Oimo.js
Oimo.js 是一个面向 JavaScript 的轻量级 3D 物理引擎,由 OimoPhysics 完整转写而来;OimoPhysics 最初由 Saharan 使用 ActionScript 3.0 编写。项目提供主页、文档以及基础、复合物体(椅子、胶囊)、布娃娃和碰撞等示例页面。主页与文...
2048-cli 是经典数字合并游戏 2048 的命令行实现,目标平台是 Linux 终端。它把原本运行在浏览器里的滑动合并玩法搬到了纯文本界面中,用 C 语言编写,不依赖图形桌面环境,因此可以在 SSH 会话、服务器终端或本地 shell 里直接游玩。
仓库说明中明确提到,项目当前提供两种可运行的版本:一种是直接面向普通终端的实现,另一种基于 ncurses 库。两者共享同一套游戏逻辑,区别主要在界面渲染与输入处理层。这种分层设计也让项目具备了扩展性——如果想加入新的图形界面,只需新建一个 .c 文件实现 gfx.h 中声明的全部函数,并在 Makefile 中添加对应条目即可。
项目本身是对 Gabriele Cirulli 原作 2048 的命令行复刻,README 中给出了原项目的链接,方便对照玩法规则。
普通终端版与 ncurses 版并存,可按需编译使用。
界面层通过 gfx.h 抽象,新增界面只需实现该头文件中的函数并补充 Makefile 条目。
默认假定使用 VT100 兼容终端;若终端不兼容,可在 Makefile 中移除 `-DVT100` 编译标志。
默认使用 hjkl 与 wasd 两组移动键,q 键退出当前游戏。
支持查看用法、查看当前最高分、开关颜色、开关动画、启用 AI(可选择是否显示游戏画面)、重置最高分、设置棋盘尺寸、设置每回合方块生成速率等。
README 提到在 el >= 5(CentOS、RedHat Enterprise Linux、Scientific Linux、Oracle)与 Fedora >= 19 上可通过包管理器安装 `2048-cli[-nocurses]`,el 系列需要启用 EPEL 仓库。
获取源码与编译的基本流程为:
git clone https://github.com/tiehuis/2048-cli.git
make
编译前需要注意依赖与终端环境:
termios.h,并假定当前使用的是 VT100 兼容终端。-DVT100 标志。apt-get install libncurses5-dev 获取。在 el >= 5 系列与 Fedora >= 19 上,也可以直接使用包管理器安装 2048-cli[-nocurses];el 系列需要预先启用 EPEL 仓库。README 还提供了在 repl.it 上运行的徽章链接,便于在线体验。
从 README 可以确认的工程结构信息包括:
gfx.h 定义接口。-DVT100 控制终端兼容策略。这些设计使得项目既是一个可直接游玩的完整小游戏,也是一个适合阅读的终端界面编程示例:如何用 termios 处理按键输入、如何用 ncurses 绘制界面、如何通过头文件抽象出可替换的渲染层。
游戏规则与原版 2048 一致:在棋盘上滑动方块,相同数字的方块相撞后合并,目标是不断累积出更大的数字。命令行版把棋盘以文本形式绘制在终端中,通过按键完成上下左右移动。
操作方式如下:
hjkl 与 wasd:默认的移动按键,两套布局任选其一。q:退出当前游戏。README 中列出的命令行选项包括:
-h:打印程序用法。-H:打印当前最高分。-C:禁用颜色支持(默认行为)。-c:在终端支持的情况下启用颜色。-a:启用动画(默认行为)。-A:禁用动画。-i:启用 AI,但不显示游戏画面。-I:启用 AI,并显示游戏画面。-r:重置最高分,执行前会提示用户确认。-s SIZE:设置游戏棋盘的尺寸。-b RATE:设置每回合方块生成的速率。本项目采用 MIT 许可证,具体条款见仓库中的 LICENSE 文件。
micropolisJS 是把 Micropolis(开源版《模拟城市》类城市模拟游戏)移植到 J...
《Dead Ascend》是一款手绘风格的 2D 点击式(point-and-click)冒险解谜游戏...
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...