Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes

Dimension: px
Commencer à balayer dès la page:

Download "Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes"

Transcription

1 MEMOIRE DE FIN D ETUDES MASTER D INFORMATIQUE Conception et Développement d un moteur d intelligence artificielle pour un jeu d échecs multiplateformes Étudiant Superviseurs : HOANG Duc Viet : HO Tuong Vinh NGUYEN Duc Thinh Hanoi, Juin 2014

2 Table de matières Table de matières... 2 Table de figures... 4 Remerciements... 5 Résumé... 6 Introduction Contexte du stage IFI Société Newwave Projet du jeu vidéo Jingci Motivation et objectif du stage Contribution... 8 Chapitre 1 État de l art : Epreuves générales de la programmation de jeux d échecs Représentation des données Gestion des mouvements Génération des mouvements Evaluation de mouvements Recherche de mouvements Algorithmes de recherche (Minimax, Alpha-Beta) Algorithme Minimax Algorithme Elagage Alpha-Beta (Alpha-Beta pruning) Chapitre 2 Épreuves du projet Description générale du jeu Spécifications d exigences fonctionnelles Spécifications d exigences non-fonctionnelles Capacité de réfléchir du noyau d Intelligence artificielle Difficultés de calcul Chapitre 3 Solutions proposées Arbres de positions Equation d évaluation Stratégies de décisions Tactique défensive

3 3.2 Tactique offensive Chapitre 4 Réalisation et résultats Ingénierie de développement Méthode de développement Langage de programmation et plateformes Gestion de code et de changement Conception et Développement Représentation des données Implémentation de règles et de contrains Implémentation de la recherche de mouvement Améliorations Résultat & évaluation Test Évaluation Conclusion Conclusion Perspectives Bibliographies

4 Table de figures Figure 1-1 Arbre de positions du jeu Tictactoe [8] Figure 1-2 Exemple de l évaluation de l heuristique [15] Figure 1-3 Jeux de deux à somme nulle: Echecs[16], Echecs chinoises[17], Tictactoe[18], Go[19], Othello[20], Gomoku[21] Figure 1-4 Illustration de l algorithme Minimax [9] Figure 1-5 Algorithme Minimax pour trouver la solution de Tictactoe [8] Figure 1-6 Algorithme Alpha-Beta [9] Figure 2-1 Terrain du football [13] Figure 2-2 Tablier de jeu Figure 2-3 Pièces de jeu: Ballon, Joueurs, Gardiens (de goal) Figure 2-4 Portée de courses: pour le ballon et pour le joueur Figure 2-5 Portée de pièce et de ballon selon le cas Figure 2-6 Illustration du cas de répétition de jeu Figure 2-7 Illustration du cas de ballon bloqué Figure 2-8 Illustration du cas de ballon bloqué Figure 2-9 Initiation du jeu Figure 3-1 Elagage Alpha-Beta [14] Figure 3-2 Exemple de la coupure Alpha [14] Figure 3-3 Facteurs d évaluation d une position de jeu Figure 3-4 Tactique défensive Figure 3-5 Tactique offensive Figure 4-1 Diagramme Gantt du projet Jingci Figure 4-2 Plan de réalisation du Jingci Figure 4-3 Architecture de l application NDK [12] Figure 4-4 Structure de codage du projet Jingci Figure 4-5 Diagramme de classes du noyau IA Figure 4-6 Représentation de tablier dans le mémoire Figure 4-7 Représentation de tablier et des sentinelles Figure 4-8 Représentation de la surface de but Figure 4-9 Représentation de la zone de gardien de but Figure 4-10 Classe Piece Figure 4-11 Classe d une position du jeu JingciNode Figure 4-12 Algorithme de trouver les carres disponibles Figure 4-13 Algorithme de décision Figure 4-14 Tactique offensive Figure 4-15 Tactique défensive Figure 4-16 Ecran du programme Jingci et écran d étape d initiation Figure 4-17 Ecrans d étape de préparation Figure 4-18 Ecrans de mouvement du jeu Figure 4-19 Ecrans du tir au goal Figure 4-20 Ecrans de la victoire et de l échec

5 Remerciements Je remercie mes collègues dans la société Newwave, pour m avoir permis d effectuer ce stage dans les meilleures conditions possibles, qui ont pris du temps pour me guider dans mon stage. J ai eu l opportunité de pouvoir travailler pendant 6 mois en tant que stagiaire au sein de la société Newwave où j ai reçu un accueil chaleureux de la part de toutes les personnes présentes dans cette entreprise. Je remercie également mes professeurs d informatique à l IFI pour m avoir enseigné les connaissances nécessaires. Mes sincères remerciements à mes professeurs de français pour m avoir accompagné dans l apprentissage du français nécessaire pour mes études à l IFI en particulier et mon métier en général. Je remercie également M. Nguyen Van Tuan et Mme Nguyen Thi Hong Loan pour leurs aides concernant les procédures administratives pendant mon Master a l IFI. Je tiens à remercier mes parents pour leur mobilisation, l encouragement constant et pour leur aide financière. Ils m ont permis de réaliser mes études et mon stage dans de bonnes conditions. Enfin, je remercie amicalement mes amis vietnamiens et mes amis français qui sont toujours à côté de moi pour partager des difficultés et m encourager à effectuer les études à IFI et ce stage. 5

6 Résumé Ces dernières années, le domaine des jeux vidéo s est développé sans cesse grâce au développement de matériel et d algorithmes. En simulant le football, Jingci est un nouveau jeu du type d échecs et nous voulons construire un jeu vidéo multiplateforme pour présenter ses intérêts. Dans le projet Jingci, nous nous concentrons dans le but de développer un moteur d intelligence artificielle afin d attirer les utilisateurs à étudier les règles et jouer au jeu. Malgré la croissance des performances des appareils portables, la programmation de jeux d échecs est tournée vers la recherche de solution dans un espace contenant énormément de positions. Des algorithmes ont été inventés pour résoudre le problème, par exemple Minimax, Alpha-Beta, etc. En évaluant les contraintes de temps de traitement et la limitation de ressource des appareils portables pendant la durée de réalisation, nous avons décidé d appliquer l Alpha-Beta pour implémenter un jeu vidéo qui soit déployé sur la plateforme mobile. Dans le cadre de ce mémoire, nous allons exposer les problématiques, l analyse et les solutions d application l algorithme d élagage Alpha-Beta et les tactiques de football. Enfin, nous allons présenter le résultat et l évaluation de la bonne efficacité en appliquant l élagage Alpha-Beta pour réduire l espace de recherche de solution et des stratégies de réflexion pour le moteur d intelligence artificiel proposé pendant la réalisation. Mots-clés : intelligence artificielle, moteur de jeu vidéo, jeux mobiles, jeux d échecs, jeux à somme nulle, élagage alpha-beta 6

7 Introduction 1. Contexte du stage 1.1 IFI L Institut de la Francophonie pour l'informatique [23] est un institut international d études supérieures en informatique située à Hanoi (Vietnam) et appuyée par l Agence Universitaire de la Francophonie (AUF) et par l Université Nationale du Vietnam. L Université de La Rochelle [24] est partenaire depuis plusieurs années avec l IFI. L IFI offre deux formations Master et une double diplomation franco-vietnamienne pour ses étudiants: Systèmes Intelligence & Multimédia et Réseaux & Systèmes Communiquant. Pour ma part j ai suivi le Master Systèmes Intelligences & Multimédia qui est enseigné totalement en français. 1.2 Société Newwave Newwave est une jeune société vietnamienne [25]. Elle a été créée en 2011 par un groupe d ingénieurs chaleureux et ambitieux. Ils étaient 3 ingénieurs au début. En développement constant, la société se compose en ce moment de plus de 30 jeunes membres. Plusieurs projets ont été menés avec la satisfaction du client. Etant membre de l association de logiciel du Vietnam, la société se concentre sur le domaine informatique, particulièrement dans le service outsourcing pour le marché japonais et le marché à domicile. Dans son élan de développement, la société est en train de chercher le chemin afin de participer au marché européen avec des solutions et des productions techniques de hauts niveaux. Ayant des bonnes expériences avec les ressources libres (SugarCRM, CMSMS, vtiger, Apache LAMP, etc.) et des technologies modernes (HTML5, PHP/Javascript) et des plateformes (Microsoft, Java, ios, 7

8 Android), l orientation en terme de développement est tourné vers des services informatiques principaux : - Développement de Logiciels personnalisés ; - Développement d Applications Mobiles ; - Externalisation de Logiciels (Software Outsourcing) ; - Maintenance de Logiciels. 1.3 Projet du jeu vidéo Jingci Jingci est un jeu du type stratégique qui a été inventé par un auteur japonais il y a quelques années. C est un jeu du type jeu d échecs simulant le football avec deux adversaires qui essayent toujours de marquer le but l un de l autre adversaire. Actuellement, ce jeu n est pas connu au Japon ou dans le monde d entier. Pour intéresser les joueurs aux caractéristiques et au potentiel, notre client décide de développer un jeu vidéo sur la plateforme mobile, particulièrement sur ios et sur Android. Pour ce fait, la difficulté de l intelligence artificielle du programme est une grande épreuve, mais c est aussi une occasion pour la société Newwave de surmonter cette épreuve pour prouver au client son efficacité. Ce stage a été effectué dans le cadre du projet Jingci, plus précisément dans le développement du noyau de l intelligence artificielle. 2. Motivation et objectif du stage Jingci est un nouveau jeu qui est maintenant en période d être commercialisé. La motivation principale du projet est d élargir l utilisation du jeu. Autrement dit, on veut populariser le jeu Jingci. C est pourquoi on construit la première version du jeu vidéo ayant pour le but de présenter les règles, les contraintes et comment on joue à ce jeu pour montrer les intérêts du jeu. Le défi du projet est que l on doit construire un programme complet qui doit avoir le noyau ayant capacités humaines : - Capacité de réagir : déplacer les pièces d échecs suivant les règles ; - Capacité de réfléchir : calculer les mouvements les plus dangereux (qui peuvent vaincre l utilisateur). Le processus de développement de ce jeu vidéo se compose en plusieurs étapes: analyse des exigences, conception, implémentation de GUI, implémentation de noyau IA, intégration du noyau IA au GUI et déploiement. L objectif principal du stage se concentre sur l implémentation du noyau d intelligence artificielle. Pour réaliser ce but, on doit passer plusieurs étapes: - Evaluer et choisir une plateforme utile de développement de jeux vidéo pour périphériques portables ; - Evaluer et choisir une approche efficace de la programmation du jeu d échecs ; - Implémenter d un noyau IA qui a la capacité de réfléchir ; - Tester et améliorer le noyau IA ; - Participer à la publication du jeu sur la plateforme mobile (l intégration au GUI, le déploiement sur ios et sur Android, etc.). 3. Contribution En participant au développement d un projet complet, à partir de zéro jusqu à un programme accompli, mes contributions vont se porter sur plusieurs points : 8

9 Premièrement, j ai effectué une étude des langages et des moteurs de développement de jeux vidéo. Deuxièmement, j ai étudié des solutions et des algorithmes actuels dans le domaine de programmation de jeux d échecs. Troisièmement, j ai implémenté le noyau IA. Finalement, j ai collaboré avec notre équipe pour intégrer notre noyau IA à notre GUI et puis déployer une application complète. 9

10 Chapitre 1 État de l art : Épreuves générales de la programmation de jeux d échecs Dans ce chapitre, on va faire des études sur les approches connues dans le domaine de programmation de jeux d échecs. 1. Représentation des données Représentation des données est une mission importante de développement de jeux vidéo car si on peut bien modéliser le monde du jeu par des types utiles de données, le programme peut être marche efficacement et peut économiser mieux les ressources du système. Pour un jeu d échecs, la représentation de données concerne directement la représentation du tableau de jeu, des pièces de jeu et des états de jeu. Dans cette partie, on va concentrer sur l analyse de la représentation de tableau de jeu car elle influence indirectement la présentation des caractères de pièces et d états du jeu. Cette partie va aborder le problème suivant : comment le tablier de jeu est représenté dans la mémoire du programme. La structure de données qui présente le tableau de jeu et les pièces, est un facteur important pour l efficacité de traitement du programme. En réalité, il y a deux approches principales de la représentation de données qui sont les plus populaires du domaine de programmation de jeux d échecs : - Utiliser le tableau en une ou deux dimensions (le tableau d entier ou le tableau de bits) pour présenter les carrés et les pièces - Utiliser une liste des carrés ou des pièces Chaque approche a ses avantages et ses inconvénients, par exemple, pour une liste de carrés, l espace de mémoire utilise pour le stocker est plus petite que pour un tableau, mais en utilisant la liste (liste chaînée, etc.), on perd plus d efficacité pour examiner tous les carrés.

11 2. Gestion des mouvements 2.1 Génération des mouvements Le noyau de jeu a une autre mission. C est qu il doit générer tous les mouvements légaux du jeu - les mouvements possibles (pour l équipe rouge et pour l équipe bleue) - pour que l on puisse comparer et choisir le meilleur mouvement. Si le programme n a pas la capacité de générer tous les mouvements légaux, alors, pendant le processus de détermination, le programme choisit un mouvement illégal qui provoque une erreur ou il ne peut pas choisir le meilleur mouvement. Figure 1-1 Arbre de positions du jeu Tictactoe [8] On peut observer la génération de mouvements par l illustration ci-dessus : pour le jeu tictactoe, à partir d une position au début, on peut avoir un arbre de toutes positions possibles en fin. La mission du noyau IA pour la génération de mouvements est de construire l arbre complet à partir d une position du jeu. 2.2 Evaluation de mouvements Le programme a la capacité de générer les mouvements et aussi, il doit avoir capacité de comparer les mouvements pour choisir un parmi ceux-ci. Pour le faire, on doit considérer d une équation d évaluation de mouvement. Autrement dit, on doit chercher une méthode d évaluer le mouvement pour que l on puisse connaitre quel est le meilleur mouvement. Pour le Jeu d échecs, si on considère que le roi a un poids de 100, la dame a un poids de 20, le fou a un poids de 8, le tour a un poids de 7, le cavalier a un poids de 6 et le pion a un poids de 1. Alors, on peut calculer l heuristique pour une position de jeu par une équation simple f(h) de la somme de poids comme ci-dessus. f(h) = poids(pièces noires) poids (pièces blanches) 11

12 Par exemple dans l illustration ci-dessous [15], on voit que : Figure 1-2 Exemple de l évaluation de l heuristique [15] Les pièces de l équipe Noir : le roi, la dame et 3 pions Les pièces de l équipe Blanche : le roi, le tour, le cavalier et 2 pions Si on assigne une valeur de poids pour chaque pièce, on peut calculer la valeur de la fonction d évaluation simple par la somme de poids des pièces sur le tablier : f(h) = (100*1 + 20*1 + 1*3) (100*1 + 7*1 + 6*1 + 1*2) = 8 La valeur de f(h) est de 8 > 0, cela veut dire que l équipe noire a plus de supériorité que l équipe blanche. Grace à cette fonction d évaluation, quand on évalue une position, on peut comparer la supériorité des positions pour que l on puisse choisir la plus grande. En réalité, l équation d évaluation d une position n est pas simple que celle-ci. Dans le cas particulier, on doit choisir plusieurs facteurs pour calculer et évaluer la fonction f(h). 2.3 Recherche de mouvements Pour un jeu d échecs, le nombre de mouvements est énorme. Le choix d une solution dans un espace géant de recherche est une tâche très compliquée. En combinant l équation d évaluation, on doit chercher une stratégie de recherche efficace pour que la réflexion du programme devienne assez rapide et faisable. Pour la modélisation d espace de jeu, on peut considérer les mouvements du jeu comme l arbre de décision. À partir de la racine le mouvement d initiation du jeu, chaque nœud fils de l arbre manifeste de mouvements possibles pour réagir contre le nœud parent. Par conséquent, le fait d examiner chacun des nœuds d un jeu d échec est impossible. On doit restreindre l espace de recherche pour laisser passer les mouvements évalués faibles. 12

13 Nous abordons ici les jeux de type «Somme nulle» (Zero-sum) : il s agit des gains d un joueur qui est l opposé des gains des autres joueurs. Autrement dit, si un joueur a gagné, tous les autres ont perdus. Pour le jeu de deux à somme nulle, il y a deux adversaires, l un joueur qui gagne les gains positifs et par contre, l autre qui gagne les gains négatifs. La somme totale de gains est nulle. Quelques jeux à deux à somme nulle connus dans le monde sont : le jeu d Echecs, le jeu d Echecs chinois, le Tictactoe, le Go, l Othello, le Godoku : Figure 1-3 Jeux de deux à somme nulle: Echecs[16], Echecs chinoises[17], Tictactoe[18], Go[19], Othello[20], Gomoku[21] Les jeux d échecs sont les jeux du type somme nulle : - Dans le cas où il n y a pas de vainqueur, ils font partie nulle. - Dans le cas, il y a un vainqueur, il gagne les gains +G, par contre, le perdant gagne les gains G, la somme est nulle. Les jeux d échecs ont un caractère unique : car on fait la guerre alors pour le joueur ami, on essaye toujours de chercher le mouvement qui entraine les gains les plus positifs et au contraire, les gains les plus négatifs pour le joueur ennemi. Grace à ce caractère, on peut chercher une solution pour mesurer le poids de chaque mouvement par les gains. En fait, les gains d un jeu d échecs sont de victoire ou d échec. Si on considère le gain de victoire est de 1, alors le gain d échec est de -1, le gain d un match nul est de 0. Mais pour un jeu complexe, il y a beaucoup de mouvements qui peuvent être exécutés avant le finit du jeu, alors, si on mesure les gains seulement par -1, 0, 1, c est difficile d évaluer les poids des mouvements intermédiaires. L un des problèmes de la programmation du jeu d échecs est de chercher une façon efficace d attribuer le poids pour un mouvement qui va être abordé plus précise dans la partie «Solutions proposées». Pour le probleme de recherche de mouvements, il y a des œuvres [1], [2], [3], [5], qui abordent des algorithmes, par exemple MiniMax, NegaMax, AlphaBeta, etc. Et dans le cadre de ce stage, je vais 13

14 presenter l algorithme Minimax et l AlphaBeta et leur application dans notre projet dans les parties suivantes. 3. Algorithmes de recherche (Minimax, Alpha-Beta) Dans [1], Stuart Russell et Peter Norvig ont présenté de facon précisée les algorithmes Minimax et AlphaBeta et on peut rappeler des caractères principaux de ces deux algorithmes. 3.1 Algorithme Minimax L'idée fondamentale, appliquée dans tous les logiciels d'échecs, est qu'il faut faire parcourir par le programme un espace de recherche constitué des positions futures potentiellement atteintes par les joueurs pour anticiper la meilleure séquence à jouer. On modélise cet espace de recherche avec des techniques issues de la théorie des graphes (arbres, graphes sans cycles, etc.) et on utilise des systèmes de production pour générer leurs états (les positions) et les transitions entre les états (les coups permettant de passer d'une position à l'autre). Le pseudocode de l algorithme MiniMax [9] : Figure 1-4 Illustration de l algorithme Minimax [9] minimax(level, player) // player may be "computer" or "opponent" if (gameover level == 0) return score children = all legal moves for this player if (player is computer, i.e., maximizing player) // find max bestscore = -inf for each child score = minimax(level - 1, opponent) 14

15 if (score > bestscore) bestscore = score return bestscore else (player is opponent, i.e., minimizing player) // find min bestscore = +inf for each child score = minimax(level - 1, computer) if (score < bestscore) bestscore = score return bestscore // Initial Call minimax(2, computer) La méthode générale est la suivante : à partir d'une position (racine de l'arbre) on génère tous les coups possibles pour le programme. Puis à partir de ces nouvelles positions (niveau 1) on génère toutes les réponses possibles pour l'adversaire (niveau 2). On peut alors recommencer l'opération aussi longtemps que le permet la puissance de calcul de l'ordinateur et générer les niveaux 3, 4,..., n. Figure 1-5 Algorithme Minimax pour trouver la solution de Tictactoe [8] Le facteur de branchement dans une partie d'echecs équilibrée étant d'environ 30 et le nombre de coups environ 40, on ne peut générer, dans un temps limité, la totalité de l'arbre. On doit donc limiter la profondeur de la procédure. Une fois atteinte cette profondeur, les feuilles (par opposition à la racine) 15

16 de l'arbre ainsi construit sont évaluées par une fonction d'évaluation. Le programme peut, à partir de la racine, jouer le coup de niveau 1 qui lui garantit le gain maximal contre toute défense de son adversaire, en supposant que celui-ci utilise également une stratégie optimale, c'est-à-dire qu'il joue lui-même à chaque coup le gain qui lui garantit le gain maximal contre toute défense. Ce mécanisme est appelé principe Minimax. 3.2 Algorithme Elagage Alpha-Beta (Alpha-Beta pruning) L algorithme d élagage Alpha-Beta conduit à une économie de temps de calcul et mémoire, en renonçant à l évaluation des sous arbres dès que leur valeur devient inintéressante pour le calcul de la valeur associée aux nœuds père de ces sous arbres. Pour réaliser l algorithme Alpha-Beta on va associer à chaque nœud n de type MAX une valeur auxiliaire appelée Alpha(n) égale à la valeur de f(n) si n est un nœud terminal, ou à la meilleur valeur de ses fils trouvée jusqu`ici; une valeur Beta(m) pour les nœuds MIN, valeur égale à f(m), si m est un nœud terminal, ou à la valeur minimum de ses successeurs trouvés jusqu`ici Figure 1-6 Algorithme Alpha-Beta [9] Dans les cas généraux ci-dessus, on peut voir que l élagage Alpha-Beta peut nous aider à couper des sous branches inutiles pour diminuer l espace de recherche. Le pseudocode de l algorithme Alpha-Beta [9] : alphabeta(level, player, alpha, beta) //player may be "computer" or "opponent" if (gameover level == 0) return score children = all valid moves for this "player" if (player is computer, i.e., max's turn) // Find max and store in alpha for each child score = minimax(level - 1, opponent, alpha, beta) if (score > alpha) alpha = score if (alpha >= beta) break; // beta cut-off 16

17 return alpha else (player is opponent, i.e., min's turn) // Find min and store in beta for each child score = minimax(level - 1, computer, alpha, beta) if (score < beta) beta = score if (alpha >= beta) break; // alpha cut-off return beta // Initial call with alpha=-inf and beta=inf alphabeta(2, computer, -inf, +inf) 17

18 Chapitre 2 Épreuves du projet Ce chapitre vise à présenter concrètement les exigences du jeu : les exigences fonctionnelles et les exigences non-fonctionnelles. Ensuite, on va évaluer les difficultés prépondérantes pour la réalisation. 1. Description générale du jeu Jingci est un jeu stratégique simulant le football. Il se compose d un tableau de 9x9 cellules qui représente le terrain de jeu. Comme au football, on est divisé en deux équipes les rouges et les bleus et chacun a 8 joueurs et un gardien de but. L objectif des adversaires est d essayer de marquer le but en déplaçant les joueurs, le ballon et les gardiens. Pour atteindre cet objectif, les utilisateurs doivent choisir une stratégie par eux-mêmes. L utilisateur est maintenant un entraineur qui va décider comment son équipe joue au football : sur un terrain d herbes virtuelles sur l écran d un appareil portable, on va déplacer les joueurs dans leurs portées de courses ou passer le ballon à un autre joueur ou tirer le ballon au but pour terminer le match si possible. L intérêt du jeu est qu il y a plusieurs stratégies pour jouer : stratégie de défense, stratégie d offense, défense passive, défense active ou offense passive ou offense active, etc. De plus, un jeu vidéo ne peut pas simuler totalement le football donc on doit proposer des règles et des contraintes pour éviter les méthodes négatives de jouer et augmenter les intérêts d un jeu sportif. Dans

19 le cadre de ce jeu, on applique des règles du football mais on les modifie pour adapter l environnement du jeu. 2. Spécifications d exigences fonctionnelles Pour obtenir un programme avec succès, on doit analyser attentivement le jeu et puis, définir toutes les exigences concrètes du côté technique ou du côté utilisation. Tout d abord on va définir tous les termes et les règles du jeu Jingci. Les termes et les caractéristiques : Le terrain de jeu (le tablier de jeu, l échiquier) : c est un tableau de taille 9x9 carrés comme l illustration suivante : Figure 2-1 Terrain du football [13] 19

20 Surface de réparation ligne médiane colonne médiane Surface de but Figure 2-2 Tablier de jeu Les pièces d échecs : Il y a 3 types de pièces : Ballon, Joueur, Gardien de but (Player, Goal Keeper, Ball) Figure 2-3 Pièces de jeu: Ballon, Joueurs, Gardiens (de goal) La portée de course : Chaque pièce peut se déplacer dans une zone de 2 carrés. Elle ne peut pas passer ou aller à un carré occupé. Figure 2-4 Portée de courses: pour le ballon et pour le joueur De plus, pour chaque type de pièce, il y a les contraintes suivantes : 20

21 Le ballon : la pièce Ballon peut aller à tous les carrés en direction déterminée par le point de vue de la pièce Joueur adjacent. Figure 2-5 Portée de pièce et de ballon selon le cas Le gardien de goal : La pièce Gardien (de but) peut aller à tous les carrés dans la surface de réparation. Le joueur : la pièce Joueur peut aller à tous les carrés sur le tableau sauf que sur la surface de but. Le PASS : c est un droit spécial. Il s agit de la passe du ballon. Normalement on peut passer ou tirer le ballon sur un segment de 2 carrés. Si on applique le droit PASS, après que le Joueur P1 passe le ballon au Joueur P2 alors le P2 peut encore passer ou tirer le ballon plus d une fois. Le BOUND : c est un droit spécial. Il s agit de la passe au mur du ballon : le ballon est tiré au mur et puis, il est réverbéré en direction inverse. Dans ce jeu, on peut utiliser le droit BOUND pour la ligne de but et la ligne de touche. La répétition : on appelle la répétition du jeu quand chaque équipe déplace la même pièce pendant 3 mouvements. Autrement dit, pour chaque côté du jeu, on applique 3 mêmes mouvements. Dans ce caslà, on doit redémarrer le jeu. Figure 2-6 Illustration du cas de répétition de jeu L état du ballon bloqué : Différemment du football réel, le jeu vidéo peut provoquer des situations négatives : le ballon va dans un carré, ensuite, les pièces vont aux carrés autour du ballon. Enfin, on ne peut plus déplacer le ballon de toute façon. Les illustrations suivantes montrent quelques situations bloquées. Dans ce cas-las, on doit aussi redémarrer le jeu. 21

22 Figure 2-7 Illustration du cas de ballon bloqué 1 Figure 2-8 Illustration du cas de ballon bloqué 2 Le redémarrage du jeu : pour le redémarrage du jeu, le ballon doit être déplacé sur le carré du centre. Dans le cas où il existe déjà une pièce au carré du centre, alors l équipe à laquelle la pièce appartient doit la déplacer à un autre carré disponible avant de déplacer le ballon. Le but : On dit qu une équipe marque le but quand il peut tirer le ballon à un des carrés du but de l adversaire. La victoire et l échec : la fin d un match est quand une équipe marque le but et la victoire appartient à cette équipe. Au contraire, l échec est pour l autre équipe. Le mouvement : un mouvement du jeu est un mouvement d une pièce (ballon, joueur, gardien) La préparation : c est une étape de préparation de position pour chaque pièce. C est pour arranger la formation de l équipe avant le match. L initiation du jeu : L initiation est le premier mouvement du jeu. Pour cette étape, on doit suivre les contraintes suivantes : - Le ballon doit être sur le carré du centre - Le ballon peut aller à un des carrés dans la zone 5x5 autour de celui-ci - Le ballon peut être tiré même s il n y a pas de pièce Joueur adjacente - Les pièces Joueurs doivent ne pas être sur la ligne médiane et la colonne médiane - Les pièces Joueurs doivent ne pas être dans les carrés de but 22

23 - Le gardien de but doit être au carré I5 (pour l équipe bleue) ou A5 (pour l équipe rouge) - Chaque ligne doit avoir maximum 3 pièces - Les carrés autour d un goal doit avoir maximum 4 pièces (en comprenant la pièce Gardien de goal) Figure 2-9 Initiation du jeu L adjacence : les deux pièces sont adjacence si elles sont dans les deux carrés à côté. Autrement dit, les deux carrés ont ensemble au minimum un point. 3. Spécifications d exigences non-fonctionnelles Le temps de calcul : le temps de calcul d un mouvement, pour le noyau AI doit ne pas passer 10 secondes. Cette exigence concerne la capacité de réfléchir du noyau IA : Il a besoin du temps pour penser à un mouvement mais il ne faut pas être trop long pour éviter d ennuyer les utilisateurs. La multiplateforme : on veut jouer ce jeu sur plusieurs plateformes : PC, Web, mobile, etc. Mais on choisit les plateformes mobiles Android, ios pour la première période de déploiement. Pour le développement d une application sur plusieurs plateformes, la différence de matériel est un grand problème : comment un programme peut marcher de façon identique (le temps de réponse, l affichage d écran de taille différente, etc.). La difficulté (le niveau du noyau AI) : elle n est pas très forte pour éviter l ennui des utilisateurs. La facilité de compréhension à jouer : le jeu doit être facile à comprendre, on doit construire le GUI avec des boutons, des messages précis qui peuvent montrer l état du programme (par exemple, la confirmation de décision, l affichage du réfléchir de noyau IA, etc.) pour éviter de mal comprendre le jeu. 4. Capacité de réfléchir du noyau d Intelligence artificielle Jingci est un jeu de sport du type stratégique alors quand on prend en compte la capacité de noyau d IA, on doit analyser le jeu sous tous les côtés. Par exemple, il faut construire le jeu pour que les utilisateurs puissent jouer comme ils jouent avec un partenaire réel un humain réel. De ce côté, on peut aller analyser la spécification d un humain réel quand il s agit de football. Un humain réel peut avoir des 23

24 calculs, des plans d actions actives qui peuvent être variées et dépendants le contexte actuel du jeu. L utilisateur, maintenant, joue au rôle d un entraineur d équipe : il doit disposer la formation de son équipe : Son équipe va jouer avec combien d attaquants? Son équipe va jouer avec combien de défenseurs? Quelle est la stratégie utile de l équipe pour chaque match? De plus, dans la période d analyse et de conception du jeu, on doit aussi prendre en compte la capacité d élargir le jeu. Cela veut dire que, pour au moment de la conception, on va aussi se préparer pour un jeu avec plusieurs niveaux de difficultés. Pour répondre à ces questions, le noyau IA du jeu doit avoir la capacité d organiser l équipe, de choisir la façon dont il joue : comment il peut offenser? Comment il peut défendre? Autrement dit, le noyau IA doit avoir capacité de réfléchir et de réagir comme un humain. 5. Difficultés de calcul En analysant le jeu, on doit être en face au problème de limitation du matériel sur la plateforme mobile. En sachant que le matériel se développe rapidement, mais même si pour les plateformes originales (les ordinateurs optimisés, les ordinateurs fixes, etc.), le calcul de recherche du chemin optimisé est toujours complexe. On doit calculer pour choisir une solution parfaite dans un nombre gigantesque de solutions possibles. Des études de programmation de jeux d échecs ont été réalisées [12], [13], [14], [15], [16]. Les auteurs ont presentés des estimations de la grandeur de calcul pour les jeux d échecs. Par exemple, suivant l étude de Shannon [12] (le nombre Shannon) pour le Jeu d Echecs, il y a environ en moyenne 40 mouvements pour chaque match. Cela veut dire que l on a 40 mouvements pour le Noir et 40 mouvements pour le Blanc. De plus, on estime qu il y a environ 30 mouvements légaux possibles à choisir pour chaque mouvement. Alors, on a environ (30^40)*(30^40) ~ 30^80 ~ 10^120 mouvements possibles. Pour le jeu d échecs Jingci, on peut calculer brièvement les calculs possibles : Il y a 19 pièces (1 ballon, 2 gardiens de but, 16 joueurs) Chaque pièce peut aller à environ 5x5 carrés = 25 carrés En fait, le calcul d un mouvement du jeu Jingci n est pas égal à 19*25 = Pour le gardien de but : le nombre maximum est de 3*5 carrés (car il est limite dans la zone de goal) - Pour le ballon : le nombre maximum est de 5*5 - Pour les joueurs : le nombre maximum est de 16*5*5 En théorie, le nombre maximum de solutions est de 3*5 + 5*5 + 16*5*5 = 440 Mais il faut faire attention que, le nombre 440 ci-dessus a des positions qui se répètent. - Le tableau de jouer est de 9*9 = 81 carrés. - Le nombre de pièces : 19 Car les pièces existent toujours (il y a pas de règles qui permettent de capturer les pièces comme le jeu d échecs), alors : - Le nombre de carrés disponibles : = 72 24

25 Le nombre total de solutions possibles pour un mouvement maintenant est plus serré, environ de Le nombre de calcul pour le profondeur N = (72) N - Par exemple, pour le profondeur N = 1 : il y a 72 solutions possibles - Pour le profondeur N = 2 : il y a 72*72 = 5184 solutions possibles - Pour le profondeur n = 3 : il y a 72*72*72 = solutions possibles On peut voir que le nombre de solutions est de taille spectaculaire. On peut essayer de prendre le nombre moyen de carrés pour chaque pièce sur l échiquier : Nmoyen = 81 / 19 = 4 carrés On considère que, pour chaque mouvement d un adversaire, on a environ (9 pièces + 1 ballon)*4 = 40 carrés. Cela veut dire que l on peut choisir un des 40 solutions possibles. Autrement dit, pour l arbre de jeu, le nombre de branches est environ de 40. Dans le cas où on utilise le nombre moyen de 40 solutions possibles pour chaque mouvement, alors, on a le nombre de calcul N = (40) N. Pour éviter le phénomène d explosion combinatoire, on peut seulement chercher les solutions pour quelques premiers niveaux de profondeur de l arbre du jeu car les appareils portables ont besoin de long temps pour trouver une solution positive. Devant ces difficultés, on doit chercher les approches qui sont les meilleures pour le calcul de plusieurs types d appareils. Dans les parties suivantes, on va discuter des solutions pour diminuer l espace de recherche et des tactiques de jouer pour le noyau IA. 25

26 Chapitre 3 Solutions proposées Dans le paragraphe de spécifications des exigences non-fonctionnelles, les demandes présentées du projet de la réalité sont très serrées : - le temps de réponse n est pas trop long (plus c est rapide mieux c est) ; - le programme peut bien fonctionner sur plusieurs types d appareils portables ; - l intelligence n est pas très forte et aussi n est pas très stupide. On sait que toutes les exigences fonctionnelles doivent évidemment être satisfaites. Mais les exigences non-fonctionnelles sont vraiment les facteurs les plus importants qui influencent directement le fonctionnement du programme et en fait les choix de solutions. On ne peut pas toujours chercher une solution absolue car dans la plupart de cas, il fait beaucoup de temps de traitement et perd aussi beaucoup de performance et de ressources. Notamment pour les téléphones portables de générations précédentes (qui ont moins de l espace de stockage et de mémoire vive), la considération de ces demandes va faire que le jeu peut être exécuté ou non. Alors, en face des difficultés réelles, on doit proposer des applications de l algorithme Alpha-Beta et des tactiques de football (pour diminuer l espace de recherche) et optimiser l équation d évaluation (pour augmenter l efficacité de calcul) qui vont être présentées aux suivants.

27 1. Arbres de positions A cause des difficultés expliquées dans les parties précédentes, on cherche des approches faisables pour construire une application de bonne qualité. Pour les applications mobiles, le calcul de la profondeur de 1 en appliquant Minimax est faisable, néanmoins pour le niveau de profondeur de 2, ou 3 et plus, la recherche des nœuds de l arbre sont impossible dans une période acceptable. Alors, on doit chercher des limitations pour couper les branches inutiles. On a abordé la difficulté de calcul dans la partie précédente et pour ce jeu, pour chaque mouvement, on peut calculer environ des milliers fois de l équation heuristique. Si on illustre le jeu par un arbre de décision, alors, on a un l arbre en général comme celui ci-dessous. Mais le facteur de branchement maintenant n est pas de 3 comme l arbre ci-dessous, on doit imaginer d un arbre de 40 branches pour chaque niveau de profondeur (il faut faire attention que le premier mouvement a maximum de 25 sousbranches car la règle de l initiation, pour les mouvements suivants, chaque nœud a maximum de 40 de sous-branches le nombre moyen de solutions): Figure 3-1 Elagage Alpha-Beta [14] L arbre de positions se compose de 2 composants : la racince et les nœuds. Un nœud dans notre arbre est une position du tablier d un match. Autrement dit, un nœud est un etat actuel du jeu pendant un match particulier. En fait, la racine est un nœud special : le nœud d initation. Pour representer l arbre de positions, on propose la structure d un nœud JingciNode qui se compose des attributs : - La liste des pieces - La matrice de positions des pieces sur le tablier - La matrice de couleurs des pieces pour distinguer des pieces (numero, couleur de chaque piece) - L etat de jeu : o Le tour du jeux o Le ballon est blocqué ou non o L equipe noir a utilisé le droit Bound ou non o L equipe blanc a utilisé le droit Bound ou non o L equipe noir a utilisé le droid Pass ou non o L equipe blanc a utilisé le droid Pass ou non 27

28 o Est-ce que on a executé un mouvement répetitif Chaque attribut a un rôle particulier et son importance différente pour calculer l heuristique d un mouvement. On doit utiliser ces attributs de façon flexible pour que le calcul de l heuristique pour chaque mouvement ne soit pas très complexe et soit assez efficace. Pour examiner l arbre de positions, si on utilise l algorithme Minimax, on doit calculer et comparer tous ses nœuds. Ce fait rend un gros problème de la performance du programme car notre arbre est vraiment énorme. On doit chercher un autre algorithme qui nous permet de couper intensément les branches inutiles. Dans le cas de Jingci, on choisit l algorithme Alpha-Beta qui a deux seuils alpha et beta. Ces seuils sont mis à jour pour chaque fois quand on calcule l heuristique d un mouvement. Pour faciliter comprendre le mécanisme de l Alpha-Beta, on va analyser le sous arbre de A ci-dessus : Figure 3-2 Exemple de la coupure Alpha [14] On voit que le nœud A est du type MAX (cela veut dire que l on va choisir la valeur du nœud ayant la valeur maximum parmi ses fils (B et C). Pour le nœud B (du type MIN), on va choisir la valeur minimum parmi ses fils (c est de 5). Pour le nœud C (du type MIN), on va choisir la valeur minimum parmi ses fils (D, E, F). Sachant que l on a examiné tous les nœuds A, B, C, D, E et la valeur de B(5) > C(4) > E(4). Alors, on est sûr que l on n a pas besoin d examiner le nœud F car : - On va choisir A par la valeur maximum entre B et C - Pour choisir C, on va choisir la valeur minimum parmi D, E, F, même si on ne sait pas F, on sure que F <= E (F <=4) C <= F <= 4 A cause de ces deux conditions, on voit que la valeur de A est la maximum de deux nœuds B(5) et C(<=4) A = B = 5 mais on ne doit pas examiner le F (et sous arbre de F s il existe). C est l exemple simple pour un petit arbre, pour un grand arbre de positions d un jeu d échecs, le nombre des nœuds inutiles comme le nœud F ne sont vraiment pas petit. Le mécanisme de la coupure Beta est presque pareil, mais pour appliquer calculer pour les nœuds du type MIN. En appliquant l élagage Alpha-Beta, on peut diminuer efficacement l espace de recherche. Comme dans l image illustrée [11] (figure 15 ci-dessus), les branches de l arbre sont coupés car l évaluation de ces branches n est pas nécessaire. En réalité, pour notre arbre de positions pour un jeu d échecs comme 28

29 Jingci, chaque niveau de profondeur peut avoir environ 40 sous arbres. Alors l élagage Alpha-Beta est une solution efficace pour éviter d examiner l arbre d entier. 2. Equation d évaluation D un autre côté, on doit considérer aussi de l heuristique d un mouvement d une position du jeu. Car dans le processus de réflexion de ordinateur, on doit parcourir toutes les solutions possibles, alors, la fonction d évaluation pour calculer l heuristique (qui peut bien séparer la meilleure solution des autres) est plus simple, la meilleure. Dans le domaine de la programmation de jeux d échecs, on a des facteurs pour évaluer une solution, par exemple de la position des pièces, des poids des pièces ou des pièces existants encore sur le tableau du jeu (dans quelques jeux on peut tirer les pièces de l adversaire et celui qui a plus de pièces que l autre, a l avantage). Par exemple, pour le jeu d échecs, le poids de roi est plus grand que de la dame (qui est plus grand que du fou, du tour, du cavalier et du pion). Le jeu Jingci n a pas de règles qui permettent à l utilisateur de tirer les pièces de l adversaire alors, pour notre jeu, on peut analyser ses caractéristiques pour que l on puisse choisir entre eux les meilleurs facteurs qui peuvent nous aider à évaluer le mouvement. Les facteurs qui peuvent influencer l évaluation du jeu seraient : - La distance entre les pièces Joueurs et le ballon - La distance entre les gardiens de goal et le ballon - La distance entre le ballon et le goal - Les droits possibles (le PASS et le BOUND) Figure 3-3 Facteurs d évaluation d une position de jeu Pour calculer l heuristique pour une position, on considère que le noyau IA et l équipe Noir, l adversaire est l équipe Blanc et on définit les facteurs précises : 29

30 - La distance minimum entre le ballon et le carré de goal Noir le plus proche : d_minbgoal - La distance minimum entre le ballon et le carré de goal Blanc le plus proche : d_minwgoal - La distance minimum entre le ballon et la pièce Joueur Noir la plus proche : d_minbb - La distance minimum entre le ballon et la pièce Joueur Blanc la plus proche : d_minbw - La distance minimum entre le ballon et la pièce Gardien de goal Noir la plus proche : d_minbg - La distance minimum entre le ballon et la pièce Gardien de goal Blanc la plus proche : d_minwg - Le droit Bound est disponible pour le Noir : bbound - Le droit Bound est disponible pour le Blanc : wbound - Le droit Pass est disponible pour le Noir : bpass - Le droit Pass est disponible pour le Blanc : wpass Pour la difficulté la plus simple, l équation d évaluation est f(h) : f(h) = ( 10^5*d_minBGoal - 10^5*d_minWGoal + 10^3*d_minBB 10^3*d_minBW + 10*d_minBG 10*d_minWG + bpass wpass + bbound - wbound) D ici, les poids des facteurs sont différents. Par exemple, on peut voir que le facteur d_minbgoal(d_minwgoal) et le facteur d_minbb(d_minbw) sont plus importants que le facteur d_minbg(d_minbb) car si on imagine une situation où l équipe Noir a le Ballon. Le Ballon est très proche de goal de l équipe Blanc (d_minwgoal est plus petite, d_minbgoal est plus grande). En ce moment-là, s il y a un Joueur Noir qui est proche du Ballon(d_minBB est plus petite), il peut plus facilement tirer le Ballon au goal Blanc. Alors, si la valeur d_minwgoal et d_minbb sont petites, elles manifestent la capacité de marquer le but plus clairement que la valeur d_minbg. On donc assigne le poids de facteurs d_minbgoal (ou d_minbb) une valeur qui est plus grande que d_minbg pour que le noyau IA peut calculer l heuristique qui a plus de la supériorité pour l équipe Noir. 3. Stratégies de décisions L idée d ici est que l on applique des tactiques du jeu football pour le noyau IA car on sait que elles sont très efficaces en réalité. De plus, si le noyau IA peut jouer avec ces tactiques, il peut manifester la capacité de réaction humaine naturelle. Dans la période de réalisation, on propose des tactiques faisables pour le noyau IA ci-dessous. 3.1 Tactique défensive Dans le football, on peut voir que l équipe qui garde le ballon peut attaquer activement. L autre équipe doit chercher des approches pour bien défendre. L équipe qui est dans l état de danger doit prendre en compte toutes les situations possibles. Sa défense doit être active en déplaçant les pièces de joueurs ou le gardien de but aux positions qui sont les meilleures pour empêcher l attaque d adversaire. Dans ce cas-là, les pièces attaquants sont moins utiles que les pièces qui sont plus proches du ballon des pièces d adversaire. 30

31 Figure 3-4 Tactique défensive 3.2 Tactique offensive Au contraire, quand on attaque le but de l adversaire, on peut laisser passer les défenseurs qui sont loin du ballon ou loin du but de l adversaire car la probabilité de ces pièces pour qu elles puissent marquer le but est beaucoup moins que les attaquants. Dans ce cas-là, on peut diminuer le calcul d un mouvement en évitant de calculer les mouvements possibles pour le gardien de but et pour les pièces les plus loin du goal d adversaire. Et on peut concentrer au calcul de mouvements d attaque. Dans un autre cas urgent où l adversaire peut marquer le but dans un ou deux mouvements, la stratégie peut être plus précise : on doit calculer seulement pour les pièces qui sont les plus proches du ballon. Figure 3-5 Tactique offensive 31

32 En appliquant ces tactiques précises, on peut augmenter les réactions rapides et diminuer le calcul qui est moins efficace. 32

33 Chapitre 4 Réalisation et résultats 1. Ingénierie de développement 1.1 Méthode de développement De nos jours, les méthodes agiles sont de plus en plus développées. Elles manifestent des avantages pour le développement des bons logiciels de façon rapide et efficace. Apres avoir évalué les exigences du projet, on détermine d application de méthode Agile et Programmation Extrême XP programming en développant. En fait, on organise notre équipe de 4 personnes : un développeur de GUI, 2 développeurs de noyau et le client qui est responsable d exigences. Pour la programmation, parce que le module noyau est sensible à la performance, on a deux personnes qui appliquent la méthode programmation en binômes pour faciliter la capacité de refactoring du code et l amélioration de performance. Du côté de gestion de projet, on a déterminé plusieurs sprints avec les backlogs précises :

34 Figure 4-1 Diagramme Gantt du projet Jingci - Sprint1 : le noyau IA de base - Sprint2 : le noyau amélioré et le GUI - Sprint3 : l intégration et l amélioration - Sprint4 : le déploiement et l adaptation de changement 34

35 Figure 4-2 Plan de réalisation du Jingci Dans le sprint 1, on se concentre au développement d un programme simple qui aura implémenté les règles et les actes basiques de noyau IA. Dans le sprint 2, on améliore le noyau IA en améliorant l algorithme de calcul de poids et aussi de recherche de mouvement. En parallèle, on commence à développer le GUI du jeu. Dans le sprint 3, on fait l intégration du noyau IA au GUI de Jingci Dans le sprint 4, on évalue le programme et puis, on déploie notre produit sur le store d Android et d ios. D un autre côté, on continue à adapter le programme avec le changement d exigences. 1.2 Langage de programmation et plateformes On a choisi le langage C++ et la plateforme Cocos2d-x. Langage de programmation est un problème direct du développement. Dans notre cas, on développe un jeu pour le but de déploiement sur plusieurs plateformes, alors le choix de langage est important pour diminuer l efficacité de transformation le codage. Pour les applications ios, normalement on développe sur C++/Object C Pour les applications Android, normalement on développe sur Java ou sur C++ Pour les ordinateurs traditionnels : il y a des langages : Java, Python, C/C++, C#.Net, etc. 35

36 En évaluant des caractéristiques précises [7], on a le tableau de comparaison des langages de programmation suivants : Déploiement stable Accès aux niveaux de bas Support Multimédia Performance du programme Performance de programmeurs Support OS Java C/C++ Flash Python.Net Oui Oui Oui Oui Oui Limite Fort Non support Bon Bon Moyen Fort Fort Moyen Fort Fort Meilleur Moyen Moyen Fort Moyen Faible Fort Fort Moyen Linux/ Windows/ Android Linux/ Windows/ Android/ ios Linux/ Windows Linux/ Windows Windows De nos jours, on peut aussi développer des applications sur la plateforme web (HTML/HTML5 et JavaScript). Le point fort de cette approche est qu elle peut déployer rapidement un jeu sur le web qui peut s adapter beaucoup facilement à plusieurs plateformes d OS. Par contre, le point faible des jeux basés sur la plateforme web est qu elle ne peut pas satisfaire les applications qui demandent des ressources de calcul (le mémoire vive, la performance de processeur). Après avoir analysé les points forts et les points faibles de langages de programmation, nous avons choisi le langage C/C++ en utilisant la plateforme Cocos2d-x à cause des raisons suivantes : - On peut profiter les performances de Cocos2d-x pour traiter les images et les effets spéciaux de mouvement. - On peut déployer l application sur ios, sur Android et sur Windows/Linux sans difficulté : on a besoin juste de recompiler le code. Si on choisit programmer en Java pour la plateforme Android, on doit recoder le programme en Object-C pour déployer sur ios. En utilisant le langage C++, on peut programmer en appliquant des librairies générales de C++ et Object-C (il faut savoir que le langage Object C est base sur C++). Sur l OS Windows et Linux, on peut compiler sans cesse en utilisant le compiler gcc++. Cette approche peut diminuer l effort de transformation le codage de plusieurs langages. Le moteur de jeux Cocos2d-x Le moteur de jeux est un module essentiel pour les applications de jeu. Il existe plusieurs moteurs qui s'exécutent dans Android, et notamment des moteurs 2D et 3D qui sont des moteurs code en source libre ou commerciaux. C'est pourquoi il est difficile de faire migrer et de développer des jeux Android sur 36

37 la plate-forme d'architecture Intel. Cocos2d-x et Unity 3D sont les moteurs de jeux les plus utilisés sur les plates-formes Android. Cocos2d-x se base sur Cocos2d-iPhone et consiste en l extension des plates-formes prises en charge avec plusieurs langages de programmation partageant la même structure d'api. On peut profiter les avantages de Cocos2d-x de traitement de géométries et de physiques pour construire des applications mobiles. Par contre, pour la portion d applications sur multiplateforme, particulière sur Android, on peut utiliser l outil fourni par Android pour le programme en code native (comme C/C++ et langage assembly). Le mécanisme de fonctionnement d une application Android avec la librairie native est expliqué brièvement ci-dessous. Les applications NDK Android comprennent du code Java et des fichiers de ressources ainsi que du code source C/C++ et parfois du code assembleur. Tout le code natif est compilé dans une bibliothèque DLL (dynamic linked library) (fichier.so), il est appelé par Java dans le programme principal à l aide d un mécanisme JNI. 1.3 Gestion de code et de changement Structure de code du projet Figure 4-3 Architecture de l application NDK [12] On divise le codage du projet en deux modules principaux : le noyau IA et le GUI car on développe le jeu pendant plusieurs sprints et le module IA et le GUI sont développés en parallèle. Dans le dossier du projet on ajoute un dossier général pour les fonctions utiles partagées par les deux modules. La structure principale : 37

38 Outils utilisés : SVN, Google Drive, TestFlight Figure 4-4 Structure de codage du projet Jingci On utilise l outil de gestion du codage SVN. Grace à cet outil, on peut gérer des versions de codage du programme. Pour stocker les documents et les ressources communiqués entre notre équipe et notre client, on utilise le Google Drive. Pour le support de tests partagés entre notre équipe et le client, on utilise le TestFlight. TestFlight est un SaaS (Software as a Service), entièrement gratuit. Il permet de centraliser vos versions betas Android (.apk) et ios (.ipa) sur une plateforme web, pour ensuite être tester par vos clients. La procédure d utilisation est très simple : Création d une équipe dans TestFlight Envoi des invitations aux clients Publication de l application Tests. 2. Conception et Développement Cette partie aborde la conception du noyau de jeu : la conception de classes, et de l implémentation des algorithmes pour réaliser les solutions proposées. Pour présenter les composants du programme, on propose une classe Piece et ses sous-classes sont Player, Keeper et Ball (Joueur, Gardien de Goal et Ballon). On appelle notre noyau IA à partir du GUI du jeu, on propose une classe de l interface de programme GameAPI. Grace à cette classe, on peut accéder aux fonctions du noyau. 38

39 La classe JingciNode et NodeGenerator sont les composants les plus importants du noyau. Avec la classe JingciNode, on représente les états actuels du jeu : les statuts de droits utilises (le Pass, le Bound), les statuts de l initiation, de la répétition ou le tour du Rouge ou du Bleu. Avec la classe NodeGenerator, on peut implémenter les méthodes pour générer tous les mouvements possibles à partir d un mouvement. Grâce à ces mouvements générés, on peut chercher une bonne solution à utiliser. Les autres classes sont d autres types de données que l on utilise dans le programme. 2.1 Représentation des données Figure 4-5 Diagramme de classes du noyau IA Représentation du tablier La représentation du tableau de jeu est faite dans le codage de l espace du jeu qui se compose de 9x9 carrées. Pour la représentation du tableau de jeu, il y a des approches réelles : par un tableau de deux dimensions, par un tableau plat d une dimension de taille 81 d éléments, par un tableau de taille 9x9bits. Chaque approche a ses avantages et ses inconvénients. Pendant la réalisation du jeu, on a choisi d utiliser le tablier par un tableau d intégrer 9x9. Et aussi on utilise un tableau d integer 5x5 pour le masque de la portée possible de carrées d une pièce. 39

40 Figure 4-6 Représentation de tablier dans le mémoire Dans l image ci-dessus, on peut imaginer que le tablier du jeu est stocké dans le mémoire comme l image à gauche pour la position actuelle du jeu à droite. Les cellules occupées sont stockées par valeur de 1, par contre, les cellules disponibles ont la valeur de 0. (La couleur des pièces est stockée par un autre tableau d integer, mais il est important seulement pour la représentation sur le GUI, donc on ne décrit pas de son détail ici). Dans le cas où on veut connaitre les cellules disponibles pour le Joueur bleu numéro 5, le masque de taille 5x5 est comme une fenêtre en rouge. Mais quand on utilise un masque de 5x5 pour comparer avec le tableau de positions de pièces, il y a quelques cas dans lesquels la comparaison est incorrecte car la violation de l espace de mémoire. Imaginez que l on veuille avoir le masque du Gardien bleu. Maintenant, la fenêtre a une part hors du tablier et quand on accède à ces cellules du masque, cela provoque une erreur. Pour résoudre ce problème, on utilise plus d un tableau d intégrer de 13x13 d éléments. Pour quoi la taille de 13x13? On peut imaginer pour le cas nécessaire, on a besoin de plus de deux lignes et de deux colonnes qui ont la mission d éviter la violation de mémoire. Dans l image illustrée ci-dessous, les lignes bordées de valeur 1 sont les sentinelles. Quand on glisse le masque 5x5 jusqu au bord (vertical ou horizontal) du tableau, on peut reconnaitre la limite de tablier qui est gardée par nos sentinelles. 40

41 Figure 4-7 Représentation de tablier et des sentinelles L image ci-dessus est un tableau statique qui montre le tablier élargi avec les sentinelles (les lignes et les colonnes de valeur 1). Le tablier principal est dans la fenêtre rouge des carrées de valeur 0 qui montre que le ballon peut aller à toutes les carrées sur le tablier, sauf ceux que les sentinelles occupent. On a aussi défini un tableau statique pour montrer les positions possibles sur le tablier pour le Joueur. En correspondant avec la règle de ne pas aller au but, alors, les carrées du but (en rouge) ont la valeur de 1. Toutes les autres cellules ayant valeur 0 sont disponibles pour le Joueur. Ce tableau est le template pour vérifier la règle précédente pour chaque mouvement (et pour chaque fois on examine une solution possible). Figure 4-8 Représentation de la surface de but 41

42 Pour montrer les zones interdites de Gardiens de but, on déclare le tableau statique dans l image suivante. On peut voir que le gardien de chaque équipe peut aller aux carrées ayant la valeur 0 (dans la fenêtre rouge) de son terrain de jeu. Figure 4-9 Représentation de la zone de gardien de but Représentation des pièces Chaque pièce occupe une cellule de deux coordonnées : x et y. Chaque pièce a une ID : c est le numéro de pièce dans l équipe, pour le gardien de but, son ID est de G Chaque pièce a la couleur correspondante à la couleur de son équipe : bleue ou rouge Les fonctions internes d une pièce est de : - Vérifier si lesquels des cellules dans la portée de 5x5 sont disponibles - Vérifier si elle peut se déplacer à une autre cellule en examinant les règles suivantes : o Vérifier si le chemin de la cellule origine à la cellule objective est moins de 2 carrées o Vérifier si la cellule objective est autorisée pour cette pièce (les règles de limitations pour chaque type de pièce, par exemple pour les pièces joueurs, elles ne peuvent pas aller aux cellules du goal de deux équipes) Représentation d un mouvement du jeu On utilise la classe JingciNode pour représenter un mouvement. Les données de l état actuel du jeu sont aussi stockées pour chaque instance de JingciNode. Pour chaque mouvement, on gère : - la liste de pièces qui contient toutes les pièces des deux équipes - la matrice de couleur des pièces Figure 4-10 Classe Piece 42

43 - la matrice de position des pièces - les valeurs de drapeaux pour savoir le tour est pour quelle équipe - les drapeaux pour détecter l état du jeu, par exemple le jeu est bloqué ou un joueur a fait une situation de répétition, le statut de la violence de règles, etc. - les droits disponibles (pour savoir si le PASS et le BOUND sont déjà utilisés) Grâce aux informations stockées par un nœud du jeu, on peut calculer le poids d un mouvement pour comparer et choisir le meilleur mouvement possible. Figure 4-11 Classe d une position du jeu JingciNode 2.2 Implémentation de règles et de contrains Les règles et contraintes sont les éléments basiques de codage mais ils sont utilisés le plus souvent. Ils sont : - La vérification de distance de mouvement : on doit vérifier chaque fois une pièce s est déplacé. Suivant le règle de la limitation d un déplacement qui n est pas plus grand de deux carrées. Pour résoudre cette condition, on utilise un tableau de 5x5 carrées. Le carrée au centre se présente la pièce à déplacer. On extrait aussi un tableau de 5x5 carrées à partir du tablier de jeu (qui est de taille 13x13 carrées avec la valeur de 0 pour chaque carré disponible, avec la valeur de 1 pour chaque carrée occupé. Ensuite, on peut calculer l opération de AND pour les deux tableaux 5x5 et le tableau résultat manifeste la portée disponible pour le déplacement. - La vérification de ne pas se déplacer sur un carrée occupe - La vérification de ne pas se déplacer sur un carrée du goal Pour ne pas déplacer une pièce du type Joueur sur un carrée but, on déclare un tableau de taille 13x13 qui est comme ci-dessous. On code le but des deux équipes comme ils sont occupés et ce tableau est utilisé pour la vérification du Joueur seulement. - La vérification de ne pas marquer un but de soi-même. - La vérification de ne pas passer dans la zone de gardien (pour le gardien de but) - C est pareil pour la vérification de la zone de Joueur, on code la zone de gardien comme elles ne sont pas occupées et les autres carrées (hors de ces deux zones) sont occupés. Alors, quand on chercher les carrées disponibles pour le gardien, on ne trouve jamais un carrée hors de zone de but. - La vérification de l initiation : il y a une vérification pour le mouvement d initiation : pour cette étape, il y a seulement le ballon qui peut se déplacer. Et on n a pas de droit d utiliser le PASS ou le BOUND pour cette étape. - La vérification de l état de réinitialisation : pour éviter les jeux négatifs, par exemple l utilisateur cherche toujours de déplacer le ballon dans un carrée, ensuite de déplacer ses joueurs pour bloquer le ballons. Cette situation entraine un match sans résultat. Dans ce cas-là, on doit détecter si c est une situation du ballon bloque et déterminer de réinitialisation du jeu. - La vérification de l état de répétition La situation que les deux équipes déplacent toujours les mouvements identiques alors, après plusieurs mouvement, l état du jeu n est pas changé, est la même situation du ballon bloqué, on doit détecter cette situation pour redémarrer le jeu. 43

44 Figure 4-12 Algorithme de trouver les carres disponibles 2.3 Implémentation de la recherche de mouvement Pour la recherche de mouvement en théorie, on doit chercher dans un espace complet de mouvements possibles. Chaque mouvement peut être une solution optimisée. Pour examiner tous ces mouvements possibles, on doit calculer le poids de chaque mouvement pour on évaluer laquelle est la meilleure solution. L évaluation d une solution peut utiliser l un des facteurs suivants : Facteurs constituant le poids d une solution : - La distance minimum entre le ballon et le joueur d adversaire - La distance minimum entre le ballon et le but d adversaire - La distance minimum entre le ballon et le joueur - La distance minimum entre le ballon et le but 44

45 - La capacité d utiliser le PASS - La capacité d utiliser le BOUND - La capacité d état de réinitialisation - La capacité de marquer le but On peut expliquer un peu pour quoi on a choisi ces facteurs. Imaginez que l on doit déterminer un mouvement à réaliser. Dans ce cas-là : si la distance minimum entre le ballon et un de nos joueur, on appelle dbw, si c est inférieure à la distance minimum entre le ballon et un des joueurs ennemis - dbn, alors, notre capacité de contrôle le ballon est supérieure à celle du joueur ennemi. De plus, si la distance minimum entre le ballon et le but adversaire, on appelle dbgn, si c est inférieure à la distance minimum entre le ballon et notre but - dbgw, alors, notre capacité de contrôle le ballon est supérieure à adversaire, la situation est favorable pour notre équipe pour marquer le but. Dans le cas inverse, les joueurs ennemis peuvent marquer plus facilement le but. Pour les facteurs de capacité à marquer le but et d utiliser le PASS et le BOUND, on mesure la capacité de marquer le but dans un ou deux mouvements. Cela veut dire que, dans cette situation-là, on peut choisir directement la solution finale par un mouvement direct, ou par un mouvement plus un PASS ou BOUND. Par contre, on doit chercher une solution défensive pour éviter maximum le mouvement d adversaire qui provoque notre échec du jeu. Le choix du vecteur de poids pour chaque solution possible : Il n y a pas un facteur parfait qui est efficace pour toutes les situations d un match. La recherche de solutions est très complexe car l équation de poids d une solution est le plus grand problème du développement. Si l équation est très compliqué, alors, pour chaque solution, même si on applique l élagage Alpha-Beta, on perd encore beaucoup de temps pour calculer, et évidemment que on perd aussi la performance et le temps de réflexion. Niveau de profondeur de recherche : Au début du développement, on a seulement un niveau de recherche qui correspond à un seul niveau de difficulté. Le besoin de ce niveau de difficulté est qu il n est pas très fort ce qu il peut ennuyer l utilisateur. Mais il n est pas très stupide pour pouvoir entrainer l utilisateur et il peut créer des épreuves pour l utilisateur. Nous cherchons la valeur de niveau de profondeur de 2 pour qu elle soit une valeur raisonnable : pour un mouvement, le ballon peut traverser maximum 4 carrées en appliquant le PASS ou le BOUND. La taille du tableau de jeu est de 9x9 alors, dans 2 mouvements parfaits, on peut approcher le but de l ennemi. La valeur plus grande est seulement nécessaire dans le cas de niveau de plus de difficulté. 2.4 Améliorations Amélioration la performance de recherche de mouvements Dans la première période de la réalisation, le noyau IA (avec la recherche de mouvement appliquant l algorithme Alpha-Beta) marche assez bien mais il demande beaucoup de temps et de ressources. Pendant la période suivante, on cherche des approches pour améliorer l efficacité en réalisant des tactiques de football proposées précédemment. En particulier, on a implémenté la tactique offensive et la tactique défensive. Imaginez que le noyau IA au début doit toujours chercher les mouvements possibles pour toutes les pièces (8 joueurs, 1 gardien 45

46 de goal, 1 ballon). Apres l amélioration, le noyau actuel doit chercher normalement pour de 4 à 6 pièces en moyenne. Cette réduction de l espace de recherche manifeste une efficacité visible. Le temps de réflexion du noyau se réduit beaucoup. En avant, le noyau peut réfléchir assez longtemps pour réagir contre les mouvements difficiles da l adversaire. Actuellement, le noyau peut réfléchir pendant le temps acceptable pour les utilisateurs (moins de 10 seconds en combinant avec les autres améliorations). Figure 4-13 Algorithme de décision 46

47 Figure 4-14 Tactique offensive 47

48 Figure 4-15 Tactique défensive Amélioration de l utilisation de la mémoire vive Au début du développement, on utilise les variables normales qui se sont occupées des espaces de la mémoire vive. Pour la première période, quand on exécute le programme sur un ordinateur, la consommation de mémoire vive n est pas un grand problème. Mais quand on veut déployer l application sur l appareil mobile, c est grave. Pour optimiser la consommation de mémoire, nous avons modifié le programme en utilisant les variables pointeurs. De cette façon, on peut diminuer l allocation de l espace de mémoire. De plus, après l utilisation de ces variables, on libère leurs mémoires alors, le programme économise beaucoup d espace de mémoire. D autre côté, on a aussi optimisé la consommation de ressources multimédia (pour les images et les contenus audio) en utilisant les sprites (les images de textures 2D) composées dans une grande image de texture et en réduisant la taille des fichiers audio. Par conséquence, on a diminué la taille de l application et les ressources du système en marche. En mesurant, le programme natif (la première version) s occupe normalement environ de 90 Mo et pour le pire de cas, il s occupe de 140 Mo de mémoire. Apres l amélioration, le programme utilise environs entre 40 Mo et 55 Mo pour le fonctionnement normal, et environ maximum 75 Mo pendant le processus le plus compliqué (la recherche de mouvements du noyau IA). 48

49 2.4.3 Amélioration du choix de résultat par hasard pour éviter la répétition Une autre difficulté pendant le développement du jeu est que, le noyau IA a tendu vers la répétition. Cette tendance peut être expliquée car le noyau essaye toujours de trouver la meilleure solution. Dans le cas l utilisateur a conscience de répéter les mouvements, alors, le noyau va calculer l action de contreoffensive qui est toujours la même. Ce problème peut provoquer une situation sans issue. La stratégie que nous adoptions pour résoudre ce problème est que nous améliorons le noyau pour calculer les meilleures solutions au lieu d une comme la version précédente. Par conséquence, on a plus d une solution à choisir et en appliquant une méthode de choix par hasard avec le taux de probabilité spéciale pour chaque niveau de difficulté, on peut diminuer les cas de répétition Implémentation de queue de priorité En calculant le poids de chaque solution on applique la méthode d arranger la queue de priorité. Par conséquence, on peut retenir une queue de solutions triées. En sachant que l algorithme Alpha-Beta est très sensible pour les données triées, alors, cette application est très efficace pour l exécution de Alpha- Beta. De plus, il aide à l amélioration du choix les solutions : il propose plus de candidats pour choisir au lieu d un comme expliquant dans la partie ci-dessus. 3. Résultat & évaluation 3.1 Test Pendant le développement, on réalise aussi des tests (test unitaire, test d intégrité du noyau et du GUI, test acceptable par le client). Le tableau de résultat général de tests est illustré ci-dessous (O : test passé, X : test non-passé). ID Tâche Test Test Test unitaire d intégrité acceptable Fixé Final 1 Vérifier les carrées possibles à aller O O O - O 2 Vérifier les carrées interdits O O O - O 3 Vérifier l état d initiation O O O - O 4 Déplacer une pièce O O O - O 5 Vérifier la répétition du jeu O O X O O 6 Vérifier le redémarrage après le ballon bloque O O X O O 7 Présenter des pièces O O O - O 8 Présenter les carrées disponibles O O O - O 9 Présenter le carrée d origine et le carrée de but O O O - O 10 Présenter l'animation de mouvement O O O - O Présenter des pièces après le mouvement Présenter les messages après avoir marqué de but Présenter le message après le redémarrage de jeu Présenter le message après le mouvement O O O - O O O X O O O O X O O O O X O O 49

50 15 Présenter le message de suggestion avant le mouvement O O X O O 16 Intégrer le noyau IA au GUI - O O - O Vérifier les messages du noyau IA correspondants à la représentation sur le GUI Vérifier la représentation du GUI correspondant à l état actuel du noyau de jeu - O O - O - O O - O Réaliser un cycle de vie complet du jeu sur plusieurs appareils portables (iphone, ipad, téléphone portable et tablet d Android) Vérifier les informations de tracking d un match - O O - O - O O - O 3.2 Évaluation Résultats Pour le bilan des travaux en fin de la réalisation, on a déjà implémenté l application du jeu Jingci qui répond bien les exigences du client. La réalisation peut être divise en deux étapes principales : - Accomplissement du noyau IA : la première version de jeu en console avec les fonctions de bases ; - Accomplissement du programme : la version finale du programme Jingci avec les améliorations d algorithme et de performance, en intégrant au GUI sur multiplateforme. A partir d une exigence précise d un moteur du jeu, on a accompli une application complète qui est publié sur le Google Play et sur l istore. On a déjà accueilli des nouvelles demandes du client : le déploiement de l application de multi-langue, l élargissement de niveau de difficulté de jeu, l ajout d un module d entrainement des utilisateurs, etc. 50

51 Figure 4-16 Ecran du programme Jingci et écran d étape d initiation 51

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Introduction à l informatique en BCPST

Introduction à l informatique en BCPST Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Créer le schéma relationnel d une base de données ACCESS

Créer le schéma relationnel d une base de données ACCESS Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...

Plus en détail

Développement itératif, évolutif et agile

Développement itératif, évolutif et agile Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie

Plus en détail

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 BUREAU VIRTUEL Utilisation de l application sur ipad Guide utilisateur Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6 Utilisation du bureau virtuel sur ipad Table des matières PREAMBULE...2 QU

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

LA MOBILITE : ACTEURS, OUTILS,

LA MOBILITE : ACTEURS, OUTILS, LA MOBILITE : ACTEURS, OUTILS, DEVELOPPEMENT, CONCEPTION, GESTION DE PROJET INTERVENTION MASTER DILIPEM Pascal Moutet, iseeds Software, 02/02/2012 PARCOURS ET FONCTIONS OCCUPEES Parcoursuniversitaire Parcoursprofessionnel

Plus en détail

Catalogue des stages Ercom 2013

Catalogue des stages Ercom 2013 Catalogue des stages Ercom 2013 Optimisations sur Modem LTE Poste basé à : Caen (14) Analyse et optimisation des performances des traitements réalisés dans un modem LTE. - Profiling et détermination des

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

1- LES FONDAMENTAUX DU JEU PAR LES COTES.

1- LES FONDAMENTAUX DU JEU PAR LES COTES. JEU PAR LES COTES Utilisation de la largeur. Fondamentaux tactiques >> Fondamentaux Offensifs >> Jeu par les côtés L e jeu actuel voit des équipes s affronter avec une grande densité de joueurs dans l

Plus en détail

Notions de sécurités en informatique

Notions de sécurités en informatique Notions de sécurités en informatique Bonjour à tous, voici un article, vous proposant les bases de la sécurité informatique. La sécurité informatique : Vaste sujet, car en matière de sécurité informatique

Plus en détail

Dossier projet isn 2015 par Victor Gregoire

Dossier projet isn 2015 par Victor Gregoire Dossier projet isn 2015 par Victor Gregoire Plan: I) But du projet: créer un jeu de blackjack fonctionnel et le poster sur une page web mise en ligne. Le jeu sera developpé en C++ a l'aide de code blocks.

Plus en détail

La programmation orientée objet et le langage C++

La programmation orientée objet et le langage C++ Cours précédents La programmation orientée objet et le langage C++ Pablo Rauzy rauzy @ enst fr pablo.rauzy.name/teaching.html#epu-cpp EISE4 @ Polytech UPMC 22 octobre 2014 Cours 5 Nouveautés du C++ par

Plus en détail

Retrouver de vieux programmes et jouer sur VirtualBox

Retrouver de vieux programmes et jouer sur VirtualBox CHAPITRE 3 Retrouver de vieux programmes et jouer sur VirtualBox Ce chapitre présente des notions avancées de VirtualBox. Elles permettront de réaliser des configurations spécifiques pour évaluer des systèmes

Plus en détail

VMWare Infrastructure 3

VMWare Infrastructure 3 Ingénieurs 2000 Filière Informatique et réseaux Université de Marne-la-Vallée VMWare Infrastructure 3 Exposé système et nouvelles technologies réseau. Christophe KELLER Sommaire Sommaire... 2 Introduction...

Plus en détail

Chapitre 2 : Abstraction et Virtualisation

Chapitre 2 : Abstraction et Virtualisation Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et

Plus en détail

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude INF 1250 INTRODUCTION AUX BASES DE DONNÉES Guide d étude Sous la direction de Olga Mariño Télé-université Montréal (Québec) 2011 INF 1250 Introduction aux bases de données 2 INTRODUCTION Le Guide d étude

Plus en détail

------- SESSION 2014 ÉPREUVE À OPTION. (durée : 4 heures coefficient : 6 note éliminatoire 4 sur 20)

------- SESSION 2014 ÉPREUVE À OPTION. (durée : 4 heures coefficient : 6 note éliminatoire 4 sur 20) CONCOURS SUR ÉPREUVES OUVERT AUX CANDIDATS TITULAIRES D UN DIPLÔME OU TITRE CONFÉRANT LE GRADE DE MASTER OU D'UN DIPLÔME OU TITRE HOMOLOGUÉ OU ENREGISTRÉ AU RÉPERTOIRE NATIONAL DES CERTIFICATIONS PROFESSIONNELLES

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

MANUEL D INSTALLATION

MANUEL D INSTALLATION Data Processing Commission Fast Advanced Software for Table soccer - v 1.0 Logiciel de gestion de tournoi de football de table MANUEL D INSTALLATION INSTALLATION INFORMATIQUE DE LA TABLE DE MARQUE & CONFIGURATION

Plus en détail

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis Informatique & Systèmes de Communication Stages de 12 à 16 semaines aux Etats-Unis PROGAMME DES STAGES Depuis 2010, les stages en entreprise sont devenus obligatoires dans le cadre des études master. Les

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

Certification Scrum Master

Certification Scrum Master avec Jeff Sutherland Les méthodes Agiles représentent indéniablement une approche nouvelle et différente dans la conduite de projets. Au lieu de suivre un plan à la lettre en assignant des tâches à une

Plus en détail

win-pod Manuel de résolution de pannes

win-pod Manuel de résolution de pannes win-pod Manuel de résolution de pannes Medicapteurs «Les Espaces de Balma» 18 avenue Charles de Gaulle - Bât. 34 31130 BALMA Tel : 33 (0) 562 571 571 www.medicapteurs.fr / 0124 Copyright 2009 Sommaire

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte 1Les bases : vos objectifs 2 Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Plus en détail

Armand PY-PATINEC 2010

Armand PY-PATINEC 2010 Armand PY-PATINEC 2010 EPREUVE PRATIQUE : TABLEAU SYNOPTIQUE Activités Inventaire de bières et de leur lieu de fabrication Gestion des clients pour un programme de facturation Emploi du ruban de l interface

Plus en détail

IDENTIFIER LES TEMPS DE JEU NE PAS PERDRE LE BALLON

IDENTIFIER LES TEMPS DE JEU NE PAS PERDRE LE BALLON BENJAMINS IDENTIFIER LES TEMPS DE JEU N TACHE SITUATION N 1 Objectif Avancer pour conserver-progresser ou pour déséquilibrer But Marquer Règles Interdit de défendre dans la zone défensive tant que le ballon

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC.

Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC. Configurer un réseau domestique. Partager ses fichiers, ses dossiers et ses imprimantes sur tous ses PC. Pour être le plus complet possible, je vais supposer posséder 3 PC : PC de bureau sous Windows XP

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

QUI VEUT JOUER AVEC MOI?

QUI VEUT JOUER AVEC MOI? QUI VEUT JOUER AVEC MOI? Michel Rigo (Université de Liège) http://www.discmath.ulg.ac.be/ JOUER SÉRIEUSEMENT, POURQUOI? Jeux coopératifs : marché boursier, économie, émergence de réseaux sociaux,... Mise

Plus en détail

Configuration matérielle et logicielle requise et prérequis de formation pour le SYGADE 6

Configuration matérielle et logicielle requise et prérequis de formation pour le SYGADE 6 Configuration matérielle et logicielle requise et prérequis de formation pour le SYGADE 6 DMFAS6/HardwareSoftware/V4 Octobre 2013 2 Configuration matérielle et logicielle requise et prérequis de formation

Plus en détail

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1 Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

académique academic adversaire opponent arguments arguments, contentions auxiliaire visuel prop, visual aide besoin need

académique academic adversaire opponent arguments arguments, contentions auxiliaire visuel prop, visual aide besoin need académique (adj.) Format de débat comprenant deux équipe de trois, où on utilise les points d information. Je veux être la premier oratrice de la proposition dans le débat académique samedi. academic adversaire

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

Sommaire 1. Aperçu du Produit

Sommaire 1. Aperçu du Produit Sommaire 1. Aperçu du Produit... 1 2. Caractéristiques du Produit... 2 3. Contenu du Pack... 3 4. Données techniques... 3 5. Configuration Matérielle Minimum... 3 6. Description du Produit... 4 6.1 Affichage

Plus en détail

Modèle de changement d organisation. Leanpizza.net présente. Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation

Modèle de changement d organisation. Leanpizza.net présente. Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation Guide rapide Leanpizza.net présente Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation v1.0 Rédacteur : Olivier Lafontan Traduction : Yannick Quenec hdu Date : 29 juin 2010 - Guide

Plus en détail

Qu est-ce que le «cloud computing»?

Qu est-ce que le «cloud computing»? Qu est-ce que le «cloud computing»? Par Morand Studer eleven Octobre 2011 Qu est-ce que le «cloud computing»? - Morand Studer eleven Octobre 2011 www.eleven.fr 1 Aujourd hui, la démocratisation de l informatique

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

TD : Codage des images

TD : Codage des images TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment

Plus en détail

Chapitre 1 Retour en arrière

Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 1 Chapitre 1 Retour en arrière Chapitre 1 : Retour en arrière 2 1. Difficultés de développer pour les systèmes embarqués Quelques contraintes à prendre en compte : - Mémoire:

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

LaCieSync. Synchronization Software. getting started guide. Guide de démarrage. Guida introduttiva. Erste Schritte. Guía de inicio.

LaCieSync. Synchronization Software. getting started guide. Guide de démarrage. Guida introduttiva. Erste Schritte. Guía de inicio. Synchronization Software getting started guide Guida introduttiva Erste Schritte Guía de inicio Aan-de-slag Gids 入 门 向 导 スタートアップ ガイド page Table des matières Introduction 2 Configuration minimale 3 Avant

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

Plus en détail

APPRENDRE, VIVRE & JOUER AVEC LES JEUNES ESPOIRS DE L IHF

APPRENDRE, VIVRE & JOUER AVEC LES JEUNES ESPOIRS DE L IHF APPRENDRE, VIVRE & JOUER AVEC LES JEUNES ESPOIRS DE L IHF Règles de jeu du handball Salut les amis du handball! C est super que vous vouliez en savoir plus sur les Règles de jeu du handball! Dans ce livret,

Plus en détail

Structure du format BMP, sa lecture, sa construction et son écriture

Structure du format BMP, sa lecture, sa construction et son écriture Structure du format BMP, sa lecture, sa construction et son écriture Claude Parisel Mars 2003 Table des matières : 1. Le choix du format 2. Commentaires sur les autres formats 3. Format BMP pour noir&blanc,

Plus en détail

Silk Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications

Silk Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications Portfolio : Une démarche allégée pour les tests, le développement et la gestion de vos applications Allégé Incluant seulement les fonctionnalités dont vous avez besoin Accessible Depuis une utilisation

Plus en détail

Nouveautés Ignition v7.7

Nouveautés Ignition v7.7 ... Nouveautés Ignition v7.7 Nouveautés Ignition v7.7 Découvrez le Nouveau Scada avec plus de 40 nouveautés Principales nouveautés :... Cloud Templates Template Repeater Client Multilingue + Sequential

Plus en détail

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Copyright Acronis, Inc. 2000 2009 Table des matières Résumé... 3 Qu est-ce que la déduplication?... 4 Déduplication au

Plus en détail

Présentation de la gamme des PGI/ERP modulaires Wavesoft

Présentation de la gamme des PGI/ERP modulaires Wavesoft Solutions ouvertes pour esprits ouverts Présentation de la gamme des PGI/ERP modulaires Wavesoft Sommaire WaveSoft en quelques chiffres Positionnement des Éditions (Gammes) Standard Professionnelle Entreprise

Plus en détail

Guide d utilisation de la clé mémoire USB

Guide d utilisation de la clé mémoire USB Service des bibliothèques Guide d utilisation de la clé mémoire USB I- Préambule Politique de prêt : Le Service des bibliothèques vous permet de faire l emprunt d une clé mémoire pour une période de 48

Plus en détail

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab notre compétence d'éditeur à votre service créée en juin 2010, Scilab enterprises propose services et support autour

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES 1 DECOUVERTE DE LA VIRTUALISATION... 2 1.1 1.2 CONCEPTS, PRINCIPES...2 UTILISATION...2 1.2.1 Formation...2

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

Code de conduite sur les paris sportifs pour les athlètes

Code de conduite sur les paris sportifs pour les athlètes Code de conduite sur les paris sportifs pour les athlètes Préparé par EU Athletes, l association européenne des jeux et paris en ligne (EGBA), la Remote Gambling Association (RGA) et l association européenne

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

Ebauche Rapport finale

Ebauche Rapport finale Ebauche Rapport finale Sommaire : 1 - Introduction au C.D.N. 2 - Définition de la problématique 3 - Etat de l'art : Présentatio de 3 Topologies streaming p2p 1) INTRODUCTION au C.D.N. La croissance rapide

Plus en détail

[WINDOWS 7 - LES FICHIERS] 28 avril 2010. Logiciel / Windows

[WINDOWS 7 - LES FICHIERS] 28 avril 2010. Logiciel / Windows Ce dossier a une forme un peu différente des précédentes : c est un ensemble de «fiches» décrivant chacune une des opérations que l on peut effectuer avec un fichier (enregistrer, renommer, etc.). Chaque

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

ndv access point : Utilisation

ndv access point : Utilisation NAP10-MU-121207-fr ndv access point : Utilisation www.neocoretech.com ndv AP Plus qu un simple protocole de déport d affichage, ndv AP est une solution complète pour vos points d accès offrant l affichage

Plus en détail

Etude d Exchange, Google Apps, Office 365 et Zimbra

Etude d Exchange, Google Apps, Office 365 et Zimbra I. Messagerie Exchange 2013 2 1) Caractéristiques 2 2) Pourquoi une entreprise choisit-elle Exchange? 2 3) Offres / Tarifs 2 4) Pré requis pour l installation d Exchange 2013 3 II. Google Apps : 5 1) Caractéristiques

Plus en détail

Mesurer le succès Service Desk Guide d évaluation pour les moyennes entreprises :

Mesurer le succès Service Desk Guide d évaluation pour les moyennes entreprises : LIVRE BLANC SUR LES MEILLEURES PRATIQUES Mesurer le succès Service Desk Guide d évaluation pour les moyennes entreprises : Choisir la meilleure solution de support technique et améliorer le retour sur

Plus en détail

25/12/2012 www.toubkalit.ma

25/12/2012 www.toubkalit.ma 25/12/2012 www.toubkalit.ma 1 Définition Exemple des méthodes agiles Valeurs Principes Le cycle itératif et incrémental (Itération/Sprint) Schéma de travail Méthode Scrum. Méthode XP (Extreme programming).

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA

Plus en détail

Introduction à. Oracle Application Express

Introduction à. Oracle Application Express Introduction à Oracle Application Express Sommaire Qu est-ce que Oracle Application Express (APEX)? Vue d ensemble des fonctionnalités et des différents composants d Oracle APEX Démonstration de création

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM) Ministère de l Enseignement Supérieur et de la Recherche Scientifique Ecole Supérieure Privée d Ingénierie et de Technologie BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

Plus en détail

AGILE IPHONE DEVELOPMENT

AGILE IPHONE DEVELOPMENT AGILE IPHONE devday for iphone, Geneva 2010 DEVELOPMENT Jérôme Layat jerome.layat@hortis.ch BREVE PRESENTATION Directeur Technique hortis, le studio 10 ans de pratique de l Agilité: développement, coaching

Plus en détail

Itium XP. Guide Utilisateur

Itium XP. Guide Utilisateur Itium XP 06/2007 - Rev. 3 1 Sommaire 1 Sommaire... 2 2 Généralités... 3 3 ItiumSysLock... 4 3.1 Enregistrer l état actuel du système... 4 3.2 Désactiver ItiumSysLock... 5 3.3 Activer ItiumSysLock... 5

Plus en détail

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009 Rapport de stage Développement d un logiciel de vidéoconférence : Enjeux 3 Guillaume DOTT 2009 Maître de stage : Louis Poulette Tutrice : Marie-Paule Muller Remerciements Je tiens à remercier toute l équipe

Plus en détail

IBM Tivoli Monitoring, version 6.1

IBM Tivoli Monitoring, version 6.1 Superviser et administrer à partir d une unique console l ensemble de vos ressources, plates-formes et applications. IBM Tivoli Monitoring, version 6.1 Points forts! Surveillez de façon proactive les éléments

Plus en détail

Service des stages et du placement - secteur placement ANNEE 2013 TITRES DE POSTES OFFERTS AUX DIPLOMES DE GENIE INFORMATIQUE

Service des stages et du placement - secteur placement ANNEE 2013 TITRES DE POSTES OFFERTS AUX DIPLOMES DE GENIE INFORMATIQUE Administrateur de réseaux junior Administrateur de Système Jr. Administrateur de Système niveau II Administrateur de systèmes Administrateur ou administratrice de systèmes ti Administrateur Réseau et Sécurité

Plus en détail

Guide de poche. Get Wyse. Go Far. * Bienvenue dans le Cloud Client Computing de Wyse. En savoir plus. * Avec Wyse, vous irez loin.

Guide de poche. Get Wyse. Go Far. * Bienvenue dans le Cloud Client Computing de Wyse. En savoir plus. * Avec Wyse, vous irez loin. Guide de poche Bienvenue dans le Cloud Computing de Wyse Get Wyse. Go Far. * * Avec Wyse, vous irez loin. En savoir plus. Qualification Choisir de passer au Cloud Computing est un premier pas vers le.

Plus en détail

Petit guide des sous-réseaux IP

Petit guide des sous-réseaux IP Petit guide des sous-réseaux IP Robert Hart, hartr@interweft.com.au version française par Laurent Caillat-Vallet, caillat@univ-lyon1.fr v1.0, 31 Mars 1997 Ce document décrit pourquoi et comment découper

Plus en détail

Chapitre 10. Intelligence artificielle et jeux. http://ow.ly/5iiy8

Chapitre 10. Intelligence artificielle et jeux. http://ow.ly/5iiy8 L'informatique au lycée http://ow.ly/5iiy8 Intelligence artificielle : Partie de l'informatique qui a pour but la simulation de facultés cognitives afin de suppléer l'être humain pour assurer des fonctions

Plus en détail

EVault Endpoint Protection en détails : Gestion de l entreprise, Sauvegarde, Restauration et Sécurité

EVault Endpoint Protection en détails : Gestion de l entreprise, Sauvegarde, Restauration et Sécurité en détails : Gestion de l entreprise, Sauvegarde, Restauration et Sécurité Vue d ensemble des principaux avantages Permet au service informatique de gérer les données mobiles en définissant des règles

Plus en détail

SmartClass+ Plateforme de gestion de classe. Qu importe le lieu, le moment, l appareil. ipad, Mac Android Windows Téléphones intelligents «AVEC»

SmartClass+ Plateforme de gestion de classe. Qu importe le lieu, le moment, l appareil. ipad, Mac Android Windows Téléphones intelligents «AVEC» SmartClass+ Plateforme de gestion de classe Qu importe le lieu, le moment, l appareil ipad, Mac Android Windows Téléphones intelligents «AVEC» La classe du XXI e siècle, à l ère du numérique La technologie

Plus en détail

I00 Éléments d architecture

I00 Éléments d architecture I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,

Plus en détail

La philosophie Ludi. recréer cet esprit chaleureux et amical afin de faire passer des bons moments à ses internautes autour d une même passion.

La philosophie Ludi. recréer cet esprit chaleureux et amical afin de faire passer des bons moments à ses internautes autour d une même passion. Sommaire 3 Historique 4 L identité Ludi Le jeu de la Belote est apparu en France dans les années 1920 et a connu un grand succès. Longtemps considérée comme le «jeu de cartes du peuple», la belote a conquis

Plus en détail

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS Quatrième colloque hypermédias et apprentissages 275 BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS Anne-Olivia LE CORNEC, Jean-Marc FARINONE,

Plus en détail

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES Département Informatique UFR Sciences 2 Boulevard Lavoisier 49045 Angers Cedex 01 Auteur : Jean-Michel Richer Email : jean-michel.richer@univ-angers.fr

Plus en détail

Rapport d activité. Mathieu Souchaud Juin 2007

Rapport d activité. Mathieu Souchaud Juin 2007 Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix

Plus en détail

The Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

The Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions. The Mozilla Art Of War Laboratoire d Informatique Fondamentale d Orléans 20 septembre 2008 Firefox, c est sûr Firefox, c est sûr Donc je vais faire mes extensions sous Firefox, elles seront en sécurité.

Plus en détail

Perspectives en matière de portails géographiques et de 3D

Perspectives en matière de portails géographiques et de 3D Perspectives en matière de portails géographiques et de 3D version du Géoportail de l IGN Aurélien Barbier-Accary (Atos Worldline) et Frédéric Rouas (Diginext) Un groupement d expertises Depuis 2006 et

Plus en détail