언어/C

[코딩자율학습] 17일차 너 내 도도독 집사가 되어라

홍시_코딩기록 2024. 3. 26. 23:08

(전체코드)

#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) 추가

 

 

(실행화면)

- 로또 나에게로,,