diff options
Diffstat (limited to 'cpp03')
| -rw-r--r-- | cpp03/ex00/FragTrap.cpp | 9 | ||||
| -rw-r--r-- | cpp03/ex00/FragTrap.hpp | 8 | ||||
| -rw-r--r-- | cpp03/ex00/main.cpp | 26 | ||||
| -rw-r--r-- | cpp03/ex01/FragTrap.cpp | 7 | ||||
| -rw-r--r-- | cpp03/ex01/FragTrap.hpp | 8 | ||||
| -rw-r--r-- | cpp03/ex01/ScavTrap.cpp | 8 | ||||
| -rw-r--r-- | cpp03/ex01/ScavTrap.hpp | 6 | ||||
| -rw-r--r-- | cpp03/ex01/main.cpp | 36 | ||||
| -rw-r--r-- | cpp03/ex02/ClapTrap.cpp | 7 | ||||
| -rw-r--r-- | cpp03/ex02/ClapTrap.hpp | 10 | ||||
| -rw-r--r-- | cpp03/ex02/FragTrap.cpp | 11 | ||||
| -rw-r--r-- | cpp03/ex02/FragTrap.hpp | 6 | ||||
| -rw-r--r-- | cpp03/ex02/ScavTrap.cpp | 12 | ||||
| -rw-r--r-- | cpp03/ex02/ScavTrap.hpp | 6 | ||||
| -rw-r--r-- | cpp03/ex02/main.cpp | 36 | ||||
| -rw-r--r-- | cpp03/ex03/NinjaTrap.cpp | 11 | ||||
| -rw-r--r-- | cpp03/ex03/NinjaTrap.hpp | 6 | ||||
| -rw-r--r-- | cpp03/ex03/ScavTrap.cpp | 3 | ||||
| -rw-r--r-- | cpp03/ex04/ScavTrap.cpp | 3 | ||||
| -rw-r--r-- | cpp03/ex04/SuperTrap.cpp | 7 | ||||
| -rw-r--r-- | cpp03/ex04/SuperTrap.hpp | 6 |
21 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; |
