In: Computer Science
Question 17- Chapter 10 (Internet and World Wide Web 5th Edition)
You will use random number generation to develop a simulation for the classic race of the tortoise and the hare. The contenders begin the race at square 1 of 70 squares. Each square represents a possible position along the race course. The finish line is at square 70. The first contender to reach or pass square 70 is rewarded with a pail of fresh carrots and lettuce. The course weaves its way up the side of a slippery mountain, so occasionally the contenders lose ground. Assume that there is a clock that ticks once per second. With each tick of the clock, your script should adjust the position of the animals according to the rules in Table 1 below:
Animal Move type Percentage of time Actual move Tortoise Fast plod 50% 3 squares to the right Slip 20% 6 squares to the left Slow plod 30% 1 square to the right Hare Sleep 20% No move at all Big hop 20% 9 squares to the right Big slip 10% 12 squares to the left Small hop 30% 1 square to the right Small slip 20% 2 squares to the left
Use variables to keep track of the positions of the animals (i.e., position numbers are 1 – 70). Start each animal at position 1. If an animal slips left before square 1, move the animal back to square 1. Generate the percentages in Table 1 by producing a random integer i in the range 1 ≤ i ≤ 10. For the tortoise, perform a “fast plod” when 1 ≤ i ≤ 5, a “slip” when 6 ≤ i ≤ 7, and a “slow plod” when 8 ≤ i ≤ 10. Use a similar technique to move the hare. Provide a button labeled “Start Race”, on which the user clicks to start the race. Begin the race by printing: ON YOUR MARK, GET SET BANG!!! AND THEY’RE OFF!!! Then for each tick of the clock (i.e., each repetition of a loop), print a 70-position line showing the letter T in the position of the tortoise and the letter H in the position of the hare. Occasionally, the contenders will land on the same square. In this case, the tortoise bites the hare, and your script should print OUCH!!! at that position. All print positions other than the T, the H, or the OUCH!!! should be blank. After each line is printed, test whether either animal has reached or passed square 70. If so, print the winner and terminate the simulation. If the tortoise wins, print TORTOISE WINS!!! YAY!!! If the hare wins, print HARE WINS. YUCK! If both animals win on the same tick, print IT’S A TIE. Also, print the time elapsed (the number of ticks) of the race. If neither animal wins, perform the loop again to simulate the next tick of the clock. Separate your script (.js file) and your CSS rules (.css file – if any) from the HTML5 file. Note: Later in the book, we introduce a number of Dynamic HTML capabilities, such as graphics, images, animation and sound. As you study those features, you may enjoy enhancing your tortoise-and-hare contest simulation. [
Here is the code for the given scenario:
#include <stdlib.h>
#include<stdio.h>
#include <time.h>
int main(){
const int FINISH = 70;
int i;
int hare = 0;
int tortoise = 0;
int t;
int h;
printf("The race between the Tortiose and the Hare!\nOn your mark, get set, Bang !!!\n");
printf("And they are off!\n");
//move untill either contender finish the race
while(tortoise < FINISH && hare < FINISH) {
srand(time(NULL));
i=rand()%10 +1;
//Moving the tortiose
if(i >= 8)
tortoise += 1;
else if (i >=6)
tortoise -= 6;
else if(i>=1)
tortoise += 3;
//Moving the hare
if (i >= 8)
hare += 1;
else if (i>= 6)
hare = hare;
else if(i >= 4)
hare += 9;
else if (i== 3)
hare -= 12;
else if (i >= 1)
hare -= 2;
//When the tortise and hare are on the same space.
else if(hare == tortoise){
int k;
for(k = 0; k < hare-1; k++){
printf(" ");
}
printf("Ouch!");
}
//status of the race
for( i = 0; i <= 70; i++){
if(i == hare){
printf("H");
}
else if (i == tortoise){
printf("T");
}
else{
printf("-");
printf("\n");
}
}
}
// Which one wins
if( hare >= 70){
printf("Hare wins. Yuch.\n");
}
if(tortoise >= 70){
printf("\nTORTOISE WINS!!! YAY\n!!!");
}
if (hare >= 70 && tortoise >= 70){
printf("It's a tie.\n");
}
return 0;
}