Project #24459 - programming assignment

Bulls and Cows

Write an application in Java that allows a user to play the game Bulls and Cows against a computer. The game works as follows: The computer chooses a 4-digit number in secret. The digits must all be different.  The user then guesses the number and the computer provides the number of matching digits. If the matching digit is in the right position it is a "bull", if it is on a different position it is a "cow". For example:

Computer chooses:  3691

User guesses:  1649

Computer answers: 1 bull and 2 cows

If the user guesses a number with repeat digits that is partially correct the rule is that a correct digit can only count once and bulls count before cows. So for example

Computer chooses:  3691

User guesses:   4211

Computer answers: 1 bull and 0 cows

Your program should report the number of attempts the user needed to guess the number, it should let a user play as many times as they wish in a single session, and it should report their best, worst, and average performance over the course of the session.

Design: Your program must use the attached BullsandCows.java test class. This means that you must NOT write your own main method. Your code must work with the main method contained in BullsandCows.java

Your program should consist of two additional classes: Game and Oracle. All input and output should happen in the Game class. This is where you will ask the player for their guess and this is where you will tell the player how many bulls and cows they got. The Oracle class should store the actual computer choice as a String and have methods to determine how many bulls and cows any given guess would generate. I have provided templates for both of these classes. Edit these templates by adding code to the existing methods, creating new methods, and/or adding more instance variables. To earn full credit you are required to use these classes and the test class BullsandCows must remain unchanged.

For aspiring hackers:  Write a class that automates the human user and requires on average less than 8 turns to guess a number. Write a new test class and a Simulator class (the Simulator class will sub for the Game class) to demonstrate this ability by playing 1000 games of computer versus computerized user and reporting the average number of guesses. This should be done in addition to the regular assignment for full + extra credit.

What to hand in:

In addition to the source files for your program include with your submission a text file named readMe.txt with an explanation of what you did. That is, write in plain English, instructions for using your software, explanations for how and why you chose to design your code the way you did. Please do this even if you choose to use Javadoc.

Each question in the Programming portion of your assignment will be graded as follows:
25% if it compiles
30% if it runs properly (expected output for given input, etc.)
15% for style (formatting of code, variable names, comments, etc.)
30% for design (efficiency, handling error conditions, etc.)

attached are additional resource for assignment.

 Subject Computer Due By (Pacific Time) 03/09/2014 06:00 pm
TutorRating
pallavi

Chat Now!

out of 1971 reviews
amosmm

Chat Now!

out of 766 reviews
PhyzKyd

Chat Now!

out of 1164 reviews
rajdeep77

Chat Now!

out of 721 reviews
sctys

Chat Now!

out of 1600 reviews

Chat Now!

out of 770 reviews
topnotcher

Chat Now!

out of 766 reviews
XXXIAO

Chat Now!

out of 680 reviews