Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

俄罗斯方块 CLI

使用 Ink 框架和 TypeScript 实现的命令行俄罗斯方块游戏,尽可能还原原版游戏体验。

功能特性

  • 标准游戏规则:10×20 的游戏面板,7 种方块类型(I、O、T、S、Z、J、L)
  • 完整的游戏机制
    • 方块旋转、左右移动、下落
    • 自动消除完整的行
    • 标准计分系统(1行40分、2行100分、3行300分、4行1200分,乘以等级+1)
    • 难度递增(每 10 行提升一个等级,下落速度加快)
  • 游戏状态:暂停/继续、游戏结束检测
  • 彩色显示:每种方块都有独特的颜色
  • 下一个方块预览
  • 实时得分、行数、等级显示

安装

npm install

运行

npm start

或编译后运行:

npm run build
npm run play

控制键

按键 功能
/ A 左移
/ D 右移
/ W 旋转
/ S 软下落(加速下落)
Space 硬下落(立即放下)
P 暂停/继续
Q 退出游戏
R 重新开始

支持两种控制方式:

  • 方向键← → ↑ ↓
  • WSAD 键A D W S(也支持大小写)

游戏规则

  1. 方块从顶部随机生成
  2. 玩家可以操作方块左右移动和旋转
  3. 方块自动向下下落
  4. 当一行被填满时,该行会被消除
  5. 消除行数越多,一次获得的分数越高
  6. 每 10 行消除后,游戏难度增加
  7. 当新方块无法放置在游戏面板中时,游戏结束

计分系统

  • 1 行:40 × (等级+1)
  • 2 行:100 × (等级+1)
  • 3 行:300 × (等级+1)
  • 4 行(Tetris):1200 × (等级+1)

项目结构

src/
├── types.ts          # 类型定义
├── tetromino.ts      # 方块定义和旋转逻辑
├── game.ts           # 游戏核心逻辑
├── App.tsx           # React/Ink UI 组件
└── index.tsx         # 应用入口

技术栈

  • React - UI 框架
  • Ink - CLI React 渲染器
  • TypeScript - 类型安全
  • Chalk - 终端颜色输出

开发

  • 编译:npm run build
  • 开发运行:npm start(使用 ts-node)
  • 生产运行:npm run play(使用编译后的 JavaScript)

许可证

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages