老鸟 请关闭,以免发现不良反应。
迷宫的代码。虽然 很简单,但是自己敲出来的。还是挺开心的
- //
- // main.c
- // 09作业
- //
- // Created by Chen on 16/1/16.
- // Copyright © 2016年 Chen. All rights reserved.
- //
- #include <stdio.h>
- #include <stdlib.h>
- #define COL 6
- #define ROW 8
- void print_Map(char arr[COL][ROW],int col,int row){
-
- for (int i=0; i<col; i++) {
- for (int j=0; j<row; j++) {
- printf("%c",arr[i][j]);
- }
- printf("\n");
- }
- }
- //小人的移动
- void personMove(char map[COL][ROW],int oldX,int oldY,int newX,int newY){
- char temp;
- temp = map[oldX][oldY];
- map[oldX][oldY]= map[newX][newY];
- map[newX][newY]= temp;
- }
- int main(int argc, const char * argv[]) {
-
- //定义变量
- int currentX=1;//当前小人的下标X位置
- int currentY=1;//当前小偷的下标Y位置
- char way=' ';//路
- //接受输入的方向
- char ch;
- //定义地图
- char map[COL][ROW]={
- {'#','#','#','#','#','#','#','#'},
- {'#','O','#','#','#','#','#','#'},
- {'#',' ',' ','#',' ',' ',' ','#'},
- {'#','#',' ','#',' ','#',' ','#'},
- {'#','#',' ',' ',' ','#',' ',' '},
- {'#','#','#','#','#','#','#','#'}
- };
-
- //打印地图
- print_Map(map, COL, ROW);
- printf("请移动小人,w.上 s.下 a.左 d.右 q.退出\n");
-
-
- while (1) {
- //将控制台输出的信息清空
- //system("clear");
- // 接受输入的方向
- rewind(stdin);//清理输入缓冲区
- scanf("%c",&ch);
- //getchar();(这个地方发现用这个函数没有scanf 上边的那个函数好)
- //判断小人的移动方向
- switch (ch) {
- case 'W':
- case 'w':
- //小人向上移动;
- if (map[currentX-1][currentY]== way) {
- personMove(map,currentX,currentY,currentX-1,currentY);
- currentX--;
- }
- break;
- case 'S':
- case 's':
- //小人向下移动;
- if (map[currentX+1][currentY]== way) {
- personMove(map,currentX,currentY,currentX+1,currentY);
- currentX++;
- }
- break;
- case 'A':
- case 'a':
- //小人向左移动;
- if (map[currentX][currentY-1]== way) {
- personMove(map,currentX,currentY,currentX,currentY-1);
- currentY--;
- }
- break;
- case 'D':
- case 'd':
- //小人向右移动;
- if (map[currentX][currentY+1]== way) {
- personMove(map,currentX,currentY,currentX,currentY+1);
- currentY++;
- }
- break;
- case 'Q':
- case 'q':
- printf("你智商真低\n");
- //游戏退出;
- return 0;
- break;
- }
-
- //重绘地图
- print_Map(map, COL, ROW);
-
- //走出迷宫
- if (currentY==7) {
- printf("恭喜你出来了\n");
- break;
- }
- }
- return 0;
- }
复制代码
|
|