⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fangkuai.txt

📁 自己做的俄罗斯方块的小游戏。意义大于实际用途哈。帮忙看看
💻 TXT
字号:
  帮我看看程序 我的俄罗斯方块 

import java.awt.*; 
import java.awt.event.*; 
class eluosi 
{ 
public static void main(String area[]) 
{ 
new form(); 
} 
} 
class form extends Frame implements Runnable 
{ 
TextField text1=new TextField("0",12); //分数 
TextField text2=new TextField("1",2); //等级 
int dengji=1,fenshu=0; 
panel pan; 
Thread birds; 
form() 
{ 
setLayout(null); 
setBounds(300,250,300,250); 
setBackground(Color.blue); 
pan=new panel(1); 
add(pan); 
text1.setBounds(10,30,60,20); 
text2.setBounds(230,30,60,20); 
Label label1=new Label("分数"); 
Label label2=new Label("等级"); 
label1.setBounds(10,50,60,20); 
label2.setBounds(230,50,60,20); 
add(text1); 
add(text2); 
add(label1); 
add(label2); 
text1.setEnabled(false); 
text2.setEnabled(false); 
setVisible(true); 
validate(); 
addKeyListener(pan); 
birds=new Thread(this); 
birds.start(); 
} 
public void run() 
{ 
int i=pan.siwang; 
while(i==0) 
{ 
if (pan.fenshu!=fenshu) 
{ 
fenshu=pan.fenshu; 
text1.setText(String.valueOf(fenshu)); 
} 
if (pan.dengji!=dengji) 
{ 
dengji=pan.dengji; 
text1.setText(String.valueOf(dengji)); 
} 
} 

} 
} 
class panel extends Canvas implements KeyListener,Runnable 
{ int x=0,y=0,xp=0,yp=0,yangshi=0,fang=0,yangship=0,siwang=0; 
int fenshu=0; 
fangkuai f=new fangkuai(); 
int [][] wei =new int [16][22]; 
Thread bird; 
int dengji; 
panel(int dengji) 
{ 
setBounds(80,40,140,200); 
setBackground(Color.white); 

addKeyListener(this); 
shengcheng(); 
bird=new Thread(this); 
bird.start(); 
for (int i=0;i<=15;i++) 
{ 
for (int j=0;j<=21;j++) 
{ 
if (i==0 || i==15 || j==21) 
wei[i][j]=1; 
} 
} 
} 
public void paint(Graphics g) //画方块 
{ 
g.setColor(Color.red); 
for (int i=1;i<=20;i++) 
{ 
for (int j=1;j<=14;j++) 
{ 
if (wei[j][i]==1) 
g.fillRect((j-1)*10,(i-1)*10,9,9); 
} 
} 

for (int i=1;i<=4;i++) 
{ 
f.fk(fang,yangshi); 
g.fillRect((x+f.x[i]-1)*10,(y+f.y[i]-1)*10,9,9); 
} 
xp=x; 
yp=y; 
yangship=yangshi; 
if (siwang==1) 
{ 
g.setColor(Color.red); 
g.drawString("Game Over",40,20); 
} 
} 
public void run() 
{ 
if (siwang==1) 
{ return; 

} 
while(siwang==0) 
{ 

y=y+1; 
panduan(); 
repaint(); 
try{bird.sleep(1000-dengji*50);} 
catch(Exception aa){} 

} 
} 
public void keyPressed(KeyEvent e) 
{ int a=x,b=y,c=yangshi,t=0,d=0; 
dengji=(int)fenshu/100; 
if (dengji>15) dengji=15; 
if (e.getKeyCode()==KeyEvent.VK_UP && siwang==0) 
{yangshi=yangshi+1; 
if (yangshi==5) 
yangshi=1; 
f.fk(fang,yangshi); 
for (int i=1;i<=4;i++) 
{ 
if (x+f.x[i]<=0) 
{d=1;t=1;} 
if (x+f.x[i]>=14) 
{d=-1;t=1;} 
try{if (wei[x+f.x[i]][y+f.y[i]]==1) 
t=2;} 
catch(Exception ee) 
{t=2; 
} 
} 
if (t==1) 
{ 
t=0; 
for(int i=1;i<=4;i++) 
{ 
if (wei[x+f.x[i]+d][y+f.y[i]]==1) 
t=1; 
} 
if (t==1) 
{ 
yangshi=c; 
} 
else 
{ 
x=x+d; 
} 
} 
if (t==2) 
{ 
t=0; 
for(int i=1;i<=4;i++) 
{ 
if (wei[x+f.x[i]+1][y+f.y[i]]==1) 
t=1; 
} 
if (t==0) 
{ 
x=x+1; 
} 
else 
{ 
t=0; 
for(int i=1;i<=4;i++) 
{ 
if (wei[x+f.x[i]-1][y+f.y[i]]==1) 
t=1; 
} 
if (t==1) 
{ 
yangshi=c; 
} 
else 
{ 
x=x-1; 
} 
} 

} 
} 
if (e.getKeyCode()==KeyEvent.VK_LEFT && siwang==0) 
{ 
x=x-1;t=0; 
f.fk(fang,yangshi); 
for (int i=1;i<=4;i++) 
{ 
if (wei[x+f.x[i]][y+f.y[i]]==1) 
t=1; 
} 
if (t==1) 
{ 
x=a; 
} 


} 
if (e.getKeyCode()==KeyEvent.VK_RIGHT && siwang==0) 
{ 
x=x+1;t=0; 
f.fk(fang,yangshi); 
for (int i=1;i<=4;i++) 
{ 
if (wei[x+f.x[i]][y+f.y[i]]==1) 
t=1; 
} 
if (t==1) 
{ 

x=a; 

} 
} 

if (e.getKeyCode()==KeyEvent.VK_DOWN && siwang==0) 
y=y+1; 
panduan(); 
repaint(); 
} 
public void panduan() 
{ 

int t=0; 
t=0; 
f.fk(fang,yangshi); 
for (int i=1;i<=4;i++) //判断是否落到东西上 
{ 
if (wei[x+f.x[i]][y+f.y[i]]==1) 
{ 
t=1; 
break; 
} 
} 
if (t==1 && siwang==0) //落到东西上 
{ 
y=y-1; 
for (int i=1;i<=4;i++) 
{ 
wei[x+f.x[i]][y+f.y[i]]=1; 
} 
xiahang(); 
shengcheng(); 
} 

} 
public void keyTyped(KeyEvent e) 
{} 
public void keyReleased(KeyEvent e) 
{} 
public void shengcheng() //生成 新方快 
{ 
fang=(int)(Math.random()*7+1); 
yangshi=(int)(Math.random()*4+1); 
yangship=yangshi; 
x=6; 
y=2; 
xp=6; 
yp=2; 
repaint(); 
f.fk(fang,yangshi); 
for (int i=1;i<=4;i++) 
{ 
if (wei[x+f.x[i]][y+f.y[i]]==1) 
{ 
siwang(); 
} 
} 
} 
public void siwang() //玩家死亡 
{ 

siwang=1; 
repaint(); 
} 
public void xiahang() //下行 
{ 

int t,o=0; 
for (int i=1;i<=20;i++) 
{ 
t=0; 
for (int j=1;j<=14;j++) 
{ 
if (wei[j][i]==1) 
t=t+1; 
} 
if (t==14) 
{ 
for (int j=0;j<=14;j++) 
{ 
wei[j][i]=0; 
} 
for (int j=i;j>=1;j--) 
{ 
for (int h=0;h<=14;h++) 
{ 
wei[h][j]=wei[h][j-1]; 
} 
} 
o=o+1; 
i=i-1; 

} 
} 
for (int i=1;i<=o;i++) 
fenshu=fenshu+i; 

} 
} 

class fangkuai 
{ 
int [] x=new int [5]; // OO 
int [] y=new int [5]; 
public void fk(int fang,int yangshi) 
{ 
if (fang==1) 
{ 
if (yangshi==1) 
{ 
x[1]=0; 
y[1]=0; 
x[2]=-1; 
y[2]=0; 
x[3]=0; 
y[3]=-1; 
x[4]=-1; 
y[4]=-1; 
} 
if (yangshi==2) 
{ 
x[1]=0; 
y[1]=0; 
x[2]=-1; 
y[2]=0; 
x[3]=0; 
y[3]=-1; 
x[4]=-1; 
y[4]=-1; 
} 
if (yangshi==3) 
{ 
x[1]=0; 
y[1]=0; 
x[2]=-1; 
y[2]=0; 
x[3]=0; 
y[3]=-1; 
x[4]=-1; 
y[4]=-1; 
} 
if (yangshi==4) 
{ 
x[1]=0; 
y[1]=0; 
x[2]=-1; 
y[2]=0; 
x[3]=0; 
y[3]=-1; 
x[4]=-1; 
y[4]=-1; 
} 
} 
if (fang==2) 
{ 
if (yangshi==1) 
{ 
x[1]=1; 
y[1]=1; 
x[2]=1; 
y[2]=0; 
x[3]=1; 
y[3]=-1; 
x[4]=0; 
y[4]=-1; 
} 
if (yangshi==2) // O 
{ //OOO 
x[1]=1; 
y[1]=1; 
x[2]=0; 
y[2]=1; 
x[3]=-1; 
y[3]=1; 
x[4]=1; 
y[4]=0; 
} 
if (yangshi==3) //O 
{ //O 
x[1]=0; //OO 
y[1]=1; 
x[2]=-1; 
y[2]=1; 
x[3]=-1; 
y[3]=0; 
x[4]=-1; 
y[4]=-1; 
} 
if (yangshi==4) //OOO 
{ //O 
x[1]=-1; 
y[1]=0; 
x[2]=-1; 
y[2]=-1; 
x[3]=0; 
y[3]=-1; 
x[4]=1; 
y[4]=-1; 
} 
} 
if (fang==3) 
{ 
if (yangshi==1) //OO 
{ //O 
x[1]=-1; //O 
y[1]=1; 
x[2]=-1; 
y[2]=0; 
x[3]=-1; 
y[3]=-1; 
x[4]=0; 
y[4]=-1; 
} 
if (yangshi==2) //O 
{ //OOO 
x[1]=1; 
y[1]=1; 
x[2]=0; 
y[2]=1; 
x[3]=-1; 
y[3]=1; 
x[4]=-1; 
y[4]=0; 
} 
if (yangshi==3) // O 
{ // O 
x[1]=1; //OO 
y[1]=1; 
x[2]=0; 
y[2]=1; 
x[3]=1; 
y[3]=0; 
x[4]=1; 
y[4]=-1; 
} 
if (yangshi==4) //OOO 
{ // O 
x[1]=1; 
y[1]=0; 
x[2]=1; 
y[2]=-1; 
x[3]=0; 
y[3]=-1; 
x[4]=-1; 
y[4]=-1; 
} 
} 
if (fang==4) 
{ 
if (yangshi==1) //BO 
{ // O 
x[1]=1; 
y[1]=1; 
x[2]=1; 
y[2]=0; 
x[3]=0; 
y[3]=0; 
x[4]=0; 
y[4]=-1; 
} 
if (yangshi==2) // BO 
{ //OO 
x[1]=0; 
y[1]=1; 
x[2]=-1; 
y[2]=1; 
x[3]=1; 
y[3]=0; 
x[4]=0; 
y[4]=0; 
} 
if (yangshi==3) 
{ 
x[1]=1; 
y[1]=1; 
x[2]=1; 
y[2]=0; 
x[3]=0; 
y[3]=0; 
x[4]=0; 
y[4]=-1; 
} 
if (yangshi==4) 
{ 
x[1]=0; 
y[1]=1; 
x[2]=-1; 
y[2]=1; 
x[3]=1; 
y[3]=0; 
x[4]=0; 
y[4]=0; 
} 
} 
if (fang==5) 
{ 
if (yangshi==1) 
{ 
x[1]=0; 
y[1]=1; 
x[2]=0; 
y[2]=0; 
x[3]=1; 
y[3]=0; 
x[4]=1; 
y[4]=-1; 
} 
if (yangshi==2) 
{ 
x[1]=1; 
y[1]=0; 
x[2]=0; 
y[2]=0; 
x[3]=0; 
y[3]=-1; 
x[4]=-1; 
y[4]=-1; 
} 
if (yangshi==3) 
{ 
x[1]=0; 
y[1]=1; 
x[2]=0; 
y[2]=0; 
x[3]=1; 
y[3]=0; 
x[4]=1; 
y[4]=-1; 
} 
if (yangshi==4) 
{ 
x[1]=1; 
y[1]=0; 
x[2]=0; 
y[2]=0; 
x[3]=0; 
y[3]=-1; 
x[4]=-1; 
y[4]=-1; 
} 
} 
if (fang==6) 
{ 
if (yangshi==1) //O 
{ //OsO 
x[1]=0; 
y[1]=0; 
x[2]=1; 
y[2]=0; 
x[3]=-1; 
y[3]=0; 
x[4]=0; 
y[4]=-1; 
} 
if (yangshi==2) //O 
{ //sO 
x[1]=0; //O 
y[1]=0; 
x[2]=1; 
y[2]=0; 
x[3]=0; 
y[3]=1; 
x[4]=0; 
y[4]=-1; 
} 
if (yangshi==3) 
{ //OsO 
x[1]=0; //O 
y[1]=0; 
x[2]=1; 
y[2]=0; 
x[3]=0; 
y[3]=1; 
x[4]=-1; 
y[4]=0; 
} 
if (yangshi==4) //O 
{ //Os 
x[1]=0; //O 
y[1]=0; 
x[2]=-1; 
y[2]=0; 
x[3]=0; 
y[3]=1; 
x[4]=0; 
y[4]=-1; 
} 
} 
if (fang==7) 
{ 
if (yangshi==1) //OOsO 
{ 
x[1]=0; 
y[1]=0; 
x[2]=1; 
y[2]=0; 
x[3]=-1; 
y[3]=0; 
x[4]=-2; 
y[4]=0; 
} //O 
if (yangshi==2) // s 
{ //O 
x[1]=0; //O 
y[1]=0; 
x[2]=0; 
y[2]=1; 
x[3]=0; 
y[3]=2; 
x[4]=0; 
y[4]=-1; 
} 
if (yangshi==3) //OOsO 
{ 
x[1]=0; 
y[1]=0; 
x[2]=1; 
y[2]=0; 
x[3]=-1; 
y[3]=0; 
x[4]=-2; 
y[4]=0; 
} 
if (yangshi==4) // s 
{ //O 
x[1]=0; //O 
y[1]=0; 
x[2]=0; 
y[2]=1; 
x[3]=0; 
y[3]=2; 
x[4]=0; 
y[4]=-1; 
} 
} 
} 

} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -