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

C언어 85제] C언어 콘서트 CHAPTER 10 p400 예제를 활용하여 행맨으로 영어 숙어 연습하기

by 건티 2022. 1. 1.
728x90

출처 : 반크_독도포스터

 

참고풀이]

//Dev-C++ 5.11로 작업함.
#include <stdio.h>
#include <windows.h> //Sleep()
#include <conio.h> //getch()
#include <string.h> //strcmp(), strlen()
#include <stdlib.h> //srand(), rand(), system()
#include <time.h> //time()

void gotoxy(int x, int y)
{
   COORD Pos={x,y};
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Pos);
}

int main(void) {
   char solution[3][100] ={
    "meet at midnight",
    "new year's greeting",
    "happy birthday"}; // 정답이 들어 있는 문자 배열
   char hint[3][100]={
    "한밤중에 만나다",
    "새해인사",
    "생일축하"};
   char answer[100] ="";// 현재까지 사용자가 맞춘 문자열
   char ch;
   int i;
   int key;

   //실행할 때마다 무작위 수를 발생하도록 초기값을 설정. 
   srand(time(NULL));

   key=rand()%3;
   for(i=0;i<strlen(solution[key]);i++)
      if(solution[key][i]==' ')
         answer[i]=' ';
      else
         answer[i]='_';

   gotoxy(15,0); printf("행맨으로 영어 숙어 공부하기]");
   gotoxy(17,1); printf("(힌트 : %s)",hint[key]);
   while (1) {
      gotoxy(10,3); printf("문자열을 입력하시오: %s", answer);
      gotoxy(10,4); printf("글자를 추측하시오: ");
      ch = getch();

      // 사용자가 입력한 문자를 answer[]에 넣어서  정답을 비교한다.
      for (i = 0; solution[key][i] != '\0'; i++)
         if (solution[key][i] == ch) answer[i] = ch; // 사용자가 맞추었으면 글자를 보이게 한다.
      if (strcmp(solution[key], answer) == 0) break; // 정답과 일치하는지를 검사
   }

   gotoxy(10,3); printf("문자열을 입력하시오: %s", answer);
   gotoxy(15,7);printf("수고하셨습니다.\n");
   return 0;
}

 

참고풀이 결과]

시작)

단어 맞추기)

 

종료)

 

 

 

 

대한민국의 아름다운 영토, 독도의 가을

 

반응형

댓글