protected void calcMap()
    {
        int pointAmt=20;
        for (int x=0;x<Square.xAmt();++x)
        {
            for (int y=0;y<Square.yAmt();++y)
            {
                map[x][y].paths=0;
            }
        }
        for (int n=0;n<pointAmt;n++)
        {
//            System.out.println("Calcing point "+n);
            djikstra(getRandPoint());
        }
        double highest=0;
        Square best=nextPos();
        for (int x=0;x<Square.xAmt();++x)
        {
            for (int y=0;y<Square.yAmt();++y)
            {
                if (map[x][y].paths!=0)
                {
                    map[x][y].value=map[x][y].paths;
                    for (int b=0;b<Bike.amt();++b)
                    {
                        double dist=Util.gridDistance(Bike.get(b).nextPos(),Square.get(x,y));
                        double val=pointAmt/(1+dist);
//                        if (Bike.get(b).equals(this))
//                            map[x][y].value+=val;
//                        else
                            map[x][y].value-=val;
                    }
                    Square sqr=Square.get(x, y);
                    if (map[x][y].value>highest)
                    {
                        highest=map[x][y].value;
                        best=sqr;
                    }
//                    Draw.draw(new Draw(""+(int)map[x][y].value,sqr.px(),sqr.py(),10,Color.YELLOW,1));
                }
            }
        }
        move(getPos().getDir(best));
    }