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

View File

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

View File

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