--- /dev/null
+################################################################################
+################################## VARIABLES ###################################
+################################################################################
+
+NAME := moar_brainz
+
+CC = c++
+CFLAGS = -Wall -Wextra -Werror -std=c++17
+HEADERS = -I.
+
+SRC := main.cpp Zombie.cpp zombieHorde.cpp
+
+OBJ_DIR := _obj
+OBJ := $(addprefix $(OBJ_DIR)/, $(SRC:%.cpp=%.o))
+
+################################################################################
+#################################### RULES #####################################
+################################################################################
+
+all: $(NAME)
+
+$(NAME): $(OBJ)
+ @$(CC) $(CFLAGS) $^ -o $@ $(HEADERS)
+ @echo "[$(NAME)] Created binary."
+
+$(OBJ_DIR)/%.o: %.cpp
+ @if [ ! -d "$(dir $@)" ]; then \
+ mkdir -p $(dir $@); \
+ fi
+ @$(CC) $(CFLAGS) -c $< -o $@ $(HEADERS)
+ @echo "[$(NAME)] Compiled $<."
+
+clean:
+ @if [ -d "$(OBJ_DIR)" ]; then \
+ rm -rf $(OBJ_DIR); \
+ echo "[$(NAME)] Removed object files."; \
+ fi
+
+fclean: clean
+ @if [ -f "$(NAME)" ]; then \
+ rm -f $(NAME); \
+ echo "[$(NAME)] Removed binary."; \
+ fi
+
+re: fclean all
+
+.PHONY: all clean fclean re
+
+################################################################################
+################################################################################
--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* Zombie.cpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/02/10 10:27:11 by dkaiser #+# #+# */
+/* Updated: 2025/02/10 10:46:03 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "Zombie.hpp"
+#include <iostream>
+
+Zombie::Zombie(const std::string &name)
+ :name(name)
+{}
+
+Zombie::~Zombie(void)
+{
+ std::cout << name << " died." << std::endl;
+}
+
+void Zombie::announce(void)
+{
+ std::cout << name << ": BraiiiiiiinnnzzzZ..." << std::endl;
+}
--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* Zombie.hpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/02/10 10:26:18 by dkaiser #+# #+# */
+/* Updated: 2025/02/10 11:12:29 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef ZOMBIE_H_
+#define ZOMBIE_H_
+
+#include <string>
+
+class Zombie
+{
+ public:
+ Zombie(const std::string &name);
+ ~Zombie(void);
+ void announce(void);
+ private:
+ std::string name;
+};
+
+Zombie* zombieHorde(int N, std::string name);
+
+#endif
--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* main.cpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/02/10 11:09:42 by dkaiser #+# #+# */
+/* Updated: 2025/02/10 11:09:50 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+int main(void)
+{}
--- /dev/null
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* zombieHorde.cpp :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/02/10 11:10:08 by dkaiser #+# #+# */
+/* Updated: 2025/02/10 11:11:04 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "Zombie.hpp"
+
+Zombie* zombieHorde(int N, std::string name)
+{}