利用c语言做简单的迷宫小游戏
#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语言做简单的迷宫小游戏的更多相关文章
- Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util
Java用户输入数值,做简单的猜数字游戏,导入基础的工具包util,导入包的方法为,import java.util.*: 完整的实例代码: /* 导入基础工具包 */ import java.uti ...
- 我用数据结构花了一夜给女朋友写了个h5走迷宫小游戏
目录 起因 分析 画线(棋盘) 画迷宫 方块移动 结语 @(文章目录) 先看效果图(在线电脑尝试地址http://biggsai.com/maze.html): 起因 又到深夜了,我按照以往在公众号写 ...
- c++迷宫小游戏
c++迷宫小游戏 一.总结 一句话总结: 显示:根据map数组输出图像 走动:修改map数组的值,每走一步重新刷新一下图像就好 1.如果走函数用z(),出现输入s会向下走多步的情况,原因是什么? 向下 ...
- js实现简单的俄罗斯方块小游戏
js实现简单的俄罗斯方块小游戏 开始 1. 创建一个宽为 200px,高为 360px 的背景容器 <!DOCTYPE html> <html lang="en" ...
- 用Java语言编写的迷宫小游戏软件
可查看本项目的github 源码链接,撒娇打滚求 star 哦~~ღ( ´・ᴗ・ ` )比心 本仓库代码是经过 eclipse 编译运行过的,一般情况下将本仓库代码下载下来之后,使用 eclipse ...
- 每个人都可以用C语言写的推箱子小游戏!今天你就可以写出属于自己项目~
C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...
- C语言-纸牌计算24点小游戏
C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...
- 用WPF做了几个小游戏
最近看书看累了,参考别人的代码(其实差不多就是把代码重新打了一遍o(╯□╰)o),用wpf做了个<2048>小游戏,顺便在<Git教程>学习下git,也顺便把在<写让别人 ...
- 使用 App Inventor 2 开发简单的安卓小游戏
App Inventor2 是一个简单的在线开发安卓应用程序的工具,通过此工具,我们可以很轻松地开发安卓应用. 这里介绍的是笔者自己写的一个小游戏,游戏中玩家通过左右倾斜手机控制“水库”的左右移动,收 ...
随机推荐
- 获得WCF Client端的本地端口 z
当WCF调用远程服务时,显示该调用的网速或流量.其中比较关键的一步就是需要获得WCF Client端的本地端口,原来以为是个简单的事情,结果查了1个多小时谷歌,硬是没找到好的法子,只有自己动手了. ...
- ARM学习笔记3——数据处理指令
一.数据处理指令概述 1.概念 数据处理指令是指对存放在寄存器中的数据进行处理的指令.主要包括算术指令.逻辑指令.比较与测试指令以及乘法指令 如果在数据处理指令前使用S前缀,指令的执行结果将会影响CP ...
- 好用的ajax后台框架
dwz 简单实用的国产jquery Ui框架 http://www.j-ui.com/#_blank
- Hadoop之Pig安装
Pig可以看做是Hadoop的客户端软件,使用Pig Latin语言可以实现排序.过滤.求和.分组等操作. Pig的安装步骤: 一.去Pig的官方网站下载.http://pig.apache.org/ ...
- [zz] makefile中=和:=的区别
转载自:http://www.cnblogs.com/wanqieddy/archive/2011/09/21/2184257.html 在Makefile中我们经常看到 = := ?= +=这几个赋 ...
- 前端自动生成/加载CSS
前言: 1.我很懒! 2.写样式时,很多时候需要单独设置长度.宽度.内间距.外间距等.于是,就会有很多CSS代码会出现很多类似以下的代码: .w20: { width: 20px; } .mt10: ...
- linux文件权限详解
一.文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一 ...
- MachineKey
我是在收到用户发来的这个错误信息的截图后才认识到什么是MachineKey的. 有关MachineKey的概念.MachineKey的生成以及web.config文件里的配置,网上一搜一大堆,为了方便 ...
- Ubuntu14.04搭建cocos2dx2.2.5开发环境(超级具体)
一 下载解压 官方下载地址:http://www.cocos2d-x.org/download 下载下来之后解压完毕之后会得到一个文件夹cocos2d-x-2.2.5 二 编译 1 安装依赖 cd到c ...
- UVM:8.2.4 factory 机制的调试
1.UVM提供了print_override_info 帮助debug.以上节new_monitor 为例: 2.调用print_override_info : 结果: 实际调用debug_creat ...