아는 동생의 부탁으로 묵찌빠 로직을 만들었는데, 이것을 같이 공유해 처음 공부하는 다른 학생들도 참고해서 이런 방법도 있다 정도로 알아뒀으면 좋겠다.
간단한 예시로 빈도분석과 같은 로직은 추가하지 않았다.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (){
int win=0;//승리수
int me;//유저
unsigned int rand_num;
srand((unsigned int)time(NULL));
while(1){
printf("묵찌빠를 시작하기 전에 선을 정하기 위하여 가위바위보를 해야합니다.\n다음 메뉴중 원하는것을 입력해주세요.\n\n메뉴번호[1=가위 2=바위 3=보] : ");
scanf("%d",&me);//처음 가위바위보 값
rand_num=rand()%(3)+1;
if(me==1){
printf("당신은 가위를 내셨습니다. 컴퓨터는 ");
if(rand_num==1) printf("가위를 냈습니다. 그 결과 비겼습니다.\n");
if(rand_num==2) printf("바위를 냈습니다. 그 결과 졌습니다.\n");
if(rand_num==3) {printf("보를 냈습니다. 그 결과 이겼습니다.\n");win++;break;}
}
if(me==2){
printf("당신은 바위를 내셨습니다. 컴퓨터는 ");
if(rand_num==1) {printf("가위를 냈습니다. 그 결과 이겼습니다.\n");win++;break;}
if(rand_num==2) printf("바위를 냈습니다. 그 결과 비겼습니다.\n");
if(rand_num==3) printf("보를 냈습니다. 그 결과 졌습니다.\n");
}
if(me==3){
printf("당신은 보를 내셨습니다. 컴퓨터는 ");
if(rand_num==1) printf("가위를 냈습니다. 그 결과 졌습니다.\n");
if(rand_num==2) {printf("바위를 냈습니다. 그 결과 이겼습니다.\n");win++;break;}
if(rand_num==3) printf("보를 냈습니다. 그 결과 비겼습니다.\n");
}
continue;
}
for(win;win>0;)
{
if(win==1){
printf("현재 당신:공 컴퓨터:수\n");
printf("메뉴번호[1=가위 2=바위 3=보] : ");
scanf("%d",&me);
rand_num=rand()%(3)+1;
if(me==1){
printf("당신:찌 컴퓨터:");
if(rand_num==1) {printf("찌 로 묵찌빠를 이기셨습니다!\n");break;}
if(rand_num==2) {printf("묵 으로 공수교대\n");win=2;continue;}
if(rand_num==3) {printf("빠 로 이어서\n");continue;}
}
if(me==2){
printf("당신:묵 컴퓨터:");
if(rand_num==1) {printf("찌 로 이어서\n");continue;}
if(rand_num==2) {printf("묵 묵찌빠를 이기셨습니다!\n");break;}
if(rand_num==3) {printf("빠 로 공수교대\n");win=2;continue;}
}
if(me==3){
printf("당신:빠 컴퓨터:");
if(rand_num==1) {printf("찌 로 공수교대\n");win=2;continue;}
if(rand_num==2) {printf("묵 이어서\n");continue;}
if(rand_num==3) {printf("빠 묵찌빠를 승리하셨습니다!\n");break;}
}
}
if(win==2){
printf("현재 당신:수 컴퓨터:공\n");
printf("\n메뉴번호[1=가위 2=바위 3=보] : ");
scanf("%d",&me);
rand_num=rand()%(3)+1;
if(rand_num==1){
printf("컴퓨터:찌 당신:");
if(me==1) {printf("찌 로 묵찌빠를 패배하셨습니다!\n");break;}
if(me==2) {printf("묵 으로 공수교대\n");win=1;continue;}
if(me==3) {printf("빠 로 이어서\n");continue;}
}
if(rand_num==2){
printf("컴퓨터:묵 당신:");
if(me==1) {printf("찌 로 이어서\n");continue;}
if(me==2) {printf("묵 으로 묵찌빠를 패배하셨습니다.\n");break;}
if(me==3) {printf("빠 로 공수교대\n");win=1;continue;}
}
if(rand_num==3){
printf("컴퓨터:빠 당신:");
if(me==1) {printf("찌 로 공수교대\n");win=1;continue;}
if(me==2) {printf("묵 으로 이어서\n");continue;}
if(me==3) {printf("빠 로 묵찌빠를 패배하셨습니다.\n");break;}
}
}
}
return 0;
}