首页 > 其他分享 >C游戏 简单迷宫游戏开发

C游戏 简单迷宫游戏开发

时间:2023-02-14 10:36:34浏览次数:38  
标签:case map 游戏 int 迷宫 char currenty currentx 简单


#include <stdio.h>

#define row 6
#define col 6

void printMap(char map[row][col]) {
for (int i = 0; i < row; i ++) {
for (int j = 0; j < col; j ++) {
printf("%c ",map[i][j]);
}
printf("\n");
}
}

void swith(char map[row][col], int oldX, int oldY, int newX, int newY){
char temp = map[oldX][oldY];
map[oldX][oldY] = map[newX][newY];
map[newX][newY] = temp;
}

void movePerson(char m , char n){
char temp = m;
m = n;
n = temp;
}

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

// 1.定义变量:地图,方向,坐标,小人位置
char map[row][col] ={
{'#','#','#','#','#','#'},
{'#','0','#','#',' ',' '},
{'#',' ','#','#',' ','#'},
{'#',' ',' ','#',' ','#'},
{'#','#',' ',' ',' ','#'},
{'#','#','#','#','#','#'}
};
// 路
int road = ' ';
// 方向
char direct;
// 小人当前的位置
int currentx = 1;
int currenty = 1;

// 2.打印地图,
printMap(map);

// 3.告诉用户怎么玩
printf("游戏玩法,w 向上 s 向左 x 向下 f向右,q 退出\n");
char ch ;
while(1){
// 4.接受用户的方向
scanf("%c",&direct);
scanf("%c",&ch);//去除\n
// 5.判断输入的方向
switch (direct) {
case 'W':
case 'w':
//6.判断小人是否移动,就是判断小人的位置是不是' '
if (map[currentx -1][currenty] == road) {
//7.开始交换小人与路的位置
//switch(map[currentx][currenty],map[currentx-1][currenty]);
swith(map, currentx, currenty, currentx-1, currenty);
currentx --;
}

break;
case 'X':
case 'x':
//6.判断小人是否移动,就是判断小人的位置是不是' '
if (map[currentx + 1][currenty] == road) {
//7.开始交换小人与路的位置
//movePerson(map[currentx][currenty],map[currentx+1][currenty]);
swith(map, currentx, currenty, currentx+1, currenty);

currentx ++;
}
break;
case 'S':
case 's':
//6.判断小人是否移动,就是判断小人的位置是不是' '
if (map[currentx][currenty-1] == road) {
//7.开始交换小人与路的位置
//movePerson(map[currentx][currenty],map[currentx][currenty-1]);
swith(map, currentx, currenty, currentx, currenty-1);
currenty --;
}

break;
case 'F':
case 'f':
//6.判断小人是否移动,就是判断小人的位置是不是' '
if (map[currentx][currenty+1] == road) {
//7.开始交换小人与路的位置
//movePerson(map[currentx][currenty],map[currentx][currenty+1]);
swith(map, currentx, currenty, currentx, currenty+1);
currenty ++;
}

break;
case 'q':
case 'Q':
return 0;
break;

default:
break;

}
// 6.打印完成的地图
printMap(map);

// 7.判断是否出来了
if (currenty == 5) {
printf("you win");
break;
}
}

printf("\n");
return 0;
}

标签:case,map,游戏,int,迷宫,char,currenty,currentx,简单
From: https://blog.51cto.com/u_12516227/6055868

相关文章

  • Android 实现简单的画画版一
    原理:1)首先创建一个创建一张空白图片2)把空白图片设置到imageview控件3)给imageview设置监听,并返回值true;代码如下:/***@描述画板*@项目名称App_Bas......
  • java 简单计算器
    packagemdthob;//packagecom.cal;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Stack;importjavax.......
  • 游戏包体的缩减
    背景随着业务的迭代,我们的游戏包体也会随之变得臃肿庞大。包体的大小往往影响着我们的游戏下载的转化率,特别是在全球化的大环境下,新兴市场中大约70%的用户会在下载前考......
  • 实现自有App上架小游戏其实并非难事
    近年来小程序游戏迎来了爆发式增长。微信、支付宝、抖音等各大平台小程序游戏愈加丰富,你是否也让自己的App也拥有运行丰富的小游戏的能力?今天就来带大家看看如何实现。我......
  • day08-SpringMVC底层机制简单实现-04
    SpringMVC底层机制简单实现-04https://github.com/liyuelian/springmvc-demo.git8.任务7-完成简单视图解析功能说明:通过目标方法返回的String,转发或重定向到指定页面......
  • 利用反射和代理简单模拟mybatis实现简单的CRUD
    利用反射接口做java数据库操作今天突发奇想,好像一些基本的CRUD操作路数都是一样的,又想到mybatis中的操作,便想着简单的模拟一下。随便写写,就当练习反射了。Dao接口类:这......
  • js 0.1+0.2 !== 0.3 简单解决方案
    exportconstround=number=>{constgetFloat=number.toString().split(".");if(getFloat.length===1){returnnumber;}constfloatLength=getFloa......
  • 有效的字母异位词(力扣简单哈希表题)
    题目:给定两个字符串*s*和*t*,编写一个函数来判断*t*是否是*s*的字母异位词。注意:若*s*和*t*中每个字符出现的次数都相同,则称*s*和*t*互为字母异位词。思......
  • 密码学简单数论笔记(2):最大公约数、扩展欧几里得算法和最小公倍数
      参考资料:1.https://www.bilibili.com/video/BV1x3411s7Sy/?spm_id_from=333.788&vd_source=e66dd25b0246f28e772d75f11c80f03c2.http://t.csdn.cn/diQ272.余红兵:《......
  • 简单解释 什么是Redux
    我已经有一段时间没有写任何东西了。我收到了很多关于在Redux上创建教程的消息!所以就在这里。我花了很多天时间使本教程更加简单易懂。现在让我们开始吧^_^在进入什么是R......