⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 march_n.cpp

📁 网页游戏赤壁
💻 CPP
📖 第 1 页 / 共 5 页
字号:
									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 + -