Refactored GetNumber() method.

This commit is contained in:
2023-08-04 13:55:27 +03:00
parent e75d82e896
commit 8197a64803
3 changed files with 15 additions and 37 deletions

View File

@@ -42,38 +42,10 @@ void CGame::Start()
do
{
PrintGameHeader();
#ifdef _DEBUG
ShowGuessedNumber(true);
#else
ShowGuessedNumber(false);
#endif // _DEBUG
ShowGuessedNumber(IS_SHOW);
PrintSteps();
} while (!GetNumber(step));
ret = GetNumber(step);
switch (ret)
{
case -1:
{
return;
break;
}
case -2:
{
//m_sLastError = L"Вы должны ввести " + std::to_wstring(m_ucDigits) + L"-значное число!";
break;
}
case -3:
{
//m_sLastError = L"Цифры в числе не должны повторяться!";
break;
}
default:
{
//m_sLastError = L"";
break;
}
}
} while (ret < 0);
m_uStepCounter++;
}
@@ -83,13 +55,13 @@ void CGame::Start()
PrintGameFooter();
}
int CGame::GetNumber(CStep step)
bool CGame::GetNumber(CStep step)
{
std::wcout << L"\t\t\t\t\t" << m_sLastError << L"\r";
std::wcout << L"=>\t";
CUserInput userInput(m_ucDigits);
if (userInput.Get())
{
for (unsigned i = 0; i < userInput.m_vUserInput.size(); i++)
@@ -97,14 +69,14 @@ int CGame::GetNumber(CStep step)
if (IsEqual(userInput.m_vUserInput, userInput.m_vUserInput.at(i), i))
{
m_sLastError = L"Цифры в числе не должны повторяться!";
return -3;
return false;
}
}
}
else
{
m_sLastError = L"Вы должны ввести " + std::to_wstring(m_ucDigits) + L"-значное число!";
return -2;
return false;
}
step.StoreStepNumber(userInput.m_vUserInput);
@@ -114,7 +86,7 @@ int CGame::GetNumber(CStep step)
if (step.GetStepAnimals().first == m_ucDigits) m_fGameIsEnd = true;
m_sLastError = L"";
return 0;
return true;
}
void CGame::ShowGuessedNumber(bool show)
@@ -137,7 +109,7 @@ void CGame::PrintGameHeader()
{
std::system("cls");
std::wcout << strGAMENAME << ' ' << strGAMEVERSION << ' ' << VERSION << std::endl;
std::wcout << strGAMECOPYRIGHT << '\n' << std::endl;
std::wcout << strGAMECOPYRIGHT << "\n\n\n" << std::endl;
}
void CGame::PrintGameFooter()

View File

@@ -17,7 +17,7 @@ private:
std::wstring m_sLastError;
std::vector<CStep> m_Steps;
int GetNumber(CStep);
bool GetNumber(CStep);
void ShowGuessedNumber(bool);
void PrintGameHeader();
void PrintGameFooter();

View File

@@ -6,3 +6,9 @@
#define strGAMENAME L"Áûêè è Êîðîâû."
#define strGAMEVERSION L"Âåðñèÿ"
#define strGAMECOPYRIGHT L"Copyright (c) 2023 by W0LF aka 'dreamforce'"
#ifdef _DEBUG
#define IS_SHOW true
#else
#define IS_SHOW false
#endif