编程成长之路

我们都是站在父母的肩上去看他们不曾看到的风景!加油!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

二维 数组

Posted on 2023-05-20 16:56  来颗维C  阅读(31)  评论(0编辑  收藏  举报

使用数组绘制游戏地图

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//#include<windows.h>
//#include<mmsystem.h>  //播放音乐头文件
//#pragma comment(lib,"winmm.lib")  //音乐库文件
int main()
{
	



	//二维数组
	//int x[4][3] = { 10,20,30,40,50 };
	//          //行  列
	//	int data[4][3] =
	//    {//列 0  1  2  //行
	//		{10,20,30},//0行  
	//		{20,40,50},//1行
	//		{20,10,40},//2行
	//		{30,20,40} //3行
	//	};
	//// 找出数字10 数字10的位置是0行0列  2行1列
	//	printf("%d\n", data[0][0]);

	//	//如何计算第二列所有数的和呢?
	//	//第二列数的规律: [0][2] [1][2] [2][2] [3][2]
	//	//int sum = 0 , i; //i 表示行数
	//	//for(i = 0; i<3; i++)
	//	//{             //行 列
	//	//	sum += data[i][2];
	//	//}
	//	//printf("Sum=%d\n", sum);


	//	//如何计算对角线中所有数的值?
	//	//对角线上的数的规律:第一个数在[0][0] 第二个数在[1][1] 第三个数[2][2]
	//	int sum = 0, i, j;  //i表示行数  j表示列数
	//	for(i = 0;i < 3;i++)  //行号
	//	{
	//	for (j = 0;j < 4;j++) // 列号
	//	{
	//		//判断如果行号与列号相等 输出结果
	//		if (i == j)
	//		{
	//			sum += data[i][j];
	//		}
	//	}
	//	printf("sum=%d\n", sum);
	//	}




     //二维数组绘制游戏地图
int Map[6][5] =
{
	1, 1, 1, 1, 1,
	1, 0, 0, 0, 1,
	1, 0, 1, 0, 1,
	1, 0, 1, 0, 1,
	1, 0, 1, 2, 1,
	1, 0, 3, 1, 1
};//地图数据化

  //行 列
int i, j;
for (i = 0; i < 6; i++)
{
	for (j = 0; j < 5; j++)
	{
		switch(Map[i][j])
		{
		case 0:printf(" "); break;
		case 1:printf("■"); break;
		case 2:printf("♀"); break;
		case 3:printf("★"); break;

		}
	}
	printf("\n");
}


int dx, dy;
//确定人物位置
for(dy = 0; dy < 6; dy++)  //行号
{
	int flag = 0; //人物标记
	for(dx = 0; dx < 5; dx++)  //列号
	{
		if (Map[dy][dx] == 2)  //找到人物
		{
			flag = 1; //找到人物就退出第一层循环
			break;
		}

	}
	if (flag)break;
}

printf("%d %d\n", dy, dx); // 就是人物的坐标位置


//实现人物移动
while(1)//死循环
{
	switch(getch())
	{
	case 'W':
		Map[dy][dx] = 0;
		dy = dy - 1;
		Map[dy][dx] = 2;
		break;

	case 'S':

		break;
	case 'A':

		break;
	case 'D':

		break;
	}
	for (i = 0; i < 6; i++)
	{
		for (j = 0; j < 5; j++)
		{
			switch (Map[i][j])
			{
			case 0:printf(" ");break;
			case 1:printf("■");break;
			case 2:printf("♀");break;
			case 3:printf("★");break;

			}
		}
		printf("\n");
	}

}



system("pause");
		return 0;
}