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