public Position getPosition(final IndexPosition key, final Player access) throws GameException { if ((key.getCurveIndex() >= 0) && (key.getCurveIndex() < NUM_ROWS)) return basePosition .add(rowOffset.scale(key.getCurveIndex())) .add(columnOffset.scale(key.getCardIndex())); else if (CURVE_CMDS == key.getCurveIndex()) return cmdPosition.add(cmdOffset.scale(key.getCardIndex())); else return _mplayerManager.getPosition(key, access); }