22019, 1/1101 회원가입  로그인  
   is6277kh
   [c언어]다운로드가 않되서 소스(?) 올립니다ㅎㅎ

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=24149 [복사]


보시고 평가좀 해주세여ㅎㅎ
욕은 사절입니다ㅎㅎ
충고정말 감사하게 마음에 새기겠습니다ㅎㅎ

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



int main()
{
        int a, b, c, d, e ;

        printf("가위바위보게임을 시작하겠습니다.\n") ;
        loop:
        puts("총 몇판하시겠습니까?");
        puts("*주의 : 잘 못입력하실시에는 패배하시거나 게임이 종료됩니다.조심하시기 바랍니다.") ;
        scanf("%d",&e);
         for(d=1;d<=e;d++)
         {
        puts("당신이 낼것을 선택하세요.") ;
        printf("1.가위 2.바위 3.보\n") ;
        scanf("%d",&b);  //a= 상대편
        a = rand()%3 +1 ;  //b= 나

                switch(b){
                case 1:
                        if(a == 1) //상대편과 내가 가위 일때..
                        {
                                
                                printf("당신은 비겼습니다.\n");
                        }
                        else if( a == 2)//상대편이 가위 내가 바위일떄..
                        {
                                printf("당신은 승리하셧습니다.\n");
                        }
                        else if (a== 3)//상대편이 가위 내가 보 일떄..
                        {
                                printf("당신은 졌습니다.\n");
                        }
                        break ;
                case 2:
                        if(a == 1)//상대편이 바위 내가 가위
                        {
                                printf("당신은 졌습니다.\n");
                        }
                        else if( a == 2)//상대편과 내가 바위
                        {
                                printf("당신은 비겼습니다.\n");
                        }
                        else if (a == 3)//상대편이바위 내가 보
                        {
                                printf("당신은 승리하셧습니다.\n");
                        }
                        break ;
                case 3:
                        if( a== 1)//상대편이 보 내가 가위
                        {
                                printf("당신은 승리하셧습니다.\n");
                        }
                        else if( a == 2)//상대편이 보 내가 바위
                        {
                                printf("당신은 졌습니다.\n");
                        }
                        else if (a== 3)//상대편과 내가 ㅂ
                        {
                                printf("당신은 비겼습니다.\n");
                        }
                        break ;
                default :
                        printf("잘못입력하셨습니다.\n패배입니다.");
                        }
}
                printf("계속하실려면 1을 그만하실려면 2를 입력해주세요.\n");
                scanf("%d",&c) ;
                                if (c == 1)
                                {
                                        goto loop;
                                }
                        printf("수고하셨습니다.\n");
                return 0 ;
}

  Hit : 5534     Date : 2012/07/25 12:49



    
asdwho 소스코드를 보아하니..

이거 왠지 정해진 대로만 나오것 같네요.

컴퓨터가 계속 같은 패턴으로 나오지 않나요?
2012/07/25  
asdwho 예를들어 5판 한다고 했을 때 첫판째에서 계속 같은 걸 낼겁니다. 나머지 판에서도 그렇구요 2012/07/25  
is6277kh 그걸 없앨려면 어떻게 하져 ?? 2012/07/25  
gijun0102 <time.h> 함수도 써서 srand(NULL); 해줘야 rand()함수가 매점 바뀌는걸로 알고 있읍니다. (시드 뭐라던가??) 틀렸으면 말해주세요 2012/07/25  
ka0r1 #include <time.h>
srand((unsigned)time(NULL));

위의 해더 파일과 srand함수를 추가하면 프로그램이 실행될 때마다 새로운 난수가 생성됩니다.
2012/07/25  
j3y 위처럼 해 주셔도 되고

임의의 랜덤 테이블을 조그만하게 만들으셔서
여지껏 입력한 값들에 따라 다음 값이 정해지도록 하셔도 됩니다.

의외로 시스템 난수를 이용할 경우
같은 시스템 내에서 비슷한 양상을 보이기땜에..

경우의 수가 굉장히 많도록 설계된 테이블을 짜는게 도움이 될 수도 있습니다.
2012/07/26  
is6277kh 모두들 좋은 지적 감사합니다ㅎㅎ
또다른 게임도 한번 만들어 보겠습니다ㅎㅎ
2012/07/27