📄 march_n.cpp
字号:
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
i++;
k++;
k++;
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)||(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{break;}
}
}
else{
if(ForwardX<0)
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]-1;
if(ForwardY>0)
{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+1;}
else{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]-1;}
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)||(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{break;}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
if(ForwardY>0)
{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+1;}
else{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]-1;}
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
i++;
k++;
k++;
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)||(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{break;}
}
else{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
if(ForwardY>0)
{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+1;}
else{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]-1;}
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)||(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{break;}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]+1;
if(ForwardY>0)
{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+1;}
else{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]-1;}
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
i++;
k++;
k++;
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)||(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{break;}
}
}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)||(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{break;}
}
k=MARCH_EndX-MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
#ifdef CORRECT_LINE_TRACK
if(k>=3)
{
int ReturnCode;
ReturnCode=MARCH_CorrectLine(MARCH_LineTrack[MARCH_TrackNum-1][COORD_X],MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y],MARCH_EndX,MARCH_EndY);
return(ReturnCode);
}
#endif
if((k<0)&&(ForwardX>0))
{
#ifdef DEBUG
OutputDebugString("You have go out by X coord\n");
#endif
return(MARCH_ERROR_GO_OUT_X_IN_GET_LINE);
}
if((k>0)&&(ForwardX<0))
{
#ifdef DEBUG
OutputDebugString("You have go out by X coord\n");
#endif
return(MARCH_ERROR_GO_OUT_X_IN_GET_LINE);
}
if(k<0){k=-k;}
if(ForwardX>0)
{
for(i=1;i<=k;i++)
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]+1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y];
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
}
}
else{
for(i=1;i<=k;i++)
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y];
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
}
}
k=MARCH_EndY-MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y];
if((k<0)&&(ForwardY>0))
{
#ifdef DEBUG
OutputDebugString("You have go out by Y coord\n");
#endif
return(MARCH_ERROR_GO_OUT_Y_IN_GET_LINE);
}
if((k>0)&&(ForwardY<0))
{
#ifdef DEBUG
OutputDebugString("You have go out by Y coord\n");
#endif
return(MARCH_ERROR_GO_OUT_Y_IN_GET_LINE);
}
if(k<0){k=-k;}
k=k>>1;
if(ForwardY>0)
{
for(i=1;i<=k;i++)
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+2;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
}
}
else{
for(i=1;i<=k;i++)
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]-2;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
}
}
if(MARCH_EndY!=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y])
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
if(ForwardY>0)
{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+1;}
else{MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]-1;}
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_EndX;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_EndY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
else{
if(BetweenX==BetweenY)
{
while(1)
{
if(MARCH_BeginY&0x0001)
{
if(ForwardX<0)
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_EndX;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_EndY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y];
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
}
else{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]+1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]+1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y];
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
}
}
if(!(MARCH_BeginY&0x0001))
{
if(ForwardX<0)
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y];
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
}
else{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X];
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]+1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y];
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]+1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]+ForwardY;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
if((MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]==MARCH_EndX)&&(MARCH_LineTrack[MARCH_TrackNum-1][COORD_Y]==MARCH_EndY))
{
MARCH_LineTrack[MARCH_TrackNum][COORD_X]=-1;
MARCH_LineTrack[MARCH_TrackNum][COORD_Y]=-1;
MARCH_TrackNum++;
if(MARCH_TrackNum>NUMBER_OF_TRACK-2){return(MARCH_ERROR_GO_OUT_ARRAY);}
return(MARCH_OK);
}
}
}
}
}
i=BetweenY>>1;
if(i==0)
{
while(MARCH_LineTrack[MARCH_TrackNum-1][COORD_X]!=MARCH_EndX)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -