aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp03/ex00/FragTrap.cpp9
-rw-r--r--cpp03/ex00/FragTrap.hpp8
-rw-r--r--cpp03/ex00/main.cpp26
-rw-r--r--cpp03/ex01/FragTrap.cpp7
-rw-r--r--cpp03/ex01/FragTrap.hpp8
-rw-r--r--cpp03/ex01/ScavTrap.cpp8
-rw-r--r--cpp03/ex01/ScavTrap.hpp6
-rw-r--r--cpp03/ex01/main.cpp36
-rw-r--r--cpp03/ex02/ClapTrap.cpp7
-rw-r--r--cpp03/ex02/ClapTrap.hpp10
-rw-r--r--cpp03/ex02/FragTrap.cpp11
-rw-r--r--cpp03/ex02/FragTrap.hpp6
-rw-r--r--cpp03/ex02/ScavTrap.cpp12
-rw-r--r--cpp03/ex02/ScavTrap.hpp6
-rw-r--r--cpp03/ex02/main.cpp36
-rw-r--r--cpp03/ex03/NinjaTrap.cpp11
-rw-r--r--cpp03/ex03/NinjaTrap.hpp6
-rw-r--r--cpp03/ex03/ScavTrap.cpp3
-rw-r--r--cpp03/ex04/ScavTrap.cpp3
-rw-r--r--cpp03/ex04/SuperTrap.cpp7
-rw-r--r--cpp03/ex04/SuperTrap.hpp6
-rw-r--r--subjects/cpp02.en.pdfbin1479870 -> 1446494 bytes
22 files changed, 156 insertions, 76 deletions
diff --git a/cpp03/ex00/FragTrap.cpp b/cpp03/ex00/FragTrap.cpp
index 3b6a3b1..7229e59 100644
--- a/cpp03/ex00/FragTrap.cpp
+++ b/cpp03/ex00/FragTrap.cpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:20:45 by cacharle #+# #+# */
-/* Updated: 2020/04/13 15:18:42 by charles ### ########.fr */
+/* Updated: 2020/11/10 13:34:50 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -26,7 +26,7 @@ FragTrap::FragTrap():
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-FragTrap::FragTrap(std::string name):
+FragTrap::FragTrap(std::string const& name):
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -45,7 +45,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;
@@ -55,6 +55,7 @@ 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()
@@ -111,7 +112,7 @@ void FragTrap::vaulthunter_dot_exe(std::string const& target)
}
std::string attacks[5] = {
"boum boum",
- "cursed for generation",
+ "cursed for generations",
"sit and wait for your death",
"mimic a gun with his hand and make 'piou piou' sound",
"shot you in the face"
diff --git a/cpp03/ex00/FragTrap.hpp b/cpp03/ex00/FragTrap.hpp
index 423116d..6dd7107 100644
--- a/cpp03/ex00/FragTrap.hpp
+++ b/cpp03/ex00/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:17:02 by charles ### ########.fr */
+/* Updated: 2020/11/10 13:25:53 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,9 +21,9 @@ class FragTrap
{
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 rangedAttack(std::string const& target) const;
@@ -38,7 +38,7 @@ private:
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/ex00/main.cpp b/cpp03/ex00/main.cpp
index 4ebcae8..d6f4723 100644
--- a/cpp03/ex00/main.cpp
+++ b/cpp03/ex00/main.cpp
@@ -6,28 +6,50 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:41:27 by cacharle #+# #+# */
-/* Updated: 2020/04/13 14:11:05 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:07:05 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <cstdlib>
+#include <fstream>
#include "FragTrap.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);
+
return 0;
}
diff --git a/cpp03/ex01/FragTrap.cpp b/cpp03/ex01/FragTrap.cpp
index fe79b02..e548687 100644
--- a/cpp03/ex01/FragTrap.cpp
+++ b/cpp03/ex01/FragTrap.cpp
@@ -6,7 +6,7 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:20:45 by cacharle #+# #+# */
-/* Updated: 2020/04/13 15:17:13 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:12:57 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -26,7 +26,7 @@ FragTrap::FragTrap():
std::cout << "FR4G-TP New " << m_name << ": your gaming references suck" << std::endl;
}
-FragTrap::FragTrap(std::string name):
+FragTrap::FragTrap(std::string const& name):
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(100),
@@ -45,7 +45,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;
@@ -55,6 +55,7 @@ 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()
diff --git a/cpp03/ex01/FragTrap.hpp b/cpp03/ex01/FragTrap.hpp
index 9ccec3d..635cb71 100644
--- a/cpp03/ex01/FragTrap.hpp
+++ b/cpp03/ex01/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:17:36 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:12:49 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,9 +21,9 @@ class FragTrap
{
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 rangedAttack(std::string const& target) const;
@@ -38,7 +38,7 @@ private:
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/ex01/ScavTrap.cpp b/cpp03/ex01/ScavTrap.cpp
index c866f44..8379228 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/04/13 14:31:23 by charles ### ########.fr */
+/* Updated: 2020/11/10 15:06:00 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -26,7 +26,7 @@ ScavTrap::ScavTrap():
std::cout << "New " << m_name << ": your gaming references suck" << std::endl;
}
-ScavTrap::ScavTrap(std::string name):
+ScavTrap::ScavTrap(std::string const& name):
m_hitPoints(100),
m_maxHitPoints(100),
m_energyPoints(50),
@@ -45,7 +45,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;
@@ -55,6 +55,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()
@@ -113,5 +114,4 @@ void ScavTrap::challengeNewcomer(std::string const& target)
std::cout << "SC4V-TP " << m_name
<< " challenge " << target
<< " to " << challenges[rand() % 5] << std::endl;
- m_energyPoints -= 25;
}
diff --git a/cpp03/ex01/ScavTrap.hpp b/cpp03/ex01/ScavTrap.hpp
index f5bc3cc..64fae68 100644
--- a/cpp03/ex01/ScavTrap.hpp
+++ b/cpp03/ex01/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:18:01 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:13:16 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,9 +21,9 @@ class ScavTrap
{
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 rangedAttack(std::string const& target) const;
diff --git a/cpp03/ex01/main.cpp b/cpp03/ex01/main.cpp
index 8e1e8f0..4e01067 100644
--- a/cpp03/ex01/main.cpp
+++ b/cpp03/ex01/main.cpp
@@ -6,42 +6,72 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:41:27 by cacharle #+# #+# */
-/* Updated: 2020/04/13 14:30:37 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:21:47 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <cstdlib>
+#include <fstream>
#include "FragTrap.hpp"
#include "ScavTrap.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 << 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);
return 0;
diff --git a/cpp03/ex02/ClapTrap.cpp b/cpp03/ex02/ClapTrap.cpp
index 6711799..1211ca1 100644
--- a/cpp03/ex02/ClapTrap.cpp
+++ b/cpp03/ex02/ClapTrap.cpp
@@ -6,7 +6,7 @@
/* 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/10 14:29:57 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -27,7 +27,7 @@ ClapTrap::ClapTrap():
std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
}
-ClapTrap::ClapTrap(std::string name):
+ClapTrap::ClapTrap(std::string const& name):
m_prefix("CL4P-TP "),
m_hitPoints(100),
m_maxHitPoints(100),
@@ -47,7 +47,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,6 +57,7 @@ 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()
diff --git a/cpp03/ex02/ClapTrap.hpp b/cpp03/ex02/ClapTrap.hpp
index 5f4e26a..71879b6 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/04/13 15:47:14 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:29:37 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,14 @@ public:
void beRepaired(unsigned int amount);
protected:
- std::string m_prefix;
+ 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/ex02/FragTrap.cpp b/cpp03/ex02/FragTrap.cpp
index 4db102e..fc65fcd 100644
--- a/cpp03/ex02/FragTrap.cpp
+++ b/cpp03/ex02/FragTrap.cpp
@@ -6,14 +6,13 @@
/* 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/10 14:39:26 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "FragTrap.hpp"
-FragTrap::FragTrap():
- ClapTrap()
+FragTrap::FragTrap() : ClapTrap()
{
m_prefix = "FR4G-TP ";
m_energyPoints = 100;
@@ -24,8 +23,7 @@ FragTrap::FragTrap():
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;
@@ -41,7 +39,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,6 +49,7 @@ 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()
diff --git a/cpp03/ex02/FragTrap.hpp b/cpp03/ex02/FragTrap.hpp
index 2afa95c..fc99532 100644
--- a/cpp03/ex02/FragTrap.hpp
+++ b/cpp03/ex02/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/ex02/ScavTrap.cpp b/cpp03/ex02/ScavTrap.cpp
index d310ab1..c2f7e9b 100644
--- a/cpp03/ex02/ScavTrap.cpp
+++ b/cpp03/ex02/ScavTrap.cpp
@@ -6,14 +6,13 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:15:03 by charles #+# #+# */
-/* Updated: 2020/04/13 15:46:56 by charles ### ########.fr */
+/* Updated: 2020/11/10 15:06:12 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ScavTrap.hpp"
-ScavTrap::ScavTrap():
- ClapTrap()
+ScavTrap::ScavTrap() : ClapTrap()
{
m_prefix = "SC4V-TP ";
m_energyPoints = 50;
@@ -24,8 +23,7 @@ ScavTrap::ScavTrap():
std::cout << "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;
@@ -41,7 +39,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 +49,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()
@@ -70,5 +69,4 @@ void ScavTrap::challengeNewcomer(std::string const& target)
std::cout << "SC4V-TP " << m_name
<< " challenge " << target
<< " to " << challenges[rand() % 5] << std::endl;
- m_energyPoints -= 25;
}
diff --git a/cpp03/ex02/ScavTrap.hpp b/cpp03/ex02/ScavTrap.hpp
index 1ec4008..b1c162d 100644
--- a/cpp03/ex02/ScavTrap.hpp
+++ b/cpp03/ex02/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/ex02/main.cpp b/cpp03/ex02/main.cpp
index 8e1e8f0..4e01067 100644
--- a/cpp03/ex02/main.cpp
+++ b/cpp03/ex02/main.cpp
@@ -6,42 +6,72 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 05:41:27 by cacharle #+# #+# */
-/* Updated: 2020/04/13 14:30:37 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:21:47 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <cstdlib>
+#include <fstream>
#include "FragTrap.hpp"
#include "ScavTrap.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 << 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);
return 0;
diff --git a/cpp03/ex03/NinjaTrap.cpp b/cpp03/ex03/NinjaTrap.cpp
index 2a27eec..bdc3534 100644
--- a/cpp03/ex03/NinjaTrap.cpp
+++ b/cpp03/ex03/NinjaTrap.cpp
@@ -6,14 +6,13 @@
/* 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/10 14:43:25 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "NinjaTrap.hpp"
-NinjaTrap::NinjaTrap():
- ClapTrap()
+NinjaTrap::NinjaTrap() : ClapTrap()
{
m_prefix = "NINJ4-TP ";
m_hitPoints = 60;
@@ -26,8 +25,7 @@ NinjaTrap::NinjaTrap():
std::cout << m_prefix << "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;
@@ -45,7 +43,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,6 +53,7 @@ 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()
diff --git a/cpp03/ex03/NinjaTrap.hpp b/cpp03/ex03/NinjaTrap.hpp
index 217ae33..d075dba 100644
--- a/cpp03/ex03/NinjaTrap.hpp
+++ b/cpp03/ex03/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 17:45:16 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:43:01 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -21,9 +21,9 @@ 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/ex03/ScavTrap.cpp b/cpp03/ex03/ScavTrap.cpp
index d310ab1..a1f4a17 100644
--- a/cpp03/ex03/ScavTrap.cpp
+++ b/cpp03/ex03/ScavTrap.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:15:03 by charles #+# #+# */
-/* Updated: 2020/04/13 15:46:56 by charles ### ########.fr */
+/* Updated: 2020/11/10 15:06:20 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -70,5 +70,4 @@ void ScavTrap::challengeNewcomer(std::string const& target)
std::cout << "SC4V-TP " << m_name
<< " challenge " << target
<< " to " << challenges[rand() % 5] << std::endl;
- m_energyPoints -= 25;
}
diff --git a/cpp03/ex04/ScavTrap.cpp b/cpp03/ex04/ScavTrap.cpp
index d310ab1..b686a5c 100644
--- a/cpp03/ex04/ScavTrap.cpp
+++ b/cpp03/ex04/ScavTrap.cpp
@@ -6,7 +6,7 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 14:15:03 by charles #+# #+# */
-/* Updated: 2020/04/13 15:46:56 by charles ### ########.fr */
+/* Updated: 2020/11/10 15:06:28 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -70,5 +70,4 @@ void ScavTrap::challengeNewcomer(std::string const& target)
std::cout << "SC4V-TP " << m_name
<< " challenge " << target
<< " to " << challenges[rand() % 5] << std::endl;
- m_energyPoints -= 25;
}
diff --git a/cpp03/ex04/SuperTrap.cpp b/cpp03/ex04/SuperTrap.cpp
index c30f973..7e96570 100644
--- a/cpp03/ex04/SuperTrap.cpp
+++ b/cpp03/ex04/SuperTrap.cpp
@@ -6,13 +6,13 @@
/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/04/13 17:52:56 by charles #+# #+# */
-/* Updated: 2020/04/13 17:55:14 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:44:33 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "SuperTrap.hpp"
-SuperTrap::SuperTrap():
+SuperTrap::SuperTrap() :
m_prefix("SUP3R-TP"),
m_hitPoints(100),
m_maxHitPoints(100),
@@ -27,7 +27,7 @@ SuperTrap::SuperTrap():
std::cout << m_prefix << "New " << m_name << ": your gaming references suck" << std::endl;
}
-SuperTrap::SuperTrap(std::string name):
+SuperTrap::SuperTrap(std::string const& name) :
m_prefix("SUP3R-TP"),
m_hitPoints(100),
m_maxHitPoints(100),
@@ -57,6 +57,7 @@ void SuperTrap::operator=(SuperTrap const& other)
m_meleeAttackDamage = other.m_meleeAttackDamage;
m_rangedAttackDamage = other.m_rangedAttackDamage;
m_armorDamageReduction = other.m_armorDamageReduction;
+ return *this;
}
SuperTrap::~SuperTrap()
diff --git a/cpp03/ex04/SuperTrap.hpp b/cpp03/ex04/SuperTrap.hpp
index ebebd18..39a0378 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/04/13 18:42:28 by charles ### ########.fr */
+/* Updated: 2020/11/10 14:44:07 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -22,9 +22,9 @@ class SuperTrap : public FragTrap, public NinjaTrap
{
public:
SuperTrap();
- SuperTrap(std::string name);
+ SuperTrap(std::string const& name);
SuperTrap(SuperTrap const& other);
- void operator=(SuperTrap const& other);
+ SuperTrap& operator=(SuperTrap const& other);
~SuperTrap();
void rangedAttack(std::string const& target) const;
diff --git a/subjects/cpp02.en.pdf b/subjects/cpp02.en.pdf
index a652eaf..4b890c2 100644
--- a/subjects/cpp02.en.pdf
+++ b/subjects/cpp02.en.pdf
Binary files differ