Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Mastermind.h"
- #include <iostream>
- #include <string>
- #include <cstdlib>
- #include <sstream>
- #include <time.h>
- using namespace std;
- MastermindDigits::MastermindDigits()
- {
- this->digits = new int[4];
- makeDigitsToGuess();
- }
- MastermindDigits::MastermindDigits(int digits)
- {
- this->digits = new int[4];
- setDigits(digits);
- }
- MastermindDigits::~MastermindDigits()
- {
- delete[] digits;
- }
- void MastermindDigits::makeDigitsToGuess()
- {
- srand(time(NULL));
- //this->digits = new int[4];
- int* randum = new int[4];
- stringstream numb;
- int inumb;
- for (int i = 0; i < 4; i++) {
- randum[i] = 1 + ( rand() % 6 );
- }
- for (unsigned i = 0; i < 4; ++i) {
- numb << randum[i];
- }
- numb >> inumb;
- setDigits(inumb);
- }
- void MastermindDigits::setDigits(int dig)
- {
- //this->digits = new int[4];
- string number = to_string(dig);
- for (int i = 0; i < 4; i++) {
- this->digits[i] = (int)number[i];
- }
- }
- int MastermindDigits::locationRight(MastermindDigits& madi)
- {
- int cLRight = 0;
- for (int i = 0; i < 4; i++) {
- if (this->digits[i] == madi.digits[i]) {
- ++cLRight;
- }
- }
- return cLRight;
- }
- int MastermindDigits::locationWrong(MastermindDigits& madi)
- {
- int cLWrong = 0;
- bool locRightCode[4] = { false };
- bool locRightGuess[4] = { false };
- for (int i = 0; i < 4; i++) {
- if (this->digits[i] == madi.digits[i]) {
- locRightCode[i] = true;
- locRightGuess[i] = true;
- }
- }
- for (int i = 0; i < 4; i++) {
- for (int y = 0; y < 4; y++) {
- if (this->digits[i] == madi.digits[y] && !locRightCode[i] && !locRightGuess[y]) {
- locRightGuess[y] = true;
- ++cLWrong;
- break;
- }
- }
- }
- return cLWrong;
- }
- bool MastermindDigits::isEqual(MastermindDigits& md) {
- for (int i = 0; i < 4; i++) {
- if (this->digits[i] != md.digits[i]) {
- return false;
- }
- }
- return true;
- }
- int MastermindDigits::getdigits() {
- stringstream numb;
- int inumb;
- for (unsigned i = 0; i < 4; ++i) {
- numb << digits[i]-48;
- }
- numb >> inumb;
- return inumb;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement