📄 movebak.cpp
字号:
}
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|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);}
} //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][nowHL.y+1+1].whatin<HILL)
&&(table[nowHL.x+1+1][nowHL.y+1+1].whatin<HILL)))
{}//return(objectplace);
else
{
placetogo.x+=1;
soldier->nowdir=RIGHT;
//return(placetogo);
}
}
else{
placetogo.x+=1;
soldier->nowdir=DOWN|RIGHT;
//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|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[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;
//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|UP;
//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|LEFT))
{ 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|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=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
break;
//for the WEST move
//if((Lx<=0) && (Ly<=0))
case WEST:
case WESTNORTH:
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(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)<=0)
&&((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=DOWN;
//return(placetogo);
}
else if((soldier->placetogo.y-nowHL.y)<=0)
{
placetogo.y-=1;
soldier->nowdir=UP;
//return(placetogo);
}
else {}
// return(objectplace);
}
else{
placetogo.x-=1;
soldier->nowdir=LEFT;
//return(placetogo);
}
}
else
{
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=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[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==UP)
{ 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))
{
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)
&&((soldier->placetogo.x-nowHL.x)<-1) )
{}//return(objectplace);
else if((soldier->placetogo.x-nowHL.x)>1)
{ if(table[nowHL.x+1+1][nowHL.y+1].whatin>=HILL)
{
placetogo.y-=1;
soldier->nowdir=UP;
//return(placetogo);
}
else {
placetogo.x+=1;
soldier->nowdir=RIGHT;
//return(placetogo);
}
}
else {}
//return(objectplace);
}
else
{
placetogo.x-=1;
soldier->nowdir=LEFT;
//return(placetogo);
}
}
else {
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=LEFT;
//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[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==RIGHT)
{if(soldier->placetogo.y-nowHL.y>1)
{ 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+1][nowHL.y+1].whatin<HILL)
{
placetogo.x-=1;
soldier->nowdir=DOWN|LEFT;
//return(placetogo);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -