求助,在visualstdio上用过样例但在这编译失败
查看原帖
求助,在visualstdio上用过样例但在这编译失败
1282378
lbl666aa楼主2024/3/29 00:05
#include<bits/stdc++.h>
using namespace std;
char map[12][12];
int pd[105][105][105][105];
int xf, xc, yf, yc;
int dir[4] = { 0,1,2,3 };
int main() {
	for (int i = 1; i <= 10; i++)
		for (int k = 1; k <= 10; k++) {
			cin >> map[i][k];
			if (map[i][k] == 'F') {
				xf = i;
				yf = k;
			}
			if (map[i][k] == 'C') {
				xc = i;
				yc = k;
			}

		}
	int df = 0, dc = 0;
	int cnt = 0;
	while (1) {
		cnt++;
		if (dir[df] == 0) {
			if (xf == 1 || map[xf - 1][yf] == '*')
				df = (df + 1) % 4;
			else xf--;
		}
		else if (dir[df] == 1) {
			if (yf == 10 || map[xf][yf + 1] == '*')
				df = (df + 1) % 4;
			else yf++;
		}
		else if (dir[df] == 2) {
			if (xf == 10 || map[xf +1][yf] == '*')
				df = (df + 1) % 4;
			else xf++;
		}
		else  if(dir[df] == 3) {
			if (yf == 1 || map[xf][yf - 1] == '*')
				df = (df + 1) % 4;
			else yf--;
		}
		if (dir[dc] == 0) {
			if (xc == 1 || map[xc - 1][yc] == '*')
				dc = (dc + 1) % 4;
			else xc--;
		}
		else if (dir[dc] == 1) {
			if (yc == 10 || map[xc][yc + 1] == '*')
				dc = (dc + 1) % 4;
			else yc++;
		}
		else if (dir[dc] == 2) {
			if (xc == 10 || map[xc + 1][yc] == '*')
				dc = (dc + 1) % 4;
			else xc++;
		}
		else  if (dir[dc] == 3) {
			if (yc == 1 || map[xc][yc - 1] == '*')
				dc = (dc + 1) % 4;
			else yc--;
		}
		if (xf == xc && yf == yc) {
			cout << cnt;
			break;
		}
		if (++pd[xf][yf][xc][yc] == 4) {
			cout << 0;
			break;
		}
	
	}
	
	return 0;
}
2024/3/29 00:05
加载中...