Exemple #1
0
        // move snake
        static List <Struct.DIEM> MoveSnake(List <Struct.DIEM> Snake, string DirectionMove, int score)
        {
            Struct.DIEM newPoint;
            switch (DirectionMove)
            {
            case "LeftArrow":
                newPoint.x = Snake[0].x - 1;
                newPoint.y = Snake[0].y;
                Snake.Insert(0, newPoint);
                //Check collision
                if (MiniGameOver.CheckCollision(newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                //Check collision trailer
                if (MiniGameOver.CheckCollisionTrailer(Snake, newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                //ve lại snake
                RePaintSnake(newPoint, Snake[1], Snake[Snake.Count - 1]);
                Snake.RemoveAt(Snake.Count - 1);
                return(Snake);

            case "RightArrow":
                newPoint.x = Snake[0].x + 1;
                newPoint.y = Snake[0].y;
                Snake.Insert(0, newPoint);
                //Check collision
                if (MiniGameOver.CheckCollision(newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                //Check collision trailer
                if (MiniGameOver.CheckCollisionTrailer(Snake, newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                // ve lại snake
                RePaintSnake(newPoint, Snake[1], Snake[Snake.Count - 1]);
                Snake.RemoveAt(Snake.Count - 1);
                return(Snake);

            case "UpArrow":
                newPoint.x = Snake[0].x;
                newPoint.y = Snake[0].y - 1;
                Snake.Insert(0, newPoint);
                //Check collision
                if (MiniGameOver.CheckCollision(newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                //Check collision trailer
                if (MiniGameOver.CheckCollisionTrailer(Snake, newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                //ve lại snake
                RePaintSnake(newPoint, Snake[1], Snake[Snake.Count - 1]);
                Snake.RemoveAt(Snake.Count - 1);
                return(Snake);

            case "DownArrow":
                newPoint.x = Snake[0].x;
                newPoint.y = Snake[0].y + 1;
                Snake.Insert(0, newPoint);
                //Check collision
                if (MiniGameOver.CheckCollision(newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                //Check collision trailer
                if (MiniGameOver.CheckCollisionTrailer(Snake, newPoint))
                {
                    MiniGameOver.GameOver(score);
                    Snake.Clear();
                    return(Snake);
                }
                //ve lại snake
                RePaintSnake(newPoint, Snake[1], Snake[Snake.Count - 1]);
                Snake.RemoveAt(Snake.Count - 1);
                return(Snake);
            }
            return(Snake);
        }