Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[1191] Re:오랜만에 야구겜 하니 엄청 어렵네요.
진수.네모 [miman101] 1517 읽음    2002-09-16 08:49
baseball.exe 213.5KB 야구 게임. 간만에 하니 잼있더군요.
네부분으로 나누어 생각해보았음다.

1. 컴퓨터->난수발생    void CreateRandomValue()
     - vector<int> secret; 난수 저장 변수 설정.
     - randomize(), random() 으로 실행시 마다 다르게 변수를 생성하도록..
     - 생성된 난수가 서로 겹치지 않도록...
2. 사용자 입력
     - vector<int> answer;
3. 1),2) 비교          int CompareAnswer()
     - 전 2,3을 한 함수에서 처리했어여.
     - for문 두개로 secret 와 answer 를 비교해서 strike 수를 리턴 하도록...
4. 결과 출력
     - strike 수가 3 과 같으면 종료.

* 숫자의 갯수가 3으로 고정된게 아니라 사용자로부터 개수를 얻어 할려다 보니.
1번 구현에서 애매하더 군요.. ㅡㅜ goto 문을 쓰고 말았는데...
  
    randomize();
    for(int i=0;i<LimitNumber;i++)
    {
again : temp = random(10);   // 일단 임시 변수에다 난수 발생으로 숫자를 얻고..

        for(int j=0;j<secret.size();j++)  // 같은 숫자가 secret 에 존재한다면
        {                                 // 다시 again 으로 가 난수를 얻어온다.
            if(secret.at(j) == temp)
                goto again;
        }

        secret.push_back(temp);   // 서로 겹치치 않는 숫자만 추가 한다.
    }

이렇게 하고 숫자 개수를 10으로 하면 0~10까지 겹치지 않게 들어 가더군요. 썩 보기 좋은
코드는 아니군요 ㅡㅜ


2,3번 구현은  뭐 사용자 입력 받는것은 잘 아실 테고, 비교하는 것은 역쉬 두개의 for문으로 돌렸슴다.

    for(int i=0; i<secret.size();i++)
        for(int j=0; j<secret.size();j++)
        {
            if(secret.at(i) == answer.at(j))
            {
                if(i==j) strike++;
                else     ball++;
                break;                // 난수들이 서로 독립적이므로 일단 같은 숫자가 발견되면
            }                         // 더이상 진행할 필요가 없죠.
        }

요로콤시 하면 strike,ball 개수를 얻을수 있죠. out은 난수 갯수에서 strike,ball을 빼면 그게 out 갯수겠죠.

여기서 strike 를 리턴 시키는 거죠.


음... 너무 복잡한가요 ^^;;; 열띠미 썻는데
더 낳은 함수도 많을꺼에요 힘내세요.


*** 첨부 겜에서 사용자 입력할때 엔터 보다는 탭으로 숫자를 구분하는게 보기 좋고.
    마지막 숫자를 넣을 때만 엔터 치세요.


띠아블 님이 쓰신 글 :
: 옛날 놀이중 스트라이크/아웃 게임을 알고 계십니까???
: 만약 내가 375 라는 숫자를 남이 모르게 쓰고 상대방이 276 을 쓰면 ...
: 원 스트라이크 투 볼... 1s 2b...
: 375 를 쓰면 아웃... out
: 이런 프로그램을 짤수 있을 까여...
: 술래는 컴이 하구 제가 맞추는...
: 컴이 임의에 숫자 3개를 만들고 제가 그 숫자를 맞추는 게임...
: 아무리 생각 해도 머리에 정리가 되지 않는...
: 부탁 드립니다...
: 임의 숫자
: 375
: 237...3b (쓰리볼)
: 385...2s1b (투스트라이크 원볼)
: ....

+ -

관련 글 리스트
1187 일런걸 어떻게 짜야할지??? 알려주세여...(__;) 띠아블 1496 2002/09/15
1196     옛날 생각 나네요....^^*(C버전으로 ) 정성훈.해미 1351 2002/09/16
1191     Re:오랜만에 야구겜 하니 엄청 어렵네요. 진수.네모 1517 2002/09/16
1189     Re:이건 야구갬임돠~ 시간한줌 1515 2002/09/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.