On code clarity and functionality
The following 2 methods are identical in terms of what they do. I wonder which of the following is preferred and why?

This looks cleaner from readability stand point, however i don't like the `decks.playerDeck` construct

    -(void) playerMovedWithCard:(Card*) card {
        [decks removeCard:card fromDeck:decks.playerDeck];
        [decks addCard:card toDeck:decks.inplayDeck];
    }

Definitely simpler, however the idea that `card` is removed or added seems to be lost (thinking of reader of the code)

    -(void) playerMovedWithCard:(Card*) card {
        [decks.playerDeck removeObject:card];
        [decks.inplayDeck addObject:card];
    }

I am leaning towards the first implementation, as in future the task of `removeCard` may be more involved then simply removing an object.

What do you think?


On code clarity and functionality
===

The following 2 methods are identical in terms of what they do. I wonder which of the following is preferred and why?

This looks cleaner from readability stand point, however i don't like the `decks.playerDeck` construct

    -(void) playerMovedWithCard:(Card*) card {
        [decks removeCard:card fromDeck:decks.playerDeck];
        [decks addCard:card toDeck:decks.inplayDeck];
    }

Definitely simpler, however the idea that `card` is removed or added seems to be lost (thinking of reader of the code)

    -(void) playerMovedWithCard:(Card*) card {
        [decks.playerDeck removeObject:card];
        [decks.inplayDeck addObject:card];
    }

I am leaning towards the first implementation, as in future the task of `removeCard` may be more involved then simply removing an object.

What do you think?

