카테고리 없음
[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> 를 추가해 주어야 한다.