C语言实现的迷宫游戏

乌云老师的话:学习检测键盘信息之后,余文彪同学当堂就作出了通过键盘在屏幕上下左右移动一个星星的程序。

老师给几位同学大略说了一下迷宫游戏的实现思路,彭搏同学下次课就把做好的迷宫游戏拿出来了,wonderful!

思路分明,代码简练,注释清晰,只得大家学习。

同时他还实现了一个简单推箱子游戏,可谓程序快手了。

#include"stdio.h"
#include"bios.h"
#define LEFT 75
#define RIGHT 77
#define UPPER 72
#define DOWN 80
#define ESC 27
union keyboard  /*定义读取键盘码的共用体类型*/
{
unsigned int iKeyInfo;
char chKeyBit[2];
};
int fnGetKey(void)  /*定义读取键盘码的函数*/
{
union keyboard uniKey1; /*定义读取键盘码的共用体变量*/
while(bioskey(1)==0); /*检测用户是否按键*/
uniKey1.iKeyInfo=bioskey(0);  /*读取按键信息*/
return(uniKey1.chKeyBit[0]==0?uniKey1.chKeyBit[1]:uniKey1.chKeyBit[0]); /*返回ASCII码或扩充码*/
}
void main()
{
int iKey,x=11,y=6;  /*x,y为人物移动后坐标*/
int chMap[10][10]={ /*用二维数组定义地图*/
                  {0,0,0,0,0,0,0,0,0,0}, /*0表示墙1表示路2表示出口*/
                  {0,1,0,0,1,1,1,1,1,0},
                  {0,1,1,0,1,0,1,0,1,0},
                  {0,0,1,0,1,0,1,0,1,0},
                  {0,0,1,1,1,0,0,0,1,0},
                  {0,0,0,0,0,0,1,1,1,0},
                  {0,1,0,0,1,1,1,0,0,0},
                  {0,1,1,1,1,0,0,0,2,0},
                  {0,1,0,0,1,1,1,1,1,0},
                  {0,0,0,0,0,0,0,0,0,0},
                  };
int i,j; /*反复进行求移动的坐标运算*/
  while(1)
  {
  for(i=0;i<10;i++) /*输出新地图(刷新地图)*/
  {
   gotoxy(10,5+i);
   for(j=0;j<10;j++)
    {
     if(chMap[i][j]==0)
        printf("#");
     if(chMap[i][j]==1)
        printf(" ");
     if(chMap[i][j]==2)
        printf("E");
    }

  }
  if(chMap[y-5][x-10]==2) /*如果如果人的坐标和目标坐标重合输出"YOU WIN!"退出*/
  {
    clrscr();
    printf("You Win!");
    break;
  } /*在起始(或移动后)的坐标输出人*/
  gotoxy(x,y);
  printf("*\b");
  iKey=fnGetKey(); /*按读取的按键信息改变坐标如果改变的坐标和墙(0)重合则不改变*/
  if(iKey==LEFT&&chMap[y-5][x-1-10]!=0)
     x--;
  if(iKey==RIGHT&&chMap[y-5][x+1-10]!=0)
     x++;
  if(iKey==UPPER&&chMap[y-1-5][x-10]!=0)
     y--;
  if(iKey==DOWN&&chMap[y+1-5][x-10]!=0)
     y++;
  if(iKey==ESC) /*输入ESC退出并输出"YOU LOST"*/
  {
    clrscr();
    printf("You Lost");
    break;
  }
  clrscr();
  }
getch();
}

时间: 2024-08-03 00:06:12

C语言实现的迷宫游戏的相关文章

怎样用C语言编写一个迷宫游戏,能否再进一步使迷宫可以自主变换

问题描述 怎样用C语言编写一个迷宫游戏,能否再进一步使迷宫可以自主变换 就是用c语言实现一个迷宫游戏,如果可以的话能否在加一个条件就是:比如每走10步迷宫就会发生一定的变化,当然一定要能走出去,如果走不出去也就没意义了 解决方案 动态变化的话,想象是蛮复杂的,得用点动态规划什么的算法吧,没有涉及过,期待大神

基于C语言实现的迷宫游戏代码_C 语言

本文实例讲述了基于C语言实现迷宫游戏的方法,代码备有较为详尽的注释,便于读者理解.通过该游戏代码可以很好的复习C语言的递归算法与流程控制等知识,相信对于学习游戏开发的朋友有一定的借鉴价值. 完整的实例代码如下: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> #define N 20/*迷宫的大小,可改

基于C语言实现简单的走迷宫游戏_C 语言

本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #include <cstdio> #include <deque> #include <windows.h> using namespace std; class node { public: int x,y; int lastOpt; }; deque<node> sta

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

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

用webgl打造自己的3D迷宫游戏

用webgl打造自己的3D迷宫游戏 2016/09/19 · JavaScript · WebGL 原文出处: AlloyTeam    背景:前段时间自己居然迷路了,有感而发就想到写一个可以让人迷路的小游戏,可以消(bao)遣(fu)时(she)间(hui) 没有使用threejs,就连glMatrix也没有用,纯原生webgl干,写起来还是挺累的,不过代码结构还是挺清晰的,注释也挺全的,点开全文开始迷宫之旅~ 毕竟要赚一点PV,所以开头没有贴地址,现在贴地址: github:https://

java实现单词搜索迷宫游戏_java

本文实例讲述了java实现单词搜索迷宫游戏.分享给大家供大家参考.具体分析如下: 我们在杂志上,经常能够看到找单词的小游戏,在一个二维表格中,存在各种字母,我们可以从八个方向找单词.这个用计算机处理十分方便,但是,算法的好坏很重要,因为要是用蛮力算法实现,那么耗费的时间是不可想象的. 这是数据结构与问题求解Java语言描述一书中给的实现思路 完整代码如下,注释写的很明白了 import java.io.BufferedReader; import java.io.FileReader; impo

高级:利用Flash制作精彩的迷宫游戏

高级 网页教学网:在以前的教程中我们讲解了利用Flash制作游戏的一些方法,比如碰撞的检测等,在这个教程中我们利用以前学的知识创建一个不错的迷宫游戏!该教程主要是Flash利用材质和遮照创建真实的小球动画的延续,利用创建好的小球滚动动画制作迷宫游戏. 在学习这个教程前请大家查看 利用材质和遮照创建真实的小球动画 教程.教程中所使用的背景请看:利用Photoshop Action打造精美的宇宙星空特效 在这篇教程中没有新的知识,就是利用一个舞台(地图),然后还有一个运动的小球实现的一个小的Flas

c语言有关于纸牌游戏的字符串识别问题

问题描述 c语言有关于纸牌游戏的字符串识别问题 有关字符串识别的问题,实在不明白应该是什么思路,求思路,最好有代马,跪谢!!! 解决方案 首先把字符串放到一个数组里面,字母全部用数字代替.遍历数组,全部异或,得到数值再挨个与数组中的数字对比,如果有相等,就是二对. 解决方案二: 加个变量记着...

C语言吃金豆游戏的源代码

问题描述 C语言吃金豆游戏的源代码 我那个吃金豆游戏总是运行不了,请问大神有木有吃金豆的c语言程序源代码 解决方案 吃金豆游戏的源代码捡金豆游戏源代码 解决方案二: 你要什么平台的这个源码 解决方案三: 天知道你说的是什么代码,怎么运行不了,运行不了是程序的问题还是你的问题.