From 2e0cf63a219d24ef07412deca9b0e6cb02882b46 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Wed, 11 Nov 2020 08:27:14 +0100 Subject: Fixing small bugs in cpp03 --- cpp03/ex03/ClapTrap.cpp | 37 ++++++++++++++++++------------------- cpp03/ex03/ClapTrap.hpp | 10 ++++------ cpp03/ex03/FragTrap.cpp | 31 ++++++++++++++----------------- cpp03/ex03/FragTrap.hpp | 6 +++--- cpp03/ex03/NinjaTrap.cpp | 42 ++++++++++++++++++++---------------------- cpp03/ex03/ScavTrap.cpp | 31 ++++++++++++++----------------- cpp03/ex03/ScavTrap.hpp | 6 +++--- cpp03/ex03/main.cpp | 37 ++++++++++++++++++++++++++++++++++--- 8 files changed, 110 insertions(+), 90 deletions(-) (limited to 'cpp03/ex03') 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* 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 +#include +#include #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; -- cgit