#include <stdio.h>

#define ROW 6

#define COL 6

// 封装打印地图的函数

void printMap(char map[][COL]) {

for (int i =
0; i < ROW; i++) {

for (int j =
0; j < COL; j++) {

printf("%c", map[i][j]);

}

printf("\n");

}

}

int isSuccess(int x,
int y) {

return x ==
0 || x == ROW -
1 || y == 0 || y ==
COL - 1;

}

char inputChar() {

char input;

while (1) {

printf("> ");

input = getchar();

while (getchar() !=
'\n') ;

if (input ==
'w' || input == 's' || input ==
'a' || input == 'd') {

break;

}

}

return input;

}

int main(int argc,
const char * argv[]) {

char map[ROW][COL]={

{'#','#','#','#','#','#'},

{'#','O','#','#','
',' '},

{'#',' ','#','#','
','#'},

{'#',' ',' ','#','
','#'},

{'#','#',' ',' ','
','#'},

{'#','#','#','#','#','#'}

};

char input;

// 表示人的位置

int x =
1;

int y =
1;

while (1) {

// 打印

printMap(map);

// 胜利的代码

if (isSuccess(x, y))
break;

// 提示用户的输入

printf("请输入 w(上) s(下)
a(左) d(右)\n");

// 输入数据,
判断正确

input = inputChar();

// 更新地图`

switch (input) {

case
'W':

case
'w':

//
判断下一个位置是否可以走, 如果可以走就交换地图中的数据

//
如果不能走就不变

//
即 判断 (x - 1, y)
是不是空格, 如果是空格就可以走

if (map[x -
1][y] == ' ') {

//
交换

int temp = map[x -
1][y];

map[x - 1][y] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

x--;

}

break;

case
's':

if (map[x +
1][y] == ' ') {

//
交换

int temp = map[x +
1][y];

map[x + 1][y] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

x++;

}

break;

case
'a':

if (map[x][y -
1] == ' ') {

//
交换

int temp = map[x][y -
1];

map[x][y - 1] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

y--;

}

break;

case
'd':

if (map[x][y +
1] == ' ') {

//
交换

int temp = map[x][y +
1];

map[x][y + 1] = map[x][y];

map[x][y] = temp;

//
交换后更新 x y

y++;

}

break;

}

// 清屏

system("clear");

}

printf("恭喜你重获自由...\n");

return
0;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

利用c语言做简单的迷宫小游戏的更多相关文章

  1. Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util

    Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util,导入包的方法为,import java.util.*: 完整的实例代码: /* 导入基础工具包 */ import java.uti ...

  2. 我用数据结构花了一夜给女朋友写了个h5走迷宫小游戏

    目录 起因 分析 画线(棋盘) 画迷宫 方块移动 结语 @(文章目录) 先看效果图(在线电脑尝试地址http://biggsai.com/maze.html): 起因 又到深夜了,我按照以往在公众号写 ...

  3. c++迷宫小游戏

    c++迷宫小游戏 一.总结 一句话总结: 显示:根据map数组输出图像 走动:修改map数组的值,每走一步重新刷新一下图像就好 1.如果走函数用z(),出现输入s会向下走多步的情况,原因是什么? 向下 ...

  4. js实现简单的俄罗斯方块小游戏

    js实现简单的俄罗斯方块小游戏 开始 1. 创建一个宽为 200px,高为 360px 的背景容器 <!DOCTYPE html> <html lang="en" ...

  5. 用Java语言编写的迷宫小游戏软件

    可查看本项目的github 源码链接,撒娇打滚求 star 哦~~ღ( ´・ᴗ・ ` )比心 本仓库代码是经过 eclipse 编译运行过的,一般情况下将本仓库代码下载下来之后,使用 eclipse ...

  6. 每个人都可以用C语言写的推箱子小游戏!今天你就可以写出属于自己项目~

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  7. C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  8. 用WPF做了几个小游戏

    最近看书看累了,参考别人的代码(其实差不多就是把代码重新打了一遍o(╯□╰)o),用wpf做了个<2048>小游戏,顺便在<Git教程>学习下git,也顺便把在<写让别人 ...

  9. 使用 App Inventor 2 开发简单的安卓小游戏

    App Inventor2 是一个简单的在线开发安卓应用程序的工具,通过此工具,我们可以很轻松地开发安卓应用. 这里介绍的是笔者自己写的一个小游戏,游戏中玩家通过左右倾斜手机控制“水库”的左右移动,收 ...

随机推荐

  1. 你认为A和B所在方格颜色相同吗?

    [你认为A和B所在方格颜色相同吗? ]据说全世界只有0.003%的人和photoshop能看出它们的颜色是相同的. 我属于那 99.9997% 的人...因为我不是神...

  2. Oracle11g客户端for centos 5.5安装文档

    前提:安装centos的时候,最好把系统的所有的安装包都安装上.以下命令需手动输入,不要复制粘贴. 1.以root用户登录centos5.5的操作系统:创建oracle用户组和用户. groupadd ...

  3. Unity3d 模拟视锥的实现

    一个独立游戏 Teleglitch 使用了一种欺骗手法来模拟视锥,效果如下: 博主看了看了看提示 Actually, the line of sight shadows aren’t done wit ...

  4. FZU 2212 Super Mobile Charger 第六届福建省赛

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=2212 题目大意: 现在有n个手机,一个电量为m%(百分之m)的万能充电宝 然后输入n个手机的现有电量(百分之a ...

  5. Bzoj 3450: Tyvj1952 Easy 期望/概率,动态规划

    3450: Tyvj1952 Easy Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 431  Solved: 325[Submit][Status] ...

  6. cpp

  7. ORA-01502: 索引或这类索引的分区处于不可用状态

    ORA-01502: 索引或这类索引的分区处于不可用状态 原因: 出现这个问题,可能有人move过表,或者disable 过索引.1. alter table xxxxxx move tablespa ...

  8. Maven浅析-3 Ant Vs Maven

    1.什么是Ant? Ant起源是为了取代构建工具Make.它可以跨系统,建立在Java和XML的基础上,而且非常程式化. Ant更像一个脚本工具,我们必须在Ant内显示地声明做任何事情.在<ta ...

  9. CAS协议 - CAS URIs

    http://desert3.iteye.com/blog/1703449 2.CAS URIs:  CAS是一个基于HTTP的协议,这就要求其每一个组成部分可以通过特定的URIs访问到.所有相关的U ...

  10. [C#] c# 验证手机号码 最新的17手机号

    /// <summary> /// 校验手机号码是否符合标准. /// </summary> /// <param name="mobile"> ...