欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言简单小游戏--走迷宫(Vim编译器)有趣好玩

程序员文章站 2022-03-23 15:43:01
走迷宫:1、定义二维字符数组作为迷宫2、定义变量记录老鼠的位置3、获取游戏开始时间3、进入循环1、清理屏幕,使用system调用系统命令。2、显示迷宫(遍历二维字符数组)3、检查是否到达出口获取游戏结束时间,计算出走出迷宫用了多少秒。4、获取方向键并处理判断接下来要走的位置是否是路,1、把旧位置赋值为空格2、把新位置赋值为老鼠3、把记录老鼠位置的变量改变。注意:time(NULL)获取自 1970-1-1 00:00:00 到现在过了多少秒。获取方向键使用getch.h头文件...

走迷宫:
1、定义二维字符数组作为迷宫
2、定义变量记录老鼠的位置
3、获取游戏开始时间
3、进入循环
1、清理屏幕,使用system调用系统命令。
2、显示迷宫(遍历二维字符数组)
3、检查是否到达出口
获取游戏结束时间,计算出走出迷宫用了多少秒。
4、获取方向键并处理
判断接下来要走的位置是否是路,
1、把旧位置赋值为空格
2、把新位置赋值为老鼠
3、把记录老鼠位置的变量改变。
注意:
time(NULL)获取自 1970-1-1 00:00:00 到现在过了多少秒。
获取方向键使用stdlib.h头文件中的getch函数
把getch.h文件复制到/usr/include/
sudo cp getch.h /usr/include/
sudo chmod +r /usr/include/getch.h
183 上
184 下
185 右
186 左

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <getch.h>
int main(int argc,const char* argv[])
{
	char maze[10][10]={
		{'#','#','#','#','#','#','#','#','#','#',},	
		{'#','@','#','#','#','#','#','#','#','#',},
		{'#',' ','#','#','#','#','#','#','#','#',},
		{'#',' ',' ',' ',' ','#','#','#','#','#',},
		{'#',' ',' ','#',' ','#','#','#','#','#',},
		{'#','#','#','#',' ','#','#','#','#','#',},
		{'#','#','#','#',' ',' ',' ',' ',' ','#',},
		{'#','#','#','#','#','#','#','#',' ','#',},
		{'#','#','#','#','#','#','#','#',' ',' ',},
		{'#','#','#','#','#','#','#','#','#',' ',},
	
};//先定义一个二维数组,当作地图
	int m_x=1,m_y=1;
	time_t star_time=time(NULL);//记录开始时间
	for(;;)
	{
		system("clear");//刷新图像,避免走一步一张图
		for(int i=0;i<10;i++)
		{
			for(int j=0;j<10;j++)
			{
				printf("%c ",maze[i][j]);
				}
				printf("\n");
			}//打印地图
			if(9==m_x&&9==m_y)
			{
				printf("恭喜你走出迷宫,共用时%u秒!\n",time(NULL)-star_time);
				return 0;//判断成功条件

				}
		switch(getch())//定义控制键盘
		{
			case 183://if(0!=m_x&&' '==maze[m_x-1][m_y])
					{
						maze[m_x][m_y]= ' ';
						maze[--m_x][m_y]='@';
						}
						break;
			case 184://if(9!=m_x&& ' '==maze[m_x+1][m_y])
					{
						maze[m_x][m_y]=' ';
						maze[++m_x][m_y]='@';
						}
						break;
			case 185://if(9!=m_x&& ' '==maze[m_x][m_y+1])
					{	
						maze[m_x][m_y]= ' ';
						maze[m_x][++m_y]='@';
					}
						break;
			case 186://if(9!=m_x&& ' '==maze[m_x][m_y-1])
					{
					maze[m_x][m_y]= ' ';
						maze[m_x][--m_y]='@';
					}
						break;
			}
		
		}

}

本文地址:https://blog.csdn.net/Oliverxuc/article/details/107324267