Below is a discussion of the game \"Mastermind\" that should be implemented usin
ID: 3662801 • Letter: B
Question
Below is a discussion of the game "Mastermind" that should be implemented using C++. I need help in implementing one class in this code. Below are the rules of the game just so you get an idea about it:
1. The codebreaker is prompted to enter two integers: the code length n, and the range of digits m.
2. The codemaker selects a code: a random sequence of n digits, each of which is in the range [0,m-1].
3. The codebreaker is prompted to enter a guess, an n-digit sequence.
4. The codemaker responds by printing two values that indicate how close the guess is to the code. The first response value is the number of digits that are the right digit in the right location. The second response value is the number of digits that are the right digit in the wrong location. For example if the code is 1, 2, 3, 4, 5 and the guess is 5, 0, 3, 2, 6, the response would be 1, 2 because one digit (3) is the right digit in the right location, and two digits (2 and 5) are the right digits in the wrong locations. Note that no digit in the code or guess is counted more than once. If the code is 1, 2, 3, 4, 5 and the guess is 2, 1, 2, 2, 2, the response is 0, 2. If the code is 3, 2, 3, 3, 3 and the guess is 1, 3, 3, 4, 5, the response is 1, 1.
5. The codebreaker is prompted to continue entering guesses. The codebreaker wins if the correct code is guessed in ten or fewer guesses, and otherwise the codemaker wins.
Here goes my question:
1. Implement the class code which stores the code as a vector and contains
(a) the code class declaration,
(b) a constructor that is passed values n and m and initialize the code object,
(c) a function that initializes the code randomly,
(d) a function checkCorrect which is passed a guess as a parameter, i.e. another code object, and which returns the number of correct digits in the correct location,
(e) a function checkIncorrect which is passed a guess as a parameter (i.e. another code object and returns the number of correct digits in the incorrect location. No digit in the guess or the code should be counted more than once.
Please do part c only
Explanation / Answer
#include <iostream>
#include <stdlib.h>
#include <cstdlib>
using namespace std;
long int NumberRange,CodeLength;
class CodeClass
{
long int Guess,ActualCode;
int NumberOfDigits=0;
int Produced;
int n=0;
public:
CodeClass(long int len,long int rng)
{
l: Produced=(rand() % rng); //First time number is generated
n=Produced;
do{//to check the number of digits in the sequence
++NumberOfDigits;
Produced/=10;
}while(Produced);
if(NumberOfDigits==len){//if generated and codebreaker chosen code has the same number of digits
cout << " Code maker Code is = " << n << endl;
cout << " Code breaker also GUESS the "<< len << " sequence number" << endl;
}
else
goto l;//if first time generated number do == to length then regenerate until == to Length
}
};
int main()
{
cout << "Hi Code Breaker Please enter the Range and Code length" << endl;
cin >> NumberRange >> CodeLength;
CodeClass c(CodeLength,NumberRange);
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.