GithubHelp home page GithubHelp logo

insa-4if-prolog-abalone's Introduction

Abalone (prolog)

Le jeu a été fait principalement en prolog avec deux interfaces disponibles :

  • Une IHM console, directement accessible en ligne de commande dans prolog.
  • Une IHM web, visible dans un navigateur web après le lancement du serveur prolog.

Cette réalisation a été faite dans le cadre d'un projet en école d'ingénieurs (Master 1) autour des intelligences artificielles.

Dépendances

Il ne faut pas de dépendances particulières, cependant le web serveur demande une version de SWI-Prolog > 7.1.0. Le jeu a été testé sur SWI-Prolog 7.2.3.

IHM Console

Capture IHM Console

Ouvrir dans prolog play.pl, puis lancer une partie avec le prédicat play:play.

Jouer

Il y a trois modes de jeu :

  • Humain contre Humain
  • Humain contre Ordinateur
  • Ordinateur contre Ordinateur

Suivre les instructions dans la console pour jouer.

Configuration

Par défaut, un nombre maximum d'itérations est en place (100) afin de se prémunir des boucles infinies. Vous pouvez modifier ce paramètre dans le haut du fichier play.pl (sous le prédicat play).

IHM Web

Capture IHM Web

Dans le fichier web/index.html, se trouve le code du plateau, qui a comme feuille de style web/css/main.css. Les autres fichiers concernant l'interface web sont dans le dossier web.

L'interface propose elle aussi les trois modes de jeu. Cependant, elle présente un avantage sur la configuration de l'ordinateur qui combat (agréssivité et difficulté).

Lancement du serveur Web

  • Ouvrir configuration.pl et mettre le chemin absolu du projet à la place de celui présent : user:file_search_path(projectRoot, '/path/to/root/project').
  • Ouvrir dans prolog le fichier webserver.pl puis entrer le prédicat server(Port), où Port est le numéro du port sur lequel le serveur peut écouter (exemple 8080).
  • Ouvrir un navigateur à l'adresse http://localhost:8080/game (changer 8080 par le port précédemment choisi)
  • Suivez les indications de l'interface pour jouer.

Outils

Vous trouverez plus d'explications sur les outils (génération du SVG et génération de statistiques) : Outils

Tests

L'ensemble des tests unitaires sont dans le dossier tests. Vous pouvez lancer tous les tests en chargeant le fichier tests.pl qui ira automatiquement chercher tous les tests du dossier tests, puis exécuter le prédicat runAllTests..

Présentation

Vous trouverez le support de présentation, explicant nos choix techniques et l'heuristique de l'intelligence artificielle, dans le dossier docs : Présentation.

Architecture

Fonctionnement IHM Console

Architecture des modules pour l'IHM console

Architecture générale

Présentation des interfaces publiques des modules :

Architecture de tous les modules

insa-4if-prolog-abalone's People

Contributors

antitoine avatar estlx avatar hverlin avatar koromodako avatar pjarsaillon avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.