internal void SnakeAddElement() { SnakeElements.Add(new SnakePart(elemenetSize) { X = SnakeTail.X, Y = SnakeTail.Y }); }
internal void AddFirstElement(int numColumns, int numRows) { SnakeElements.Add(new SnakePart(elemenetSize) { X = (numColumns / 2) * elemenetSize, Y = (numRows / 2) * elemenetSize }); }
public bool CheckTail() { SnakePart snakeHead = SnakeHead; if (snakeHead != null) { foreach (var snakeEl in SnakeElements.Where(x => !x.Head)) { if (snakeEl.X == snakeHead.X && snakeEl.Y == snakeHead.Y) { return(true); } } } return(false); }
internal void MoveSnake() { SnakePart head = SnakeElements[0]; SnakePart tail = SnakeElements[SnakeElements.Count - 1]; SnakeTail = new SnakePart(elemenetSize) { X = tail.X, Y = tail.Y }; head.Head = false; tail.Head = true; tail.X = head.X; tail.Y = head.Y; switch (Direction) { case Direction.Up: tail.Y -= elemenetSize; break; case Direction.Down: tail.Y += elemenetSize; break; case Direction.Left: tail.X -= elemenetSize; break; case Direction.Right: tail.X += elemenetSize; break; } SnakeElements.RemoveAt(SnakeElements.Count - 1); SnakeElements.Insert(0, tail); }