为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Jvav游戏俄罗斯方块

2013-03-07 39页 doc 267KB 45阅读

用户头像

is_775071

暂无简介

举报
Jvav游戏俄罗斯方块计算机专业设计比赛 ———Java游戏俄罗斯方块 组长: 副组长: 组员: 09计算机1班 1、 项目目的与内容 掌握JAVA程序设计方法,设计出一个可以操作并且带背景的俄罗斯方块小游戏。 2、 项目采用的关键技术与预期成果 本程序采用JAVA语言开发,电脑中装有JDK开发平台。 预期效果:可以做出一个能运行的俄罗斯方块小游戏。 3、 项目创新点及内容 创新点:在小的JAVA程序中加入背景图片,并且无错误运行。 内容:俄罗斯方块 使用说明:1.左右键控制方向2.上键变换方向3.下键加速下落4. R键重...
Jvav游戏俄罗斯方块
计算机专业设计比赛 ———Java游戏俄罗斯方块 组长: 副组长: 组员: 09计算机1班 1、 项目目的与内容 掌握JAVA程序设计方法,设计出一个可以操作并且带背景的俄罗斯方块小游戏。 2、 项目采用的关键技术与预期成果 本程序采用JAVA语言开发,电脑中装有JDK开发平台。 预期效果:可以做出一个能运行的俄罗斯方块小游戏。 3、 项目创新点及内容 创新点:在小的JAVA程序中加入背景图片,并且无错误运行。 内容:俄罗斯方块 使用说明:1.左右键控制方向2.上键变换方向3.下键加速下落4. R键重置游戏5. 空格键退出游戏 对于如何选择合适类还没有经验,这里直接在JFrame上设计paint()方法将所有内容绘制。 建模上借鉴了小时候玩的那中手柄游戏,将主面板划分为12*20的小格;后来为了设计碰撞,又改为14*21,绘制部分仍为12*20。 这些格子的信息用一个二维数组存储,数组中每个元素用0,1来示是否被绘制成黑色。paint()方法中将值为1的格子绘制成黑色,0的仍为白色。边界除外。 { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, } 该图中,初始值为1的位置设定为外边界,paint()方 法不对外边界作用。 外边界的目的是利用碰撞将方块限制在范围内。 碰撞处理:当方块移动时(键盘控制或run()方法不停下降) 新的位置所代表的数组元素值+1,如果没有碰撞产生(即这些地方原来都为0),那么他们都改为1;但如果原来那些地方本来为1,则产生碰撞,1+1后为2。 当某一个运动产生了值为2的元素,则采取相反的方法,回到初始状态。碰撞完成。 如果碰撞是由下降(down()方法)产生的,则出现下一个方块。原方块静止,即原数组值不再改变 消分:如果二维数组中存在横排都为1,则消分。消分,由数组中下一排元素改为上一排元素来实现。 将此图顺时针转90°,则与实际绘图一致,可以看做若干1代表的方块掉入1代表边界的杯状容器。 块与二维数组对应,黑的是1,空白是0,1与0发生传值从而使得方块运动。有3个基本方法和3个对应的“反方法”来控制传值,也就是控制方块运动,down(),left(),change()和up(),right(),changeback();之所以设计反方法是为了制造碰撞:当1与1发生传值时(即碰撞时)产生值为2的数组元素,此时立即调用与其相应的反传值方法,将方块推回去,完成碰撞。 4、 项目源代码及截图 源代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Els extends JFrame implements KeyListener,Runnable { private JPanel imagePanel; private ImageIcon background; public Els() { setSize(360,301); setUndecorated(true); int H=(int) (this.getToolkit().getScreenSize().height); int W=(int) (this.getToolkit().getScreenSize().width); setLocation(W/2-120,H/2-160); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); background = new ImageIcon("D:\\JAVAworkspace\\TechApp\\resources\\Els.jpg"); // 背景图片 JLabel label = new JLabel(background); // 把背景图片显示在一个标签里面 // 把标签的大小位置设置为图片刚好填充整个面板 label.setBounds(0,0,background.getIconWidth(),background.getIconHeight()); // 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明 imagePanel = (JPanel)this.getContentPane(); imagePanel.setOpaque(false); // 内容窗格默认的布局管理器为BorderLayout imagePanel.setLayout(new FlowLayout()); this.getLayeredPane().setLayout(null); // 把背景图片添加到分层窗格的最底层作为背景 this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE)); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(background.getIconWidth(),background.getIconHeight()); this.setVisible(true); } public void paint(Graphics g) { super.paint(g); Graphics2D g2=(Graphics2D)g; g2.setColor(Color.black.brighter().brighter()); //绘制小框格 for(int m=192;m<=232;m+=10) { g2.drawLine(m, 52, m,92); } for(int m=52;m<=92;m+=10) { g2.drawLine(192, m, 232, m); } //绘制大框格 for(int m=0;m<=180;m+=15) { g2.drawLine(m, 0, m, 300); } for(int m=0;m<=300;m+=15) { g2.drawLine(0, m, 180, m); } //将值不非0的格子涂黑 for(int i=1;i<13;i++) { for(int j=0;j<20;j++) { g2.setColor(Color.DARK_GRAY); if (o[i][j]!=0) g2.fillRect(15*i-13, 15*j+2, 13, 13); } } //在小框格中绘制下一个的模型 switch(nextMODE) { case 0: g2.fillRect(204, 54, 8, 8); g2.fillRect(204, 64, 8, 8); g2.fillRect(204, 74, 8, 8); g2.fillRect(204, 84, 8, 8); break; case 1: g2.fillRect(194, 64, 8, 8); g2.fillRect(204, 64, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(224, 64, 8, 8); break; case 2: g2.fillRect(214, 64, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(214, 84, 8, 8); g2.fillRect(204, 84, 8, 8); break; case 3: g2.fillRect(204, 64, 8, 8); g2.fillRect(204, 74, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(224, 74, 8, 8); break; case 4: g2.fillRect(204, 64, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(204, 74, 8, 8); g2.fillRect(204, 84, 8, 8); break; case 5: g2.fillRect(204, 64, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(224, 64, 8, 8); g2.fillRect(224, 74, 8, 8); break; case 6: g2.fillRect(204, 54, 8, 8); g2.fillRect(204, 64, 8, 8); g2.fillRect(204, 74, 8, 8); g2.fillRect(214, 74, 8, 8); break; case 7: g2.fillRect(204, 74, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(224, 74, 8, 8); g2.fillRect(224, 64, 8, 8); break; case 8: g2.fillRect(204, 64, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(214, 84, 8, 8); break; case 9: g2.fillRect(204, 64, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(224, 64, 8, 8); g2.fillRect(204, 74, 8, 8); break; case 10: g2.fillRect(204, 64, 8, 8); g2.fillRect(204, 74, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(214, 84, 8, 8); break; case 11: g2.fillRect(204, 74, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(224, 64, 8, 8); break; case 12: g2.fillRect(214, 64, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(204, 74, 8, 8); g2.fillRect(204, 84, 8, 8); break; case 13: g2.fillRect(204, 64, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(214, 74, 8, 8); g2.fillRect(224, 74, 8, 8); break; case 14: g2.fillRect(204, 64, 8, 8); g2.fillRect(214, 64, 8, 8); g2.fillRect(204, 74, 8, 8); g2.fillRect(214, 74, 8, 8); break; } g2.setColor(Color.black); g2.drawLine(180, 0, 180, 300); g2.setColor(Color.black); g2.drawString("LEVEL", 194, 10); g2.drawString(""+LEVEL, 210, 28); g2.drawString("NEXT", 196, 45); g2.drawString("SCORE",193, 110); g2.drawString(""+SCORE,205, 130); g2.drawString("Wei", 205, 160); g2.drawString("Zheng", 205, 180); g2.drawString("使用说明:", 260, 40); g2.drawString("左右键控制方向", 260, 60); g2.drawString("上键变换形状", 260, 80); g2.drawString("下键加速下落", 260, 100); g2.drawString("R键重置游戏", 260, 120); g2.drawString("空格键键退出游戏", 260, 140); } //方块下落的方法 public void down() { Y++; switch(MODE) { case 0: o[X+2][Y]=1; o[X+2][Y+1]=1; o[X+2][Y+2]=1; o[X+2][Y+3]++; o[X+2][Y-1]=0; break; case 1: o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+3][Y+1]++; o[X][Y]=0; o[X+1][Y]=0; o[X+2][Y]=0; o[X+3][Y]=0; break; case 2: o[X+2][Y]=1; o[X+2][Y+1]=1; o[X+2][Y+2]++; o[X+1][Y+2]++; o[X+2][Y-1]=0; o[X+1][Y+1]=0; break; case 3: o[X][Y]=1; o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X][Y-1]=0; o[X+1][Y]=0; o[X+2][Y]=0; break; case 4: o[X+1][Y]=1; o[X+2][Y]++; o[X+1][Y+1]=1; o[X+1][Y+2]++; o[X+1][Y-1]=0; o[X+2][Y-1]=0; break; case 5: o[X][Y]++; o[X+1][Y]++; o[X+2][Y]=1; o[X+2][Y+1]++; o[X][Y-1]=0; o[X+1][Y-1]=0; o[X+2][Y-1]=0; break; case 6: o[X+1][Y]=1; o[X+1][Y+1]=1; o[X+1][Y+2]++; o[X+2][Y+2]++; o[X+1][Y-1]=0; o[X+2][Y+1]=0; break; case 7: o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+2][Y]=1; o[X][Y]=0; o[X+1][Y]=0; o[X+2][Y-1]=0; break; case 8: o[X+1][Y]++; o[X+2][Y]=1; o[X+2][Y+1]=1; o[X+2][Y+2]++; o[X+1][Y-1]=0; o[X+2][Y-1]=0; break; case 9: o[X+1][Y]=1; o[X+2][Y]++; o[X+3][Y]++; o[X+1][Y+1]++; o[X+1][Y-1]=0; o[X+2][Y-1]=0; o[X+3][Y-1]=0; break; case 10: o[X+1][Y]=1; o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+2][Y+2]++; o[X+1][Y-1]=0; o[X+2][Y]=0; break; case 11: o[X+2][Y]=1; o[X+3][Y]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+2][Y-1]=0; o[X+3][Y-1]=0; o[X+1][Y]=0; break; case 12: o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X+1][Y+2]++; o[X+2][Y]=1; o[X+1][Y]=0; o[X+2][Y-1]=0; break; case 13: o[X+1][Y]++; o[X+2][Y]=1; o[X+2][Y+1]++; o[X+3][Y+1]++; o[X+1][Y-1]=0; o[X+2][Y-1]=0; o[X+3][Y]=0; break; case 14: o[X+1][Y]=1; o[X+2][Y]=1; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+1][Y-1]=0; o[X+2][Y-1]=0; break; } //如果碰撞,则自动上升一格 for(int i=0;i<13;i++) { for(int j=0;j<21;j++) { if (o[i][j]==2) up(); } } } //方块上升的方法 public void up() { Y--; switch(MODE) { case 0: o[X+2][Y]++; o[X+2][Y+1]=1; o[X+2][Y+2]=1; o[X+2][Y+3]=1; o[X+2][Y+4]--; break; case 1: o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+3][Y+1]++; o[X][Y+2]--; o[X+1][Y+2]--; o[X+2][Y+2]--; o[X+3][Y+2]--; break; case 2: o[X+2][Y]++; o[X+2][Y+1]=1; o[X+2][Y+2]=1; o[X+1][Y+2]++; o[X+2][Y+3]--; o[X+1][Y+3]--; break; case 3: o[X][Y]++; o[X][Y+1]=1; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X][Y+2]--; o[X+1][Y+2]--; o[X+2][Y+2]--; break; case 4: o[X+1][Y]++; o[X+2][Y]++; o[X+1][Y+1]=1; o[X+1][Y+2]=1; o[X+1][Y+3]--; o[X+2][Y+1]--; break; case 5: o[X][Y]++; o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]=1; o[X][Y+1]--; o[X+1][Y+1]--; o[X+2][Y+2]--; break; case 6: o[X+1][Y]++; o[X+1][Y+1]=1; o[X+1][Y+2]=1; o[X+2][Y+2]++; o[X+1][Y+3]--; o[X+2][Y+3]--; break; case 7: o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+2][Y]++; o[X][Y+2]--; o[X+1][Y+2]--; o[X+2][Y+2]--; break; case 8: o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]=1; o[X+2][Y+2]=1; o[X+1][Y+1]--; o[X+2][Y+3]--; break; case 9: o[X+1][Y]++; o[X+2][Y]++; o[X+3][Y]++; o[X+1][Y+1]=1; o[X+1][Y+2]--; o[X+2][Y+1]--; o[X+3][Y+1]--; break; case 10: o[X+1][Y]++; o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X+2][Y+2]=1; o[X+1][Y+2]--; o[X+2][Y+3]--; break; case 11: o[X+2][Y]++; o[X+3][Y]++; o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+2][Y+2]--; o[X+1][Y+2]--; o[X+3][Y+1]--; break; case 12: o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+1][Y+2]=1; o[X+2][Y]++; o[X+2][Y+2]--; o[X+1][Y+3]--; break; case 13: o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]=1; o[X+3][Y+1]++; o[X+1][Y+1]--; o[X+2][Y+2]--; o[X+3][Y+2]--; break; case 14: o[X+1][Y]++; o[X+2][Y]++; o[X+1][Y+1]=1; o[X+2][Y+1]=1; o[X+1][Y+2]--; o[X+2][Y+2]--; break; } for(int i=0;i<20;i++) { if (o[1][i]==1&& o[2][i]==1&& o[3][i]==1&& o[4][i]==1&& o[5][i]==1&& o[6][i]==1&& o[7][i]==1&& o[8][i]==1&& o[9][i]==1&& o[10][i]==1&& o[11][i]==1&& o[12][i]==1 ) {for(int k=1;k<=12;k++) { for(int j=i;j>=1;j--) { o[k][j]=o[k][j-1]; } } SCORE++; if(SCORE==5)LEVEL++; if(SCORE==10)LEVEL++; } } X=5;Y=0; MODE=nextMODE; down(); repaint(); nextMODE=(int)(Math.random()*14); } public void left() { X--; switch(MODE) { case 0: o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+2][Y+3]++; o[X+3][Y]--; o[X+3][Y+1]--; o[X+3][Y+2]--; o[X+3][Y+3]--; break; case 1: o[X][Y+1]++; o[X+1][Y+1]=1; o[X+2][Y+1]=1; o[X+3][Y+1]=1; o[X+4][Y+1]--; break; case 2: o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]=1; o[X+1][Y+2]++; o[X+3][Y]--; o[X+3][Y+1]--; o[X+3][Y+2]--; break; case 3: o[X][Y]++; o[X][Y+1]++; o[X+1][Y+1]=1; o[X+2][Y+1]=1; o[X+1][Y]--; o[X+3][Y+1]--; break; case 4: o[X+1][Y]++; o[X+2][Y]=1; o[X+1][Y+1]++; o[X+1][Y+2]++; o[X+3][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; break; case 5: o[X][Y]++; o[X+1][Y]=1; o[X+2][Y]=1; o[X+2][Y+1]++; o[X+3][Y]--; o[X+3][Y+1]--; break; case 6: o[X+1][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]++; o[X+2][Y+2]=1; o[X+2][Y]--; o[X+2][Y+1]--; o[X+3][Y+2]--; break; case 7: o[X][Y+1]++; o[X+1][Y+1]=1; o[X+2][Y+1]=1; o[X+2][Y]++; o[X+3][Y+1]--; o[X+3][Y]--; break; case 8: o[X+1][Y]++; o[X+2][Y]=1; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+3][Y]--; o[X+3][Y+1]--; o[X+3][Y+2]--; break; case 9: o[X+1][Y]++; o[X+2][Y]=1; o[X+3][Y]=1; o[X+1][Y+1]++; o[X+4][Y]--; o[X+2][Y+1]--; break; case 10: o[X+1][Y]++; o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+2][Y+2]++; o[X+2][Y]--; o[X+3][Y+1]--; o[X+3][Y+2]--; break; case 11: o[X+2][Y]++; o[X+3][Y]=1; o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+4][Y]--; o[X+3][Y+1]--; break; case 12: o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+1][Y+2]++; o[X+2][Y]++; o[X+3][Y+1]--; o[X+2][Y+2]--; o[X+3][Y]--; break; case 13: o[X+1][Y]++; o[X+2][Y]=1; o[X+2][Y+1]++; o[X+3][Y+1]=1; o[X+3][Y]--; o[X+4][Y+1]--; break; case 14: o[X+1][Y]++; o[X+2][Y]=1; o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+3][Y]--; o[X+3][Y+1]--; break; } for(int i=0;i<13;i++) { for(int j=0;j<21;j++) { if (o[i][j]==2) right(); } } } public void right() { X++; switch(MODE) { case 0: o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+2][Y+3]++; o[X+1][Y]--; o[X+1][Y+1]--; o[X+1][Y+2]--; o[X+1][Y+3]--; break; case 1: o[X][Y+1]=1; o[X+1][Y+1]=1; o[X+2][Y+1]=1; o[X+3][Y+1]++; o[X-1][Y+1]--; break; case 2: o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+1][Y+2]=1; o[X+1][Y]--; o[X+1][Y+1]--; o[X][Y+2]--; break; case 3: o[X][Y]++; o[X][Y+1]=1; o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X-1][Y]--; o[X-1][Y+1]--; break; case 4: o[X+1][Y]=1; o[X+2][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]++; o[X][Y]--; o[X][Y+1]--; o[X][Y+2]--; break; case 5: o[X][Y]=1; o[X+1][Y]=1; o[X+2][Y]++; o[X+2][Y+1]++; o[X-1][Y]--; o[X+1][Y+1]--; break; case 6: o[X+1][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]=1; o[X+2][Y+2]++; o[X][Y]--; o[X][Y+1]--; o[X][Y+2]--; break; case 7: o[X][Y+1]=1; o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X+2][Y]++; o[X-1][Y+1]--; o[X+1][Y]--; break; case 8: o[X+1][Y]=1; o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X][Y]--; o[X+1][Y+1]--; o[X+1][Y+2]--; break; case 9: o[X+1][Y]=1; o[X+2][Y]=1; o[X+3][Y]++; o[X+1][Y+1]++; o[X][Y]--; o[X][Y+1]--; break; case 10: o[X+1][Y]++; o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X][Y]--; o[X][Y+1]--; o[X+1][Y+2]--; break; case 11: o[X+2][Y]=1; o[X+3][Y]++; o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X+1][Y]--; o[X][Y+1]--; break; case 12: o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X+1][Y+2]++; o[X+2][Y]++; o[X][Y+1]--; o[X][Y+2]--; o[X+1][Y]--; break; case 13: o[X+1][Y]=1; o[X+2][Y]++; o[X+2][Y+1]=1; o[X+3][Y+1]++; o[X][Y]--; o[X+1][Y+1]--; break; case 14: o[X+1][Y]=1; o[X+2][Y]++; o[X+1][Y+1]=1; o[X+2][Y+1]++; o[X][Y]--; o[X][Y+1]--; break; } for(int i=0;i<14;i++) { for(int j=0;j<21;j++) { if (o[i][j]==2) left(); } } } public void change() { switch(MODE) { case 0: o[X+2][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X+2][Y+3]--; o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+3][Y+1]++; MODE=1; break; case 1: o[X][Y+1]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+3][Y+1]--; o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+2][Y+3]++; MODE=0; break; case 2: o[X+2][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X+1][Y+2]--; o[X][Y]++; o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]++; MODE=5; break; case 3: o[X][Y]--; o[X][Y+1]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+1][Y+2]++; MODE=2; break; case 4: o[X+1][Y]--; o[X+2][Y]--; o[X+1][Y+1]--; o[X+1][Y+2]--; o[X][Y]++; o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; MODE=3; break; case 5: o[X][Y]--; o[X+1][Y]--; o[X+2][Y]--; o[X+2][Y+1]--; o[X+1][Y]++; o[X+2][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]++; MODE=4; break; case 6: o[X+1][Y]--; o[X+1][Y+1]--; o[X+1][Y+2]--; o[X+2][Y+2]--; o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+2][Y]++; MODE=7; break; case 7: o[X][Y+1]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+2][Y]--; o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; MODE=8; break; case 8: o[X+1][Y]--; o[X+2][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X+1][Y]++; o[X+2][Y]++; o[X+3][Y]++; o[X+1][Y+1]++; MODE=9; break; case 9: o[X+1][Y]--; o[X+2][Y]--; o[X+3][Y]--; o[X+1][Y+1]--; o[X+1][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]++; o[X+2][Y+2]++; MODE=6; break; case 10:o[X+1][Y]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X+2][Y]++; o[X+3][Y]++; o[X+1][Y+1]++; o[X+2][Y+1]++; MODE=11; break; case 11:o[X+2][Y]--; o[X+3][Y]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+1][Y]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+2][Y+2]++; MODE=10; break; case 12:o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+1][Y+2]--; o[X+2][Y]--; o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]++; o[X+3][Y+1]++; MODE=13; break; case 13:o[X+1][Y]--; o[X+2][Y]--; o[X+2][Y+1]--; o[X+3][Y+1]--; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+1][Y+2]++; o[X+2][Y]++; MODE=12; break; case 14:o[X+1][Y]=1; o[X+2][Y]=1; o[X+1][Y+1]=1; o[X+2][Y+1]=1; break; } for(int i=0;i<14;i++) { for(int j=0;j<21;j++) { if (o[i][j]==2) changeback(); } } } public void changeback() { switch(MODE) { case 0:o[X+2][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X+2][Y+3]--; o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+3][Y+1]++; MODE=1; break; case 1:o[X][Y+1]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+3][Y+1]--; o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+2][Y+3]++; MODE=0; break; case 2:o[X+2][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X+1][Y+2]--; o[X][Y]++; o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; MODE=3; break; case 3:o[X][Y]--; o[X][Y+1]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+1][Y]++; o[X+2][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]++; MODE=4; break; case 4:o[X+1][Y]--; o[X+2][Y]--; o[X+1][Y+1]--; o[X+1][Y+2]--; o[X][Y]++; o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]++; MODE=5; break; case 5:o[X][Y]--; o[X+1][Y]--; o[X+2][Y]--; o[X+2][Y+1]--; o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; o[X+1][Y+2]++; MODE=2; break; case 6:o[X+1][Y]--; o[X+1][Y+1]--; o[X+1][Y+2]--; o[X+2][Y+2]--; o[X+1][Y]++; o[X+2][Y]++; o[X+3][Y]++; o[X+1][Y+1]++; MODE=9; break; case 7:o[X][Y+1]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+2][Y]--; o[X+1][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]++; o[X+2][Y+2]++; MODE=6; break; case 8:o[X+1][Y]--; o[X+2][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X][Y+1]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+2][Y]++; MODE=7; break; case 9:o[X+1][Y]--; o[X+2][Y]--; o[X+3][Y]--; o[X+1][Y+1]--; o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]++; o[X+2][Y+2]++; MODE=8; break; case 10:o[X+1][Y]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+2][Y+2]--; o[X+2][Y]++; o[X+3][Y]++; o[X+1][Y+1]++; o[X+2][Y+1]++; MODE=11; break; case 11:o[X+2][Y]--; o[X+3][Y]--; o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+1][Y]++; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+2][Y+2]++; MODE=10; break; case 12:o[X+1][Y+1]--; o[X+2][Y+1]--; o[X+1][Y+2]--; o[X+2][Y]--; o[X+1][Y]++; o[X+2][Y]++; o[X+2][Y+1]++; o[X+3][Y+1]++; MODE=13; break; case 13:o[X+1][Y]--; o[X+2][Y]--; o[X+2][Y+1]--; o[X+3][Y+1]--; o[X+1][Y+1]++; o[X+2][Y+1]++; o[X+1][Y+2]++; o[X+2][Y]++; MODE=12; break; case 14:o[X+1][Y]=1; o[X+2][Y]=1; o[X+1][Y+1]=1; o[X+2][Y+1]=1; break; } } public void keyPressed(KeyEvent e) { if (e.getKeyCode()==KeyEvent.VK_LEF
/
本文档为【Jvav游戏俄罗斯方块】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索