public static void run(String[] args)
        {
            Point a = new Point(49, 49);
            Point b = new Point(0, 0);

            Logger    log = new Logger();
            Stopwatch s   = new Stopwatch();

            log.addToLog("Initializing " + mapWidth + "x" + mapHeight + " map...");
            initMap();
            AStarMap map = new AStarMap(mapWidth, mapHeight, obstacleMap);

            log.addToLog("Generating Bresenham's Line from " + a.x + "," + a.y + " to " + b.x + "," + b.y + "...");
            s.Start();
            List <Point> line = Bresenham.getCellsOnLine(a, b);

            s.Stop();
            log.addToLog("Generation took " + s.ElapsedMilliseconds + " ms");

            String str = "";

            foreach (Point point in line)
            {
                str = str + "(" + point.x + "," + point.y + ") ";
            }
            log.addToLog("Line is:" + str);

            log.addToLog("Writing line to map...");
            log.addToLog("Printing map...");
            new PrintMap(map, line);
        }
        private bool lineClear(Point a, Point b)
        {
            List <Point> pointsOnLine = Bresenham.getCellsOnLine(a, b);

            foreach (Point p in pointsOnLine)
            {
                AStarCell cell = map.getCell(p.x, p.y);
                if (cell == null || cell.isObstacle())
                {
                    return(false);
                }
            }
            return(true);
        }
        public Point raycast(Point start, Point goal)
        {
            List <Point> pointsOnLine = Bresenham.getCellsOnLine(start, goal);

            Point hitPoint = (Point)start.Clone();

            foreach (Point p in pointsOnLine)
            {
                AStarCell cell = map.getCell(p.x, p.y);
                if (cell == null || cell.isObstacle())
                {
                    break;
                }
                else
                {
                    hitPoint = p;
                }
            }
            return(hitPoint);
        }