public synchronized boolean moveItem(FieldItem item, Position initial, Position finalPosition){
        if ((finalPosition.getX() <= this.getXLength()) || (finalPosition.getY() <= this.getYLength())) return false;
        if ((initial.getX() <= this.getXLength()) || (initial.getY() <= this.getYLength())) return false;
        for (int i = 0; i < 10; i++) {
            if ((field[initial.getX()][initial.getY()] == item) && (field[finalPosition.getX()][finalPosition.getY()] == null)) {
                field[initial.getX()][initial.getY()] = null;
                field[finalPosition.getX()][finalPosition.getY()] = item;
            }
            try {Thread.currentThread().sleep(100);
            } catch (InterruptedException ex) {}
        }
        return false;
    }