컴퓨터가 무조건 이기는 가위바위보

친구의 부탁으로 만들어 줬다. 뭐…이런거 하면 안되는 거겠지만 -_-;

#include // scanf와 printf를 사용하기 위하여 포함됨

#include // strcpy를 사용하기 위하여 포함됨

#include // exit를 사용하기 위하여 포함됨

int scissor(int); // 컴퓨터의 필승 전략 함수

int printing_choice(int , int ); // 누가 무엇을 골랐는지 알려주는 함수

void winner(int ,int ); // 승자가 누구인지 판정하는 함수

int main(void) // 명령줄 입력값 없음

{

int g;

printf(“Input your choice : “);

scanf(“%d”,&g); // 사람의 선택을 입력받아서 변수 g에 저장한다

printing_choice(1,g); // 사람의 선택 g를 출력한다

printing_choice(2,scissor(g)); // scissor 함수에서 넘겨받은 컴퓨터의 선택을 출력한다

winner(g,scissor(g)); // 사람의 선택과 컴퓨터의 선택을 비교하여 승자를 출력한다

system(“PAUSE”);

return 1; // 프로그램 종료

}

int scissor(int p){

return (p%3)+1;

// 3으로 나눈 나머지에 1을 더하였으므로 이 함수는 1, 2, 3중의 하나를 반환한다.

// 입력값 p보다 항상 1이 크기 때문에 승리 전략이 된다.

}

int printing_choice(int m, int p){

char a[10],b[10];

// 입력받은 값 m이 1이면 사용자의 입력값, 1이 아니면 컴퓨터의 입력값이다.

if(m==1){

strcpy(a,”You”);

}

else {

strcpy(a,”Machine”);

}

// 입력받은 값 p가 3의 배수이면 가위, 3으로 나눈 나머지가 1이면 바위, 3으로 나눈 나머지가 2이면 보자기이다.

if(p%3==0){

strcpy(b,”SCISSOR”);

}

else if(p%3==1){

strcpy(b,”ROCK”);

}

else {

strcpy(b,”PLAIN”);

}

// 누구의 입력값이 무엇인지 출력한다

printf(“%s select %s\n”,a,b);

}

void winner(int p,int q){

char a[10];

// 가위는 보자기에 이긴다. 그리고 보자기는 바위에 이기고 바위는 가위에 이긴다.

if((p%3==0&&q%3==2)||(p%3>q%3)){

strcpy(a,”You win”);

}

if((q%3==0&&p%3==2)||(p%3 strcpy(a,”You lose”);

}

// 만약 값이 같으면 둘은 비긴다.

if(p%3==q%3){

printf(“No one win\n”);

exit(1);

}

// 누가 이겼는지 출력하고 끝낸다.

printf(“%s!\n”);

}

코멘트

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.