16
Département Mathématiques et Informatique Cycle Ingénieur «Génie du Logiciel et des Systèmes Informatiques Distribués» GLSID 2 Année universitaire : 2015 - 2016 Ecole Normale Supérieure de l’Enseignement Technique ENSET - Mohammedia Analyse, conception et développement du jeu ‘‘l’Ane rouge’’ en java Réalisé par : AGRRAM Brahim SALHAOUI ABDLEMONAIM BEROUAIN NAOUFAL YOUSFI SOUFIANE OUAHIDI Hicham Année universitaire : 2015-2016 ENSET Av. Hassan II - B.P. 159 - Mohammedia - Maroc 0523322220/0523323530 Fax: 0523322546 Site Web: www.enset-media.ac.ma E-mail:[email protected]

GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Embed Size (px)

Citation preview

Page 1: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Département Mathématiques et Informatique

Cycle Ingénieur «Génie du Logiciel et des Systèmes Informatiques Distribués»

GLSID 2

Année universitaire : 2015 - 2016

Université Hassan II de Casablanca Ecole Normale Supérieure de l’Enseignement Technique

ENSET - Mohammedia

Analyse, conception et développement du jeu ‘‘l’Ane

rouge’’ en java

Réalisé par :

AGRRAM Brahim SALHAOUI ABDLEMONAIM

BEROUAIN NAOUFAL YOUSFI SOUFIANE

OUAHIDI Hicham Année universitaire : 2015-2016

ENSET Av. Hassan II - B.P. 159 - Mohammedia - Maroc

0523322220/0523323530 Fax: 0523322546 Site Web: www.enset-media.ac.ma E-mail:[email protected]

Page 2: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Introduction

Dans le cadre de notre formation en Génie du Logiciel et des Systèmes Informatiques

Distribués (GLSID) à l’Ecole Normale Supérieure de l’Enseignement Technique (ENSET)

de Mohammedia nous étudions un module intitulé "Intelligence Artificiel" qui est

souvent abrégé par le sigle « IA », ce module porte sur une science qui date d'une

trentaine d'années, elle consiste à construire à l'aide des moyens artificiels (machines

et ordinateurs) des raisonnements et des actions intelligentes.

Afin de concrétiser nos acquis nous sommes amenés à réaliser des projets portent sur

des algorithmes de l’IA, ce rapport traitera un projet qui permet de réaliser des

déductions intelligentes toutes en résoudront un problème posé sous forme une

énigme en sous basent sur un ensemble de données variables.

La première partie contiendra une description brève de quelques concepts de base de

l’intelligence artificielle.

La deuxième partie du rapport sera réservée pour la présentation du langage Lisp et

l’environnement de développement utilisée. La dernière partie présentera en détail les

étapes de réalisation du projet, notamment le travail demandé, la solution proposée

et les résultats obtenus.

Page 3: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Sommaire Introduction ....................................................................................................... 2

Chapitre 1 : Présentation & analyse du projet .................................................... 4

L’intelligence artificielle .................................................................................. 5

Problématique ................................................................................................ 6

Principe du jeu ................................................................................................ 6

Chapitre 2 : Outils & Environnement de travail .................................................. 7

Le langage LISP ................................................................................................ 8

Outil de développement : CLISP ...................................................................... 9

Chapitre 3 : Mise en œuvre .............................................................................. 11

Architecture du projet : ................................................................................. 12

L’interface Du jeu : ........................................................................................ 13

Conclusion ........................................................................................................ 15

Page 4: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Chapitre 1 :

Présentation & analyse du projet

Page 5: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Ce chapitre présente une phase indispensable pour l’étude et l’analyse de notre solution. C’est

grâce à cette phase nous avons pu mettre le doigt sur la problématique, et nous avons pu

présenter le principe du jeu, mais avant de présenter ces deux axes, nous aimerons de vous

présenter d’abord l’histoire de l’intelligence artificielle, et comment cette séance a pu

résoudre une multitude de problèmes.

L’intelligence artificielle

Le terme « Intelligence Artificielle » est né en août 1956 lors d'un congrès à l'université de

Dartmouth (ville de Hanover, état du New Hampshire, USA). Une communauté d'été réuni un

groupe de jeunes chercheurs doués d'un projet exaltant : celui de fonder un nouvel

enseignement scientifique: l'Intelligence Artificielle. Sont présents, à cette conférence, le

mathématicien John MC Carthy, inventeur du terme IA, Herbert A. Simon, théoricien des

organisations et futur prix Nobel d'économie, ainsi que les mathématiciens Allen Newel et

Marvin Minsky ; et Claude Shannon, le père de la théorie de l'information.

Dans les années 1950, naissent les premiers programmes d’Intelligence Artificielle

1956 : "Logic Theorist", un programme de démonstration de théorèmes fondé sur une

recherche sélective, de Newell et Simon

1959 : Programme de jeu de dames d’A.Samuel

1959 : GTP (Système de démonstration de théorèmes géométriques) de Gelernter:

programme qui, à partir du théorème à démontrer, remonte par des raisonnements

intermédiaires à des théorèmes ou des axiomes connus (proposition évidente en soi)

Dans cette continuité, au cours des années 1960, les scientifiques ont développé un

Certain nombre de programmes capables de résoudre des problèmes d'algèbre, de prévoir la

structure des composés de produits chimiques ainsi que de prouver des théorèmes de la

géométrie.

Page 6: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Les années 1980 marquent un changement important dans l'utilisation de l'IA. En effet, alors

que les applications pratiques de l'IA étaient limitées, elles deviennent rapidement très utiles

dans les entreprises : analyse de rayons X, réparation d'autres systèmes experts…, En outre,

le terme apparaît de plus en plus souvent dans le vocabulaire du grand public.

Au début de la décennie suivante, on observe la généralisation des ordinateurs de bureau, des

réseaux de télécommunications et des matériels incorporant de plus en plus de solutions IA

liées à des besoins. De nouvelles techniques de programmation ont évolué ou se sont

développées grâce à l'IA. Le but étant de simuler l'intelligence, certains programmes

s'inspirent du fonctionnement des neurones dans le cerveau humain.

Problématique

L’IA est notamment reconnu par sa forte aptitude à la résolution des problématiques

complexes, dont l’univers pouvait être arbitrairement réduit et simplifié par des

algorithmes intelligeant.

Alors dans notre cas, on va se baser sur l’IA pour savoir Comment on va amener l'âne,

représenté par le grand carré rouge, en bas du plateau par glissements successifs des

éléments. La grille est constituée uniquement de petits carrés, de rectangles, et de

l'âne.

Principe du jeu

L'Âne Rouge est un jeu solitaire formé d'un plateau et de 10 planchettes représentant

un grand carré, cinq rectangles congruents dont l'aire vaut la moitié de celle du carré,

et quatre petits carrés congruents qui ont ensemble la même aire que le grand carré.

On déplace les pièces comme au taquin en les faisant glisser dans les espaces libres

sans franchir la bordure du plateau. Le but est de faire glisser la grande pièce carrée

pour qu'elle se retrouve près de l'ouverture placée à l'autre extrémité.

Page 7: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Chapitre 2 :

Outils & Environnement de travail

Page 8: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Dés de que nous n’avons pas encore acquis un grand savoir sur cette science, nous avons essayé la

première fois de développer notre solution en se basent sur le langage LISP, mais lorsque nous avons

affronté une multitude d’obstacles, nous avons émigrer vers le langage JAVA où nous savons bien

comment interagir avec les bugs.

Alors dans ce chapitre nous allons présenter les différents outils utilisés durant notre parcours de

développement :

Le langage LISP

LISP est un des plus anciens langages de programmation : ses premières implémentations ont

vu le jour à la fin des années 60, quelques années seulement après FORTRAN.

LISP a été conçu par John McCarthy pour le traitement d’expressions symboliques. Dès son

origine, il a été utilisé pour écrire des programmes de calcul symbolique différentiel et intégral,

de théorie des circuits électriques, de logique mathématique et de la programmation de jeux.

LISP est également un des langages de programmation les plus répandus : il existe

pratiquement sur tous les ordinateurs, de toute taille et de toute origine. LISP est un des

langages de programmation les plus vivants. Le nombre étonnant de versions différentes,

telles que MACLISP, INTERLISP, Common-LISP, VLISP, LE_LISP, etc, en témoigne. De plus,

signalons l’apparition de machines utilisant une architecture spécialement conçue pour

l’implémentation de LISP, par exemple les ordinateurs de Symbolics ou de la LISP-Machine

Company, ou l’ordinateur Maia, actuellement en développement à la CGE.

En LISP, de même que dans les langages-machine, la représentation des données et la

représentation des programmes sont identiques : ainsi un programme LISP peut construire

d’autres programmes LISP ou se modifier au fur et à mesure.

Page 9: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Outil de développement : CLISP

Common Lisp est un dialecte de Lisp standardisé par l'ANSI X3.226-1994. Développé

pour standardiser les variantes divergentes de Lisp qui l'ont précédé, ce n'est pas une

implémentation mais une spécification à laquelle les implémentations Lisp essayent de

se conformer.

Il est fréquemment abrégé en CL. Common Lisp est un langage de programmation à

usage général, a contrario de dialectes de Lisp comme Emacs Lisp et AutoLisp, qui sont

des langages d'extension embarqués dans des produits particuliers. Contrairement à

de nombreux Lisp plus anciens, mais comme Scheme, Common Lisp utilise la portée

lexicale par défaut pour les variables.

Common Lisp est un langage de programmation multi-paradigmes qui :

Accepte des techniques de programmation impérative, fonctionnelle et

orientée objet (CLOS).

Est typé dynamiquement, mais avec des déclarations de type optionnelles qui

peuvent améliorer l'efficacité et la sûreté,

Dispose d'un système de gestion d'exceptions puissant, nommé Condition

System (système de gestion de conditions),

Est syntaxiquement extensible à travers des fonctionnalités comme les macros

et les macros de lecture

Page 10: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

JAVA :

Le langage Java est un langage de programmation informatique orienté objet créé

par James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le

soutien de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté

officiellement le 23 mai 1995 au SunWorld.

La particularité et l'objectif central de Java est que les logiciels écrits dans ce langage

doivent être très facilement portables sur plusieurs systèmes d’exploitation tels

que UNIX, Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications. Pour

cela, divers plateformes et Frameworks associés visent à guider, sinon garantir, cette

portabilité des applications développées en Java.

Page 11: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Chapitre 3 :

Mise en œuvre

Page 12: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Dans ce chapitre, on va traiter l’architecture du projet ainsi que la démonstration du

jeu exécuté sous le logiciel ECLIPSE.

Architecture du projet :

La structure du projet est définie comme suivant :

Après avoir exécuté l’algorithme de recherche, un fichier Texte est généré contient les

mouvements possible du jeu.

Page 13: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

L’interface Du jeu :

Page 14: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

-En appuyant sur le bouton Start, l’interface va interpréter le fichier texte qui décrit les

différents mouvements

-Après un bout de temps, L’algorithme trouve la solution et affiche une fenêtre

« GAME IS OVER »

Page 15: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

Conclusion

Pour pouvoir réaliser ce travail nous avons dû apprendre un nouveau langage de

programmation, Lisp qui est un langage très fort dans le traitement des listes est

capable de déployer des algorithmes et des programmes de l’intelligence artificielle

Page 16: GLSID 2 - fatihaakef.comfatihaakef.com/wp-content/uploads/2016/11/Rapport-projet-AneR... · étapes de réalisation du projet, notamment le travail demandé, ... de théorie des circuits

malgré qu’on a échoué et qu’on n’a pas pu concrétiser le projet avec lisp Ce projet

nous a permis de concrétiser nos acquis en termes de l’IA et nous a donné l’opportunité

pour réaliser un travail concret, malgré les difficultés que nous avons rencontré qui

sont plutôt liés aux syntaxes du langage Lisp qu’aux principes de l’IA. Finalement nous

avons pu atteindre l’objectif et obtenir le résultat recherché.