Extensibilité de l'application

Un des objectifs initiaux du projet était de pouvoir faire fonctionner l'application smartphone avec d'autres jeux informatiques chronophages simples. Nous avons donc, dans les derniers moments du projet, établit une conception permettant une implémentation facile de résolution de nouveaux jeux. Nous avons donc ajouté une liste à l'activité de paramétrage permettant à l'utilisateur de choisir le jeu à résoudre. Celle-ci est, pour le moment, composée de « Candy Crush Saga » mais pourra être complété facilement.

Figure n°39 : liste de jeux présente dans l'activité de paramétrage

Chaque item présent dans cette liste est une instance de la classe « Jeu ». Cette classe est composée d'un nom, d'une analyse et d'une intelligence artificielle. En effet, l'analyse et l'intelligence artificielle sont les parties qui diffèrent le plus entre chaque jeu. Les classes « Analyse » et « IA » sont abstraites, ce qui signifie que ce sont des classes générales, non instanciables et chaque jeu a donc une analyse et une intelligence propres. On est ici en présence d'un patron stratégie.

Figure n°40 : patron stratégie pour implémenter de nouveaux jeux facilement

Le jeu choisi par l'utilisateur est enregistré pour être réutilisé dans l'algorithme de résolution. Manquant de temps, nous n'avons pas pu aller au bout de cette idée, mais l'analyse et l'intelligence artificielle utilisé dans l'algorithme aurait donc été celle propre au jeu joué et ainsi il aurait été possible d'ajouter un autre jeu à la liste simplement en créant une nouvelle classe dérivant de « Jeu » et deux classes d'analyse et d'intelligence artificielle propre au nouveau jeu.

39.png (37.5 KB) Nicolas Raymond, 03/22/2015 08:13 PM

40.png (12.3 KB) Nicolas Raymond, 03/22/2015 08:14 PM