Hello, my AI is not going so great. I can make the computer make a good first guess but then the guesses are way off. Is there anyway I could make a record of all the guesses, find the middle two, and find the difference?
Code:
#include <iostream>
#include <cstdlib>
#include <ctime>
int game()
{
using namespace std;
cout << "Welcome to High or Low - Beat Adam" << endl;
cout << "What is your first name?: ";
string name;
cin >> name;
cout << "Welcome " << name << ".";
Sleep(2000);
system("cls");
srand((unsigned)time(NULL));
bool win;
win = false;
char turn;
turn = 'o';
int answer, guess, guessyou, guessadam, whowon;
guessyou = 0;
guessadam = 0;
answer = rand()%1001;
while (win == false)
{
while (turn == 'o')
{
cout << name << "'s turn." << endl;
cout << "Guess a number between 1 and 1,000: ";
cin >> guess;
guessyou++;
if (guess == answer)
{
cout << endl << "Congratulations! You have beaten computer Adam in " << guessyou << " guesses!";
whowon = 1;
win = true;
turn = 'x';
}
else if (guess > answer)
{
cout << "Too high!" << endl;
turn = 'a';
}
else if (guess < answer)
{
cout << "Too low!" << endl;
turn = 'a';
}
else
{
cout << "An unknown error occured." << endl;
cout << endl;
return 0;
}
while (turn == 'a')
{
cout << endl << "Adam's turn.";
if (guess > answer)
{
guess = guess / 2;
guess = abs(guess);
cout << endl << "Adam guesses " << guess << "." << endl;
guessadam++;
if (guess == answer)
{
cout << "Ha ha! Adam won in " << guessadam << " guesses!" << endl;
whowon = 2;
win = true;
turn = 'x';
}
else if (guess > answer)
{
cout << "Too high!" << endl << endl;
turn = 'o';
}
else if (guess < answer)
{
cout << "Too low!" << endl << endl;
turn = 'o';
}
else
{
cout << "An unknown error occured." << endl;
cout << endl;
return 0;
}
}
else if (guess < answer)
{
guess = ((guess / 2) + guess);
guess = abs(guess);
cout << endl << "Adam guesses " << guess << ".";
guessadam++;
if (guess == answer)
{
cout << "Ha ha! Adam won in " << guessadam << " guesses!" << endl;
whowon = 2;
win = true;
turn = 'x';
}
else if (guess > answer)
{
cout << endl << "Too high!" << endl << endl;
turn = 'o';
}
else if (guess < answer)
{
cout << endl << "Too low!" << endl << endl;
turn = 'o';
}
else
{
cout << endl << "An unknown error occured." << endl;
cout << endl;
return 0;
}
}
}
}
}
}
int main()
{
using namespace std;
game();
cout << endl;
system("pause");
return 0;
}
Thanks for help, Adam