- Code: Select all
// This program demonstrates random numbers.
#include <iostream>
#include <cstdlib> // rand and srand
#include <ctime> // For the time function
using namespace std;
int main()
{
unsigned seed = time(0);
srand(seed);
int guess[4];
int secretCode[] = {rand()%10,rand()%10,rand()%10,rand()%10};
int bull = 0;
int cow = 0;
cout << "\t\t\tHow to play Bulls and Cows:\n";
cout << " The game involves two players, a coder and a cracker.";
cout << "The coder (a computer in\n this case)";
cout << "chooses the four-digit number with all different digits and keeps it\n secret. The cracker tries to";
cout << "guess the secret number. After a guess, the coder\n gives you information about number of digits";
cout << "which were correctly guessed but\n in the wrong place (they are called cows) and how many are";
cout << "both the right digit\n and in the correct place (they are called bulls).";
cout << "For example, If the coder\n chooses the secret number 0419 and the cracker guesses 6039, then the ";
cout << "coder\n scores This as 1 cow, since 0 is a digit in the secret number that’s in the\n wrong place,";
cout << "and 1 bull 9 is in the right place." << endl;
do
{
secretCode[4];
break;
} while (secretCode[0] == secretCode[1] || secretCode[0] == secretCode[2] || secretCode[0] == secretCode[3] || secretCode[0] == secretCode[0] ||
secretCode[1] == secretCode[2] || secretCode[1] == secretCode[3] || secretCode[1] == secretCode[0] || secretCode[1] == secretCode[1] ||
secretCode[2] == secretCode[3] || secretCode[2] == secretCode[0] || secretCode[2] == secretCode[1] || secretCode[2] == secretCode[2] ||
secretCode[3] == secretCode[0] || secretCode[3] == secretCode[1] || secretCode[3] == secretCode[2] || secretCode[3] == secretCode[3] );
for(int i = 0; i < 4; ++i)
{
cout << secretCode[i];
}
cout << "\n\n\tGuess 4 digets seperated by one space between each diget." << endl;
do
{
bull =0;
cow = 0;
cin >> guess[0];
cin >> guess[1];
cin >> guess[2];
cin >> guess[3];
if (guess[0] == secretCode[0])
++bull;
if (guess[0] == secretCode[1] || guess[0] == secretCode[2] || guess[0] == secretCode[3])
++cow;
if (guess[1] == secretCode[1])
++bull;
if (guess[1] == secretCode[2] || guess[1] == secretCode[3] || guess[1] == secretCode[0])
++cow;
if (guess[2] == secretCode[2])
++bull;
if (guess[2] == secretCode[3] || guess[2] == secretCode[0] || guess[2] == secretCode[1])
++cow;
if (guess[3] == secretCode[3])
++bull;
if (guess[3] == secretCode[0] || guess[3] == secretCode[1] || guess[3] == secretCode[2])
++cow;
if (bull == 4)
break;
else
{
cout << bull << " is your # of bulls.\n" << cow << " is your # of cows.\n\n";
cout << "\nNOW TRY AGAIN\n";
}
} while (bull!=4);
cout << "\n\n\n\nYOU'RE A WINNER!!!\n\n\n";
return 0;
}
