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

#include "플레이어.h"


//게임프로그래밍 타입객체 패턴 보기. 즉 디자인 패턴.

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

 사자입 = 0,
 곰발 = 1,
 표범몸뚱이 = 2


} E짐승의상태;

// 아이템 종류
//typedef enum _EItem {
// ITEM_EMPTY = 0,
// ITEM_WEAPON = 1, ITEM_ARMOR = 2,
// ITEM_ACCESSORY1 = 4, ITEM_ACCESSORY2 = 8
//} EItem;


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

 //char* 이름; //이름
 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 왕겜성(플레이어& _플레이어, 플레이어& _플레이어2);





void 왕겜성(플레이어& _플레이어, 플레이어& _플레이어2)
{

 _플레이어.치료();

 _플레이어2.치료();

 _플레이어.치료();

 _플레이어2.치료();
 _플레이어.치료();

 _플레이어2.치료();

 _플레이어.데미지();

 _플레이어2.데미지();
 _플레이어.데미지();

 _플레이어2.데미지();
 _플레이어.데미지();

 _플레이어2.데미지();
 _플레이어.데미지();

 _플레이어2.데미지();
 _플레이어.데미지();

 _플레이어2.데미지();
 _플레이어.데미지();

 _플레이어2.데미지();


}


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

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

}




int main(void)
{

 //객체 == 오브젝트

 //구조체 객체 생성
 //구조체 생성 및 초기화
 //c++에서는 typedef를 하지않아도
 //구조체명으로 객체를 생성 가능
 첫번째짐승 몬스터에너지쳐먹은니니키 = {

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


 };


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

  100,100,100,100

 };

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

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

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


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


 //데미지 쳐먹이는 함수 호출
 데미지체력(

  &몬스터에너지쳐먹은니니키, //데미지 쳐먹일 대상

  666 //주는 데미지

 );

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


 std::cout << "==========================" << std::endl;
 std::cout << "==========================" << std::endl;
 std::cout << "==========================" << std::endl;
 std::cout << "==========================" << std::endl;
 std::cout << "==========================" << std::endl;
 std::cout << "==========================" << std::endl;


 플레이어 플레이어1;

 //플레이어1.데미지();

 플레이어 엔피씨;

 왕겜성(플레이어1, 엔피씨);


 //system("pause");

 return 0;
}