Example #1
0
 internal void SnakeAddElement()
 {
     SnakeElements.Add(new SnakePart(elemenetSize)
     {
         X = SnakeTail.X, Y = SnakeTail.Y
     });
 }
Example #2
0
 internal void AddFirstElement(int numColumns, int numRows)
 {
     SnakeElements.Add(new SnakePart(elemenetSize)
     {
         X = (numColumns / 2) * elemenetSize,
         Y = (numRows / 2) * elemenetSize
     });
 }
Example #3
0
        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);
        }
Example #4
0
        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);
        }