Can someone please help me to deal with this function, which is giving me a c2064 error? Here is the code:
Code:
/**************************** Compiler Directives ****************************/
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cmath>
#include <string>
using namespace std;
/**************************** Global Data Declarations ***********************/
/***************************** Function Prototypes ***************************/
void AnswerKey(int& PLAY, //IN: PLAYER CHOICE TO CONTINUE GAME
int& QUIT); //IN: PLAYER CHOICE TO QUIT GAME
void NewRandomizer(int& random_number); //OUT: RANDOM GENERATED NUMBER
void PlayMachine(int& random_number, //IN/OUT: RANDOM GENERATED NUMBER
int& number); //IN: PLAYER ENTERED NUMBER
void StartGame(int& random_number, //IN: RANDOM GENERATED NUMBER
int& number); //IN: NUMBER ENTERED BY PLAYER
void DisplayMessage(int& random_number, //IN: RANDOM GENERATED NUMBER
int& number,
int& guess()); //IN: RANDOM GENERATED NUMBER
void DisplayGuesses(int guessArray[], int numGuesses);
/******************************************************************************
* Pseudocode:
* Level 0
* -------
*
* Seed the random number generator
* Generate a random number
* Input a number
* Display hi/low message
* Display results
*
* Level 1
* -------
* Seed the random number generator
* srand(static_cast<unsigned int>(time(0)))
* Generate a random number
* random_number = (rand() % (100 - 1 + 1)) + 1
******************************************************************************/
int main()
{
//LOCAL CONSTANTS
const int SIZE = 10; //ARRAY SIZE
//Local variables
int counter = 0; //TO TRACK PLAYER TRIES
int number; //NUMBER ENTERED BY PLAYER
int random_number; //RANDOM GENERATED NUMBER
//int intMax = 10; //MAXIMUM AMOUNT OF TRIES
int guess[SIZE]; //PLAYER GUESSES
//int guess_numbers;
int PLAY = 1; //ANSWER TO PLAY AGAIN
int QUIT =0; //ANSWER TO QUIT GAME
int flag =1;
cout << "==============================================" << endl;
cout << endl;
cout << "<<<<< WELCOME TO THE MIND BUSTER GAME >>>>>" << endl;
cout << endl;
cout << " >>>>>>===== By: **************** =====>" << endl;
cout << endl;
cout << " * YOU WILL HAVE ONLY 10 TRIES TO WIN *" << endl;
cout << endl;
cout << "==============================================" << endl;
//CALL FUNCTION TO GENERATE A RANDOM NUMBER
StartGame(random_number, number);
while(PLAY == 1)
{
while (counter < SIZE && flag == 1)
{
cout << "Enter a number ---> ";
cin >> number;
guess[counter] = number;
counter ++;
//IF USER GUESSES THE RANDOM NUMBER
if (number == random_number)
{
cout << "Congratulations, You Win. ";
cout << "It Took You " << counter << " Attempts to Win" << endl;
//cout << "your numbers were " << guess << endl;
flag = 0;
//CALL FUNCTION TO ASK TO PLAY OR QUIT GAME
//AnswerKey(PLAY, QUIT);
}
//IF NUMBER ENTERED BY USER IS LESS THAN RANDOM NUMBER
else if (number < random_number)
{
cout << "Too Low; Try Again" << endl;
}
//IF NUMBER ENTERED BY THE USER IS GREATER THAN THE RANDOM NUMBER
else if (number > random_number)
{
cout << "Too High, Try Again" << endl;
}
//counter ++;
cout << endl;
}//End While
//DISPLAY MESSAGE WHEN PAYER LOOSES
DisplayGuesses(guess, counter); //********************
//CALL DISPLAY MESSAGE FUNCTION
if ((counter >= SIZE) || (random_number != number))
{
DisplayMessage(random_number, guess(), counter);
}//END IF
else
{
//CALL ANSWER KEY FUNCTION
AnswerKey(PLAY, QUIT);
}
}//END WHILE
//INDICATES A SUSCCESSFUL TERMINATION OF PROGRAM
return 0;
}//End main
//******************** Start StartGame Function Executables *******************/
void StartGame(int& random_number, //OUT: RANDOM GENERATED NUMBER
int& number) //IN/OUT: PLAYER ENTERED NUMBER
{
//SEED THE RANDOM NUMBER WITH SYSTEM CLOCK
srand(static_cast<unsigned int>(time(0)));
//GENERATING A RANDOM NUMBER FROM 1 - 100
random_number = (rand() % (100 - 1 + 1)) + 1;
}
/********************* Begin AnswerKey Function Executables ******************/
void AnswerKey(int& PLAY, //IN: PLAY THE GAME AGAIN
int& QUIT) //IN: QUIT THE GAME
{
//Local variables
int answer; //CHOICE FROM PLAYER
cout << "Want to Play Again?; Enter 1 for Yes or 0 to Quit " << endl;
cin >> answer;
//CLEARING THE SCREEN
system("cls");
//if (answer == PLAY)
//{
//main();
//}
//else if (answer == QUIT)
//cout <<endl;
//cout << " *** THANKS FOR PLAYING *** " << endl;
//cout << endl;
}
/******************* Begin DisplayMessage Function Executables *****************/
void DisplayMessage(int& random_number, //IN/OUT: RANDOM GENERATED NUMBER
int& number,
int& guess) //IN: NUMBER ENTERED BY PLAYER
{
//CLEARING THE SCREEN
system("cls");
//DISPLAYING FAILURE TO WIN MESSAGE
cout << " <<<<< YOU LOST! >>>>> " << endl;
cout << endl;
cout << endl;
cout << "The Correct Answer Was: " << random_number << endl;
cout << endl;
//CALLING FUNTION TO PLAY OR QUIT GAME
//AnswerKey(PLAY, QUIT);
}
/************ Begin displayGuesses Function Executables **********************/
void DisplayGuesses(int guessArray[], int numGuesses)
{
for (int i = 0; i < numGuesses; i++)
{
cout << "Your Guesses Were: " << guessArray[i] << endl;
}
}
//C/C++ test results are as follows:
*********** THE LINES BELOW WERE THE RESULT OF A COMPILER ****************
/**************************** Compiler Directives ****************************/
// ^
// line 149: error: expression must have (pointer-to-) function type
// DisplayMessage(random_number, guess(), counter);
// ^
// line 149: error: argument of type "int" is incompatible with
// parameter of type "int &(*)()"
// DisplayMessage(random_number, guess(), counter);
// ^
Thanks in advance.