isPrimaryColor(const Color& c) — retourne true si la couleur est une couleur primaire pure (ex. : R:255 G:0 B:0).
isNeutralColor(const Color& c) — retourne true si R, G et B sont tous égaux (gris, blanc, noir).
Défi 2 — Gradients (avancé)
Un gradient est une transition progressive entre deux couleurs. Implémentez la fonction suivante :
// Dans colors.h :void displayGradient(const Color& a, const Color& b, int steps);
Elle devra afficher dans le terminal une ligne de blocs █ dont la couleur transite progressivement de la couleur A vers la couleur B, en steps étapes.
Exemple de sortie attendue pour un gradient Rouge → Bleu en 8 étapes :
(Chaque bloc étant légèrement plus bleu et moins rouge que le précédent.)
Indice : Utilisez std::lerp de <cmath> (disponible depuis C++20) pour interpoler chaque composante. N’oubliez pas que std::lerp travaille avec des float — pensez aux casts !
#include <cmath>std::lerp(a, b, t); // t entre 0.0 et 1.0 — retourne la valeur interpolée