본문 바로가기
프로그램/C언어 1000제

C언어 131제] 게임 프로젝트 1. 두뇌 개발 프로젝트 Ver 0.1

by 건티 2022. 3. 15.
728x90

출처 : 반크_세계유산 석굴암

 

문제]

임의의 자연수 두개를 발생하여 더하기 게임하기.

단계마다 5개의 문제를 맞추면 다음 단계로 진행할 수 있도록 한다.

단계가 끝나면 계속 작업여부를 체크한다.

작업을 끝내면 결과를 기준으로 능려자 여부를 출력한다.

 

프로그램]

//Dev-C++ 5.11로 작업함.
//두뇌 개발 프로그램 Ver 0.1
//더하기 게임 
#include <stdio.h>
#include <stdlib.h> //srand(), rand()
#include <time.h> //time()

int main()
{
   int a,b;//문제 발생 변수
   int player_answer;//문제에 대한 정답변수
   int count;//맞춘 개수 변수
   int total_count;//전체 문제를 세는 변수 
   int stage;//게임의 단계를 체크하는 변수
   int N;//문제의 난이도를 결정하는 변수 
   char ch;//게임 계속여부를 결정하는 변수 

   //무작위로 문제를 발생할 수 있도록 초기값 설정
   srand(time(NULL));

   printf("[ 남녀노소 누구나 두뇌 개발 프로젝트! ]\n");
   printf("더하기 게임을 시작합니다.\n\n");
   N=10;
   stage=0; 
   total_count=0;
   while(1)
   {
      printf("%d단계를 시작합니다.\n",++stage);
      count=0;
      while(1)
      {
         total_count++;//발생되는 문제의 개수를 센다. 

         //문제를 발생한다. 
         a=rand()%N;
         b=rand()%N;

         //발생한 문제의 정답을 Player가 입력한다. 
         printf("%d + %d = ",a,b);
         scanf("%d%*c",&player_answer); //%*c : enter key

         //정답이 맞는 지 체크한다.
         if((a+b)==player_answer)
         {
            count++;
            printf("축하합니다! 정답입니다.\n\n");
         }
         else
         {
            printf("아! %d + %d = %d 이였습니다.\n",a,b,a+b);
            printf("좀 더 집중해 보세요.\n");
            printf("화이팅!!!\n\n");
         }

         if(count==5) break;

         printf("현재 %d개를 맞추었습니다.\n",count);
         printf("5개를 맞추면 %d단계를 통과합니다.\n\n",stage);
      }

      printf("축하합니다. %d단계를 통과하였습니다.\n\n",stage);

      //계속여부 체크하는 부분
      while(1)
      {
         printf("다음 단계로 진행할까요(y/n)? ");
         scanf("%c%*c",&ch); //%*c : enter key
         if(ch=='y' || ch=='Y' || ch=='n' || ch=='N') break;
         printf("y, Y, n, N만 입력하세요.\n");
         printf("다시 입력하세요...\n");
      }
      if(ch=='n' || ch=='N') break;
      N+=5;//난이도를 높인다. 
   }

   printf("\n총 %d개의 문제 중 ",total_count);
   printf("%d개의 문제를 맞추었습니다.\n", stage*5);
   if(total_count==stage*5)
      printf("당신은 능력자입니다.\n");
   else
      printf("꾸준히 노력하면 당신도 능력자가 될 수 있습니다.\n");

   printf("\n수고하셨습니다.\n");

   return 0;
}

 

결과]

 

 

 

 

대한민국의 아름다운 영토, 독도의 겨울

 

반응형

댓글