精华内容
下载资源
问答
  • C语言走迷宫

    2019-02-26 09:14:26
    运行没有问题,能用 可以显示的路径,自己输入50以下的二维路径就可以生成一个,然后使用栈算法,最终显示出的路径标记 用井#号表示
  • C语言走迷宫源码.txt

    2021-04-14 22:23:17
    C语言走迷宫源码
  • c语言走迷宫

    2013-07-01 12:42:00
    通过栈来实现迷宫并显示迷宫路径,程序有点复杂
  • C语言走迷宫源代码#include #include #include int main(){char a[50][50]={"######","#O # ","# ## #","# # #","## #","######",};int i,x,y,p,q;char ch;x=1; y=1; p=1; q=5;for(i=0;i<=5;i++)puts(a[i]);while...

    C语言走迷宫源代码

    #include

    #include

    #include

    int main()

    {

    char a[50][50]={"######",

    "#O # ",

    "# ## #",

    "# # #",

    "## #",

    "######",

    };

    int i,x,y,p,q;

    char ch;

    x=1; y=1; p=1; q=5;

    for(i=0;i<=5;i++)

    puts(a[i]);

    while(x!=p || y!=q)

    {

    ch=getch();

    if(ch=='s')

    {

    if(a[x+1][y]!='#')

    {

    a[x][y]=' ';

    x++;

    a[x][y]='O';

    }

    }

    if(ch=='w')

    {

    if(a[x-1][y]!='#')

    {

    a[x][y]=' ';

    x--;

    a[x][y]='O';

    }

    }

    if(ch=='a')

    {

    if(a[x][y-1]!='#')

    {

    a[x][y]=' ';

    y--;

    a[x][y]='O';

    }

    }

    if(ch=='d')

    {

    if(a[x][y+1]!='#')

    {

    a[x][y]=' ';

    y++;

    a[x][y]='O';

    }

    }

    system("cls");

    for(i=0;i<=5;i++)

    puts(a[i]);

    }

    system("cls");

    printf("You win!\n");

    Sleep(5000);

    return 0;

    }

    展开全文
  • 自己编程的c语言走迷宫程序。迷宫为矩形,每一格上有数字1或2或3或4,踩到1则向上走一格,踩到2则向下走一格,踩到3则向左走一格,踩到4则向右走一格。用户在第一行输入迷宫的行数、列数、走迷宫者的初始位置,在第...
  • C语言走迷宫.cpp

    2019-12-25 08:38:33
    C语言写的走迷宫小游戏,适合新人
  • c语言走迷宫源文件

    2019-04-20 16:36:28
    一个非常简单的走迷宫文件,适合新手学习使用,大佬莫要吐槽,谢谢
  • C语言走迷宫源代码

    万次阅读 多人点赞 2014-03-05 11:49:06
    C语言走迷宫源代码 #include #include #include int main() {  char a[50][50]={"######",  "#O # ",  "# ## #",  "# # #",  "## #",  

    C语言走迷宫源代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    
    int main()
    {
      char a[50][50]={"######",
                      "#O #  ",
                      "# ## #",
                      "#  # #",
                      "##   #",
                      "######",
                     };
      int i,x,y,p,q;
      char ch;
    
      x=1; y=1; p=1; q=5;
      for(i=0;i<=5;i++)
         puts(a[i]);
      while(x!=p || y!=q)
      {
          ch=getch();
        if(ch=='s')
        {
                if(a[x+1][y]!='#')
            {
                      a[x][y]=' ';
                x++;
                a[x][y]='O';
            }
        }
        
        if(ch=='w')
        {
                if(a[x-1][y]!='#')
            {
                      a[x][y]=' ';
                x--;
                a[x][y]='O';
            }
        }
        
        if(ch=='a')
        {
                if(a[x][y-1]!='#')
            {
                      a[x][y]=' ';
                y--;
                a[x][y]='O';
            }
        }
        
        if(ch=='d')
        {
                if(a[x][y+1]!='#')
            {
                      a[x][y]=' ';
                y++;
                a[x][y]='O';
            }
        }
        system("cls");
        for(i=0;i<=5;i++)
            puts(a[i]);
      }
      system("cls");
      printf("You win!\n");
      Sleep(5000);
      return 0;
    }

    展开全文
  • C语言走迷宫小游戏

    千次阅读 2021-02-23 08:03:25
    你可以尝试自己更改字符 E 是迷宫的空格 T 是角色 但是这个地图做的简单 char map[13][12] = { E,W,E,W,W,W,W,W,E,W,E,W,//1 E,W,E,W,E,E,W,E,E,W,E,W,//2 E,W,E,E,E,W,W,E,W,E,E,W,//3 E,W,W,E,E,E,W,E,E,E,W,...

    一天下午,觉得学了这么久编程自己也得做点什么玩
    一开始,我想做这个小游戏,但是考虑了很久的逻辑,终于想出来了哈

    #include<stdio.h>
    #include<conio.h>
    #include<Windows.h>
    #define W 'O'
    #define E ' '
    #define T 'N'
    char Tran(char DATA) {
    	char New_DATA=DATA;
    	if (DATA < 97) {
    		New_DATA = New_DATA + 32;
    	}
    	return New_DATA;
    }
    int main() {
    	char map[13][12] =
    	{
    	E,W,E,W,W,W,W,W,E,W,E,W,//1
    	E,W,E,W,E,E,W,E,E,W,E,W,//2
    	E,W,E,E,E,W,W,E,W,E,E,W,//3
    	E,W,W,E,E,E,W,E,E,E,W,W,//4
    	E,W,E,E,W,E,E,E,W,W,W,W,//5
    	E,W,E,E,W,E,W,E,W,W,E,W,//6
    	E,W,E,W,E,E,W,W,W,E,E,W,//7
    	E,W,E,E,W,E,W,E,W,W,W,W,//8
    	E,W,E,W,W,E,W,E,W,W,W,W,//9
    	E,W,E,W,E,W,E,W,E,W,E,W,//10
    	E,W,E,E,W,E,E,E,W,W,E,W,//11
    	E,W,E,E,W,E,W,W,E,W,E,W,//12
    	E,W,T,W,W,W,W,W,W,W,W,W//13
    	};
    	int _X = 12;
    	int _Y = 2;
    	char c;
    	int Step=0;
    	while (1) {
    		printf("\n");
    		for (int i = 0; i < sizeof(map)/12; i++) {
    			for (int j = 0; j < 12; j++) {
    				printf("%c", map[i][j]);
    			}
    			printf("\n");
    		}
    		if (map[0][2] == T || map[0][8]==T || map[0][10]==T) {
    			MessageBox(NULL, L"你赢了", L"标题", MB_OK | MB_ICONINFORMATION);
    			printf(" 步数:%d", Step);
    			Sleep(2000);
    			system("cls");
    			Step = 0;
    			main();
    		}
    		else {
    			c = _getch();
    			if (Tran(c) == 'w' && map[_X - 1][_Y] != W) {
    				map[_X - 1][_Y] = T;
    				map[_X][_Y] = E;
    				_X = _X - 1;
    			}
    			else if (Tran(c) == 'a' && map[_X][_Y - 1] != W) {
    				map[_X][_Y - 1] = T;
    				map[_X][_Y] = E;
    				_Y = _Y - 1;
    			}
    			else if (Tran(c) == 's' && map[_X + 1][_Y] == E) {
    				map[_X + 1][_Y] = T;
    				map[_X][_Y] = E;
    				_X = _X + 1;
    			}
    			else if (Tran(c) == 'd' && map[_X][_Y + 1] != W) {
    				map[_X][_Y + 1] = T;
    				map[_X][_Y] = E;
    				_Y = _Y + 1;
    			}
    		}
    		Step += 1;
    		system("cls");
    	}
    }
    
    

    我们看到代码
    我一个个做解释

    #include<stdio.h>
    #include<conio.h>
    #include<Windows.h>
    #define W 'O'
    #define E ' '
    #define T 'N'
    

    三个头文件的导入,因为这个程序有一个函数是getch(),但是在Visual Studio只能写_getch()
    宏定义:
    W 是墙,你可以尝试自己更改字符
    E 是迷宫的空格
    T 是角色
    但是这个地图做的简单

    char map[13][12] =
    	{
    	E,W,E,W,W,W,W,W,E,W,E,W,//1
    	E,W,E,W,E,E,W,E,E,W,E,W,//2
    	E,W,E,E,E,W,W,E,W,E,E,W,//3
    	E,W,W,E,E,E,W,E,E,E,W,W,//4
    	E,W,E,E,W,E,E,E,W,W,W,W,//5
    	E,W,E,E,W,E,W,E,W,W,E,W,//6
    	E,W,E,W,E,E,W,W,W,E,E,W,//7
    	E,W,E,E,W,E,W,E,W,W,W,W,//8
    	E,W,E,W,W,E,W,E,W,W,W,W,//9
    	E,W,E,W,E,W,E,W,E,W,E,W,//10
    	E,W,E,E,W,E,E,E,W,W,E,W,//11
    	E,W,E,E,W,E,W,W,E,W,E,W,//12
    	E,W,T,W,W,W,W,W,W,W,W,W//13
    	};
    

    迷宫的定义
    最外边给的是视觉效果

    int _X = 12;
    	int _Y = 2;
    	char c;
    	int Step=0;
    

    变量定义:
    _X,_Y,相当于二位数组的两个常量表达式
    c,用户输入的
    Step,步数

    while(1){}//循环为真:无限循环
    

    函数定义:将大写字母转化为小写

    char Tran(char DATA) {
    	char New_DATA=DATA;
    	if (DATA < 97) {
    		New_DATA = New_DATA + 32;
    	}
    	return New_DATA;
    }
    

    绘制地图

    printf("\n");
    		for (int i = 0; i < sizeof(map)/12; i++) {
    			for (int j = 0; j < 12; j++) {
    				printf("%c", map[i][j]);
    			}
    			printf("\n");
    		}
    

    逻辑

    	c = _getch();
    			if (Tran(c) == 'w' && map[_X - 1][_Y] != W) {
    				map[_X - 1][_Y] = T;
    				map[_X][_Y] = E;
    				_X = _X - 1;
    			}
    			else if (Tran(c) == 'a' && map[_X][_Y - 1] != W) {
    				map[_X][_Y - 1] = T;
    				map[_X][_Y] = E;
    				_Y = _Y - 1;
    			}
    			else if (Tran(c) == 's' && map[_X + 1][_Y] == E) {
    				map[_X + 1][_Y] = T;
    				map[_X][_Y] = E;
    				_X = _X + 1;
    			}
    			else if (Tran(c) == 'd' && map[_X][_Y + 1] != W) {
    				map[_X][_Y + 1] = T;
    				map[_X][_Y] = E;
    				_Y = _Y + 1;
    			}
    		}
    

    胜利条件:

    	if (map[0][2] == T || map[0][8]==T || map[0][10]==T) {
    			MessageBox(NULL, L"你赢了", L"标题", MB_OK | MB_ICONINFORMATION);
    			printf(" 步数:%d", Step);
    			Sleep(2000);
    			system("cls");
    			Step = 0;
    			main();
    		}
    

    当这几个坐标为T时,弹出提示框
    Sleep(2000),2000毫秒(2秒)后清屏,步数清理,然后调用递归函数

    展开全文
  • c语言 走迷宫 推箱子

    2020-10-16 17:02:09
    走迷宫: ​ 1、定义一个二维数组作为迷宫 ​ 2、定义老鼠的坐标 ​ 3、获取游戏开始时的时间time(NULL) ​ 4、进入循环 ​ 1、system 清理屏幕 ​ 2、显示迷宫(遍历二维数组) ​ 3、检查是否走出迷宫 ​ 获取游戏...

    走迷宫:

    ​ 1、定义一个二维数组作为迷宫
    ​ 2、定义老鼠的坐标
    ​ 3、获取游戏开始时的时间time(NULL)
    ​ 4、进入循环
    ​ 1、system 清理屏幕
    ​ 2、显示迷宫(遍历二维数组)
    ​ 3、检查是否走出迷宫
    ​ 获取游戏结束时的时间:计算出共花费多少时间
    ​ time(NULL)
    ​ 是:结束程序
    ​ 4、获取方向键并处理
    ​ 判断接下来要走的位置是否有路
    ​ 1、把新位置赋值为老鼠’@’
    ​ 2、把旧位置赋值为路 ’ ’
    ​ 3、把记录老鼠的坐标更新
    #include <stdio.h>
    #include <getch.h>
    #include <stdlib.h>
    #include <time.h>

    int main(int argc,const char* argv[])
    {
    char map[10][10] = {
    {’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’},
    {’#’,’ ‘,’#’,’#’,’ ‘,’#’,’#’,’#’,’#’,’#’},
    {’#’,’ ‘,’#’,’#’,’ ‘,’#’,’#’,’#’,’#’,’#’},
    {’#’,’ ‘,’#’,’#’,’ ‘,’ ‘,’ ‘,’ ‘,’#’,’#’},
    {’#’,’@’,’#’,’#’,’ ‘,’#’,’#’,’ ‘,’#’,’#’},
    {’#’,’ ‘,’#’,’#’,’ ‘,’#’,’#’,’ ‘,’ ‘,’ ‘},
    {’#’,’ ‘,’#’,’#’,’ ‘,’#’,’#’,’#’,’#’,’#’},
    {’#’,’ ‘,’#’,’#’,’ ‘,’#’,’#’,’#’,’#’,’#’},
    {’#’,’ ‘,’ ‘,’ ‘,’ ‘,’#’,’#’,’#’,’#’,’#’},
    {’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’}
    };

    //定义角色的坐标
    char mouse_x = 4,mouse_y = 1;
    //获取开始的秒数
    time_t start_time = time(NULL);
    
    for(;;)
    {
    	//清理屏幕
    	system("clear");
    	//显示地图
    	for(int i=0;i<10;i++)
    	{
    		for(int j=0;j<10;j++)
    		{
    			printf("%c ",map[i][j]);		
    		}
    		printf("\n");
    	}
    	//判断是否成功
    	if(5 == mouse_x && 9 == mouse_y)
    	{
    		//获取结束时的秒数
    		time_t end_time = time(NULL);
    		
    		printf("游戏成功,共用时%u秒\n",end_time-start_time);
    		return 0;
    	}
    	//通过方向键移动角色一次
    	switch(getch())
    	{
    		case 183:
    			if(' ' == map[mouse_x-1][mouse_y])
    			{
    				map[mouse_x-1][mouse_y] = '@';
    				map[mouse_x--][mouse_y] = ' ';
    			}
    			break;
    		case 184:
    			if(' ' == map[mouse_x+1][mouse_y])
    			{
    				map[mouse_x+1][mouse_y] = '@';
    				map[mouse_x++][mouse_y] = ' ';
    			}
    			break;
    		case 185:
    			if(' ' == map[mouse_x][mouse_y+1])
    			{
    				map[mouse_x][mouse_y+1] = '@';
    				map[mouse_x][mouse_y++] = ' ';
    			}
    			break;
    		case 186:
    			if(' ' == map[mouse_x][mouse_y-1])
    			{
    				map[mouse_x][mouse_y-1] = '@';
    				map[mouse_x][mouse_y--] = ' ';
    			}
    			break;
    	}
    }
    

    }

    推箱子:

    ​ 1、定义角色与数值的关系:
    ​ 路: 0 ’ ’
    ​ 角色: 2 ‘@’
    ​ 墙壁: 3 ‘#’
    ​ 箱子: 4 ‘57@9' ​ 目标点:5 '*' ​ 有人的目标点: 7 '@' ​ 有箱子的目标点:9 '
    ​ case 0:printf(" “);break;
    ​ case 2:printf(”@ “);break;
    ​ case 3:printf(”# “);break;
    ​ case 4:printf(”$ “);break;
    ​ case 5:printf(”* “);break;
    ​ case 7:printf(”@ “);break;
    ​ case 9:printf(”$ ");break;

    2、定义地图
    char map[8][8] = {
        {0,0,3,3,3,3,0,0},
        {0,0,3,5,5,3,0,0},
        {0,3,3,0,5,3,3,0},
        {0,3,0,0,4,5,3,0},
        {3,3,0,4,0,0,3,3},
        {3,0,0,3,4,4,0,3},
        {3,0,0,2,0,0,0,3},
        {3,3,3,3,3,3,3,3},  
        };
    3、定义记录小人的位置坐标的变量
    3、记录步数
    4、进入循环 
        1、刷新屏幕
        2、显示地图
        3、检查是否胜利:判断数组中9的个数,把步数显示
        4、获取方向键并处理
            1:路
            2:墙壁
            3:箱子
                箱子前面:路
                箱子前面:墙
                箱子前面:目标点
            4、目标点
    

    #include <stdio.h>
    2 #include <getch.h>
    3 #include <stdlib.h>
    4 int main(int argc,const char* argv[])
    5 {
    6 int i,j;
    7 int map[8][8]={
    8 {0,0,3,3,3,3,0,0},
    9 {0,0,3,5,5,3,3,0},
    10 {0,3,3,0,5,3,3,0},
    11 {0,3,0,0,4,5,3,0},
    12 {3,3,0,4,0,0,0,3},
    13 {3,0,0,3,4,4,0,3},
    14 {3,0,0,2,0,0,0,3},
    15 {3,3,3,3,3,3,3,3}
    16 };
    17 int p_x=6,p_y=3;
    18 for(;😉
    19 {
    20 system(“clear”);
    21 for(i = 0;i < 8;i++)
    22 {
    23 for(j = 0;j < 8;j++)

    24 {

    25 switch(map[i][j])
    26 {
    27 case 0:printf(" " );break;
    28 case 2:printf("@" );break;
    29 case 3:printf("#" );break;
    30 case 4:printf("");break;31case5:printf("");break;32case7:printf("@");break;33case9:printf("" );break; 31 case 5:printf("*" );break; 32 case 7:printf("@" );break; 33 case 9:printf("" );break;
    34
    35 printf("%d “,map[i][j]);
    36 }
    37 }
    38 printf(”\n");
    39 }
    40 if(9map[1][3]&&9map[1][4]&&9map[2][4]&&9map[3][5])
    41 {
    42 printf(“游戏成功”);
    43 }
    44 switch(getch())
    45 {
    46 case 186:

    47 if(0map[p_x][p_y-1]||5map[p_x][p_y-1])
    48 {
    49 map[p_x][p_y-1]+=2;
    50 map[p_x][p_y]-=2;
    51 p_y–;
    52 }
    53 else if(3!=map[p_x][p_y-1]&&(0map[p_x][p_y-2]||5map[p_x] [p_y-2]))
    54 {
    55 map[p_x][p_y]-=2;
    56 map[p_x][p_y-1]-=2;
    57 map[p_x][p_y-2]+=4;
    58 p_y–;
    59 }break;
    60 case 185:
    61 if(0map[p_x][p_y+1]||5map[p_x][p_y+1])
    62 {
    63 map[p_x][p_y+1]+=2;
    64 map[p_x][p_y]-=2;
    65 p_y++;
    66 }
    67 else if(3!=map[p_x][p_y+1]&&(0map[p_x][p_y+2]||5map[p_x] [p_y+2]))
    68 {
    69 map[p_x][p_y]-=2;
    70 map[p_x][p_y+1]-=2;
    71 map[p_x][p_y+2]+=4;
    72 p_y++;
    73 }break;
    74 case 184:
    75 if(0map[p_x+1][p_y]||5map[p_x+1][p_y])
    76 {
    77 map[p_x+1][p_y]+=2;
    78 map[p_x][p_y]-=2;
    79 p_x++;
    80 }
    81 else if(3!=map[p_x+1][p_y]&&(0map[p_x+2][p_y]||5map[p_x+ 2][p_y]))
    82 {
    83 map[p_x][p_y]-=2;
    84 map[p_x+1][p_y]-=p_x2;
    85 map[p_x+2][p_y]+=4;
    86 p_x++;
    87 }break;
    88 case 183:
    89 if(0map[p_x-1][p_y]||5map[p_x-1][p_y])
    90 {
    91 map[p_x-1][p_y]+=2;
    92 map[p_x][p_y]-=2;
    93 p_x–;
    94 }
    95 else if(3!=map[p_x-1][p_y]&&(0map[p_x-2][p_y]||5map[p_x- 2][p_y]))
    96 {
    97 map[p_x][p_y]-=2;
    98 map[p_x-1][p_y]-=2;
    99 map[p_x-1][p_y]+=4;
    100 p_x–;
    101 }break;
    102 }
    103 }
    104 }

    注意:
    获取方向键使用getch.h头文件中的getch函数
    把getch.h头文件复制到共享文件夹,然后通过获取超级管理员权限来移动到 /usr/include/
    sudo cp getch.h /usr/include
    sudo chmod +r /usr/include/getch.h
    测试调用getch(),方向键的键值分别是多少
    183 上
    184 下
    185 右
    186 左

    <stdlib.h>
    system("命令名")    system("clear") 实现清屏
    
    展开全文
  • c语言 走迷宫问题

    2017-10-03 23:42:49
    #include #define N 10 int main(){ char maze[N][N] = { '#', ' ', '#', '#', '#', '#', '#', '#', '#', '#', '#', ' ', ' ', '#', ' ', ' ', ' ', '#', ' ', '#', ...'#', ' ', ' ', '#', ' ', ' ', ' ', '#',
  • 无需积分!无需积分!无需积分!疫情期间无聊帮朋友做的一个简易程序,博客讲解思路链接为https://www.cnblogs.com/xiao-qi-w/p/13031637.html
  • 如果要碰到墙或者要出边界了就会停留在原地 第一行两个正整数N,M表示迷宫大小。 接下来N行,每行M个字符,这个N*M表示迷宫的初始状态。 其中'.'表示迷宫的普通格子,'#'表示墙,'S'表示人 之后每一行...
  • 自己做的一个数组迷宫小游戏。 #include <stdio.h> #include <stdlib.h> #include <getch.h> int main() { // 迷宫数组 char maze[10][10] = { {'#','#','#','#','#','#','#','#','#','#'}, ...
  • 走迷宫代码: #include<stdio.h> #include<getch.h> #include<stdlib.h> int main() { char map[10][10] = { {’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’,’#’}, {’#’,’@’,’#...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,812
精华内容 1,124
关键字:

c语言走迷宫

c语言 订阅