精华内容
下载资源
问答
  • 迷宫游戏c语言代码

    千次阅读 2018-12-09 12:13:18
    C语言课程设计里面常有的游戏设计,我这里有一个已经做过了修改和注释的代码,自己修改的所以保证程序的可执行性。 迷宫可以随机生成路径,并有唯一出口! 代码中有几个地方的引用音效文件的地址可能需要自己修改...

    建议不要直接复制!!!!
    最好自己打出来,文本书写可能有中英文格式的错误!!!)
    C语言课程设计里面常有的游戏设计,我这里有一个已经做过了修改和注释的代码,自己修改的所以保证程序的可执行性。
    迷宫可以随机生成路径,并有唯一出口
    代码中有几个地方的引用音效文件的地址可能需要自己修改一下,颜色变换等我就不多赘述了,很简单的程序,下面是代码:
    #include <stdio.h>
    #include <conio.h>
    #include <windows.h>
    #include <time.h>
    #include <mmsystem.h>
    #include <stdlib.h>
    #include<graphics.h>
    #pragma comment(lib, “winmm.lib”)
    /*
    *迷宫的高度
    /
    #define Height 29
    /

    *迷宫的宽度
    */
    #define Width 57
    #define Esc 5
    #define Up 1
    #define Down 2
    #define Left 3
    #define Right 4
    #define Wall 1
    #define Road 0
    #define Start 2
    #define End 3
    #define K 6

    int map[Height+2][Width+2];
    /*
    随机生成迷宫
    /
    void create(int x,int y)
    {
    int c[4][2]={0,1,1,0,0,-1,-1,0}; /四个方向/
    int i,j,t;
    /

    将方向打乱
    /
    for(i=0;i<4;i++)
    {
    j=rand()%4;
    t=c[i][0];c[i][0]=c[j][0];c[j][0]=t;
    t=c[i][1];c[i][1]=c[j][1];c[j][1]=t;
    }
    map[x][y]=Road;
    for(i=0;i<4;i++)
    if(map[x+2
    c[i][0]][y+2
    c[i][1]]==Wall)
    {
    map[x+c[i][0]][y+c[i][1]]=Road;
    create(x+2
    c[i][0],y+2c[i][1]);
    }
    }
    /

    *移动坐标
    /
    void gotoxy(int x,int y)
    {
    COORD coord;
    coord.X=x;
    coord.Y=y;
    SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
    }
    /

    *隐藏光标
    /
    void hidden()
    {
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO cci;
    GetConsoleCursorInfo(hOut,&cci);
    cci.bVisible=0;/赋1为显示,赋0为隐藏/
    SetConsoleCursorInfo(hOut,&cci);
    }
    void paint(int x,int y)
    {
    gotoxy(2
    y-2,x-1);
    switch(map[x][y])
    {
    case Start:
    printf(“进”);break;
    case End:
    printf(“出”);break;
    case Wall:
    printf(“�ˆ”);break;
    case Road:
    printf(" ");break;
    }
    }

    /*
    *接收按键
    /
    int get_key()
    {
    char c;
    while(c=getch())
    {
    if(c27) return Esc; /Esc/
    if(c
    32)return K;
    // if(c!=-32)continue;
    // c=getch();
    if(c72) return Up; //
    if(c
    80) return Down; //
    if(c75) return Left; //
    if(c
    77) return Right; //
    }
    return 0;
    }
    /

    *画迷宫
    /
    void game()
    {
    SHOWTIME: int z;
    int x=2,y=1; /玩家当前位置,刚开始在入口处/
    int c; /用来接收按键/
    while(1)
    {
    gotoxy(2
    y-2,x-1);
    printf(“◎”); /画出玩家当前位置/
    if(map[x][y]End) /判断是否到达出口/
    {
    PlaySound (TEXT(“Z3BROTHER - Tokyo Hot.wav”), NULL, SND_ASYNC | SND_NODEFAULT);
    gotoxy(30,24);
    printf("\n\n\t\t\t\t\t!!!CONGRETULATIONS!!!");
    getch();
    break;
    }
    c=get_key();
    if(c
    Esc)
    {
    gotoxy(0,24);
    break;
    }

    	if(c==K)
    {
    goto SHOWTIME;
    }
    

    /按空格回到初始位置!并在你走过的地方留下标记/

    switch(c)
    {
       case Up:      /*向上走*/
     if(map[x-1][y]!=Wall)
     {
      paint(x,y);
      x--;
     }
     break;
    case Down:    /*向下走*/
     if(map[x+1][y]!=Wall)
     {
      paint(x,y);
      x++;
     }
     break;
    case Left:    /*向左走*/
     if(map[x][y-1]!=Wall)
     {
      paint(x,y);
      y--;
     }
     break;
    case Right:   /*向右走*/
     if(map[x][y+1]!=Wall)
     {
      paint(x,y);
      y++;
     }
     break;
    }
    

    }
    }
    int main()
    {

    system(“color 1b”);
    IMAGE img;
    loadimage(&img,“timg1.jpg”);
    initgraph(img.getwidth(),img.getheight());
    PlaySound (TEXT(“Various Artists - 苏维埃进行曲.wav”), NULL, SND_ASYNC | SND_NODEFAULT);
    putimage(0,0,&img);
    getch();
    closegraph();
    printf("\n\n\n\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
    printf("\t ★ \t\t游戏规则 ①↑↓←→键移动图标\t\t\t ★\n\t ★\t\t\t\t\t②esc退出游戏\t\t\t\t\t★\n\t ★\t\t\t\t\t③空格键回到起点\t\t\t\t★\n");
    printf("\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
    printf("\n\n\t\t\t\t\t\t !按任意键继续!\n\t\t\t\t\t\t !祝游戏愉快!");
    printf("\n\n\n\n\t\t\t\t\t\t★★!老师新年快乐!★★\n\n\n\n\n\n\n\n\n");
    getch();

    FUCK:int i,j;
    system(“color 0f”);
    srand((unsigned)time(NULL)); /初始化随即种子/
    hidden(); /隐藏光标/
    for(i=0;i<=Height+1;i++)
    for(j=0;j<=Width+1;j++)
    if(i0||iHeight+1||j0||jWidth+1) /初始化迷宫/
    map[i][j]=Road;
    else map[i][j]=Wall;

    create(2*(rand()%(Height/2)+1),2*(rand()%(Width/2)+1)); /从随机一个点开始生成迷宫/
    for(i=0;i<=Height+1;i++) /边界处理/
    {
    map[i][0]=Wall;
    map[i][Width+1]=Wall;
    }

    for(j=0;j<=Width+1;j++) /边界处理/
    {
    map[0][j]=Wall;
    map[Height+1][j]=Wall;
    }
    map[2][1]=Start; /给定入口/
    map[Height-1][Width]=End; /给定出口/
    for(i=1;i<=Height;i++)
    for(j=1;j<=Width;j++) /画出迷宫/
    paint(i,j);
    PlaySound (TEXT(“Rob Simonsen - Red.wav”), NULL, SND_ASYNC | SND_NODEFAULT);
    game(); /开始游戏/
    system(“cls”);
    PlaySound (TEXT(“邓超 - 无敌.wav”), NULL, SND_ASYNC | SND_NODEFAULT);
    printf("\n\n\n\t\t\t\t\t\t (^-^)V\n\n\n\t\t\t\t\t\t亲,再战一回合?\n\n\n\t\t\t\t ★★★★★按空格键重来,Esc键退出★★★★★");
    int n;
    n=get_key();
    if (nK) goto FUCK;
    if (n
    Esc)
    system(“cls”);
    return 0;

    }
    下面是效果图
    效果图如下

    展开全文
  • /*迷宫游戏 by CDQ*//*vc++ 6.0 编译成功本程序参照网上一个特殊算法随机生成迷宫该算法优点:效率高,从入口到出口只有唯一路径,入口出口自己设定该算法缺点:宽度高度都必须为奇数,只能生成n*m矩阵迷宫*/#...

    /*迷宫游戏 by CDQ*//*vc++ 6.0 编译成功本程序参照网上一个特殊算法随机生成迷宫该算法优点:效率高,从入口到出口只有唯一路径,入口出口自己设定该算法缺点:宽度高度都必须为奇数,只能生成n*m矩阵迷宫*/#include #include #include #include #define Height 31 //迷宫的高度,必须为奇数#define Width 25 //迷宫的宽度,必须为奇数#define Wall 1#define Road 0#define Start 2#define End 3#define Esc 5#define Up 1#define Down 2#define Left 3#define Right 4int map[Height+2][Width+2];void gotoxy(int x,int y) //移动坐标{COORD coord;coord.X=x;coord.Y=y;SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );}void hidden()//隐藏光标{HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFO cci;GetConsoleCursorInfo(hOut,&cci);cci.bVisible=0;//赋1为显示,赋0为隐藏SetConsoleCursorInfo(hOut,&cci);}void create(int x,int y) //随机生成迷宫{int c[4][2]={0,1,1,0,0,-1,-1,0}; //四个方向int i,j,t;//将方向打乱for(i=0;i<4;i++){j=rand()%4;t=c[i][0];c[i][0]=c[j][0];c[j][0]=t;t=c[i][1];c[i][1]=c[j][1];c[j][1]=t;}map[x][y]=Road;for(i=0;i<4;i++)if(map[x+2*c[i][0]][y+2*c[i][1]]==Wall){map[x+c[i][0]][y+c[i][1]]=Road;create(x+2*c[i][0],y+2*c[i][1]);}}int get_key() //接收按键{char c;while(c=getch()){if(c==27) return Esc; //Escif(c!=-32)continue;c=getch();if(c==72) return Up; //上if(c==80) return Down; //下if(c==75) return Left; //左if(c==77) return Right; //右}return 0;}void paint(int x,int y) //画迷宫{gotoxy(2*y-2,x-1);switch(map[x][y]){case Start:printf("入");break; //画入口case End:printf("出");break; //画出口case Wall:printf("※");break; //画墙case Road:printf(" ");break; //画路}}void game(){int x=2,y=1; //玩家当前位置,刚开始在入口处int c; //用来接收按键while(1){gotoxy(2*y-2,x-1);printf("☆"); //画出玩家当前位置if(map[x][y]==End) //判断是否到达出口{gotoxy(30,24);printf("到达终点,按任意键结束");getch();break;}c=get_key();if(c==Esc){gotoxy(0,24);

    \o "累计分享5次" 5

    回复

    1楼

    2011-12-07 15:46

    举报 |

    我也说一句

    未来未来

    追忆曾经_

    团子家族

    10

    break;}switch(c){case Up: //向上走if(map[x-1][y]!=Wall){paint(x,y);x--;}break;case Down: //向下走if(map[x+1][y]!=Wall){paint

    展开全文
  • 迷宫代码:#include #include #include #include #include #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define F9 0x43#define Esc 0x1b#define Del 0x53#define Home 0x47#define End 0x4f#define ...

    迷宫源代码:

    #include

    #include

    #include

    #include

    #include

    #define OK 1

    #define ERROR 0

    #define TRUE 1

    #define FALSE 0

    #define F9 0x43

    #define Esc 0x1b

    #define Del 0x53

    #define Home 0x47

    #define End 0x4f

    #define Space 0x20

    #define Up 0x48

    #define Down 0x50

    #define Left 0x4b

    #define Right 0x4d

    #define Enter 0x0d

    #define F2 0x3c

    #define F3 0x3d

    #define STACK_INIT_SIZE 200 #define STACKINCREMENT 10 typedef int Boolean;

    typedef int Status;

    typedef suct {

    int x;

    int y;

    } PosType;

    typedef suct {

    int ord;

    PosType seat;

    int di;

    } SElemType;

    typedef suct {

    int ;

    int foot;

    int mark;

    } MazeType;

    typedef suct {

    展开全文
  • C++ 迷宫游戏实现代码题目 通过让游戏角色自动寻找迷宫出口,走出迷宫,来练习C++面向对象之封装的基础知识。迷宫图如下所示,其中X表示墙。1、程序分析走出去的原理:遵循右手规则或左手规则。右手扶墙走,就会走出...

    C++ 迷宫游戏实现代码

    题目 通过让游戏角色自动寻找迷宫出口,走出迷宫,来练习C++面向对象之封装的基础知识。迷宫图如下所示,其中X表示墙。

    d42845e9ed6eac872d6581f578836196.png

    1、程序分析

    走出去的原理:遵循右手规则或左手规则。右手扶墙走,就会走出迷宫,反之,亦然。

    step1 创建迷宫类,打印出迷宫地图。

    84455da796ae9f447eff35555a2bac95.png

    step2 创建走迷宫的人的类。

    ed3a30a7650a80603022371bd6de08f0.png

    2、程序实现

    MazeMap.h

    #ifndef MAZEMAP_H

    #define MAZEMAP_H

    #include

    #include //COORD

    //在二维数组里,1代表墙,0代表路

    #define WALL 1

    #define ROAD 0

    class MazeMap

    {

    public:

    MazeMap(char wall = 'X');

    ~MazeMap();

    /*设置迷宫地图*/

    void setMazeMap(int *mazemap, int row, int col);

    void pintMazeMap();

    int** getMap(); //返回地图二维数组指针

    const char m_cRoad; //常数据成员:路

    void setExitPosition(int x,int y); //设置迷宫出口

    COORD m_COORDExitPostion; //迷宫的出口

    private:

    const char m_cWall; //常数据成员:墙

    int** m_pMap; //指向迷宫地图二维数组的二级指针

    int m_iMapRow; //二维数组的行数

    int m_iMapCol; //二维数组的列数

    };

    #endif

    MazeMap.cpp

    #include "MazeMap.h"

    /**************************

    *函数名称:MazeMap()

    *函数功能:构造函数,初始化参数

    *函数参数:wall 墙的表示符号

    *修改时间:2016.7.18

    ***************************/

    MazeMap::MazeMap(char wall):m_cWall(wall),m_cRoad(' ')

    {

    m_pMap = NULL;

    }

    /*************************

    *函数名称:~MazeMap()

    *函数功能:析构函数,释放动态申请的内存空间

    *修改时间:2016.7.18

    **************************/

    MazeMap::~MazeMap()

    {

    if(m_pMap)

    {

    for(int i = 0; i < m_iMapRow; i++)

    {

    delete m_pMap[i];

    m_pMap[i] = NULL;

    }

    delete m_pMap;

    }

    }

    /********************************

    *函数名称:setMazeMap()

    *函数功能:设置迷宫地图,传递参数

    *函数参数:*mazemap 存储地图数据的二维数组的指针

    * row 二维数组的行数

    * col 二维数组的列数

    *修改时间:2016.7.18

    **********************************/

    void MazeMap::setMazeMap(int *mazemap, int row, int col)

    {

    m_iMapRow = row;

    m_iMapCol = col;

    //为存储迷宫地图的二维数组动态分配内存空间

    m_pMap = new int*[m_iMapRow]; //分配m_iMapRow个存储int类型指针的内存空间

    for(int i = 0; i < m_iMapRow; i++)

    m_pMap[i] = new int[m_iMapCol]; //分配m_iMapCol个存储int类型的内存空间

    //将二维数组迷宫地图的数据拷贝给二级指针

    for(int i = 0; i < m_iMapRow; i++)

    {

    for(int j = 0; j < m_iMapCol; j++)

    {

    m_pMap[i][j] = *mazemap;

    mazemap++;

    }

    }

    }

    /************************************************

    *函数名称:pintMazeMap()

    *函数功能:打印迷宫地图

    *修改时间:2016.7.18

    *************************************************/

    void MazeMap::pintMazeMap()

    {

    system("cls");

    for(int i = 0; i < m_iMapRow; i++)

    {

    for(int j = 0; j < m_iMapCol; j++)

    {

    if(m_pMap[i][j]) //数组元素为1,则打印代表墙的字符

    std::cout << m_cWall;

    else //否则,打印代表路的字符

    std::cout << m_cRoad;

    }

    std::cout << std::endl;

    }

    }

    /************************************************

    *函数名称:getMap()

    *函数功能:返回地图二维数组指针

    *返 回 值:二级指针

    *修改时间:2016.7.18

    *************************************************/

    int** MazeMap::getMap()

    {

    return m_pMap;

    }

    /************************************************

    *函数名称:setExitPosition()

    *函数功能:设置迷宫的出口

    *函数参数:x 迷宫出口位置所在行数

    y 迷宫出口位置所在列数

    *修改时间:2016.7.18

    *************************************************/

    void MazeMap::setExitPosition(int x, int y)

    {

    m_COORDExitPostion.X = x;

    m_COORDExitPostion.Y = y;

    }

    MazeMan.h

    #ifndef MAZEMAN_H

    #define MAZEMAN_H

    #include

    #include "MazeMap.h"

    enum direction{U,D,L,R};

    class MazeMan

    {

    public:

    MazeMan(char man = 'T',char manface = R);

    void setPosition(int x, int y); //设置游戏角色位置

    void setMap(MazeMap *map); //设置地图对象

    bool walkUp(); //向上走

    bool walkDown(); //向下走

    bool walkLeft(); //向左走

    bool walkRight(); //向右走

    void moveForward(direction direct); //根据传入的方向让游戏角色前进一步

    void start(); //游戏开始函数

    private:

    char m_cMan; //代表游戏角色的字符

    char m_cManFace; //游戏角色的朝向

    int m_iSteps; //记录游戏角色已经走的步数

    COORD m_COORDManCurrentPosition; //游戏角色的当前位置

    MazeMap *m_pMap; //地图对象

    };

    #endif

    MazeMan.cpp

    #include "MazeMan.h"

    /*************************

    *函数名称:MazeMan()

    *函数功能:构造函数,初始化数据成员

    *函数参数:man 表示游戏角色的字符

    manface 游戏角色的朝向

    *修改时间:2016.7.18

    **************************/

    MazeMan::MazeMan(char man,char manface)

    {

    m_cMan = man;

    m_cManFace = manface;

    m_iSteps = 0;

    }

    /*******************************

    *函数名称:setMap()

    *函数功能:设置地图对象中的地图

    *函数参数:*map 地图对象的指针

    *修改时间:2016.7.18

    ********************************/

    void MazeMan::setMap(MazeMap *map)

    {

    m_pMap = map;

    }

    /******************************

    *函数名称:setPosition()

    *函数功能:设置游戏角色位置

    *函数参数:x 角色所在位置的横坐标

    y 角色所在位置的纵坐标

    *修改时间:2016.7.18

    ********************************/

    void MazeMan::setPosition(int x, int y)

    {

    unsigned long numWritten;

    //获得命令行窗口的窗口句柄

    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

    m_COORDManCurrentPosition.X = x;

    m_COORDManCurrentPosition.Y = y;

    //在指定坐标位置填充指定的字符,这里我们在游戏角色的当前位置填充代表游戏角色的字符,使游戏角色采出现

    FillConsoleOutputCharacter(handle,m_cMan,1,m_COORDManCurrentPosition,&numWritten);

    //参数说明:控制台屏幕缓冲区句柄,要向控制台缓冲区写入的字符;应写入的字符单元数;

    //一个COORD结构,它指定字符的字符是要写的第一个单元格的坐标;

    //指向接收的实际写入控制台屏幕缓冲区的字符数的变量的指针。

    }

    /************************************************

    *函数名称:moveForward()

    *函数功能:根据传入的方向让游戏角色前进一步

    *函数参数:direct 移动的方向

    *修改时间:2016.7.18

    *************************************************/

    void MazeMan::moveForward(direction direct)

    {

    unsigned long numWritten;

    //获取命令行窗口的窗口句柄

    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

    //在指定坐标位置填充指定的字符,这里我们在游戏角色的当前位置填充空格,使游戏角色消失

    FillConsoleOutputCharacter(handle,m_pMap->m_cRoad,1,m_COORDManCurrentPosition,&numWritten);

    switch(direct)

    {

    case U:

    m_COORDManCurrentPosition.Y -= 1;

    break;

    case D:

    m_COORDManCurrentPosition.Y += 1;

    break;

    case L:

    m_COORDManCurrentPosition.X -= 1;

    break;

    case R:

    m_COORDManCurrentPosition.X += 1;

    break;

    default:

    break;

    }

    //游戏角色坐标更新,在新的坐标

    FillConsoleOutputCharacter(handle,m_cMan,1,m_COORDManCurrentPosition,&numWritten);

    //移动完成后跟新游戏角色的朝向

    m_cManFace = direct;

    }

    /************************************************

    *函数名称:walkUp()

    *函数功能:向上走一步,若成功,则返回ture;若失败,则返回false

    *修改时间:2016.7.18

    *************************************************/

    bool MazeMan::walkUp()

    {

    if(m_pMap->getMap()[m_COORDManCurrentPosition.Y - 1][m_COORDManCurrentPosition.X])

    return false;

    else

    moveForward(U);

    return true;

    }

    /************************************************

    *函数名称:walkDown()

    *函数功能:向下走一步,若成功,则返回ture;若失败,则返回false

    *修改时间:2016.7.18

    *************************************************/

    bool MazeMan::walkDown()

    {

    if(m_pMap->getMap()[m_COORDManCurrentPosition.Y + 1][m_COORDManCurrentPosition.X])

    return false;

    else

    moveForward(D);

    return true;

    }

    /************************************************

    *函数名称:walkLeft()

    *函数功能:向左走一步,若成功,则返回ture;若失败,则返回false

    *修改时间:2016.7.18

    *************************************************/

    bool MazeMan::walkLeft()

    {

    if(m_pMap->getMap()[m_COORDManCurrentPosition.Y][m_COORDManCurrentPosition.X - 1])

    return false;

    else

    moveForward(L);

    return true;

    }

    /************************************************

    *函数名称:walkRight()

    *函数功能:向右走一步,若成功,则返回ture;若失败,则返回false

    *修改时间:2016.7.18

    *************************************************/

    bool MazeMan::walkRight()

    {

    if(m_pMap->getMap()[m_COORDManCurrentPosition.Y][m_COORDManCurrentPosition.X + 1])

    return false;

    else

    moveForward(R);

    return true;

    }

    /************************************************

    *函数名称:start()

    *函数功能:游戏开始函数

    *修改时间:2016.7.18

    *************************************************/

    void MazeMan::start()

    {

    while(true)

    {

    m_pMap->pintMazeMap();

    switch(m_cManFace)

    {

    case U:

    //游戏角色朝上时,先向右,再向上,再向左,最后向下(右手原则)

    walkRight() || walkUp() || walkLeft() || walkDown();

    break;

    case D:

    walkLeft() || walkDown() || walkRight() || walkUp();

    break;

    case L:

    walkUp() || walkLeft() || walkDown() || walkRight();

    break;

    case R:

    walkDown() || walkRight() || walkUp() || walkLeft();

    break;

    default:

    break;

    }

    m_iSteps++;

    if(m_COORDManCurrentPosition.X == m_pMap->m_COORDExitPostion.X && m_COORDManCurrentPosition.Y == m_pMap->m_COORDExitPostion.Y)

    break;

    std::cout << "已经走了" << m_iSteps - 1 << "步";

    Sleep(500);

    }

    }

    Main.cpp

    #include "MazeMap.h"

    #include "MazeMan.h"

    #define MapRow 11 //迷宫地图的行数

    #define MapCol 11 //迷宫地图的列数

    int main()

    {

    //定义并初始化存储地图数据的二维数组

    int map[MapRow][MapCol] = {

    {WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL},

    {WALL, ROAD, ROAD, ROAD, WALL, ROAD, ROAD, ROAD, ROAD, ROAD, ROAD},

    {WALL, ROAD, WALL, WALL, WALL, ROAD, WALL, WALL, WALL, ROAD, WALL},

    {WALL, ROAD, ROAD, ROAD, WALL, ROAD, ROAD, ROAD, WALL, ROAD, WALL},

    {WALL, ROAD, WALL, ROAD, WALL, ROAD, WALL, ROAD, WALL, WALL, WALL},

    {WALL, ROAD, WALL, ROAD, ROAD, ROAD, WALL, ROAD, WALL, ROAD, WALL},

    {WALL, ROAD, WALL, WALL, WALL, ROAD, WALL, WALL, WALL, ROAD, WALL},

    {WALL, ROAD, WALL, ROAD, WALL, ROAD, ROAD, ROAD, WALL, ROAD, WALL},

    {WALL, WALL, WALL, ROAD, WALL, WALL, WALL, ROAD, WALL, ROAD, WALL},

    {ROAD, ROAD, ROAD, ROAD, ROAD, ROAD, ROAD, ROAD, ROAD, ROAD, WALL},

    {WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL}

    };

    //从堆中实例化地图对象

    MazeMap *mm = new MazeMap();

    mm->setMazeMap(&map[0][0],MapRow,MapCol);

    mm->setExitPosition(10,1);

    mm->pintMazeMap();

    //从堆中实例化游戏角色对象

    MazeMan *man = new MazeMan();

    //设置角色起始位置

    man->setPosition(0,9);

    //设置游戏要走的地图

    man->setMap(mm);

    //用new的方式从堆中实例化的对象,使用完毕之后需要手动释放内存

    man->start();

    delete mm;

    mm = NULL;

    delete man;

    man = NULL;

    std::cout << "闯关成功!" << std::endl;

    system("pause");

    }

    3、运行结果

    T代表人

    f765f67788317946d3e079beccbc1bd5.png

    791270e27a6edd1cd5a0afb60aeff31a.png

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    展开全文
  • 迷宫寻宝C语言代码

    2015-05-25 22:00:06
    迷宫寻宝可以修改迷宫大小入口位置和出口位置可自己编辑迷宫文件
  • 迷宫C语言代码

    2014-04-17 10:14:52
    可以运行成功,自己做过的,拷贝下来就可以运行
  • c语言迷宫游戏代码

    热门讨论 2011-11-29 00:23:15
    c语言实现的迷宫游戏完整源代码,界面友好美观,很适合c语言源码的学习!
  • 经典游戏迷宫C语言代码下载,配详细注释。
  • 迷宫游戏c语言编程

    2021-02-16 05:57:00
    趣味编程之迷宫游戏 昨天正式开始带两个孩子学习c语言编程,为了让他们能主动的记录下来进步成长的足迹,要求他们进入csdn 程序开发者社区,注册,并发布他们的第一个hello world 程序的博客文章,布置完作业后才...
  • #include #define N 20/*迷宫的大小,可改变*/int oldmap[N][N];/*递归用的数组,用全局变量节约时间*/int yes=0;/*yes是判断是否找到路的标志,1找到,0没找到*/int way[100][2],wayn=0;/*way数组是显示路线用的,wayn...
  • C语言迷宫游戏设计(源代码+论文)如有需要请联系 QQ:958035640摘 要随着科技的日益发展,计算机信息知识越来越被人们所认知和使用,在当今知识爆炸的时代计算机毫不疑问成为人们常用的日常工具,对于一个经常使用...
  • 主要介绍了基于C语言实现的迷宫游戏代码,对于学习游戏开发的朋友相信有一定的借鉴价值,需要的朋友可以参考下
  • c语言迷宫游戏代码

    千次阅读 2014-03-21 16:37:57
    #include int grid[14][17]={ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1}, {1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1}, {1,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1}, ...
  • C语言中的迷宫:你可以通过键盘上的“W”、“A”、“S”、“D”,4个按键来控制一个小球向上、下、左、右移动,目的就是让这个小球从起点走出迷宫
  • 迷宫游戏/*乌云老师的话:学习检测键盘信息之后,余文彪同学当堂就作岀了通过键盘在屏幕上下左右移动一个星星的程序。老师给几位同学大略说了一下迷宫游戏的实现思路,彭搏同学下次课就把做好的迷宫游戏拿出来了,...
  • C语言开发的控制台小游戏,支持记录步数,多关卡等功能。
  • 这次是使用C语言做一个小游戏程序,三选一(2048、8皇后和迷宫游戏),我选择的是迷宫(文章末尾有程序截图)。个人认为这个程序的难点在于迷宫地图的绘制,也就是怎么建立一个迷宫。如果迷宫地图是在程序里写死的,那可...
  • c语言迷宫代码

    2012-08-17 10:34:53
    这是用c语言编写的迷宫游戏;可以自动求迷宫路径。
  • 一个c语言版的迷宫游戏代码,仅作参考。
  • 迷宫游戏C语言

    2011-11-17 17:14:00
    本人学C后,和同学一起做的一个迷宫游戏,这是一个程序文档,里面有代码,也有对程序设计的描述。
  • //10行10列的数组地图char map[10][10] ={//10行10列的数组地图{'#','#','#','#','#','#','#','#','#','#'},//0{'#','0',' ',' ',' ','#',' ','#',' ',' '},//1{'#','#',' ','#','#','#',' ','#',' ','#'},//2{'#','...
  • C语言 迷宫游戏作业

    2017-12-28 22:02:15
    大一期末大作业,用C语言完成,写的时候注释应该足够理解代码了。 大概思路是用十字链表进行迷宫创建,然后转为二维数组储存迷宫图形并实际输出。
  • 直接干脆点吧,这个是迷宫游戏,先做出来迷宫界面,然后的话,记住从起点到出口的路线,从黑暗中走出去,用灯光,直接去摸索,走出去,每一次运行的界面都是随机的,所以说难度肯定也是有的,代码的话也比较多,所以...
  • C语言编写的迷宫游戏_源代码
  • c语言控制台迷宫游戏

    2014-07-30 10:10:30
    最近学习C语言,做了一个控制台迷宫游戏,自带深度优先遍历方法自动寻路,代码有点繁琐,高手勿喷
  • C语言小游戏—迷宫游戏的实现

    千次阅读 2015-10-23 20:49:17
    通过C语言代码实现简单的迷宫游戏,附带简单的语音功能
  • C语言---迷宫游戏 代码

    千次阅读 2015-11-18 10:41:31
    //10行10列的数组地图 char map[10][10] = {  //10行10列的数组地图  {'#','#','#','#','#','#','#','#','#','#'},//0  {'#','0',' ',' ',' ','#',' ','#',' ',' '},//1 ... {'#','#',' ','#','#','#',' ','#'...
  • c语言 迷宫游戏

    千次阅读 2014-07-30 10:03:05
    最近学习C语言,做了一个控制台迷宫游戏,自带深度

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,030
精华内容 412
关键字:

迷宫游戏c语言代码

c语言 订阅