使用.net编写一个炸弹人小游戏
时间: 2024-04-07 22:34:04 浏览: 69
好的,下面是一个使用.NET编写的简单炸弹人小游戏的示例代码:
```csharp
using System;
namespace BombermanGame
{
class Program
{
static int playerX = 0;
static int playerY = 0;
static bool gameOver = false;
static void Main(string[] args)
{
ConsoleKeyInfo keyInfo;
Console.WriteLine("Welcome to Bomberman!");
while (!gameOver)
{
DrawGame();
keyInfo = Console.ReadKey(true);
// 根据玩家输入移动炸弹人
switch (keyInfo.Key)
{
case ConsoleKey.LeftArrow:
MovePlayer(-1, 0);
break;
case ConsoleKey.RightArrow:
MovePlayer(1, 0);
break;
case ConsoleKey.UpArrow:
MovePlayer(0, -1);
break;
case ConsoleKey.DownArrow:
MovePlayer(0, 1);
break;
case ConsoleKey.Escape:
gameOver = true;
break;
}
}
Console.WriteLine("Game Over. Press any key to exit...");
Console.ReadKey();
}
static void DrawGame()
{
Console.Clear();
// 绘制游戏地图
string[] map =
{
"#######",
"# #",
"# #",
"# P #",
"# #",
"#######"
};
for (int y = 0; y < map.Length; y++)
{
for (int x = 0; x < map[y].Length; x++)
{
if (x == playerX && y == playerY)
{
Console.Write("P"); // 绘制炸弹人
}
else
{
Console.Write(map[y][x]); // 绘制地图元素
}
}
Console.WriteLine();
}
}
static void MovePlayer(int deltaX, int deltaY)
{
int newPlayerX = playerX + deltaX;
int newPlayerY = playerY + deltaY;
// 检查新位置是否在游戏地图内
if (newPlayerX >= 0 && newPlayerX < 7 && newPlayerY >= 0 && newPlayerY < 6)
{
// 检查新位置是否是空地
if (GetMapElement(newPlayerX, newPlayerY) == ' ')
{
playerX = newPlayerX;
playerY = newPlayerY;
}
}
}
static char GetMapElement(int x, int y)
{
string[] map =
{
"#######",
"# #",
"# #",
"# P #",
"# #",
"#######"
};
return map[y][x];
}
}
}
```
这个示例使用控制台来绘制游戏地图,并通过方向键让玩家移动炸弹人(P)。地图由一个字符串数组表示,每个字符代表一个地图元素。玩家通过移动来躲避障碍物(#)并探索游戏世界。
请注意,这只是一个简单的示例,你可以根据自己的需求和创意来扩展和改进游戏。你可以添加敌人、炸弹、道具等元素,以及更复杂的游戏规则和逻辑。