@Override
    public boolean move(int x, int y, int xf, int yf) {
        if (canMove(x, y)) {
            for (int[] hint : getHints(x, y)) {
                if ((xf == hint[0]) && (yf == hint[1])) {
                    //se arrivo in fondo, devo creare un damone
                    if (((xf == 0) || (xf == 8 - 1)) && (tabellone[x][y] < 3)) {
                        tabellone[xf][yf] = tabellone[x][y] + 2;
                        justDamone = true;
                    } else {
                        tabellone[xf][yf] = tabellone[x][y];
                    }
                    tabellone[x][y] = VUOTO;
                    return true;
                }
            }
        }
        return false;
    }