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

📄 block.java

📁 J2ME手机版游戏——配对赛源代码
💻 JAVA
字号:
import java.util.Random;
//Download by http://www.codefans.net
public class Block{

	public int ClassNum;  		//关卡号
	public String BlockImage[][] = new String[6][5];	//各配对块图片号
	public int BlockZt[][] = new int[6][5];		//各配对块状态:0消失/1盖住/2打开
	private int Open_Block_X,Open_Block_Y;		//当前打开方块
    private Random rand = new Random(); 
	public int Opened_X1,Opened_Y1,Opened_X2,Opened_Y2;
	public int width,height;					//宽、竖-方块数

	public int Block_X;		//当前活动方块X位置
	public int Block_Y;		//当前活动方块Y位置

	public Block()
	{
	}

	public void reset(int class_num,int _width,int _height)
	{
		//初使化各变量
		width = _width;
		height = _height;
		Block_X = 0;
		Block_Y = 0;
		Open_Block_X = -1;
		Open_Block_Y = -1;
		Opened_X1 = Opened_X2 = Opened_Y1 = Opened_Y2 = -1;
		ClassNum = class_num;
	
		//各Block初使化
		for(int i=0;i<width;i++)
			for(int j=0;j<height;j++)
				BlockImage[i][j] = null;
		
		int _w=0;
		if(width==5&&height==5)
		{
			_w=1;
			BlockZt[0][0]=0;
			BlockImage[0][0]="1000";
		}
		
		for(int i=_w;i<width;i++)
			for(int j=0;j<height;j++)
			{
				if(BlockImage[i][j]==null)
				{
					getImageNum(i,j);
				}
			}	

	}

	public boolean isPass()
	{
		for(int i=0;i<width;i++)
			for(int j=0;j<height;j++)
			{
				if(BlockZt[i][j]!=0)return false;
			}
		return true;
	}

	public void getImageNum(int i,int j)
	{
		int _i,_j;
		String num=null;
		boolean found=false;
		
		if(i<width/2 && j<height/2)
		{
			while(found=true)
			{
				_i = Math.abs(rand.nextInt())%width;
				_j = Math.abs(rand.nextInt())%height;
				if(BlockImage[_i][_j]==null && (_i!=i || _j!=j))
				{
					num = String.valueOf(ClassNum) + String.valueOf(Math.abs(rand.nextInt())%10);
					BlockImage[_i][_j] = num;
					BlockImage[i][j] = num;
					BlockZt[_i][_j] = 1;					
					BlockZt[i][j] = 1;										
					found=true;
					return;
				}
			}
		}
		else
		{
			num = String.valueOf(ClassNum) + String.valueOf(Math.abs(rand.nextInt())%10);			
			BlockImage[i][j]=num;
			BlockZt[i][j] = 1;													
			for( int ii=0;ii<width;ii++)
				for(int jj=0;jj<height;jj++)
					if(BlockImage[ii][jj]==null)
					{					
						BlockImage[ii][jj]=num;
						BlockZt[ii][jj] = 1;																
						return;
					}			
		}
	}

	public int clickBlock()
	{
		if (BlockZt[Block_X][Block_Y]==0) return -1;

		if (Open_Block_X==-1 && Open_Block_Y==-1)
		{
			Open_Block_X = Block_X;
			Open_Block_Y = Block_Y;
			BlockZt[Block_X][Block_Y] = 2;
			return 2;
		}
		else
		{
			//此块已打开则关闭
			if (Open_Block_X==Block_X && Open_Block_Y == Block_Y){
				BlockZt[Block_X][Block_Y] = 1;
				Open_Block_X = -1;
				Open_Block_Y = -1;
				return -1;
			}

			//翻开第二块
			BlockZt[Block_X][Block_Y] = 2;

			//判断是否相同
			if (BlockImage[Open_Block_X][Open_Block_Y].compareTo(BlockImage[Block_X][Block_Y])==0)
			{
				beforeClick(0);
				return 0;
			}
			else
			{
				beforeClick(1);
				return 1;
			}
		}
	}

	public void beforeClick(int value)
	{
		if (value==0 || value==1)
		{
			BlockZt[Open_Block_X][Open_Block_Y] = value;
			BlockZt[Block_X][Block_Y] = value;
			Opened_X1 = Open_Block_X;
			Opened_Y1 = Open_Block_Y;
			Opened_X2 = Block_X;
			Opened_Y2 = Block_Y;
			Open_Block_X = -1;
			Open_Block_Y = -1;
		}
	}

	public void pointLeft()
	{
		if(Block_X>0)
			Block_X--;
		else
			Block_X = width-1;
	}

	public void pointRight()
	{
		if(Block_X<width-1)
			Block_X++;
		else
			Block_X = 0;
	}

	public void pointUp()
	{
		if(Block_Y>0)
			Block_Y--;
		else
			Block_Y = height-1;
	}

	public void pointDown()
	{
		if(Block_Y<height-1)
			Block_Y++;
		else
			Block_Y = 0;
	}

}

⌨️ 快捷键说明

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