Licence STS, semestre 4 2009–2010
Langages et Génie Logiciel (Info 223)TP 1
Mise en place de la boucle principale du projet
L’objectif de ce TP est de réaliser un programme qui affiche un vaisseau et interprète les touches de déplacement de ce vaisseau.
-
Récupérer le fichier base.tar.gz sur le site du cours.
- tar xzf base.tar.gz decompresse l’archive et crée un répertoire base qui contient les fichiers nécessaires à la réalisation du projet.
- Lire l’énoncé du projet et les fichiers input.mli et draw.mli qui décrivent les fonctions dont vous disposez pour réaliser votre projet.
- Créer un fichier (par exemple main.ml) dont l’expression finale est une boucle qui affiche le vaisseau du joueur, attend une entrée sur le clavier et effectue le déplacement correspondant. On pensera à :
-
représenter l’état du jeu;
- appliquer la fonction Draw.update qui met à jour l’affichage
- Pour compiler votre fichier main.ml vous devez effectuer les commandes suivantes:
-
ocamlc -c input.mli draw.mli
à effectuer une seule fois pour compiler la description des fichiers d’interface
input.mli draw.mli.
- ocamlc -I +sdl -o lglshoot bigarray.cma sdl.cma sdlloader.cma sdlttf.cma input.ml draw.ml main.ml
Cette commande compile les fichiers input.ml draw.ml main.ml en utilisant les bibliothèques sdl, elle crée un programme exécutable appelé lglshoot.
- pour tester votre programme, il suffit d’entrer la commande ./lglshoot.
- Affiner votre programme:
-
s’assurer de l’absence d’erreur à l’exécution (exception non rattrapée, segmentation fault...)
- introduire un délai de 10 ms entre deux affichages
Informations complémentaires
Pour faire tourner votre projet chez vous, il est conseillé d’utiliser une distribution linux.
Avec des packages Ubuntu ou debian, il faudra installer:
-
ocaml pour le compilateur Ocaml, vous pouvez également installer la documentation ocaml-doc;
- libsdl-ocaml-dev pour utiliser les outils graphiques de la bibliothèque sdl.
- emacs pour éditer vos fichiers et tuareg-mode pour avoir un mode de coloriage/indentation adapté à Ocaml.
Ce document a été traduit de LATEX par HEVEA