C++ 타임어택 끝말잇기 회고록

정형진·2023년 3월 4일
0

#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;
}

시간 체크하는 코드의 위치를 수정함으로써 해결할 수 있었다.
코드 위치를 바꿈으로써 불필요한 코드를 삭제할 수 있었다.
확실이 더 깔끔해진게 느껴졌다.

0개의 댓글