//запоминание зайцем границ вольера public void SetRegion(NewRegion region) { this.Reg_X1 = region.Reg_X1; this.Reg_X2 = region.Reg_X2; this.Reg_Y1 = region.Reg_Y1; this.Reg_Y2 = region.Reg_Y2; }
static void Main(string[] args) { ConsoleKeyInfo key; // int TrappedRabbitCount = 0; //счётчик пойманных зайцев Greetings(); NewRegion region = new NewRegion(4, 4, 70, 20); //создание игрового поля /* * //Для отладки! * GreenRabbit greenRabbit = new GreenRabbit(new Vector(10, 10), new Vector(1, 1), '*'); //зелёный заяц * RedRabbit redRabbit = new RedRabbit(new Vector(9, 6), new Vector(1, 1), 'O'); //красный заяц * BoxTrap Box = new BoxTrap(11, 11, 4); //коробочка будет стоять прямо на пути объектов */ Random rDirect = new Random(); GreenRabbit greenRabbit = new GreenRabbit(new Vector(10, 10), new Vector(rDirect.Next(-1, 2), rDirect.Next(-1, 2)), '*'); //зелёный заяц RedRabbit redRabbit = new RedRabbit(new Vector(9, 6), new Vector(rDirect.Next(-1, 2), rDirect.Next(-1, 2)), 'O'); //красный заяц BoxTrap Box = new BoxTrap(60, 10, 4); //установка коробки-ловушки Vector BoxDir = new Vector(0, 0); greenRabbit.SetRegion(region); //запоминание зайцами границ поля redRabbit.SetRegion(region); Box.SetRegion(region); //запоминание ловушкой игрового поля while (true) { greenRabbit.Move(); redRabbit.Move(); greenRabbit.Show(); redRabbit.Show(); //greenRabbit.ShowXY(0, 0); #region BoxMoving //обработка движения ловушки if (Console.KeyAvailable) { Console.ForegroundColor = ConsoleColor.Black; key = Console.ReadKey(); Console.ResetColor(); switch (key.Key) { case ConsoleKey.LeftArrow: BoxDir.X = -1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.RightArrow: BoxDir.X = 1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.UpArrow: BoxDir.Y = -1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.DownArrow: BoxDir.Y = 1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.R: Box.BoxRotate(); break; } } #endregion //проверка на попадание зайца в ловушку #region CheckTrap if (Box.CheckTrapped(greenRabbit.GetPosition(), greenRabbit.GetDirection(), greenRabbit.GetSym, greenRabbit.GetrColor)) { greenRabbit.Destroy(); WriteTrappedrabbitsCount(Box.GetTrappedRabbitCount); } if (Box.CheckTrapped(redRabbit.GetPosition(), redRabbit.GetDirection(), redRabbit.GetSym, redRabbit.GetrColor)) { redRabbit.Destroy(); WriteTrappedrabbitsCount(Box.GetTrappedRabbitCount); } #endregion //если пойманы оба зайца if (Box.GetTrappedRabbitCount == 2) { Box.BoxDraw(); RabbitsAreTrapped(); while (true) { key = Console.ReadKey(); if (key.Key == ConsoleKey.Enter) //освобождение зайцев { Box.FreeRabbits(); //выпускаем их из коробки WriteTrappedrabbitsCount(Box.GetTrappedRabbitCount); //пишем об этом greenRabbit.Free(); //даём каждому зайцу свободу redRabbit.Free(); ClearRegion(region.Reg_X1, region.Reg_X2, region.Reg_Y1, region.Reg_Y2); //чистим рабочую область Box.BoxDraw(); break; } else if (key.Key == ConsoleKey.Escape) //окончание игры { return; } } } System.Threading.Thread.Sleep(100); } }
static void Main(string[] args) { ConsoleKeyInfo key; // int TrappedRabbitCount = 0; //счётчик пойманных зайцев Greetings(); NewRegion region = new NewRegion(4,4,70,20); //создание игрового поля /* //Для отладки! GreenRabbit greenRabbit = new GreenRabbit(new Vector(10, 10), new Vector(1, 1), '*'); //зелёный заяц RedRabbit redRabbit = new RedRabbit(new Vector(9, 6), new Vector(1, 1), 'O'); //красный заяц BoxTrap Box = new BoxTrap(11, 11, 4); //коробочка будет стоять прямо на пути объектов */ Random rDirect = new Random(); GreenRabbit greenRabbit = new GreenRabbit(new Vector(10, 10), new Vector(rDirect.Next(-1, 2), rDirect.Next(-1, 2)), '*'); //зелёный заяц RedRabbit redRabbit = new RedRabbit(new Vector(9, 6), new Vector(rDirect.Next(-1, 2), rDirect.Next(-1, 2)), 'O'); //красный заяц BoxTrap Box = new BoxTrap(60,10,4); //установка коробки-ловушки Vector BoxDir = new Vector(0,0); greenRabbit.SetRegion(region); //запоминание зайцами границ поля redRabbit.SetRegion(region); Box.SetRegion(region); //запоминание ловушкой игрового поля while (true) { greenRabbit.Move(); redRabbit.Move(); greenRabbit.Show(); redRabbit.Show(); //greenRabbit.ShowXY(0, 0); #region BoxMoving //обработка движения ловушки if (Console.KeyAvailable) { Console.ForegroundColor = ConsoleColor.Black; key = Console.ReadKey(); Console.ResetColor(); switch (key.Key) { case ConsoleKey.LeftArrow: BoxDir.X = -1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.RightArrow: BoxDir.X = 1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.UpArrow: BoxDir.Y = -1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.DownArrow: BoxDir.Y = 1; Box.BoxMove(ref BoxDir); break; case ConsoleKey.R: Box.BoxRotate(); break; } } #endregion //проверка на попадание зайца в ловушку #region CheckTrap if (Box.CheckTrapped(greenRabbit.GetPosition(), greenRabbit.GetDirection(), greenRabbit.GetSym, greenRabbit.GetrColor)) { greenRabbit.Destroy(); WriteTrappedrabbitsCount(Box.GetTrappedRabbitCount); } if (Box.CheckTrapped(redRabbit.GetPosition(), redRabbit.GetDirection(), redRabbit.GetSym, redRabbit.GetrColor)) { redRabbit.Destroy(); WriteTrappedrabbitsCount(Box.GetTrappedRabbitCount); } #endregion //если пойманы оба зайца if (Box.GetTrappedRabbitCount == 2) { Box.BoxDraw(); RabbitsAreTrapped(); while(true) { key = Console.ReadKey(); if (key.Key == ConsoleKey.Enter) //освобождение зайцев { Box.FreeRabbits(); //выпускаем их из коробки WriteTrappedrabbitsCount(Box.GetTrappedRabbitCount); //пишем об этом greenRabbit.Free(); //даём каждому зайцу свободу redRabbit.Free(); ClearRegion(region.Reg_X1, region.Reg_X2, region.Reg_Y1, region.Reg_Y2); //чистим рабочую область Box.BoxDraw(); break; } else if (key.Key == ConsoleKey.Escape) //окончание игры return; } } System.Threading.Thread.Sleep(100); } }