Starting from:

$35

Project 4: Baseball Simulator Solution




The objective of this assignment is to gain experience writing classes that conform to a set of requirements and using those methods in a program.







Your task is to write a program to simulate a batter facing a pitcher in a baseball game. Your program should include a Batter class with the following fields and methods:




private String name




privateprivate doubleStringpositionaverage

/*







Assumes the pitcher has thrown a strike, uses this batter’s average to determine whether he hits the pitch (method returns true) or swings and misses (method returns false).

*/




public boolean hit()




public String getName() // returns the Batter’s name




You will also need to write a Pitcher class with the following fields and methods:




private String name







privateprivate StringdoublepositionstrikeAverage




/*







Uses this pitchers average to determine whether he throws a strike (method returns true) or a ball (method returns false).

*/




public boolean pitch()




public String getName() // returns the Pitcher’s name







You will then need to write a driver program that instantiates a Pitcher object and a Batter object and simulates an at-bat. The rules for this simulation are as follows: If a Pitcher’s strikeAverage is, for example, .80 then 80 percent of the time calling the Pitcher class’s pitch method should return true and 20 percent of the time it should return false.







The Batter never swings at a ball and he always swings at a pitch in the strike zone. If the pitch is in the strike zone, the Batter’s hit method should be called. If the Batter’s average is .25 then 25 percent of the time, that method should return true

(indicating a hit) and 75 percent of the time it should return false (indicating a swing and a miss).










If the Batter’s name is John Doe and he gets a hit, your driver program should display the message “John Doe got a hit!”







Your driver program should keep track of the number of balls and strikes. If the number of balls reaches four, the program should display the message “John Doe walked.” If the number of strikes reaches three, it should display the message “John Doe struck out.”




After each pitch, your program should display the number of balls and strikes.







Three example runs of the program are shown below:




Phil Hughes is pitching to Alex Rodriguez




Alex Rodriguez swung and missed

The count is 0 balls and 1 strikes




Alex Rodriguez got a hit!




Phil Hughes is pitching to Chase Headley

Chase Headley swung and missed




The count is 0 balls and 1 strikes

Chase Headley swung and missed




The count is 0 balls and 2 strikes

Phil Hughes threw a ball




The count is 1 balls and 2 strikes

Chase Headley swung and missed




The count is 1 balls and 3 strikes

Chase Headley struck out.




Phil Hughes is pitching to Carlos Beltran




Carlos Beltran swung and missed

The count is 0 balls and 1 strikes




Phil Hughes threw a ball

The count is 1 balls and 1 strikes




Phil Hughes threw a ball

The count is 2 balls and 1 strikes




Carlos Beltran swung and missed

The count is 2 balls and 2 strikes




Phil Hughes threw a ball

The count is 3 balls and 2 strikes




Phil Hughes threw a ball

The count is 4 balls and 2 strikes




Carlos Beltran walked.




Rubric:







Project design: 15 points
The Player class contains the fields and methods requested: 5 points




The hit method produces the requested percentage of hits: 5 points




The Pitcher class contains the fields and methods requested: 5 points




The pitch method produces the requested percentage of strikes: 5 points




The driver program instantiates a Pitcher and Batter object: 5 points




The driver program calls methods in the Pitcher and Batter class: 5 points




The driver program correctly responds when the Batter gets a hit: 5 points




The driver program correctly responds when the Batter walks: 5 points




The driver program correctly responds when the Batter strikes out: 5 points




The driver program correctly determines when the at-bat ends: 10 points




The data fields of all classes are private: 10 points




The output is in the precise form requested above: 10 points










All components of the program follow the style guidelines and are commented as appropriate: 10 points

More products