求调代码只输出0
查看原帖
求调代码只输出0
706760
xiaofeng_and_xiaoyu楼主2023/6/16 16:13
#include<iostream>
using namespace std;
struct node{
	int x,y,face;
}fj,cow;
bool l[12][12];
int ans=0;
void turn(node q){
	q.face+=90;
	q.face%=360;
	return;
}
void move(node q){
	int z=q.face%90;
		if(z==2){
			if(l[q.x+1][q.y]){
				turn(q);
			}else{
				q.x++;
			}
		}else if(z==0){
			if(l[q.x-1][q.y]){
				turn(q);
			}else{
				q.x--;
			}
		}else if(z==3){
			if(l[q.x][q.y-1]){
				turn(q);
			}else{
				q.y--;
			}
		}else{
			if(l[q.x][q.y+1]){
				turn(q);
			}else{
				q.y++;
			}
		}
	return;
}
int main(){
	char x;
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			cin>>x;
			if(x=='*'){
				l[j][i]=1;
			}else{
				l[j][i]=0;
			}
			if(x=='F'){
				fj.x=j;
				fj.y=i;
				fj.face=0;
			}
			if(x=='C'){
				cow.x=j;
				cow.y=i;
				cow.face=0;
			}
		}
	}
	for(int i=0;i<12;i++){
		l[i][0]=1;
		l[i][11]=1;
		l[0][i]=1;
		l[11][i]=1;
	}
	while(fj.x!=cow.x||fj.y!=cow.y){
		move(fj);
		move(cow);
		if(ans>=160000){
			cout<<0;
			return 0;
		}else{
			ans++;
		}
	}
	cout<<ans;
	return 0;
}
2023/6/16 16:13
加载中...