private void correctMove(AIHockeyist hockeyist, AIMove move) {
        List<AIPoint> evade = new ArrayList<AIPoint>();
        for (AIHockeyist opp : opponents) {
            AIUnit.LocationTicks lt = hockeyist.predictCollision(opp);
            AIPoint p = lt == null ? null : lt.location;
            if (p != null) {
                evade.add(p);
            }
        }
        double length = 0;
        for (AIPoint e : evade) {
            // this is vector
            AIPoint r = AIPoint.difference(hockeyist.getLocation(), e);
            length += r.scalar();
        }
        length *= 2;

        double oldAngle = hockeyist.getAngle();
        double[] turnAngles = {
            move.getTurn(), 0,
            -hockeyist.getMaxTurnPerTick(),
            hockeyist.getMaxTurnPerTick()
        };
        for (double turn : turnAngles) {
            double angle = AI.orientAngle(oldAngle + turn);
            hockeyist.setAngle(angle);
            AIPoint puckLocation = hockeyist.getPuckLocation();
            boolean bad = false;
            for (AIHockeyist opp : opponents) {
                if (opp.isInStickRange(puckLocation)) { //&& opp.distanceTo(puckLocation) < 80 ) {
                    bad = true;
                    break;
                }
            }
            if (!bad) {
                move.setTurn(turn);
                break;
            }
        }