Ask Java Expert


Home >> Java

prepare 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 ex:
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 ex
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 prepare 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. You are required to use these classes and the test class BullsandCows must remain unchanged. 


Second part: prepare a class that automates the human user and requires on average less than 8 turns to guess a number. prepare 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. 

Classes needed:
//***************************************
// This is the test class for the 
// Bulls and Cows 
//
// Your application must use this main method
//****************************************

public class BullsandCows{

public static void main(String[] args){
Game g = new Game();
g.play()


//***********************************
// This is a template for your Oracle
// class
//
//***********************************


public class Oracle{

private String solution;

public Oracle(){
// your code here for setting up
// an Oracle object
}

public int getBulls(String guess){
// your code here for 
// determining the number
// of bulls the String
// guess should earn
}

public int getCows(String guess){
// your code here for
// determing the number
// of cows the String
// guess should earn

// any other methods you might want
// in this class can go here

}

//**********************************************
// This is the Game class for the Bull and Cows
// program. You will need to modify this template
//
//**********************************************

public class Game{

private int turns;
private Oracle computer;
private Scanner input;

// you may need more instance variables here


public Game(){
// your code for the Game constructor goes here

}


public void play(){
// your code for the Game play method goes here

}

// any other methods you may need go here

Java, Programming

  • Category:- Java
  • Reference No.:- M982823

Have any Question?


Related Questions in Java

Chatbotscreate a small networked chat application that is

Chatbots Create a small, networked chat application that is populated by bots. Introduction On an old server park, filled with applications from the early days of the internet, a few servers still run one of the earliest ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

Assignment game prototypeoverviewfor this assessment task

Assignment: Game Prototype Overview For this assessment task you are expected to construct a prototype level/area as a "proof of concept" for the game that you have designed in Assignment 1. The prototype should function ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

In relation to javaa what is constructor the purpose of

(In relation to Java) A. What is constructor? the purpose of default constructor? B. How do you get a copy of the object but not the reference of the object? C. What are static variables and instance variables? D. Compar ...

Project descriptionwrite a java program to traverse a

Project Description: Write a java program to traverse a directory structure (DirWalker.java) of csv files that contain csv files with customer info. A simple sample in provided in with the sample code but you MUST will r ...

Fundamentals of operating systems and java

Fundamentals of Operating Systems and Java Programming Purpose of the assessment (with ULO Mapping) This assignment assesses the following Unit Learning Outcomes; students should be able to demonstrate their achievements ...

Assessment -java program using array of Assessment -JAVA Program using array of objects

Assessment -JAVA Program using array of objects Objectives This assessment item relates to the course learning outcomes as stated in the Unit Profile. Details For this assignment, you are required to develop a Windowed G ...

Applied software engineering assignment 1 -learning

Applied Software Engineering Assignment 1 - Learning outcomes - 1. Understand the notion of software engineering and why it is important. 2. Analyse the risk factors associated with phases of the software development lif ...

Retail price calculatorwrite a java program that asks the

Retail Price Calculator Write a JAVA program that asks the user to enter an item's wholesale cost and its markup percentage. It should then display the item's retail price. For example: (If an item's wholesale cost is 5. ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As