黑马程序员--迷宫小游戏
来源:互联网 发布:纳粹党卫军军服淘宝 编辑:程序博客网 时间:2024/05/16 10:53
------- android培训、java培训、期待与您交流! ----------
在黑马ios的基础课视频上,有个迷宫小游戏,感觉挺有趣,然后我就在此基础上,稍稍改了点,记下,留着可以和别人共同探讨。
首先,在老师讲说要做迷宫的时候,我觉得很难啊,自己空想,也不知道解决办法,感觉会很复杂,于是我迅速的点开视频。再听完老师讲过以后,就不得不感慨,原来游戏可以这么简单啊。
首先老师是以#做墙的,以o为小人的,地图如此
char map[kRow][kCol]={ '#','#','#','#','#','#', '#','o','#','#',' ',' ', '#',' ','#','#',' ','#', '#',' ','#','#',' ','#', '#',' ',' ',' ',' ','#', '#','#','#','#','#','#', };通过不断打印地图,实现小人动的感觉。在老师的视频里,一开始我一直不理解,为什么要重复打印地图,(主要是我思维定势了,因为平时玩的游戏,都是地图不动,小人动。),直到,在看推箱子游戏,老师说了刷屏,我恍然大悟,就是应该不断的打印地图,在我们玩游戏的时候,即便我们只感觉地图没动,是里面的小人动了,但是,地图和人都被快速的刷新了一遍。
呃,废话有点多,上段代码,感觉实在些。
//// main.c// maze//// Created by cqycomputer on 15/6/21.// Copyright (c) 2015年 cqycomputer. All rights reserved.//#include <stdio.h>#define kRow 6#define kCol 6#define STREET ' '#define PERSON '@'void printMap(char map[kRow][kCol]){ for(int i=0;i<kRow;i++){ for(int j=0;j<kCol;j++){ printf("%c",map[i][j]); } printf("\n"); }}int moveByCharAndXY(char dir,int *curX,int *curY,char map[kRow][kCol]){ // int newX = *curX; int newY = *curY; switch(dir){ case 'A': case 'a': newY--; break; case 'D': case 'd': newY++; break; case 'W': case 'w': newX--; break; case 'S': case 's': newX++; break; case 'Q': case 'q': printf("强制退出吗?y/n\n"); char ch = getchar(); if (ch == 'y') { return -1; } else { break; } default: printf("输入有误,请输入A a,D d,W w,S s,Q q\n"); break; } //printf("%c",map[newX][newY]); if(map[newX][newY] == ' '){ map[newX][newY] = '@'; map[*curX][*curY] = ' '; *curX = newX; *curY = newY; } printMap(map); return 0; }int main(int argc, const char * argv[]) { // insert code here... char map[kRow][kCol]={ '#','#','#','#','#','#', '#','@','#','#',' ',' ', '#',' ','#','#',' ','#', '#',' ','#','#',' ','#', '#',' ',' ',' ',' ','#', '#','#','#','#','#','#', }; // printf("Hello, World!\n"); int curX=1; int curY=1; printMap(map); int flag = 0; while(curY!=5 && flag == 0){ printf("请输入方向,A左,D右,W上,S下\n"); char dir = getchar(); getchar(); flag = moveByCharAndXY(dir,&curX,&curY,map); //printf("curX=%d,curY=%d",curX,curY); } return 0;}
感觉虽然程序看起来简单,但是自己编写的时候,还是错误一大堆。然后花了好一会儿调代码,能运行,但是还是有点差强人意。希望飞过的大侠们能给点意见。
------- android培训、java培训、期待与您交流! ----------
详情请查看:
0 0
- 黑马程序员--迷宫小游戏
- 黑马程序员----C 语言学习笔记之二维数组的存储和应用(迷宫小游戏)
- 黑马程序员—小游戏(caps)
- 迷宫小游戏
- 黑马程序员----经典问题(走迷宫)
- js迷宫小游戏
- 迷宫小游戏实现
- 数字迷宫小游戏源代码
- 数字迷宫小游戏
- 黑马程序员----小游戏代码之“骑士飞行棋”
- 黑马程序员_用C写的小游戏
- 黑马程序员_关于2048小游戏的一些经验总结
- 黑马程序员---Java编写猜数字小游戏程序
- 黑马程序员---Java基础---注册登录猜字小游戏
- 黑马程序员——C基础之迷宫游戏
- 走出迷宫小游戏v1.5
- 走出迷宫小游戏的实现
- 【黑马程序员】一个简单的小游戏——骑士飞行棋
- ubuntu 下 通过 命令行安装 jdk
- 引用外部程序集
- 数据结构
- 详解C/C++中的typedef和#define
- 从AFDS 2012看异构计算 无处不在的应用zz
- 黑马程序员--迷宫小游戏
- Objective-C Autorelease Pool 的实现原理
- Mybatis深入之获取数据库连接
- Android+OpenCV实现轨迹识别
- Email5.0 代码结构
- 多文件编译
- Kafka剖析(一):Kafka背景及架构介绍
- hdoj 1058 Humble Numbers 【好题】
- 黑马程序员——Java中的枚举