본문 바로가기

C언어/프로젝트
C 언어 프로젝트 8 - 고양이 키우기

 

#include <stdio.h>
#include <time.h>


// 5마리의 고양이가 있다.
// 아무키나 눌러서 랜덤으로 고양이를 뽑되,
// 5마리 모두 수집해서 열심히 키우는 게임!
// 중복 발생 가능!

// 고양이
// 이름, 나이, 성격. 키우기 난이도(레벨)

typedef struct {
char* name;
int age;
char* character;
int level; // 1~5
} CAT;

// 현재까지 보유한 고양이
int collection[5] = { 0,0,0,0,0 };

// 전체 고양이 리스트
CAT cats[5];

void initCats(); //고양이 정보 초기화
void printCat(int selected);

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 = 5;
cats[1].character = "개냥이";
cats[1].level = 2;

cats[2].name = "코코";
cats[2].age = 5;
cats[2].character = "까칠";
cats[2].level = 5;

cats[3].name = "무늬";
cats[3].age = 5;
cats[3].character = "낯가림";
cats[3].level = 4;

cats[4].name = "하양이";
cats[4].age = 5;
cats[4].character = "장난꾸러기";
cats[4].level = 3;
}

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()
{
// 1.현재 보유한 고양이 목록도 출력
// 2.다 모았는지 여부 반환
int collectAll = 1;

printf("\n\n === 보유한 고양이 목록이에요. === \n\n");
for (int i = 0; i < 5; i++)
{
if (collection[i] == 0) // 고양이 수집x
{
printf("%10s", "(빈 박스)");
collectAll = 0; // 다 모으지 못한 상태
}
else // 고양이 수집 o
{
printf("%10s", cats[i].name);
}
}
printf("\n=======================================\n\n");

if (collectAll) // 모든 고양이를 다 모은 경우
{
printf("\n\n 축하합니다! 모든 고양이를 다 모았어요. 열심히 키워주세요.\n\n");
}

return collectAll;
}

 

** 유튜브 나도코딩 참고