只过了3,6,8点,求大佬相助
查看原帖
只过了3,6,8点,求大佬相助
528243
wangxinlong_orange楼主2021/9/10 20:53
#include<cstdio>
using namespace std;
char m[12][12];
int cx,cy,cz=1,fx,fy,fz=1,t=0,a;
void yd(){
	if(cz==1){//1是向上 
		if((cx-1!=0)&&(m[cx-1][cy]!='*')) cx--;//牛的运动 
	    else cz=2;
	}
	else if(cz==2){// 2是向右 
		if((cy+1!=11)&&(m[cx][cy+1]!='*')) cy++;
		else cz=3;
	}
	else if(cz==3){//3是向下 
		if((cx+1!=11)&&(m[cx+1][cy]!='*')) cx++;
		else cz=4;
	}
	else if(cz==4){//4是向左 
		if((cy-1!=0)&&(m[cx][cy-1]!='*')) cy--;
		else cz=1;
	}
	if(fz==1){//John的运动 同牛 
		if((fx-1!=0)&&(m[fx-1][fy]!='*')) fx--;
	    else fz=2;
	}
	else if(fz==2){
		if((fy+1!=11)&&(m[fx][fy+1]!='*')) fy++;
		else fz=3;
	}
	else if(fz==3){
		if((fx+1!=11)&&(m[fx+1][fy]!='*')) fx++;
		else fz=4;
	}
	else if(fz==4){
		if((fy-1!=0)&&(m[fx][fy-1]!='*')) fy--;
		else fz=1;
	}
}
int main(){
	for(int i=1;i<=10;i++){//输入 
		for(int j=1;j<=10;j++){
			scanf("%c",&m[i][j]);
			if(m[i][j]=='C'){
				cx=i;
				cy=j;
			}else if(m[i][j]=='F'){
				fx=i;
				fy=j;
			}
		}
	}
	while((cx!=fx||cy!=fy)&&t<10000){//时间不会过大 
		yd();
		t++;//增加时间 
	}
	if(t=10000) printf("0");
	else printf("%d",t);
	return 0;
}
2021/9/10 20:53
加载中...