[C++] 플레이어 클래스를 만들고, 게터와 세터 생성하기
2022. 6. 22. 21:42ㆍ코딩 1막 <C++개념편>/코딩 1막 <C++응용편>
728x90
#include <iostream>
#include <string>
using namespace std;
class Player
{
private:
string name;
int hp = 2 * (atk + def) ;
int halfHp = hp / 2;
int atk;
int def = atk / 2;
string job;
bool isBerserk = false;
bool die = false;
public:
int GetHp()
{
return hp;
}
int GetAtk()
{
return atk;
}
int GetDef()
{
return def;
}
void SetHp(int value)
{
hp = value;
if (hp <= 0)
{
Die();
}
else if (hp <= halfHp)
{
if (isBerserk == false)
{
isBerserk == true;
cout << name << "가 체력이 반이 되어 광전사모드가 됩니다" << endl;
}
}
}
void SetAtk(int value)
{
if (hp == halfHp)
{
atk += value;
}
}
void SetDef(int value)
{
if (hp == halfHp)
{
def += value;
}
}
Player(string _name, int _hp, int _atk, int _def)
{
name = _name;
hp = _hp;
atk = _atk;
def = _def;
}
void Hit(float damage)
{
hp -= damage;
cout << "플레이어의 체력 : " << hp << endl;
if (hp <= 0)
{
Die();
}
}
void Die()
{
cout << name << "가 죽었습니다" << endl;
}
};
void main()
{
Player playerA("전사", 500, 100, 80);
playerA.Hit(30);
playerA.GetHp();
playerA.GetAtk();
playerA.GetDef();
playerA.Hit(30);
playerA.SetHp(50);
playerA.SetAtk(10);
playerA.SetDef(20);
playerA.Hit(30);
playerA.Hit(20);
}
728x90
'코딩 1막 <C++개념편> > 코딩 1막 <C++응용편>' 카테고리의 다른 글
[C++] 절대 변하지 않을 변수를 상수화를 시켜보자 (0) | 2022.06.27 |
---|---|
[C++] 큐와 스택 만들기(자료구조 헬 입성) (0) | 2022.06.23 |
[C++] 클래스와 구조체의 비교 (0) | 2022.06.22 |
[C++] 추리게임 오프닝 만들기 (0) | 2022.06.16 |
[C++] 게임 오프닝 만들기 (0) | 2022.06.16 |