Forum des exercices du projet Zuul

Exercice 7.33

  
 
Avatar anonfirstname2 anonlastname2
Exercice 7.33
par anonfirstname2 anonlastname2, mercredi 10 avril 2013, 00:29
 

Implement an items command that prints out all items currently carried and their total weight.

En français, la commande pourait s'appeler inventaire.

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

Avatar Denis BUREAU
Re: Exercice 7.33
par Denis BUREAU, mercredi 16 décembre 2015, 23:42
 

Un étudiant a écrit :

Bonsoir,
Comment fait-on pour parcourir une liste de type ArrayList ?
Ci-joint le morceau de code.
En vous remerciant d'avance, bonne soirée.
erreur compil

Avatar Denis BUREAU
Re: Exercice 7.33
par Denis BUREAU, mercredi 16 décembre 2015, 23:52
 

1) ItemList n'est pas une ArrayList, elle contient une ArrayList.
    C'est pourquoi vous ne pouvez pas appliquer de for-each dessus.

2) Ce n'est pas le rôle du Player de gérer l'ArrayList (ici, la parcourir), c'est justement pour cela qu'a été créée la classe ItemList.
    Celle-ci doit donc fournir une fonction qui retourne une String contenant les informations que vous souhaitez.

Avatar Axel ABOYEJI
Re: Exercice 7.33
par Axel ABOYEJI, jeudi 19 mai 2016, 20:25
 

Bonsoir,

Je ne vois vraiment pas comment afficher les caractéristiques de chaque objet de l'inventaire, merci d'avance de m'éclairer sur le sujet.

Avatar Marc VU QUOC KHANH
Re: Exercice 7.33
par Marc VU QUOC KHANH, jeudi 19 mai 2016, 21:38
 

Normalement les items du player sont contenus dans une Itemlist que tu as créé dans le constructeur du player.

Tu dois donc créer une commande item ou inventaire (comme tu veux) dans ton gameengine pour l'instant, qui va afficher les items présents dans l'inventaire du joueur.

Pour cela il faut que tu utilises les méthodes propres au Hashmap (<String, Item> dans ce cas), qui vont afficher le nom et poids de chaque Item de cette Hashmap(qui est créé avec l'Itemlist), 

ici le keySet. 


Avatar Denis BUREAU
Re: Exercice 7.33
par Denis BUREAU, vendredi 20 mai 2016, 10:47
 

Juste une précision sur le rôle de chaque classe :

- Item doit posséder une méthode qui fournit la description d'un item

- ItemList doit posséder une méthode qui fournit la description de tous ses items

- Room et Player doivent posséder une méthode qui fournit la description de tous les items de leur ItemList
  (puisque personne ne doit savoir qu'une ItemList est utilisée à l'intérieur de Room et de Player)

- GameEngine doit afficher la description des items d'une Room ou du Player quand c'est nécessaire

Avatar Denis BUREAU
Re: Exercice 7.33
par Denis BUREAU, mercredi 19 décembre 2018, 09:57
 

Un étudiant a écrit :

Ma commande 'inventaire' fonctionne correctement et affiche la liste des items dans l'inventaire ainsi que le poids total des objets transportés.

Le poids total (de type double) est calculé en additionnant à chaque fois le poids déjà transporté et le poids de l'objet que l'on ajoute à l'inventaire. Mais lors de l'affichage, la valeur affichée ne correspond pas à la valeur exacte de la somme.
Par exemple si j'ai dans mon inventaire deux objets de poids 1.2 et 0.6, le poids total affiché est 1.79999999...

J'imagine que cela est dû à la représentation des réels en machine mais y a-t-il un moyen d'arrondir au dixième le poids total ?

Avatar Denis BUREAU
Re: Exercice 7.33
par Denis BUREAU, mercredi 19 décembre 2018, 10:07
 

> J'imagine que cela est dû à la représentation des réels en machine
>
oui

> mais y a-t-il un moyen d'arrondir au dixième le poids total ?
>
Bien sûr !

En vous servant par exemple de la méthode round() de la classe Math

Avatar Melisa KOCKAN
Re: Exercice 7.33
par Melisa KOCKAN, dimanche 13 décembre 2020, 13:08
 

Bonjour Monsieur,

Pouvons-nous ajouter des fonctionnalités qui nous paraissent importantes mais qui ne sont pas demandées en exercice ?
J'ai bien traité l'exercice Inventaire 7.33 , mais je souhaiterais que le joueur puisse également connaitre le poids qu'il porte à chaque appel de la commande take.
Pouvons-nous faire cela ou faut-il se limiter à ce qui est demandé en exercice ?

En vous remerciant par avance de votre réponse,
Bon Dimanche

Avatar Denis BUREAU
Re: Exercice 7.33
par Denis BUREAU, dimanche 13 décembre 2020, 15:50
 

Vous pouvez bien sûr faire plus que ce qui est demandé, avec toutefois deux restrictions :
- ne pas changer le fonctionnement global du jeu sans m'en parler au préalable
- ne pas ajouter des fonctionnalités tant qu'on est en retard dans l'avancement des exercices