C/C++ 언어 rand() 함수를 사용한 묵찌빠 게임
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | #include <stdio.h> // 표준 입출력을 사용하기 위해 #include <stdlib.h> // 랜덤 함수를 사용하기 위해 #include <time.h> // 랜덤함수의 기준을 시간으로 설정하기 위해 void Win(int); // Win함수 선언 void Lose(int); // Lose함수 선언 int Random(void); // Random함수 선언 int main() { int a = 0; // 도전자의 선택을 입력 받기 위한 변수 a 선언 int b = 0; // 컴퓨터의 선택을 입력 받기 위한 변수 b 선언 // 순서를 정하기 위한 turn 변수 선언 초기값을 0으로 하여 도전자 부터 시작 int turn = 0; printf("신나는 묵찌빠 게임~ \n하는법은 알지?\n"); // 게임을 시작을 우선하기 위해 do while문 사용 do { // 시작 printf("1(가위), 2(바위), 3(보), 0(종료) 중 하나를 입력하십시오.\n"); printf("입력 : "); fflush(stdin); // 엔터 입력이 남았을 경우 겹치게 되므로 입력을 비워준다. scanf("%d", &a); // 도전자의 입력을 받는다. b = Random(); // 컴퓨터의 입력을 랜덤하게 받는다. if (a == 1) { // 도전자의 선택이 가위 이고 if (b == 1) { // 컴퓨터의 선택이 가위 이면 printf("도전자 = 가위\n컴퓨터 = 가위\n\n"); Win(turn); // Win함수 호출 파라미터로 turn이 들어간다. // 턴에 따라 승리자가 다르다. } else if (b == 2) { // 컴퓨터의 선택이 바위 이면 printf("도전자 = 가위\n컴퓨터 = 바위\n\n"); Lose(turn); // Lose함수 호출 파라미터로 turn이 들어간다. // 컴퓨터가 이겼다. turn = 1; // 컴퓨터가 이겼으므로 컴퓨터 턴 } else if (b == 3) { // 컴퓨터의 선택이 보 이면 printf("도전자 = 가위\n컴퓨터 = 보\n\n"); Lose(turn); // Lose함수 호출 파라미터로 turn이 들어간다. // 도전자가 이겼다. turn = 0; // 도전자가 이겼으므로 도전자 턴 } } else if (a == 2) { // 컴퓨터의 선택이 가위 이면 if (b == 1) { // 컴퓨터의 선택이 가위 이면 printf("도전자 = 바위\n컴퓨터 = 가위\n\n"); Lose(turn); // Lose함수 호출 파라미터로 turn이 들어간다. // 도전자가 이겼다. turn = 0; // 도전자가 이겼으므로 도전자 턴 } else if (b == 2) { // 컴퓨터의 선택이 바위 이면 printf("도전자 = 바위\n컴퓨터 = 바위\n\n"); Win(turn); // Win함수 호출 파라미터로 turn이 들어간다. // 턴에 따라 승리자가 다르다. } else if (b == 3) { // 컴퓨터의 선택이 보 이면 printf("도전자 = 바위\n컴퓨터 = 보\n\n"); Lose(turn); // Lose함수 호출 파라미터로 turn이 들어간다. // 컴퓨터가 이겼다. turn = 1; // 컴퓨터가 이겼으므로 컴퓨터 턴 } } else if (a == 3) { // 컴퓨터의 선택이 보 이면 if (b == 1) { // 컴퓨터의 선택이 가위 이면 printf("도전자 = 보\n컴퓨터 = 가위\n\n"); Lose(turn); // Lose함수 호출 파라미터로 turn이 들어간다. // 컴퓨터가 이겼다. turn = 1; // 컴퓨터가 이겼으므로 컴퓨터 턴 } else if (b == 2) { // 컴퓨터의 선택이 바위 이면 printf("도전자 = 보\n컴퓨터 = 바위\n\n"); Lose(turn); // Lose함수 호출 파라미터로 turn이 들어간다. // 도전자가 이겼다. turn = 0; // 도전자가 이겼으므로 도전자 턴 } else if (b == 3) { // 컴퓨터의 선택이 보 이면 printf("도전자 = 보\n컴퓨터 = 보\n\n"); Win(turn); // Win함수 호출 파라미터로 turn이 들어간다. // 턴에 따라 승리자가 다르다. } } else if (a == 0) // 0을 선택했다면 return 0; // 종료 한다 else // 1,2,3,0이 아닌 값을 입력 하였다면 printf("잘못 입력하셨습니다.\n"); } while(1); // 0으로 종료가 선택 될때 까지 무한 반복 1은 참이므로 return 0; } // 컴퓨터의 값을 결정하는 함수 int Random(void) // 반환하는 값은 정수형이다. { int value = 0; srand(time(NULL)); // 랜덤 값을 시간으로 설정한다. value = rand() % 3 + 1; // value에 3으로 나눈 나머지 + 1 즉, 1~3까지의 값 return value; // 정수형 value를 반환 한다. } // 졌을 때 출력을 위해서 void Lose(int turn) // 파라미터로 턴을 받는다. { if(turn==0) // 턴이 0이면 도전자의 턴이다. { // 졌다면 컴퓨터의 턴이 된다. printf("컴퓨터의 공격 입니다. !\n\n"); } else // 턴이 1이라면 컴퓨터의 턴이다. { // 졌다면 도전자의 턴이 된다. printf("도전자의 공격 입니다. !\n\n"); } } // 승리자 출력을 위해서 void Win(int turn) // 파라미터로 턴을 받는다. { if(turn==0) // 도전자의 턴이였다면 { // 도전자가 승리한 것이다. printf("도전자의 승리 입니다. !\n\n"); } else // 컴퓨터의 턴이였다면 { // 컴퓨터가 승리한 것이다. printf("컴퓨터의 승리 입니다. !\n\n"); } } | cs |
C/C++ 언어 rand() 함수를 사용한 묵찌빠 게임
'C,C++ > 예제' 카테고리의 다른 글
| C/C++ 언어 모래시계 모양 출력 예제 프로그램 (0) | 2016.03.15 |
|---|---|
| C/C++ 언어 문자열에서 문자 찾기 예제 프로그램 (0) | 2016.03.15 |
| C/C++ 언어 입력된 10진수의 각 자리수별 2진수로 표현 예제 프로그램 (0) | 2016.02.02 |
| C/C++ 언어 콘솔에서 텍스트에 색깔 적용하기 예제 프로그램 (0) | 2016.02.02 |
| C/C++ 언어 원하는 위치에 사각형 그리기 예제 프로그램 (0) | 2016.02.02 |