본문 바로가기
공부

DAY6 과제2.숫자야구게임

by MY블로그 2022. 10. 17.
#include <iostream>
#include<time.h>

using namespace std;

int main()
{
	srand(time(NULL));

	int com1, com2, com3;
	int user1, user2, user3;
	int strike, ball, out;

	int count = 0;

	while (true)
	{
		com1 = rand() % 9 + 1;
		while (true)
		{
			com2 = rand() % 9 + 1;
			if (com2 != com1)
				break;
		}
		while (true)
		{
			com3 = rand() % 9 + 1;
			if ((com3 != com1) && (com3 != com2))
				break;
		}
		strike = 0;

		cout << "[과제 : 숫자야구 게임]" << endl;

		while (strike < 3)
		{
			count++;

			cout << "3개의 숫자를 입력하세요(1~9) : " << endl;
			cin >> user1;
			if (user1 == 0 || user1 > 9)
			{
				cout << "1부터 9까지의 숫자로만 입력해 주세요!" << endl;
			}
			cin >> user2;
			if (user2 == user1)
			{
				cout << "중복되지 않은 숫자를 입력해 주세요!" << endl;
			}
			cin >> user3;
			if ((user3 == user2) || (user3 == user1))
			{
				cout << "중복되지 않은 숫자를 입력해 주세요!" << endl;
			}
			strike = ball = out = 0;

			if (user1 == com1)
				strike++;
			else if (user1 == com2 || user1 == com3)
				ball++;
			else
				out++;

			if (user2 == com2)
				strike++;
			else if (user2 == com1 || user2 == com3)
				ball++;
			else
				out++;

			if (user3 == com3)
				strike++;
			else if (user3 == com1 || user3 == com2)
				ball++;
			else
				out++;

			cout << "스트라이크 : " << strike << endl;
			cout << "볼  : " << ball << endl;
			cout << "아웃 : " << out << endl;
			cout << endl;

		}
		cout << "정답까지의 총 도전 횟수 : " << count << "번 입니다!" << endl;
		cout << endl;

	}

}

 

플레이어가 잘못된 숫자입력 또는 중복된 숫자 입력시 입력한 정보가 초기화 되도록 하고싶었으나

초기화에 실패하여 잘못입력된 숫자가 그대로 입력이 된다.

수정하는 방법 알아보기..

 

컴퓨터의 랜덤숫자가 중복이 되지않도록 짜는도중 어려움이있어 인터넷 자료를 참고.

'공부' 카테고리의 다른 글

아스키코드 참고자료  (0) 2022.10.20
C++ 하이 로우 세븐 게임 연습  (0) 2022.10.19
DAY6 과제1.C++ 점찍기  (0) 2022.10.17
레지스트(registry)  (0) 2022.10.11
C++ 연산자 우선 순위  (0) 2022.10.11

댓글