📄 diamond.h
字号:
class CDiamond
{
private:
int PointX,PointY;
char data[4][4];
char limit[4][4];
CDiamond* next;
public:
CDiamond(int x=0,int y=0);
void SetData(char d[4][4]);
void SetData(char d[][16],int n);
void SetLimit(char l[4][4]);
void SetLimit(char l[][16],int n);
void SetPoint(int x,int y);
void Link(CDiamond *l);
void GetData(char d[4][4]);
void GetLimit(char l[4][4]);
void GetPoint(int &x,int &y);
CDiamond* GetNext(void);
void MoveR(char td[16][10]);
void MoveL(char td[16][10]);
void Floor(char td[16][10]);
};
CDiamond::CDiamond(int x,int y)
{
PointX=x;PointY=y;
}
void CDiamond::SetData(char d[4][4])
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
data[i][j]=d[i][j];
}
void CDiamond::SetData(char d[][16],int n)
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
data[i][j]=d[n][i*4+j];
}
void CDiamond::SetLimit(char l[4][4])
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
limit[i][j]=l[i][j];
}
void CDiamond::SetLimit(char l[][16],int n)
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
limit[i][j]=l[n][i*4+j];
}
void CDiamond::SetPoint(int x,int y)
{
PointX=x;PointY=y;
}
void CDiamond::Link(CDiamond *l)
{
next=l;
}
void CDiamond::GetData(char d[4][4])
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
d[i][j]=data[i][j];
}
void CDiamond::GetLimit(char l[4][4])
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
l[i][j]=limit[i][j];
}
void CDiamond::GetPoint(int &x,int &y)
{
x=PointX;y=PointY;
}
void CDiamond::Floor(char td[16][10])
{
bool IsTouch=0;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
if(data[i][j]!=0)
{
if(PointY+i==15||td[PointY+i+1][PointX+j]!=0) IsTouch=1;
}
if(!IsTouch) ++PointY;
}
void CDiamond::MoveR(char td[16][10])
{
bool IsTouch=0;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
if(data[i][j]!=0)
{
if(PointX+j==9||td[PointY+i][PointX+j+1]!=0) IsTouch=1;
}
if(!IsTouch) ++PointX;
}
void CDiamond::MoveL(char td[16][10])
{
bool IsTouch=0;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
if(data[i][j]!=0)
{
if(PointX+j==0||td[PointY+i][PointX+j-1]!=0) IsTouch=1;
}
if(!IsTouch) --PointX;
}
CDiamond* CDiamond::GetNext(void)
{
return next;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -