21xrx.com
2024-11-22 08:03:21 Friday
登录
文章检索 我的文章 写文章
C++迷宫游戏代码
2023-07-04 23:43:52 深夜i     --     --
C++ 迷宫游戏 代码 实现 寻路算法

C++迷宫游戏是一种基于C++编程语言的互动式游戏,玩家需要通过控制角色在迷宫内寻找出口,不断地摸索和解决难题。

下面是一段C++迷宫游戏代码示例:

#include

#include

#include

#include

#include

using namespace std;

const int N=10;

int map[N][N];

int moving[4][2]=1;

struct Pointy;

;

void printmap(){

  for(int i=0;i

    for(int j=0;j

      if(map[i][j]==0)

        putchar(' ');

      else if(map[i][j]==1)

        putchar('#');

      else if(map[i][j]==2)

        putchar('S');

      else if(map[i][j]==3)

        putchar('E');

    }

    putchar('\n');

  }

}

void generatemap(){

  for(int i=0;i

    for(int j=0;j

      map[i][j]=j==0||i==0||j==N-1||i==N-1?1:0;

}

void digmaze(int x,int y){

  int dir[4]={0,1,2,3};

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

    swap(dir[i],dir[rand()%4]);

  for(int i=0;i<4;i++){

    int dx=moving[dir[i]][0],dy=moving[dir[i]][1];

    int nx=x+dx,ny=y+dy;

    if(nx>=1&&nx =1&&ny

      map[x+dx/2][y+dy/2]=0;

      digmaze(nx,ny);

    }

  }

}

Point playerpos(){

  Point p;

  for(int i=0;i

    for(int j=0;j

      if(map[i][j]==2){

        p.x=i;

        p.y=j;

      }

  return p;

}

bool checkwin(){

  for(int i=0;i

    for(int j=0;j

      if(map[i][j]==2)

        return false;

  return true;

}

void playgame(){

  while(1){

    Point p=playerpos();

    int x=p.x,y=p.y;

    printmap();

    cout<<"please input what you want to do.W for up.S for down.A for left.D for right."<

    char c;

    cin>>c;

    int dx=0,dy=0;

    switch(c){

      case 'w':dx=-1;break;

      case 'a':dy=-1;break;

      case 's':dx=1;break;

      case 'd':dy=1;break;

    }

    int nx=x+dx,ny=y+dy;

    if(map[nx][ny]==1)

      continue;

    else if(map[nx][ny]==3){

      printmap();

      cout<<"you win!"<

      break;

    }

    else

      swap(map[x][y],map[nx][ny]);

    if(checkwin()){

      printmap();

      cout<<"you win!"<

      break;

    }

    system("cls");

  }

}

int main(){

  srand((unsigned)time(NULL));

  generatemap();

  digmaze(1,1);

  for(int i=0;i

    for(int j=0;j

      if(map[i][j]==0){

        map[i][j]=2;

        break;

      }

  map[N-2][N-2]=3;

  playgame();

  return 0;

}

该代码使用了递归算法来生成迷宫,通过WASD键来控制玩家移动。

总之,C++迷宫游戏代码是一种不错的C++编程实践项目,尤其是对于初学者来说,可以增强对C++函数和类的理解和运用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复