📄 squareshape.java
字号:
import java.awt.*;
//是所有图形的基类
//Download by http://www.codefans.net
abstract class SquareShape
{
private int rotateFlag=0;//旋转到第几下
protected int position[][]=new int[4][2];//每个图形由四个方格所组成
protected int xpos=100,ypos=0;//基点的位置,默认时其位置为第一行的中间
protected Color color;//画方格的颜色
public SquareShape()
{
defaultRotate();
}
//设置图形的位置
public void setPlace(int x,int y)
{
xpos=x;
ypos=y;
switch(rotateFlag)
{
case 0:defaultRotate();
break;
case 1:firstRotate();
break;
case 2:secondRotate();
break;
case 3:thirdRotate();
}
}
//画图形
public void drawShape(Graphics g)
{
g.setColor(color);
for(int i=0;i<4;i++)
{
g.fillRect(position[i][0],position[i][1],20,20);
}
g.setColor(Color.white);
for(int i=0;i<4;i++)
{
g.drawRect(position[i][0],position[i][1],19,19);
}
}
//顺转的计数
public void rotate()
{
rotateFlag++;
if(rotateFlag==4)
{
rotateFlag=0;
}
}
//逆转动的计数
public void contraRotate()
{
rotateFlag--;
if(rotateFlag==-1)
{
rotateFlag=3;
}
}
//默认时各方格的位置
protected abstract void defaultRotate();
//第一次旋转后各方格的位置
protected abstract void firstRotate();
//第二次旋转后各方格的位置
protected abstract void secondRotate();
//第三次旋转后各方格的位置
protected abstract void thirdRotate();
//得到方格左边的位置
public int getLeft()
{
int l[]={position[0][0],position[1][0],position[2][0],position[3][0]};
for(int i=0;i<3;i++)
{
for(int j=i+1;j<4;j++)
{
if(l[i]>l[j])
{
int tmp=l[i];
l[i]=l[j];
l[j]=tmp;
}
}
}
return l[0];
}
//得到第右边犯竦奈恢
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -