俄罗斯方块java求连连看,俄罗斯方块java源代码包,谢谢了!!!

俄罗斯方块java  时间:2021-07-17  阅读:()

java俄罗斯方块问题,我看俄罗斯方块游戏,里面的右上角可以看见下一个方块是什么,这是怎么做出来的提示

比如有5种方块类型,分别对应0、1、2、3、4。

例如,第1次生成方块时,一次生成2个随机数,第一个随机数a是将要出现的方块,第二个随机数b就对应下一个方块;第2次生成新方块时,将第1次的b赋给a,然后b再生成一个随机数,以后就循环第2次这个过程。

java俄罗斯方块

我以前写过一个仿QQ火拼俄罗斯的俄罗斯方块程序。

给你提供一个思路吧,你不要整张往上画,而是用一个小方块,画到每块相应的位置上。

每个块确定一个小块为对称中心,然后剩下的3小块可以写出坐标,坐标放在每一个大块的一个数组里面保存就行了。

求JAVA课程设计俄罗斯方块代码,流程图,能有详细说明介绍的更好!感激不尽!

importnbsp;java.awt.*;nbsp;importnbsp;java.awt.event.*;nbsp;//俄罗斯方块类nbsp;bsp;classnbsp;ERS_Blocknbsp;extendsnbsp;Frame{nbsp;bsp;bsp;booleannbsp;isPlay=false;nbsp;bsp;bsp;intnbsp;level=1,score=0;nbsp;bsp;bsp;TextFieldnbsp;scoreField,levelField;nbsp;bsp;bsp;MyTimernbsp;timer;nbsp;GameCanvasnbsp;gameScr;nbsp;bsp;bsp;voidnbsp;main(String[]nbsp;argus){nbsp;ERS_Blocknbsp;ersnbsp;=nbsp;newnbsp;ERS_Block(“俄罗斯方块游戏nbsp;V1.0nbsp;Author:Vincent“);nbsp;WindowListenernbsp;win_listenernbsp;=nbsp;newnbsp;WinListener();nbsp;ers.addWindowListener(win_listener);nbsp;}nbsp;//俄罗斯方块类的构造方法nbsp;ERS_Block(Stringnbsp;title){nbsp;super(title);nbsp;setSize(600,480);nbsp;setLayout(newnbsp;GridLayout(1,2));nbsp;gameScrnbsp;=nbsp;newnbsp;GameCanvas();nbsp;gameScr.addKeyListener(gameScr);nbsp;timernbsp;=nbsp;newnbsp;MyTimer(gameScr);nbsp;timer.setDaemon(true);nbsp;timer.start();nbsp;timer.suspend();nbsp;add(gameScr);nbsp;Panelnbsp;rightScrnbsp;=nbsp;newnbsp;Panel();nbsp;rightScr.setLayout(newnbsp;GridLayout(2,1,0,30));nbsp;rightScr.setSize(120,500);nbsp;add(rightScr);nbsp;//右边信息窗体的布局nbsp;MyPanelnbsp;infoScrnbsp;=nbsp;newnbsp;MyPanel();nbsp;infoScr.setLayout(newnbsp;GridLayout(4,1,0,5));nbsp;infoScr.setSize(120,300);nbsp;rightScr.add(infoScr);nbsp;//定义标签和初始值nbsp;Labelnbsp;scorepnbsp;=nbsp;newnbsp;Label(“分数:“,Label.LEFT);nbsp;Labelnbsp;levelpnbsp;=nbsp;newnbsp;Label(“级数:“,Label.LEFT);nbsp;scoreFieldnbsp;=nbsp;newnbsp;TextField(8);nbsp;levelFieldnbsp;=nbsp;newnbsp;TextField(8);nbsp;scoreField.setEditable(false);nbsp;levelField.setEditable(false);nbsp;infoScr.add(scorep);nbsp;infoScr.add(scoreField);nbsp;infoScr.add(levelp);nbsp;infoScr.add(levelField);nbsp;scorep.setSize(newnbsp;Dimension(20,60));nbsp;scoreField.setSize(newnbsp;Dimension(20,60));nbsp;levelp.setSize(newnbsp;Dimension(20,60));nbsp;levelField.setSize(newnbsp;Dimension(20,60));nbsp;scoreField.setText(“0“);nbsp;levelField.setText(“1“);nbsp;//右边控制按钮窗体的布局nbsp;MyPanelnbsp;controlScrnbsp;=nbsp;newnbsp;MyPanel();nbsp;controlScr.setLayout(newnbsp;GridLayout(5,1,0,5));nbsp;rightScr.add(controlScr);nbsp;//定义按钮playnbsp;Buttonnbsp;play_bnbsp;=nbsp;newnbsp;Button(“开始游戏“);nbsp;play_b.setSize(newnbsp;Dimension(50,200));nbsp;play_b.addActionL

用JAVA初级做俄罗斯方块,怎么把所有方块都写出来,最初级简单的就行

你是cs还是bs呀?把方块弄出来需要你看书上的图形部分。

不是一句话两句话的问题。

先把方块的总类编号然后用Math.random()可以出随机数。

用(Math.random()*10)%你的方块的总类就可以得到总类的编号。

求java编的俄罗斯方块代码! 最好是网络版的!单机版的也好啊!谢谢诶啊

其实java做的俄罗斯方块游戏的源码网上有很多的,我给你一个单击版的吧,希望你喜欢,并且能研究一下,代码如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Els extends JFrame implements KeyListener,Runnable { public Els() { setSize(240,320); 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); } public void paint(Graphics g) { super.paint(g); Graphics2D g2=(Graphics2D)g; g2.setColor(Color.darkGray.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.DARK_GRAY); 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("Xiong", 205, 160); g2.drawString("Xuan", 205, 180); } //方块下落的方法 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][Y]=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+1][Y]=0; //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]=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; //o[X+2][Y]=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; //o[X+1][Y]=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+1][Y]=0; o[X+2][Y]=0; //o[X+2][Y+1]=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; //o[X+2][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]=0; //o[X+1][Y+1]=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+2][Y]=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; //o[X+1][Y]=0; //o[X+2][Y]=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][Y]=0; 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+1][Y]=0; //o[X+1][Y+1]=0; 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]=0; 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]--; //o[X+2][Y]=0; //o[X+2][Y+1]=0; 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]--; //o[X+1][Y]=0; 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+1][Y]=0; o[X+2][Y+3]--; //o[X+2][Y+1]=0; 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]--; //o[X+2][Y]=0; 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+2][Y]=0; //o[X+1][Y+1]=0; 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+2][Y]=0; 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]--; //o[X+1][Y]=0; //o[X+2][Y]=0; 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+1][Y+1]=0; //o[X+2][Y+1]=0; //o[X+3][Y+1]=0; o[X+4][Y+1]--; break; case 2: //if(X==-2)X++; 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]--; //o[X+2][Y+2]=0; break; case 3: //if(X==-1)X++; 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+1][Y+1]=0; //o[X+2][Y+1]=0; o[X+3][Y+1]--; break; case 4: //if(X==-2)X++; o[X+1][Y]++; o[X+2][Y]=1; o[X+1][Y+1]++; o[X+1][Y+2]++; //o[X+2][Y]=0; o[X+3][Y]--; o[X+2][Y+1]--; o[X+2][Y+2]--; break; case 5: //if(X==-1)X++; o[X][Y]++; o[X+1][Y]=1; o[X+2][Y]=1; o[X+2][Y+1]++; //o[X+1][Y]=0; //o[X+2][Y]=0; o[X+3][Y]--; o[X+3][Y+1]--; break; case 6: //if(X==-2)X++; 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+2][Y+2]=0; o[X+3][Y+2]--; break; case 7: //if(X==-1)X++; o[X][Y+1]++; o[X+1][Y+1]=1; o[X+2][Y+1]=1; o[X+2][Y]++; //o[X+1][Y+1]=0; //o[X+2][Y+1]=0; o[X+3][Y+1]--; o[X+3][Y]--; break; case 8: //if(X==-2)X++; o[X+1][Y]++; o[X+2][Y]=1; o[X+2][Y+1]++; o[X+2][Y+2]++; //o[X+2][Y]=0; o[X+3][Y]--; o[X+3][Y+1]--; o[X+3][Y+2]--; break; case 9: //if(X==-2)X++; o[X+1][Y]++; o[X+2][Y]=1; o[X+3][Y]=1; o[X+1][Y+1]++; //o[X+2][Y]=0; //o[X+3][Y]=0; o[X+4][Y]--; o[X+2][Y+1]--; break; case 10://if(X==-2)X++; 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]=0; o[X+3][Y+1]--; o[X+3][Y+2]--; break; case 11://if(X==-2)X++; o[X+2][Y]++; o[X+3][Y]=1; o[X+1][Y+1]++; o[X+2][Y+1]=1; //o[X+3][Y]=0; o[X+4][Y]--; //o[X+2][Y+1]=0; o[X+3][Y+1]--; break; case 12://if(X==-2)X++; o[X+1][Y+1]++; o[X+2][Y+1]=1; o[X+1][Y+2]++; o[X+2][Y]++; //o[X+2][Y+1]=0; o[X+3][Y+1]--; o[X+2][Y+2]--; o[X+3][Y]--; break; case 13://if(X==-2)X++; o[X+1][Y]++; o[X+2][Y]=1; o[X+2][Y+1]++; o[X+3][Y+1]=1; //o[X+2][Y]=0; o[X+3][Y]--; //o[X+3][Y+1]=0; o[X+4][Y+1]--; break; case 14://if(X==-2)X++; o[X+1][Y]++; o[X+2][Y]=1; o[X+1][Y+1]++; o[X+2][Y+1]=1; //o[X+2][Y]=0; o[X+3][Y]--; //o[X+2][Y+1]=0; 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: //if(X==11)X--; 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]--; //o[X][Y+1]=0; //o[X+1][Y+1]=0; //o[X+2][Y+1]=0; break; case 2: //if(X==10)X--; 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+1][Y+2]=0; 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]--; //o[X][Y+1]=0; //o[X+1][Y+1]=0; break; case 4: //if(X==10)X--; o[X+1][Y]=1; o[X+2][Y]++; o[X+1][Y+1]++; o[X+1][Y+2]++; o[X][Y]--; //o[X+1][Y]=0; o[X][Y+1]--; o[X][Y+2]--; break; case 5://if(X==10)X--; o[X][Y]=1; o[X+1][Y]=1; o[X+2][Y]++; o[X+2][Y+1]++; o[X-1][Y]--; //o[X][Y]=0; //o[X+1][Y]=0; o[X+1][Y+1]--; break; case 6: //if(X==9)X--; 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]--; //o[X+1][Y+2]=0; break; case 7: //if(X==10)X--; 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][Y+1]=0; //o[X+1][Y+1]=0; o[X+1][Y]--; break; case 8: //if(X==10)X--; 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]=0; o[X+1][Y+1]--; o[X+1][Y+2]--; break; case 9: //if(X==11)X--; o[X+1][Y]=1; o[X+2][Y]=1; o[X+3][Y]++; o[X+1][Y+1]++; o[X][Y]--; //o[X+1][Y]=0; //o[X+2][Y]=0; o[X][Y+1]--; break; case 10://if(X==10)X--; 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+1]=0; o[X+1][Y+2]--; break; case 11://if(X==11)X--; 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+2][Y]=0; o[X][Y+1]--; //o[X+1][Y+1]=0; break; case 12://if(X==10)X--; 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+1][Y+1]=0; o[X][Y+2]--; o[X+1][Y]--; break; case 13://if(X==11)X--; 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]=0; o[X+1][Y+1]--; //o[X+2][Y+1]=0; break; case 14://if(X==10)X--; 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+1][Y]=0; o[X][Y+1]--; //o[X+1][Y+1]=0; 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; } } 不好意思,如果全部代码都发上来的话,就超过了10000字了,所以后面 的代码都发不了了,如果你要的话,留一下你的邮箱,我给你发过去

求连连看,俄罗斯方块java源代码包,谢谢了!!!

//直接可以运行 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.*; import javax.swing.Timer; public class Tetris extends JFrame { public Tetris() { Tetrisblok a = new Tetrisblok(); addKeyListener(a); add(a); } public static void main(String[] args) { Tetris frame = new Tetris(); JMenuBar menu = new JMenuBar(); frame.setJMenuBar(menu); JMenu game = new JMenu("游戏"); JMenuItem newgame = game.add("新游戏"); JMenuItem pause = game.add("暂停"); JMenuItem goon = game.add("继续"); JMenuItem exit = game.add("退出"); JMenu help = new JMenu("帮助"); JMenuItem about = help.add("关于"); menu.add(game); menu.add(help); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(220, 275); frame.setTitle("俄罗斯方块"); // frame.setUndecorated(true); frame.setVisible(true); frame.setResizable(false); } } // 创建一个俄罗斯方块类 class Tetrisblok extends JPanel implements KeyListener { // blockType 代表方块类型 // turnState代表方块状态 private int blockType; private int score = 0; private int turnState; private int x; private int y; private int i = 0; int j = 0; int flag = 0; // 定义已经放下的方块x=0-11,y=0-21; int[][] map = new int[13][23]; // 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵 private final int shapes[][][] = new int[][][] { // i { { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } }, // s { { 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }, // z { { 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }, // j { { 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, // o { { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, // l { { 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, // t { { 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } }; // 生成新方块的方法 public void newblock() { blockType = (int) (Math.random() * 1000) % 7; turnState = (int) (Math.random() * 1000) % 4; x = 4; y = 0; if (gameover(x, y) == 1) { newmap(); drawwall(); score = 0; JOptionPane.showMessageDialog(null, "GAME OVER"); } } // 画围墙 public void drawwall() { for (i = 0; i < 12; i++) { map[i][21] = 2; } for (j = 0; j < 22; j++) { map[11][j] = 2; map[0][j] = 2; } } // 初始化地图 public void newmap() { for (i = 0; i < 12; i++) { for (j = 0; j < 22; j++) { map[i][j] = 0; } } } // 初始化构造方法 Tetrisblok() { newblock(); newmap(); drawwall(); Timer timer = new Timer(1000, new TimerListener()); timer.start(); } // 旋转的方法 public void turn() { int tempturnState = turnState; turnState = (turnState + 1) % 4; if (blow(x, y, blockType, turnState) == 1) { } if (blow(x, y, blockType, turnState) == 0) { turnState = tempturnState; } repaint(); } // 左移的方法 public void left() { if (blow(x - 1, y, blockType, turnState) == 1) { x = x - 1; } ; repaint(); } // 右移的方法 public void right() { if (blow(x + 1, y, blockType, turnState) == 1) { x = x + 1; } ; repaint(); } // 下落的方法 public void down() { if (blow(x, y + 1, blockType, turnState) == 1) { y = y + 1; delline(); } ; if (blow(x, y + 1, blockType, turnState) == 0) { add(x, y, blockType, turnState); newblock(); delline(); } ; repaint(); } // 是否合法的方法 public int blow(int x, int y, int blockType, int turnState) { for (int a = 0; a < 4; a++) { for (int b = 0; b < 4; b++) { if (((shapes[blockType][turnState][a * 4 + b] == 1) && (map[x + b + 1][y + a] == 1)) || ((shapes[blockType][turnState][a * 4 + b] == 1) && (map[x + b + 1][y + a] == 2))) { return 0; } } } return 1; } // 消行的方法 public void delline() { int c = 0; for (int b = 0; b < 22; b++) { for (int a = 0; a < 12; a++) { if (map[a][b] == 1) { c = c + 1; if (c == 10) { score += 10; for (int d = b; d > 0; d--) { for (int e = 0; e < 11; e++) { map[e][d] = map[e][d - 1]; } } } } } c = 0; } } // 判断你挂的方法 public int gameover(int x, int y) { if (blow(x, y, blockType, turnState) == 0) { return 1; } return 0; } // 把当前添加map public void add(int x, int y, int blockType, int turnState) { int j = 0; for (int a = 0; a < 4; a++) { for (int b = 0; b < 4; b++) { if (map[x + b + 1][y + a] == 0) { map[x + b + 1][y + a] = shapes[blockType][turnState][j]; } ; j++; } } } // 画方块的的方法 public void paintComponent(Graphics g) { super.paintComponent(g); // 画当前方块 for (j = 0; j < 16; j++) { if (shapes[blockType][turnState][j] == 1) { g.fillRect((j % 4 + x + 1) * 10, (j / 4 + y) * 10, 10, 10); } } // 画已经固定的方块 for (j = 0; j < 22; j++) { for (i = 0; i < 12; i++) { if (map[i][j] == 1) { g.fillRect(i * 10, j * 10, 10, 10); } if (map[i][j] == 2) { g.drawRect(i * 10, j * 10, 10, 10); } } } g.drawString("score=" + score, 125, 10); g.drawString("上课不要玩游戏,", 125, 50); g.drawString("上课不要玩游戏。

", 125, 70); g.drawString("上课不要玩游戏,", 125, 90); g.drawString("上课不要玩游戏。

", 125, 110); g.drawString("上课不要玩游戏,", 125, 130); g.drawString("上课不要玩游戏。

", 125, 150); g.drawString("上课不要玩游戏,", 125, 170); g.drawString("上课不要玩游戏。

", 125, 190); } // 键盘监听 public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_DOWN: down(); break; case KeyEvent.VK_UP: turn(); break; case KeyEvent.VK_RIGHT: right(); break; case KeyEvent.VK_LEFT: left(); break; } } // 无用 public void keyReleased(KeyEvent e) { } // 无用 public void keyTyped(KeyEvent e) { } // 定时器监听 class TimerListener implements ActionListener { public void actionPerformed(ActionEvent e) { repaint(); if (blow(x, y + 1, blockType, turnState) == 1) { y = y + 1; delline(); } ; if (blow(x, y + 1, blockType, turnState) == 0) { if (flag == 1) { add(x, y, blockType, turnState); delline(); newblock(); flag = 0; } flag = 1; } ; } } }

CloudCone($82/月)15-100M不限流量,洛杉矶CN2 GIA线路服务器

之前分享过很多次CloudCone的信息,主要是VPS主机,其实商家也提供独立服务器租用,同样在洛杉矶MC机房,分为两种线路:普通优化线路及CN2 GIA,今天来分享下商家的CN2 GIA线路独立服务器产品,提供15-100Mbps带宽,不限制流量,可购买额外的DDoS高防IP,最低每月82美元起,支持使用PayPal或者支付宝等付款方式。下面分享几款洛杉矶CN2 GIA线路独立服务器配置信息。配...

麻花云-香港CN2云服务器,安徽BGP线路,安徽移动大带宽!全系6折!

一、麻花云官网点击直达麻花云官方网站二、活动方案优惠码:专属优惠码:F1B07B 享受85折优惠。点击访问活动链接最新活动 :五一狂欢 惠战到底 香港云主机 1.9折起香港特价体验云主机CN2 云服务器最新上线KVM架构,,默认40G SSD,+10G自带一个IPv4,免费10Gbps防御,CPU内存带宽价格购买1核1G1M19元首月链接2核2G 2M92元/3个月链接2核4G3M112元/3个月...

racknerd:美国大硬盘服务器,$599/月,Ryzen7-3700X/32G内存/120gSSD+192T hdd

racknerd当前对美国犹他州数据中心的大硬盘服务器(存储服务器)进行低价促销,价格跌破眼镜啊。提供AMD和Intel两个选择,默认32G内存,120G SSD系统盘,12个16T HDD做数据盘,接入1Gbps带宽,每个月默认给100T流量,5个IPv4... 官方网站:https://www.racknerd.com 加密数字货币、信用卡、PayPal、支付宝、银联(卡),可以付款! ...

俄罗斯方块java为你推荐
mdmMDM是什么的简称啊?mdm乳化剂MDM起什么作用ipv6无网络访问权限win7本地连接IPv4和IPv6都无网络访问权限fclose为什么fclose之后remove还是不成功李昊天铠甲勇士2刑天的李昊天秘密是什么备忘录模式Java中常用的设计模式有哪些?请详细说明一下工厂模式。民生电商民生电商是民生银行吗?欢迎页面windows欢迎界面问卷星登陆请问问卷星怎么设置答题时间?mediasres什么意思
域名备案网站 域名备案只选云聚达 免费申请域名和空间 2019年感恩节 bandwagonhost 安云加速器 国外服务器网站 wordpress技巧 suspended 网盘申请 华为4核 个人免费空间 ca4249 cdn联盟 双线主机 重庆双线服务器托管 免费cdn 如何注册阿里云邮箱 服务器硬件防火墙 双12 更多