日期:2014-05-20  浏览次数:20668 次

帮忙解决下 急急急
下面的代码帮忙加个main()方法吧 帮忙调试下 谢谢
package zh;

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Rrt extends Applet implements Runnable {
Font font = new Font("Dialog", Font.BOLD,18);//定义字体
Thread thread;//定义线程
public java.awt.Graphics gg;//定义图形变量
public boolean[][] screen;//控制游戏地图
public int[] x;//记录方块的行坐标
public int[] y;//记录方块的列坐标
public int[] x1;//记录方块活动之前的行坐标
public int[] y1;//记录方块活动之前的列坐标
public int rand;//随机数
public int[] row;//记录每一行的方块数
public int mark;//记录每一关的分数
public boolean open;//游戏清屏开关
public int pass;//游戏关数
public boolean game;//控制游戏开始开关
/**
 * 绘制七种图形并调用随机函数令它随机出现
 * 创建日期:(2005-5-15 13:30:51)
 */
public void begin() {
int i;
rand=(int)(Math.random()*7)+1;
switch(rand)
{
case 1: 
x[0]=4+0;y[0]=0;
x[1]=4+1;y[1]=0;
x[2]=4+2;y[2]=0;
x[3]=4+3;y[3]=0; //一字型
x[4]=4;y[4]=-1;
break;
case 2:x[0]=4+0;y[0]=0;
x[1]=4+1;y[1]=0;
x[2]=4+1;y[2]=1;
x[3]=4+2;y[3]=1; //Z字型
x[4]=4;y[4]=0;
break;
case 3:x[0]=4+1;y[0]=0;
x[1]=4+2;y[1]=0;
x[2]=4+0;y[2]=1;
x[3]=4+1;y[3]=1; //反Z型  
x[4]=4;y[4]=0; 
break; 
case 4:x[0]=4+0;y[0]=0;
x[1]=4+1;y[1]=0;
x[2]=4+1;y[2]=1;
x[3]=4+1;y[3]=2; //7字型
x[4]=4;y[4]=0;
break; 
case 5:x[0]=4+1;y[0]=0;
x[1]=4+2;y[1]=0;
x[2]=4+1;y[2]=1;
x[3]=4+1;y[3]=2; //反7字型
x[4]=4;y[4]=0;
break;
case 6:x[0]=4+1;y[0]=0;
x[1]=4+0;y[1]=1;
x[2]=4+1;y[2]=1;
x[3]=4+2;y[3]=1; //反T型
x[4]=4;y[4]=0;
break;
case 7:x[0]=4+0;y[0]=0;
x[1]=4+1;y[1]=0;
x[2]=4+0;y[2]=1;
x[3]=4+1;y[3]=1; //田字型
x[4]=4;y[4]=0;
 
}
for(i=0;i<4;i++)
if (screen[x[i]][y[i]+1] ) //判断在抽取一种图形后,在该图形的下一行是否有障碍物
destroy();
save();
xian();
}
/**
 * 控制方块的变形
 */
public void change() {
int i,j=0;
int m[]=new int [4];
int n[]=new int [4];
if (rand!=7) //当不为田字型时,变形
{for(i=0;i<4;i++)
{
m[i]=y[i]-y[4]+x[4];
n[i]=2-x[i]+x[4]+y[4];//用两个数组把变形后的图形存起来
if (m[i]<0||m[i]>11||n[i]>18) j=1;
}
if (j!=1)
{
for(i=0;i<4;i++)
{
if (screen[m[i]][n[i]] )//判断变形后的坐标在没变形之前该坐标在游戏地图中是否已有点存在
break;
}
if(i==4) //证明变形后的点不存在障碍
for(i=0;i<4;i++)
{
x[i]=m[i];  
y[i]=n[i]; //把游戏地图中变形后的图形赋给活动中的图形
}
}
}
}
/**
 * 清理挂起的资源。
 * 如果 applet 是活动的,它将被停止。
 */
public void destroy() {
game=false;
pass=1; //关数初始化
repaint(); //调用屏幕初始化
}
/**
 *游戏初始化
 */
public void gameinit() 
{
int i,j;
for (i=0;i<12;i++)
for (j=0;j<19;j++)
screen[i][j]=false;//把游戏地图中所有点都清空
for (i=0;i<19;i++)
row[i]=0; //把每一行的方块总数都清空
open=true; //打开游戏地图清屏开关
mark=0;
begin();
}
/**
 * 初始化整个程序
 */
public void init()
{
screen=new boolean[12][19];