菜鸟学C语言:老鼠走迷宫小游戏

题目:自行生成一张地图后,通过上下左右方向键控制老鼠走出迷宫并计算出所花费的时间。

1、先自行生成一张地图用于当作地图的二维数组

int arr[15][15]=
	{
		{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
		{1,1,2,1,1,1,1,1,1,1,1,1,1,1,1},
		{1,1,0,1,1,1,1,1,1,1,1,1,1,1,1},
		{1,1,0,1,1,1,1,1,1,1,1,1,1,1,1},
		{1,1,0,1,1,1,1,1,1,1,1,1,1,1,1},
		{1,1,0,1,1,1,1,1,1,1,1,1,1,1,1},
		{1,1,0,0,0,0,0,1,1,1,1,1,1,1,1},
		{1,1,1,1,1,1,0,1,1,1,1,1,1,1,1},
		{1,1,1,1,1,1,0,1,1,1,1,1,1,1,1},
		{1,1,1,1,1,1,0,1,1,1,1,1,1,1,1},
		{1,1,1,1,1,1,0,1,1,1,1,1,1,1,1},
		{1,1,1,1,1,1,0,0,0,1,1,1,1,1,1},
		{1,1,1,1,1,1,1,1,0,1,1,1,1,1,1},
		{1,1,1,1,1,1,1,1,0,1,1,1,1,1,1},
		{1,1,1,1,1,1,1,1,0,1,1,1,1,1,1}
	};

我们以1作为墙以'#'表示,0作为空白的路,2作为老鼠的位置以'#'表示,可以得到这么一张地图


2、记录老鼠行下标和列下标的变量

for(int i=0;i<15;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(arr[i][j]==2)
			{
				key_row=i;
				key_col=j;
			}
		}
	}


3、记录游戏的开始时间 time(NULL) 系统会返回自 1970-01-01 00:00:00 到现在一共过了多少秒。时间函数需要用到头文件#include<stdlib.h> 具体使用方法为

int sce_begin=time(NULL);

主要讲一下c语言中getch()函数,需要用到#include<getch()>可以读取到按下键的返回值,这一题主要用到上下左右的方向键的返回值,上为183,下为184,左为186,右为185。我们已知获取到老鼠的位置,根据函数getch()所获得的方向键的返回值,对老鼠所在的二维数组下标进行改变。并对改变后的位置进行显示,要用到一个函数system("clear")清空当前面板,在遍历二维数组进行显示。

void show_arr(int arr[15][15])
{
	system("clear");
	for(int i=0;i<15;i++)
	{
		for(int j=0;j<15;j++)
		{
			if(arr[i][j]==1)
			{
				printf("# ");
			}
			else if(arr[i][j]==0)
			{
				printf("  ");
			}
			else printf("@ ");
		}
		printf("\n");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值