(전체코드)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
typedef struct { //고양이 정보를 담은 구조체 정의
char* name;
int age;
char* character;
int level; //level 5가 키우기 제일 어려움
} CAT;
CAT cats[5]; // 큰 상자에 있는 고양이 목록을 배열로 선언
int collection[5] = { 0, 0, 0, 0, 0 }; //고양이 있으면 1 없으면 0
void initCats(); //고양이 정보 초기화 함수 선언
void printCat(int selected); //뽑은 고양이 정보 출력 함수 선언
int checkCollection(); //모든 고양이 확인 함수 선언
int main(void) {
srand(time(NULL)); //난수 초기화
initCats(); //고양이 정보 초기화 함수 호출
while (1) { // 작은 상자가 채워질 때까지 무한 반복
printf("두근두근! 오느 고양이의 집사가 될까요? \n엔터를 눌러 확인하세요!");
getchar(); //엔터 입력받기
int selected = rand() % 5; //고양이 뽑기, 0 ~ 4
printCat(selected); //뽑은 고양이 정보 출력 함수 호출
collection[selected] = 1;
int collectAll = checkCollection();
if (collectAll == 1) {
break;
}
}
return 0;
}
void initCats() { //고양이 정보 초기화 함수 정의
cats[0].name = "깜냥이";
cats[0].age = 5;
cats[0].character = "온순";
cats[0].level = 1;
cats[1].name = "귀요미";
cats[1].age = 2;
cats[1].character = "까칠";
cats[1].level = 2;
cats[2].name = "로또";
cats[2].age = 7;
cats[2].character = "귀여움";
cats[2].level = 4;
cats[3].name = "돼냥이";
cats[3].age = 9;
cats[3].character = "시끄러움";
cats[3].level = 4;
cats[4].name = "깍꿍";
cats[4].age = 2;
cats[4].character = "배고픔";
cats[4].level = 4;
}
void printCat(int selected) { //뽑은 고양이 정보 출력 함수 정의
printf("\n\n=== 당신은 다음 고양이의 집사가 됐어요! ===\n\n");
printf(" 이름 : %s\n", cats[selected].name);
printf(" 나이 : %d\n", cats[selected].age);
printf(" 특징 : %s\n", cats[selected].character);
printf(" 레벨 : ");
for (int i = 0; i < cats[selected].level; i++) {
printf("%s", "♥");
}
printf("\n\n");
}
int checkCollection() { //모은 고양이 확인 함수 정의
int collectAll = 1; //상자에 모우 고양이가 있는지 표시, 모두 있음 상태로 초기화
printf("\n\n === 보유한 고양이 목록임니더 === \n\n");
for (int i = 0; i < 5; i++) { //상자 수 만큼 반복
if (collection[i] == 0) {//고양이 없음
printf("%10s", "(빈 상자)");
collectAll = 0; //고양이를 다 모으지 못한 상태
}
else { //고양이 있음.
printf("%10s", cats[i].name);
}
}
printf("\n==================\n\n");
if (collectAll) {
printf("\n\n축하합니더!! 고양이 5마리를 모두 모았어요. 열심히 키워주세용.\n\n");
}
return collectAll;
}
- getchar() 함수에 노란줄이 나오는데 실행하는데 문제 없으므로 무시해도 됨. 아니면 함수 앞에 (void) 추가
(실행화면)
- 로또 나에게로,,
'언어 > C' 카테고리의 다른 글
[코딩자율학습] 19일차 프로젝트 비밀 일기 프로그램 (0) | 2024.03.28 |
---|---|
[코딩자율학습] 18일차 파일입출력 (0) | 2024.03.27 |
[코딩자율학습] 16일차 구조체 (0) | 2024.03.25 |
[코딩자율학습] 15일차 동물카드 뒤집기 프로젝트 (0) | 2024.03.24 |
[코딩자율학습] 14일차 다차원 배열 (0) | 2024.03.21 |