Concours de Programmation ULCO 2013



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

KWISATZ MODULE PRESTASHOP

Logiciel DELF-DALF - Mise à jour vers la version (septembre 2014)

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

(Mis à jour : 7 déc. 12)

Introduction à Eclipse

Guide d installation CLX.PayMaker Office (3PC)

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Tutorial Terminal Server sous

Le langage C. Séance n 4

Tutorial et Guide TeamViewer

Démarrer et quitter... 13

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

SurveyMonkey Un outil de sondage électronique. Objectifs

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

Installation et configuration du serveur syslog sur Synology DSM 4.0

Quels sont les espaces disponibles sur l ordinateur pour stocker ses documents et comment accéder facilement au dossier «My Documents»?

Installation et compilation de gnurbs sous Windows

Configuration de la Borne Interactive

Guide de l utilisateur Mikogo Version Windows

Prise en main d une Cyberclasse

Manuel Utilisateur MISE A JOUR DU CLIENT SOFIE VERS LA VERSION 5. v0.99

Rechercher l accès d une transaction dans l arborescence SIFAC. Le résultat s affiche : Terminer directement une transaction. Fermer un mode en cours

Cette option est aussi disponible sur les clients Windows 7 sous la forme d un cache réparti entre les différentes machines.

Administration du site (Back Office)

1 Gestionnaire de Données WORD A4 F - USB / / 6020 Alco-Connect

CREG : versailles.fr/spip.php?article803

Access 2007 FF Access FR FR Base

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Outlook Présentation.

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

RoomMate Guide de l'utilisateur

Utilisation du client de messagerie Thunderbird

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

ZEROSHELL NET BALANCING. Julien Dabin Page 1

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Installation et prise en main

Création WEB avec DreamweaverMX

MEDIA NAV Guide de téléchargement de contenus en ligne

COURS WINDEV NUMERO 3

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Documentation Annexe sur le PGI :

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Manuel utilisateur (Manuel_utilisateur_version pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version

TP01: Installation de Windows Server 2012

Initiation à LabView : Les exemples d applications :

CONTACT EXPRESS 2011 ASPIRATEUR D S

Guide de démarrage rapide. (pour la version 5.0.)

GPI Gestion pédagogique intégrée

SAUVEGARDER SES DONNEES PERSONNELLES

Guide de l utilisateur Communauté virtuelle de pratique en gestion intégrée des risques

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Mes documents Sauvegardés

Restauration des sauvegardes Windows Server sur 2008 R Sommaire

Certificats Electroniques sur Clé USB

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

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

Le pare-feu de Windows 7

Installation poste de travail. Version /02/2011

Manuel. Administration P.CONSEIL. 12 avril Statut :

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

BOSS : Bourses régionale du Sanitaire et du Social GUIDE UTILISATEUR ETUDIANT

Installation d un manuel numérique 2.0

Documentation Technique du programme HYDRONDE_LN

Foire aux questions (FAQ)

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Tutorial pour l installation et l utilisation de CREO et de Windchill

Thunderbird est facilement téléchargeable depuis le site officiel

User Manual Version 3.6 Manuel de l Utilisateur Version

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP Interfaces Multimodales


1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Procédure d import des bases de données GestCab vers Médicab version 10.

Manuel d installation Version Evolution réseau Ciel Compta Ciel Gestion commerciale Ciel Associations

Utilisez Toucan portable pour vos sauvegardes

Pluridisciplinarité. Classe de BTS DATR

Guide Utilisateur Transnet

EXTRACTION ET RÉINTÉGRATION DE COMPTA COALA DE LA PME VERS LE CABINET

I / La démarche à suivre pour l installation de l application-crm

SQL Data Export for PS/PSS

TCHATONS PAR LIAISON SANS FIL BLUETOOTH

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

Tutorial sur SQL Server 2000

Sauvegarde et Restauration d un environnement SAS

Suite logicielle ZOOM version 7.1 Guide d installation 94ZM-ZMJ1F-712

MEGA ITSM Accelerator. Guide de démarrage

F7495. Guide Windows 8 pour ordinateurs portables ASUS

Manuel de System Monitor

NOOBÉ GUIDE DE PRISE EN MAIN SOMMAIRE. INSTALLER Installer le logiciel Lancer le logiciel Découvrir NOOBÉ

GUIDE D UTILISATION. Informations importantes Toshiba FOLIO 100 Conseils pour une première utilisation, configuration et principaux usages

KM2 W1 EVC1 M3~ Manuel AUTOMSIM API 24V. BP Dcy 1MINI 1MAXI.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Projet de Java Enterprise Edition

Sauvegarder automatiquement ses documents

Certificats Electroniques sur Clé USB

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Transcription:

Concours de Programmation ULCO 2013 Notice d aide à l utilisation de Prog&Play 7 mars 2013 Introduction Le concours de cette année a pour cadre un jeu de stratégie temps réel, basé sur le moteur Spring, dont vous programmerez certaines unités via une API nommée Prog&Play. L objectif sera d écrire une IA permettant de contrôler plusieurs unités de combat, qui devront éliminer les unités de l adversaire. Pour installer l environnement de développement et de jeu, vous suivrez les étapes suivantes : Décompressez l archive qui vous est fournie sur la clé USB à l endroit que vous souhaitez, par exemple sur le bureau Windows; Cette archive contient les dossiers suivants (en plus de cette documentation) : CPU2013 Geany : une petite interface de développement, paramétrée pour être utilisée avec Prog&Play et le moteur Spring; CPU2013 spring : le moteur du jeu. Démarrage du jeu Deux programmes doivent être lancés pour pouvoir démarrer le jeu et l interface de développement : lancez le programme spring.exe qui se trouve dans le dossier spring; lancez le fichier batch geanylauncher.bat qui se trouve dans le dossier Geany. La connexion entre l environnement de développement Geany et le jeu se fait automatiquement en suivant les étapes suivantes : Écrire le code de votre IA, en langage C et en utilisant l API Prog&Play (voir les exemples); Compiler et construire l exécutable de votre programme (bouton Construire); 1

Lancer l exécution (bouton Exécuter). Votre IA est alors envoyée au programme de jeu qui l utilise pour contrôler vos unités. À noter qu en cours de partie, vous avez normalement la possibilité de modifier votre IA, recommencer les étapes de compilation et de renvoyer l exécutable au jeu qui utilisera immédiatement cette nouvelle version. Ceci pourra être utile lors de la phase de mise au point, mais il vous sera interdit de modifier dynamiquement votre IA lorsqu une partie sera entamée durant le concours. Entraînement Avant de commencer le développement de votre IA, vous pouvez réaliser les différentes mission du tutorial, afin de prendre en main l API. Pour ce faire, sélectionnez les items suivants dans le menu inférieur droit du jeu s ils n apparaissent pas automatiquement (voir figure 1) : CPU2013 1.0 Marble Madness Map Commanders Figure 1 Aperçu de l interface de démarrage du jeu Choisissez enfin l option Test the Game dans la partie supérieure gauche de l interface. Vous pouvez ensuite réaliser chacune des missions qui sont proposées, afin de tester les différentes fonctionnalités disponibles. Il est conseillé de sauvegarder chaque mission du tutorial dans un fichier d extension.c différent, de manière à en garder une trace pour la suite du concours Le fichier Geany/Exemple/mission1.c permet de réaliser la première mission et vous donne un aperçu de la manière d écrire un programme avec l API Prog&Play. La suite de cette petite documentation a pour but d être un complément au tutorial Plug&Play et référence diverses fonctionnalités utilisables avec cette API dans le cadre 2

de ce concours; d autres fonctionnalités existent mais ne seront pas (et ne doivent pas, sous peine d être éliminé ) utilisées. Les unités Vous avez la possibilité d utiliser deux types d unité différentes : l unité BIT et l unité ASSEMBLER : l unité BIT est une unité d attaque et peut se déplacer rapidement; elle est représentée par l image de la figure 2a; l unité ASSEMBLER est une unité assez lente, qui permet essentiellement de réparer les unités touchées. Elle est représentée par l image de la figure 2b. Les noms de ces unités correspondent à des constantes que vous pourrez utiliser dans votre programme. (a) Un assembler (b) Un bit Figure 2 Une vue des 2 unités que vous utiliserez. Fonctions de gestion de Prog&Play Vous devez utiliser les deux appels de fonctions suivants au démarrage de votre application Prog&Play et à la fin de celle-ci : int PP Open(void) : permet l ouverture et l initialisation de l API Prog&Play. Cette fonction doit être appelée avant toute utilisation d une fonction de la librairie; elle retourne 0 en cas de succès, -1 sinon. int PP Close(void) : permet de refermer l API; elle retourne 0 en cas de succès, -1 sinon. Types prédéfinis Deux types principaux sont définis dans l API : PP Unit : ce type permet de représenter une unité d un type quelconque; il n est pas nécessaire de connaître les détails de son implantation. PP Pos : ce type permet de représenter une position 2D sur la carte du jeu. Vous pouvez accéder aux coordonnées d une position par l intermédiaire de deux champs nommés x et y. 3

Exemple PP_Pos maposition; maposition.x = 813; maposition.y = 1986; if(maposition.x<=1000 && maposition.y >= 256) Constantes L API Prog&Play définit de nombreuses constantes utilisables par vos programmes; parmi celles-ci, en voici quelques-unes que vous pourrez utiliser : BIT : nom de vos unités de combat; ASSEMBLER : nom de votre unité de réparation; MY COALITION : nom de la coalition d unités que vous dirigez; ENEMY COALITION : nom de la coalition ennemie; MOVE : nom de l ordre de déplacement STOP : nom de l ordre d arrêt pour une unité ATTACK : nom de l ordre d attaque (valable uniquement pour les unités de type BIT); REPAIR : nom de l ordre de réparation (valable uniquement pour les unités de type ASSEMBLER). Gestion des unités int PP IsGameOver(void) : permet de tester si la partie est terminée ou pas. retourne : une valeur positive si la partie est terminée, 0 sinon et -1 en cas d erreur. PP Pos PP GetMapSize(void) : permet de récupérer les dimensions de la zone de jeu; les valeurs de position (en x et en y) sont des valeurs supérieures ou égales à 0, l origine se trouvant dans le coin supérieur gauche de la zone. En cas d erreur, l une des valeurs de coordonnées est négative. int PP GetNumUnits(PP Coalition c) : retourne le nombre d unités disponibles dans la coalition passée en paramètre. Les valeurs de coalitions possibles sont MY COALITION et ENEMY COALITION. On précise qu en ce qui concerne la coalition ennemie, seules les unités visibles par le joueur (non cachées par le brouillard de combat) sont comptabilisées au moment de l appel de la fonction. En cas d erreur, la valeur retournée est -1. PP Unit PP GetUnitAt(PP Coalition c, int index) : retourne la n eme unité (visible) de la coalition souhaitée. Le paramètre c représente le nom de la coalition à utiliser (MY COALITION ou ENEMY COALITION) et index le numéro de l unité souhaitée. On précise que index doit être une valeur comprise entre 0 (première unité de la coalition) et index 1 (dernière unité visible de la coalition). La fonction retourne 4

la valeur -1 en cas d erreur. int PP Unit GetType(PP Unit unit) : permet de déterminer le type de l unité passée en paramètre. Les valeurs de retour possible seront BIT, ASSEMBLER ou -1 en cas d erreur. PP Pos PP Unit GetPosition(PP Unit unit) : permet de récupérer la position actuelle de l unité passée en paramètre. En cas d erreur, l une des coordonnées de la position récupérée contiendra la valeur -1.0. float PP Unit GetHealth(PP Unit unit) : permet de récupérer l état de santé actuel de l unité passée en paramètre. La valeur -1.0 est retournée en cas d erreur. float PP Unit GetMaxHealth(PP Unit unit) : permet de récupérer la valeur maximale de santé dont peut disposer l unité passée en paramètre. La valeur -1.0 est retournée en cas d erreur. int PP Unit ActionOnUnit(PP Unit unit, int action, PP Unit target) :ordonne à une unité (paramètre unit d effectuer une action (paramètre action sur une autre unité (paramètre target). Les actions possibles sont, selon le type de l unité : ASSEMBLER : REPAIR qui permet de réparer l unité passée en paramètre en augmentant progressivement son capital santé jusqu à son maximum; BIT : ATTACK qui spécifié l unité ennemie que doit attaquer l unité sous le contrôle du joueur. La fonction retourne 0 en cas de succès, 1 en cas d erreur. On précise, en ce qui concerne l ordre de réparation donné à un ASSEMBLER, que celui-ci restera valide pour l unité ciblée tant que celle-ci ne sera pas entièrement réparée ou qu un autre ordre de réparation ne sera pas donné. Exemple 1 Cet exemple déclenchera la réparation de l unité u. PP_unit assembler = PP_unit u = PP_Unit_ActionOnUnit(assembler, REPAIR, u); Exemple 2 Cet exemple déclenchera une demande de réparation de l unité u1, immédiatement suivie d une demande de réparation de l unité u2. De ce fait, la première demande sera immédiatement interrompue pour passer à la seconde et seule la seconde unité sera réparée. PP_unit assembler = PP_unit u1 = PP_unit u2 = PP_Unit_ActionOnUnit(assembler, REPAIR, u1); PP_Unit_ActionOnUnit(assembler, REPAIR, u2); 5

Exemple 3 Pour obliger l assembler à réparer les deux unités successivement, il faudrait écrire une boucle permettant d attendre la fin de la réparation de la première unité avant de passer à la seconde : PP_Unit_ActionOnUnit(assembler, REPAIR, u1); while(pp_unit_gethealth(u1) < PP_Unit_GetMaxHealth(u1)); PP_Unit_ActionOnUnit(assembler, REPAIR, u2); Ce type de fonctionnement vous sera utile dans la mission 7 du tutorial; par contre, il est bloquant pour l IA tant que la boucle while n est pas terminée, ce qui peut être peinalisant dans le cadre du combat à réaliser dans ce concours. Il faudra donc réfléchir à une autre manière de faire ces tests int PP Unit ActionOnPosition(PP Unit unit, int action, PP Pos pos) :ordonne à une unité (paramètre unit d effectuer une action (paramètre action à une position donnée (paramètre pos). Les actions possibles sont, pour les deux types d unité que vous utiliserez : MOVE : déplacement d une unité à une position donnée ATTACK (BIT uniquement) qui permet d attaquer une position donnée. 6