이번에는 텍스트 모드에서 실행되는 아주 간단한 게임을 만들어보자. 단순히 출력만 하는 것이 아니라 사용자와 상호작용을 한다는 점에서 앞의 예제들과는 조금 다르다. RandNum이라는 이름으로 프로젝트를 만들고 다음 소스를 입력한다. 좀 길기는 하지만 타이핑 연습하는 셈치고 직접 입력해 보기 바란다.

: Triangle

#include <Turboc.h>

void main()
{
    int num;
    int input;


    randomize();
    for (;;) {
         num=random(100)+1;
         printf("\n제가 만든 숫자를 맞춰보세요.\n");
         do {
             printf("숫자를 입력하세요(끝낼 떄는 999) : ");
             scanf("%d",&input);
             if (input==999) {
                   exit(0);
             }
             if (input==num) {
                  printf("맞췄습니다.\n");
             } else if (input>num) {
                  printf("입력한 숫자보다 더 작습니다.\n");
             } else {
                  printf("입력한 숫자보다 더 큽니다.\n");
              }
         } while (input!=num);
    }
}

난수 생성문과 사용자로부터 입력 코드, 이중 루프 등의 기법을 사용했기 때문에 뭔가 더 복잡해 보인다. 난수 함수를 사용하므로 표준 헤더 파일인 stdio.h 대신 이 책을 위해 별도로 작성해 놓은 Turboc.h를 포함시켰다. 만약 Turboc.h 헤더 파일을 찾을 수 없다는 에러가 발생하면 1장에서 설명한 실습 준비를 안한 것이다. Turboc.h 파일을 반드시 개발툴의 Include 디렉토리에 복사해 놓도록 하자.

앞으로 예제들은 Turboc.h 헤더 파일을 사용할 것이다. 왜 표준도 아닌 이런 이상한 헤더 파일을 써야 하는지는 6장에 가서나 설명이 가능하므로 당분간은 그냥 실습을 위해 필요한 파일이겠거니 생각해 주기 바란다. 실행해보자.

제가 만든 숫자를 맞춰보세요.
숫자를 입력하세요(끝낼 떄는 999) : 50
입력한 숫자보다 더 큽니다.
숫자를 입력하세요(끝낼 때는 999) : 70
입력한 숫자보다 더 작습니다.
숫자를 입력하세요(끝낼 때는 999) : 60
입력한 숫자보다 더 작습니다.
숫자를 입력하세요(끝낼 때는 999) : 55
입력한 숫자보다 더 작습니다.
숫자를 입력하세요(끝낼 때는 999) : 53
입력한 숫자보다 더 큽니다.
숫자를 입력하세요(끝낼 때는 999) : 54
맞췄습니다.

제가 만든 숫자를 맞춰보세요.
숫자를 입력하세요(끝낼 때는 999) :

컴퓨터가 임의의 난수 하나를 생성하고 사용자로 하여금 그 수를 맞추도록 한다. 커서가 깜박거리면 여기에 1~100까지의 수 중 하나를 입력한다. 컴퓨터는 자신이 만든 숫자가 입력된 수보다 큰지, 작은지를 힌트로 알려 주는데 이 힌트를 참고하여 최소 회수만에 숨겨진 숫자를 찾아내는 것이 이 게임의 목적이다.

게임 규칙도 간단하고 그래픽이 나오는 것도 아니어서 아주 재미없다고 생각되겠지만 화려한 대형 게임들도 이런 작은 프로그램을 확장해서 만들어지는 것이다. 비록 겉모습은 초라하지만 그래도 초보자에게는 쉬운 예제가 아니므로 시시하다고 생각하지 말자. 이 예제들 외에도 뒷부분에 인쓴 좀 더 긴 예제들도 입력해서 실행해 보도록 하자. 몇 번만 더 연습해 보면 개발툴에 금방 익숙해질 수 있다. 다음 절부터 C언어의 문법에 대해 본격적으로 연구해본다.

참고

소스를 빨리, 정확하게 입력할 수 있는 능력도 개발자에게는 무척 중요한 능력이다. 머리속에 떠오로는 코드를 신속하게 입력할 수 있어야 원활한 개발이 가능한데 몸이 안따라 주면 좋은 아이디어를 놓쳐 버리기 십상이다. 머리는 빌 게이츠인데 손가락은 독수리라면 어떻게 되겠는가? 공부가 잘 안되는 날에는 영타 연습을 틈틈히 미리 해두도록 하고 이 책의 예제들도 가급적이면 직접 입력해보는 것이 좋다.
Posted by 테티스
,