1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

65 32 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 5,85 MB

Nội dung

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 : HOANG Duc Viet Superviseurs : HO Tuong Vinh NGUYEN Duc Thinh Hanoi, Juin 2014 Table de matières Table de matières Table de figures Remerciements Résumé Introduction 1.Contexte du stage 1.1IFI 1.2Société Newwave 1.3Projet du jeu vidéo Jingci 2.Motivation et objectif du stage 3.Contribution Chapitre État de l’art : Epreuves générales de la programmation de jeux d’échecs 1.Représentation des données 2.Gestion des mouvements 2.1Génération des mouvements 2.2Evaluation de mouvements 2.3Recherche de mouvements 3.Algorithmes de recherche (Minimax, Alpha-Beta) 3.1Algorithme Minimax 3.2Algorithme Elagage Alpha-Beta (Alpha-Beta pruning) Chapitre Épreuves du projet 1.Description générale du jeu 2.Spécifications d’exigences fonctionnelles 3.Spécifications d’exigences non-fonctionnelles 4.Capacité de réfléchir du noyau d’Intelligence artificielle 5.Difficultés de calcul Chapitre Solutions proposées 1.Arbres de positions 2.Equation d’évaluation 3.Stratégies de décisions 3.1Tactique défensive 3.2 Tactique offensive Chapitre Réalisation et résultats 1.Ingénierie de développement 1.1 Méthode de développement 1.2 Langage de programmation et plateforme 1.3 Gestion de code et de changement 2.Conception et Développement 2.1 Représentation des données 2.2 Implémentation de règles et de contrains 2.3 Implémentation de la recherche de mouv 2.4 Améliorations 3.Résultat & évaluation 3.1 Test 3.2 Évaluation Conclusion 1.Conclusion 2.Perspectives Bibliographies Table de figures Figure 1-1 Arbre de positions du jeu Tictactoe [8] .11 Figure 1-2 Exemple de l’évaluation de l’heuristique [15] 12 Figure 1-3 Jeux de deux somme nulle: Echecs[16], Echecs chinoises[17], Tictactoe[18], Go[19], Othello[20], Gomoku[21] .13 Figure 1-4 Illustration de l’algorithme Minimax [9] 14 Figure 1-5 Algorithme Minimax pour trouver la solution de Tictactoe [8] 15 Figure 1-6 Algorithme Alpha-Beta [9] 16 Figure 2-1 Terrain du football [13] .19 Figure 2-2 Tablier de jeu 20 Figure 2-3 Pièces de jeu: Ballon, Joueurs, Gardiens (de goal) 20 Figure 2-4 Portée de courses: pour le ballon et pour le joueur 20 Figure 2-5 Portée de pièce et de ballon selon le cas 21 Figure 2-6 Illustration du cas de répétition de jeu 21 Figure 2-7 Illustration du cas de ballon bloqué 22 Figure 2-8 Illustration du cas de ballon bloqué 22 Figure 2-9 Initiation du jeu 23 Figure 3-1 Elagage Alpha-Beta [14] .27 Figure 3-2 Exemple de la coupure Alpha [14] .28 Figure 3-3 Facteurs d’évaluation d’une position de jeu 29 Figure 3-4 Tactique défensive 31 Figure 3-5 Tactique offensive .31 Figure 4-1 Diagramme Gantt du projet Jingci .34 Figure 4-2 Plan de réalisation du Jingci .35 Figure 4-3 Architecture de l’application NDK [12] 37 Figure 4-4 Structure de codage du projet Jingci 38 Figure 4-5 Diagramme de classes du noyau IA 39 Figure 4-6 Représentation de tablier dans le mémoire 40 Figure 4-7 Représentation de tablier et des sentinelles .41 Figure 4-8 Représentation de la surface de but 41 Figure 4-9 Représentation de la zone de gardien de but 42 Figure 4-10 Classe Piece 42 Figure 4-11 Classe d’une position du jeu JingciNode 43 Figure 4-12 Algorithme de trouver les carres disponibles 44 Figure 4-13 Algorithme de décision 46 Figure 4-14 Tactique offensive .47 Figure 4-15 Tactique défensive 48 Figure 4-16 Ecran du programme Jingci et écran d’étape d’initiation 51 Figure 4-17 Ecrans d’étape de préparation 52 Figure 4-18 Ecrans de mouvement du jeu 52 Figure 4-19 Ecrans du tir au goal 53 Figure 4-20 Ecrans de la victoire et de l’échec 53 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 mois en tant que stagiaire au sein de la sociộtộ Newwave oự jai 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 mavoir accompagnộ dans lapprentissage du franỗais nộcessaire pour mes ộtudes lIFI 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 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 Introducti on 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 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, Android), l’orientation en terme de développement est tourné vers des services informatiques principaux : - 1.3 Développement de Logiciels personnalisés ; Développement d’Applications Mobiles ; Externalisation de Logiciels (Software Outsourcing) ; Maintenance de Logiciels 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 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.) 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 : Figure 4-14 Tactique offensive 47 Figure 4-15 Tactique défensive 2.4.2 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 lallocation de lespace 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 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 2.4.4 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 AlphaBeta 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 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 Vérifier les carrées possibles aller Vérifier les carrées interdits Vérifier l’état d’initiation Déplacer une pièce Vérifier la répétition du jeu Vérifier le redémarrage après le ballon bloque 10 11 12 Présenter des pièces Présenter les carrées disponibles Présenter le carrée d’origine et le carrée de but Présenter l'animation de mouvement Présenter des pièces après le mouvement Présenter les messages après avoir marqué de but 13 14 Présenter le message après le redémarrage de jeu Présenter le message après le mouvement 15 16 17 18 Présenter le message de suggestion avant le mouvement Intégrer le noyau IA au GUI 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 Réaliser un cycle de vie complet du jeu 19 20 3.2 3.2.1 sur plusieurs appareils portables (iPhone, iPad, téléphone portable et tablet d’Android) Vérifier les informations de tracking d’un match É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 Figure 4-16 Ecran du programme Jingci et écran d’étape d’initiation 51 Figure 4-17 Ecrans d’étape de préparation Figure 4-18 Ecrans de mouvement du jeu 52 Figure 4-19 Ecrans du tir au goal Figure 4-20 Ecrans de la victoire et de l’échec 53 Actuellement, la fin du stage, on a déployé la première version en japonais sur Android et sur iOS Et on est en train de continuer la publication des versions dans d’autres langues (en chinois, en coréen, en anglais, en espagnol, etc.) 3.2.2 Evaluation Dans la phase d’évaluation du programme, on propose quelques critères pour déterminer que le jeu est acceptable ou non Concernant les exigences fonctionnelles, le critère est que toutes les règles et les contraintes sont appliquées Concernant les exigences non-fonctionnelles, les critères sont : - Le temps de réponse n’est pas trop long (moins de 10 secondes est acceptable) ; La demande de stockage n’est pas très grosse ; La demande de mémoire vive n’est pas très grosse ; Le programme peut être lance sur iOS et sur Android ; La difficulté est de niveau moyen ; Le programme peut être adaptatif aux vieux appareils En mesurant la fin du projet, on a obtenu les résultats positifs sous tous les critères : - Les exigences fonctionnelles sont bien observées après le test acceptable du client Le temps de réponse est environ de secondes en moyen et de 10 secondes au pire de cas La taille de stockage est environ de Mo (pour l’installeur) et de 12 Mo après l’installation - La taille de mémoire vive est environ entre 40 Mo et 55 Mo pour le fonctionnement normal et environ 75 au pire de cas Le programme peut être bien installé sur iOS (à partir d’iOS 6) et sur Android (à partir de Android 2.2) La difficulté est divise en trois niveau : facile, normale, intermédiaire - L’adaptation du programme est flexible On a bien testé le jeu sur plusieurs appareils : iPhone3GS (256Mo RAM, écran 320x480), iPhone5(1Go RAM, écran 640x1136), HTC Hero(256Mo RAM, écran 320x480), Samsung Galaxy Y(290Mo RAM, écran 240x320), LG Optimus G(2Go RAM, écran 768x1280) Le programme peut bien marcher avec la spécification minimal de matériel : l’espace de stockage 15Mo, l’espace de mémoire vive de 75 Mo, l’écran de résolution 320x480 pixels (le programme peut être bien affiché sur l’écran de résolution plus petite mais il est difficile de jouer, par exemple sur Samsung Galaxy Y) Cette demande de matériel permet beaucoup d’appareils portables lancer le jeu sans problème Cela est justifié par des tests sur des téléphones portables publiés depuis 2009 (HTC Hero, iPhone3GS) ou sur des téléphones modernes (iPhone5, LG Optimus G) En conclusion, en appliquant les solutions prộsentộes dans le chapitre de faỗon dynamique, on a obtenu un bon résultat Du côté de la programmation d’intelligence artificielle, la réponse pour la question « comment un programme informatique peut imiter la réflexion humaine » est le défi le plus grand Dans notre cas particulier, nous cherchons les idées partir de la réalité et nous avons essayé de simuler la faỗon dont on rộflộchit dans le football En cherchant les réponses pour les questions « comment on arrange la formation de l’équipe ? » et « quelle est la meilleure stratégie jouer ? », on a proposé des tactiques 54 pratiques et applicables (la défense active, l’offense active, etc.) qui apportent la réflexion naturelle au programme Du côté de la programmation en général, et de la programmation de jeux d’échecs en particulier, la représentation de données, la recherche de solutions possibles et l’équation d’évaluation de solutions sont les facteurs très importantes qui sont effectuées directement au fonctionnement du programme - La représentation de données, particulièrement la représentation d’échiquier de jeu, effectue directement au développement du jeu Si on utilise une liste (liste chainée) pour représenter les cellules, la recherche de solution peut perdre beaucoup de temps pour examiner travers la liste chaque mouvement Si on utilise un tableau de bit (un tableau plat ou un tableau de dimension, etc.), on peut économiser beaucoup d’espace de mémoire, mais l’interaction avec le tableau de bits est difficile qu’avec le tableau d’integer - Pour la recherche de solutions, le Minimax est l’algorithme le plus simple pour examiner un arbre Mais il a le problème d’explosion combinatoire, en réalité, on doit chercher des stratégies pour réduire l’espace de recherche L’algorithme Alpha-Beta, il n’est pas le meilleur algorithme mais il est l’algorithme le plus efficace Pour l’évaluation de poids d’une solution, il n’y a pas de facteur parfait pour bien et rapidement - évaluer L’équation d’évaluation se compose normalement des facteurs et le choix de ces facteurs est dépendant de la consigne et des expériences Les développeurs doivent équilibrer l’efficacité d’évaluation et la performance de calcul Du côté de génie logiciel, le choix du langage de programmation est important ainsi que le choix du moteur de jeux Pour les jeux de plateforme isolée, le choix du langage de programmation n’est pas vraiment grave Mais pour le développement de multiplateforme, on doit les évaluer et les comparer attentivement pour trouver un des langages possibles pour que l’efficacité soit la meilleure Malgré le fait que le langage C/C++ ne soit pas facile développer, il a aussi des avantages suivants : - Le langage C/C++ est un langage concordant avec le programme qui demande beaucoup de ressources et de performance (car ce langage peut accéder fortement aux ressources du système) et qui demande de déployer sur multiplateforme (car presque tous les OS supportent l’exécution ou l’appel de programme et de librairie en C/C++) - Le moteur de jeux Cocos2dx est un moteur puissant pour le développement des jeux vidéo Il supporte des traitements d’effets et de multimédia et de déploiement sur multiplateforme Il y a des moteurs de jeux sur le marché qui ont ces avantages (par exemple Unity3D, MS XNA, etc.), mais du côté de développement dirigeant vers un outil gratuit, Cocos2dx est un choix de valeur acceptable 55 Conclusi on Conclusion J’ai présenté dans ce document la réalisation d’un noyau d’intelligence artificielle pendant mon stage la société Newwave En conclusion, nous avons accompli un jeu vidéo : le jeu Jingci simulant le jeu football, qui satisfait toutes les demandes de notre client En particulier, le noyau IA de jeu dộchec est bien conỗu, implộmentộ, ensuite intộgrộ au GUI pour publier aux utilisateurs Nos solutions sont effectuộes de faỗon efficace pour déployer un jeu vidéo en réalité : - l’application de l’algorithme Alpha-Beta pour l’élagage de l’espace de recherche de solutions possibles d’un noyau de jeu vidéo ; l’application des tactiques de réflexion proposées pour le noyau d’intelligence artificielle ; la réalisation des solutions pour améliorer la performance du programme Perspectives Apres avoir développé le jeu vidéo Jingci, il y a des perspectives pour améliorer l’application : - Installer le module de communication qui permet aux utilisateurs de se battre ensemble via le réseau local ou via internet Maintenant, on peut jouer au jeu Jingci seulement en se battant contre le noyau d’intelligence artificielle Si on peut jouer avec nos amis, le jeu sera plus intéressant - Améliorer le noyau IA de faỗon augmenter la difficultộ On doit chercher plus de solutions et des algorithmes pour améliorer l’efficacité car si on fait seulement enlever le niveau de profondeur de recherche, c’est aussi que le temps de calcul est augmentộ - Amộliorer le noyau IA de faỗon ajouter les positions d’ouverture de jeu ou les positions de fermeture de jeu Ces positions d’ouverture et de fermeture peuvent aider le noyau IA rộflộchir de faỗon plus intộressante et plus rapide 56 Bibliograph ies Articles, livres [1] Stuart J Russell and Peter Norvig 2010 Artificial Intelligence: A Modern Approach (3 ed.) Pearson Education, pp 161-189 [2] Donald E.Knuth and Ronald W Moore An Analysis of Alpha-Beta Pruning, Artificial Intelligence, (1975), 293-326 [3] Andreas Junghanns, Are there practical alternatives to alpha-beta in computer chess?, ICCA J 21 (I) (1998) 14-32 [4] C E Shannon 1988 Programming a computer for playing chess In Computer chess compendium, David Levy (Ed.) Springer-Verlag New York, Inc., New York, NY, USA 2-13 [5] Victor Allis, Searching for Solutions in Games and Artificial Intelligence Ph.D Thesis, University of Limburg, Maastricht, The Netherlands, 1994, pp 171-175 [6] Timothy Hart and Daniel Edwards 1963 The Alpha-Beta Heuristic Technical Report Massachusetts Institute of Technology, Cambridge, MA, USA [7] Leif Oppermann On the choice of programming languages for developing location-based mobile games GI Jahrestagung (1) 2008: 481-488 Liens de references [8] Chris Thornton, courses Intelligent Systems Techniques, [online, page consultée en 11/2013] : http://www.sussex.ac.uk/Users/christ/crs/kr-ist/lec05a.html 57 [9] Chua Hock Chuan, course Java Game Programming, [online, page consultée en 11/2013] : http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaGame_TicTacToe_AI.html [10] Wolfram Math World, Chess, [online, page consultée en 11/2013]: http://mathworld.wolfram.com/Chess.html [11]Chess.com, Mathematics and chess, [online, page consultée en 11/2013] : http://www.chess.com/chessopedia/view/mathematics-and-chess [12] Intel Software, Android Application Development and Optimization on the Intel Atom Platform [online, page consultée en 10/2013] : http://software.intel.com/en-us/articles/androidapplication-development-and-optimization-on-the-intel-atom-platform [13] Terrain de football, [online, page consultée en 12/2013] http://as-villersexelesprels.footeo.com/actualite/2012/12/04/tracage-du-terrain.html [14] Alpha 12/2013] http://pixelcodeteam.fr/author/itech/ [15] Clotures 12/2013] http://www.permutationpuzzles.org/chess/Elkies/Elkies10.html [16] Tablier du Jeu d’échecs, [online, page consultée en 11/2013] http://www.intuitor.com/c [17] Tablier 11/2013] http://ancientchess.com/page/04.htm [18] Jeu 11/2013] http://www.math.cornell.edu/~numb3rs/blanco/Two_daughters.html [19] Talier 12/2013] http://www.contrib.andrew.cmu.edu/~amengle/finalreport.html [20] Jeu 12/2013] http://othelloacademy.blogspot.com/p/tournaments.html [21] Jeu Gomoku, [online, page consultée en 12/2013] http://www.papg.com/show?1TN3 [22] Alpha-Beta, 10/2013] http://anna.fi.muni.cz/~x139877/prezentace/2011_03_24_prednaska_mafye_teorie_ her/combin_theory/alphabeta.pdf [23] Institut de la Francophonie pour l’Informatique, [online, page consultée en 02/2014] : http://www.ifi.vnu.edu.vn [24] Université de la Rochelle, [online, page consultée en 02/2014] : http://www.univ-larochelle.fr [25] Société Newwave, [online, page consultée en 02/2014] http://newwave.vn 58 ... nœuds B(5) et C(

Ngày đăng: 30/10/2020, 21:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w