aboutsummaryrefslogtreecommitdiff
path: root/cpp03
diff options
context:
space:
mode:
Diffstat (limited to 'cpp03')
-rw-r--r--cpp03/ex01/ScavTrap.cpp7
-rw-r--r--cpp03/ex01/main.cpp12
-rw-r--r--cpp03/ex02/ClapTrap.cpp32
-rw-r--r--cpp03/ex02/ClapTrap.hpp4
-rw-r--r--cpp03/ex02/FragTrap.cpp22
-rw-r--r--cpp03/ex02/ScavTrap.cpp22
-rw-r--r--cpp03/ex02/main.cpp10
-rw-r--r--cpp03/ex03/ClapTrap.cpp37
-rw-r--r--cpp03/ex03/ClapTrap.hpp10
-rw-r--r--cpp03/ex03/FragTrap.cpp31
-rw-r--r--cpp03/ex03/FragTrap.hpp6
-rw-r--r--cpp03/ex03/NinjaTrap.cpp42
-rw-r--r--cpp03/ex03/ScavTrap.cpp31
-rw-r--r--cpp03/ex03/ScavTrap.hpp6
-rw-r--r--cpp03/ex03/main.cpp37
-rw-r--r--cpp03/ex04/ClapTrap.cpp37
-rw-r--r--cpp03/ex04/ClapTrap.hpp10
-rw-r--r--cpp03/ex04/FragTrap.cpp31
-rw-r--r--cpp03/ex04/FragTrap.hpp8
-rw-r--r--cpp03/ex04/NinjaTrap.cpp51
-rw-r--r--cpp03/ex04/NinjaTrap.hpp8
-rw-r--r--cpp03/ex04/ScavTrap.cpp31
-rw-r--r--cpp03/ex04/ScavTrap.hpp8
-rw-r--r--cpp03/ex04/SuperTrap.cpp72
-rw-r--r--cpp03/ex04/SuperTrap.hpp3
-rw-r--r--cpp03/ex04/main.cpp82
26 files changed, 318 insertions, 332 deletions
diff --git a/cpp03/ex01/ScavTrap.cpp b/cpp03/ex01/ScavTrap.cpp
index 8379228..16b07e1 100644
--- a/cpp03/ex01/ScavTrap.cpp
+++ b/cpp03/ex01/ScavTrap.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:15:03 by charles #+# #+# */
-/* Updated: 2020/11/10 15:06:00 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:32:05 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -81,9 +81,10 @@ void ScavTrap::meleeAttack(std::string const& target) const
void ScavTrap::takeDamage(unsigned int amount)
{
- amount -= m_armorDamageReduction;
- if (amount < 0)
+ if (amount < m_armorDamageReduction)
amount = 0;
+ else
+ amount -= m_armorDamageReduction;
if (amount > m_hitPoints)
amount = m_hitPoints;
m_hitPoints -= amount;
diff --git a/cpp03/ex01/main.cpp b/cpp03/ex01/main.cpp
index 4e01067..13ed4e6 100644
--- a/cpp03/ex01/main.cpp
+++ b/cpp03/ex01/main.cpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:41:27 by cacharle #+# #+# */
-/* Updated: 2020/11/10 14:21:47 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:53:25 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -32,13 +32,11 @@ int main(void)
std::cout << "=== ATTACK ===" << std::endl;
ft.rangedAttack("a dog");
ft.meleeAttack("a cat");
-
std::cout << std::endl << "=== DAMAGE ===" << std::endl;
ft.takeDamage(0);
ft.beRepaired(0);
ft.takeDamage(10);
ft.beRepaired(10);
-
std::cout << std::endl << "=== VAULTHUNTER ===" << std::endl;
ft.vaulthunter_dot_exe("your mom");
ft.vaulthunter_dot_exe("your dad");
@@ -46,31 +44,27 @@ int main(void)
ft.vaulthunter_dot_exe("your sister");
std::cout << "=== VAULTHUNTER NO ENERGY ===" << std::endl;
ft.vaulthunter_dot_exe("your grandma");
-
std::cout << std::endl << "=== OVER LIMIT ===" << std::endl;
ft.takeDamage(1000);
ft.beRepaired(1000);
- std::cout << std::endl << std::endl << std::endl;
+ std::cout << std::endl << std::endl;
+
ScavTrap scav("jean");
std::cout << "=== ATTACK ===" << std::endl;
scav.rangedAttack("a dog");
scav.meleeAttack("a cat");
-
std::cout << std::endl << "=== DAMAGE ===" << std::endl;
scav.takeDamage(0);
scav.beRepaired(0);
scav.takeDamage(10);
scav.beRepaired(10);
-
std::cout << std::endl << "=== CHALLENGE NEW COMER ===" << std::endl;
scav.challengeNewcomer("your mom");
scav.challengeNewcomer("your dad");
scav.challengeNewcomer("your brother");
scav.challengeNewcomer("your sister");
- std::cout << "=== VAULTHUNTER NO ENERGY ===" << std::endl;
scav.challengeNewcomer("your grandma");
-
std::cout << std::endl << "=== OVER LIMIT ===" << std::endl;
scav.takeDamage(1000);
scav.beRepaired(1000);
diff --git a/cpp03/ex02/ClapTrap.cpp b/cpp03/ex02/ClapTrap.cpp
index 1211ca1..4c712c3 100644
--- a/cpp03/ex02/ClapTrap.cpp
+++ b/cpp03/ex02/ClapTrap.cpp
@@ -6,14 +6,13 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 15:28:43 by charles #+# #+# */
-/* Updated: 2020/11/10 14:29:57 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:41:35 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ClapTrap.hpp"
ClapTrap::ClapTrap():
- m_prefix("CL4P-TP "),
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -24,11 +23,10 @@ ClapTrap::ClapTrap():
m_rangedAttackDamage(0),
m_armorDamageReduction(0)
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "CL4P-TP New " << m_name << ": your gaming references suck" << std::endl;
}
ClapTrap::ClapTrap(std::string const& name):
- m_prefix("CL4P-TP "),
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -39,7 +37,7 @@ ClapTrap::ClapTrap(std::string const& name):
m_rangedAttackDamage(0),
m_armorDamageReduction(0)
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "CL4P-TP New " << m_name << ": your gaming references suck" << std::endl;
}
ClapTrap::ClapTrap(ClapTrap const& other)
@@ -62,23 +60,23 @@ ClapTrap& ClapTrap::operator=(ClapTrap const& other)
ClapTrap::~ClapTrap()
{
- std::cout << "CL4P-TP " << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "CL4P-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void ClapTrap::rangedAttack(std::string const& target) const
{
- std::cout << m_prefix << m_name
- << " attacks " << target
+ std::cout << "CL4P-TP " << m_name
+ << " attacks " << target
<< " at range, causing " << m_rangedAttackDamage
- << " points of damage!" << std::endl;
+ << " points of damage!" << std::endl;
}
void ClapTrap::meleeAttack(std::string const& target) const
{
- std::cout << m_prefix << m_name
- << " attacks " << target
+ std::cout << "CL4P-TP " << m_name
+ << " attacks " << target
<< " in melee mode causing " << m_meleeAttackDamage
- << " points of damage!" << std::endl;
+ << " points of damage!" << std::endl;
}
void ClapTrap::takeDamage(unsigned int amount)
@@ -90,9 +88,9 @@ void ClapTrap::takeDamage(unsigned int amount)
if (amount > m_hitPoints)
amount = m_hitPoints;
m_hitPoints -= amount;
- std::cout << m_prefix << m_name
- << " takes " << amount
- << " damage" << std::endl;
+ std::cout << "CL4P-TP " << m_name
+ << " takes " << amount
+ << " damage" << std::endl;
}
void ClapTrap::beRepaired(unsigned int amount)
@@ -100,7 +98,7 @@ void ClapTrap::beRepaired(unsigned int amount)
if (amount + m_hitPoints > m_maxHitPoints)
amount = m_maxHitPoints - m_hitPoints;
m_hitPoints += amount;
- std::cout << m_prefix << m_name
- << " gained " << amount
+ std::cout << "CL4P-TP " << m_name
+ << " gained " << amount
<< " hit points" << std::endl;
}
diff --git a/cpp03/ex02/ClapTrap.hpp b/cpp03/ex02/ClapTrap.hpp
index 71879b6..00fd168 100644
--- a/cpp03/ex02/ClapTrap.hpp
+++ b/cpp03/ex02/ClapTrap.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 15:20:45 by charles #+# #+# */
-/* Updated: 2020/11/10 14:29:37 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:39:00 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -32,8 +32,6 @@ public:
void beRepaired(unsigned int amount);
protected:
- std::string m_prefix;
-
unsigned int m_hitPoints;
unsigned int m_maxHitPoints;
unsigned int m_energyPoints;
diff --git a/cpp03/ex02/FragTrap.cpp b/cpp03/ex02/FragTrap.cpp
index fc65fcd..9ab2ffc 100644
--- a/cpp03/ex02/FragTrap.cpp
+++ b/cpp03/ex02/FragTrap.cpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:20:45 by cacharle #+# #+# */
-/* Updated: 2020/11/10 14:39:26 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:42:32 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,22 +14,20 @@
FragTrap::FragTrap() : ClapTrap()
{
- m_prefix = "FR4G-TP ";
- m_energyPoints = 100;
- m_maxEnergyPoints = 100;
- m_meleeAttackDamage = 30;
- m_rangedAttackDamage = 20;
+ m_energyPoints = 100;
+ m_maxEnergyPoints = 100;
+ m_meleeAttackDamage = 30;
+ m_rangedAttackDamage = 20;
m_armorDamageReduction = 5;
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
FragTrap::FragTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "FR4G-TP ";
- m_energyPoints = 100;
- m_maxEnergyPoints = 100;
- m_meleeAttackDamage = 30;
- m_rangedAttackDamage = 20;
+ m_energyPoints = 100;
+ m_maxEnergyPoints = 100;
+ m_meleeAttackDamage = 30;
+ m_rangedAttackDamage = 20;
m_armorDamageReduction = 5;
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
@@ -54,7 +52,7 @@ FragTrap& FragTrap::operator=(FragTrap const& other)
FragTrap::~FragTrap()
{
- std::cout << m_prefix << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "FR4G-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void FragTrap::vaulthunter_dot_exe(std::string const& target)
diff --git a/cpp03/ex02/ScavTrap.cpp b/cpp03/ex02/ScavTrap.cpp
index c2f7e9b..1acf126 100644
--- a/cpp03/ex02/ScavTrap.cpp
+++ b/cpp03/ex02/ScavTrap.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:15:03 by charles #+# #+# */
-/* Updated: 2020/11/10 15:06:12 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:42:58 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,22 +14,20 @@
ScavTrap::ScavTrap() : ClapTrap()
{
- m_prefix = "SC4V-TP ";
- m_energyPoints = 50;
- m_maxEnergyPoints = 50;
- m_meleeAttackDamage = 20;
- m_rangedAttackDamage = 15;
+ m_energyPoints = 50;
+ m_maxEnergyPoints = 50;
+ m_meleeAttackDamage = 20;
+ m_rangedAttackDamage = 15;
m_armorDamageReduction = 3;
- std::cout << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "SC4V-TP New " << m_name << ": your gaming references suck" << std::endl;
}
ScavTrap::ScavTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "SC4V-TP ";
- m_energyPoints = 50;
- m_maxEnergyPoints = 50;
- m_meleeAttackDamage = 20;
- m_rangedAttackDamage = 15;
+ m_energyPoints = 50;
+ m_maxEnergyPoints = 50;
+ m_meleeAttackDamage = 20;
+ m_rangedAttackDamage = 15;
m_armorDamageReduction = 3;
std::cout << "SC4V-TP New " << m_name << ": your gaming references suck" << std::endl;
}
diff --git a/cpp03/ex02/main.cpp b/cpp03/ex02/main.cpp
index 4e01067..3263cc7 100644
--- a/cpp03/ex02/main.cpp
+++ b/cpp03/ex02/main.cpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:41:27 by cacharle #+# #+# */
-/* Updated: 2020/11/10 14:21:47 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:53:49 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -32,13 +32,11 @@ int main(void)
std::cout << "=== ATTACK ===" << std::endl;
ft.rangedAttack("a dog");
ft.meleeAttack("a cat");
-
std::cout << std::endl << "=== DAMAGE ===" << std::endl;
ft.takeDamage(0);
ft.beRepaired(0);
ft.takeDamage(10);
ft.beRepaired(10);
-
std::cout << std::endl << "=== VAULTHUNTER ===" << std::endl;
ft.vaulthunter_dot_exe("your mom");
ft.vaulthunter_dot_exe("your dad");
@@ -46,31 +44,27 @@ int main(void)
ft.vaulthunter_dot_exe("your sister");
std::cout << "=== VAULTHUNTER NO ENERGY ===" << std::endl;
ft.vaulthunter_dot_exe("your grandma");
-
std::cout << std::endl << "=== OVER LIMIT ===" << std::endl;
ft.takeDamage(1000);
ft.beRepaired(1000);
std::cout << std::endl << std::endl << std::endl;
+
ScavTrap scav("jean");
std::cout << "=== ATTACK ===" << std::endl;
scav.rangedAttack("a dog");
scav.meleeAttack("a cat");
-
std::cout << std::endl << "=== DAMAGE ===" << std::endl;
scav.takeDamage(0);
scav.beRepaired(0);
scav.takeDamage(10);
scav.beRepaired(10);
-
std::cout << std::endl << "=== CHALLENGE NEW COMER ===" << std::endl;
scav.challengeNewcomer("your mom");
scav.challengeNewcomer("your dad");
scav.challengeNewcomer("your brother");
scav.challengeNewcomer("your sister");
- std::cout << "=== VAULTHUNTER NO ENERGY ===" << std::endl;
scav.challengeNewcomer("your grandma");
-
std::cout << std::endl << "=== OVER LIMIT ===" << std::endl;
scav.takeDamage(1000);
scav.beRepaired(1000);
diff --git a/cpp03/ex03/ClapTrap.cpp b/cpp03/ex03/ClapTrap.cpp
index 6711799..4c712c3 100644
--- a/cpp03/ex03/ClapTrap.cpp
+++ b/cpp03/ex03/ClapTrap.cpp
@@ -6,14 +6,13 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 15:28:43 by charles #+# #+# */
-/* Updated: 2020/04/13 15:50:48 by charles ### ########.fr */
+/* Updated: 2020/11/11 06:41:35 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ClapTrap.hpp"
ClapTrap::ClapTrap():
- m_prefix("CL4P-TP "),
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -24,11 +23,10 @@ ClapTrap::ClapTrap():
m_rangedAttackDamage(0),
m_armorDamageReduction(0)
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "CL4P-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-ClapTrap::ClapTrap(std::string name):
- m_prefix("CL4P-TP "),
+ClapTrap::ClapTrap(std::string const& name):
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -39,7 +37,7 @@ ClapTrap::ClapTrap(std::string name):
m_rangedAttackDamage(0),
m_armorDamageReduction(0)
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "CL4P-TP New " << m_name << ": your gaming references suck" << std::endl;
}
ClapTrap::ClapTrap(ClapTrap const& other)
@@ -47,7 +45,7 @@ ClapTrap::ClapTrap(ClapTrap const& other)
*this = other;
}
-void ClapTrap::operator=(ClapTrap const& other)
+ClapTrap& ClapTrap::operator=(ClapTrap const& other)
{
m_hitPoints = other.m_hitPoints;
m_maxHitPoints = other.m_maxHitPoints;
@@ -57,27 +55,28 @@ void ClapTrap::operator=(ClapTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
ClapTrap::~ClapTrap()
{
- std::cout << "CL4P-TP " << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "CL4P-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void ClapTrap::rangedAttack(std::string const& target) const
{
- std::cout << m_prefix << m_name
- << " attacks " << target
+ std::cout << "CL4P-TP " << m_name
+ << " attacks " << target
<< " at range, causing " << m_rangedAttackDamage
- << " points of damage!" << std::endl;
+ << " points of damage!" << std::endl;
}
void ClapTrap::meleeAttack(std::string const& target) const
{
- std::cout << m_prefix << m_name
- << " attacks " << target
+ std::cout << "CL4P-TP " << m_name
+ << " attacks " << target
<< " in melee mode causing " << m_meleeAttackDamage
- << " points of damage!" << std::endl;
+ << " points of damage!" << std::endl;
}
void ClapTrap::takeDamage(unsigned int amount)
@@ -89,9 +88,9 @@ void ClapTrap::takeDamage(unsigned int amount)
if (amount > m_hitPoints)
amount = m_hitPoints;
m_hitPoints -= amount;
- std::cout << m_prefix << m_name
- << " takes " << amount
- << " damage" << std::endl;
+ std::cout << "CL4P-TP " << m_name
+ << " takes " << amount
+ << " damage" << std::endl;
}
void ClapTrap::beRepaired(unsigned int amount)
@@ -99,7 +98,7 @@ void ClapTrap::beRepaired(unsigned int amount)
if (amount + m_hitPoints > m_maxHitPoints)
amount = m_maxHitPoints - m_hitPoints;
m_hitPoints += amount;
- std::cout << m_prefix << m_name
- << " gained " << amount
+ std::cout << "CL4P-TP " << m_name
+ << " gained " << amount
<< " hit points" << std::endl;
}
diff --git a/cpp03/ex03/ClapTrap.hpp b/cpp03/ex03/ClapTrap.hpp
index 5f4e26a..00fd168 100644
--- a/cpp03/ex03/ClapTrap.hpp
+++ b/cpp03/ex03/ClapTrap.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 15:20:45 by charles #+# #+# */
-/* Updated: 2020/04/13 15:47:14 by charles ### ########.fr */
+/* Updated: 2020/11/11 06:39:00 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,9 +21,9 @@ class ClapTrap
{
public:
ClapTrap();
- ClapTrap(std::string name);
+ ClapTrap(std::string const& name);
ClapTrap(ClapTrap const& other);
- void operator=(ClapTrap const& other);
+ ClapTrap& operator=(ClapTrap const& other);
~ClapTrap();
void rangedAttack(std::string const& target) const;
@@ -32,14 +32,12 @@ public:
void beRepaired(unsigned int amount);
protected:
- std::string m_prefix;
-
unsigned int m_hitPoints;
unsigned int m_maxHitPoints;
unsigned int m_energyPoints;
unsigned int m_maxEnergyPoints;
unsigned int m_level;
- std::string m_name;
+ std::string m_name;
unsigned int m_meleeAttackDamage;
unsigned int m_rangedAttackDamage;
unsigned int m_armorDamageReduction;
diff --git a/cpp03/ex03/FragTrap.cpp b/cpp03/ex03/FragTrap.cpp
index 4db102e..9ab2ffc 100644
--- a/cpp03/ex03/FragTrap.cpp
+++ b/cpp03/ex03/FragTrap.cpp
@@ -6,32 +6,28 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:20:45 by cacharle #+# #+# */
-/* Updated: 2020/04/13 15:46:59 by charles ### ########.fr */
+/* Updated: 2020/11/11 06:42:32 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "FragTrap.hpp"
-FragTrap::FragTrap():
- ClapTrap()
+FragTrap::FragTrap() : ClapTrap()
{
- m_prefix = "FR4G-TP ";
- m_energyPoints = 100;
- m_maxEnergyPoints = 100;
- m_meleeAttackDamage = 30;
- m_rangedAttackDamage = 20;
+ m_energyPoints = 100;
+ m_maxEnergyPoints = 100;
+ m_meleeAttackDamage = 30;
+ m_rangedAttackDamage = 20;
m_armorDamageReduction = 5;
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-FragTrap::FragTrap(std::string name):
- ClapTrap(name)
+FragTrap::FragTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "FR4G-TP ";
- m_energyPoints = 100;
- m_maxEnergyPoints = 100;
- m_meleeAttackDamage = 30;
- m_rangedAttackDamage = 20;
+ m_energyPoints = 100;
+ m_maxEnergyPoints = 100;
+ m_meleeAttackDamage = 30;
+ m_rangedAttackDamage = 20;
m_armorDamageReduction = 5;
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
@@ -41,7 +37,7 @@ FragTrap::FragTrap(FragTrap const& other)
*this = other;
}
-void FragTrap::operator=(FragTrap const& other)
+FragTrap& FragTrap::operator=(FragTrap const& other)
{
m_hitPoints = other.m_hitPoints;
m_maxHitPoints = other.m_maxHitPoints;
@@ -51,11 +47,12 @@ void FragTrap::operator=(FragTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
FragTrap::~FragTrap()
{
- std::cout << m_prefix << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "FR4G-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void FragTrap::vaulthunter_dot_exe(std::string const& target)
diff --git a/cpp03/ex03/FragTrap.hpp b/cpp03/ex03/FragTrap.hpp
index 2afa95c..fc99532 100644
--- a/cpp03/ex03/FragTrap.hpp
+++ b/cpp03/ex03/FragTrap.hpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:17:16 by cacharle #+# #+# */
-/* Updated: 2020/04/13 15:33:50 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:40:04 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -20,9 +20,9 @@ class FragTrap : public ClapTrap
{
public:
FragTrap();
- FragTrap(std::string name);
+ FragTrap(std::string const& name);
FragTrap(FragTrap const& other);
- void operator=(FragTrap const& other);
+ FragTrap& operator=(FragTrap const& other);
~FragTrap();
void vaulthunter_dot_exe(std::string const& target);
diff --git a/cpp03/ex03/NinjaTrap.cpp b/cpp03/ex03/NinjaTrap.cpp
index bdc3534..384f77b 100644
--- a/cpp03/ex03/NinjaTrap.cpp
+++ b/cpp03/ex03/NinjaTrap.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 17:33:00 by charles #+# #+# */
-/* Updated: 2020/11/10 14:43:25 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:49:09 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,28 +14,26 @@
NinjaTrap::NinjaTrap() : ClapTrap()
{
- m_prefix = "NINJ4-TP ";
- m_hitPoints = 60;
- m_maxHitPoints = 60;
- m_energyPoints = 120;
- m_maxEnergyPoints = 120;
- m_meleeAttackDamage = 60;
- m_rangedAttackDamage = 5;
+ m_hitPoints = 60;
+ m_maxHitPoints = 60;
+ m_energyPoints = 120;
+ m_maxEnergyPoints = 120;
+ m_meleeAttackDamage = 60;
+ m_rangedAttackDamage = 5;
m_armorDamageReduction = 0;
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "NINJ4-TP New " << m_name << ": your gaming references suck" << std::endl;
}
NinjaTrap::NinjaTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "NINJ4-TP ";
- m_hitPoints = 60;
- m_maxHitPoints = 60;
- m_energyPoints = 120;
- m_maxEnergyPoints = 120;
- m_meleeAttackDamage = 60;
- m_rangedAttackDamage = 5;
+ m_hitPoints = 60;
+ m_maxHitPoints = 60;
+ m_energyPoints = 120;
+ m_maxEnergyPoints = 120;
+ m_meleeAttackDamage = 60;
+ m_rangedAttackDamage = 5;
m_armorDamageReduction = 0;
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << " NINJ4-TP New " << m_name << ": your gaming references suck" << std::endl;
}
NinjaTrap::NinjaTrap(NinjaTrap const& other)
@@ -58,33 +56,33 @@ NinjaTrap& NinjaTrap::operator=(NinjaTrap const& other)
NinjaTrap::~NinjaTrap()
{
- std::cout << m_prefix << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "NINJ4-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void NinjaTrap::ninjaShoebox(NinjaTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack other ninja trap, the guy who made the subject didn't gave a fuck" << std::endl;
}
void NinjaTrap::ninjaShoebox(FragTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack frag trap, leave me alone" << std::endl;
}
void NinjaTrap::ninjaShoebox(ScavTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack sciv trap, ehehehe look at me I'm being funny" << std::endl;
}
void NinjaTrap::ninjaShoebox(ClapTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack clap trap, ISN'T THAT WHAT YOU WANTED" << std::endl;
}
diff --git a/cpp03/ex03/ScavTrap.cpp b/cpp03/ex03/ScavTrap.cpp
index a1f4a17..1acf126 100644
--- a/cpp03/ex03/ScavTrap.cpp
+++ b/cpp03/ex03/ScavTrap.cpp
@@ -6,32 +6,28 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:15:03 by charles #+# #+# */
-/* Updated: 2020/11/10 15:06:20 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:42:58 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ScavTrap.hpp"
-ScavTrap::ScavTrap():
- ClapTrap()
+ScavTrap::ScavTrap() : ClapTrap()
{
- m_prefix = "SC4V-TP ";
- m_energyPoints = 50;
- m_maxEnergyPoints = 50;
- m_meleeAttackDamage = 20;
- m_rangedAttackDamage = 15;
+ m_energyPoints = 50;
+ m_maxEnergyPoints = 50;
+ m_meleeAttackDamage = 20;
+ m_rangedAttackDamage = 15;
m_armorDamageReduction = 3;
- std::cout << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "SC4V-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-ScavTrap::ScavTrap(std::string name):
- ClapTrap(name)
+ScavTrap::ScavTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "SC4V-TP ";
- m_energyPoints = 50;
- m_maxEnergyPoints = 50;
- m_meleeAttackDamage = 20;
- m_rangedAttackDamage = 15;
+ m_energyPoints = 50;
+ m_maxEnergyPoints = 50;
+ m_meleeAttackDamage = 20;
+ m_rangedAttackDamage = 15;
m_armorDamageReduction = 3;
std::cout << "SC4V-TP New " << m_name << ": your gaming references suck" << std::endl;
}
@@ -41,7 +37,7 @@ ScavTrap::ScavTrap(ScavTrap const& other)
*this = other;
}
-void ScavTrap::operator=(ScavTrap const& other)
+ScavTrap& ScavTrap::operator=(ScavTrap const& other)
{
m_hitPoints = other.m_hitPoints;
m_maxHitPoints = other.m_maxHitPoints;
@@ -51,6 +47,7 @@ void ScavTrap::operator=(ScavTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
ScavTrap::~ScavTrap()
diff --git a/cpp03/ex03/ScavTrap.hpp b/cpp03/ex03/ScavTrap.hpp
index 1ec4008..b1c162d 100644
--- a/cpp03/ex03/ScavTrap.hpp
+++ b/cpp03/ex03/ScavTrap.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:11:51 by charles #+# #+# */
-/* Updated: 2020/04/13 15:34:53 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:38:59 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -20,9 +20,9 @@ class ScavTrap : public ClapTrap
{
public:
ScavTrap();
- ScavTrap(std::string name);
+ ScavTrap(std::string const& name);
ScavTrap(ScavTrap const& other);
- void operator=(ScavTrap const& other);
+ ScavTrap& operator=(ScavTrap const& other);
~ScavTrap();
void challengeNewcomer(std::string const& target);
diff --git a/cpp03/ex03/main.cpp b/cpp03/ex03/main.cpp
index 6f709f8..c9f71a2 100644
--- a/cpp03/ex03/main.cpp
+++ b/cpp03/ex03/main.cpp
@@ -6,56 +6,87 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:41:27 by cacharle #+# #+# */
-/* Updated: 2020/04/13 17:46:24 by charles ### ########.fr */
+/* Updated: 2020/11/11 06:55:12 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <cstdlib>
+#include <fstream>
+#include <ctime>
#include "FragTrap.hpp"
#include "ScavTrap.hpp"
#include "NinjaTrap.hpp"
int main(void)
{
- srand(time(NULL));
+ int seed;
+ std::ifstream devRandom("/dev/random");
+ if (devRandom.is_open())
+ {
+ devRandom.read((char*)&seed, sizeof(int));
+ devRandom.close();
+ }
+ else
+ seed = time(NULL);
+ srand(seed);
FragTrap ft("bob");
+ std::cout << "=== ATTACK ===" << std::endl;
ft.rangedAttack("a dog");
ft.meleeAttack("a cat");
+ std::cout << std::endl << "=== DAMAGE ===" << std::endl;
+ ft.takeDamage(0);
+ ft.beRepaired(0);
ft.takeDamage(10);
ft.beRepaired(10);
+ std::cout << std::endl << "=== VAULTHUNTER ===" << std::endl;
ft.vaulthunter_dot_exe("your mom");
ft.vaulthunter_dot_exe("your dad");
ft.vaulthunter_dot_exe("your brother");
ft.vaulthunter_dot_exe("your sister");
+ std::cout << "=== VAULTHUNTER NO ENERGY ===" << std::endl;
ft.vaulthunter_dot_exe("your grandma");
+ std::cout << std::endl << "=== OVER LIMIT ===" << std::endl;
ft.takeDamage(1000);
ft.beRepaired(1000);
- std::cout << std::endl;
+ std::cout << std::endl << std::endl;
+
ScavTrap scav("jean");
+ std::cout << "=== ATTACK ===" << std::endl;
scav.rangedAttack("a dog");
scav.meleeAttack("a cat");
+ std::cout << std::endl << "=== DAMAGE ===" << std::endl;
+ scav.takeDamage(0);
+ scav.beRepaired(0);
scav.takeDamage(10);
scav.beRepaired(10);
+ std::cout << std::endl << "=== CHALLENGE NEW COMER ===" << std::endl;
scav.challengeNewcomer("your mom");
scav.challengeNewcomer("your dad");
scav.challengeNewcomer("your brother");
scav.challengeNewcomer("your sister");
scav.challengeNewcomer("your grandma");
+ std::cout << std::endl << "=== OVER LIMIT ===" << std::endl;
scav.takeDamage(1000);
scav.beRepaired(1000);
+ std::cout << std::endl << std::endl;
+
std::cout << std::endl;
NinjaTrap ninja("didier");
+ std::cout << "=== ATTACK ===" << std::endl;
ninja.rangedAttack("a dog");
ninja.meleeAttack("a cat");
+ std::cout << std::endl << "=== DAMAGE ===" << std::endl;
ninja.takeDamage(10);
ninja.beRepaired(10);
+ std::cout << std::endl << "=== SHOE BOX ===" << std::endl;
ninja.ninjaShoebox(ninja);
ninja.ninjaShoebox(ft);
ninja.ninjaShoebox(scav);
ninja.ninjaShoebox(ClapTrap("oui"));
+ std::cout << std::endl << "=== OVER LIMIT ===" << std::endl;
ninja.takeDamage(1000);
ninja.beRepaired(1000);
return 0;
diff --git a/cpp03/ex04/ClapTrap.cpp b/cpp03/ex04/ClapTrap.cpp
index 6711799..4c712c3 100644
--- a/cpp03/ex04/ClapTrap.cpp
+++ b/cpp03/ex04/ClapTrap.cpp
@@ -6,14 +6,13 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 15:28:43 by charles #+# #+# */
-/* Updated: 2020/04/13 15:50:48 by charles ### ########.fr */
+/* Updated: 2020/11/11 06:41:35 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ClapTrap.hpp"
ClapTrap::ClapTrap():
- m_prefix("CL4P-TP "),
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -24,11 +23,10 @@ ClapTrap::ClapTrap():
m_rangedAttackDamage(0),
m_armorDamageReduction(0)
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "CL4P-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-ClapTrap::ClapTrap(std::string name):
- m_prefix("CL4P-TP "),
+ClapTrap::ClapTrap(std::string const& name):
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -39,7 +37,7 @@ ClapTrap::ClapTrap(std::string name):
m_rangedAttackDamage(0),
m_armorDamageReduction(0)
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "CL4P-TP New " << m_name << ": your gaming references suck" << std::endl;
}
ClapTrap::ClapTrap(ClapTrap const& other)
@@ -47,7 +45,7 @@ ClapTrap::ClapTrap(ClapTrap const& other)
*this = other;
}
-void ClapTrap::operator=(ClapTrap const& other)
+ClapTrap& ClapTrap::operator=(ClapTrap const& other)
{
m_hitPoints = other.m_hitPoints;
m_maxHitPoints = other.m_maxHitPoints;
@@ -57,27 +55,28 @@ void ClapTrap::operator=(ClapTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
ClapTrap::~ClapTrap()
{
- std::cout << "CL4P-TP " << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "CL4P-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void ClapTrap::rangedAttack(std::string const& target) const
{
- std::cout << m_prefix << m_name
- << " attacks " << target
+ std::cout << "CL4P-TP " << m_name
+ << " attacks " << target
<< " at range, causing " << m_rangedAttackDamage
- << " points of damage!" << std::endl;
+ << " points of damage!" << std::endl;
}
void ClapTrap::meleeAttack(std::string const& target) const
{
- std::cout << m_prefix << m_name
- << " attacks " << target
+ std::cout << "CL4P-TP " << m_name
+ << " attacks " << target
<< " in melee mode causing " << m_meleeAttackDamage
- << " points of damage!" << std::endl;
+ << " points of damage!" << std::endl;
}
void ClapTrap::takeDamage(unsigned int amount)
@@ -89,9 +88,9 @@ void ClapTrap::takeDamage(unsigned int amount)
if (amount > m_hitPoints)
amount = m_hitPoints;
m_hitPoints -= amount;
- std::cout << m_prefix << m_name
- << " takes " << amount
- << " damage" << std::endl;
+ std::cout << "CL4P-TP " << m_name
+ << " takes " << amount
+ << " damage" << std::endl;
}
void ClapTrap::beRepaired(unsigned int amount)
@@ -99,7 +98,7 @@ void ClapTrap::beRepaired(unsigned int amount)
if (amount + m_hitPoints > m_maxHitPoints)
amount = m_maxHitPoints - m_hitPoints;
m_hitPoints += amount;
- std::cout << m_prefix << m_name
- << " gained " << amount
+ std::cout << "CL4P-TP " << m_name
+ << " gained " << amount
<< " hit points" << std::endl;
}
diff --git a/cpp03/ex04/ClapTrap.hpp b/cpp03/ex04/ClapTrap.hpp
index 5f4e26a..8d38307 100644
--- a/cpp03/ex04/ClapTrap.hpp
+++ b/cpp03/ex04/ClapTrap.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 15:20:45 by charles #+# #+# */
-/* Updated: 2020/04/13 15:47:14 by charles ### ########.fr */
+/* Updated: 2020/11/11 07:29:18 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,9 +21,9 @@ class ClapTrap
{
public:
ClapTrap();
- ClapTrap(std::string name);
+ ClapTrap(std::string const& name);
ClapTrap(ClapTrap const& other);
- void operator=(ClapTrap const& other);
+ ClapTrap& operator=(ClapTrap const& other);
~ClapTrap();
void rangedAttack(std::string const& target) const;
@@ -32,14 +32,12 @@ public:
void beRepaired(unsigned int amount);
protected:
- std::string m_prefix;
-
unsigned int m_hitPoints;
unsigned int m_maxHitPoints;
unsigned int m_energyPoints;
unsigned int m_maxEnergyPoints;
unsigned int m_level;
- std::string m_name;
+ std::string m_name;
unsigned int m_meleeAttackDamage;
unsigned int m_rangedAttackDamage;
unsigned int m_armorDamageReduction;
diff --git a/cpp03/ex04/FragTrap.cpp b/cpp03/ex04/FragTrap.cpp
index 4db102e..9ab2ffc 100644
--- a/cpp03/ex04/FragTrap.cpp
+++ b/cpp03/ex04/FragTrap.cpp
@@ -6,32 +6,28 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:20:45 by cacharle #+# #+# */
-/* Updated: 2020/04/13 15:46:59 by charles ### ########.fr */
+/* Updated: 2020/11/11 06:42:32 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "FragTrap.hpp"
-FragTrap::FragTrap():
- ClapTrap()
+FragTrap::FragTrap() : ClapTrap()
{
- m_prefix = "FR4G-TP ";
- m_energyPoints = 100;
- m_maxEnergyPoints = 100;
- m_meleeAttackDamage = 30;
- m_rangedAttackDamage = 20;
+ m_energyPoints = 100;
+ m_maxEnergyPoints = 100;
+ m_meleeAttackDamage = 30;
+ m_rangedAttackDamage = 20;
m_armorDamageReduction = 5;
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-FragTrap::FragTrap(std::string name):
- ClapTrap(name)
+FragTrap::FragTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "FR4G-TP ";
- m_energyPoints = 100;
- m_maxEnergyPoints = 100;
- m_meleeAttackDamage = 30;
- m_rangedAttackDamage = 20;
+ m_energyPoints = 100;
+ m_maxEnergyPoints = 100;
+ m_meleeAttackDamage = 30;
+ m_rangedAttackDamage = 20;
m_armorDamageReduction = 5;
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
@@ -41,7 +37,7 @@ FragTrap::FragTrap(FragTrap const& other)
*this = other;
}
-void FragTrap::operator=(FragTrap const& other)
+FragTrap& FragTrap::operator=(FragTrap const& other)
{
m_hitPoints = other.m_hitPoints;
m_maxHitPoints = other.m_maxHitPoints;
@@ -51,11 +47,12 @@ void FragTrap::operator=(FragTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
FragTrap::~FragTrap()
{
- std::cout << m_prefix << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "FR4G-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void FragTrap::vaulthunter_dot_exe(std::string const& target)
diff --git a/cpp03/ex04/FragTrap.hpp b/cpp03/ex04/FragTrap.hpp
index 5db7027..283b219 100644
--- a/cpp03/ex04/FragTrap.hpp
+++ b/cpp03/ex04/FragTrap.hpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:17:16 by cacharle #+# #+# */
-/* Updated: 2020/04/13 18:35:46 by charles ### ########.fr */
+/* Updated: 2020/11/11 07:04:32 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -16,13 +16,13 @@
# include <cstdlib>
# include "ClapTrap.hpp"
-class FragTrap : public virtual ClapTrap
+class FragTrap : virtual public ClapTrap
{
public:
FragTrap();
- FragTrap(std::string name);
+ FragTrap(std::string const& name);
FragTrap(FragTrap const& other);
- void operator=(FragTrap const& other);
+ FragTrap& operator=(FragTrap const& other);
~FragTrap();
void vaulthunter_dot_exe(std::string const& target);
diff --git a/cpp03/ex04/NinjaTrap.cpp b/cpp03/ex04/NinjaTrap.cpp
index 2a27eec..384f77b 100644
--- a/cpp03/ex04/NinjaTrap.cpp
+++ b/cpp03/ex04/NinjaTrap.cpp
@@ -6,38 +6,34 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 17:33:00 by charles #+# #+# */
-/* Updated: 2020/04/13 17:47:20 by charles ### ########.fr */
+/* Updated: 2020/11/11 06:49:09 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "NinjaTrap.hpp"
-NinjaTrap::NinjaTrap():
- ClapTrap()
+NinjaTrap::NinjaTrap() : ClapTrap()
{
- m_prefix = "NINJ4-TP ";
- m_hitPoints = 60;
- m_maxHitPoints = 60;
- m_energyPoints = 120;
- m_maxEnergyPoints = 120;
- m_meleeAttackDamage = 60;
- m_rangedAttackDamage = 5;
+ m_hitPoints = 60;
+ m_maxHitPoints = 60;
+ m_energyPoints = 120;
+ m_maxEnergyPoints = 120;
+ m_meleeAttackDamage = 60;
+ m_rangedAttackDamage = 5;
m_armorDamageReduction = 0;
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "NINJ4-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-NinjaTrap::NinjaTrap(std::string name):
- ClapTrap(name)
+NinjaTrap::NinjaTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "NINJ4-TP ";
- m_hitPoints = 60;
- m_maxHitPoints = 60;
- m_energyPoints = 120;
- m_maxEnergyPoints = 120;
- m_meleeAttackDamage = 60;
- m_rangedAttackDamage = 5;
+ m_hitPoints = 60;
+ m_maxHitPoints = 60;
+ m_energyPoints = 120;
+ m_maxEnergyPoints = 120;
+ m_meleeAttackDamage = 60;
+ m_rangedAttackDamage = 5;
m_armorDamageReduction = 0;
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << " NINJ4-TP New " << m_name << ": your gaming references suck" << std::endl;
}
NinjaTrap::NinjaTrap(NinjaTrap const& other)
@@ -45,7 +41,7 @@ NinjaTrap::NinjaTrap(NinjaTrap const& other)
*this = other;
}
-void NinjaTrap::operator=(NinjaTrap const& other)
+NinjaTrap& NinjaTrap::operator=(NinjaTrap const& other)
{
m_hitPoints = other.m_hitPoints;
m_maxHitPoints = other.m_maxHitPoints;
@@ -55,37 +51,38 @@ void NinjaTrap::operator=(NinjaTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
NinjaTrap::~NinjaTrap()
{
- std::cout << m_prefix << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ std::cout << "NINJ4-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void NinjaTrap::ninjaShoebox(NinjaTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack other ninja trap, the guy who made the subject didn't gave a fuck" << std::endl;
}
void NinjaTrap::ninjaShoebox(FragTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack frag trap, leave me alone" << std::endl;
}
void NinjaTrap::ninjaShoebox(ScavTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack sciv trap, ehehehe look at me I'm being funny" << std::endl;
}
void NinjaTrap::ninjaShoebox(ClapTrap const& target)
{
(void)target;
- std::cout << m_prefix << m_name
+ std::cout << "NINJ4-TP " << m_name
<< " attack clap trap, ISN'T THAT WHAT YOU WANTED" << std::endl;
}
diff --git a/cpp03/ex04/NinjaTrap.hpp b/cpp03/ex04/NinjaTrap.hpp
index 72d7039..d075dba 100644
--- a/cpp03/ex04/NinjaTrap.hpp
+++ b/cpp03/ex04/NinjaTrap.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 17:31:24 by charles #+# #+# */
-/* Updated: 2020/04/13 18:41:44 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:43:01 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,13 +17,13 @@
# include "FragTrap.hpp"
# include "ScavTrap.hpp"
-class NinjaTrap : public virtual ClapTrap
+class NinjaTrap : public ClapTrap
{
public:
NinjaTrap();
- NinjaTrap(std::string name);
+ NinjaTrap(std::string const& name);
NinjaTrap(NinjaTrap const& other);
- void operator=(NinjaTrap const& other);
+ NinjaTrap& operator=(NinjaTrap const& other);
~NinjaTrap();
void ninjaShoebox(NinjaTrap const& target);
diff --git a/cpp03/ex04/ScavTrap.cpp b/cpp03/ex04/ScavTrap.cpp
index b686a5c..1acf126 100644
--- a/cpp03/ex04/ScavTrap.cpp
+++ b/cpp03/ex04/ScavTrap.cpp
@@ -6,32 +6,28 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:15:03 by charles #+# #+# */
-/* Updated: 2020/11/10 15:06:28 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 06:42:58 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ScavTrap.hpp"
-ScavTrap::ScavTrap():
- ClapTrap()
+ScavTrap::ScavTrap() : ClapTrap()
{
- m_prefix = "SC4V-TP ";
- m_energyPoints = 50;
- m_maxEnergyPoints = 50;
- m_meleeAttackDamage = 20;
- m_rangedAttackDamage = 15;
+ m_energyPoints = 50;
+ m_maxEnergyPoints = 50;
+ m_meleeAttackDamage = 20;
+ m_rangedAttackDamage = 15;
m_armorDamageReduction = 3;
- std::cout << "New " << m_name << ": your gaming references suck" << std::endl;
+ std::cout << "SC4V-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-ScavTrap::ScavTrap(std::string name):
- ClapTrap(name)
+ScavTrap::ScavTrap(std::string const& name) : ClapTrap(name)
{
- m_prefix = "SC4V-TP ";
- m_energyPoints = 50;
- m_maxEnergyPoints = 50;
- m_meleeAttackDamage = 20;
- m_rangedAttackDamage = 15;
+ m_energyPoints = 50;
+ m_maxEnergyPoints = 50;
+ m_meleeAttackDamage = 20;
+ m_rangedAttackDamage = 15;
m_armorDamageReduction = 3;
std::cout << "SC4V-TP New " << m_name << ": your gaming references suck" << std::endl;
}
@@ -41,7 +37,7 @@ ScavTrap::ScavTrap(ScavTrap const& other)
*this = other;
}
-void ScavTrap::operator=(ScavTrap const& other)
+ScavTrap& ScavTrap::operator=(ScavTrap const& other)
{
m_hitPoints = other.m_hitPoints;
m_maxHitPoints = other.m_maxHitPoints;
@@ -51,6 +47,7 @@ void ScavTrap::operator=(ScavTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
ScavTrap::~ScavTrap()
diff --git a/cpp03/ex04/ScavTrap.hpp b/cpp03/ex04/ScavTrap.hpp
index a1d625b..e908722 100644
--- a/cpp03/ex04/ScavTrap.hpp
+++ b/cpp03/ex04/ScavTrap.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:11:51 by charles #+# #+# */
-/* Updated: 2020/04/13 18:41:33 by charles ### ########.fr */
+/* Updated: 2020/11/11 07:04:45 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -16,13 +16,13 @@
# include <cstdlib>
# include "ClapTrap.hpp"
-class ScavTrap : public ClapTrap
+class ScavTrap : virtual public ClapTrap
{
public:
ScavTrap();
- ScavTrap(std::string name);
+ ScavTrap(std::string const& name);
ScavTrap(ScavTrap const& other);
- void operator=(ScavTrap const& other);
+ ScavTrap& operator=(ScavTrap const& other);
~ScavTrap();
void challengeNewcomer(std::string const& target);
diff --git a/cpp03/ex04/SuperTrap.cpp b/cpp03/ex04/SuperTrap.cpp
index 7e96570..1555956 100644
--- a/cpp03/ex04/SuperTrap.cpp
+++ b/cpp03/ex04/SuperTrap.cpp
@@ -6,40 +6,38 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 17:52:56 by charles #+# #+# */
-/* Updated: 2020/11/10 14:44:33 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 08:15:03 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "SuperTrap.hpp"
-SuperTrap::SuperTrap() :
- m_prefix("SUP3R-TP"),
- m_hitPoints(100),
- m_maxHitPoints(100),
- m_energyPoints(100),
- m_maxEnergyPoints(100),
- m_level(1),
- m_name(""),
- m_meleeAttackDamage(0),
- m_rangedAttackDamage(0),
- m_armorDamageReduction(0)
+SuperTrap::SuperTrap() : ClapTrap(), FragTrap(), NinjaTrap()
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ // m_hitPoints = 100;
+ // m_maxHitPoints = 100;
+ // m_energyPoints = 100;
+ // m_maxEnergyPoints = 100;
+ // m_level = 1;
+ // m_name = "";
+ // m_meleeAttackDamage = 0;
+ // m_rangedAttackDamage = 0;
+ // m_armorDamageReduction = 0;
+ // std::cout << "SUP3R-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-SuperTrap::SuperTrap(std::string const& name) :
- m_prefix("SUP3R-TP"),
- m_hitPoints(100),
- m_maxHitPoints(100),
- m_energyPoints(100),
- m_maxEnergyPoints(100),
- m_level(1),
- m_name(name),
- m_meleeAttackDamage(0),
- m_rangedAttackDamage(0),
- m_armorDamageReduction(0)
+SuperTrap::SuperTrap(std::string const& name) : ClapTrap(name), FragTrap(name), NinjaTrap(name)
{
- std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
+ m_hitPoints = 100;
+ // m_maxHitPoints = 100;
+ // m_energyPoints = 100;
+ // m_maxEnergyPoints = 100;
+ // m_level = 1;
+ // m_name = name;
+ // m_meleeAttackDamage = 0;
+ // m_rangedAttackDamage = 0;
+ // m_armorDamageReduction = 0;
+ // std::cout << "SUP3R-TP New " << m_name << ": your gaming references suck" << std::endl;
}
SuperTrap::SuperTrap(SuperTrap const& other)
@@ -47,30 +45,30 @@ SuperTrap::SuperTrap(SuperTrap const& other)
*this = other;
}
-void SuperTrap::operator=(SuperTrap const& other)
+SuperTrap& SuperTrap::operator=(SuperTrap const& other)
{
- m_hitPoints = other.m_hitPoints;
- m_maxHitPoints = other.m_maxHitPoints;
- m_energyPoints = other.m_energyPoints;
- m_maxEnergyPoints = other.m_maxEnergyPoints;
- m_level = other.m_level;
- m_meleeAttackDamage = other.m_meleeAttackDamage;
- m_rangedAttackDamage = other.m_rangedAttackDamage;
- m_armorDamageReduction = other.m_armorDamageReduction;
+ // m_hitPoints = other.m_hitPoints;
+ // m_maxHitPoints = other.m_maxHitPoints;
+ // m_energyPoints = other.m_energyPoints;
+ // m_maxEnergyPoints = other.m_maxEnergyPoints;
+ // m_level = other.m_level;
+ // m_meleeAttackDamage = other.m_meleeAttackDamage;
+ // m_rangedAttackDamage = other.m_rangedAttackDamage;
+ // m_armorDamageReduction = other.m_armorDamageReduction;
return *this;
}
SuperTrap::~SuperTrap()
{
- std::cout << "SUP3R-TP" << "Delete "<< m_name << ": your gaming references still suck" << std::endl;
+ // std::cout << "SUP3R-TP Delete "<< m_name << ": your gaming references still suck" << std::endl;
}
void SuperTrap::rangedAttack(std::string const& target) const
{
- FragTrap::rangedArray(target);
+ // FragTrap::rangedArray(target);
}
void SuperTrap::meleeAttack(std::string const& target) const
{
- NinjaTrap::rangedArray(target);
+ // NinjaTrap::rangedArray(target);
}
diff --git a/cpp03/ex04/SuperTrap.hpp b/cpp03/ex04/SuperTrap.hpp
index 39a0378..f660e20 100644
--- a/cpp03/ex04/SuperTrap.hpp
+++ b/cpp03/ex04/SuperTrap.hpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 17:48:31 by charles #+# #+# */
-/* Updated: 2020/11/10 14:44:07 by cacharle ### ########.fr */
+/* Updated: 2020/11/11 07:13:14 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -29,7 +29,6 @@ public:
void rangedAttack(std::string const& target) const;
void meleeAttack(std::string const& target) const;
-
};
#endif
diff --git a/cpp03/ex04/main.cpp b/cpp03/ex04/main.cpp
index 6f709f8..3d387ae 100644
--- a/cpp03/ex04/main.cpp
+++ b/cpp03/ex04/main.cpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:41:27 by cacharle #+# #+# */
-/* Updated: 2020/04/13 17:46:24 by charles ### ########.fr */
+/* Updated: 2020/11/11 08:19:33 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,46 +17,46 @@
int main(void)
{
- srand(time(NULL));
+ // srand(time(NULL));
- FragTrap ft("bob");
- ft.rangedAttack("a dog");
- ft.meleeAttack("a cat");
- ft.takeDamage(10);
- ft.beRepaired(10);
- ft.vaulthunter_dot_exe("your mom");
- ft.vaulthunter_dot_exe("your dad");
- ft.vaulthunter_dot_exe("your brother");
- ft.vaulthunter_dot_exe("your sister");
- ft.vaulthunter_dot_exe("your grandma");
- ft.takeDamage(1000);
- ft.beRepaired(1000);
-
- std::cout << std::endl;
- ScavTrap scav("jean");
- scav.rangedAttack("a dog");
- scav.meleeAttack("a cat");
- scav.takeDamage(10);
- scav.beRepaired(10);
- scav.challengeNewcomer("your mom");
- scav.challengeNewcomer("your dad");
- scav.challengeNewcomer("your brother");
- scav.challengeNewcomer("your sister");
- scav.challengeNewcomer("your grandma");
- scav.takeDamage(1000);
- scav.beRepaired(1000);
-
- std::cout << std::endl;
- NinjaTrap ninja("didier");
- ninja.rangedAttack("a dog");
- ninja.meleeAttack("a cat");
- ninja.takeDamage(10);
- ninja.beRepaired(10);
- ninja.ninjaShoebox(ninja);
- ninja.ninjaShoebox(ft);
- ninja.ninjaShoebox(scav);
- ninja.ninjaShoebox(ClapTrap("oui"));
- ninja.takeDamage(1000);
- ninja.beRepaired(1000);
+ // FragTrap ft("bob");
+ // ft.rangedAttack("a dog");
+ // ft.meleeAttack("a cat");
+ // ft.takeDamage(10);
+ // ft.beRepaired(10);
+ // ft.vaulthunter_dot_exe("your mom");
+ // ft.vaulthunter_dot_exe("your dad");
+ // ft.vaulthunter_dot_exe("your brother");
+ // ft.vaulthunter_dot_exe("your sister");
+ // ft.vaulthunter_dot_exe("your grandma");
+ // ft.takeDamage(1000);
+ // ft.beRepaired(1000);
+ //
+ // std::cout << std::endl;
+ // ScavTrap scav("jean");
+ // scav.rangedAttack("a dog");
+ // scav.meleeAttack("a cat");
+ // scav.takeDamage(10);
+ // scav.beRepaired(10);
+ // scav.challengeNewcomer("your mom");
+ // scav.challengeNewcomer("your dad");
+ // scav.challengeNewcomer("your brother");
+ // scav.challengeNewcomer("your sister");
+ // scav.challengeNewcomer("your grandma");
+ // scav.takeDamage(1000);
+ // scav.beRepaired(1000);
+ //
+ // std::cout << std::endl;
+ // NinjaTrap ninja("didier");
+ // ninja.rangedAttack("a dog");
+ // ninja.meleeAttack("a cat");
+ // ninja.takeDamage(10);
+ // ninja.beRepaired(10);
+ // ninja.ninjaShoebox(ninja);
+ // ninja.ninjaShoebox(ft);
+ // ninja.ninjaShoebox(scav);
+ // ninja.ninjaShoebox(ClapTrap("oui"));
+ // ninja.takeDamage(1000);
+ // ninja.beRepaired(1000);
return 0;
}