コード例 #1
1
        private static void HandleCollision(Snake snake, ConsoleRenderer renderer)
        {
            List<GameFieldCoords> snakeElements = new List<GameFieldCoords>();

            foreach (GameFieldCoords element in snake.GetPosition())
            {
                snakeElements.Add(element);
            }

            foreach (GameFieldCoords element in snakeElements)
            {
                if (element.Row >= renderer.GameFieldSize.Row || element.Row < 0
                    || element.Col >= renderer.GameFieldSize.Col || element.Col < 0)
                {
                    snake.IsDestroyed = true;
                }
            }

            for (int element = 0; element < snakeElements.Count - 1; element++)
            {
                if (snakeElements.Last().Row == snakeElements[element].Row
                    && snakeElements.Last().Col == snakeElements[element].Col)
                {
                    snake.IsDestroyed = true;
                }
            }
        }
コード例 #2
0
 private static void HandleEating(Snake snake, List<Food> foodList)
 {
     foreach (Food food in foodList)
     {
         foreach (GameFieldCoords snakeElementPosition in snake.GetPosition())
         {
             if (food.GetPosition()[0].Row == snakeElementPosition.Row
                 && food.GetPosition()[0].Col == snakeElementPosition.Col)
             {
                 snake.GetBigger();
                 food.RespondToEating();
             }
         }
     }
 }