gpt4 book ai didi

c - 如何建立迷宫的坐标系?

转载 作者:行者123 更新时间:2023-11-30 20:30:51 25 4
gpt4 key购买 nike

我有一个项目,我需要让程序解决一个已经制作好的迷宫,问题是我需要坐标,但我不知道如何让它们工作。

迷宫示例:

*************
* F*
* **** * * *
* ** * * *
* ** *** * *
*S *
*************

S = 开始,F,结束。

我像这样加载迷宫:./labyrinth.exe labyrinth_1.txt

在我的代码中:

int main(int argc, char *argv[]) {

FILE *f;

f=fopen(argv[1],"r");
if( f==NULL ){
printf("Archive not found\n");
}
else
{
while( !feof(f) )
printf("%c", getc(f));
}

if(!strcmp(argv[2], "-solution")) {
system("clear");
FILE *r;
r=fopen("lab1.txt", "r");
while( !feof(r) )
printf("%c", getc(r));
} else {
system("clear");
printf("Command not found\n");

}

}
  • 我需要创建一个函数,其中我有坐标来处理打开的文件,但我不知道从哪里开始,它是我真的很困惑我应该如何定义数组或它所拥有的任何内容被定义为。该函数将是递归的,以使程序开始找到迷宫的解决方案。 旁注:我只是请求帮助了解如何为此创建一个坐标系以让它解决它。

任何帮助将不胜感激,谢谢。

最佳答案

一种简单的方法是声明一个字符数组,例如

char lab[30][30];

左右。然后,您在 lab[0]、lab[1] 等中逐行读取文件。

完成后,您可以使用符号 lab[x][y] 检查每个单元格;这种表示法返回一个字符,可以轻松地针对有意义的字符(如“*”、“”、“S”、“F”)进行测试。

声明静态数组意味着您选择相当大的限制(数组的大小),并且也许您必须检查您的迷宫是否适合该数组。

请注意,如果迷宫在文本文件中正确定义,则交换 x 和 y 坐标并不重要 - 迷宫应该很好(总是)由“*”分隔(事实上,坐标系将是 lab[y ,x]...)。

一旦你确定了迷宫和代表它的数组,你就可以通过增加和减少 y,x 索引来“移动”你的探险家(一个试图逃离迷宫的人)。 lab[0][0] 将是左上角的单元格,lab[0,1] 将是右侧旁边的单元格,依此类推。

找到出路! :-)

关于c - 如何建立迷宫的坐标系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53137635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com