IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 用最基础的c语言写迷宫—c语言中的小白文 -> 正文阅读

[C++知识库]用最基础的c语言写迷宫—c语言中的小白文

用最基础的c语言写迷宫—c语言中的小白文

#include <stdio.h>
#include <stdlib.h>


/*你需要在迷宫找到钥匙才能打开门,□代表你所在的地方,■代表墙不能通过,○代表钥
匙,需要你去营救,※代表你走过的路线,切记不能走回头路哦,×代表陷阱的位置,遇到
会死亡,如果遇见敌人会被抓,|-代表出口(门)。必须找到钥匙一起出去才能成功。
w,s,a,d分别代表上,下,左,右。
*/
int main(void){
	int k=0; // 是否找到了钥匙
	int i=0,j=0; // i,j代表数组的横坐标和纵坐标,用来打印数组(也就是迷宫)
	char zou; // 需要你输入的,下一步要怎么走
	int x=1,y=1; //代表你所在的位置,这个在你输入zou后是会发生变化的
	printf("请开始你的游戏\n");
	system("pause");
	// 用数组来表示迷宫
	int arr[11][13] = {
		{1,1,1,1,1,1,1,1,1,1,1,1,1},
		{1,0,0,0,0,1,0,0,0,0,3,1,1},
		{1,1,0,1,0,0,0,0,0,0,0,1,1},
		{1,1,0,1,0,1,1,0,1,1,1,1,1},
		{1,1,0,0,0,0,1,0,0,0,0,1,1},
		{1,1,0,1,1,9,1,0,1,1,0,1,1},
		{1,1,0,0,0,0,1,9,1,1,0,1,1},
		{1,1,0,1,0,1,1,0,0,0,0,1,1},
		{1,1,0,1,0,1,1,0,1,1,1,1,1},
		{1,1,0,1,0,0,1,0,0,0,0,8,1},
		{1,1,1,1,1,1,1,1,1,1,1,1,1},
	};
	while(1){
		system("cls"); // 清屏,把以前打印出来的图形给清除掉,之留下行走以后形成的图案
		// 打印迷宫
		// 双重循环,把数组打印出来,每打印一行记得换行
		for(i=0;i<11;i++){
			for(j=0;j<13;j++){
				// x,y是你在的位置,当打印在你所在的位置的时候用□来表示
				if(i==x&&j==y){
					printf("□");
					continue;
				}
				// 0代表可以走的路,一个空格的大小和用到的图案大小不一致,而两个空格正好
				if(arr[i][j] == 0){
					printf("  ");
				}
				// 1表示墙了,遇到1时用字符■代替墙
				if(arr[i][j]==1){
				printf("■");
 				}
				// arr[i][j]==3的时候就是钥匙的所在地方,用○表示
				if(arr[i][j]==3){
					printf("○");
				}
				// 走过的路用4表示,而当遇到arr[i][j]==4的时候证明这个位置走过,就用※表示
				if(arr[i][j]==4){
					printf("※");
				}
				// 9表示陷阱,用x表示
				if(arr[i][j]==9){
					printf("×");
				}
				// 同理,这个就是门了
				if(arr[i][j]==8){
					printf("|-");
				}
			}
			printf("\n");// 记得换行
		}

		 // 判断是否死亡
		if((x==9)&&(y==11)&&(k==1)){
			printf("恭喜你,成功救出百姓!\n");
			break;  //走到了门的位置,并且有钥匙
		}
		if((x==9)&&(y==11)&&(k==0)){
			printf("未找到钥匙姓,游戏失败!");
			break; // 走到了门的位置,但没有找到钥匙
		}
		if((arr[x-1][y]==1||arr[x-1][y]==4)&&(arr[x+1][y]==1||arr[x+1][y]==4)&&(arr[x][y-1]==1||arr[x][y-1]==4)&&(arr[x][y+1]==1||arr[x][y+1]==4)){
			printf("你已经无路可走,死亡!\n");
			break;  //x,y的上下左右都是1或4,也就是都是墙或走过的路
		}
		if(arr[x][y]==9){
			printf("遇到了陷阱,游戏失败!");
			break; // 走到了陷阱的位置
		}


		// 输入怎么走
		// 上下走可以把横坐标变化,左右走可以把纵坐标变化
		scanf("%c",&zou);
		// w表示向上走
		if(zou == 'w'){
			// 判断上面是都是墙
			if(arr[x-1][y]==1){
				printf("这里不能走  --回车键继续\n");
				system("pause");// 暂停一下,防止程序执行太快,直接continue结束while循环清屏看不到提示
				continue;
			}
			// 判断上面位置是否走过
			if(arr[x-1][y]==4){
				printf("这里已经走过,请走别的路  --回车键继续\n");
				system("pause");
				continue;
			}
			arr[x][y] = 4;
			x--;
		}
		// s表示想下走
		if(zou == 's'){
			if(arr[x+1][y]==1){
				printf("这里不能走  --回车键继续\n");
				system("pause");
				continue;
			}
			if(arr[x+1][y]==4){
				printf("这里已经走过,请走别的路  --回车键继续\n");
				system("pause");
				continue;
			}
			arr[x][y] = 4;
			x++;
		}
		// a表示向左走
		if(zou == 'a'){
			if(arr[x][y-1]==1){
				printf("这里不能走  --回车键继续\n");
				system("pause");
				continue;
			}
			if(arr[x][y-1]==4){
				printf("这里已经走过,请走别的路  --回车键继续\n");
				system("pause");
				continue;
			}
			arr[x][y] = 4;
			y--;
		}
		// d表示右走
		if(zou == 'd'){
			if(arr[x][y+1]==1){
				printf("这里不能走  --回车键继续\n");
				system("pause");
				continue;
			}
			if(arr[x][y+1]==4){
				printf("这里已经走过,请走别的路  --回车键继续\n");
				system("pause");
				continue;
			}
			arr[x][y] = 4;
			y++;
		}
		// arr[x][y]==3的位置表示钥匙的地方,走到这里k变成1,表示已经拿到钥匙
		if(arr[x][y]==3){
			k=1;
		}
	}

	return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:21:44  更:2021-10-25 12:24:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:22:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码