This second assignment will build upon our knowledge of poin
Solution
#include <iostream>
 #include <stdlib.h>
 #include <ctime>
using namespace std;
#define RACE_LENGTH 50
void advanceRacerA(int *ptrRacerA);
 void advanceRacerB(int *ptrRacerB);
 void printPosition(int *ptrRacerA, int *ptrRacerB);
int main()
 {
 // define racer\'s initial positions
 int racerA=0, racerB=0;
 
 cout << \"Welcome to Ryan\'s spartan Race!\";
 cout << \"READY...SET...GO!\";
 
 while(true) {
 advanceRacerA(&racerA);
 advanceRacerB(&racerB);
 printPosition(&racerA, &racerB);
 
 // if both fall at same spot, A looses
 if(racerA == racerB){
 racerA -= 1;
 }
 
 if((racerA == RACE_LENGTH) || (racerB == RACE_LENGTH)) {
 // race is over. One has won.
 if(racerB == RACE_LENGTH) {
 cout << \"\ Your friend has won the race - I must train harder!\ \";
 } else {
 cout << \"\ Yipppppie! I won!\ \";
 }
 break;
 }
 }
 
 return 0;
 }
 void advanceRacerA(int *ptrRacerA) {
    // get a random number between 1-10
 int moveement = rand() % 10 + 1;
   
    int initialPosition = *ptrRacerA;
    if(moveement <=3) {
        // Run
        *ptrRacerA = initialPosition + 4;
    } else if(moveement <=4) {
        // Sprint
        *ptrRacerA = initialPosition + 5;
    } else if(moveement <=7) {
        // Fall in mud
        *ptrRacerA = initialPosition - 2;
    } else if(moveement <=9) {
        // Fall off rope
        *ptrRacerA = initialPosition - 3;
    } else if(moveement <=10) {
        // Fall off monkey bars
        *ptrRacerA = initialPosition - 4;
    }   
    // iF racer has moved to start position by shifting left
    if(*ptrRacerA < 0) {
    *ptrRacerA = 0;
    } else if(*ptrRacerA > RACE_LENGTH) {
    *ptrRacerA = RACE_LENGTH;
    }
 }
void advanceRacerB(int *ptrRacerB) {
    // get a random number between 1-10
 int moveement = rand() % 10 + 1;
   
    int initialPosition = *ptrRacerB;
    if(moveement <=4) {
        // Run
        *ptrRacerB = initialPosition + 5;
    } else if(moveement <=5) {
        // Sprint
        *ptrRacerB = initialPosition + 6;
    } else if(moveement <=7) {
        // Fall in mud
        *ptrRacerB = initialPosition - 1;
    } else if(moveement <=9) {
        // Fall off rope
        *ptrRacerB = initialPosition - 2;
    } else if(moveement <=10) {
        // Fall off monkey bars
        *ptrRacerB = initialPosition - 4;
    }   
    // iF racer has moved to start position by shifting left
    if(*ptrRacerB < 0) {
    *ptrRacerB = 0;
    } else if(*ptrRacerB > RACE_LENGTH) {
    *ptrRacerB = RACE_LENGTH;
    }
 }
void printPosition(int *ptrRacerA, int *ptrRacerB) {
    int i=0;
    cout << \"\ \";
    for(i; i<= RACE_LENGTH; i++) {
        if(*ptrRacerA == i) {
            cout << \"A\";
        } else {
            cout << \" \";
        }
        if(*ptrRacerB == i) {
            cout << \"B\";
        } else {
            cout << \" \";
        }
    }
    cout << \"|\";
 }



