Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This assignment requires you to code a simulation race between the tortoise and

ID: 3781982 • Letter: T

Question

This assignment requires you to code a simulation race between the tortoise and the hare. For this
project, you be using random-number generation to move the creatures. To make things more
interesting, the animals have to race up the side of a slippery mountain, which could cause them to
lose ground. In this race either animal could win or there could be a tie with no clear winner.
The animals begin at "Square 1" of 70 squares. Each of the squares represents a position the animal
can hold along the racetrack. The finish line is at Square 70. When an animal wins, a winning
message of your choice should be posted. For example:
• Yay! The rabbit won! He hops the fastest!
• Woo-hooo! Slow and steady wins the race! Congratulations, turtle!
• Tie score--no winner! Want to race again?
To start the race, print a message similar to:
• Bang! Off they go!
There is a clock that ticks once per second. With each tick of the clock, your program should
adjust the position of the animals according to the following rules:
Animal Move Type Percentage of the
Time
Actual Move
Tortoise Fast Plod 50% 3 squares to the
right
Tortoise Slip 20% 6 squares to the
left
Tortoise Slow Plod 30% 1 squares to the
right
Hare Sleep 20% No move at all
Hare Big Hop 20% 9 squares to the
right
Hare Big Slip 10% 12 squares to the
left
Hare Small Hop 30% 1 square to the
right
Hare Small Slip 20% 2 squares to the
left
Keep track of the positions of the animals by using variables. If an animal slips, the lowest it can
go is back to position 1. The highest it can go is to position 70 when it wins the race.
You will work with the percentages in the table above by generating a random integer current in
the range 1 <current 10.
For the tortoise, a "fast plod" is when 1 current 5, a "slip" when 6 current 7, or a "slow
plod" 8 current 10. A similar approach would be used to set up the moves for the hare.
For each tick of the clock (each repetition of the loop), print a 70-position line showing the letter T
in the tortoise’s position and the letter H in the hare’s position. If the two animals land on the
same square, which may happen, the animals will bump. If this happens, print BUMP! at the
current position. (There is no Bump penalty for either animal.)
After you print each line, check to see if either animal has landed on Square 70. If this happens,
print a winning-type message.
It will make the simulation more interesting if you have the user press any key after each iteration
of the loop, so that they can see the movement of the animals.

Explanation / Answer

#include #include #include //the Prototypes void moveTortoise( int *turtlePtr ); void moveHare( int *rabbitPtr ); //theGlobal Variables int harePosition = 0; int tortPosition = 0; int *turtlePtr = &tortPosition; int *rabbitPtr = &harePosition; void main(void) { //Local Variables int race = 1; size_t i; srand ( time(NULL) ); //nowStart the Race puts("ON YOUR MARK, GET SET BANG !!!!! AND THEY'RE OFF!!!!! "); puts("H T"); //the Race Loop: every Iteration is one "tic." while(race == 1){ moveTortoise(turtlePtr); moveHare(rabbitPtr); if(*rabbitPtr < 0){ *rabbitPtr = 0; } else if(*turtlePtr < 2){ *turtlePtr = 2; } else if(*rabbitPtr == *turtlePtr){ int k; for(k = 0; k < *rabbitPtr-1; k++){ printf(" "); } printf("Ouch! "); } //Print the Status of the Race. for( i = 0; i < 70; i++){ if(i == *rabbitPtr){ printf("H"); } else if (i == *turtlePtr){ printf("T"); } else{ printf(" "); } } printf(" "); //Win Conditions if( *rabbitPtr >= 70){ puts(" Hare wins. Yuch."); race = 0; } if(*turtlePtr >= 70){ puts(" TORTOISE WINS!!! YAY!!!"); race = 0; } if(*rabbitPtr >= 70 && *turtlePtr >= 70){ puts(" It's a tie."); race = 0; } } }//Function main /* Takes a psuedo-random value and then based on that value increments or decrements * the *turtlePtr (tortPosition) value. * * @param *turtlePtr - Position of the animal. */ void moveTortoise( int *turtlePtr ){ int value = rand() % 10 + 1; switch(value){ case 1 : case 2 : case 3 : case 4 : case 5 : *turtlePtr += 3; break; case 6 : case 7 : *turtlePtr -= 6; break; case 8 : case 9 : case 10 : *turtlePtr += 1; break; }//end Switch } /* Takes a psuedo-random value and then based on that value increments or decrements * the *rabbitPtr (harePosition) value. * * @param *rabbitPtr - Position of the animal. */ void moveHare( int *rabbitPtr ){ int value = rand() % 10 + 1; switch(value){ case 1 : case 2 : *rabbitPtr += 0; break; case 3 : case 4 : *rabbitPtr += 9; break; case 5 : *rabbitPtr -= 12; break; case 6 : case 7 : case 8 : *rabbitPtr += 1; break; case 9 : case 10 : *rabbitPtr -= 2; break; }//end Switch }
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote