?? chessman.cpp
字號:
else if (uRow-1>=uOldI&&uRow<=9&&uCol==uOldJ)
{
if (uRow==uOldI+1&&!theArr.Find(uRow,uCol))
{
ResetPos(uOldJ,uOldI);
return true;
}
int nBetween=theArr.FindBetween(uCol,uOldI,uRow,0);
if ((1==nBetween&&theArr.Find(uRow,uCol)==1)||(0==nBetween&&theArr.Find(uRow,uCol)==0))
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uCol+1<=uOldJ&&uCol>=0&&uRow==uOldI)
{
if (uCol==uOldJ-1&&!theArr.Find(uRow,uCol))
{
ResetPos(uOldJ,uOldI);
return true;
}
int nBetween=theArr.FindBetween(uRow,uCol,uOldJ,1);
if ((1==nBetween&&theArr.Find(uRow,uCol)==1)||(0==nBetween&&theArr.Find(uRow,uCol)==0))
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uCol-1>=uOldJ&&uCol<=8&&uRow==uOldI)
{
if (uCol==uOldJ+1&&!theArr.Find(uRow,uCol))
{
ResetPos(uOldJ,uOldI);
return true;
}
int nBetween=theArr.FindBetween(uRow,uOldJ,uCol,1);
if ((1==nBetween&&theArr.Find(uRow,uCol)==1)||(0==nBetween&&theArr.Find(uRow,uCol)==0))
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
}
ResetPos(uOldJ,uOldI);
return false;
}
////////////////////////////
//////////////////////////////////////////////////////////////////////////
////////////////////////下面是將
bool CHead::IfNextPosLegal(POINT nextPos)
{
UINT uOldI=uRow;
UINT uOldJ=uCol;
ResetPos(nextPos);
if (m_uRoleID>16&&m_uRoleID<=32)//表示是A方的
{
if (uRow<=2&&uRow>=0&&uCol>=3&&uCol<=5)
{
if ((uRow==uOldI+1&&uCol==uOldJ)||(uRow==uOldI-1&&uCol==uOldJ))
{
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uCol==uOldJ+1&&uRow==uOldI)||(uCol==uOldJ-1&&uRow==uOldI))
{
ResetPos(uOldJ,uOldI);
return true;
}
/*
else if ((uRow==uOldI+1&&uCol==uOldJ+1)||(uRow==uOldI-1&&uCol==uOldJ-1)||(uRow==uOldI+1&&uCol==uOldJ-1)||(uRow==uOldI-1&&uCol==uOldJ+1))
{
ResetPos(uOldJ,uOldI);
return false;
}*/
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if(m_uRoleID<=16)//表示是B方的
{
if (uRow<=9&&uRow>=7&&uCol>=3&&uCol<=5)
{
if ((uRow==uOldI+1&&uCol==uOldJ)||(uRow==uOldI-1&&uCol==uOldJ))
{
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uCol==uOldJ+1&&uRow==uOldI)||(uCol==uOldJ-1&&uRow==uOldI))
{
ResetPos(uOldJ,uOldI);
return true;
}
/*
else if ((uRow=uOldI+1&&uCol==uOldJ+1)||(uRow=uOldI-1&&uCol==uOldJ-1)||(uRow=uOldI+1&&uCol==uOldJ-1)||(uRow=uOldI-1&&uCol==uOldJ+1))
{
ResetPos(uOldJ,uOldI);
return false;
}*/
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
ResetPos(uOldJ,uOldI);
return false;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
/////////////下面是車
bool CVehicle::IfNextPosLegal(POINT nextPos)
{
UINT uOldI=uRow,uOldJ=uCol; //保存原有位置
ResetPos(nextPos);
if (uRow>9||uCol>8||uRow<0||uCol<0) //越界
{
ResetPos(uOldJ,uOldI);
return false;
}
else if (uOldI==uRow||uOldJ==uCol) //可能是自己
{
// 這里沒有討論前面是否有棋子
/*
if(m_uRoleID<=16)//表示是A方的
{*/
if (uRow<uOldI&&uCol==uOldJ)
{
if (uRow==uOldI-1)
{
ResetPos(uOldJ,uOldI);
return true;
}
if (!theArr.FindBetween(uCol,uRow,uOldI,0))
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI&&uCol<uOldJ)
{
if (uCol==uOldJ-1)
{
ResetPos(uOldJ,uOldI);
return true;
}
if (!theArr.FindBetween(uRow,uCol,uOldJ,1))
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow>uOldI&&uCol==uOldJ)
{
if (uRow==uOldI+1)
{
ResetPos(uOldJ,uOldI);
return true;
}
if (!theArr.FindBetween(uCol,uOldI,uRow,0))
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI&&uCol>uOldJ)
{
if (uCol==uOldJ+1)
{
ResetPos(uOldJ,uOldI);
return true;
}
if (!theArr.FindBetween(uRow,uOldJ,uCol,1))
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
//}
ResetPos(uOldJ,uOldI);
return false;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
///////////////////////////////
//////////////////////////////////////////////////////////////////////////
////下,面是仕
bool COfficial::IfNextPosLegal(POINT nextPos)
{
UINT uOldI= uRow;
UINT uOldJ =uCol;
ResetPos(nextPos);
if (m_uRoleID>16&&m_uRoleID<=32) //是紅方的士
{
if (uOldI==0&&uOldJ==3)
{
if ((uRow==uOldI+1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"DownRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==0&&uOldJ==5)
{
if ((uRow==uOldI+1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"DownLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==2&&uOldJ==3)
{
if ((uRow==uOldI-1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"UpRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==2&&uOldJ==5)
{
if ((uRow==uOldI-1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"UpLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==1&&uOldJ==4)
{
if ((uRow==uOldI+1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"DownRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uRow==uOldI+1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"DownLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uRow==uOldI-1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"UpRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uRow==uOldI-1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"UpLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
//AfxMessageBox(L"ErrorStep!");
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (m_uRoleID<=16) ///////如果是黒士
{
if (uOldI==7&&uOldJ==3)
{
if ((uRow==uOldI+1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"DownRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==7&&uOldJ==5)
{
if ((uRow==uOldI+1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"DownLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==9&&uOldJ==3)
{
if ((uRow==uOldI-1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"UpRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==9&&uOldJ==5)
{
if ((uRow==uOldI-1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"UpLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uOldI==8&&uOldJ==4)
{
if ((uRow==uOldI+1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"DownRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uRow==uOldI+1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"DownLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uRow==uOldI-1)&&(uCol==uOldJ+1))
{
//AfxMessageBox(L"UpRight!");
ResetPos(uOldJ,uOldI);
return true;
}
else if ((uRow==uOldI-1)&&(uCol==uOldJ-1))
{
//AfxMessageBox(L"UpLeft!");
ResetPos(uOldJ,uOldI);
return true;
}
else
{
//AfxMessageBox(L"ErrorStep!");
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
////////下面是象
bool CXiang::IfNextPosLegal(POINT nextPos)
{
UINT uOldI=uRow;
UINT uOldJ=uCol;
ResetPos(nextPos);
if (m_uRoleID>16&&m_uRoleID<=32)//表示A方的
{
if (uRow<=4)//象不允許過河
{
if (uRow==uOldI+2&&uCol==uOldJ+2)
{
if (!theArr.Find(uOldI+1,uOldJ+1))//(uOldI+1,uOldJ+1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI-2&&uCol==uOldJ-2)
{
if (!theArr.Find(uOldI-1,uOldJ-1))//(uOldI-1,uOldJ-1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI+2&&uCol==uOldJ-2)
{
if (!theArr.Find(uOldI+1,uOldJ-1))//(uOldI+1,uOldJ-1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI-2&&uCol==uOldJ+2)
{
if (!theArr.Find(uOldI-1,uOldJ+1))//(uOldI-1,uOldJ+1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if(m_uRoleID<=16)//表示B方的
{
if (uRow>=5)//象不允許過河
{
if (uRow==uOldI+2&&uCol==uOldJ+2)
{
if (!theArr.Find(uOldI+1,uOldJ+1))//(uOldI+1,uOldJ+1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI-2&&uCol==uOldJ-2)
{
if (!theArr.Find(uOldI-1,uOldJ-1))//(uOldI-1,uOldJ-1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI+2&&uCol==uOldJ-2)
{
if (!theArr.Find(uOldI+1,uOldJ-1))//(uOldI+1,uOldJ-1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else if (uRow==uOldI-2&&uCol==uOldJ+2)
{
if (!theArr.Find(uOldI-1,uOldJ+1))//(uOldI-1,uOldJ+1)這個點當中沒有棋子
{
ResetPos(uOldJ,uOldI);
return true;
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
else
{
ResetPos(uOldJ,uOldI);
return false;
}
}
ResetPos(uOldJ,uOldI);
return false;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -