오늘은 아래 C언어 독학 시리즈를 잘 따라오신 여러분을 위하여 간단한 숫자 맞추기 게임을 만들어볼겁니다.
C언어 독학 완전 기초부터 마스터까지 #1 (기초, 쉬운 설명, Hello world)
C언어 독학 완전 기초부터 마스터까지 #2 (변수, 자료형, 연산자, 기본 입출력, 실습 예제)
C언어 독학 완전 기초부터 마스터까지 #3 (조건문과 반복문, 조건문과 반복문을 이용한 실습 예제)
C 언어 독학 시리즈 #4: 함수(Function)의 이해와 활용
지금까지 학습한 C 언어의 기초를 활용하여 간단한 숫자 맞추기 게임을 만들어보겠습니다.
이 게임은 컴퓨터가 무작위로 선택한 숫자를 사용자가 추측하는 방식으로 진행됩니다.
이를 통해 변수, 자료형, 연산자, 조건문, 반복문, 함수 등의 개념을 실습할 수 있습니다.
숫자 맞추기 게임 구현
1. 헤더 파일 포함 및 함수 선언
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void playGame();
• stdio.h: 표준 입출력 함수를 사용하기 위해 포함합니다.
• stdlib.h: 난수 생성을 위한 rand() 함수 사용을 위해 포함합니다.
• time.h: 현재 시간을 기반으로 난수 생성을 초기화하기 위해 포함합니다.
• playGame 함수: 게임의 주요 로직을 처리하는 함수입니다.
2. 메인 함수 작성
int main() {
char playAgain;
do {
playGame();
printf("다시 플레이하시겠습니까? (y/n): ");
scanf(" %c", &playAgain);
} while (playAgain == 'y' || playAgain == 'Y');
printf("게임을 종료합니다.\n");
return 0;
}
• main 함수: 게임의 시작점으로, 사용자가 게임을 반복해서 플레이할 수 있도록 합니다.
• do-while 문: 최소 한 번은 게임을 실행하고, 사용자의 입력에 따라 반복 여부를 결정합니다.
3. 게임 로직 구현
void playGame() {
int secretNumber, guess, attempts = 0;
srand(time(0)); // 난수 초기화
secretNumber = rand() % 100 + 1; // 1부터 100 사이의 난수 생성
printf("1부터 100 사이의 숫자를 맞춰보세요!\n");
do {
printf("추측한 숫자를 입력하세요: ");
scanf("%d", &guess);
attempts++;
if (guess > secretNumber) {
printf("너무 높습니다!\n");
} else if (guess < secretNumber) {
printf("너무 낮습니다!\n");
} else {
printf("축하합니다! %d번 만에 맞췄습니다.\n", attempts);
}
} while (guess != secretNumber);
}
• srand(time(0)): 현재 시간을 시드로 사용하여 난수를 초기화합니다.
• rand() % 100 + 1: 1부터 100 사이의 무작위 숫자를 생성합니다.
• do-while 문: 사용자가 정답을 맞출 때까지 반복하여 숫자를 입력받습니다.
• 조건문(if-else): 사용자의 추측이 정답보다 높은지, 낮은지, 맞는지 판단하여 피드백을 제공합니다.
코드 전체
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void playGame();
int main() {
char playAgain;
do {
playGame();
printf("다시 플레이하시겠습니까? (y/n): ");
scanf(" %c", &playAgain);
} while (playAgain == 'y' || playAgain == 'Y');
printf("게임을 종료합니다.\n");
return 0;
}
void playGame() {
int secretNumber, guess, attempts = 0;
srand(time(0)); // 난수 초기화
secretNumber = rand() % 100 + 1; // 1부터 100 사이의 난수 생성
printf("1부터 100 사이의 숫자를 맞춰보세요!\n");
do {
printf("추측한 숫자를 입력하세요: ");
scanf("%d", &guess);
attempts++;
if (guess > secretNumber) {
printf("너무 높습니다!\n");
} else if (guess < secretNumber) {
printf("너무 낮습니다!\n");
} else {
printf("축하합니다! %d번 만에 맞췄습니다.\n", attempts);
}
} while (guess != secretNumber);
}
실행 방법
1. 코드 작성: 위의 코드를 텍스트 편집기나 통합 개발 환경(IDE)에 복사하여 붙여넣습니다. 파일 이름은 number_guessing_game.c로 저장합니다.
2. 컴파일: 터미널이나 명령 프롬프트를 열고, 해당 파일이 저장된 디렉토리로 이동한 후 다음 명령어를 입력합니다.
gcc number_guessing_game.c -o number_guessing_game
• gcc: GNU C 컴파일러를 호출합니다.
• number_guessing_game.c: 소스 코드 파일입니다.
• -o number_guessing_game: 컴파일된 실행 파일의 이름을 지정합니다.
3. 실행: 컴파일이 완료되면 다음 명령어로 프로그램을 실행합니다.
./number_guessing_game
• ./number_guessing_game: 생성된 실행 파일을 실행합니다.
4. 게임 플레이: 프로그램의 지시에 따라 숫자를 추측하고 입력합니다. 정답을 맞출 때까지 반복하며, 게임 종료 후에는 재시작 여부를 묻습니다.
1부터 100 사이의 숫자를 맞춰보세요!
추측한 숫자를 입력하세요: 50
너무 높습니다!
추측한 숫자를 입력하세요: 25
너무 낮습니다!
추측한 숫자를 입력하세요: 37
축하합니다! 3번 만에 맞췄습니다.
다시 플레이하시겠습니까? (y/n): n
게임을 종료합니다.
이러한 과정을 통해 C 언어의 기본 개념을 복습하고, 실제로 적용해볼 수 있습니다.
더 나아가, 게임의 난이도를 조절하거나 기능을 추가하여 자신만의 버전을 만들어보는 것도 좋은 연습이 될 것입니다.
궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용은
추후 정리해서 올려드리겠습니다
구독 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!
'개발 > C언어' 카테고리의 다른 글
C 언어 독학 시리즈 4: 함수의 이해와 실전 활용법 (0) | 2024.11.26 |
---|---|
C언어 독학 완전 기초부터 마스터까지 #3 (조건문과 반복문, 조건문과 반복문을 이용한 실습 예제) (0) | 2024.04.30 |
C언어 독학 완전 기초부터 마스터까지 #2 (변수, 자료형, 연산자, 기본 입출력, 실습 예제) (1) | 2024.04.02 |
C언어 독학 완전 기초부터 마스터까지 #1 (기초, 쉬운 설명, Hello world) (1) | 2023.12.19 |