本文整理汇总了C++中Table::Check方法的典型用法代码示例。如果您正苦于以下问题:C++ Table::Check方法的具体用法?C++ Table::Check怎么用?C++ Table::Check使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Table
的用法示例。
在下文中一共展示了Table::Check方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Down
//判断并执行下移,返回1为下移成功,返回0为到底了
bool Shape::Down(Table& table)//向下移动,一个周期自动运行一次
{
for(int i=0;i<4;i++)
{
position[i].row+=1;
}
for(int i=0;i<4;i++)
{
if(table.Check(position[i]))
{
for(int j=0;j<4;j++)
{
position[j].row-=1;
}
return 0;
}
}
/*重新打印*/
HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
DWORD len;
for(int i=0;i<4;i++)
{
if(position[i].row>4)
{
pos.X=2*(position[i].column);
pos.Y=position[i].row-4;
FillConsoleOutputCharacter(out,L' ',2,pos,&len);
}
}
for(int i=0;i<4;i++)
{
if(position[i].row>3)
{
pos.X=2*(position[i].column);
pos.Y=position[i].row-3;
SetConsoleCursorPosition(out,pos);
cout<<"■";
}
}
pos.X=0;
pos.Y=HEIGHT-3;
SetConsoleCursorPosition(out,pos);
return 1;
}
示例2: Right
//判断并执行右移
void Shape::Right(Table& table)//向右移动
{
for(int i=0;i<4;i++)
{
position[i].column+=1;
}
for(int i=0;i<4;i++)
{
if(table.Check(position[i]))
{
for(int j=0;j<4;j++)
{
position[j].column-=1;
}
return;
}
}
HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
DWORD len;
for(int i=0;i<4;i++)
{
if(position[i].row-3>0)
{
pos.X=2*(position[i].column-1);
pos.Y=position[i].row-3;
FillConsoleOutputCharacter(out,L' ',2,pos,&len);
}
}
for(int i=0;i<4;i++)
{
if(position[i].row-3>0)
{
pos.X=2*(position[i].column);
pos.Y=position[i].row-3;
SetConsoleCursorPosition(out,pos);
cout<<"■";
}
pos.X=0;
pos.Y=HEIGHT-3;
SetConsoleCursorPosition(out,pos);
}
}
示例3: PrintNearby
//打印旋转后的范围
void Shape::PrintNearby(int n,Table& table)
{
Position check;
HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
for(int i=-n;i<=n;i++)
{
for(int j=-n;j<=n;j++)
{
check.column=position[2].column+j;
check.row=position[2].row+i;
if(check.column>0&&check.column<WIDTH-1&&check.row<HEIGHT-1&&check.row>3)
{
pos.X=2*(check.column);
pos.Y=check.row-3;
SetConsoleCursorPosition(out,pos);
cout<<" ";
if(table.Check(check))
{
SetConsoleCursorPosition(out,pos);
cout<<"■";
}
for(int k=0;k<4;k++)
{
if((position[k].row==check.row)&&(position[k].column==check.column))
{
SetConsoleCursorPosition(out,pos);
cout<<"■";
}
}
}
}
}
pos.X=0;
pos.Y=HEIGHT-3;
SetConsoleCursorPosition(out,pos);
}