C语言迷宫游戏改进版_请用c语言编写一个迷宫升级版程序。游戏设计要求如下: 1:用不同的文件存储不同难-程序员宅基地

技术标签: ctf  迷宫  C语言  

模拟迷宫游戏

#include <iostream>
#include <stdlib.h>
#include <conio.h>


#define  ROW 10
#define  CUL 10 


//设置X,Y坐标(全局变量);
int currentX=8,currentY=1;
//移动后的XY坐标(全局变量);
int nextX,nextY;
//看下一步是否能走  int[x][y]==' ' ;
char street = ' ';


char map[ROW][CUL] = {
	{'#','#','#','#','#','#','#','#','#','#'},
	{'#','#',' ',' ',' ',' ','#','#','#','#'},
	{'#',' ',' ','#','#',' ',' ','#','#','#'},
	{'#',' ','#',' ','#','#',' ',' ','#','#'},
	{'#',' ',' ',' ',' ','#','#',' ','#','#'},
	{'#',' ','#','#',' ','#','#',' ','#','#'},
	{'#',' ','#','#',' ',' ','#',' ','#','#'},
	{'#',' ','#','#','#',' ','#',' ',' ',' '},
	{'#','0','#',' ',' ',' ','#','#','#','#'},
	{'#','#','#','#','#','#','#','#','#','#'},
};

using namespace std;



void show();  // 打印地图 
void moveTo(char direction);  //控制小人移动
void judge();  // 判断是非否为边界




int main()
{
	nextX = currentX;
    nextY = currentY;
    //屏幕打印出迷宫;
    show();
    char direction;
    while (1) {
        cout  <<"请移动人物,用键盘W/S/A/D(上下左右)操作" << endl;
        
        direction = getch();
        moveTo(direction);
        judge();
		system("CLS");
        show();
        if (currentX==ROW-1||currentY==CUL-1){
            cout << "通关了,呵呵!" << endl;
            break;
        }
    }
    return 0;
	
	show();
	
}


//打印地图
void show(){
    for(int i = 0;i<ROW;i++){
        for (int j = 0;j<CUL;j++) {
            printf("%c",map[i][j]);
        }
        printf("\n");
    }
}
//移动人物

void judge(){
    if (map[nextX][nextY]==street) {
        char temp = map[currentX][currentY];
        map[currentX][currentY] = map[nextX][nextY];
        map[nextX][nextY] = temp;
        currentX = nextX;
        currentY = nextY;
        
    }else{
        nextX = currentX;
        nextY = currentY;
    }
}
//计算下一个位置
void moveTo(char direction){
    switch (direction) {
        case 'w':{
            nextX = currentX - 1;
            break;
        }
        case 's':{
            nextX = currentX + 1;
            break;
        }
        case 'a':{
            nextY = currentY - 1;
            break;
        }
        case 'd':{
            nextY = currentY + 1;
            break;
        }
        default:
            break;
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44106306/article/details/86668176

智能推荐

交换机和路由器的异同_试比较分析网络互连设各中的交换机和路由器的异同点?-程序员宅基地

文章浏览阅读954次。1、路由器可以给你的局域网自动分配IP,虚拟拨号,就像一个交通警察,指挥着你的电脑该往哪走,你自己不用操心那么多了。交换机只是用来分配网络数据的。2、路由器在网络层,路由器根据IP地址寻址转发数据包,路由器可以处理TCP/IP协议,交换机不可以。交换机在数据链路层,交换机根据MAC地址寻址转发数据包。3、路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很..._试比较分析网络互连设各中的交换机和路由器的异同点?

Java消息队列-ActiveMq代码记录_java 清空activemq里面的消息-程序员宅基地

文章浏览阅读600次,点赞2次,收藏2次。Java消息队列对比: 队列模式(queue):平均接收消息生产者产生的消息 主题模式(topic):全部接收生产者产生的所有消息,消费者必须要先预定主题,才能收到消息,没有预定的话是不能收到消息(也就是消费者无法消费产生在它启动接听之前的消息)JMS编码接口之间的关系: pom.xml:

ROS学习——读取激光雷达数据Laser_ros读取激光雷达数据-程序员宅基地

文章浏览阅读4.6k次,点赞6次,收藏57次。在ROS工作空间的src文件夹下创建read_laser功能包,并在包内创建include、launch、src四个文件夹。在include文件夹中创建read_laser.h文件,并写入以下内容:#include<ros/ros.h>#include<std_msgs/UInt16.h>#include<string>#include<iostream>#include<sensor_msgs/LaserScan.h>#includ_ros读取激光雷达数据

opencv中伪彩色applyColorMap函数_opencv random color map-程序员宅基地

文章浏览阅读3.7w次,点赞42次,收藏150次。colormap(色度图) 假设我们想在地图上显示美国不同地区的温度。我们可以把美国地图上的温度数据叠加为灰度图像——较暗的区域代表较冷的温度,更明亮的区域代表较热的区域。这样的表现不仅令人难以置信,而且代表了两个重要的原因。首先,人类视觉系统没有被优化来测量灰度强度的微小变化。我们能更好地感知颜色的变化。第二,我们用不同的颜色代表不同的意思。用蓝色和较温暖的温度用红色表示较冷的温度更有意义。_opencv random color map

4-12 求二叉树高度 (10分)_本题要求输出二叉树的高度(树根在第1层)。 函数接口定义: #求二叉树t的高度 def g-程序员宅基地

文章浏览阅读346次。4-12 求二叉树高度 (10分)本题要求给定二叉树的高度。函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};要求函数返回给定二叉树BT的高度值。裁判测试程序样例:#incl_本题要求输出二叉树的高度(树根在第1层)。 函数接口定义: #求二叉树t的高度 def g

弹性盒子布局补充(FlexBox)_flexbox(flex-start, center);-程序员宅基地

文章浏览阅读91次。一.document.write()弊端:只能往body中添加元素document.write('<divclass="box1">我是div</div>');二.innerHTML弊端:在同级下只能添加一种元素,多个会覆盖document.getElementById("divObj").innerHTML="<p>哈哈哈</p>";三.document.createElement()父元素.appendChild(..._flexbox(flex-start, center);

随便推点

显著性假设(基础篇)_anova1-程序员宅基地

文章浏览阅读3.1k次,点赞3次,收藏13次。一:显著性检验前传:什么是显著性检验?它与统计假设检验有什么关系?为什么要做显著性检验? “显著性检验”实际上是英文significance test的汉语译名。在统计学中,显著性检验是“统计假设检验”(Statistical hypothesis testing)的一种,显著性检验是用于检测科学实验中实验组与对照组之间是否有差异以及差异是否显著的办法。实际上,了解显著性检验的“宗门背景”(统计假设检验)更有助于一个科研新手理解显著性检验。“统计假设检验”这一正名实际上指出了“显著性检验”的前提..._anova1

CTEX初学一_ctex怎么另存为-程序员宅基地

文章浏览阅读6.3k次。1.百度CTEX下载CTEX,然后安装好;2.打开WinEdt7.0,新建一个文件,写上:3.点击LaTex如图所示:4.然后将其另存为到E盘中的tex文件夹中,并取名为a 如图所示:5.接着打开dos窗口敲下面的杰哥命令:6.返回到Win7.0 通过放大镜 或 通过Yap a打开 或 通过div打开7.最后一_ctex怎么另存为

不够位数的在前面补0,保留num的长度位数字_integer转string 不足两位前面补0-程序员宅基地

文章浏览阅读2.1k次。import java.util.Date;import .common.util.DateUtil;/** * * @ClassName OrderNoCreator * @Description: 订单号生成器 * @author: GuXiYang * @date: 2017/02/14 15:06:18 */public class OrderNoCreator_integer转string 不足两位前面补0

黑马程序员--java复习之IO包中其他类_pos.write("管道流你好", getbytes());-程序员宅基地

文章浏览阅读377次。------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------在前面两天中学习了IO流,主要是字符流和字节流。内容包括字符流的几个类 Reader和Writer,文件操作类 FileReader、FileWriter、字符流缓冲区 BufferedReader和BufferedWriter,转换流 BufferedInputStreamR_pos.write("管道流你好", getbytes());

centos 6.5  阿里云  源码安装php swoole详解_阿里云虚拟机可不可以安装swoole-程序员宅基地

文章浏览阅读3k次。1、安装Apache[root@localhost ~]# yum -y install httpd# 开机自启动[root@localhost ~]# chkconfig httpd on# 启动httpd 服务[root@localhost ~]# service httpd start### 安装apache 一些扩展root@localhost ~]# yum_阿里云虚拟机可不可以安装swoole

li 字多出了省略号_css实现DIV,LI等元素超出部分文字用省略号…显示-程序员宅基地

文章浏览阅读618次。这篇文章主要为大家详细介绍了css实现DIV,LI等元素超出部分文字用省略号…显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。让DIV,LI等元素超出部分文字用省略号…显示。很简单就不多费用了,直接上代码css代码为:display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsi..._li超出一行显示省略号,点击省略号浮动显示全部内容

推荐文章

热门文章

相关标签