C语言迷宫游戏

合集下载

C语言的图形编程应用—迷宫游戏

C语言的图形编程应用—迷宫游戏

课程设计报告书题目C语言的图形编程应用—迷宫游戏系别计算机工程系专业计算机科学与技术班级姓名指导教师下达日期2011 年12 月14 日设计时间自2011年12月19日至2011年12月30日指导教师评语课程设计任务书目录Ⅰ.程序设计目的 (3)Ⅱ.运行环境 (3)Ⅲ.程序功能 (3)Ⅳ.程序设计内容 (3)Ⅳ.1设计界面 (3)Ⅳ.2设计思路 (3)Ⅳ.3流程图 (4)Ⅳ.4主要功能模块 (4)Ⅴ.小结与启发 (10)Ⅵ.参考文献 (11)Ⅰ.程序设计目的通过典型实例―——迷宫问题,加深对递归算法的理解和编制,掌握数组的运用。

Ⅱ.运行环境主要在Windows 2000/XP操作系统TC下运行。

Ⅲ.程序功能迷宫是深受大家喜爱的游戏之一,一般设计迷宫为二维平面图,将迷宫的左上角做入口,右下角做出口,求出从入口点到出口点的一条通路,作为线性结构的典型应用,大多是用非递归方法实现,输出用0代表通路,1代表墙壁。

而本程序生成一个美观逼真的迷宫图,它是随机生成的且迷宫大小可以改变,迷宫的大小为N*N,N预定义为常数,修改N的值可以改变迷宫的大小(只要不超过屏幕显示范围),而程序不必做修改。

程序采用了两种运行方式:一种系统自动运行探索,用递归方法实现;一种是由人工操作探索通路,这利用了手动操作8个代表不同的方向的键位来实现。

用白色表示可走的路,棕色表示墙壁不可以通过。

Ⅳ.程序设计内容Ⅳ.1设计界面系统运行首先出现提示字符串“Please select hand(1)else auto”,询问是选择人工探索还是系统自动探索,当用户输入字符1按回车键后出现一个迷宫图,红色矩形块(表示探索物)出现在左上角,这是可以代表8个方向的字符选择通路,遇到墙壁不能通行,按回车键结束探索,如果这时探索物移动到右下角出口,则显示找到通路信息,否则显示没找到通路信息。

如图1为人工探索通路的界面。

在提示信息后,如果输入的字符不是1,则系统自动查找通路,如果没有找到通路,则显示没有找到通路信息。

c语言课程设计迷宫代码

c语言课程设计迷宫代码

c语言课程设计迷宫代码一、教学目标本课程的教学目标是使学生掌握C语言编程的基本技能,能够运用C语言设计并实现简单的迷宫游戏。

具体目标如下:1.知识目标:学生能够理解C语言的基本语法、数据类型、运算符、控制结构等编程基础。

2.技能目标:学生能够运用C语言编写程序,解决简单的逻辑问题,如迷宫的生成与求解。

3.情感态度价值观目标:通过完成迷宫游戏的设计与实现,学生能够体验到编程的乐趣,增强对计算机科学的兴趣和好奇心。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等编程基础,以及迷宫游戏的算法设计与实现。

具体安排如下:1.C语言基本语法与数据类型:介绍C语言的基本语法规则,包括变量、常量、数据类型、运算符等。

2.控制结构:讲解条件语句、循环语句等基本的控制结构,以及它们的运用。

3.迷宫生成算法:介绍简单的迷宫生成算法,如随机生成法、有向图法等。

4.迷宫求解算法:讲解常见的迷宫求解算法,如深度优先搜索、广度优先搜索等,并分析它们的优缺点。

5.迷宫游戏实现:引导学生运用所学的C语言知识和算法,设计并实现一个简单的迷宫游戏。

三、教学方法为了达到本课程的教学目标,将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符、控制结构等编程基础。

2.案例分析法:通过分析典型的迷宫生成和求解案例,使学生掌握相应的算法。

3.实验法:学生在实验室环境中,运用所学的知识和算法,设计并实现迷宫游戏。

4.讨论法:学生进行小组讨论,分享设计迷宫游戏的思路和经验,相互学习,共同进步。

四、教学资源为了支持本课程的教学内容和教学方法,将准备以下教学资源:1.教材:《C语言程序设计》等,用于引导学生学习C语言的基本语法和编程技巧。

2.多媒体资料:制作PPT、教学视频等,形象直观地展示迷宫游戏的算法和实现过程。

3.实验设备:提供计算机实验室,让学生在实践中掌握C语言编程和迷宫游戏设计。

4.网络资源:推荐一些编程和论坛,便于学生课后自主学习和交流。

c语言小游戏

c语言小游戏

简单的c语言迷宫小游戏一、内容:1、本游戏主要实现了人控制键盘方向键使小人(*)走出迷宫。

2、具有的功能: 1)、在游戏菜单里人可以选择不同难度的游戏进行游戏;2)、在游戏过程中,可以通过键盘方向键使小人移动,走出迷宫;3)、在游戏过程中,当人碰到墙壁(#)的时候小人过不去;4)、当人顺利完成游戏之后,输出“========you are win!======”字样,30秒钟后自动返回到游戏菜单;5)、在游戏过程中,人可以通过按Esc键返回游戏菜单;也可以可以按0直接退出游戏;6)、在游戏菜单里,按0键可以退出游戏。

3、具体应用: 1)、人主要同过键盘的1,2,3数字键来选择游戏难度;2)、在游戏中通过Esc键来返回菜单;3)、同过0键退出游戏。

二、上机环境操作系统:windows7 开发工具:VC6.0三、各函数功能说明main() 主函数;menu() 游戏菜单;roadcake() 消去小人路径;introduce() 游戏介绍;system(“cls”)消屏函数;exit(0) 退出游戏;drawmg1() 画初级难度迷宫;drawmg2() 画中级难度迷宫;drawmg3() 画高级难度迷宫;control1() 控制初级难度游戏;control2() 控制中级难度游戏;control3() 控制高级难度游戏;四、算法流程图首先定义三个全局数组mg1[20][20]、mg2[30][30]、mg3[30][30]用于画出迷宫的地图;1表示墙(#),0表示空地();Introduce( )函数里如果按Enter键,则调用menu( )函数,从键盘中输入相应的提示数字,进入难度不同的游戏;游戏的执行在此只初级难度进行描述,其余的难度与其类似;选了1后调用system(”cls”)进行清屏;drawmg1()函数进行迷宫的地图的绘制, for(i=0;i<20;i++){printf("\t\t\t");for(j=0;j<20;j++){ch=mg1[i][j];switch(ch){case 4: printf("*");break;case 0: printf(" ");break;case 1: printf("#");break;}if(num++%20==0) /*每行只能输出20个字符*/printf(”\n”);}}之后调用控制函数control1()进行控制小人移动路径,在control1()函数里用do—while()语句进行循环,while(1)进行死循环,再定义四个整型a,b,m,n即:for(n=0;n<30;n++)for(m=0;m<30;m++)if(mg3[n][m]==4){a=n; /*为后面调用roadcake()实现消除小人路径进行初始赋值*/b=m;break;}用switch()语句选择方向键,在调用roadcake()函数进行消除小人路径 void roadcake(int *i,int *j){int temp;temp=*i; /*进行值交换,即数组值为0和值为4进行交换*i=*j;*j=temp;}完成第一个控制之后进行清屏和画新的游戏状态图,若在游戏进行中要退出游戏,只需按0键,调用exit(0)函数结束;若要返回游戏菜单,按Esc键掉用menu()函数即可,重复以上步骤,直达游戏结束,此时掉用menu()函数自动返回菜单。

用C和SFML制作迷宫小游戏

用C和SFML制作迷宫小游戏

用C和SFML制作迷宫小游戏迷宫小游戏制作指南迷宫小游戏是一种经典的游戏类型,以其挑战性和趣味性而备受玩家喜爱。

这里将介绍使用C语言和SFML库来制作迷宫小游戏的步骤。

一、概述迷宫小游戏的基本原理是玩家通过键盘操作控制角色在迷宫中寻找出口。

玩家可以使用方向键或WASD键控制角色的移动,并避开迷宫中的障碍物。

游戏的难度可以根据迷宫的复杂程度和障碍物的设置来调整。

二、环境搭建1. 安装C编译器和SFML库:在开始制作游戏之前,需要安装C编译器(如GCC或Clang)以及SFML库。

GCC和Clang是常用的C语言编译器,在安装过程中会有相应的说明文档。

SFML是一个跨平台的多媒体库,提供了许多功能丰富的图形和音频接口。

2. 配置开发环境:在安装完成后,需要配置开发环境,包括设置编译器和库文件的路径。

具体操作请参考相关文档。

三、游戏设计在开始编写代码之前,我们需要先设计游戏的基本框架和功能。

1. 创建游戏窗口:使用SFML库可以方便地创建一个游戏窗口,并设置窗口的大小和标题。

2. 绘制迷宫地图:迷宫地图可以使用二维数组来表示,其中不同的数值代表不同的方块类型,比如墙壁、通道和出口。

在游戏开始时,需要根据地图数组来绘制迷宫。

3. 控制角色移动:通过监听键盘事件,可以让玩家使用方向键或WASD键来控制角色的移动。

需要注意的是,角色移动时需要检测是否与墙壁或边界发生碰撞。

4. 碰撞检测:在角色移动过程中,需要判断角色是否与墙壁或障碍物发生碰撞。

如果发生碰撞,则需要相应地处理角色的移动。

5. 胜利条件判断:游戏的胜利条件是角色到达迷宫的出口。

可以通过判断角色与出口的位置关系来判断玩家是否胜利。

四、编写代码在完成游戏设计之后,我们可以开始编写代码来实现游戏功能。

1. 引入SFML库和相关头文件:在代码文件的开头,引入所需的SFML库和相关头文件。

2. 创建游戏窗口:使用SFML库中的窗口类来创建游戏窗口,并设置窗口的大小和标题。

迷宫游戏C语言代码讲解

迷宫游戏C语言代码讲解
HANDLE WINAPI GetStdHandle( //获得输入、输出/错误的屏幕缓冲区的句柄。__in DWORD nStdHandle );
而其参数nStdHandle的值可以为下面几种类型的一种:STD_INPUT_HANDLE标准输入的句柄STD_OUTPUT_HANDLE标准输出的句柄STD_ERROR_HANDLE标准错误的句柄
void game() //游戏相关操作
先不要管main函数里的代码,我们先逐个分析一下函数
先来看看gotoxy()接受两个参数,代码如下
void gotoxy(int x,int y) //移动坐标
{
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
if(c==Esc)
{
gotoxy(0,24);
5
回复
1楼
2011-12-07 15:46
举报|
我也说一句
未来未来
追忆曾经_
团子家族
10
break;
}
switch(c)
{
case Up: //向上走
if(map[x-1][y]!=Wall)
{
paint(x,y);
x--;
}
break;
case Down: //向下走
map[i][Width+1]=Wall;
}
for(j=0;j<=Width+1;j++) //边界处理
{
map[0][j]=Wall;

c语言走迷宫代码

c语言走迷宫代码

c语言走迷宫代码以下是一个简单的 C 语言走迷宫代码示例,使用了递归算法: ```c#include <stdio.h>#include <stdlib.h>int main() {int size, row, col, choice, i, j;maze[0][0] = "*";maze[1][0] = "O";maze[0][1] = "O";maze[1][1] = "*";size = 2;row = 2;col = 2;while (1) {printf("Enter row: ");scanf("%d", &row);printf("Enter col: ");scanf("%d", &col);if (row < 0 || row > size || col < 0 || col > size) { printf("Invalid row or col. Try again.");}if (maze[row][col] != "*") {printf("Current cell is free. Try again. ");continue;}maze[row][col] = "X";printf("Enter a choice (1-6): ");scanf("%d", &choice);switch (choice) {case 1:row++;col = 0;break;case 2:row--;col = 0;break;case 3:col++;break;col--;break;case 5:row--;col = 1;break;case 6:row++;col = 1;break;default:printf("Invalid choice. Try again. ");continue;}}printf(" maze: ");for (i = 0; i < size * size; i++) { for (j = 0; j < size; j++) {if (maze[i][j] == "*")printf("*");elseprintf("%c", maze[i][j]);}printf("");}return 0;}```该程序首先初始化了一个 2x2 的迷宫,其中 `maze[0][0]` 和`maze[1][0]` 分别标记为 `"O"` 和 `"*"`,其他地方都为空。

c语言课程设计走迷宫

c语言课程设计走迷宫

c语言课程设计走迷宫一、教学目标本章节的教学目标是让学生掌握C语言编程的基本概念和方法,通过走迷宫游戏的项目实践,培养学生的编程思维和问题解决能力。

具体来说,知识目标包括理解C语言的基本语法、数据类型、控制结构等;技能目标包括能够运用C语言编写简单的程序,并具备一定的调试和优化能力;情感态度价值观目标包括培养学生的创新意识、团队合作精神和对计算机科学的兴趣。

二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、控制结构以及走迷宫游戏项目的实践。

具体安排如下:1.C语言的基本语法和数据类型:介绍C语言的基本语法规则,包括变量声明、数据类型、运算符等。

2.控制结构:讲解条件语句和循环语句的用法,以及它们的嵌套使用。

3.走迷宫游戏项目:通过项目实践,让学生动手编写C语言程序,解决迷宫问题。

项目包括迷宫的表示、路径的搜索和输出等。

三、教学方法为了激发学生的学习兴趣和主动性,本章节将采用多种教学方法相结合的方式。

具体包括:1.讲授法:讲解C语言的基本语法、数据类型和控制结构。

2.案例分析法:通过分析走迷宫游戏的案例,让学生理解程序的设计和调试过程。

3.实验法:让学生动手编写C语言程序,实践走迷宫游戏项目。

四、教学资源为了支持教学内容和教学方法的实施,本章节将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,用于学生自学和参考。

2.多媒体资料:走迷宫游戏的示例代码和教学视频,用于讲解和演示。

3.实验设备:计算机和编程环境,用于学生动手实践。

五、教学评估本章节的教学评估将采用多元化方式,全面客观地评价学生的学习成果。

评估方式包括:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和理解能力。

2.作业:布置相关的编程作业,要求学生独立完成,评估学生的编程能力和实践能力。

3.考试:进行期中考试和期末考试,测试学生对C语言知识的掌握程度和应用能力。

评估结果将以分数或等级形式呈现,同时提供具体的反馈意见,帮助学生了解自己的优点和不足,进行改进。

c语言迷宫游戏课程设计

c语言迷宫游戏课程设计

c语言迷宫游戏课程设计一、课程目标知识目标:1. 学生能够理解并掌握C语言中的基本语法,如变量声明、数据类型、运算符和流程控制语句。

2. 学生能够运用数组创建和操作迷宫地图,理解二维数组在迷宫游戏中的应用。

3. 学生掌握函数的定义和调用,并能运用函数实现迷宫游戏中的特定功能,如移动、碰撞检测等。

技能目标:1. 学生能够设计并编写简单的C语言程序,创建一个具有基本功能的迷宫游戏。

2. 学生能够通过调试和修改程序,解决迷宫游戏开发过程中遇到的问题。

3. 学生能够运用所学知识,对迷宫游戏进行优化和扩展,提高游戏的趣味性和挑战性。

情感态度价值观目标:1. 学生通过完成迷宫游戏项目,培养对编程和计算机科学的兴趣和热情。

2. 学生在合作开发迷宫游戏的过程中,学会团队协作、沟通与分享,培养解决问题的能力和自信。

3. 学生在探索迷宫游戏的乐趣中,体会编程带来的成就感,增强对学习计算机技术的信心。

课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握C语言编程的基本方法和技巧。

学生特点:本课程针对初中或高中年级的学生,他们对编程有一定的好奇心,但可能缺乏实际操作经验。

教学要求:教师应注重引导学生主动探索,关注学生的个体差异,提供适当的辅导和指导,确保学生在完成课程目标的过程中获得成就感。

同时,将课程目标分解为具体的学习成果,便于后续的教学设计和评估。

二、教学内容1. C语言基础语法复习:变量声明、数据类型、运算符、流程控制(选择、循环)。

- 教材章节:第一章至第三章- 内容安排:两周,4课时2. 二维数组与迷宫地图设计:- 教材章节:第四章 数组- 内容安排:一周,2课时3. 函数的定义与调用:- 教材章节:第六章 函数- 内容安排:两周,4课时4. 迷宫游戏功能实现:- 教材章节:第五章 控制语句与函数- 内容安排:四周,8课时- 列举内容:移动玩家、碰撞检测、路径寻找、胜负判定5. 程序调试与优化:- 教材章节:第九章 程序调试- 内容安排:一周,2课时6. 项目展示与评价:- 内容安排:一周,2课时- 列举内容:学生展示迷宫游戏项目,进行自评、互评和教师评价教学内容注重科学性和系统性,以教材为基础,结合课程目标进行拓展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译一下程序,就能理解这两个函数是做什么的了 gotoxy() 就讲到这里 下面讲第二个函数 声明:void create(int x,int y) void create(int x,int y) //随机生成迷宫 { int c[4][2]={0,1,1,0,0,-1,-1,0}; //四个方向 // 这里的四个方向 乃是 0,1 1,0 0,-1 -1,0 代表着上 下左右 int i,j,t; //将方向打乱 for(i=0;i<4;i++) { j=rand()%4; t=c[0];c[0]=c[j][0];c[j][0]=t; t=c[1];c[1]=c[j][1];c[j][1]=t; } map[x][y]=Road; for(i=0;i<4;i++) if(map[x+2*c[0]][y+2*c[1]]==Wall) // { map[x+c[0]][y+c[1]]=Road; create(x+2*c[0],y+2*c[1]); } } 这个函数中的算法根据源代码作者所说是从网上找的 .然后搜了搜.我去 略长,略长,转到 论坛压力略大略大 还分别有不会离散数学的和使用深度优先遍历..两种版本,最主要的是带 图了,推荐亲自前去观看吧 /view/f22455126edb6f1aff001f13.html ,带 上图理解比较容易..所以想要理解算法部分,还是看连接文章吧
STD_OUTPUT_HANDLE 标准输出的句柄
STD_ERROR_HANDLE 标准
错误的句柄
这么说出来其实也并非很容易理解,我们用一个小程序来举例
未来未来
10 #include <stdio.h> #include <windows.h> int main(void) {
COORD cod; cod.X=5; cod.Y=4; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), cod ); }
未来未来
首先,先挂上代码。然后说部分废话,读代码好处非常之多,提高技术,增加理解力,以及 获得不同思路等。读代码甚至对比写代码来说,学习效率有过之而无不及.文章针对初级又 在初级之上,没有一定的基础看不懂,有一定的基础就可以跟着这篇帖子,做出你自己的 C 语言随机迷宫,这里的做出并不是抄代码,而是变为你真正的知识,在没有参考的时候,也
先来看看 gotoxy() 接受两个参数, 代码如下 void gotoxy(int x,int y) //移动坐标 { COORD coord; coord.X=x; coord.Y=y;
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord ); } 看到这里可能就有很多人蒙了 COORD 是个什么东西? COORD 实际上是一个结构体 包 括结构体成员 SHORT X,SHORT Y; typedef struct COORD { SHORT X; SHORT Y;} COORD, *PCOORD;暂时先不管他是做什么 的,先看看 SetConsoleCursorPosition 这个 API 的声明他接受两个参数,作用是定位光标位 置,需要配合 COORD 使用
} void game() { int x=2,y=1; //玩家当前位置,刚开始在入口处 int c; //用来接收按键 while(1) { gotoxy(2*y-2,x-1); printf("☆"); //画出玩家当前位置 if(map[x][y]==End) //判断是否到达出口 { gotoxy(30,24); printf("到达终点,按任意键结束"); getch(); break; } c=get_key(); if(c==Esc) { gotoxy(0,24); 5
这里为什么要用宏,什么情况下使用宏,可能要问为什么不直接用 12345 来代替。简单的 来说就是提供一个方便,并增加一定的效率。还有重要的一点就是增加代码的可读性。尽量 避免用 01234 这样无意义的数字而使用宏定义能良好的提高开发效率,在小程序中可能不算 什么,但是在大程序可就不一样了,然而宏定义也并非只能定义简单的 1234 。
#define Height 21 //迷宫的高度,必须为奇数 #define Width 21 //迷宫的宽度,必须为奇数
#define Wall 1 //即字面意思 墙 #define Road 0 //即字面意思 路 #define Start 2 //入口 #define End 3 //终点 #define Esc 5 //退出 #define Up 1 //上,下,左,右 #define Down 2 #define Left 3 #define Right 4
BOOL WINAPI SetConsoleCursorPosition( __in HANDLE hConsoleOutput, //句柄 就不介绍了
__in COORD dwCursorPosition // COORD 原来是 SetConsoleCursorPosition 的形参之一);
GetStdHandle 声明如下:
HANDLE WINAPI GetStdHandle( // 获 得 输 入 、 输 出 / 错 误 的 屏 幕 缓 冲 区 的 句 柄 。 __in
DWORD nStdHandle );
而其参数 nStdHandle 的值可以为下面几种类型的一种: STD_INPUT_HANDLE 标准输入
的句柄
迷宫游戏
vc++ 6.0 编译成功 本程序参照网上一个特殊算法随机生成迷宫 该算法优点: 效率高,从入口到出口只有唯一路径,入口出口自己设定 该算法缺点: 宽度高度都必须为奇数,只能生成 n*m 矩阵迷宫 */ #include <stdio.h> #include <conio.h> #include <windows.h> #include <time.h> #define Height 31 //迷宫的高度,必须为奇数 #define Width 25 //迷宫的宽度,必须为奇数 #define Wall 1 #define Road 0 #define Start 2 #define End 3 #define Esc 5 #define Up 1 #define Down 2 #define Left 3 #define Right 4 int map[Height+2][Width+2]; void gotoxy(int x,int y) //移动坐标 { COORD coord; coord.X=x; coord.Y=y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord ); } void hidden()//隐藏光标 { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cci; GetConsoleCursorInfo(hOut,&cci); cci.bVisible=0;//赋 1 为显示,赋 0 为隐藏 SetConsoleCursorInfo(hOut,&cci); } void create(int x,int y) //随机生成迷宫 { int c[4][2]={0,1,1,0,0,-1,-1,0}; //四个方向 int i,j,t;

可以流畅的写出你的代码.
然后我们开始分析代码.. 先看头文件。 #include <stdio.h> //包涵标准输入输出函数 #include <conio.h> //控制台输入输出库,非标准库哦 #include <windows.h> //WINDOWS.H 是主要的头文件,它包含了其他 Windows 头文件,这 些头文件的某些也包含了其他> //包涵时间和日期处理函数
接下来我们看一共有几个函数 void gotoxy(int x,int y) //既字面含义 移动坐标 void create(int x,int y) //字面含义 创建迷宫 void hidden() //隐藏光标(注并非鼠标) int get_key() //得到按键 void paint(int x,int y) //绘制迷宫 void game() //游戏相关操作 先不要管 main 函数里的代码,我们先逐个分析一下函数
create(2*(rand()%(Height/2)+1),2*(rand()%(Width/2)+1)); //从随机一个点开始生成迷宫,该点 行列都为偶数
for(i=0;i<=Height+1;i++) //边界处理 { map[i][0]=Wall; map[i][Width+1]=Wall; } for(j=0;j<=Width+1;j++) //边界处理 { map[0][j]=Wall; map[Height+1][j]=Wall; } map[2][1]=Start; //给定入口 map[Height-1][Width]=End; //给定出口 for(i=1;i<=Height;i++) for(j=1;j<=Width;j++) //画出迷宫 paint(i,j); game(); //开始游戏 getch(); return 0; }
break; } switch(c) {
case Up: //向上走 if(map[x-1][y]!=Wall) { paint(x,y); x--; } break; case Down: //向下走 if(map[x+1][y]!=Wall) { paint(x,y); x++; } break; case Left: //向左走 if(map[x][y-1]!=Wall) { paint(x,y); y--; } break; case Right: //向右走 if(map[x][y+1]!=Wall) { paint(x,y); y++; } break; } } } int main() { int i,j; srand((unsigned)time(NULL)); //初始化随即种子 hidden(); //隐藏光标 for(i=0;i<=Height+1;i++) for(j=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;
相关文档
最新文档