Question: / / - - - - - - - - - - - - - - - - - - - - - - -

//---------------------------------------------------------
// Dr. Art Hanna
// Chapter #7, Problem #28
// Problem28.java
//
// Sample Program Dialog
//=====================
// C:\COURSES\CS2323\Assignments\Chapter7>java Problem2820
//1| H T |
//2| T H |
//3| T H |
//4| T H |
//5| T H |
//6|*|
//7| T H |
//8| T H |
//9| T H|
// Hare wins!
//---------------------------------------------------------
import java.util.Random;
public class Problem28
{
private static Random RANDOM = new Random();
//---------------------------------------------------------
public static void main(String[] args)
//---------------------------------------------------------
{
if ( args.length !=1)
System.out.println("Format should be \"java Problem28 n\"
");
else
{
int n = Integer.parseInt(args[0]);
int harePosition =1;
int tortoisePosition =1;
int clock =0;
do
{
clock++;
harePosition = NewHarePosition(harePosition,n);
tortoisePosition = NewTortoisePosition(tortoisePosition,n);
DisplayRacePositions(n,clock,harePosition,tortoisePosition);
} while ((harePosition < n) && (tortoisePosition < n));
if ((harePosition == n) && (tortoisePosition < n))
System.out.println("Hare wins!");
else if ((harePosition < n) && (tortoisePosition == n))
System.out.println("Tortoise wins!");
else
System.out.println("Tie!");
}
}
//---------------------------------------------------------
private static int NewHarePosition(int harePosition,final int n)
//---------------------------------------------------------
{
switch ( RANDOM.nextInt(10)+1)
{
case 1:
case 2: harePosition +=0; break;
case 3:
case 4: harePosition +=9; break;
case 5: harePosition +=-12; break;
case 6:
case 7:
case 8: harePosition +=1; break;
case 9:
case 10: harePosition +=-2; break;
}
if ( harePosition <1)
harePosition =1;
if ( harePosition > n )
harePosition = n;
return( harePosition );
}
//---------------------------------------------------------
private static int NewTortoisePosition(int tortoisePosition,final int n)
//---------------------------------------------------------
{
switch ( RANDOM.nextInt(10)+1)
{
case 1:
case 2:
case 3:
case 4:
case 5: tortoisePosition +=3; break;
case 6:
case 7: tortoisePosition +=-6; break;
case 8:
case 9:
case 10: tortoisePosition +=1; break;
}
if ( tortoisePosition <1)
tortoisePosition =1;
if ( tortoisePosition > n )
tortoisePosition = n;
return( tortoisePosition );
}
//---------------------------------------------------------
private static void DisplayRacePositions(final int n,final int clock,
final int harePosition,
final int tortoisePosition)
//---------------------------------------------------------
{
char raceCourse[]= new char [ n+1];
for (int i =1; i <= n; i++)
raceCourse[i]='';
if ( harePosition != tortoisePosition )
{
raceCourse[ harePosition]='H';
raceCourse[tortoisePosition]='T';
}
else
raceCourse[tortoisePosition]='*';
System.out.printf("%3d |",clock);
for (int i =1; i <= n; i++)
System.out.printf("%c",raceCourse[i]);
System.out.println("|");
}
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!