俄罗斯方块源码解析(带下载)[1]

说在前头的:

自认为写程序也有那么一段时间了,对面向对象编程还是有那么一丁点理解 (虽然现在一说OOP之类的文章 啊 网上满天飞)。

大师称不上 见笑了哈 小菜一个。

搞asp.net这么久了,网上一搜什么 web方面的 满天飞

搜几篇winform的文章 弄死找不到,本人很菜。一个winform快捷键的问题解决不了

(winform上方了文本框控件 点了文本框或者按钮后 winform的keydown事件就失灵了 焦点就停留在文本框或者 按钮上)

(以前没弄过 并且很菜 无奈最后只好把面板上的按钮 控件去掉了,顺便说下 哪位高手知道的话指点下 感激不尽)

网上搜了半天还是没解决,哎 这年头 人都喜欢跟风。

本来是想找个c#的俄罗斯方块源码研究下的 但是木找到。

这几天中秋 无聊 ,于是突发奇想自己写个玩玩。

本人发誓 在写这个程序之前绝对木有看过 任何其他俄罗斯方块的源码,我写的这个也是俄罗斯方块

绝对正宗俄罗斯滴 变态版 ,不是俄罗斯滴你找我

在这之前先废话下 别打我 ^_^

好 正题:

基本结构:

shape类    代表四个方块的组合(组合的方式在shape里面定义 )

gameArea类  容器(用来存放方块的,存放堆积起来的方块)

game类    主调程序,(包括开始游戏 显示容器里堆积起来的方块 计算分数 左移 右移 等)

这看上去貌似有点象 MVC设计模式 ,差不多吧 反正面向对象编程嘛 ,我又不是大师 有那么点对象的设计的感觉就行

如图:

主调程序里的成员列表:

display()     显示容器里堆积起来的方块 跟正在下落的方块

go()       主调函数,这个只可意会 大概意思就是 1 Step(走一步 判断如果没有游戏结束 则又走一步 如此往复。。。直到游戏结束)

left()      左移

right()      右移

pivot()      顺时针旋转(这绝对是全新的算法 非硬编码 自动判断图形轮廓 然后根据一个基准点旋转,跟fc上的那种旋转不一样的)

start()      开始一个游戏

end()      结束一个游戏

score      得分

isOver      游戏是否结束

如图(只看公共方法即可):

关于代码请看第二章

原文地址:https://www.cnblogs.com/assassinx/p/1833674.html