420KEJSCS – Activité synthèse

Ces dates coïncident avec la semaine d'évaluation. La raison pour laquelle la pige ne peut ête faite passé le 27 mai, 15:00 est que cela mènerait la date de livraison après la fin de votre session.

Consignes de remise

Durant la période allant du 19 mai 2009 à 9:00 au 27 mai 2009 à 15:00, vous devrez passer à mon bureau à un moment de votre choix (moment où je suis présent au bureau, évidemment) pour tirer au hasard un nombre entre 1 et 6. Nous soustrairons 1 de ce nombre ce qui vous donnera un entier entre 0 et 5 inclusivement correspondant à votre activité synthèse (A.S.) pour le cours 420KEJ, session H2009. Les options correspondant à ce nombre sont listées un peu plus bas.

À partir du moment où votre A.S. aura été déterminée, vous aurez précisément 48 heures pour la réaliser et la livrer au professeur. Choisissez donc votre moment avec soin.

L'A.S. est un travail individuel qui constitue un ajout ou un ajustement à faire à votre TP Final. Pour cette raison, deux membres d'une même équipe de travail ne pourront piger la même activité. Nous fonctionnerons selon le principe premier arrivé, premier servi : si vous pigez la même A.S. que l'une de vos équipières ou que l'un de vos équipiers, alors vous devrez piger à nouveau jusqu'à ce vous obteniez une A.S. bien à vous.

Lorsque vous passerez piger votre A.S., le traval pratique sur lequel elle se basera devrait être fait et devrait avoir été remis au professeur. Vous devriez d'ailleurs y avoir participé activement. Votre A.S. vous permettra de démontrer que vous avez développé les compétences attendues dans ce cours et que vous êtes en mesure de les appliquer à pied levé. Les A.S. peuvent se trouver côté client ou côté serveur.

Assurez-vous que votre A.S. fonctionne en tout temps. Par exemple, une interface offrant un service donnant un pourcentage de succès ne doit pas planter si aucune opération n'a encore été faite (attention aux divisions par zéro!).

Pour chaque A.S., vous devrez livrer une version identifiée (votre nom et le numéro de l'activité), imprimée et testée de tout le code que vous aurez rédigé pour en arriver au résultat. Pour le code s'intégrant à du code existant (ajouts de fonctions ou d'instructions ici et là), indiquez clairement (avec un marqueur de surlignage, par exemple) les ajustements réalisés. Peu importe l'option, vous devrez montrer, sous forme imprimée  : mettre en relief les changements au code dans chaque module que vous aurez dû modifier; indiquer tous les modules que vous aurez dû ajouter; et indiquer toute modification aux interfaces ou aux protocoles de communication que vous aurez dû faire.

Pour faire ces activités, il se peut que vous ayez envie de lire un petit peu sur la correspondance entre les erreurs .NET (des exceptions) et les erreurs COM (des HRESULT). Il se peut aussi que vous souhaitiez examiner les outils de mesure de temps précis de Microsoft Windows que sont QueryPerformanceCounter() et QueryPerformanceFrequency().

Vous êtes responsables de la clarté de ce que vous livrerez. Vous êtes responsables de démontrer que vous avez testé correctement votre travail. Vous êtes responsables de la qualité du code que vous livrerez. Les considérations programmatiques habituelles s'appliquent (pas de fuites de ressources, code élégant, capacité de connecter et de déconnecter un module à loisir – si cela s'applique – et ainsi de suite).

Glossaire

Les quelques termes ci-dessous décrivent des réalités dans l'A.S. et dans le TP Final. Ils sont listés ici pour faciliter votre compréhension des exigences de ce travail.

Terme Description
Afficheur Module qui affiche graphiquement un reflet de l'état du moteur d'avatar, semblable (en plus charmant) au traditionnel affichage en mode « console ».
Intelligence artificielle L'une des entités logiques externes au moteur d'avatar et contrôlant un monstre ou un avatar.
Moteur d'avatar Le module incomplet que votre aimable professeur a mis à votre disposition pour réaliser le TP Final.
Personnage Ce mot est utilisé pour indiquer un monstre ou un avatar, sans distinction.

Options d'A.S.

Les options possibles pour l'A.S. suivent. Notez que certaines d'entre elles parlent des avatars (au pluriel) ou du plus proche avatar (comme s'il y en avait plusieurs) : dans un tel cas, votre code doit être indépendant du fait que le moteur d'avatar ne supporte présentement qu'un seul avatar à la fois (ça pourrait changer dans le futur).

Option 0

On souhaite comptabiliser le temps d'utilisation du moteur d'avatar par chacune des intelligences artificielles. Présomption : chaque intelligence artificielle est lancée par un usager, dont le nom doit être connu, et on veut pouvoir (éventuellement) facturer ces usagers au temps d'utilisation.

Le temps total (en secondes; comptabilisez les fractions de secondes!) pendant lequel un utilisateur utilise des ressources du moteur d'avatar est la somme des temps consommés lorsque le moteur d'avatar laisse une intelligence artificielle gérer les décisions d'un personnage.

Entreposez l'information comptable résultante dans un fichier ou dans une BD, à votre convenance, sous une forme facilitant sa consultation.

Option 1

On souhaite évaluer la qualité des intelligences artificielles de monstres. Présomption : chaque intelligence artificielle est lancée par un usager, dont le nom doit être connu. Présomption : un monstre qui se rapproche du plus proche avatar plus souvent qu'il s'en éloigne est meilleur qu'un monstre qui tend à s'éloigner du plus proche avatar.

Le rapport à produire doit indiquer, pour chaque monstre, le nom de l'usager qui est propriétaire de son intelligence artificielle et la proportion de ses mouvements qui l'auront rapproché du plus proche avatar. Un mouvement qui ne rapproche pas et n'éloigne pas un monstre du plus proche avatar ne doit pas être comptabilisé. Pour comptabiliser la distance entre un monstre et le plus proche avatar, ne comptez que les mouvements horizontaux et verticaux, et faites fi des murs et autres obstacles (vous pouvez vous baser sur le code comptabilisant la valeur de la boussole magique pour vous orienter).

Entreposez l'information comptable résultante dans un fichier ou dans une BD, à votre convenance, sous une forme facilitant sa consultation.

Option 2

On souhaite évaluer la qualité des intelligences artificielles des avatars. Présomption : chaque intelligence artificielle est lancée par un usager, dont le nom doit être connu. Présomption : un avatar qui se rapproche d'un trésor plus souvent qu'il s'en éloigne est meilleur qu'un avatar qui tend à s'éloigner du plus proche trésor. Un avatar qui se heurte sur un mur est moins bon qu'un avatar que évite ces collisions.

Le rapport à produire doit indiquer, pour chaque avatar, le nom de l'usager qui est propriétaire de son intelligence artificielle et la proportion de ses mouvements qui l'auront rapproché du plus proche trésor. La valeur de la boussole magique peut vous aider. Une collision sur un mur doit être considérée comme un mouvement éloignant l'avatar du plus proche trésor; un mouvement qui n'est pas une collision sur un mur et qui ne rapproche pas et n'éloigne pas l'avatar du plus proche trésor ne doit pas être comptabilisé.

Entreposez l'information comptable résultante dans un fichier ou dans une BD, à votre convenance, sous une forme facilitant sa consultation.

Option 3

On souhaite faire un suivi à distance de l'état du moteur d'avatar. Ce suivi peut être graphique ou en mode console, doit être rafraîchi à chaque n secondes (n étant un entier positif entre 1 et 5 choisi par l'usager) et doit être entreposé en entier dans un fichier comme dans une BD, à votre convenance, sous une forme facilitant sa consultation.

Le suivi doit être fait par un programme à part entière, distinct des autres programmes du TP Final. Présomption : chaque intelligence artificielle est lancée par un usager, dont le nom doit être connu.

Les informations que nous souhaitons voir apparaître dans ce suivi sont : le nombre de secondes depuis de démarrage du moteur d'avatar, le nombre d'intelligences artificielles actives, le nom de l'usager derrière chaque intelligence artificielle, et la valeur la boussole magique de chaque avatar.

Option 4

On souhaite mesurer à distance les performances du moteur d'avatar. L'affichage de ces mesures peut être graphique ou en mode console; il doit être rafraîchi à chaque modification d'une donnée pertinente,.et doit être entreposé en entier dans un fichier comme dans une BD, à votre convenance, sous une forme facilitant sa consultation

L'affichage des mesures doit être fait par un programme à part entière, distinct des autres programmes du TP Final.

Les informations que nous souhaitons voir afficher sont : le nombre d'invocations d'une méthode ControlerMonstre() ou ControlerAvatar() pour un personnage donné, le meilleur temps d'exécution chacune de ces fonctions, le pire temps d'exécution pour chacune de ces fonctions, et le temps moyen d'exécution pour chacune de ces fonctions.

Option 5

Choisissez l'une des options ci-dessus, dans la mesure où aucune de vos coéquipières et aucun de vos coéquipiers ne se l'est encore fait attribuer.


Valid XHTML 1.0 Transitional

CSS Valide !