2 qq 15149257 qq_15149257 于 2016.03.04 11:13 提问

迷宫游戏问题 求大神解答
c++

#include"stdio.h"

void print(int front);
mgpath(int xi, int yi, int xe, int ye);
int mg[10][10]=
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 1, 0, 0, 1, 0, 0, 0, 1, 0, 1 },{ 1, 0, 0, 0, 0, 1, 1, 0, 0, 1 },

{ 1, 0, 1, 1, 1, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 1, 0, 0, 0, 0, 1 },{ 1, 0, 1, 0, 0, 0, 1, 0, 0, 1 },

{ 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 }, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } };

int MaxSize=100;

int front=-1;

int rear=-1;

struct Qu{

int i;

int j;

int pre;}q[100];
void main(){
int M = 8;

int N = 8;

mgpath(1, 1, M, N);

}

void print(int front)

{

int k=front, j, ns=0;

printf("\n");

do

{

j = k;

k = q[k].pre;

q[j].pre = -1;

} while (k != 0);

printf("迷宫路径如下:\n");

k = 0;

while (k < 100)

{

if (q[k].pre==-1)

{

ns++;

printf("%d%3d",q[k].i,q[k].j);

if (ns % 5==0)

printf("\n");

}

k++;

}

printf("\n");

printf("队列状态");

// System.out.println("下标 i j pre");

// for(int i=0;i<=q.rear;i++)

// {

// System.out.printf("%2d %d %d %2d\n",i,q.i[i],q.j[i],q.pre[i]);

// }

}

mgpath(int xi, int yi, int xe, int ye)

{

int i, j, di;

int find=0;

rear++;

q[rear].i=xi;

q[rear].j=yi;

q[rear].pre=-1;

mg[xi][yi]=-1; // 标记入口

while (front<=rear && (!find))

{
front++;

i=q[front].i;

j=q[front].j;

        if (i==xe && j==ye)  
        { 
            find=1;  
            print(front);  
          return 1;  
        }  

        for (di=0; di<4; di++)  
        {  
            switch (di)  
            {  
            case 0:  
                i=q[front].i - 1;  
                j=q[front].j;  
                break;  
            case 1:  
                i=q[front].i;  
               j=q[front].j + 1;  
               break;  
            case 2:  
                i=q[front].i + 1;  
               j=q[front].j;  
                break;  
           case 3:  
               i=q[front].i;  
                j=q[front].j - 1;  
           }  

            if (mg[i][j]==0)  
            {  
                rear++;  
                q[rear].i=i;  
                q[rear].j=j;  
                q[rear].pre=front;  
               mg[i][j]=-1;  
            }  
        }  
   printf("NO WAY\n");
   return 0;
    }  

2个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.04 11:58
已采纳

我在编程中碰到的这个提示有以下情况:
1、括号不匹配。(经常是在函数中添加了一段代码,如if,while分句,却忘了在结束时补上一个“}”)
2、在头文件中定义了struct或者class,但是在}之后漏掉了分号。
3、有#if,但是没有#endif。
可以试试:
1.#include "stdafx.h",添加在文件的第一句
2.把你的光标移动到"fatal error C1004:"上面,然后按F1,MSDN会自动定位的
3.project setting->c/c++->precompiled headers->Not using precompiled headers

qq_15149257
qq_15149257   2016.03.04 11:14

每次都是提示 fatal error C1004: unexpected end of file found

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java利用递归解决迷宫问题
用一个二维数组表示迷宫,0表示通路,1表示围墙,给定入口和出口,寻找所有可能的通路。例如: 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1
使用遗传算法实现迷宫游戏(genetic maze)
强烈推荐一本书 《游戏编程中的人工智能技术》(AI.Techniques.for.Game.Programming).(美)Mat.Buckland 一、缘起在之前的c印记系列当中有有一个迷宫小游戏,算是一个关于数组应用的例子。 其中有通过接收按键(人工操作)的方式来走出迷宫,也有使用递归算法或非递归算法的方式来实现自动(AI操作)走出迷宫。 后来我对近两三年比较火的人工智能,机器学习,深度学习之类
队列的应用——求解迷宫问题
代码示例: #include using namespace std; const int MaxSize = 20; //迷宫最大行、列数 const int QueueSize = 100; //顺序队大小 struct Box //方块结构体类型 { int i; //方块的行号 int j; //方块的列号 int pre;
二维数组应用:迷宫游戏
//  main.m //  应用:迷宫游戏 // //  Created by lanou3g on 15/6/23. //  Copyright (c) 2015年 ZhangJia. All rights reserved.
C++ 迷宫问题的回溯解法
// DataStruTest1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include using namespace std; struct offsets{ int a; int b; char
分别用栈和队列实现迷宫
分别用栈和队列实现走迷宫的算法,电子工业出版社,叶核亚版的数据结构(java)课后习题,希望对大家有用。
数据结构:栈和队列-迷宫问题求解
//--------------------文件名:Maze.cpp------------------------//----------------------By SunxySong-------------------------//说明:本程序以迷宫问题进行演示,了解栈和链表的数据结构.//运行过程:随机生成迷宫地图(由于未详细设计算法,故地图较简单),//         并演示找到出
迷宫 最短路径及所有路径的问题
迷宫问题,完成的是一个现实中的迷宫游戏求最短路径及所有路径的问题,本程序相对于航班信息查询系统比较简单,主要包含使用系统迷宫(可以选择迷宫的入口和出口,并输出所有路径和最短路径),使用新建迷宫(可以自己设计迷宫的大小,及所有通路,可以选择迷宫的入口和出口,并输出所有路径和最短路径),用到了栈的使用,如栈的创建、入栈、出栈等函数功能。
【经典算法】迷宫找路径C#版
同上一篇博客一样这也是大二上学期,在寝室瞎搞的。 上一篇八皇后问题点击这里关于迷宫问题,一直有这样一个解法,最短路径查找。首先我们可以自定义绘制一个迷宫,当然这个迷宫必须有解,就是有路可以出去,如下图所示(点击格子绘制迷宫): 绘制好迷宫后,如下图: 然后我们开始查路径,如下图: 显然这个路径不是最短路径。毕竟大二年轻,勿喷,现在要在这基础上做更改。
数据结构::迷宫(二)--栈的一个应用(求迷宫最短路径)
上篇文章我们知道求解迷宫通路的方法,但是一个迷宫有时是不止一条出路,在这些出路中,我们如何找到最短的那一条,这就是我今天要说的迷宫最短路径问题。 (此处使用的图): 【先来分析有什么解决方案:】 1、方法一:我们如果采用上章中递归的方式,将所走的路用2标记起来,此时如果找到一条路后,要进行回溯递归,但是到可以走的环中就出现问题了,说的有点迷糊是吧,我把图抛出来。 在这张图中