카테고리 없음

[C언어] 가위바위보 게임 - 설계 및 구현

s뽈록이s 2012. 10. 18. 14:06
void main()
{
	int input, computer;
	srand((int)time(NULL));

	while(1)
	{
		printf("가위(0), 바위(1), 보(2), 종료(3) : ");
		scanf("%d", &input);

		if((input < 0) || (input > 3))
		{
			printf("다시 입력해 주세요!\n\n");
			continue;
		}
		if(input == 3) break;

		computer = rand() % 3;

		if(computer == input)
		{
			printf("비겼습니다. \n\n");
		}
		else if((computer == 0) && (input == 1))
		{
			printf("이기셨습니다.\n\n");
		}
		else if((computer == 0) && (input == 2))
		{
			printf("지셨습니다.\n\n");
		}
		else if((computer == 1) && (input == 2))
		{
			printf("이기셨습니다.\n\n");
		}
		else if((computer == 1) && (input == 0))
		{
			printf("지셨습니다.\n\n");
		}
		else if((computer == 2) && (input == 0))
		{
			printf("이기셨습니다.\n\n");
		}
		else if((computer == 2) && (input == 1))
		{
			printf("지셨습니다.\n\n");
		}
	}
}

사용자의 입력을 받을 input변수와 컴퓨터의 입력을 저장할 computer를 선언한다. 사용자로부터 입력 받은 값의 범위를 조하새 오류 여부를 조사 한 후 오류가 있으면 continue를 통해 다시 입력 받도록 하였다.


컴퓨터의 입력은 rand()함수를 통해 반환되는 값을 3으로 나눈 나머지를 넣었다. 이러면 0~2사이의 값이 입력된다. 그리고 rand함수를 사용할 때 seed값 이란게 있다. seed값이 같으면 동일한 패턴의 값이 반환되게 된다.


매 프로그램 실행 시 seed값을 다르게 주어야 패턴의 반복이 없다. 그래서 시간 함수를 이용해 seed값을 넣어준다. 이제 가위, 바위, 보의 경우의 수만 if문으로 구현해 주면 된다.


#include <stdlib.h> #include <time.h> 를 추가해 주어야 한다.