/// <summary> /// Позиционирование игрока на карте /// </summary> /// <param name="pl">Игрок</param> /// <param name="map">Карту</param> public static void SetPlayers(ref Player pl, ref Map map) { while (pl.posX == 0 && pl.posY == 0) { int posX = Randomaizer.GetRandValue(1, map.sizeRow - 1); int posY = Randomaizer.GetRandValue(1, map.sizeCol - 1); if (map.map[pl.posX, pl.posY].statusTile != Status.Wall || map.map[posX, posY].statusTile != Status.Enemy) { pl.posX = posX; pl.posY = posY; map.map[pl.posX, pl.posY].statusTile = pl.st; map.map[pl.posX, pl.posY].mapValue = pl.mv; } } }
/// <summary> /// Позиционирование врага на карте /// </summary> /// <param name="en">Враг</param> /// <param name="map">Карта</param> private static void InitEnemy(ref Enemy en, ref Map map) { while (en.posX == 0 && en.posY == 0) { int posX = Randomaizer.GetRandValue(1, map.sizeRow - 1); int posY = Randomaizer.GetRandValue(1, map.sizeCol - 1); if (map.map[posX, posY].statusTile != Status.Wall) { en.posX = posX; en.posY = posY; map.map[en.posX, en.posY].statusTile = en.st; map.map[en.posX, en.posY].mapValue = en.mv; map.map[en.posX, en.posY].cc = en.cc; en.Actualcc = ConsoleColor.Cyan; } } }
static void Main(string[] args) { Console.WriteLine(); Player pl = new Player(); pl.level = Game.SetLevelGame(); Map map = new Map(); Game.CreateMap(ref map); pl.InitPlayer(); Initializer.SetPlayers(ref pl, ref map); Enemy.level = pl.level; Initializer.InitMap(ref map); Randomaizer.RandomBlock(ref map); Enemy[] enVec = Enemy.CreateEnemy(Enemy.level); Initializer.InitVecEnemy(enVec, ref map); pl.vec = VectorMove.NoDirection; Game.Print(map); while (!Logics.endGame) { if (Console.KeyAvailable) { pl.vec = Logics.Move(Game.GetMove()); Logics.ChangeVec(ref pl, ref map); } Enemy.InitVecEnemy(enVec, ref map); System.Threading.Thread.Sleep(200); } }
// Выбор вектора движения public static VectorMove Move() { return((VectorMove)Randomaizer.GetRandValue((int)VectorMove.Up, (int)VectorMove.Right)); }