aboutsummaryrefslogtreecommitdiff
path: root/cpp01/ex03/ZombieHorde.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp01/ex03/ZombieHorde.cpp')
-rw-r--r--cpp01/ex03/ZombieHorde.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/cpp01/ex03/ZombieHorde.cpp b/cpp01/ex03/ZombieHorde.cpp
new file mode 100644
index 0000000..e8218b4
--- /dev/null
+++ b/cpp01/ex03/ZombieHorde.cpp
@@ -0,0 +1,41 @@
+#include <cstdlib>
+#include "ZombieHorde.hpp"
+
+ZombieHorde::ZombieHorde(int size)
+{
+ std::string name_pool[10] = {
+ "Jordan",
+ "Mr.poopybutthole",
+ "Jean-Denis",
+ "Table",
+ "Charle",
+ "Abe",
+ "James",
+ "Homer",
+ "yo",
+ "rideaux"
+ };
+ std::string type_pool[4] = {
+ "fire",
+ "water",
+ "earth",
+ "wind"
+ };
+ horde = new Zombie*[size];
+ horde_size = size;
+ for (int i = 0; i < size; i++)
+ horde[i] = new Zombie(name_pool[rand() % 10], type_pool[rand() % 4]);
+}
+
+ZombieHorde::~ZombieHorde()
+{
+ for (int i = 0; i < horde_size; i++)
+ delete horde[i];
+ delete [] horde;
+}
+
+void ZombieHorde::announce()
+{
+ for (int i = 0; i < horde_size; i++)
+ horde[i]->announce();
+}