Hello,
je suis en train de faire un petit jeu en C++ en console : un Rogue-like. Mon projet à déjà bien avancé, mais je viens de me rendre compte que j'ai fais un truc pas très jolie dans mon code. Et j'aurais besoin de vous pour savoir comment le faire bien.
Je vous explique la situation :
J'ai une classe Donjon qui a comme attribut un tableau à deux dimension de Case. Cela me sert de map dans mon jeu. Les Cases ont comme attribut : char skin (qui est le char affiché à l'écran), bool is_obstacle, et bool is_visible.
Je n'ai que 5 types de Case dans mon jeu pour le moment :
Case vide (skin = ' '; is_obstacle = false)
Case porte (skin = '+'; is_obstacle = false)
Case escalier (skin = '>'; is_obstacle = false)
Case horizontale (skin = '-'; is_obstacle = true)
Case verticale (skin = '|'; is_obstacle = true)
Avec is_visible toujours à false à l'initialisation.
Pour le moment j'utilise un constructeur Case(char skin, bool is_obstacle), et pour tester le type de la case : char get_skin() { return skin; }
Bref, c'est vraiment mal foutus. Si je veux changer le skin d'un type de case ça me fait plein de modification, et puis c'est pas très jolie...
Comment organiser le code pour avoir plusieurs types de Case ? Faut il utiliser un enum ? De l'héritage ? Autre chose ?
Merci d'avance !