又一个迷宫

有一个迷宫,迷宫里有一个人,迷宫是规格为 N*N 的方格,房内特定位置上有障碍物,人处于某一位置,可以选择向上下左右方向前进,但是要保证面对的不是墙壁或是障碍物,否则无法向前行走。
输入
迷宫的规格,一个正整数 N (2<=N<=100),占一行,代表矩阵大小;输入方形矩阵 N 行 N 列,由 0 和 1 组成,其中 0 代表空地,1 代表障碍物;输入一对数据 m,n(第 m 行,第 n 列),表示人所在的位置坐标(保证人所在的位置为“0”,即空地),以空格隔开,占一行;输入一个整数表示要尝试的前进方向,0、1、2、3分别代表左、下、右、上。
输出
“Y”
表示可以向该方向前进
“N”
表示无法向该方向前进
输出占一行。
输入样例
4
1 0 0 0
1 1 1 0
0 0 1 0
1 0 0 1
0 3
1
输出样例
Y

#include <stdio.h>


int main(void)
{
	int n;//输入迷宫的规格
	scanf("%d", &n);
	int matrix[n][n];
	int X[4] = {0, 1, 0, -1};
	int Y[4] = {-1, 0, 1, 0};
	for(int i = 0; i < n; i++)
	{
		for(int j = 0; j < n; j++)
		{
			scanf("%d", &matrix[i][j]);
		}
	}

	int x, y;
	scanf("%d%d", &x, &y);

	int k;
	scanf("%d", &k);

	x += X[k];
	y += Y[k];

	if(x < 0 || x >= n || y < 0 || y >= n || matrix[x][y] == 1)
	{
		printf("N\n");
	}
	else
	{
		printf("Y\n");
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值