내가 알고 있는것 만으로 이정도의 프로그램을 만들수 있다는 것이 너무나 신기하고 성취감을 느끼는 요즈음이다
예전부터 프로그램밍을 배워보고 싶었지만 혼자서 조금 깔짝이다 마는 의욕부족으로 하지 않고 있었던 것을 이곳
개발원에서 배우고 있다.

재미있다. 어떤 과목보다도 거기다 이런과제로 주어진 것을 내가 해결할수 있다는 것또한 재미있다.
매번 수업마다 이런 떡밥에 낚여서 조금 더 높은 수준으로 내가 향상될수 있기를 간절히 바라고 또 기대해본다.

아래는 수업 마지막에 "C프로그래밍이 좋아서 미치겠다 그래서 도전해보고 싶다 하는 사람만 만들어보라"고 해서 만들어 본 가위바위보 게임 만들기과제를 스스로의 힘으로 해결해본 소스코드이다.

100% 내 힘으로 해결한건 아니다. 문자값을 입력 받았을때 "0, 1, 2, 3, 중 하나만 입력해주세요."
라는 문자열이 출력되도록 하는데 필요한 지식은 교수님에 도움을 받았다.
이것을 만들고 다른사람들은 어떻게 이 문제를 해결했는지가 궁금해서 동호회나 카페를 돌아다니면서
구경을 하곤 했다. 나처럼 그런분이 있다면 보실수 있길 바라는 마음에 소스코드를 공개해본다.

필요하신분 마음껏 이용하세요. 제가 직접 짠 것이니 문제는 없겠지요 캬하하하하~~

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>

int main()
{

 int i,com,user,check;

 char comre[5],ttre[20];

printf("1 : 가위, 2 : 바위, 3 : 보, 0 : 프로그램 종료\n\n");

 for(i=1;i<=i+1;i++)

 {           //for문 괄호 시작

 com = 0;

 srand((unsigned)time(NULL));

 com = rand()%3+1;


  if (com==1)

      strcpy(comre,"가위");

      else if (com==2)

      strcpy(comre,"바위");

      else

      strcpy(comre,"보");



printf("가위!바위!보!");

restart:  //1, 2, 3, 0, 이 아닐때 다시 값을 받는곳으로


check=scanf("%d",&user); //문자를 %d로 입력받으면  error이므로 체크값이 0이 됨을 이용.

fflush(stdin);

  if(!check)

      {
          md:
          printf("\n0, 1, 2, 3, 중 하나만 입력해주세요.");

          goto restart;

      }

 else if ( user==1 || user==2 || user==3 ||user==0 )

 ;

 else
 goto md;



 if (user == 0)    //그만두고 싶을때 0입력

 goto end;

  else if ( com==1 && user==2 )        //user 승리 시작

      strcpy(ttre,"당신이 이");

  else if ( com==2 && user==3 )

      strcpy(ttre,"당신이 이");

  else if ( com==3 && user==1 )

      strcpy(ttre,"당신이 이");            //user 승리 끝

  else if ( com==2 && user==1 )       //com 승리 시작

      strcpy(ttre,"컴퓨터가 이");

  else if ( com==3 && user==2 )

      strcpy(ttre,"컴퓨터가 이");

  else if ( com==1 && user==3 )

      strcpy(ttre,"컴퓨터가 이");         //com 승리 끝

  else

      strcpy(ttre,"비");



 printf("컴퓨터는 %s이고, %s겼습니다.\n\n",comre,ttre);

 } //for문 반복 끝

 end:

 return 0;


 }



 

//진짜 마지막 수정
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

int main()
{
 int com,user,check,i;
 char comre[5],userre[20],uwin[]="당신이 이",cwin[]="컴퓨터가 이",draw[]="비";

 printf("0 : 종료, 1 : 가위, 2 : 바위, 3 : 보\n\n");

 srand((unsigned)time (NULL));
 
 for (i=1;i<=i+1;i++)
 { //for문 반복 구간 시작


 com = rand()%3+1;
 
 if (com == 1)
  strcpy(comre,"가위");
 
 else if (com ==2)
  strcpy(comre,"바위");
 
 else
  strcpy(comre,"보");
 
restart:
 printf("가위~!,바위~!,보~!\n입력 : ");
 check=scanf("%d",&user);
 fflush(stdin);

 if (check==0) //문자값을 입력받을 경우
 {
md:
  printf("\n0~3까지의 값만 입력해주세요.\n\n");
 goto restart;
 }
 else if (0<=user && user <= 3)  //입력을 정확히 했을때
  ;   
 else
 goto md; // 0~3까지의 숫자를 제외한 다른 값을 입력 받을때


 if (user == 0)    //그만두고 싶을때 0입력
   goto end;

  else if ( com==1 && user==2 )     //user 승리 시작
              strcpy(userre,uwin);

  else if ( com==2 && user==3 )
              strcpy(userre,uwin);

  else if ( com==3 && user==1 )
              strcpy(userre,uwin);      //user 승리 끝

  else if ( com==2 && user==1 )     //com 승리 시작
              strcpy(userre,cwin);

  else if ( com==3 && user==2 )
              strcpy(userre,cwin);

  else if ( com==1 && user==3 )
              strcpy(userre,cwin);      //com 승리 끝

  else
              strcpy(userre,draw);

  printf("\n컴퓨터는 %s이고, %s겼습니다.\n\n",comre,userre);
 
 
 }//for문 반복구간 끝
end:
 return 0;

}

: