ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어 고양이 뽑기 게임 만들기
    코딩공부 2022. 4. 20. 23:26
    728x90
    반응형

    C언어로 고양이 5마리를 뽑는 게임을 만든다.

     

    조건

    • 5마리의 고양이가 있다.
    • 아무 키나 눌러서 랜덤으로 고양이를 뽑는다.
    • 중복으로 고양이가 뽑힐 수 있다.
    • 고양이는 이름, 나이, 성격, 난이도를 가지고 있다.
    #include <stdio.h>
    #include <time.h>
    
    typedef struct{
    	char * name;
    	int age;
    	char * character;
    	int level;
    }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();
    	int count = 0;
    
    	while(1)
    	{
    		printf("어느 고양이의 집사가 될까요?\n아무 키나 눌러 확인해보세요.");
    		getchar();
    		count = count + 1;
    		int selected = rand() % 5;
    		printCat(selected);
    		collection[selected] = 1;
    		printf("%d번째 시도하였습니다.", count);
            
    		int collectAll == checkCollection();
    		if (collectAll == 1)
    		{
    			break;
    		}
    	}
    
    	return 0;
    }
    
    void initCats()
    {
    	cats[0].name = "치즈";
    	cats[0].age = 2;    
    	cats[0].character = "온순함"    
    	cats[0].level = 1;
        
        	cats[1].name = "양말";
    	cats[1].age = 4;    
    	cats[1].character = "사나움"    
    	cats[1].level = 5;
        
        	cats[2].name = "고등어";
    	cats[2].age = 1;    
    	cats[2].character = "엉뚱함"    
    	cats[2].level = 3;
        
        	cats[3].name = "하양이";
    	cats[3].age = 5;    
    	cats[3].character = "소심함"    
    	cats[3].level = 2;
        
        	cats[4].name = "루루";
    	cats[4].age = 2;    
    	cats[4].character = "귀여움"    
    	cats[4].level = 2;
    }
    
    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\n");
    	if (collectAll == 1)
    	{
    		printf("\n\n축하합니다. 모든 고양이를 모았습니다.\n\n");
    	}
    	return collectAll;
    }
    728x90
    반응형
Designed by Tistory.