The cpp. file “PT_Control_80_110.cpp” contains the basic code of our model. It is an example of one parameter combination when the uniparental care efficiency is 80% and the season length is 110 days. By running the cpp. File, you will create two csv. files, one contains the distribution of parental care over different generations. It will be named as “dataCTUnisur80%110ControlXX”; the other one contains the gene values of each individual over generation times. It will be named as “dataGNUnisur80%110ControlXX” For the other parameter combinations, you can change the integer variable in the code called “iBreedingSeason " for setting the season length; and the other double variable called “dChickUniSur” for setting the uniparental care efficiency. For example: when iBreedingSeason = 140, and dChickUniSur = 80%, you will get the outcomes of when season length is 140 days and uniparental care efficiency is 80%. You can use the R script called “ModelAnalyses.R” to analyse the csv files, which will be translated in to figures and graphs showed in our manuscript.