C/C++语言实现随机生成迷宫游戏的实例代码

迷宫相信大家都走过,毕竟书本啊啥啥啥的上面都会有迷宫,主要就是考验你的逻辑思维。那么我们学习C/C++也是需要学习到逻辑思维方式的,那今天我就来分享一下,如何用C/C++打造一个简单的随机迷宫游戏。(代码的话我只截取了如何创建迷宫的代码,如果想要全套代码的话可以加群:558502932,群内有很多C/C++学习资料提供学习,大家一起交流进步)

完整版的迷宫游戏效果如下:

代码如下:

//创建迷宫

voidCreateMaze(intx,inty)

{

//定义4个方向

intdir[4][2] = { 0, 1, 1, 0, 0, -1, -1, 0 };//回答错误

//打乱方向

intj,temp;//temp 临时变量

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

{

j =rand() % 4;//0-3 数组的下标 //j随机之后 j同一次还会不会变

temp = dir[i][0];

dir[i][0] = dir[j][0];

dir[j][0] = temp;

temp = dir[i][1];

dir[i][1] = dir[j][1];

dir[j][1] = temp;

}

map[x][y] = ROAD;//把这个点赋值成路

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

{

if(map[x + 2 * dir[i][0]][y + 2 * dir[i][1]] == WALL)//向上 0 1 //隔壁的一个

{

map[x + dir[i][0]][y + dir[i][1]] = ROAD;

CreateMaze(x + 2*dir[i][0], y + 2*dir[i][1]);

}

}

}

intmain()

{

srand((unsignedint)time(NULL));

for(inti = 0; i <= HEIGHT+1; i++)

{

for(intj = 0; j <= WIDTH + 1; j++)

{

if(i == 0 || i == HEIGHT + 1 || j == 0 || j == WIDTH + 1)

{

map[i][j] = ROAD;

}

else

{

map[i][j] = WALL;

}

}

}

CreateMaze(2 * (rand() % (HEIGHT / 2) + 1), 2 * (rand() % (WIDTH / 2) + 1));

//边界

for(inti = 0; i <= HEIGHT + 1; i++)

{

map[i][0] = WALL;

map[i][WIDTH + 1] = WALL;

}

for(inti = 0; i <=WIDTH+1; i++)

{

map[0][i] = WALL;

map[HEIGHT + 1][i] = WALL;

}

//画出入口和出口

map[2][1] = START;

map[HEIGHT - 1][WIDTH] = END;

for(inti = 1; i <= HEIGHT; i++)

{

for(intj = 1; j <= WIDTH; j++)

{

paint(i, j);

}

}

paint(0, 0);

return0;

}

这只是里面的一部分代码,所以你们复制粘贴也是没用的,给你们代码只是辅导作用,主要是你们要知道编程思想及程序设计的思路,希望你们能学好C/C++学成C/C++咯。

时间: 2024-10-30 03:17:30

C/C++语言实现随机生成迷宫游戏的实例代码的相关文章

基于C语言实现的贪吃蛇游戏完整实例代码_C 语言

本文以实例的形式讲述了基于C语言实现的贪吃蛇游戏代码,这是一个比较常见的游戏,代码备有比较详细的注释,对于读者理解有一定的帮助. 贪吃蛇完整实现代码如下: #include <graphics.h> #include <conio.h> #include <stdlib.h> #include <dos.h> #define NULL 0 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #defi

Python 随机生成中文验证码的实例代码_python

python代码 复制代码 代码如下:  # -*- coding: utf-8 -*-  import Image,ImageDraw,ImageFont  import random  import math, string    class RandomChar():    """用于随机生成汉字"""    @staticmethod    def Unicode():      val = random.randint(0x4E00,

C++实现随机生成迷宫地牢_C 语言

可以用这个地图核心做成一个无限迷宫类的游戏 main.cpp // Author: FreeKnight 2014-09-02 #include "stdafx.h" #include <iostream> #include <string> #include <random> #include <cassert> /* 简单逻辑流程描述: 将整个地图填满土 在地图中间挖一个房间出来 选中某一房间(如果有多个的话)的墙壁 确定要修建某种新

javascript-求一随机生成四位数字验证码的代码,并验证输入的与生成的是否一致

问题描述 求一随机生成四位数字验证码的代码,并验证输入的与生成的是否一致 求一随机生成四位数字验证码的代码,并验证输入的与生成的是否一致 解决方案 这个和js没有关系.验证码的作用是防止机器模仿人滥用的.因为机器识别不规则图像很困难,但是人可以做到这一点. 所以这个需要服务器去验证,如果是客户端验证,那么攻击者很容易破解你的生成和验证环节,验证码也就形同虚设了. 你需要一种服务器编程语言.比如jsp或者asp等等,随机产生验证码,用绘图的方法绘制,加上干扰线.噪点,进行文字的变形等等输出到客户端

ASP.NET动态生成静态页面的实例代码

生成静态页有很多好处,可以缓解服务器压力.方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下   最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容. 首先制作一个模板页,暂时命名为template.htm,示例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

asp教程-生成静态html文件实例代码

asp教程-生成静态html文件实例代码 <% '====================================================== ' 文件名称 : inc/ClsTempIndex.asp ' 文件作用 : 首页类 ' 最后更新 : 2008.08.10 '====================================================== Class Cls_TempIndex     Public OriginTempContent,Te

实现SQL Server 原生数据从XML生成JSON数据的实例代码

实现SQL Server 原生数据从XML生成JSON数据的实例代码 SQL Server 是关系数据库,查询结果通常都是数据集,但是在一些特殊需求下,我们需要XML数据,最近这些年,JSON作为WebAPI常用的交换数据格式,那么数据库如何生成JSON数据呢?今天就写了一个DEMO. 1.创建表及测试数据 SET NOCOUNT ON IF OBJECT_ID('STATS') IS NOT NULL DROP TABLE STATS IF OBJECT_ID('STATIONS') IS N

基于C语言实现五子棋游戏完整实例代码_C 语言

本文实例讲述了基于C语言实现五子棋游戏的方法,代码备有比较完整的注释,可以帮助读者更好的加以理解. 五子棋游戏代码如下: /* * 使用键盘的上下左右键移动棋盘,空格键表示下棋,ESC键退出程序 */ #include <stdio.h> #include <stdlib.h> #include <bios.h> #include <graphics.h> #include<malloc.h> /* * 对应键盘键的十六进制数字 */ #defi

C语言 奇偶排序算法详解及实例代码_C 语言

C语言奇偶排序算法 奇偶排序,或奇偶换位排序,或砖排序,是一种相对简单的排序算法,最初发明用于有本地互连的并行计算.这是与冒泡排序特点类似的一种比较排序.该算法中,通过比较数组中相邻的(奇-偶)位置数字对,如果该奇偶对是错误的顺序(第一个大于第二个),则交换.下一步重复该操作,但针对所有的(偶-奇)位置数字对.如此交替进行下去. 使用奇偶排序法对一列随机数字进行排序的过程 处理器数组的排序 在并行计算排序中,每个处理器对应处理一个值,并仅有与左右邻居的本地互连.所有处理器可同时与邻居进行比较.交