📄 chessdlg.cpp
字号:
||(nodes[i-1][j-1]==player&&nodes[i+1][j+1]==player&&nodes[i][j+2]==player&&nodes[i][j+3]==player&&nodes[i][j+4]!=-player&&nodes[i][j+1]!=-player&&nodes[i][j-1]!=-player&&nodes[i-2][j-2]!=-player&&nodes[i+2][j+2]!=-player&&i>1&&j>1&&i<=ROW-2&&j<=COL-4)
||(nodes[i][j-1]==player&&nodes[i][j-2]==player&&nodes[i-1][j]==player&&nodes[i-3][j]==player&&nodes[i-4][j]!=-player&&nodes[i-2][j]!=-player&&nodes[i+1][j]!=-player&&nodes[i][j+1]!=-player&&nodes[i][j-3]!=-player&&i>3&&j>2&&i<=ROW-1&&j<=COL-1)
||(nodes[i+1][j]==player&&nodes[i+2][j]==player&&nodes[i][j-1]==player&&nodes[i][j-3]==player&&nodes[i][j-4]!=-player&&nodes[i][j-2]!=-player&&nodes[i][j+1]!=-player&&nodes[i+3][j]!=-player&&nodes[i-1][j]!=-player&&i>0&&j>3&&i<=ROW-3&&j<=COL-1)
||(nodes[i-1][j]==player&&nodes[i-3][j]==player&&nodes[i-1][j-1]==player&&nodes[i-2][j-2]==player&&nodes[i-3][j-3]!=-player&&nodes[i+1][j+1]!=-player&&nodes[i+1][j]!=-player&&nodes[i-2][j]!=-player&&nodes[i-4][j]!=-player&&i>3&&j>2&&i<=ROW-1&&j<=COL-1)
||(nodes[i-1][j]==player&&nodes[i-2][j]==player&&nodes[i-1][j+1]==player&&nodes[i-3][j+3]==player&&nodes[i-4][j+4]!=-player&&nodes[i-2][j+2]!=-player&&nodes[i+1][j-1]!=-player&&nodes[i+1][j]!=-player&&nodes[i-3][j]!=-player&&i>3&&j>0&&i<=ROW-1&&j<=COL-4)
||(nodes[i+1][j]==player&&nodes[i+2][j]==player&&nodes[i+1][j-1]==player&&nodes[i+3][j-3]==player&&nodes[i+4][j-4]!=-player&&nodes[i+2][j-2]!=-player&&nodes[i-1][j+1]!=-player&&nodes[i-1][j]!=-player&&nodes[i+3][j]!=-player&&i>0&&j>3&&i<=ROW-4&&j<=COL-1)
||(nodes[i][j+1]==player&&nodes[i][j+3]==player&&nodes[i-1][j+1]==player&&nodes[i-2][j+2]==player&&nodes[i-3][j+3]!=-player&&nodes[i+1][j-1]!=-player&&nodes[i][j-1]!=-player&&nodes[i][j+2]!=-player&&nodes[i][j+4]!=-player&&i>2&&j>0&&i<=ROW-1&&j<=COL-4)
||(nodes[i][j+1]==player&&nodes[i][j+2]==player&&nodes[i+1][j+1]==player&&nodes[i+3][j+3]==player&&nodes[i+4][j+4]!=-player&&nodes[i+2][j+2]!=-player&&nodes[i-1][j-1]!=-player&&nodes[i][j-1]!=-player&&nodes[i][j+3]!=-player&&i>0&&j>0&&i<=ROW-4&&j<=COL-4)
||(nodes[i+1][j]==player&&nodes[i+3][j]==player&&nodes[i+1][j+1]==player&&nodes[i+2][j+2]==player&&nodes[i+3][j+3]!=-player&&nodes[i-1][j-1]!=-player&&nodes[i-1][j]!=-player&&nodes[i+2][j]!=-player&&nodes[i+4][j]!=-player&&i>0&&j>0&&i<=ROW-4&&j<=COL-3)
||(nodes[i][j-1]==player&&nodes[i][j-3]==player&&nodes[i+1][j-1]==player&&nodes[i+2][j-2]==player&&nodes[i+3][j-3]!=-player&&nodes[i-1][j+1]!=-player&&nodes[i][j+1]!=-player&&nodes[i][j-2]!=-player&&nodes[i][j-4]!=-player&&i>0&&j>3&&i<=ROW-3&&j<=COL-1)
||(nodes[i][j-1]==player&&nodes[i][j-2]==player&&nodes[i-1][j-1]==player&&nodes[i-3][j-3]==player&&nodes[i-4][j-4]!=-player&&nodes[i-2][j-2]!=-player&&nodes[i+1][j+1]!=-player&&nodes[i][j+1]!=-player&&nodes[i][j-3]!=-player&&i>3&&j>3&&i<=ROW-1&&j<=COL-1)
||(nodes[i-1][j]==player&&nodes[i-3][j]==player&&nodes[i-1][j+1]==player&&nodes[i-2][j+2]==player&&nodes[i-3][j+3]!=-player&&nodes[i+1][j-1]!=-player&&nodes[i+1][j]!=-player&&nodes[i-2][j]!=-player&&nodes[i-4][j]!=-player&&i>3&&j>0&&i<=ROW-1&&j<=COL-3)
||(nodes[i][j+1]==player&&nodes[i][j+2]==player&&nodes[i-1][j+1]==player&&nodes[i-3][j+3]==player&&nodes[i-4][j+4]!=-player&&nodes[i-2][j+2]!=-player&&nodes[i+1][j-1]!=-player&&nodes[i][j+3]!=-player&&nodes[i][j-1]!=-player&&i>3&&j>0&&i<=ROW-1&&j<=COL-4)
||(nodes[i][j+1]==player&&nodes[i][j+3]==player&&nodes[i+1][j+1]==player&&nodes[i+2][j+2]==player&&nodes[i+3][j+3]!=-player&&nodes[i-1][j-1]!=-player&&nodes[i][j-1]!=-player&&nodes[i][j+4]!=-player&&nodes[i][j+2]!=-player&&i>0&&j>0&&i<=ROW-3&&j<=COL-4)
||(nodes[i+1][j]==player&&nodes[i+2][j]==player&&nodes[i+1][j+1]==player&&nodes[i+3][j+3]==player&&nodes[i+4][j+4]!=-player&&nodes[i+2][j+2]!=-player&&nodes[i-1][j-1]!=-player&&nodes[i-1][j]!=-player&&nodes[i+3][j]!=-player&&i>0&&j>0&&i<=ROW-4&&j<=COL-4)
||(nodes[i+1][j]==player&&nodes[i+3][j]==player&&nodes[i+1][j-1]==player&&nodes[i+2][j-2]==player&&nodes[i+3][j-3]!=-player&&nodes[i-1][j+1]!=-player&&nodes[i+4][j]!=-player&&nodes[i+2][j]!=-player&&nodes[i-1][j]!=-player&&i>0&&j>2&&i<=ROW-4&&j<=COL-1)
||(nodes[i][j-1]==player&&nodes[i][j-2]==player&&nodes[i+1][j-1]==player&&nodes[i+3][j-3]==player&&nodes[i+4][j-4]!=-player&&nodes[i+2][j-2]!=-player&&nodes[i-1][j+1]!=-player&&nodes[i][j+1]!=-player&&nodes[i][j-3]!=-player&&i>1&&j>2&&i<=ROW-4&&j<=COL-1)
||(nodes[i][j-1]==player&&nodes[i][j-3]==player&&nodes[i-1][j-1]==player&&nodes[i-2][j-2]==player&&nodes[i-3][j-3]!=-player&&nodes[i+1][j+1]!=-player&&nodes[i][j+1]!=-player&&nodes[i][j-2]!=-player&&nodes[i][j-4]!=-player&&i>2&&j>3&&i<=ROW-1&&j<=COL-1)
||(nodes[i-1][j]==player&&nodes[i-2][j]==player&&nodes[i-1][j-1]==player&&nodes[i-3][j-3]==player&&nodes[i-4][j-4]!=-player&&nodes[i-2][j-2]!=-player&&nodes[i+1][j+1]!=-player&&nodes[i+1][j]!=-player&&nodes[i-3][j]!=-player&&i>3&&j>3&&i<=ROW-1&&j<=COL-1)
||(nodes[i][j-2]==player&&nodes[i][j-3]==player&&nodes[i+1][j]==player&&nodes[i-1][j]==player&&nodes[i-2][j]!=-player&&nodes[i+2][j]!=-player&&nodes[i][j+1]!=-player&&nodes[i][j-1]!=-player&&nodes[i][j-4]!=-player&&i>1&&j>3&&i<=ROW-2&&j<=COL-1))
{
(*tempi)=i;
(*tempj)=j;
return 1;
}
}
return 0;
}
int CChessDlg::bd(int i, int j, int *maxnum)
{
int tempi,tempj,m,max=0,tempmaxnum;
tempi=i;
tempj=j;
m=0;
i++;
(*maxnum)=0;
while(nodes[i][j]==player&&i<=ROW)
{
m++;i++;
}
i=tempi;j=tempj;
i--;
while(nodes[i][j]==player&&i>=0)
{
m++;i--;
}
tempmaxnum=m;
if(max<m) max=m;
i=tempi;
j=tempj;
m=0;
j++;
while(nodes[i][j]==player&&j<=COL)
{
m++;j++;
}
i=tempi;
j=tempj;
j--;
while(nodes[i][j]==player&&j>=0)
{
m++;j--;
}
tempmaxnum+=m;
if((*maxnum)<tempmaxnum) (*maxnum)=tempmaxnum;
if(max<m) max=m;
i=tempi;
j=tempj;
m=0;
i++;
j++;
while(nodes[i][j]==player&&i<=ROW&&j<=COL)
{
m++;i++;j++;
}
i=tempi;
j=tempj;
i--;
j--;
while(nodes[i][j]==player&&i>=0&&j>=0)
{
m++;i--;j--;
}
tempmaxnum=m;
if(max<m) max=m;
i=tempi;
j=tempj;
m=0;
i++;
j--;
while(nodes[i][j]==player&&i<=ROW&&j>=0)
{
m++;i++;j--;
}
i=tempi;
j=tempj;
i--;
j++;
while(nodes[i][j]==player&&i>=0&&j<=COL)
{
m++;i--;j++;
}
tempmaxnum+=m;
if((*maxnum)<tempmaxnum) (*maxnum)=tempmaxnum;
if(max<m) max=m;
return max;
}
void CChessDlg::DrawBackground()
{
CDC *pDC=GetDC();
CBitmap bm_background;
bm_background.LoadBitmap(IDB_BITMAP4);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_background.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_background);
pDC->StretchBlt(0,0,nHeight,nWidth,&mDC,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
}
void CChessDlg::DrawNewButton()
{
CDC *pDC=GetDC();
CBitmap bm_newbutton;
bm_newbutton.LoadBitmap(IDB_BITMAP5);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_newbutton.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_newbutton);
pDC->StretchBlt(0+int((Offset-bmInfo.bmWidth)/2),0+int(nWidth/5),bmInfo.bmWidth,bmInfo.bmHeight,&mDC,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
}
void CChessDlg::DrawExitButton()
{
CDC *pDC=GetDC();
CBitmap bm_exitbutton;
bm_exitbutton.LoadBitmap(IDB_BITMAP6);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_exitbutton.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_exitbutton);
pDC->StretchBlt(0+int((Offset-bmInfo.bmWidth)/2),0+int(nWidth/5)+bmInfo.bmHeight*2,bmInfo.bmWidth,bmInfo.bmHeight,&mDC,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
}
BOOL CChessDlg::ClickNewButton(CPoint point)
{
CDC *pDC=GetDC();
CBitmap bm_newbutton;
bm_newbutton.LoadBitmap(IDB_BITMAP5);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_newbutton.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_newbutton);
if(point.x>int((Offset-bmInfo.bmWidth)/2)&&point.x<int((Offset-bmInfo.bmWidth)/2)+bmInfo.bmWidth&&point.y>int(nWidth/5)&&point.y<int(nWidth/5)+bmInfo.bmHeight)
{
StartGame();
return true;
}
else
return false;
}
BOOL CChessDlg::ClickExitButton(CPoint point)
{
CDC *pDC=GetDC();
CBitmap bm_exitbutton;
bm_exitbutton.LoadBitmap(IDB_BITMAP6);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_exitbutton.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_exitbutton);
if(point.x>int((Offset-bmInfo.bmWidth)/2)&&point.x<int((Offset-bmInfo.bmWidth)/2)+bmInfo.bmWidth&&point.y>int(nWidth/5)+bmInfo.bmHeight*2&&point.y<int(nWidth/5)+bmInfo.bmHeight*3)
{
CDialog::OnOK();
return true;
}
else
return false;
}
void CChessDlg::DrawWhiteWin()
{
CDC *pDC=GetDC();
CBitmap bm_whitebutton;
bm_whitebutton.LoadBitmap(IDB_BITMAP7);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_whitebutton.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_whitebutton);
pDC->StretchBlt(0+int((Offset-bmInfo.bmWidth)/2),nWidth-bmInfo.bmHeight*2,bmInfo.bmWidth,bmInfo.bmHeight,&mDC,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
}
void CChessDlg::DrawBlackWin()
{
CDC *pDC=GetDC();
CBitmap bm_blackbutton;
bm_blackbutton.LoadBitmap(IDB_BITMAP8);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_blackbutton.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_blackbutton);
pDC->StretchBlt(0+int((Offset-bmInfo.bmWidth)/2),nWidth-bmInfo.bmHeight*2,bmInfo.bmWidth,bmInfo.bmHeight,&mDC,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
}
void CChessDlg::DrawnChess()
{
CDC *pDC=GetDC();
CBitmap bm_drawnbutton;
bm_drawnbutton.LoadBitmap(IDB_BITMAP9);
CDC mDC;
mDC.CreateCompatibleDC(pDC);
BITMAP bmInfo;
bm_drawnbutton.GetObject(sizeof(bmInfo),&bmInfo);
mDC.SelectObject(&bm_drawnbutton);
pDC->StretchBlt(0+int((Offset-bmInfo.bmWidth)/2),nWidth-bmInfo.bmHeight*2,bmInfo.bmWidth,bmInfo.bmHeight,&mDC,0,0,bmInfo.bmWidth,bmInfo.bmHeight,SRCCOPY);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -