#include "WheelBoard.h"

string WheelBoard::GetPhrase()
{
	return Phrase;
}
Revealed WheelBoard::GetBoolPhrase()
{
	return Bool_Phrase;
}
void WheelBoard::DisplayBoard()
{
	cout << endl << endl;
	for (int i=0; i < Bool_Phrase.Length; i++)
	{
		if (Bool_Phrase.B_Phrase[i] == true)
			cout << Phrase.at(i) << " ";
		else
			cout << "_ ";
	}
	cout << endl << endl;
}
void WheelBoard::MakeBoard()
{
	ifstream fin;
	fin.open("Puzzle.txt");
	if (fin.fail())
	{
		cerr << "Error reading puzzle file\n";
		exit(1);
	}
	char Puzzles[PUZZLE_CHARS][MAX_PUZZLES_IN_FILE];
	fin.getline(Puzzles[0], PUZZLE_CHARS + 1);
	int count = 0;
	while (!fin.eof())
	{
		count++;
		fin.getline(Puzzles[count], PUZZLE_CHARS + 1);
	}
	srand((unsigned)time(NULL));
	int PuzzNum = rand() % count;
	Phrase = Puzzles[PuzzNum];
	Bool_Phrase.Length = int(Phrase.length());
	for (int i=0; i < Bool_Phrase.Length; i++)
	{
		Phrase.at(i) = toupper(Phrase.at(i));
	}
	for (int i=0; i < Bool_Phrase.Length; i++)
	{
		if (isalpha(Phrase.at(i)))
			Bool_Phrase.B_Phrase[i] = false;
		else
			Bool_Phrase.B_Phrase[i] = true;
	}
}
int WheelBoard::LetterInPuzzleCount(char letter)
{
	int count = 0;
	for (int i=0; i < Bool_Phrase.Length; i++)
	{
		if (Phrase.at(i) == letter)
		{
			Bool_Phrase.B_Phrase[i] = true;
			count++;
		}
	}
	return count;
}