protected boolean canRollDiceThreeTimes() {

        int inHouseCounter = 0;
        boolean inDestination[] = {false,false,false,false};
        for (GameFigure gameFigure : getGameFigures()) {
            if(gameFigure.getId() == GameFigure.IN_HOUSE_ID) {
                inHouseCounter++;
            }
            if(gameFigure.getId() >= gameFigure.getHomeStartId()) {
                inDestination[(gameFigure.getId()-gameFigure.getHomeStartId())%4] = true;
            }
        }
        boolean result = true;
        for(int i = inHouseCounter; i < 4; i++) {
            result = result && inDestination[i];
        }
        return inHouseCounter == 4 || result;
    }