From 7881119e0914b9207568918fcf868eea84ef3d78 Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Sat, 28 Nov 2020 01:45:44 +0200 Subject: sem 8 --- Sem. 07/BullsAndColls.cpp | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 Sem. 07/BullsAndColls.cpp (limited to 'Sem. 07/BullsAndColls.cpp') diff --git a/Sem. 07/BullsAndColls.cpp b/Sem. 07/BullsAndColls.cpp new file mode 100644 index 0000000..5b5a54e --- /dev/null +++ b/Sem. 07/BullsAndColls.cpp @@ -0,0 +1,100 @@ +#include +#include +using namespace std; + + +//Играта бикове и крави. +// Комп. генерира случайно число ви интервала [1000...9999]. +// Ние трябва да го познаем. + + +// 4278 - 1 бик, 1 крава (бик - число и позицията), (крава - числото , но и позицията) +// Познавам числото, когато имам 4 бика + +bool hasDuplicateDigits(int n) ///1343 +{ + const int DIGITCOUNT = 10; + bool found[DIGITCOUNT]; + for (int i = 0; i < DIGITCOUNT; i++) + found[i] = false; + while (n != 0) + { + int lastDigit = n % 10; + if (found[lastDigit] == true) + return true; + else + found[lastDigit] = true; + n /= 10; + } + return false; +} + +void convertNumberToArr(int n, int arr[]) +{ + + for (int i = 3; i >= 0; i--) + { + arr[i] = n % 10; + n /= 10; + } + +} +int countBulls(int myNumber[], int compNumber[]) +{ + int bullsCount = 0; + for (int i = 0; i <= 3; i++) + { + if (myNumber[i] == compNumber[i]) + bullsCount++; + } + return bullsCount; +} +int countCows(int myNumber[], int compNumber[]) +{ + int cowsCount = 0; + + for (int i = 0; i <= 3; i++) + { + int myDigit = myNumber[i]; + for (int j = 0; j <= 3; j++) + { + if (j == i) // за да не броим биковете + continue; + if (myDigit == compNumber[j]) + cowsCount++; + } + } + return cowsCount; +} +int main() +{ + int numberToGuess; + do + { + numberToGuess = 1000 + rand() % 9000; // [1000..9999] + } + while (hasDuplicateDigits(numberToGuess)); + + cout << "Computer has picked a number! Try to guess it!" <> myNumber; + int myNumberArr[4]; + convertNumberToArr(myNumber, myNumberArr); + + bullsCount = countBulls(myNumberArr, numberToGuessArr); + cowsCount = countCows(myNumberArr, numberToGuessArr); + + cout << "Bulls: " << bullsCount << " Cows:" << cowsCount << endl; + + + } while (bullsCount != 4); + + cout << "Success!" << endl; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d