Mini-projet. guillaume.wisniewski@limsi.fr. Info Min-Proj. Guillaume Wisniewski. janvier 2015 LIMSI UPS

Documents pareils
Analyse de performance, monitoring

Améliorer les performances du site par l'utilisation de techniques de Web Mining

Séquencer une application

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Générer du code à partir d une description de haut niveau

PROCEDURE ESX & DHCP LINUX

Environnements et Outils de Développement Cours 1 Introduction

Web Science. Master 1 IFI. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.

Introduction à Eclipse

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Comment réaliser une capture d écran dans Word. Alors comment ouvrir une page Word?

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

Logiciel photothèque professionnel GUIDE D UTILISATION - 1 -

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Envoyez un ou plusieurs s

TUTORIEL : Formulaire sur Google : Saisie des réponses questionnaires comptoir Mise en place de questionnaires à distance

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d ing.

Diigo : fonctions avancées

Création d un site web avec Nvu

Fiche pédagogique Réaliser une FSE en Tiers-Payant Intégral ACS

1 Démarrage de Marionnet

Devenez un véritable développeur web en 3 mois!

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Tutoriel QSOS. Version /02/2013

Description pas à pas des différents processus d installation, configuration, saisie des résultats et export des données.

TP Git. Author : Cedric Dumoulin Date : 2 déc Rev : 9 Dec. 2014

Vérifier la qualité de vos applications logicielle de manière continue

Monitoring d un Datacenter du concept à la réalisation

FEN FICHE EMPLOIS NUISANCES

Travail avec soin et concentration

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

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

Quick Start Installation de MDweb version 2.3

Projet De Stijl Plate-forme pour robots mobiles

1. Visualiser la «carte» de mon réseau social

CAPTURE DES PROFESSIONNELS

Plateforme de capture et d analyse de sites Web AspirWeb

Solution d intelligence marketing et CRM

ESPACE COLLABORATIF. L Espace Collaboratif : votre espace de partage entre acteurs régionaux

Installer Joomla Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring

Table des matières. 1. Création et suppression d un compte p.

Une fois votre tableau excel complet, cliquer sur fichier enregistrer sous type de fichier (menu déroulant) csv (séparateur : point virgule).

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

CQP Développeur Nouvelles Technologies (DNT)

et de suivi de la corpulence des enfants

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

Google Adresses. Validez la fiche de votre entreprise ou organisation sur Google Maps

Algorithmique I. Algorithmique I p.1/??

BONNE NOUVELLE, À PARTIR DE DEMAIN 15 AOÛT 2014, l inscription en ligne sera disponible à partir du site de l ARO.

SOMMAIRE. Comment se connecter?

Cours 1 : La compilation

Astuce N 1 : Consulter mon catalogue articles en mode liste puis en mode fiche : recherche du prix d'une référence, consultation du stock

Ces deux machines virtuelles seront installées sous VMWARE WORKSTATION.

Le digital et l assurance Antoine Denoix AXA France. 17 février 2015 / FANAF / Madagascar

eproject Manuel utilisateur Version 0.0

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Logiciel Le Sphinx Plus 2 version 5. Le Sphinx Développement Chavanod

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

HTTP Commander. Table des matières. 1-Présentation de HTTP Commander

Procédure d installation pour WinEUR PROCÉDURE D INSTALLATION POUR WINEUR. Copyright GIT SA 2015 Page 1/16

Décompresser, créer une archive au format «ZIP»

Celestia. 1. Introduction à Celestia (2/7) 1. Introduction à Celestia (1/7) Université du Temps Libre - 08 avril 2008

Rapidolect Les Productions de la Columelle ( ) Page 1

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Mise à jour d avast! et de vos logiciels Ciel

Installation de Microsoft Office Version 2.1

Réalisation de cartes vectorielles avec Word

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

Silhouette Studio Leçon N 2

TP1 : Initiation à Java et Eclipse

CONFIGURATION DE L AUTOMATE SIEMENS

Étape 1 : Création d une adresse courriel GMAIL

Campagnes d ings v.1.6

Service envoi de SMS. Introduction. Configuration de chaque plateforme. Paramétrages dans DiaClient SQL. Utilisation

Cours 1 : Qu est-ce que la programmation?

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

GUIDE D UTILISATION INTERNET POUR LE PERSONNEL DE LA C.S. DES LAURENTIDES

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

Installation d un manuel numérique 2.0

Guide d implémentation. Réussir l intégration de Systempay

Option site e-commerce

C RÉATION DE PDF (1) Cours SEM 205 Mieux utiliser le format PDF

Lancez le setup, après une phase de décompression, la fenêtre d installation des prérequis apparaît, il faut les installer :

Utilisation de la clé USB et autres supports de stockages amovibles

CONTACT EXPRESS 2011 ASPIRATEUR D S

Gestion de tests et tests de performance avec Salomé-TMF & CLIF

Transférer des dossiers sur un disque amovible Votre support de formation

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

ENVOI EN NOMBRE DE MESSAGES AUDIO

PROSPECTION CLIENTS. À Présentation : PROSPECT. 2 Téléchargement. 3 Installation. 6 Ecran d accueil. 7 Paramétrage. 13 Utilitaires

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Google Tag Manager. «Vous ne verrez plus l'analytics de la même manière» par Ronan CHARDONNEAU

ARCHIVAGE / SIGNATURE ELECTRONIQUE

Transcription:

Mini-projet Info Min-Proj Guillaume Wisniewski guillaume.wisniewski@limsi.fr LIMSI UPS janvier 2015

Première partie I Organisation

Objectifs programmer «in the large» (plusieurs personnes, plusieurs classes, longue durée,...) mettre en œuvre les (bonnes) pratiques enseignées dans les différents cours de programmation s amuser

En pratique groupe de 3 ou 4 (chacun devant contribuer de manière équivalente) projet en java 1 cours + 10 séances de TP groupe 1 : Jialin Liu (jialin.liu@inria.fr) groupe 2 : Nicolas Galichet (galichet.nicolas@gmail.com) + travail personnel (code + lecture)

Évaluation 1. contrôle continu : état d avancement 2. examen final : code + rapport court ( 10-15 pages) travail effectué + contribution de chacun organisation du code (choix architecture) modalités précisées ultérieurement

Exemple de rapport Ce qu il ne faut pas faire... La fonction a contient une boucle for allant de 1 à t.length - 1 qui parcourt tous les éléments du tableau t mauvais nom de variables + for au lieu de foreach (surtout) décrit ce que fait le code et non pourquoi on fait ça Ce qu il faut faire... Le programme est organisé autour de 3 classes principales. La première... La seconde classe correspond à la gestion de l affichage graphique... Pour contrôler l affichage la classe A a un attribut de type B

Le sujet Programmer une «IA» capable de jouer à Sushi Go Round www.miniclip.com/games/sushi-go-round/en

Démo

Deuxième partie II Principe du code à réaliser

Principe de l IA jeu à base de sprits sprits = élément graphique de taille fixe, placé à une position donnée objectif : identifiée les commandes (identifier les sprits des sushi) + les fabriquer (cliquer à des positions prédéfinis)

Plus précisement (1) commandes toujours à la même position (par rapport à l écran de jeu) comparaison pixel à pixel

Plus précisement (2) position du clic : capture d écran + afficher les coordonnées du pixel

Principe de l algorithme Gestion du menu principal réaliser les différents clics permettant d accéder au jeu Niveau 1. identifier les nouvelles commandes identification des sprits 2. vérifier le niveau des ingrédients gérer les comptes «à la main» et passer éventuellement commande 3. réaliser les commandes 4. de temps en temps : cliquer sur les assiettes Passage au niveau suivant détecter échec/succès et réaliser les clics correspondants

Troisième partie III Évaluation

Critère d évaluation 1. Faire du code «qui marche» est-ce que votre programme tourne / n a pas un comportement complètement stupide 10 points 2. Faire du code qui est «beau» (clair, compréhensible, facilement modifiable,...) 6 points 3. Au choix 4 points : réfléchir à une stratégie optimale réfléchir à

1 er critère : faire du code qui marche démo : une fois l url entrée on est capable de i) jouer ii) passer les 2 premiers niveaux aspect du jeux à prendre en compte : identifier les commandes les réaliser commander les ingrédients

2 e critère : qualité du code qualité du code : utilisation des bonnes structures de données, convention de code,... qualité de l architecture : choix des classes/interfaces, échange des informations entre classes, respect de l encapsulation,... il n y a pas 1 unique bonne réponse essentiellement : rapport pour justifier ce que vous avez fait montrez nous que vous avez réfléchi......et que le résultat de vos réflexion est crédible

3 e critère question «bonus» = pour aller plus loin au choix : aspect «génie logiciel» : adapter/modifier l architecture pour que votre logiciel soit capable de jouer à un autre jeu : Cardinal Color Finger Holy Stomping aspect «intelligence artificielle / optimisation» : trouver la stratégie qui permet d obtenir le meilleur score : dans quel ordre répondre aux commandes? quand commander? quand débarrasser?

Quatrième partie IV Outils/Conseils

Les outils dont vous aurez besoin Classes de l API standard BufferedImage et ImageIO pour la manipulation des images Robot pour la manipulation de la souris + accès à l écran Outils profiler : pour identifier les parties du code qu il faut optimiser gestionnaire de version : faciliter le partage de code

Java Profiler Principe Jeu «en temps réel» il faut prendre des décisions «rapidement» profiling = analyse d un logiciel pour connaître son comportement lors de l exécution consommation mémoire consommation CPU... Mise en œuvre beaucoup d outils conseillé : JVM Monitor intégré directement à Eclipse http://www.jvmmonitor.org/doc/index.html

En pratique

Gestionnaire de version (1) Objectifs garder une trace de toutes les modifications qui ont été faites sur un ensemble de fichiers 1. documentation 2. retrouver une version qui marche partager des fichiers entre plusieurs personnes 1. partager les modifications (tout le monde est «informé» d une modification d un des fichiers) 2. éviter de perdre des modifications

Perte de modifications

Lecture Principe et intérêt des contrôles de version http://betterexplained.com/articles/ a-visual-guide-to-version-control/ http://git-scm.com/video/what-is-version-control Logiciels git : logiciel de gestion de versions github : service web d hébergement et de gestion de développement de logiciels

Les conseils pour bien commencer ne commencez pas à coder trop vite : réfléchir à l organisation générale de votre code (classes, interface,...) partage des responsabilités... n attendez pas trop pour commencer à coder la plupart des problèmes ne sont pas prévisibles à l avance important d avoir rapidement un «prototype» qui marche cliquer à un endroit donné reconnaître la fenêtre de jeu... tester au fur et à mesure + éviter les régressions tests unitaires