#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <math.h>
int Player_damage;
int Monster_damage;
int input;
class Player {
public:
int LV;
int HP;
int EXP;
bool DEAD;
int ATK;
int Total_EXP;
int Total_HP;
int liquid;
Player();
void attack();
void recover();
void show_status();
}player;
class Monster {
public:
int HP;
int ATK;
Monster();
void attack();
void show_status();
}monster;
Monster::Monster() {
HP = 30;
ATK = 3;
}
Player::Player() { // Player 생성
LV = 1;
HP = 50;
EXP = 0;
DEAD = false;
ATK = 5;
}
void Monster::attack() {
ATK = player.LV * 6;
Monster_damage = ATK;
player.HP -= Monster_damage;
if (player.HP <= 0) {
player.DEAD = true;
player.EXP =0;
if (player.EXP <= 0) {
player.EXP = 0;
}
std::cout << "플레이어님이 사망하셨습니다. 1을 누르시면 부활합니다. " << std::endl;
std::cin >> input;
if (input == 1) {
std::cout << "플레이어가 부활하였습니다." << std::endl;
player.DEAD = false;
player.HP = pow(player.LV, 1.25) * 50;
}
else {
std::cout << "잘못 누르셨습니다. 처음부터 다시키우세요 ^.^ " << std::endl;
player.LV = 1;
player.EXP = 0;
player.Total_HP = pow(player.LV, 1.25) * 50;
player.HP = player.Total_HP;
player.Total_EXP = 1500 * pow(1.15, player.LV);
player.ATK = 5 * pow(player.LV, 1.94);
}
}
}
void Player::attack() { // Player 몬스터 공격
Player_damage = ATK;
monster.HP -= Player_damage;
if (monster.HP <= 0) {
EXP += 72 * pow(1.09, LV);
monster.HP =30 * pow(LV, 1.63);
}
if (EXP >= Total_EXP) {
EXP = 0;
LV += 1;
Total_EXP = 500 * pow(1.08, LV);
Total_HP = pow(LV, 1.41) * 50;
HP = Total_HP;
monster.HP = 30 * pow(LV, 1.63);
ATK = 5 * pow(LV, 2.14);
liquid = Total_HP * 0.2;
}
}
void Player::recover() {
HP += liquid;
if (HP >= Total_HP) {
HP = Total_HP;
}
}
void Player::show_status() {
std::cout << "플레이어 상태 -- " << "레벨 : " << LV << " // " << " HP : " << HP << " // " << " 경험치 : " << EXP <<
" // " << " 공격력 : " << ATK << " ";
}
void Monster::show_status() {
std::cout << "몬스터 상태 -- " << "HP : " << HP << " 몬스터 공격력 :" << ATK << std::endl;
}
int main() {
player.show_status();
std::cout << std::endl;
for (;;) {
std::cout << std::endl;
std::cout << "몬스터 공격 : 1을 눌러주세요" << std::endl;
std::cout << "체력 회복 : 2를 눌러주세요" << std::endl;
std::cin >> input;
std::cout << std::endl;
if (input == 1) {
player.attack();
monster.attack();
player.show_status();
monster.show_status();
}
else if (input == 2) {
player.recover();
player.show_status();
}
else {
std::cout << "다시 입력해라 " << std::endl;
}
if (player.LV == 102) {
std::cout << "축하합니다. 만렙입니다! 1이랑 2누르느라 고생했음 " << std::endl;
break;
}
}
return 0;
}
맨첫줄 #define 땨문에 ㅁㅈㅇ - dc app
노무현 뭐냐 ㅋㅋㅌ
해당 댓글은 삭제되었습니다.
둘다가능 - dc app
그래? c에서 math.h썼는데 여기서도 되길래 그냥씀..
이게 진정한 플랫폼 독립적 실행이지 ㅋㅋㅋ
개꿀잼이노
다시키우세요 버전에서는 왜아무리잡아도 렙이안오르냐
혹시 계속 1만누르냐
1만누르는 놈들 있을까봐 죽으면 경험치 0으로 리셋해놨다^^
1, 2 섞어서 누름
대신 레벨은 그대로지
경험치는 오르는데 레벨2로 안넘어가
플레이어 상태 -- 레벨 : 1 // HP : 50 // 경험치 : 468 // 공격력 : 5
1렙 경험치 500넘음
ㅋㅋ
윾
깃허브 모르냐 븅시나