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

📄 square.java

📁 一个俄罗斯方块游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					g2d.setFont(new Font("黑体",1,15));
					g2d.setColor(Color.ORANGE);
					g2d.drawString("淼",274+r*18,68+c*18);
				}
			}
		}
	}

	public void fallSquare()
	{
		rotaCol++;
		for (int c=col-2;c>=0 ; c--)
		{
			for (int r=0;r<row ;r++ )
			{
				fSquare[c+1][r] = fSquare[c][r];
				fSquare[c][r]=0;
			}
		}

	}

	public void turn()
	{
		for (int c=0;c<col ;c++ )
		{
			for (int r=0;r<row ;r++ )
			{
				if(fSquare[c][r]==1)
				{
					int newR = rotaRow+rotaCol-c;
					int newC = rotaCol - rotaRow+r;
					pSquare[newC][newR]=1;
				}
			}
		}

		for (int c=0;c<col ;c++ )
		{
			for (int r=0;r<row ;r++ )
			{
				fSquare[c][r]=pSquare[c][r];
				pSquare[c][r]=0;
			}
		}

	}

	public void leftMove()
	{
		rotaRow--;
		for (int c =0;c<col ;c++ )
		{
			for(int r=1;r<row;r++)
			{
				fSquare[c][r-1]= fSquare[c][r];
				fSquare[c][r]=0;
			}
		}
	}

	public void rightMove()
	{
		rotaRow++;
		for (int c =0;c<col ;c++ )
		{
			for(int r=row-2;r>=0;r--)
			{
				fSquare[c][r+1]= fSquare[c][r];
				fSquare[c][r]=0;
			}
		}

	}

	public boolean isFall()
	{			
		for (int r =0;r<row ;r++ )
		{
			if(fSquare[23][r]==1)
			{
				return false;
			}
		}
		for (int c = 0;c<col-1  ;c++ )
		{
			for (int r=0;r<row ; r++)
			{
				if(fSquare[c][r]==1 && bSquare[c+1][r]==1)
				{
					return false;
				}
			}
		}
		return true;
	}

	public void quikFall()
	{
		if(isFall())
		{
			fallSquare();
		}
	}

	public boolean isRight()
	{
		for (int c=0;c<col ;c++ )
		{
			if(fSquare[c][row-1]==1)
				return false;
		}
		for (int c=0;c<col ;c++ )
		{
			for (int r=0;r<row-1;r++ )
			{
				if(fSquare[c][r]==1 && bSquare[c][r+1]==1)
				{
					return false;
				}
			}
		}
		return true;
	}

	public boolean isDown()
	{
		for (int i=0;i<row ;i++ )
		{
			if(bSquare[0][i]==1)
				return true;
		}
		return false;
	}

	public boolean isLeft()
	{
		for (int c=0;c<24 ;c++ )
		{
			if(fSquare[c][0]==1)
				return false;
		}
		for (int c=0;c<col ;c++ )
		{
			for (int r=1;r<row ;r++ )
			{
				if(fSquare[c][r]==1 && bSquare[c][r-1]==1)
				{
					return false;
				}
			}
		}
		return true;
	}

	public boolean isTurn()
	{
		for (int c=0;c<col;c++ )
		{
			for (int r=0;r<row;r++ )
			{
				if(fSquare[c][r]==1)
				{
					int newR = rotaRow+rotaCol-c;
					int newC = rotaCol - rotaRow+r;
					if(newR>=row || newR<0 || newC>=col || newC<0)
					{
						return false;
					}
				}

			}
		}
		for (int c=0;c<col-4;c++ )
		{
			for(int r=0; r<row-3; r++)
			{
				if(fSquare[c][r]==1)
				{
					int newR = rotaRow+rotaCol-c;
					int newC = rotaCol - rotaRow+r;
					if(bSquare[newC][newR]==1)
					{
						return false;
					}
				}
			}
		}
		return true;
	}

	public int  cancelLine()
	{
		int r;
		int hang=0;

		for (r=0;r<col ;r++ )
		{
			int count=0;
			for (int c=0; c<row;c++ )
			{
				if(bSquare[r][c]==1)
				{
					count++;
				}
			}

			if(count==row)
			{
				hang++;
				for(int i=r;i>0;i--)
				{
					for (int j=0;j<row ;j++ )
					{
						bSquare[i][j] = bSquare[i-1][j];
						bSquare[i-1][j]=0;
					}
				}
			}
		}
		return hang;
	}
	public void score(int s)
	{
		switch (s)
		{
		case 1:
			score = score+100;
			break;
		case 2:
			score = score+300;
			break;
		case 3:
			score = score+500;
			break;
		case 4:
			score = score+700;
			break;
		
		}
	}

	public void state()
	{
		switch (state)
		{
		case 0:
			state=state+score/1000;
			break;
		case 1:
			state=state+score/3000;		
			break;
		case 2:
			state=state+score/6000;		
			break;
		case 3:
			state=state+score/12000;		
			break;
		case 4:
			state=state+score/24000;		
			break;
		case 5:
			state=state+score/48000;		
			break;
		case 6:
			state=state+score/96000;		
			break;
		case 7:
			state=state+score/192000;		
			break;
		case 8:
			state=state+score/384000;		
			break;
		case 9:
			state=state+score/768000;		
			break;
		case 10:
			state=state+score/1526000;		
			break;
		case 11:
			state=state+score/3052000;				
			break;
		case 12:
			state=state+score/6104000;			
			break;
		}		
		
	}

	public void showScore(Graphics2D g2d,Screen s)
	{
		g2d.setColor(Color.PINK);
		g2d.setFont(new Font("黑体",1,15));
		g2d.drawString(""+score,535,75);
	}

	public void showState(Graphics2D g2d,Screen s)
	{
		g2d.setColor(Color.PINK);
		g2d.setFont(new Font("黑体",1,15));
		g2d.drawString(""+state,575,135);
	}

}

⌨️ 快捷键说明

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