#include <stdio.h>
#include <iostream>
#include <windows.h>


//enum
typedef enum _짐승의상태
{

 사자입,
곰발,
표범몸뚱이


};

//구조체 (struct)
//사용자 정의 자료형
typedef struct _첫번째짐승
{

 int 체력;
 int 마력;
 int 경험치;
 
 //unsigned int 사자입 | 곰발 | 표범몸뚱이;
 //왜 빨간줄 뜨지


//public:
 //void 데미지체력(첫번째짐승* _캐릭터, int _데미지)
 //{

  //_캐릭터->


 //}


} 첫번째짐승;


struct 구조체플레이어
{
 //구조체의 기본 접근자는 public
 char 돈;
 int 체력;
 int 마력;
 
 int 경험치;


public:

 //C++에서는 구조체에도 접근 제한을 지정하거나
 //함수선언 및 정의가 가능
 void 치료()
 {

  체력 += 10;

 }

 void 섹스()
 {

  체력 += 1000;

 }


 void 자위()
 {

  체력 += 666;

 }

 void 잠자기()
 {

  체력 += 5000;

 }


};


//구조체 외부에 함수 정의
//구조체에 접근하기위해서 객체를 전달받아야함
void 데미지체력(첫번째짐승* _캐릭터, int _데미지)
{

 _캐릭터->체력 -= _데미지;


}


//구조체에는 데이터를 담아두고
//이를 관리하는 기능(함수)들을 별도로 작성
void 구타(구조체플레이어* _플레이어)
{

 _플레이어->체력 -= 10;

}



int main(void)
{

 //객체 == 오브젝트

 //구조체 객체 생성
 첫번째짐승 몬스터에너지쳐먹은니니키 = {

 2333,
  2333,
  2333


 };


 구조체플레이어 옷치킨이성계 = {

  100,100,100,100

 };

 옷치킨이성계.체력 = 1392;

 구타(&옷치킨이성계);

 printf("옷치킨이성계 체력 : %d\n", 옷치킨이성계.체력);


 printf("니니키 체력 : %d\n", 몬스터에너지쳐먹은니니키.체력);


 //데미지 쳐먹이는 함수 호출
 데미지체력(
  
  &몬스터에너지쳐먹은니니키, //데미지 쳐먹일 대상
  
  666 //주는 데미지
 
 );

 printf("니니키 체력 : %d\n", 몬스터에너지쳐먹은니니키.체력);


 system("pause");

 return 0;
}