public void act() {
        //If we're not allowed to move the card about, don't do anything
        if(!canDrag) return; 
                
        MouseInfo mouse = Greenfoot.getMouseInfo();
        if(! (mouse!=null && mouse.getActor()==this)) return; //If the mouse isn't used on this card, don't do anything
        
        /*
* If we double click a card on top of a players's card, try and add it to a row
*/
        if(mouse.getClickCount()==2 && ((getAccepter() instanceof Player && ((Player)getAccepter()).canSelect(this)) )) {
            placeOnArow();
            nextTurn();
        }
        
        /*
* Do this on the initial press (at the start of the drag operation
*/
        if (Greenfoot.mousePressed(this)) {
            xOffset = getX()-mouse.getX();
            yOffset = getY()-mouse.getY();
            setInitial(getX(), getY());
            getCardsOn();
        }
        
        /*
* Do this constantly while the card is being dragged
*/
        if(Greenfoot.mouseDragged(this)) {
            setLocation(mouse.getX()+xOffset, mouse.getY()+yOffset);
            reAdd();
        }
        
        /*
* Do this when the drag has ended
*/
        if(Greenfoot.mouseDragEnded(this)) {
            placeInAccepter();
        }
    }