日期:2014-05-20  浏览次数:20831 次

C#做的俄罗斯方块
前段时间刚把C#的继承,多态学完,老师带着我们用OO思想做了这个俄罗斯方块,把关键的代码都给我们将了,我又自己扩展了一下。游戏的基本功能是做完了,有些地方做得还不太理想 希望CSDN的各位大牛能帮忙改改。

问1、在刷新游戏界面的时候 画面会出现闪动的情况,我也试过双缓冲,但还是不行

问2、游戏有一个排行榜的功能(就是一个排序)。我把所有玩家的记录存在了集合里面,为了方便排序,我又把集合里面的玩家记录(对象)存到了一个对象数组里面。用了冒泡排序,功能是实现了,但效率不是一般的低啊。。。

问3、游戏有一个计时的功能,就是当玩家点开始游戏的时候一个lable控件的值就会不停改变,当游戏时间超过60分钟,lable的值就不对了

问4、这个有点麻烦,就是把玩家的游戏过程全记录下来,然后在排行榜中添加一个右键菜单让玩家可以观看自己的游戏过程回放 然后在GameRecordPlayer窗口中播放(PS:我一开始是在当玩家开始游戏的时候把下落的图形和按键记录下来 然后存在玩家的游戏记录类中,在GameRecordPlayer窗口中加上一个timer 用记录下来的按键操控图形,但后来发现这个思路根本行不通)

一共4个问题,能解决一个算一个,先谢了。
源码下载:http://download.csdn.net/detail/a1063174527/4144546

------解决方案--------------------
实际上,这种小程序和OO根本扯不上。
------解决方案--------------------
第四条的算法可以仿照WAR3的做法,只记录操作,这样会大大减少存档文件的大小。对于随机数,WAR3的做法是这样的,WAR3有一张固定的随机数表,当每一局开始时,随便确定一个起始位置,用一个游标指向起始位置,在游戏过程中需要用到随机数是就把游标右移一位,获取该数值,这样,在REP里面只需要记录那个起始位置,在播放replay时,只需重复玩游戏时的操作,就能把后面用到的所有随机数复现出来。
------解决方案--------------------
尽可能使用正规一点的UML入门知识来描述程序设计,这是很好的训练。

很多编程工人,对于稍微大一点(需要2周时间开发)的程序可能除了数据库表“增删改查”就不懂还有什么计了。那就是因为他们接受的是针对应聘——欺骗招聘单位——的软件开发“教育”,而没有学到正规的OO系统分析和设计课程。
------解决方案--------------------
除了数据库表“增删改查”就不懂还有什么计了 --> 除了数据库表“增删改查”就不懂还有什么设计了