Skip to content

Prajna-Ramamurthy/Mastermind-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# PROJECT TITLE: Mastermind

PURPOSE OF PROJECT: Project for ICSE X STD

VERSIONE: Version 1.0 

HOW TO START THIS PROJECT: Run the main funtion in Class Main from BlueJ
Pass true as parameter if the code set by computer has to be shown to
the user. This helps in testing if computer is generating the correct
feedback for the guesses entered by the user.
 
AUTHOR: PRAJNA R (Class X A1)

USER INSTRUCTIONS:

Master Mind is a code-breaking game for two players - a code maker and 
a code breaker. With four positions and six colors, there are 64 = 1296 
different patterns (allowing duplicate colors). Varying the number of 
colors and the number of positions results in a spectrum of Mastermind 
games of different levels of difficulty. 

In this program, computer plays the role of code maker and user plays 
the role of code breaker. Code maker (computer) creates a code consisting 
of 4 or more colors at specific positions, but does not reveal the code 
to code breaker (user). Code breaker tries to guess the pattern, in both 
order and color, within x turns, where x is determined based on the 
difficulty level. Each guess is made by the user by typing first letter of 
the colors, for example, BRYP. Once code is typed, the code maker provides 
feedback by displaying Black and White. Black is displayed for each color 
from the guess which is correct in both color and position. White
indicates the existence of a correct color, but placed in the wrong 
position. Once feedback is provided, another guess is made by the user; 
guesses and feedback continue to alternate until either the code breaker 
guesses correctly, or twelve (or ten, depending on difficulty level) 
incorrect guesses are made.

The program has the following classes: -
1.  Main - displays menu and accepts user’s input. Menu consists of:
    a.  starting the game, 
    b.  viewing game rules, 
    c.  setting difficulty levels, 
    d.  display score board,
    e.  displaying information about the project,
    f.  exit
    Main class invokes methods of various other classes as per the menu selected.

2.  Play - This is the key class that implements the play loop starting 
with computer (Code Maker) setting a code as per the difficulty level. 
Then Play class allows user (Code Breaker) to guess the code set by 
Computer in “n” chances, where “n” depends on the difficulty level. 
Also, Play class allows computer to provide the feedback on each code guessed by the user. When user guesses the code correctly or runs out of the chances, game ends.

3.  GameBoard - This class represnts that board used for playing the game.
It consists of a secret code generated by the computer and n (12 or 10) String objects to hold the guesses made by the user.

4.  Code - This class represents Code object which consists of number of 
positions and colored pegs in those positions.

5.  Peg - This class represents colored pegs. Each Peg object contains 
one color.  It also has all the allowed colors based on the difficulty level and rejects any invalid characters entered by the user.
 
6.  Feedback - This class represents Feedback object which contains the 
feedback provided by Code Maker (computer) to the Code Breaker (user). 
Feedback contains only two colors - Black and White. Black color indicates 
that a colored peg is placed at the correct position. White color 
indicates that a color is placed at a different position. Feedback helps the user to decide his next guess.

7.  How to play - This class displays the rules and information about 
how to play the game.

8.  DifficultyLevel - This class allows user to set difficulty level to oneof the four levels - Rookie, Pro, Expert and Genius. Play object determines number of guesses, number of positions and number of colors based on the difficulty level.

9. About - This class provides the details about the project developer, 
version number, copyright, etc.

10. Fill - Displays Logo and "Loading" message.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages