#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
// 타임어택 끝말잇기 게임
int main()
{
clock_t startTime = clock();
// ~~~~~~~ ( 타임어택 코드 )
string input, output = "airplane";
int n, timer = 0, count = 0, count_check;
while (1)
{
n = output.size();
cout << output << endl;
cout << "다음 단어를 입력하세요. : ";
cin >> input;
if (input[0] == output[n - 1])
{
output += " -> " + input;
count++;
//cout << endl;
}
else
{
cout << "잘못된 입력입니다. \n";
}
clock_t endTime = clock();
timer = (endTime - startTime) / CLOCKS_PER_SEC;
cout << "경과한 시간: " << timer << endl << endl;
if (timer > 30)
{
if (count_check != count)
count--;
cout << "게임 종료 \n" << "총 입력한 단어 개수 : " << count;
break;
}
count_check = count;
}
return 0;
}
처음 코드는 제한 시간이 지난 후에도 맞춘 개수가 카운트가 되어, 제한 시간이 지난 후에는 카운트를 1개 빼주는 코드를 작성하는 형태로 했었다.
이 부분을 피드백 해주셨다.
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
// 타임어택 끝말잇기 게임
int main()
{
clock_t startTime = clock();
string input, output = "airplane";
int n, timer = 0, count = 0;
while (1)
{
n = output.size();
cout << output << endl;
cout << "다음 단어를 입력하세요. : ";
cin >> input;
clock_t endTime = clock();
timer = (endTime - startTime) / CLOCKS_PER_SEC;
if (timer > 15)
{
cout << endl << "게임 종료 \n" << "총 입력한 단어 개수 : " << count;
break;
}
else if (input[0] == output[n - 1])
{
output += " -> " + input;
count++;
//cout << endl;
}
else
{
cout << "잘못된 입력입니다. \n";
}
cout << "경과한 시간: " << timer << endl << endl;
}
return 0;
}
시간 체크하는 코드의 위치를 수정함으로써 해결할 수 있었다.
코드 위치를 바꿈으로써 불필요한 코드를 삭제할 수 있었다.
확실이 더 깔끔해진게 느껴졌다.