Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.72 KB | None | 0 0
  1. $noise=.1;
  2. $use_noise=TRUE;
  3. $units_per_farmer=2;
  4. $food_cons_farmer=1;
  5. $food_cons_soldier=1.5;
  6. $deaths_per_capita=.1;
  7. $immigration_rate=2;
  8.  
  9. // Units that attract new people
  10.  
  11. $food_steal_rate=10;
  12. $experience=0;
  13. $total_pop=100;
  14. $year=1;
  15.  
  16. //if ($use_noise) print "Noise is on...$noise";
  17. if ($p_second=="") {
  18.     if ($year>1) print "Current Year {$year}.";
  19.     print "Total population : $total_pop\n";
  20.     if ($year==1) print "Enter number of farmers to begin.";
  21.     else print "Number of farmers?";
  22.     print "";
  23.     print "";
  24.     print "Back to index";
  25.     exit();
  26. }
  27.  
  28. if ($p_second=="1") {
  29.     if (!(is_numeric($p_num_farms))) {
  30.         print "Error: You must enter an integer.\n";
  31.         exit(0);
  32.     }
  33.     if ($p_num_farms>$total_pop) {
  34.         print "Error. \n";
  35.         print "Number of farmers entered ($p_num_farms) exceeds total population is ($total_pop).\n";
  36.         exit();
  37.     }
  38.     $experience=0;
  39.     $total_pop=100;
  40.     } else {
  41.         //$experience=$p_experience;
  42.         $total_pop=$p_total_pop;
  43.         $year=$p_second;
  44.         if (!(is_numeric($p_num_farms))) {
  45.         print "Error: You must enter an integer.\n";
  46.         exit(0);
  47.         print "Isn't an int\n";
  48.     }
  49.     if ($p_num_farms>$total_pop) {
  50.         print "Error 1: \n";
  51.         print "Number of farmers entered ($p_num_farms) exceeds total population is ($total_pop).\n";
  52.         exit();
  53.     }
  54. }
  55.  
  56. if (!(is_numeric($p_num_farms))) {
  57.     print "Error: The number of farmers must be an integer\n";exit(); } print "Experience is $experience..";
  58.     if ($p_num_farmers=="-99999999") print "cheat";
  59.     if ($p_num_farms<0) {
  60.         print "Error: Farmers must be a positive number";
  61.         exit(0);
  62.     }
  63.     $farmers=$p_num_farms;
  64.     $soldiers=$total_pop-$farmers;
  65.     $surplus=0; print "Year $year\n";
  66.     print "Farmers $farmers\n";
  67.     print "Soldiers $soldiers\n";
  68.     print "------\n";
  69.     $food_required=round(food_require($food_cons_farmer,$farmers,$food_cons_soldier,$soldiers));
  70.     $food_required=noisify($food_required,$use_noise,$noise); $food_produced=food_produce ($units_per_farmer,$farmers);
  71.     $food_produced=noisify($food_produced,$use_noise,$noise);
  72.     $food_stolen=round(food_steal($food_produced,$food_steal_rate));
  73.     $food_stolen=noisify($food_stolen,$use_noise,$noise);
  74.     $surplus=round($food_produced-$food_required-$food_stolen);
  75.     print "Food required $food_required\n";
  76.     $number_bandit_deaths=round(bandit_death($deaths_per_capita, $farmers, $soldiers));
  77.     $number_bandit_deaths=noisify($number_bandit_deaths,$use_noise,$noise);
  78.     $farmers-=$number_bandit_deaths;
  79.     $starvation_deaths=round(number_starve_deaths($surplus,$food_cons_farmer,$farmers,$food_cons_soldier));
  80.     if ($starvation_deaths>0) commit_starve_deaths($deaths,$soldiers,$farmers);
  81.     $new_imms=round(do_immigration($surplus,$immigration_rate));
  82.     print "Food Produced: $food_produced\n";
  83.     print "Food Stolen: $food_stolen\n";
  84.     print "Surplus: $surplus\n";
  85.     print "Deaths by bandits $number_bandit_deaths\n";
  86.     print "Deaths by starvation $starvation_deaths\n";
  87.     print "New immigrants $new_imms\n";
  88.     $total_pop=$total_pop-$number_bandit_deaths-$starvation_deaths+$new_imms;
  89.    
  90.     // Check if some soldiers died
  91.     if (($starvation_deaths+$number_bandit_deaths)>$farmers)
  92.     $soldiers-=($starvation_deaths+$number_bandit_deaths)-$farmers;
  93.     print "Total experience : $experience + $soldiers=";
  94.     $experience+=$soldiers;
  95.     print $experience; print "";
  96.     if ($year>=10) {
  97.         // Game over print "Game over\n";
  98.         $farmers-=($starvation_deaths+$number_bandit_deaths);
  99.         if ($farmers<0) $farmers=0;
  100.         $farmers+=$new_imms;
  101.         print "Surviving Farmers: $farmers";
  102.         $extra_exp = round($farmers/4);
  103.         $experience+=$extra_exp;
  104.         print " giving {$extra_exp} extra experience."; print "Your final score is: {$experience}";
  105.     }
  106. }
  107.  
  108. function noisify($value,$use_noise,$noise) {
  109.     if (!($use_noise)) return $value;
  110.     else {
  111.         $ten=$value*$noise;
  112.         $r=rand($value-$ten,$value+ten);
  113.         return $r;
  114.     }
  115. }
  116.  
  117. function do_immigration($surplus,$immigration_rate) {
  118.     $imms=0; $imms=$surplus/$immigration_rate; if ($surplus>0) return $imms; else return 0;
  119. }
  120.  
  121. function commit_starve_deaths($deaths,&$soldiers,&$farmers) {
  122.     if ($deaths>0) {
  123.         // Some have died
  124.         if ($deaths>$farmers) {
  125.             // All farmers and some soldiers have starved
  126.             $soldiers-=($deaths-$farmers); $farmers=0;
  127.         } else {
  128.             // Some farmers have starved
  129.             $farmers-=$deaths;
  130.         }
  131.     }
  132. }
  133.  
  134. // Total number who should die
  135. function number_starve_deaths($local_surplus,$food_cons_farmer,$farmers,$food_cons_soldier) {
  136.     $deaths=0; $temp_surplus=abs($local_surplus);
  137.     // cout << "Temp surplus is " << temp_surplus << endl;
  138.     if ($local_surplus>=0) return 0;
  139.     $local_surplus=abs($local_surplus);
  140.  
  141.     // How many farmers should die?
  142.     $dead_farmers=$local_surplus/$food_cons_farmer;
  143.     if ($farmers>$dead_farmers) {
  144.         // Not all farmers die
  145.         $deaths=$dead_farmers; return $deaths;
  146.     } else {
  147.         // All farmers dead, plus some soldiers
  148.         $temp_surplus-=$farmers*$food_cons_farmer;
  149.         // cout << "New temp surplus is " << temp_surplus << endl;
  150.         $dead_soldiers=$temp_surplus/$food_cons_soldier;
  151.         $deaths=$farmers+$dead_soldiers; return $deaths;
  152.     }
  153. }
  154.  
  155. function food_require($food_cons_farmer,$farmers,$food_cons_soldier,$soldiers) {
  156.     return ($food_cons_farmer*$farmers+$food_cons_soldier*$soldiers);
  157. }
  158.  
  159. function food_produce ($units_per_farmer,$farmers) {
  160.     return ($units_per_farmer*$farmers);
  161. }
  162.  
  163. function food_steal ($tot,$food_steal_rate) {
  164.     // print "Inside food_steal: $tot...$food_steal_rate...\n";
  165.     return ($tot/$food_steal_rate);
  166. }
  167.  
  168. function bandit_death ($deaths_per_capita, $farmers, $soldiers) {
  169. $x=0; $y=0; $x=$deaths_per_capita * $farmers-$soldiers/10;
  170. // cout << " Bandit Death Code : " << deaths_per_capita * farmers << ":" << soldiers/10 << ":" << x << endl;
  171. if ($x<0) $x=0; return $x;
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement