Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $noise=.1;
- $use_noise=TRUE;
- $units_per_farmer=2;
- $food_cons_farmer=1;
- $food_cons_soldier=1.5;
- $deaths_per_capita=.1;
- $immigration_rate=2;
- // Units that attract new people
- $food_steal_rate=10;
- $experience=0;
- $total_pop=100;
- $year=1;
- //if ($use_noise) print "Noise is on...$noise";
- if ($p_second=="") {
- if ($year>1) print "Current Year {$year}.";
- print "Total population : $total_pop\n";
- if ($year==1) print "Enter number of farmers to begin.";
- else print "Number of farmers?";
- print "";
- print "";
- print "Back to index";
- exit();
- }
- if ($p_second=="1") {
- if (!(is_numeric($p_num_farms))) {
- print "Error: You must enter an integer.\n";
- exit(0);
- }
- if ($p_num_farms>$total_pop) {
- print "Error. \n";
- print "Number of farmers entered ($p_num_farms) exceeds total population is ($total_pop).\n";
- exit();
- }
- $experience=0;
- $total_pop=100;
- } else {
- //$experience=$p_experience;
- $total_pop=$p_total_pop;
- $year=$p_second;
- if (!(is_numeric($p_num_farms))) {
- print "Error: You must enter an integer.\n";
- exit(0);
- print "Isn't an int\n";
- }
- if ($p_num_farms>$total_pop) {
- print "Error 1: \n";
- print "Number of farmers entered ($p_num_farms) exceeds total population is ($total_pop).\n";
- exit();
- }
- }
- if (!(is_numeric($p_num_farms))) {
- print "Error: The number of farmers must be an integer\n";exit(); } print "Experience is $experience..";
- if ($p_num_farmers=="-99999999") print "cheat";
- if ($p_num_farms<0) {
- print "Error: Farmers must be a positive number";
- exit(0);
- }
- $farmers=$p_num_farms;
- $soldiers=$total_pop-$farmers;
- $surplus=0; print "Year $year\n";
- print "Farmers $farmers\n";
- print "Soldiers $soldiers\n";
- print "------\n";
- $food_required=round(food_require($food_cons_farmer,$farmers,$food_cons_soldier,$soldiers));
- $food_required=noisify($food_required,$use_noise,$noise); $food_produced=food_produce ($units_per_farmer,$farmers);
- $food_produced=noisify($food_produced,$use_noise,$noise);
- $food_stolen=round(food_steal($food_produced,$food_steal_rate));
- $food_stolen=noisify($food_stolen,$use_noise,$noise);
- $surplus=round($food_produced-$food_required-$food_stolen);
- print "Food required $food_required\n";
- $number_bandit_deaths=round(bandit_death($deaths_per_capita, $farmers, $soldiers));
- $number_bandit_deaths=noisify($number_bandit_deaths,$use_noise,$noise);
- $farmers-=$number_bandit_deaths;
- $starvation_deaths=round(number_starve_deaths($surplus,$food_cons_farmer,$farmers,$food_cons_soldier));
- if ($starvation_deaths>0) commit_starve_deaths($deaths,$soldiers,$farmers);
- $new_imms=round(do_immigration($surplus,$immigration_rate));
- print "Food Produced: $food_produced\n";
- print "Food Stolen: $food_stolen\n";
- print "Surplus: $surplus\n";
- print "Deaths by bandits $number_bandit_deaths\n";
- print "Deaths by starvation $starvation_deaths\n";
- print "New immigrants $new_imms\n";
- $total_pop=$total_pop-$number_bandit_deaths-$starvation_deaths+$new_imms;
- // Check if some soldiers died
- if (($starvation_deaths+$number_bandit_deaths)>$farmers)
- $soldiers-=($starvation_deaths+$number_bandit_deaths)-$farmers;
- print "Total experience : $experience + $soldiers=";
- $experience+=$soldiers;
- print $experience; print "";
- if ($year>=10) {
- // Game over print "Game over\n";
- $farmers-=($starvation_deaths+$number_bandit_deaths);
- if ($farmers<0) $farmers=0;
- $farmers+=$new_imms;
- print "Surviving Farmers: $farmers";
- $extra_exp = round($farmers/4);
- $experience+=$extra_exp;
- print " giving {$extra_exp} extra experience."; print "Your final score is: {$experience}";
- }
- }
- function noisify($value,$use_noise,$noise) {
- if (!($use_noise)) return $value;
- else {
- $ten=$value*$noise;
- $r=rand($value-$ten,$value+ten);
- return $r;
- }
- }
- function do_immigration($surplus,$immigration_rate) {
- $imms=0; $imms=$surplus/$immigration_rate; if ($surplus>0) return $imms; else return 0;
- }
- function commit_starve_deaths($deaths,&$soldiers,&$farmers) {
- if ($deaths>0) {
- // Some have died
- if ($deaths>$farmers) {
- // All farmers and some soldiers have starved
- $soldiers-=($deaths-$farmers); $farmers=0;
- } else {
- // Some farmers have starved
- $farmers-=$deaths;
- }
- }
- }
- // Total number who should die
- function number_starve_deaths($local_surplus,$food_cons_farmer,$farmers,$food_cons_soldier) {
- $deaths=0; $temp_surplus=abs($local_surplus);
- // cout << "Temp surplus is " << temp_surplus << endl;
- if ($local_surplus>=0) return 0;
- $local_surplus=abs($local_surplus);
- // How many farmers should die?
- $dead_farmers=$local_surplus/$food_cons_farmer;
- if ($farmers>$dead_farmers) {
- // Not all farmers die
- $deaths=$dead_farmers; return $deaths;
- } else {
- // All farmers dead, plus some soldiers
- $temp_surplus-=$farmers*$food_cons_farmer;
- // cout << "New temp surplus is " << temp_surplus << endl;
- $dead_soldiers=$temp_surplus/$food_cons_soldier;
- $deaths=$farmers+$dead_soldiers; return $deaths;
- }
- }
- function food_require($food_cons_farmer,$farmers,$food_cons_soldier,$soldiers) {
- return ($food_cons_farmer*$farmers+$food_cons_soldier*$soldiers);
- }
- function food_produce ($units_per_farmer,$farmers) {
- return ($units_per_farmer*$farmers);
- }
- function food_steal ($tot,$food_steal_rate) {
- // print "Inside food_steal: $tot...$food_steal_rate...\n";
- return ($tot/$food_steal_rate);
- }
- function bandit_death ($deaths_per_capita, $farmers, $soldiers) {
- $x=0; $y=0; $x=$deaths_per_capita * $farmers-$soldiers/10;
- // cout << " Bandit Death Code : " << deaths_per_capita * farmers << ":" << soldiers/10 << ":" << x << endl;
- if ($x<0) $x=0; return $x;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement