
使用数组绘制游戏地图
#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 (flagbreak;
}
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;
}
声明:本文由用户投稿上传,本站不保证内容的真实与正确性,并且不承担相关法律责任,如有侵权请提供版权资料并联系删除!
编程笔记
»
二维 数组