NeseryozniyVET, огромное спасибо.
На досуге попробую.
А вот интересно, что будет, если построить рабочего в городе с населением 1?
И еще веселее, если city.changePopulation(-1) заменить на city.changePopulation(-2) и построить рабочего в городе с населением 1?

И еще вопросик.
А нельзя ли напротив, присоединить юнит к городу, чтобы увеличилось население города, т.е. завести юнит в город, и выполнить какое-то действие, чтобы юнит исчез, а население города увеличилось, например, на 1? В тройке это тоже делалось элементарно.