📄 thdcalcq.cpp
字号:
frmQueen->pbBoard->Canvas->Unlock();
}
else
{
Grid.Y -= IMGLEN + 1;
Grid.COLOR = Grid.COLOR==clGreen?clWhite:clGreen;
while(Grid.Y != ToGrid.Y)
{
PutChessMan(Grid,QPOINT);
Grid.Y -= IMGLEN + 1;
Grid.COLOR = Grid.COLOR==clGreen?clWhite:clGreen;
Sleep(AniSpeed);
}
TRect rect;
rect.Left = ToGrid.X;
rect.Top = ToGrid.Y;
rect.Right = rect.Left + IMGLEN;
rect.Bottom = rect.Top + IMGLEN;
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->Brush->Color = ToGrid.COLOR;
frmQueen->pbBoard->Canvas->Unlock();
for(int i=0;i<2;++i)
{
PutChessMan(ToGrid,ERRQUEEN);
Sleep(AniSpeed);
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
frmQueen->pbBoard->Canvas->Unlock();
PutChessMan(ToGrid,QUEEN);
Sleep(AniSpeed);
}
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
while(rect.Top != FromGrid.Y)
{
rect.Top += IMGLEN + 1;
rect.Bottom += IMGLEN + 1;
if(frmQueen->pbBoard->Canvas->Brush->Color == clGreen)
frmQueen->pbBoard->Canvas->Brush->Color = clWhite;
else
frmQueen->pbBoard->Canvas->Brush->Color = clGreen;
frmQueen->pbBoard->Canvas->FillRect(rect);
}
frmQueen->pbBoard->Update();
frmQueen->pbBoard->Canvas->Unlock();
}
}
else if(FromGrid.X < ToGrid.X)
{
if(FromGrid.Y < ToGrid.Y)
{
Grid.X += IMGLEN + 1;
Grid.Y += IMGLEN + 1;
while(Grid.Y != ToGrid.Y)
{
PutChessMan(Grid,QPOINT);
Grid.X += IMGLEN + 1;
Grid.Y += IMGLEN + 1;
Sleep(AniSpeed);
}
TRect rect;
rect.Left = ToGrid.X;
rect.Top = ToGrid.Y;
rect.Right = rect.Left + IMGLEN;
rect.Bottom = rect.Top + IMGLEN;
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->Brush->Color = ToGrid.COLOR;
frmQueen->pbBoard->Canvas->Unlock();
for(int i=0;i<2;++i)
{
PutChessMan(ToGrid,ERRQUEEN);
Sleep(AniSpeed);
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
frmQueen->pbBoard->Canvas->Unlock();
PutChessMan(ToGrid,QUEEN);
Sleep(AniSpeed);
}
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
while(rect.Top != FromGrid.Y)
{
rect.Left -= IMGLEN + 1;
rect.Top -= IMGLEN + 1;
rect.Right -= IMGLEN + 1;
rect.Bottom -= IMGLEN + 1;
frmQueen->pbBoard->Canvas->FillRect(rect);
}
frmQueen->pbBoard->Update();
frmQueen->pbBoard->Canvas->Unlock();
}
else
{
Grid.X += IMGLEN + 1;
Grid.Y -= IMGLEN + 1;
while(Grid.Y != ToGrid.Y)
{
PutChessMan(Grid,QPOINT);
Grid.X += IMGLEN + 1;
Grid.Y -= IMGLEN + 1;
Sleep(AniSpeed);
}
TRect rect;
rect.Left = ToGrid.X;
rect.Top = ToGrid.Y;
rect.Right = rect.Left + IMGLEN;
rect.Bottom = rect.Top + IMGLEN;
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->Brush->Color = ToGrid.COLOR;
frmQueen->pbBoard->Canvas->Unlock();
for(int i=0;i<2;++i)
{
PutChessMan(ToGrid,ERRQUEEN);
Sleep(AniSpeed);
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
frmQueen->pbBoard->Canvas->Unlock();
PutChessMan(ToGrid,QUEEN);
Sleep(AniSpeed);
}
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
while(rect.Top != FromGrid.Y)
{
rect.Left -= IMGLEN + 1;
rect.Top += IMGLEN + 1;
rect.Right -= IMGLEN + 1;
rect.Bottom += IMGLEN + 1;
frmQueen->pbBoard->Canvas->FillRect(rect);
}
frmQueen->pbBoard->Update();
frmQueen->pbBoard->Canvas->Unlock();
}
}
else
{
if(FromGrid.Y < ToGrid.Y)
{
Grid.X -= IMGLEN + 1;
Grid.Y += IMGLEN + 1;
while(Grid.Y != ToGrid.Y)
{
PutChessMan(Grid,QPOINT);
Grid.X -= IMGLEN + 1;
Grid.Y += IMGLEN + 1;
Sleep(AniSpeed);
}
TRect rect;
rect.Left = ToGrid.X;
rect.Top = ToGrid.Y;
rect.Right = rect.Left + IMGLEN;
rect.Bottom = rect.Top + IMGLEN;
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->Brush->Color = ToGrid.COLOR;
frmQueen->pbBoard->Canvas->Unlock();
for(int i=0;i<2;++i)
{
PutChessMan(ToGrid,ERRQUEEN);
Sleep(AniSpeed);
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
frmQueen->pbBoard->Canvas->Unlock();
PutChessMan(ToGrid,QUEEN);
Sleep(AniSpeed);
}
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
while(rect.Top != FromGrid.Y)
{
rect.Left += IMGLEN + 1;
rect.Top -= IMGLEN + 1;
rect.Right += IMGLEN + 1;
rect.Bottom -= IMGLEN + 1;
frmQueen->pbBoard->Canvas->FillRect(rect);
}
frmQueen->pbBoard->Update();
frmQueen->pbBoard->Canvas->Unlock();
}
else
{
Grid.X -= IMGLEN + 1;
Grid.Y -= IMGLEN + 1;
while(Grid.Y != ToGrid.Y)
{
PutChessMan(Grid,QPOINT);
Grid.X -= IMGLEN + 1;
Grid.Y -= IMGLEN + 1;
Sleep(AniSpeed);
}
TRect rect;
rect.Left = ToGrid.X;
rect.Top = ToGrid.Y;
rect.Right = rect.Left + IMGLEN;
rect.Bottom = rect.Top + IMGLEN;
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->Brush->Color = ToGrid.COLOR;
frmQueen->pbBoard->Canvas->Unlock();
for(int i=0;i<2;++i)
{
PutChessMan(ToGrid,ERRQUEEN);
Sleep(AniSpeed);
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
frmQueen->pbBoard->Canvas->Unlock();
PutChessMan(ToGrid,QUEEN);
Sleep(AniSpeed);
}
frmQueen->pbBoard->Canvas->Lock();
frmQueen->pbBoard->Canvas->FillRect(rect);
while(rect.Top != FromGrid.Y)
{
rect.Left += IMGLEN + 1;
rect.Top += IMGLEN + 1;
rect.Right += IMGLEN + 1;
rect.Bottom += IMGLEN + 1;
frmQueen->pbBoard->Canvas->FillRect(rect);
}
frmQueen->pbBoard->Update();
frmQueen->pbBoard->Canvas->Unlock();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TthdCalc::ShowChessMan(void)
{
for(int i=1;i<=Queens.length();++i)
PutChessMan(Queens[i],QUEEN);
if(Queens.GetFQueenPos() != 0)
PutChessMan(Queens.GetFQueen(),QUEEN,true);
}
//---------------------------------------------------------------------------
void __fastcall TthdCalc::EnableNewQueen(void)
{
frmQueen->btnQueen->Caption = "摆皇后(&Q)";
frmQueen->gpbOptions->Enabled = true;
frmQueen->lblDescription->Caption = "";
}
//---------------------------------------------------------------------------
void __fastcall TthdCalc::CopyQueens()
{
frmQueen->Queens = Queens;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -