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

📄 brick.java

📁 我自己的俄罗斯方块
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.Timer;
public class Brick
{
	public static void main(String[] args)
	{
		BrickFrame frame=new BrickFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.show();
		frame.NewGame();

	}
}


//a frame with 90 panel on ,Layout with GridLayout(10,9)
class BrickPosition
{
	private int x;	private int y;
	public BrickPosition(){ x=0;y=0;}	public BrickPosition(int a,int b)
	{
		x=a;
		y=b;
	}
	public int getX(){return x;}
	public int getY(){return y;}
	public void setX(int a ){x=a;}
	public void setY(int b){y=b;}
	public void setXY(int a,int b)
	{
		x=a;
		y=b;
	}
	public void set(BrickPosition a)
	{
		x=a.getX();
		y=a.getY();
	}
}



class BrickFrame extends JFrame
{
	public BrickFrame()
	{
		choose=new BrickPosition[11][4];

        choose[0][0]=new BrickPosition(0,5);
        choose[0][1]=new BrickPosition(1,4);
        choose[0][2]=new BrickPosition(1,5);
    	choose[0][3]=new BrickPosition(1,6);

    	choose[1][0]=new BrickPosition(0,5);
    	choose[1][1]=new BrickPosition(1,5);
    	choose[1][2]=new BrickPosition(1,6);
    	choose[1][3]=new BrickPosition(2,5);

    	choose[2][0]=new BrickPosition(0,4);
    	choose[2][1]=new BrickPosition(0,5);
    	choose[2][2]=new BrickPosition(0,6);
    	choose[2][3]=new BrickPosition(1,5);

    	choose[3][0]=new BrickPosition(0,5);
    	choose[3][1]=new BrickPosition(1,4);
    	choose[3][2]=new BrickPosition(1,5);
    	choose[3][3]=new BrickPosition(2,5);

    	choose[4][0]=new BrickPosition(0,5);
    	choose[4][1]=new BrickPosition(0,6);
    	choose[4][2]=new BrickPosition(1,4);
    	choose[4][3]=new BrickPosition(1,5);

    	choose[5][0]=new BrickPosition(0,5);
    	choose[5][1]=new BrickPosition(1,5);
    	choose[5][2]=new BrickPosition(1,6);
    	choose[5][3]=new BrickPosition(2,6);

    	choose[6][0]=new BrickPosition(0,4);
    	choose[6][1]=new BrickPosition(0,5);
    	choose[6][2]=new BrickPosition(1,5);
    	choose[6][3]=new BrickPosition(1,6);

    	choose[7][0]=new BrickPosition(0,5);
    	choose[7][1]=new BrickPosition(1,4);
    	choose[7][2]=new BrickPosition(1,5);
    	choose[7][3]=new BrickPosition(2,4);

    	choose[8][0]=new BrickPosition(0,5);
    	choose[8][1]=new BrickPosition(1,5);
    	choose[8][2]=new BrickPosition(2,5);
    	choose[8][3]=new BrickPosition(3,5);

    	choose[9][0]=new BrickPosition(0,3);
    	choose[9][1]=new BrickPosition(0,4);
    	choose[9][2]=new BrickPosition(0,5);
    	choose[9][3]=new BrickPosition(0,6);

    	choose[10][0]=new BrickPosition(0,4);
    	choose[10][1]=new BrickPosition(0,5);
    	choose[10][2]=new BrickPosition(1,4);
    	choose[10][3]=new BrickPosition(1,5);
    	BrickPanel=new JPanel[20][10];
    	currentposition=new BrickPosition[4];
    	for(int i=0;i<4;i++)
    	   currentposition[i]=new BrickPosition();



		setTitle("Brick Game");
		setSize(WIDTH,HEIGHT);
        setResizable(false);
        Container contentPane=getContentPane();
        contentPane.setLayout(new GridLayout(20,10,3,3));

	    for(int index1=0;index1<20;index1++)
	    for(int index2=0;index2<10;index2++)
	    {

			BrickPanel[index1][index2]=new JPanel();
			contentPane.add(BrickPanel[index1][index2]);
			BrickPanel[index1][index2].setBackground(Color.white);
		}
		BrickKeyListener listener=new BrickKeyListener();
		addKeyListener(listener);
		setFocusable(true);



	}
	public void NewGame()
	{
	    for(int index1=0;index1<10;index1++)
	    for(int index2=0;index2<9;index2++)
	    {
			BrickPanel[index1][index2].setBackground(Color.white);
		}

        TopRow=new int[10];
		for(int i=0;i<=9;i++)
		   TopRow[i]=19;





		BrickTimerListener timelistener=new BrickTimerListener();
		timer=new Timer(700,timelistener);
		timer.start();

		score=0;


		NewBrick();




	}
	public void NewBrick()	{
		shapekind=(int)(Math.random()*11);



		for(int index=0;index<4;index++)
		{
			currentposition[index].setXY(choose[shapekind][index].getX(),choose[shapekind][index].getY());

		}

		BrickDraw(currentposition);
	}

    public void BrickDraw(BrickPosition[] draw)
	{
		for(int index=0;index<4;index++)
		{
			int x=draw[index].getX();
			int y=draw[index].getY();
			BrickPanel[x][y].setBackground(Color.black);
		}
	}
	public void BrickClear(BrickPosition[] clear)
	{
		for(int index=0;index<4;index++)
		{
			int x=clear[index].getX();
			int y=clear[index].getY();
			BrickPanel[x][y].setBackground(Color.white);
		}
	}


	public boolean IsRightSide(BrickPosition[] position)	{
		boolean IsRight=false;
		for(int i=0;i<4;i++)
		{
			if(position[i].getY()==9) IsRight=true;
		}
		return IsRight;
	}
	public boolean IsLeftSide(BrickPosition[] position)
	{
		boolean IsLeft=false;
		for(int i=0;i<4;i++)
		{
			if(position[i].getY()==0) IsLeft=true;
		}
		return IsLeft;
	}

	public boolean IsBrickEnd(BrickPosition[] position)	{
		boolean IsEnd=false;


		if(currentposition[3].getX()!=19)
		{
			switch(shapekind)
		  {
			case 0:
			   for(int i=1;i<4;i++)
			   {
				   if(BrickPanel[(position[i].getX()+1)][position[i].getY()].getBackground()==Color.black) IsEnd=true;
			   }
			   break;
			case 1:
			   if(BrickPanel[(position[2].getX()+1)][position[2].getY()].getBackground()==Color.black) IsEnd=true;
			   if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;
			   break;
			case 3:
			   if(BrickPanel[(position[1].getX()+1)][position[1].getY()].getBackground()==Color.black) IsEnd=true;
			   if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;
			   break;
			case 2:
			   if(BrickPanel[(position[0].getX()+1)][position[0].getY()].getBackground()==Color.black) IsEnd=true;
               if(BrickPanel[(position[2].getX()+1)][position[2].getY()].getBackground()==Color.black) IsEnd=true;
               if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;
               break;
            case 4:
               for(int i=1;i<4;i++)
               {
				   if(BrickPanel[(position[i].getX()+1)][position[i].getY()].getBackground()==Color.black) IsEnd=true;
			   }
			   break;
			case 5:
			   if(BrickPanel[(position[1].getX()+1)][position[1].getY()].getBackground()==Color.black) IsEnd=true;
			   if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;
			   break;
			case 6:
			   if(BrickPanel[(position[0].getX()+1)][position[0].getY()].getBackground()==Color.black) IsEnd=true;
			   if(BrickPanel[(position[2].getX()+1)][position[2].getY()].getBackground()==Color.black) IsEnd=true;
			   if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;
			   break;
			case 7:
			   if(BrickPanel[(position[2].getX()+1)][position[2].getY()].getBackground()==Color.black) IsEnd=true;
			   if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;
			   break;
		    case 8:
		       if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;
		       break;
		    case 9:
		       for(int i=0;i<4;i++)
		       {
			      if(BrickPanel[(position[i].getX()+1)][position[i].getY()].getBackground()==Color.black) IsEnd=true;
			   }
			   break;
			case 10:
			   if(BrickPanel[(position[2].getX()+1)][position[2].getY()].getBackground()==Color.black) IsEnd=true;
			   if(BrickPanel[(position[3].getX()+1)][position[3].getY()].getBackground()==Color.black) IsEnd=true;

⌨️ 快捷键说明

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