命令行工具 活跃维护

2048.cpp

plibither8/2048.cpp

🎮 用 C 语言编写的功能齐全的终端版游戏“2048”

2248
Stars 标星
322
Forks 分支
35
Watchers 关注
23
Open Issues
C++
主要语言
MIT
开源协议
5.0 MB
仓库大小
2 年前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:plibither8/2048.cpp
git clone https://github.com/plibither8/2048.cpp.git
git clone git@github.com:plibither8/2048.cpp.git
README.md master

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

2048.cpp

用C语言编写的游戏《2048》的终端版本。

:tada: 在GitHub的Twitter和Facebook页面上展示! :tada:

设置

该游戏和代码旨在原生运行于 GNU/Linux 和 MacOS 平台,但也增加了对 Windows 的跨平台兼容性。

需求

  • C 11 编译器(例如 g++、clang++、pgc++、icpc 等)
  • 几乎任何平台,包括:
    • Linux
    • MacOS
    • Windows(通过 Cygwin 或 Windows 子系统 Linux)
  • CMake 或 Meson

安装

  1. 在你偏好的目录中打开终端,然后克隆该项目:
    git clone https://github.com/plibither8/2048.cpp
  2. 请输入项目目录:
    cd 2048.cpp

对于 CMake 和 Meson,系统上的默认 C 编译器将被使用。如果您希望手动选择 C 编译器,可以选择性地添加 CXX=clang++ cmake 或 CXX=clang++ meson 等。

使用 CMake 构建

  1. 构建可执行文件并运行测试

    ctest -S setup.cmake
  2. 安装程序(可选)

    cmake --install build
  3. 运行程序并玩游戏!🎉

    2048    # run `build/2048` if game is not installed

或

使用 Meson 构建

  1. 生成构建配置

    meson build
  2. 构建可执行文件并运行测试

    meson test -C build
  3. 安装程序(可选)

    meson configure build --prefix=$HOME/.local
    meson install -C build
  4. 运行程序并玩游戏!🎉

    2048    # run `build/2048` if game is not installed

贡献

首先,感谢你的贡献 :smile:!有几点需要注意:

  • 如果你发现了一个 bug,或者有一个希望实现的功能,提出一个问题。

  • 如果你提交了一个 pull request,请确保在修改了源代码(包括 .cpp 和 .hpp 文件)后运行 clang-format。

  • 在你的本地仓库中,运行 git update-index --skip-worktree ./data/*.txt 以确保对数据文件的更改不会被 git 跟踪,从而不会被暂存。

感谢

我非常感谢以下人员的帮助:

  • Michael Hirsch
    • 清理了代码,
    • 以更高效的方式组织了头文件以提高构建效率,
    • Added AppVeyor CI,
    • 添加了 Meson 构建系统,修复了 CMake,并添加了安装功能。
  • Aiman Ismail 添加了对 Vim 键绑定的支持。
  • Patrik Huber 修复了 Readme 中的拼写错误。
  • zestze 将 cstdlib rand 更改为 C 的随机整数生成器。
  • Pascal J. Bourguignon 添加了对 ANSI 箭头键的支持。
  • Jean-Michaël Celerier 添加了 CMakeLists.txt 文件。
  • comwrg 使统计和高分中的持续时间可读,将秒换算为分钟和小时。
  • Christian Bundy 用框图字符替换了丑陋的 -, 和 |
  • Tor E Hagemann 修复了#10问题,导致打印了不需要的字符 1。
  • farazxameer 实现了保存游戏状态和从保存状态继续游戏的功能,完善了游戏逻辑。
  • drodil 实现了检查数据文件存在性的功能,修复了#12问题。
  • Aviskar KC 在游戏说明中添加了箭头键。
  • Peter Squicciarini 修复了 README 指南。
  • Mark Fischer, Jr. 修复了拼写错误。
  • Hugo Brandão 完全重新组织了现有项目结构,并更新了构建方法以使用 CMake。
  • Alton Alvarez 修正了一个拼写错误。
  • cawvyoct 使源代码更容易阅读:移除了大部分魔法数字,使用变量替代以便维护。实现了 clang-format。
  • Cong 编辑了 Game 类的构造函数。
  • Tien Do 在主菜单中添加了“退出”选项,更新了 CMakeLists.txt 文件,并将 Color 枚举改为作用域枚举。
  • ScorrMorr 使许多方法为 const。
  • tangmengqiu 修正了 readme 中导致错误的指令步骤。

维护者

备注

[GameBoard].getTile(2,0) 指的是第 2 行的第 0 个格子(或列),在这种情况下,x = 0,y = 2。具体的格子在下述游戏棋盘中由 '@' 符号表示:

注意:row(行)和 column(列)的索引从 0 开始。

┌──────┬──────┬──────┬──────┐
│      │      │      │      │
├──────┼──────┼──────┼──────┤
│      │      │      │      │
├──────┼──────┼──────┼──────┤
│   @  │      │      │      │
├──────┼──────┼──────┼──────┤
│      │      │      │      │
└──────┴──────┴──────┴──────┘

待办事项

  • 添加开始菜单 [2018/04/19]
  • 保存最高分 / 分数 [2018/04/21]
  • 保存游戏状态并从已保存的游戏状态继续游戏
  • 人工智能 (无限期放弃)

许可

版权所有 (c) Mihir Chaturvedi。保留所有权利。

根据 MIT 许可证获得许可。

本站来源与版权声明
  • 本文标题:2048.cpp - 🎮 用 C 语言编写的功能齐全的终端版游戏“2048
  • 本文链接:https://www.cn121.com/cli/plibither8-2048-cpp.html
  • 原项目:plibither8/2048.cpp 版权归原作者 plibither8 及贡献者所有
  • 收录信息:本站于 2026-10-18 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 plibither8/2048.cpp。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。