📄 movebak.cpp
字号:
else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
{
placetogo.y-=1;
soldier->nowdir=UP;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
}
else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
{
placetogo.y-=1;
soldier->nowdir=UP;
//return(placetogo);
}
else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x+=1;
soldier->nowdir=RIGHT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
//return(placetogo);
}
else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x-=1;
soldier->nowdir=DOWN|LEFT;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
} //for stop
else if(soldier->nowdir==DOWN)
{ if(soldier->placetogo.x-nowHL.x<-1)
{if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x-=1;
soldier->nowdir=LEFT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
//return(placetogo);
}
else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x+=1;
soldier->nowdir=RIGHT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
{
placetogo.y-=1;
soldier->nowdir=DOWN|UP;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
}
else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x+=1;
soldier->nowdir=RIGHT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
//return(placetogo);
}
else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x-=1;
soldier->nowdir=DOWN|LEFT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
{
placetogo.y-=1;
soldier->nowdir=DOWN|UP;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
} //for stop
else if(soldier->nowdir==(DOWN|UP))
{ if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
{if((nowHL.y<=soldier->maxl.y)
&&(table[nowHL.x-1+1][nowHL.y-1+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL))
{
if(((soldier->placetogo.y-nowHL.y)<-1)
||
((table[nowHL.x-1+1][nowHL.y+1+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)))
{}// return(objectplace);
else
{
placetogo.x-=1;
soldier->nowdir=LEFT;
//return(placetogo);
}
}
else{
placetogo.x-=1;
soldier->nowdir=DOWN|LEFT;
//return(placetogo);
}
}
else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
{
placetogo.y-=1;
//return(placetogo);
}
else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x+=1;
soldier->nowdir=DOWN|RIGHT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
} //for stop
else if(soldier->nowdir==(DOWN|LEFT))
{ if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
//return(placetogo);
}
else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x-=1;
soldier->nowdir=DOWN|LEFT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN|UP;
//return(placetogo);
}
else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x+=1;
soldier->nowdir=DOWN|RIGHT;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
} //for stop
else if(soldier->nowdir==(DOWN|RIGHT))
{
if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
{
placetogo.y-=1;
soldier->nowdir=DOWN|UP;
//return(placetogo);
}
else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x+=1;
soldier->nowdir=DOWN|RIGHT;
//return(placetogo);
}
else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
//return(placetogo);
}
else if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x-=1;
soldier->nowdir=DOWN|LEFT;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
} //for stop
break;
//for the west move
//for the south move
//if((Lx<=0) && (Ly>=0))
case SOUTH:
case WESTSOUTH:
if(((soldier->placetogo.x-nowHL.x)<=1)
&&((soldier->placetogo.x-nowHL.x)>=-1)
&&((soldier->placetogo.y-nowHL.y)<=1)
&&((soldier->placetogo.y-nowHL.y)>=-1))
{ if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
&&(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
&&(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
&&(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else if(table[soldier->placetogo.x+1][soldier->placetogo.y+1].whatin<HILL)
{
if((diret==EASTSOUTH)
&&(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL))
return(objectplace);
else if((diret==WESTSOUTH)
&&(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL))
return(objectplace);
else if((diret==WESTNORTH)
&&(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL))
return(objectplace);
else if((diret==EASTNORTH)
&&(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL))
return(objectplace);
else if((diret==EAST)||(diret==SOUTH)
||(diret==WEST)||(diret==NORTH))
return(objectplace);
}
else {placetogo.x=-1;
return(placetogo);
}
}
else if((soldier->maxl.x==0)&&(soldier->maxl.y==0))
soldier->nowdir=LEFT;
if(soldier->nowdir==LEFT||soldier->nowdir==NULL)
{//if(IsMovingCar(0,1)==TRUE){placetogo.y=-99;return(placetogo);}
if(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL)
{
if((table[nowHL.x-1+1][nowHL.y+1+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL))
{if(((soldier->placetogo.y-nowHL.y)>1)
&&((soldier->placetogo.x-nowHL.x)<1))
{}// return(objectplace);
else if ((table[nowHL.x-1+1][nowHL.y-1+1].whatin<HILL)
&&(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL))
{if(((soldier->placetogo.y-nowHL.y)<-1)
&&(table[nowHL.x+1+1][nowHL.y-1+1].whatin>=HILL))
{
placetogo.y-=1;
soldier->nowdir=UP;
// return(placetogo);
}
else if((soldier->placetogo.y-nowHL.y)>1)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
// return(placetogo);
}
else {}//return(objectplace);
}
else
{
placetogo.x-=1;
soldier->nowdir=LEFT;
//return(placetogo);
}
}
else
{
placetogo.x-=1;
soldier->nowdir=LEFT;
//return(placetogo);
}
}
//if(IsMovingCar(1,2)==TRUE){placetogo.y=-99;return(placetogo);}
else if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
placetogo.y+=1;
soldier->nowdir=DOWN;
//return(placetogo);
}
//if(IsMovingCar(2,1)==TRUE){placetogo.y=-99;return(placetogo);}
else if(table[nowHL.x+1+1][nowHL.y+1].whatin<HILL)
{
placetogo.x+=1;
soldier->nowdir=RIGHT;
//return(placetogo);
}
//if(IsMovingCar(1,0)==TRUE){placetogo.y=-99;return(placetogo);}
else if(table[nowHL.x+1][nowHL.y-1+1].whatin<HILL)
{
placetogo.y-=1;
soldier->nowdir=UP;
//return(placetogo);
}
else if((table[soldier->nowHL.x][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y].whatin>=CAR)
||(table[soldier->nowHL.x+2][soldier->nowHL.y+1].whatin>=CAR)
||(table[soldier->nowHL.x+1][soldier->nowHL.y+2].whatin>=CAR))
{placetogo.y=-99;
return(placetogo);
}
else {placetogo.x=-1;
return(placetogo);}
} //for stop
else if(soldier->nowdir==DOWN)
{//if(IsMovingCar(1,2)==TRUE){placetogo.y=-99;return(placetogo);}
if(table[nowHL.x+1][nowHL.y+1+1].whatin<HILL)
{
if((nowHL.y>=soldier->maxl.y)
&&(table[nowHL.x-1+1][nowHL.y+1+1].whatin<HILL)
&&(table[nowHL.x-1+1][nowHL.y+1].whatin<HILL))
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -