#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 _데미지)
//{
//_캐릭터->
//}
} 첫번째짐승;
typedef struct _구조체플레이어
{
//구조체의 기본 접근자는 public
char 돈;
int 체력;
int 마력;
int 경험치;
public:
//C++에서는 구조체에도 접근 제한을 지정하거나
//함수선언 및 정의가 가능
void 치료()
{
체력 += 10;
}
void 섹스()
{
체력 += 1000;
}
void 자위()
{
체력 += 666;
}
void 잠자기()
{
체력 += 5000;
}
}구조체플레이어;
void 업데이트마력(구조체플레이어* _캐릭터, int _주어진마력)
{
std::cout << "이야압 마력 받아라! 플레이어!"
<< std::endl;
_캐릭터->마력 += _주어진마력;
}
//구조체 외부에 함수 정의
//구조체에 접근하기위해서 객체를 전달받아야함
void 데미지체력(첫번째짐승* _캐릭터, int _데미지)
{
std::cout << "이야압 데미지 받아라! 짐승!"
<< std::endl;
_캐릭터->체력 -= _데미지;
}
void 왕겜성(플레이어& _플레이어, 플레이어& _플레이어2);
void 왕겜성(플레이어& _플레이어, 플레이어& _플레이어2)
{
_플레이어.치료();
_플레이어2.치료();
_플레이어.치료();
_플레이어2.치료();
_플레이어.치료();
_플레이어2.치료();
_플레이어.데미지();
_플레이어2.데미지();
_플레이어.데미지();
_플레이어2.데미지();
_플레이어.데미지();
_플레이어2.데미지();
_플레이어.데미지();
_플레이어2.데미지();
_플레이어.데미지();
_플레이어2.데미지();
_플레이어.데미지();
_플레이어2.데미지();
std::cout << "플레이어의 체력은 ... : "
<< _플레이어.얻기체력() << std::endl;
//_플레이어.
}
//구조체에는 데이터를 담아두고
//이를 관리하는 기능(함수)들을 별도로 작성
void 구타(구조체플레이어* _플레이어)
{
_플레이어->체력 -= 10;
}
int main(void)
{//오늘은 Class라는걸 배울건데.
// c++의 시작이자 끝... 이걸 어떻게 잘쓰냐가 관건.
// c++는 문법 자체는 c하고 비슷하기때문에 문법은 안어려워요. 씨뿔뿔의 철학이나 그런것들을 잘이해하고 쓰는거... 그게 힘들거든요. 잘 묵상하고 생각을 하시면서 쓰세요.
//관점이나 철학에 관련된 부분들은 사람마다 다른게 있기때문에 따라친다고해서 만들어지는게아니니까 생각을 잘하셔야되요.
//면접에서 스캇 마이어스 의 이펙티브 책 물어보므로 반드시 볼 것. c++를 잘쓰기위한 왠만한게 다 들어가있다. 한번 봐선 이해안된다.
//빨리 보시면 빨리 보시는만큼 요런게 있구나를 알수있어서 괜찮습니다.
//다른 책들은 안보더라도 요거는 무조건 보시길 추천드립니다. 번역본이 시중에 다 나와있음.
//객체 == 오브젝트
//구조체 객체 생성
//구조체 생성 및 초기화
//c++에서는 typedef를 하지않아도
//구조체명으로 객체를 생성 가능
첫번째짐승 몬스터에너지쳐먹은니니키 = {
2333,
2333,
2333,
사자입|곰발|표범몸뚱이
};
구조체플레이어 옷치킨이성계 = {
100,100,100,100
};
옷치킨이성계.체력 = 1392;
구타(&옷치킨이성계);
업데이트마력(&옷치킨이성계, 666);
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;
//클래스 객체 Class Object
// ->인스턴스(Instance) 즉 클래스 객체를 '인스턴스'라고도 부른다.
플레이어 플레이어1;
//플레이어1.데미지();
//플레이어1.
//플레이어1. //멤버접근연산자Memver Access Operator
// . <= 이게 멤버접근연산자
//클래스의 멤버 접근 연산자도 c하고 똑같긴 하지만
//하면 볼수있는 애들만 보인다.
//훨씬 더 안전하게 데이타를 보호하고 관리할수가 있습니다.
플레이어 엔피씨;
왕겜성(플레이어1, 엔피씨);
//system("pause");
return 0;
}
댓글 0