Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.39 KB | None | 0 0
  1. /*Programmer:Kayleigh Keefe
  2.   ID:12453079
  3.   Section:H
  4.   Date:9/22/17
  5.   Assignment:HW4
  6.   Purpose:Walk Simulator*/
  7.  
  8. #include <iostream>
  9. #include <cmath>
  10. using namespace std;
  11. int main ()
  12. {
  13.   const int walk_min=0;
  14.   const int walk_max=200;
  15.   const int first_home_distance=20;
  16.   const int ideal_office_distance=50;
  17.   const int ideal_home_distance=30;
  18.   const int min_decision_count=5;
  19.   const int max_decision_count=500;
  20.   const int feet_to_mile=5280;
  21.   const int percent_magnitude=100;
  22.   int decision_count=0;
  23.   int office_distance;
  24.   int home_distance;
  25.   int travel_distance=0;
  26.   int total_travel_distance=0;
  27.   int walk_count;
  28.   int x_coordinate=0;
  29.   int y_coordinate=0;
  30.   int direction=0;
  31.   int times_home=0;
  32.   int times_office=0;
  33.   int times_lost=0;
  34.   float percent_home;
  35.   float percent_office;
  36.   float percent_lost;
  37.   float mile;
  38.   for(walk_count=0; walk_count<200;walk_count++)
  39.   {
  40.     x_coordinate=0;
  41.     y_coordinate=0;
  42.     decision_count=0;
  43.     home_distance=0;
  44.     office_distance=1414;
  45.     direction=0;
  46.     travel_distance=0;
  47.     total_travel_distance=0;
  48.     travel_distance=first_home_distance+walk_count;
  49.     //Moleman will always start facing east.
  50.     x_coordinate=x_coordinate+travel_distance;
  51.     total_travel_distance=total_travel_distance+travel_distance;
  52.     do
  53.     {
  54.       decision_count++;
  55.       travel_distance=((((travel_distance*214013)+2531011)%2147483647)%200)+
  56.       100;
  57.       total_travel_distance=total_travel_distance+travel_distance;
  58.       direction+=(decision_count%7==0)?-1:1;
  59.       switch(direction%4)
  60.       {
  61.         case 0:
  62.         if(decision_count%7==0)
  63.         {
  64.           //subtract travel_distance from x
  65.           x_coordinate=x_coordinate-travel_distance;
  66.         }
  67.         else
  68.         {
  69.           //add travel_distance to x
  70.           x_coordinate=x_coordinate+travel_distance;
  71.         }
  72.         break;
  73.         case 1:
  74.         if(decision_count%7==0)
  75.         {
  76.           //add travel_distance to y
  77.           y_coordinate=y_coordinate+travel_distance;
  78.         }
  79.         else
  80.         {
  81.           //subtract travel_distance from y
  82.           y_coordinate=y_coordinate-travel_distance;
  83.         }
  84.         break;
  85.         case 2:
  86.         if(decision_count%7==0)
  87.         {
  88.           //add travel_distance to x
  89.           x_coordinate=x_coordinate+travel_distance;
  90.         }
  91.         else
  92.         {
  93.           //subtract travel_distance from x
  94.           x_coordinate=x_coordinate-travel_distance;
  95.         }  
  96.         break;
  97.         case 3:
  98.         if(decision_count%7==0)
  99.         {
  100.           //subtract travel_distance from y
  101.           y_coordinate=y_coordinate-travel_distance;
  102.         }
  103.         else
  104.         {
  105.           //add travel distance to y
  106.           y_coordinate=y_coordinate+travel_distance;
  107.         }  
  108.         break;
  109.       }
  110.       home_distance=sqrt((x_coordinate*x_coordinate)+
  111.       (y_coordinate*y_coordinate));
  112.       office_distance=sqrt(((1000-x_coordinate)*(1000-x_coordinate))+
  113.       ((1000-y_coordinate)*(1000-y_coordinate)));
  114.     }
  115.     while(!((decision_count>=max_decision_count)||((home_distance<=
  116.     ideal_home_distance) && (decision_count > min_decision_count))||
  117.     (office_distance<=ideal_office_distance)));
  118.    
  119.     mile=((static_cast<float>(total_travel_distance))/(feet_to_mile));
  120.    
  121.     if(home_distance<=ideal_home_distance)
  122.     {
  123.       times_home++;
  124.       cout<<"Home"<<endl;
  125.     }
  126.     else if(office_distance<=ideal_office_distance)
  127.     {
  128.       times_office++;
  129.       cout<<"Dr. Nick's office"<<endl;
  130.     }
  131.     else if(decision_count >= max_decision_count)
  132.     {
  133.       times_lost++;
  134.       cout<<"Lost"<<endl;
  135.       cout<<decision_count<<endl;
  136.     }
  137.     cout<<"Total distance traveled is "<<total_travel_distance<<
  138.     " feet (~"<<mile<<" miles)."<<endl;
  139.   }
  140.   percent_home=(((static_cast<float>(times_home)/walk_max)*
  141.   percent_magnitude));
  142.   percent_office=(((static_cast<float>(times_office)/walk_max)*
  143.   percent_magnitude));
  144.   percent_lost=(((static_cast<float>(times_lost)/walk_max)*
  145.   percent_magnitude));
  146.   cout<<"=============================================================="<<endl;
  147.   cout<<"Percentage of times ended up at Nick's office:"<<endl;
  148.   cout<<percent_office<<"%."<<endl;
  149.   cout<<"Percentage of times ended up home:"<<endl;
  150.   cout<<percent_home<<"%."<<endl;
  151.   cout<<"Percentage of times ended up lost:"<<endl;
  152.   cout<<percent_lost<<"%."<<endl;
  153.   return 0;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement