• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

用Rust写一个控制台的俄罗斯方块

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、摘要

目前支持Win10的控制台和Ubuntu的终端正常显示(其他平台没试过,不同的终端可能会造成排序混乱);

运行图:

代码地址:https://github.com/Silentdoer/RustTetris

二、实现原理

2.1根本原理其实就是一个二维的Vec,即Vec<Vec<CanvasPixel>>,每一个CanvasPixel代表一个展示的最小单元,比如图中的方块

2.2每个方块是一个CanvasPiece,即每个CanvasPiece由四个CanvasPixel组成,每个CanvasPiece有它自己的原点坐标,供后续的旋转之类的判定;

2.3每个方块下降其实就是判断它里面的Piece的下一个坐标在Canvas里(Map)是空白还是,是则说明不允许下降(当然这部分判定还有一些其他情况要考虑,比如还没显示的部分,或者下一个坐标的Piece其实是自己的一部分等);

2.4每个方块的旋转也是根据原点旋转后的坐标是否是以及是否出界等判断来判断是否可以旋转;

2.5每次方块不能再下落时都要判断是否可以消除,消除则对Canvas进行下移;

2.6如果新的Piece不能下落,且存在Pixel的y轴是负数,说明游戏结束;

2.7 。。。上面是主要的一些判断内容,具体可以看代码里的canvas_piece里的can_rotate,rotate,can_dropdown,dropdown,in_self这些方法;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab - Matlab中存储及读取数据(转)发布时间:2022-07-18
下一篇:
小小知识点(七)——MATLAB中怎么保存和读取.mat文件发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap