c#声明一个二维数组,存放游戏玩家可以行走的四个方向(前后左右),假如游戏玩家在二维坐标系的原点,按下w/s/a/d(不区分大小写)代表前后左右,循环输入字符,输出游戏玩家的位置;

string[,] mapArray = new string[5, 5];

//  数组初始化

for (int i = 0; i < mapArray.GetLength (0); i++) {

for (int j = 0; j < mapArray.GetLength (1); j++) {

mapArray [i, j] = "*";

}

}

// 初始化玩家位置

mapArray [mapArray.GetLength (0) - 1, 0] = "#";


//记录当前位置

int x = 0;   // 列

int y = mapArray.GetLength (0) - 1;   // 行


while (true) {

// 打印

for (int i = 0; i < mapArray.GetLength (0); i++) {

for (int j = 0; j < mapArray.GetLength (1); j++) {

Console.Write (mapArray [i, j] + " ");

}

Console.WriteLine ();

}



Console.WriteLine ("请输入移动方向(wasd):");

string dir = Console.ReadLine ();

switch (dir) {

case "w":

if (y - 1 >= 0) {


mapArray [y, x] = "*";

mapArray [y - 1, x] = "#";

// 重新记录当前位置

y--;


} else {

Console.WriteLine ("你想上天啊!小伙子!");

}

break;

case "s":

if (y + 1 < mapArray.GetLength (0)) {

mapArray [y, x] = "*";

mapArray [y + 1, x] = "#";

y++;

} else {

Console.WriteLine ("你想下地狱啊!");

}

break;


case "d":

if (x + 1 < mapArray.GetLength (1)) {

mapArray [y, x] = "*";

mapArray [y, ++x] = "#";

} else {

Console.WriteLine ("这是d的尽头了!");

}

break;

case "a":

if (x - 1 >= 0) {

mapArray [y, x] = "*";

mapArray [y, --x] = "#";

} else {

Console.WriteLine ("小伙子,到头了!傻逼");

}

break;

default:

break;

}





}

你可能感兴趣的:(c#声明一个二维数组,存放游戏玩家可以行走的四个方向(前后左右),假如游戏玩家在二维坐标系的原点,按下w/s/a/d(不区分大小写)代表前后左右,循环输入字符,输出游戏玩家的位置;)