private int getReinforcement(Player p) {
        if (gameView.getRoundNumber() == 1) {
            int playerno = gameView.getPlayers().size() - 2;
            if (playerno > 4) {
                playerno = 4;
            }
            return 40 - playerno * 5 - gameView.getOwnedCountryNo(p);
        } else {
            Collection<Country> countries = gameView.getCountries();
            int countryno = 0;
            // Count owned territorry
            for (Country c : countries) {
                if (c.getOwner() == p) {
                    countryno++;
                }
            }
            int reinforcement = countryno / 3;

            // Count continents
            Collection<Continent> continents = gameView.getContinents();
            for (Continent continent : continents) {
                boolean ownedEveryCountry = true;
                Collection<Country> contCountries = continent.getCountries();
                for (Country c : contCountries) {
                    if (c.getOwner() != p) {
                        ownedEveryCountry = false;
                        break;
                    }
                }
                if (ownedEveryCountry) {
                    reinforcement += getContinentReinforcement(continent);
                }
            }
            if (reinforcement < 3) {
                reinforcement = 3;
            }
            return reinforcement;
        }
    }