Forum des exercices du projet Zuul

Exercice 7.49

  
 
Avatar Denis BUREAU
Exercice 7.49
par Denis BUREAU, mardi 19 novembre 2013, 15:39
 

Add moving characters. These are like other characters, but every time the player types a command, these characters may move into an adjoining room.

Utiliser l'héritage à bon escient...

Ne pas oublier de lire les échanges ci-dessous pour mieux comprendre la bonne manière de réaliser cet exercice.

Avatar Hassan DIAB
Re: Exercice 7.49
par Hassan DIAB, mercredi 1 janvier 2014, 23:12
 

Bonsoir,

je ne vois pas quelle attribut en plus pourrait avoir un Movincharacter si il herite de Character, j'ai pensé à un attribut de type ROOM mais je ne sais pas comment la manipuler dans MovingCharacter.

merci d'avance

Avatar Denis BUREAU
Re: Exercice 7.49
par Denis BUREAU, vendredi 3 janvier 2014, 19:37
 

Il n'y a pas de réponse unique à cette question ; cela dépend fortement de ce que vous prévoyez comme stratégie(s) de déplacement de vos MovingCharacter.

On peut imaginer une CurrentRoom, ou une liste de Room, ou un compteur pour "tourner" entre plusieurs Room, ou un générateur aléatoire de directions, ou un Item qu'il faut lui donner pour qu'il se déplace, ou tout ce que votre imagination vous suggérera ...

Il est aussi possible de se contenter d'ajouter une méthode de déplacement rudimentaire.

Avatar Denis BUREAU
Re: Exercice 7.49
par Denis BUREAU, samedi 19 avril 2014, 14:26
 

Un étudiant a écrit :

Bonjour,

[...]

L'implémentation actuelle fait se déplacer le personnage dans une pièce
adjacente choisie aléatoirement. Cependant, il risque d'entrer dans une
TransporterRoom et ainsi de se retrouver n'importe où.
Pouvons-nous, à la place de choisir une pièce adjacente aléatoirement, définir un chemin que le MovingCharacter suivra ?
Avatar Denis BUREAU
Re: Exercice 7.49
par Denis BUREAU, samedi 19 avril 2014, 14:28
 

Oui l'essentiel dans cet exercice est de créer une classe de personnages qui changent de pièce.

Un tel personnage peut soit bouger dans une pièce adjacente, soit suivre le joueur, soit suivre un chemin pré-déterminé, ou toute autre philosophie de déplacement.

Avatar Jonathan MORELL
Re: Exercice 7.49
par Jonathan MORELL, jeudi 29 mai 2014, 23:34
 

Bonjour, si notre Class Character possède déjà l'attribut aCharacterCurrentRoom, il nous suffit de rajouter une méthode qui le permet de le faire bouger de room, est-ce bien ça ?

Avatar Denis BUREAU
Re: Exercice 7.49
par Denis BUREAU, vendredi 30 mai 2014, 11:48
 

Oui, mais il faut s'assurer que le GameEngine demande aux MovingCharacters de se déplacer ...

Petite remarque : pourquoi ne pas avoir conservé le nom aCurrentRoom ?

Avatar Jonathan MORELL
Re: Exercice 7.49
par Jonathan MORELL, vendredi 30 mai 2014, 13:00
 

Juste pour obtenir une meilleur visibilité. Je préfere avoir des variables assez explicite même si je sais que j'aurai pu garder aCurrentRoom.

Avatar Denis BUREAU
Re: Exercice 7.49
par Denis BUREAU, vendredi 30 mai 2014, 13:51
 

Je comprends, mais cela nuit à la généralisation, et vous empêcherait par exemple de mettre en commun cet attribut dans une classe dont hériteraient Player et Character ...

Avatar Jonathan MORELL
Re: Exercice 7.49
par Jonathan MORELL, mercredi 4 juin 2014, 00:53
 

Peut-ont au lieu de définir une nouvelle classe MovingCharacter crée la méthode public void move() dans Character avec un corps vide et donc redéfinir cette méthode seulement pour nos personnage qui doit bouger ?

Avatar Denis BUREAU
Re: Exercice 7.49
par Denis BUREAU, mercredi 4 juin 2014, 09:52
 

Redéfinir move, mais où ???

--> dans MovingCharacter !