俄罗斯方块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;
}
;
}
}
}
GreencloudVPS此次在四个机房都上线10Gbps大带宽VPS,并且全部采用AMD处理器,其中美国芝加哥机房采用Ryzen 3950x处理器,新加坡、荷兰阿姆斯特丹、美国杰克逊维尔机房采用Ryzen 3960x处理器,全部都是RAID-1 NVMe硬盘、DDR4 2666Mhz内存,GreenCloudVPS本次促销的便宜VPS最低仅需20美元/年,支持支付宝、银联和paypal。Gree...
部落曾经在去年分享过一次Boomer.host的信息,商家自述始于2018年,提供基于OpenVZ架构的VPS主机,配置不高价格较低。最近,主机商又在LET发了几款特价年付主机促销,最低每年仅4.95美元起,有独立IPv4+IPv6,开设在德克萨斯州休斯顿机房。下面列出几款VPS主机配置信息。CPU:1core内存:512MB硬盘:5G SSD流量:500GB/500Mbps架构:KVMIP/面板...
diyvm怎么样?diyvm是一家国内成立时间比较久的主机商家了,大约在6年前站长曾经用过他家的美国机房的套餐,非常稳定,适合做站,目前商家正在针对香港沙田机房的VPS进行促销,给的是五折优惠,续费同价,香港沙田机房走的是CN2直连的线路,到大陆地区的速度非常好,DiyVM商家采用小带宽不限流量的形式,带宽2Mbps起步,做站完全够用,有需要的朋友可以入手。diyvm优惠码:五折优惠码:OFF50...
俄罗斯方块java为你推荐
显卡挖矿啥意思显卡怎么分辨是不是矿卡?挖矿卡又是什么意思?akf德州水份检测仪价格,AKF系列卡尔费休水份测定仪和世界顶级进口品牌相比怎么样?洗牌算法c语言编程用扑克牌洗牌和发牌fclosefclose / fopenshowwindowvfp中菜单生成不能运行,提示说要把showwindow属性设为2,不懂求解查字网衾字怎么读音是什么representspublic class是什么意思bindserviceservice在手机程序中起什么作用layoutsubviews如何让NSSplitView的子View的大小固定相似图片搜索怎么找手机上的一张相似图片?
域名论坛 已备案域名出售 vir hawkhost vultr美国与日本 jsp主机 godaddy patcha 网通服务器ip 彩虹ip 卡巴斯基官方免费版 jsp空间 网站cdn加速 共享主机 域名接入 umax120 独享主机 丽萨 个人免费邮箱 中国linux 更多