Projet Introduction programmation Java Licence 1 MASS Semestre 2, 2011-2012



Documents pareils
TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

MEGA ITSM Accelerator. Guide de Démarrage

modélisation solide et dessin technique

Le générateur d'activités

Diagramme de classes

CONDITIONS GENERALES D'UTILISATION OFFRE DE LOCATION -

Cours 3 : L'ordinateur

p.2 p Exposé des motifs Texte du projet de règlement grand-ducal Commentaire des articles Fiche financière Fiche d'évaluation d'impact p.

Le tableau comparatif suivant reprend les principaux articles concernant le monde de l édition.

Date : Tangram en carré page

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Conditions générales d abonnement en ligne et d utilisation du site

Monter une photo en médaillon

Télécharger et Installer OpenOffice.org sous Windows

Cahier Technique Différences Batigest Standard/Evolution. Apibâtiment. Documentation technique

Guide utilisateur Archivage intermédiaire Messagerie. Enterprise Connect pour Outlook 2010 EC V 1.0

UTILISATION D'UNE PLATEFORME DE TRAVAIL COLLABORATIF AVEC DES ELEVES DE TERMINALE STG

L'EPS à l'école primaire aucune modification des programmes

Riddle Blocks. Jeu sous Android. - Yann Bertrand. Membres de l'équipe : - Clément Guihéneuf TS5. - Guillaume Renotton TS4

Guide d installation de l Amplificateur Universel Wifi N avec 4 ports réseau

Compte-rendu de projet de Système de gestion de base de données

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

Annexe I. au contrat de service Questel. Tarifs 2015 en Euros

Guide de configuration de SQL Server pour BusinessObjects Planning

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Rapidolect Les Productions de la Columelle ( ) Page 1

elearning.heaj.be Table des matières

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Baccalauréat technologique

ITIL V2. La gestion des incidents

1. QU'EST-CE QUE L'INNOVATION

ORACLE TUNING PACK 11G

NC 06 Norme comptable relative aux Immobilisations incorporelles

Télécom Nancy Année

Recherche dans un tableau

GUIDE INTERMINISTERIEL SUR LES SYSTEMES D'INFORMATION ET APPLICATIONS SENSIBLES

NetSupport Notify (v2.01) Guide de démarrage. Tous droits réservés NetSupport Ltd

ESCALE MANUEL UTILISATEUR SIMPLIFIÉ ÉTAT : VERSION VALIDÉE DGFIP - BUREAU SI-2B - DEPS - ÉCHANGE DE DONNÉES. Version 1.

Guide d'installation de l'amplificateur de signal pour périphériques mobiles Wi-Fi WN1000RP

VLAN Virtual LAN. Introduction. II) Le VLAN. 2.1) Les VLAN de niveau 1 (Port-based VLAN)

MANUEL. de l application «CdC Online» pour Windows. Table des matières

COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.

Open Source Community Governance OpenJustitia

Chapitre 7 - Relativité du mouvement

Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus

Choisir entre le détourage plume et le détourage par les couches.

Cours Langage C/C++ Programmation modulaire

Chapitre 9 : Informatique décisionnelle

Mémo d'utilisation de BD Dico1.6

FinImportExport Documentation Utilisateur Gestion d'environnement dans Fininfo Market

Guide concernant les formulaires Annonce préalable de besoin et Formulation de besoin

Movement - regular - Attack Runs ( mouvement - régulier - missions d'attaque) movement - unlimited - relocating cards between locations

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

Un duo de choc : DocuWare et Microsoft Outlook

Cours: Administration d'une Base de Données

Utilisation d'interwrite avec un vidéoprojecteur interactif EPSON

Utilisation des médicaments au niveau des soins primaires dans les pays en développement et en transition

psychologique Quels enfants entrent dans le système scolaire européen?

Au-delà de la disponibilité «cinq neuf» : atteindre une haute disponibilité avec Dell Compellent Storage Center

AQUAGENIUZ Système de surveillance/ controle de l eau

Didacticiel de mise à jour Web

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

COURS EN LIGNE DU CCHST Manuel du facilitateur/de l administrateur

4. Groupement d objets

Sommaire Créer une page e-commerce Éditer une page e-commerce 2.1 Configuration 2.2 Catégories 2.3 Produits Publication

QTEK 9100 QTEK S200 HP 6915

NOTIONS DE PROBABILITÉS

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

Écrire en ligne et de manière collaborative avec Etherpad. Pour les utilisateurs (enseignants, élèves)

Java 7 Les fondamentaux du langage Java

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Comment faire passer un message

Présentation de l'architecture QlikView. Livre blanc sur la technologie QlikView. Date de publication : octobre

Le défi : L'avantage Videojet :

Dossier projet isn 2015 par Victor Gregoire

inviu routes Installation et création d'un ENAiKOON ID

ACTIVITÉ DE PROGRAMMATION

Conception d'applications de base de données ios plus rapides Guide Pratique FileMaker

Comment devenir éditeur de logiciels libres quand on est une entreprise?

Le droit d auteur dans un environnement numérique : les positions de l IFLA et de l UNESCO 1

Créer un modèle Impress

Serveur de travail collaboratif Michaël Hoste -

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

workshop javascript crm

Logiciel SCRATCH FICHE 02

Les ateliers : Complément.

1.2 - Les dispositions des présentes conditions générales de vente prévalent sur toutes autres.

CAHIER DES CHARGES. Réalisation de site internet AGENCE W3G. Nom de l'entreprise : Adresse : Tel : Contact :

Création d'un questionnaire (sondage)

FÊTE DE LA SCIENCE 2005 (Village des Sciences)

OpenOffice.org Présentation - Débuter. Distribué par Le projet OpenOffice.org

MODALITES D'APPLICATION DE LA KEYMARK. "Refroidisseurs de lait en vrac à la ferme "

FileSender par RENATER - Guide utilisateur

Documentation pour l envoi de SMS

Chapitre 10. Les interfaces Comparable et Comparator 1

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Transcription:

Projet Introduction programmation Java Licence 1 MASS Semestre 2, 2011-2012 Ce projet est à rendre le mardi 10 avril (minuit) par la plateforme JALON de l'ent. Il s'eectue en binôme. 1 But Le but de ce projet est de mettre en oeuvre tous les principes de la programmation Java avec Processing vus pendant l'enseignement à travers un projet de conception d'un petit jeu. 2 Description Le jeu se déroule dans l'espace (un peu particulier). Des planètes circulent en ligne droite dans cet espace. Initialement les planètes ne contiennent pas de eurs. Un vaisseau que le joueur peut contrôler est capable d'envoyer des graines. Lorsqu'une graine touche une planète, les eurs poussent sur celle-ci. Il s'agit pour le joueur de faire pousser des eurs sur toutes les planètes. Si le vaisseau entre en collision avec une planète sans eur, alors le vaisseau est détruit et la partie est terminée. Par contre, une planète avec des eurs ne détruit pas le vaisseau. 3 Développement du projet 3.1 Etape de développement Pour facilier la création du jeu, des étapes de développement sont proposées. Il est conseillé de tester son programme au moins après chaque étape. De même, vous pouvez enregistrer plusieurs versions de programme au fur et à mesure des étapes pour être sùr d'avoir une version fonctionnelle en cas de problème à l'une des étapes. Bien sùr ces étapes sont indicatives et vous avez la liberté de développer votre projet selon une autre conception. [ Etape a ] Il existe 3 types d'objets spaciaux dans notre jeu : vaisseau, planète et graine. La première étape consiste à réaliser une classe décrivant un objet spacial générique, les 3 autres types hériteront de cette objet. Créer tout d'abord une classe ObjetSpacial avec les champs et les méthodes décrites ci-après. Les champs (variables) de cette classe sont: la position (x et y), l'intensité de la vitesse (vitesse) de l'objet et la direction de déplacement (angle). La classe possède également un champ dimension et 3 champs rouge, vert et bleu pour décrire la dimension et la couleur de l'objet. Les méthodes de cette classe permettent de dessiner et déplacer l'objet spacial. La méthode dessiner suivante permet de dessiner l'objet de la couleur spéciée : 1

void dessiner() { fill(rouge, vert, bleu); stroke(rouge, vert, bleu); strokeweight(2); forme(); La méthode forme sera spécique à chaque objet et n'est pas dénie dans la classe ObjetSpacial. La méthode bouger permet de bouger l'objet en déplaçant puis en dessinant à la nouvelle position l'objet. void bouger() { deplacer(); dessiner(); [ Etape b ] Dénir la méthode deplacer qui calcule la nouvelle position de l'objet en fonction de l'intensité de la vitesse et de la direction du déplacement. [ Etape c ] Dénir la classe Vaisseau qui hérite de la classe ObjetSpacial. Vous pouvez dénir la méthode forme spécique au vaisseau. La classe doit possèder un champ touche permet de savoir l'état du vaisseau c'est-à-dire si le vaisseau est entré en collision avec une planète. [ Etape d ] La classe Vaisseau possède 4 méthodes (tournergauche, tournerdroite, accelerer, ralentir) permettant de diriger le vaisseau. Dénir ces méthodes. Naturellement, les champs relatifs à ces méthodes peuvent être dénis. [ Etape e ] Tester et diriger votre vaisseau en programmant également la fonction keyp ressed(). [ Etape f ] Dénir la classe Planete qui hérite de la classe ObjetSpacial. Vous pouvez dénir la méthode forme spécique au dessin d'une planète. Ajouter un champ fleur pour indiquer si la planète est en eur ou non. Modier votre méthode forme pour tenir compte de cette information. [ Etape g ] Dénir une classe Systeme qui permet de représenter l'ensemble des planètes. Cette classe possède donc un champ planetes de type tableau de Planete : Planete [] planetes; Le constructeur de la classe a pour paramètre le nombre de planètes du système. Cette classe devra en plus possèder les méthodes dessiner et bouger qui permettent de dessiner et bouger l'ensemble des planètes. [ Etape h ] Les objets de type graine sont lancés depuis le vaisseau. La portée d'une graine est limitée, et la graine disparait (meurt) si la distance parcourue est au delà de cette portée. Dénir la classe Graine qui hérite de la classe ObjetSpacial. Vous pouvez dénir la méthode forme spécique au dessin d'une graine. Un champ morte indique si la graine est morte ou non, et un champ semee indique si la graine est semée sur l'une des planètes. [ Etape i ] La portee d'une graine est dénie par un champ portee. La distance parcourue distancep arcourue par la graine est également un champ. Dénir une méthode disparition qui calcule la distance parcourue par la graine en fonction de la vitesse et change la valeur du champ morte en fonction de cette distance. [ Etape j ] Dénir une classe Semance qui permet de représenter l'ensemble des graines existantes dans l'espace. Le nombre de graines évoluant avec le temps, la classe possède donc un champ graines de type ArrayList : ArrayList graines; [ Etape k ] Initialement aucune graine n'est présente dans l'espace. Dénir une méthode ajout à la classe Semance qui ajoute une graine à l'environnement. [ Etape l ] Les graines sont lancées par le vaisseau. Ajouter une méthode lancer à la classe Vaisseau qui crée une graine : 2

Graine lancer() { [ Etape m ] Ajouter une méthode dessiner à la classe Semance pour dessiner l'ensemble des graines. [ Etape n ] Ajouter également une méthode disparition à la classe Semance pour actualiser l'état de disparition de chaque graine. [ Etape o ] Ajouter une méthode actualiser à la classe Semance pour à la fois enlever les graines qui sont mortes et bouger les graines encore vivantes. [ Etape p ] Une graine qui touche une planète permet de faire pousser des eurs sur celle-ci. Ajouter une méthode collision à la classe Planete qui permet de changer l'état de la planète et de la graine lorsque celle-ci est touchée : void collision(graine g) { [ Etape q ] Ajouter maintenant la méthode collision à la classe Semance ayant le même rôle pour l'ensemble des graines : void collision(graine g) { [ Etape r ] Ajouter une méthode toucherplanetes pour actualiser les collisions des graines avec l'ensemble des planètes du système : void toucherplanetes(systeme systeme) { [ Etape s ] Ajouter une méthode collision à la classe Vaisseau pour tester la collision entre le vaisseau est une planète : void collision(planete p) { [ Etape t ] Ajouter une méthode collision à la classe Systeme pour tester la collision du vaisseau avec l'ensemble des planètes du système : void collision(vaisseau v) { [ Etape u ] Si ce n'est déjà fait, écriver les méthodes setup et draw pour gérer l'ensemble du jeu. 3.2 Extensions possibles Il est possible d'imaginer de nombreuses extensions à ce projet comme par exemple : Achage d'un message de n de partie Un système de comptage de points 3

Création de niveaux de diculté croissante au fur et à mesure du déroulement du jeux Perturber le mouvement des planètes avec un peu de bruit Ajouter plusieurs types de planètes Ajouter plusieur types de graines Ajouter un système de bouclier au vaisseau. Vous aurez surement d'autres idées et envies. 4 Livrables Trois types de travaux complémentaires sont à rendre: (i) un document de synthèse de votre projet qui permet d'exposer rapidement les travaux préparatoires, les fonctionnalités, et les points techniques de votre projet ; (ii) une présentation orale qui permet de mettre en avant vos motivations, la pertinence de vos choix de conception et permet d'appréhender de manière concrète les fonctionnalités du projet ; (iii) l'ensemble du code source de votre projet pour pouvoir juger de la qualité de votre production. 4.1 Document de synthèse Ce document ne doit pas dépasser 2 pages. Le format électronique du document est obligatoirement pdf. Vous devez porter sur ce document les noms et prénoms de chaque membre du binôme. La synthèse doit comporter 3 parties : travaux préparatoires, fonctionnalités, et points techniques. La première partie "travaux préparatoires" doit au moins décrire l'interprétation que vous donnez au projet (analyse des besoins, etc.), les choix généraux et originaux que vous avez fait (les extensions, etc.), l'architecture générale du code que vous avez développé (choix des classes, des structures de données, des méthodes, etc.). La deuxième partie doit présenter les fonctionnalités de votre projet, c'est-à-dire les fonctionnalités d'utilisation. Elle doit aussi présenter les étapes que vous avez suivi lors de la conception de votre projet. Enn la dernière partie doit détailler 1 ou 2 points les plus techniques de votre projet. Par exemple, détailler le code qui permet de faire gèrer les collisions, ou compter les points. Cette synthèse doit mettre en avant les qualités de votre travail. 4.2 Présentation orale La présentation orale est d'une durée maximale de 10 minutes dont au moins 2 minutes de questions. Elle consiste en quelques transparents et une démonstration de l'utilisation de votre projet. Cette présentation doit montrer évidement présenter les fonctionnalités de votre projet mais également les motivations de ces choix de fonctionnalité que vous avez fait et leur intérêt. Vous pourrez détaillé un point technique particulier qui met valeur votre travail. Enn une démonstration d'utilisation doit être réalisée. Une démonstration est toujours délicate à mettre en oeuvre, il est fortement conseillé de la répéter correctement. 4

4.3 Code source Le code source doit être le plus lisible possible avec des commentaires pertinents. Les noms des diérents chiers, variables, méthodes et objets utilisés doivent être signicatifs. L'ensemble du code source qui permet le fonctionnement correct du projet doit être contenu dans un dossier nommé code. Le programme principal qui permet l'exécution du projet doit se situer dans ce dossier code et se nommer jeu.pde. Le dossier code ainsi que le document de synthèse doivent être contenus dans un dossier portant votre nom. Ce dossier doit être compressé au format d'archivage zip et rendu par l'intermédiaire de la plateforme JALON de l'ent de l'université. 5