난수를 통해서 컴퓨터가 가위 바위 보 중에서 하나를 난수로 선택받게 하고 사용자는 숫자를 입력해서 정하는 식으로 가위바위보를 하는 프로그램인데요
ㅠㅠ 계속해서 비겼다 라고만 나오네요 ㅜㅜ 뭐가 문제인지 ㅜㅜ
실행결과를 적어보자면 당신은 가위 선택,컴퓨터는 보 선택,비겼습니다! 이런식으로요 ㅜㅜ 좀 가르쳐주세요 ㅠㅜ
..
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int UserSelect(void);
int ComputerSelect(void);
int WhoWin(int a,int b);
int main(void)
{
int b,c;
int win=0;
int draw=0;
int result;
srand((int)time(NULL));
while(1)
{
b=UserSelect();
c=ComputerSelect();
result=WhoWin(b,c);
if(result==0)
{
printf(\"비겼습니다!\\n\\n\");
draw++;
}
else if(result==-1)
{
printf(\"당신이 졌습니다!\\n\\n\");
break;
}
else
{
printf(\"당신이 이겼습니다!\\n\\n\");
win++;
}
}
printf(\"게임의 결과:%d승,%d무\",win,draw);
return 0;
}
int UserSelect(void)
{
int b;
printf(\"바위는 1,가위는 2,보는 3: \");
scanf(\"%d\",&b);
if(b==1)
{
printf(\"당신은 바위 선택,\");
}
else if(b==2)
{
printf(\"당신은 가위 선택,\");
}
else
{
printf(\"당신은 보 선택,\");
}
return b;
}
int ComputerSelect(void)
{
int Computer=rand()%3+1;
if(Computer==1)
{
printf(\"컴퓨터는 바위 선택,\");
}
else if(Computer==2)
{
printf(\"컴퓨터는 가위 선택,\");
}
else
{
printf(\"컴퓨터는 보 선택,\");
}
return Computer;
}
int WhoWin(int a,int b)
{
if(a=b)
return 0;
else if(a%3==(b+1)%3)
return -1;
else
return 1;
}
계속 비겼다고 나왔으면 직전에 어떤놈이 말썽일까요? ㅋㅋ
그걸 잘 모르겠어요 ㅜㅜㅜㅜㅜ WhoWin 함수가 잘못된 것인지 ㅜㅜ
난 if(a=b)부터가 이상해 보인다만요..
아아 감사합니다!! 아무생각없이 a==b 했어야 되는데 !!!!!!!!!!
if(a==b)로 수정해라.
변수명하고 뛰어쓰기 습관좀 고치는게 좋을듯