俄罗斯方块案例分析.pptx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
俄罗斯方块案例分析

俄罗斯方块案例分析; 俄罗斯方块案例分析;2.俄罗斯方块的业务分析 ;3.俄罗斯方块的类的数据结构设计; 3)俄罗斯方块(Tetris)类继承于Jpanel空白面板类作为图形界面,实现俄罗斯方块的具体功能。类中包含的属性有: 用户的得分int score 消除的行数int lines 贴图的创建public static Image J,I,Z,S,T,O,L,groundback 20行10列的格子类型(Cell)的墙Cell[][] wall = new Cell[20][10] 正在下落的俄罗斯方块Tetromino Tetromino 下一个要下降的方块, Tetromino nextOne 类中的方法: 图形界面的绘制paint(Graphics g),在此方法中包含了画墙,画分数,画 正在 下落的方块,下一个下落的方块 启动软件action ()内部包含了键盘的 命令控制以及相应的算法调用 俄罗斯方块的的下落,左移,右移,左旋转,右旋转,检查边界,检查重合, 消除行数,降落到墙 ;4.俄罗斯方块的方法流程;5.俄罗斯方块的具体方法实现;2)俄罗斯方块的自动掉落 要实现俄罗斯方块的自动掉落就必须要定义一个计时器对象,通过让计时器对象在指定的时间段内重复做俄罗斯方块的下降命令,就可以实现俄罗斯方块的自动掉落。但必须注意的是必须在每次重复掉落的时候重绘一下面板,这样才能够在面板中清楚的观察到俄罗斯方块的下落行为。 private Timer timer;//创建一个计时器对象 private int inteval = 800;//间隔时间 TimerTask task = new TimerTask(){//创建一个新的计时器任务 public void run(){ softDropAction(); repaint(); } }; timer = new Timer();//创建定时器 timer.schedule(task, inteval,inteval);;3)俄罗斯方块的旋转; 由于要在每种俄罗斯方块中添加它的旋转状态,所以在Tetromino类中添加描述俄罗斯方块状态的内部类。 具体代码: protected class State{ 下面的八个属性就表示每个格子与旋转轴格子的行,列的相对位置 int row0,col0, row1,col1, row2,col2, row3,col3; public State(int row0, int col0, int row1, int col1, int row2, int col2, int row3, int col3) { super(); this.row0 = row0; this.col0 = col0; this.row1 = row1; this.col1 = col1; this.row2 = row2; this.col2 = col2; this.row3 = row3; this.col3 = col3; } };每次调用旋转算法的时候,先让index旋转状态下标加一(右转)或减一(左转),然后用旋转状态下标对旋转状态数组取余,就可以得到下一个俄罗斯方块状态,然后分别用旋转轴的行列坐标与下一个俄罗斯方块状态中行列分别想加,即可以得到下一个状态的实际的俄罗斯方块的位置信息。 具体代码: public void rotateRight(){ index++;//10001 State s = states[index%states.length];//[1],得到s = s1状态,取余运算,循环获取四种不同的状态 Cell o = ce

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档