//DOS 모드에서 가위바위보를 하는 게임이다.
//숫자 1~3까지 누르고 엔터를 치면 된다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int win;
int lose;
int draw;
char* ggg;
bool SelectHand(int hand);
void GameMain(void);
void main()
{
win = 0;
lose = 0;
draw = 0;
for(int i=0; i< 10; i++) // 게임은 10판만 하게 하기
{
printf("\n가위바위보 %d번째 게임을 시작합니다.\n", i+1);
GameMain();
printf("\n\t\t\t%d승 %d패 %d무\n\n", win, lose, draw);
}
ggg = new char[4];
}
void GameMain(void)
{
printf("가위, 바위, 보 셋 중 하나를 제시하세요\n");
printf("1. 가위 2. 바위 3. 보\n");
int playerHand;
int computerHand;
for(;;)// 가위바위보를 제대로 낼때까지 무한 반복 질문
{
bool endLoop;
scanf("%d", &playerHand);
printf("플레이어:");
endLoop = SelectHand(playerHand);
if(endLoop)
{
break;
}
}
printf(" vs 컴퓨터:");
computerHand = rand() % 3; //AI처럼 하기 위해 컴퓨터가 낸 임의의 수를 3으로 나는 나머지를 구한다.
computerHand++;
SelectHand(computerHand);
printf("\n");
if(playerHand == computerHand) //플레이어와 컴퓨터가 같은 수 일 경우
{
printf("무승부입니다.\n");
draw++;
}
else if( (playerHand == 1 && computerHand == 2)
|| (playerHand == 2 && computerHand == 3)
|| (playerHand == 3 && computerHand == 1)) //컴퓨터가 이길수 있는 경우들
{
printf("컴퓨터가 이겼습니다.\n");
lose++;
}
else //그외는 플레이어가 이겼을때이다.
{
printf("당신이 이겼습니다.\n");
win++;
}
}
bool SelectHand(int hand)
{
switch(hand)
{
case 1:
printf("가위");
return true;
break;
case 2:
printf("바위");
return true;
break;
case 3:
printf("보");
return true;
break;
}
printf("다시 입력해 주세요\n");
return false;
}