栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++实现迷宫小游戏

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++实现迷宫小游戏

介绍

本程序是根据广度优先遍历算法的思想设计的一款迷宫游戏,游戏设计了两种模式一种自动游戏模式,一种手动模式。因为项目在 Linux 开发,需要在 Windows 开发的,请查看源代码中需要修改地方的备注。

截图

代码

#include 
#include  //标准库
#include  //延时函数
#include  //getchar 
#include  
#include  //终端设置

#define MAX_X 20
#define MAX_Y 30
bool flag = false;
bool slow = false;
bool autogame = true;

using namespace std;

int maze[MAX_X][MAX_Y]; //迷宫

//路线栈
class stack_of_maze{
private:
 //记录迷宫坐标
 struct node
 {
 int x;
 int y;
 char direction; //上一步路径(如何来的)
 node* next;
 };
 node* head;
public:
 stack_of_maze(){
 head = NULL;
 }

 ~stack_of_maze(){
 node* p = head;
 while(head!=NULL){
 head = head->next;
 delete p;
 p = head;
 }
 }

 //压栈
 void push(int xx,int yy,char ddirection){
 node* new_node = new node;
 if(new_node!=NULL){
 new_node->x = xx;
 new_node->y = yy;
 new_node->direction = ddirection;
 new_node->next = NULL;

 if(head==NULL)
 head = new_node;
 else{
 new_node->next = head;
 head = new_node;
 }
 }
 else
 cout<<"内存分配失败"<next;
 xx = p->x;
 yy = p->y;
 delete p;
 }
 return head;
 }

 void print(){
 if(head!=NULL){
 node* p = head;
 while(p!=NULL){
 cout<<" "<x<<" "<y<<" "<direction<next;
 }
 }
 else
 cout<<"栈为空,打印失败"<替代此函数
char getch(){
 char ch; 
 static struct termios oldt, newt; //保存原有终端属性和新设置的终端属性
 tcgetattr( STDIN_FILENO, &oldt); //获得终端原有属性并保存在结构体oldflag

 //设置新的终端属性
 newt = oldt;
 newt.c_lflag &= ~(ICANON);   
 tcsetattr( STDIN_FILENO, TCSANOW, &newt);

 //取消回显
 system("stty -echo");
 ch = getchar();
 system("stty echo"); 

 tcsetattr( STDIN_FILENO, TCSANOW, &oldt); //让终端恢复为原有的属性
 return ch;
}

void move(){
 int x=1,y=1;  //出发点 
 while(1){
 switch(getch()){
 case 's':
 if(maze[x+1][y]==0){
  maze[x][y] = 0;
  x = x + 1;
  maze[x][y] = 7; //当前位置
  printMaze();
  if((x==MAX_X-1)&&(y==MAX_Y-2)){
  cout<<"nn    成功走出"<

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/61865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号