Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Programmer:Kayleigh Keefe
- ID:12453079
- Section:H
- Date:9/22/17
- Assignment:HW4
- Purpose:Walk Simulator*/
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main ()
- {
- const int walk_min=0;
- const int walk_max=200;
- const int first_home_distance=20;
- const int ideal_office_distance=50;
- const int ideal_home_distance=30;
- const int min_decision_count=5;
- const int max_decision_count=500;
- const int feet_to_mile=5280;
- const int percent_magnitude=100;
- int decision_count=0;
- int office_distance;
- int home_distance;
- int travel_distance=0;
- int total_travel_distance=0;
- int walk_count;
- int x_coordinate=0;
- int y_coordinate=0;
- int direction=0;
- int times_home=0;
- int times_office=0;
- int times_lost=0;
- float percent_home;
- float percent_office;
- float percent_lost;
- float mile;
- for(walk_count=0; walk_count<200;walk_count++)
- {
- x_coordinate=0;
- y_coordinate=0;
- decision_count=0;
- home_distance=0;
- office_distance=1414;
- direction=0;
- travel_distance=0;
- total_travel_distance=0;
- travel_distance=first_home_distance+walk_count;
- //Moleman will always start facing east.
- x_coordinate=x_coordinate+travel_distance;
- total_travel_distance=total_travel_distance+travel_distance;
- do
- {
- decision_count++;
- travel_distance=((((travel_distance*214013)+2531011)%2147483647)%200)+
- 100;
- total_travel_distance=total_travel_distance+travel_distance;
- direction+=(decision_count%7==0)?-1:1;
- switch(direction%4)
- {
- case 0:
- if(decision_count%7==0)
- {
- //subtract travel_distance from x
- x_coordinate=x_coordinate-travel_distance;
- }
- else
- {
- //add travel_distance to x
- x_coordinate=x_coordinate+travel_distance;
- }
- break;
- case 1:
- if(decision_count%7==0)
- {
- //add travel_distance to y
- y_coordinate=y_coordinate+travel_distance;
- }
- else
- {
- //subtract travel_distance from y
- y_coordinate=y_coordinate-travel_distance;
- }
- break;
- case 2:
- if(decision_count%7==0)
- {
- //add travel_distance to x
- x_coordinate=x_coordinate+travel_distance;
- }
- else
- {
- //subtract travel_distance from x
- x_coordinate=x_coordinate-travel_distance;
- }
- break;
- case 3:
- if(decision_count%7==0)
- {
- //subtract travel_distance from y
- y_coordinate=y_coordinate-travel_distance;
- }
- else
- {
- //add travel distance to y
- y_coordinate=y_coordinate+travel_distance;
- }
- break;
- }
- home_distance=sqrt((x_coordinate*x_coordinate)+
- (y_coordinate*y_coordinate));
- office_distance=sqrt(((1000-x_coordinate)*(1000-x_coordinate))+
- ((1000-y_coordinate)*(1000-y_coordinate)));
- }
- while(!((decision_count>=max_decision_count)||((home_distance<=
- ideal_home_distance) && (decision_count > min_decision_count))||
- (office_distance<=ideal_office_distance)));
- mile=((static_cast<float>(total_travel_distance))/(feet_to_mile));
- if(home_distance<=ideal_home_distance)
- {
- times_home++;
- cout<<"Home"<<endl;
- }
- else if(office_distance<=ideal_office_distance)
- {
- times_office++;
- cout<<"Dr. Nick's office"<<endl;
- }
- else if(decision_count >= max_decision_count)
- {
- times_lost++;
- cout<<"Lost"<<endl;
- cout<<decision_count<<endl;
- }
- cout<<"Total distance traveled is "<<total_travel_distance<<
- " feet (~"<<mile<<" miles)."<<endl;
- }
- percent_home=(((static_cast<float>(times_home)/walk_max)*
- percent_magnitude));
- percent_office=(((static_cast<float>(times_office)/walk_max)*
- percent_magnitude));
- percent_lost=(((static_cast<float>(times_lost)/walk_max)*
- percent_magnitude));
- cout<<"=============================================================="<<endl;
- cout<<"Percentage of times ended up at Nick's office:"<<endl;
- cout<<percent_office<<"%."<<endl;
- cout<<"Percentage of times ended up home:"<<endl;
- cout<<percent_home<<"%."<<endl;
- cout<<"Percentage of times ended up lost:"<<endl;
- cout<<percent_lost<<"%."<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement