From bb6c0515b180d313c5ec9e0cda93e616aaeb79d5 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Tue, 22 Feb 2022 15:18:39 +0100 Subject: [PATCH] save to move to e3 --- d03/ex01/ClapTrap.cpp | 10 +++++---- d03/ex01/ClapTrap.hpp | 14 +++++++----- d03/ex01/Makefile | 3 ++- d03/ex01/ScavTrap.cpp | 21 ++++++++++-------- d03/ex01/main.cpp | 50 +++++++++++++++++++++--------------------- d03/ex01/robots | Bin 30240 -> 34368 bytes 6 files changed, 53 insertions(+), 45 deletions(-) diff --git a/d03/ex01/ClapTrap.cpp b/d03/ex01/ClapTrap.cpp index 6236989..d2ad79d 100644 --- a/d03/ex01/ClapTrap.cpp +++ b/d03/ex01/ClapTrap.cpp @@ -11,7 +11,7 @@ ClapTrap::ClapTrap( std::string name ) { _hit = _dHit; _energy = _dEnergy; _attack = _dAttack; - _number = ClapTrap::_totalNumber; + _number = getTotalNumber(); std::cout << _class << " " << _name << " nb:" << _number << " created\n"; return; } @@ -20,7 +20,8 @@ ClapTrap::ClapTrap( ClapTrap const & src ) { ClapTrap::_increaseNumber(); _class = _dClass; *this = src; - std::cout << _class << " " << _name << " nb:" << _number << " copied from " << src._class << "-" << src._name << "-" << src._number << "\n"; + _number = getTotalNumber(); + std::cout << _class << " " << _name << "-" << _number << " copied from " << src._class << "-" << src._name << "-" << src._number << "\n"; return; } @@ -29,7 +30,7 @@ ClapTrap::ClapTrap( ClapTrap const & src ) { *********************************************/ ClapTrap::~ClapTrap( void ) { - std::cout << _class << " " << _name << " nb:" << _number << " destructed\n"; + std::cout << _class << " " << _name << "-" << _number << " destructed\n"; return; } @@ -48,7 +49,7 @@ ClapTrap & ClapTrap::operator=( ClapTrap const & rhs ) { _number = rhs.getNumber(); } - std::cout << _class << " " << _name << " nb:" << _number << " assigned\n"; + std::cout << _class << " " << _name << "-" << _number << " assigned\n"; return *this; } @@ -63,6 +64,7 @@ int ClapTrap::getHit() const {return _hit;} int ClapTrap::getEnergy() const {return _energy;} int ClapTrap::getAttack() const {return _attack;} int ClapTrap::getNumber() const {return _number;} +int ClapTrap::getTotalNumber() const {return _totalNumber;} void ClapTrap::_increaseNumber() {ClapTrap::_totalNumber++;} /********************************************* diff --git a/d03/ex01/ClapTrap.hpp b/d03/ex01/ClapTrap.hpp index 40d1916..7238065 100644 --- a/d03/ex01/ClapTrap.hpp +++ b/d03/ex01/ClapTrap.hpp @@ -29,12 +29,14 @@ public: protected: - std::string _name; - std::string _class; - int _hit; - int _energy; - int _attack; - int _number; + int getTotalNumber() const; + + std::string _name; + std::string _class; + int _hit; + int _energy; + int _attack; + int _number; void _increaseNumber(); diff --git a/d03/ex01/Makefile b/d03/ex01/Makefile index 6c6c6d0..646ad10 100644 --- a/d03/ex01/Makefile +++ b/d03/ex01/Makefile @@ -7,7 +7,8 @@ NAME = robots CC = c++ -CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 +#CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -std=c++98 +CFLAGS = $(INCLUDES) -std=c++98 VPATH = $(D_SRCS) diff --git a/d03/ex01/ScavTrap.cpp b/d03/ex01/ScavTrap.cpp index 6edcea3..6eec95b 100644 --- a/d03/ex01/ScavTrap.cpp +++ b/d03/ex01/ScavTrap.cpp @@ -9,14 +9,15 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { _hit = _dHit; _energy = _dEnergy; _attack = _dAttack; - std::cout << _class << " " << _name << " nb:" << _number << " created\n"; + std::cout << _class << " " << _name << "-" << _number << " created\n"; return; } ScavTrap::ScavTrap( ScavTrap const & src ) : ClapTrap() { _class = _dClass; *this = src; - std::cout << _class << " " << _name << " nb:" << _number << " copied from " << src._class << "-" << src._name << "-" << src._number << "\n"; + _number = getTotalNumber(); + std::cout << _class << " " << _name << "-" << _number << " copied from " << src._class << "-" << src._name << "-" << src._number << "\n"; return; } @@ -25,7 +26,7 @@ ScavTrap::ScavTrap( ScavTrap const & src ) : ClapTrap() { *********************************************/ ScavTrap::~ScavTrap( void ) { - std::cout << _class << " " << _name << " nb:" << _number << " destructed\n"; + std::cout << _class << " " << _name << "-" << _number << " destructed\n"; return; } @@ -37,13 +38,15 @@ ScavTrap & ScavTrap::operator=( ScavTrap const & rhs ) { if ( this != &rhs ) { - _hit = rhs.getHit(); - _energy = rhs.getEnergy(); - _attack = rhs.getAttack(); - _name = rhs.getName(); + ClapTrap::operator=(rhs); +// _name = rhs.getName(); +// _hit = rhs.getHit(); +// _energy = rhs.getEnergy(); +// _attack = rhs.getAttack(); +// _name = rhs.getName(); } - std::cout << _class << " " << _name << " nb:" << _number << " assigned\n"; + std::cout << _class << "T " << _name << "-" << _number << " assigned\n"; return *this; } @@ -53,7 +56,7 @@ ScavTrap & ScavTrap::operator=( ScavTrap const & rhs ) { *********************************************/ void ScavTrap::guardGate() { - std::cout << _class << " " << _name << " entered special mode Gate Keeper\n"; + std::cout << _class << " " << _name << "-" << _number << " entered special mode Gate Keeper\n"; } /********************************************* diff --git a/d03/ex01/main.cpp b/d03/ex01/main.cpp index e0c8e88..f856305 100644 --- a/d03/ex01/main.cpp +++ b/d03/ex01/main.cpp @@ -46,33 +46,33 @@ void goAttack(ScavTrap & robot1, ClapTrap & robot2) { int main() { -// ClapTrap robot1("robot1"); -// ScavTrap robot2("robot2"); -// ScavTrap robot3("robot3"); -// ClapTrap robot4("robot4"); + ClapTrap robot1("robot1"); + ScavTrap robot2("robot2"); + robot2.guardGate(); + ScavTrap robot3("robot3"); + ClapTrap robot4("robot4"); -std::cout << "assignement 1:\n"; - ScavTrap robotmp1("robot5"); - robotmp1.guardGate(); - ClapTrap robot6(robotmp1); // PBM : it says it's a ScavTrap but it has no guardGate()... -// robot6.guardGate(); - goAttack(robot6, robotmp1); +std::cout << "\nassignement 1 (ClapTrap(ScavTrap)):\n"; + ClapTrap robot5(robot2); +// robot5.guardGate(); + goAttack(robot5, robot2); -//std::cout << "assignement 2:\n"; -// ScavTrap robotmp2("robot7"); -// ScavTrap robot8(robotmp2); -// robot8.guardGate(); -// -//std::cout << "assignement 3:\n"; -// ClapTrap robotmp3("robot9"); // PBM : assignation doesn't work... -//// ScavTrap robot10(robotmp3); -//// robot10.guardGate(); -// -//std::cout << "assignement 4:\n"; -// ClapTrap robotmp4("robot11"); -// ClapTrap robot12(robotmp4); -//// robot12.guardGate(); -// +std::cout << "\nassignement 2 (ScavTrap(ScavTrap)):\n"; + ScavTrap robot6(robot2); + robot6.guardGate(); + goAttack(robot6, robot2); + robot2.takeDamage(robot6.getAttack()); + robot6 = robot6; + goAttack(robot6, robot2); + +std::cout << "\nassignement 3 (ScavTrap(ClapTrap)):\n"; +// ScavTrap robot7(robot1); + +std::cout << "\nassignement 4 (ClapTrap(ClapTrap)):\n"; + ClapTrap robot7(robot1); + goAttack(robot7, robot1); + +std::cout << "\nwar:\n"; // goAttack(robot1, robot2); // goAttack(robot2, robot1); // goAttack(robot1, robot3); diff --git a/d03/ex01/robots b/d03/ex01/robots index 62ff9ff620099e8fa3a26be737dae581c571e0ed..66b53a34b38d191453c9d6d7d7dd9ea6e4d7f9c5 100755 GIT binary patch literal 34368 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 IkdPJs2UVoGq5uE@ literal 30240 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 s