# Tetris **Repository Path**: zhoutk/Tetris ## Basic Information - **Project Name**: Tetris - **Description**: 俄罗斯方块游戏,利用electron方式来写node.js桌面程序。 - **Primary Language**: NodeJS - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 27 - **Forks**: 11 - **Created**: 2016-05-18 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: games **Tags**: None ## README ## 更新 使用 Tauri 2.X 接管桌面外壳,继续沿用原来的 canvas 版本逻辑。 旧的版本保留在历史分支。 --- # 历史 ## 项目背景 在折腾ES6,突然想起大学时用c语言写过俄罗斯方块,本项目中主要是利用ES6的Class特性进行面向对象编程。同一时间,我在看约翰.霍兰的《涌现》和KK的《失控》,产生了对人工智能的莫大兴趣,也对面向对象思想有了更深入的理解,终极目标是想写一个自动玩俄罗斯方块的小机器人。 ##设计思路 - 全面应用面向对象的设计思想,让功能内聚性强。 - 把七种方块想成独立的“生物”对象,让它能“看”到周围的世界。 - 没有使用传统的大的二维数组来表示游戏场面状态,而是让tetris自己去“看”。 - 使用html5的canvas来完成,比较象cgi编程。 - 使用最少的canvas特性,只用了fillRect,strokeRect,getImageData,clearRect等几个函数。 ## 运行方法 现在使用 Tauri 2 + Vite 运行。 安装依赖: ``` npm install ``` 开发运行: ``` npm run tauri:dev ``` 构建桌面程序: ``` npm run tauri:build ``` 如果后续要生成安装包,需要补充 `src-tauri` 下的图标资源后再开启 bundle。 ##交流博客 我会把心得体会写在我的博客中,地址如下: ``` https://segmentfault.com/blog/zhoutk ``` ##最新进度 - 可以手动玩俄罗斯方块 - 提供自动模式,简单评估算法,平均大概能消500行左右,现最高记录消除1398行。