글
친구의 부탁으로 만들어 줬다. 뭐...이런거 하면 안되는 거겠지만 -_-;
#include<stdio.h> // scanf와 printf를 사용하기 위하여 포함됨
#include<string.h> // strcpy를 사용하기 위하여 포함됨
#include<stdlib.h> // 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<q%3)){
strcpy(a,"You lose");
}
// 만약 값이 같으면 둘은 비긴다.
if(p%3==q%3){
printf("No one win\n");
exit(1);
}
// 누가 이겼는지 출력하고 끝낸다.
printf("%s!\n");
}
#include<stdio.h> // scanf와 printf를 사용하기 위하여 포함됨
#include<string.h> // strcpy를 사용하기 위하여 포함됨
#include<stdlib.h> // 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<q%3)){
strcpy(a,"You lose");
}
// 만약 값이 같으면 둘은 비긴다.
if(p%3==q%3){
printf("No one win\n");
exit(1);
}
// 누가 이겼는지 출력하고 끝낸다.
printf("%s!\n");
}
RECENT COMMENT