internal bool IsHit(Figure figure) { foreach (var p in pList) { if(figure.IsHit(p)) return true; } return false; }
public bool IsHit(Figure figure) { foreach (var wall in figurelist) { if (wall.isHit(figure)) return true; } return false; }
internal bool isHit(Figure figure) { foreach(var point in points) { if (figure.isHit(point)) return true; } return false; }
public bool IsHit(Figure figure) { foreach (Figure item in WallList) { if (item.IsHit(figure)) return true; } return false; }
internal bool IsHit(Figure figure) { foreach (var wall in wallList) { if (wall.IsHit(figure)) return true; } return false; }
// Определение номер объекта, с которым произошло пересечение public int GetIntersectObjectNum(Figure figure) { for (int ii = 0; ii <= gameObjects.Count - 1; ii++) { if (Intersect(figure, gameObjects[ii])) { return ii; } } return -1; }
static void Main(string[] args) { Console.SetBufferSize(80, 25); int speed = 100; GameObjects gameObjects = new GameObjects(); char sym = '$'; // Создадим и отобразим стены. Так же занесём их в список объектов Walls walls = new Walls('+'); gameObjects.Add(walls); // Создадим змейку Snake snake = new Snake(new Point(2, 3, '*'), 3, Direction.RIGHT); gameObjects.Add(snake); // Создадим еду FoodCreator foodCreator = new FoodCreator('$'); foodCreator.CreateFood(gameObjects, 1); gameObjects.Add(foodCreator); while(true) { if (gameObjects.Intersect(snake)) { Figure intersectFigure = new Figure(); int intersectObjectNum = gameObjects.GetIntersectObjectNum(snake); intersectFigure = gameObjects.GetObject(intersectObjectNum); if(intersectFigure.GetObjectType() == ObjectTypes.FOOD) { gameObjects.DeleteObject(intersectObjectNum); snake.Eat(); FoodCreator foodCreator2 = new FoodCreator('$'); foodCreator2.CreateFood(gameObjects, 2); gameObjects.Add(foodCreator2); } else { Console.SetCursorPosition(10, 10); Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("Game Over"); Console.ReadLine(); break; } } // Проверим нажата ли кнопка if (Console.KeyAvailable) { // Если таки нажата, то изменим направление в соответсвии с нажатием ConsoleKeyInfo key = Console.ReadKey(); snake.HandelKey(key.Key); } Thread.Sleep(speed); snake.Move(); } }
public bool IsHit(Figure figure) { foreach (var wall in wallList) { if (wall.IsHit(figure)) { return true; } } return false; }
// Добавление объекта public void Add(Figure figure) { try { int dummy = gameObjects.Count(); } catch (ArgumentNullException e) { gameObjects = new List<Figure>(); } gameObjects.Add(figure); }
internal bool IsHit(Figure figure) { return(false); }
public static bool IsHit(Figure f, Point p) => f.points.Any(p1 => Point.IsHit(p1, p));
// Определение пересёкся ли один объект с одним из других public bool Intersect(Figure figure) { foreach(Figure obj in gameObjects) { if (Intersect(figure, obj)) { return true; } } return false; }
// Определение пересечения двух объектов между собой public bool Intersect(Figure figure1, Figure figure2) { for(int i1 = 0; i1 <= figure1.Count() - 1; i1++) { int i2; if (Equals(figure1.GetType(), figure2.GetType())) { i2 = i1 + 1; } else { i2 = 0; } while(i2 <= figure2.Count() - 1) //for (i2 <= figure2.Count() - 1; i2++) { if(figure1.GetPoint(i1).IsHit(figure2.GetPoint(i2))) { return true; } i2++; } } return false; }
static void Draw(Figure figure) { figure.Draw(); }
public static bool IsHit(Walls w, Point p) => w.walls.Any(f => Figure.IsHit(f, p));
public static bool IsHit(Walls w, Figure f) => w.walls.Any(f1 => Figure.IsHit(f1, f));
public bool IsHit(Figure f) => IsHit(this, f);
public static bool IsHit(Figure f1, Figure f2) => f1.points.Any(p => IsHit(f2, p));