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

📄 maze.h

📁 Visual C++游戏开发技术与实例一书配套光盘。包含了冒险屠宰场、入侵者、赛车、网络五子棋、网络台球、对战坦克大战和面包圈7个游戏实例的完整源代码。
💻 H
📖 第 1 页 / 共 5 页
字号:
												{	max=markall[x][y+1] ;}
												num=0;
												if(max==markall[x-1][y])	num+=1;
												if(max==markall[x][y+1])	num+=8;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
										else
										{
											dir=3;
											if(tag==4)
											{
												_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
												tag=0;
												return ;
											}
											turn=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=2;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
												turn=1;
												max=markall[x-1][y];
												if(max<markall[x][y+1])
												{	max=markall[x][y+1] ;}
												num=0;
												if(max==markall[x-1][y])	num+=1;
												if(max==markall[x][y+1])	num+=8;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
									}
								}
								break;
					case 7:	
								// all go to (x-1,y) and (x+1,y) and (x,y-1)
								turn=0;
								for(i=0;i<n;i++)
								{	
									if(EqualElement(_stackarray[i].GetCurrentPosition(),position))
									{
										if(tag==4)
										{
											_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
											tag=0;
											return ;
										}
										switch(turn)
										{
										case 0:
											dir=0;
											turn=1;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=2;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=3;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=0;
														dir=1;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										case 1:
											dir=2;
											turn=2;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=3;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=0;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=1;
														dir=1;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										case 2:
											dir=3;
											turn=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=0;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=2;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=2;
														dir=1;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										}
									}
								}
								break;
							
					case 8:	
								// all go to (x,y+1)
						for(i=0;i<n;i++)
						{	
							if(EqualElement(_stackarray[i].GetCurrentPosition(),position))
							{		
								dir=1;
								if(tag==4)
								{
									_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
									tag=0;
									return ;
								}
								if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
								{
									max=markall[x-1][y];
									if(max<markall[x+1][y])
									{	max=markall[x+1][y];}
									if(max<markall[x][y-1])
									{	max=markall[x][y-1];}
									num=0;
									if(max==markall[x-1][y])	num+=1;
									if(max==markall[x+1][y])	num+=2;
									if(max==markall[x][y-1])	num+=4;
									tag++;
									HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);
									
								}
							}
						}
						break;
							
					case 9:	
								// all go to (x-1,y) and (x,y+1)
								turn=0;
								for(i=0;i<n;i++)
								{	
									if(EqualElement(_stackarray[i].GetCurrentPosition(),position))
									{
										dir=0;
										if(tag==4)
										{
											_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
											tag=0;
											return ;
										}
										if(turn==0)
										{
											turn=1;
											dir=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=1;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
												turn=0;
												max=markall[x+1][y];
												if(max<markall[x][y-1])
												{	max=markall[x][y-1] ;}
												num=0;
												if(max==markall[x+1][y])	num+=2;
												if(max==markall[x][y-1])	num+=4;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
										else
										{
											dir=1;
											turn=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=0;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
												turn=1;
												max=markall[x+1][y];
												if(max<markall[x][y-1])
												{	max=markall[x][y-1];}
												num=0;
												if(max==markall[x+1][y])	num+=2;
												if(max==markall[x][y-1])	num+=4;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
									}
								}
							
							break;
					case 10:
								// all go to (x+1,y) and (x,y+1)
								turn=0;
								for(i=0;i<n;i++)
								{	

									if(EqualElement(_stackarray[i].GetCurrentPosition(),position))
									{
										dir=0;
										if(tag==4)
										{
											_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
											tag=0;
											return ;
										}
										if(turn==0)
										{
											turn=1;
											dir=2;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=1;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
												turn=0;
												max=markall[x-1][y];
												if(max<markall[x][y-1])
												{	max=markall[x][y-1] ;}
												num=0;
												if(max==markall[x-1][y])	num+=1;
												if(max==markall[x][y-1])	num+=4;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
										else
										{
											dir=1;
											turn=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=0;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
												turn=1;
												max=markall[x+1][y];
												if(max<markall[x][y-1])
												{	max=markall[x][y-1] ;}
												num=0;
												if(max==markall[x+1][y])	num+=2;
												if(max==markall[x][y-1])	num+=4;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
									}
								}
							
							break;
					case 11:
								// all go to (x-1,y) and (x+1,y) and (x,y+1)
								turn=0;
								for(i=0;i<n;i++)
								{	
									if(EqualElement(_stackarray[i].GetCurrentPosition(),position))
									{
										dir=0;
										if(tag==4)
										{
											_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
											tag=0;
											return ;
										}
										switch(turn)
										{
										case 0:
											dir=0;
											turn=1;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=2;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=1;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=0;
														dir=3;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										case 1:
											dir=2;
											turn=2;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=1;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=0;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=1;
														dir=3;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										case 2:
											dir=1;
											turn=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=0;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=2;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=2;
														dir=3;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										}
									}
								}
								break;
					case 12:
								// all go to (x,y-1) and (x,y+1)
								turn=0;
								for(i=0;i<n;i++)
								{	
									if(EqualElement(_stackarray[i].GetCurrentPosition(),position))
									{
										dir=0;
										if(tag==4)
										{
											_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
											tag=0;
											return ;
										}
										if(turn==0)
										{
											turn=1;
											dir=3;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=1;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
												turn=0;
												max=markall[x-1][y];
												if(max<markall[x+1][y])
												{	max=markall[x+1][y] ;}
												num=0;
												if(max==markall[x-1][y])	num+=1;
												if(max==markall[x+1][y])	num+=2;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
										else
										{
											dir=1;
											turn=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=3;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
												turn=1;
												max=markall[x-1][y];
												if(max<markall[x+1][y])
												{	max=markall[x+1][y] ;}
												num=0;
												if(max==markall[x-1][y])	num+=1;
												if(max==markall[x+1][y])	num+=2;
												tag++;
												HumanSubAllocate(num,_stackarray,n,position,markall,mark,pos,tag);					
												}
											}
										}
									}
								}
							
							break;
					case 13:
								// all go to (x-1,y) and (x,y-1) and (x,y+1)
								turn=0;
								for(i=0;i<n;i++)
								{	
									if(EqualElement(_stackarray[i].GetCurrentPosition(),position))
									{
										dir=0;
										if(tag==4)
										{
											_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
											tag=0;
											return ;
										}
										switch(turn)
										{
										case 0:
											dir=0;
											turn=1;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=3;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=1;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=0;
														dir=2;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										case 1:
											dir=3;
											turn=2;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=1;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=0;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=1;
														dir=2;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										case 2:
											dir=1;
											turn=0;
											if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
											{
												dir=0;
												if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
												{
													dir=3;
													if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
													{
														turn=2;
														dir=2;
														if(_stackarray[i].TestDir(dir,markall,mark,pos)==false)
														{
															dir=0;
															_stackarray[i].HumanTestDirection(dir,markall,mark,pos);
															
														}
													}
												}
											}
											break;
										}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -