#include "ScavTrap.hpp" void goAttack(ClapTrap & robot1, ClapTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } void goAttack(ScavTrap & robot1, ScavTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } void goAttack(ClapTrap & robot1, ScavTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } void goAttack(ScavTrap & robot1, ClapTrap & robot2) { std::cout << "."; robot1.attack(robot2.getName()); std::cout << " "; robot2.takeDamage(robot1.getAttack()); std::cout << " "; robot2.beRepaired(robot1.getAttack()); } int main() { ClapTrap robot1("robot1"); ScavTrap robot2("robot2"); 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(); 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(); goAttack(robot1, robot2); goAttack(robot2, robot1); goAttack(robot1, robot3); robot2.guardGate(); goAttack(robot1, robot4); goAttack(robot4, robot2); goAttack(robot2, robot3); goAttack(robot2, robot4); robot3.guardGate(); goAttack(robot3, robot1); robot2.guardGate(); goAttack(robot3, robot4); goAttack(robot2, robot1); goAttack(robot2, robot4); goAttack(robot1, robot3); return 0; }