questions pour bit_vector_extract_wrap_ext

questions pour bit_vector_extract_wrap_ext

by Nicolas Vial -
Number of replies: 2

Bonjour, mon mate et moi rencontrons des soucis avec cette fonctions :

1)premièrement. on ne comprend pas pourquoi cette fonction doit fonctionner avec des éléments qui n'ont pas une size = 32 sachant que la gameboy n'utilisera que des vecteurs de cette taille (par exemple l'image de test fournie apparaît très bien même si le test deadboss ne passe pas). En tout cas on ne voit pas la raison pour laquelle on aurait besoin de faire une extension sur par exemple 0x0001, qui selon les tests est censé donner une suite du style 0x0001000100010001... Une explication là dessus est la bienvenue.

2)TOUS nos unit.tests de bit_vector passent sauf le deadboss. Après avoir longuement cherché la raison du fail, nous avons trouvé que ça vient du même type d'exemple montré ci dessus. lorsqu'on nous donne par exemple 0x0001 et que le test appelle extract_wrap dessus  avec une size 16 on obtient 0x0000000000000001 et non 0x0001000100010001 car dans la manière dont nous l'avons implémentée, nous considérons l’extension "par élément" c'est à dire que même si la taille "réelle" du uint32_t est 4, l’extension continuera après la fin de cet élément c'est à dire après 32 bits : 0x00...00100...001 avec 27 zéro à la place des "...". Il est clair que le comportement de notre fonction n'est pas celui attendu, nous avons donc essayé de faire une fonction qui comme proposé, donné un index(de bit) et un bit_vector, retourne le uint32_t de l'élément qui contient cet indice l’extension du bit_vector. Mais après beaucoup d'heures de travail et d'essaies nous n’arrivons pas à implémenter une telle fonction car on ne trouve pas de bonne manière de procéder qui ne soit pas ultra complexe.

J'espère que ces questions sont suffisamment claire et je vous remercie d'avance pour vos réponses qui j'espère pourront nous aider à enfin trouver une solution et à mieux cerner le problème.

Nicolas Vial

In reply to Nicolas Vial

Re: questions pour bit_vector_extract_wrap_ext

by Jean-Cédric Chappelier -

cf https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=26452#p75876 et les fils de dicussion qui y sont mentionnés ?

la raison du « pourquoi » est simplement d'avoir une bibliothèque plus générale de bit_vector, réutilisable (en principe) dans d'autres contextes.
Ceci dit, la version « size multiple de 32 » suffit en effet pour la Game Boy et permet d'aller de l'avant. Vous n'aurez simplement pas 100% des points sur la partie bit_vector, mais cela peut aussi être un choix (compromis entre temps passé et note visée).

Est-ce que ça vous répond ou non ?

In reply to Jean-Cédric Chappelier

Re: questions pour bit_vector_extract_wrap_ext

by Nicolas Vial -

Oui la réponse est parfaite pour nous merci beaucoup et bonne semaine!