这是什么
俄罗斯方蟹 (Crabtris) = Crab (蟹) + Tetris (俄罗斯方块)。 这是一个用 C 语言实现的、在终端运行的俄罗斯方块游戏。不过它的方块不是自上而下,而是横着走。
GitHub: https://github.com/wsgggws/Crabtris
游戏截图

设计哲学
蟹如人生呀,戏 T!
- 尺寸: 蟹身长 22 坐标点,宽 10 坐标点。
- 玩法: 方块向右前进,玩家控制上下移动与旋转。
- 极简: 没有开始选项,没有暂停功能。
- 硬核: 结束只能
Ctrl+c强制退出。 - 无尽: 能消列,但不计分数。只看你能坚持通过多少个障碍,玩多久。
技术实现
1. 地图设计
使用一个二维数组表示地图。虽然逻辑上有宽度,但可视区域只有 22 列。另外 3 行用于隐藏缓冲,以便随机产生新的方块。
(0,0)---------------> x (WIDTH)
|
| .
|
v y (HEIGHT)
2. 元素构成
- 固定的方块: 已经落下的死方块。
- 移动的方块: 玩家控制的活方块。
- 空气: 空白区域。
- 边界: 地图边缘。
3. 方块模型
使用 4 个坐标点表示一个方块 (Tetromino)。支持经典的 7 种方块形状 (I, J, L, O, S, T, Z)。
4. 动画原理
利用终端控制字符(ANSI Escape Codes)或 termios 库。
每一帧都将光标重置到 (0,0),然后重绘整个地图。通过高频的重绘(每秒 N 帧),利用视觉暂留形成动画效果。
