+ All Categories
Home > Documents > Risk Star Warsrisk.star.wars.free.fr/download/Rapports/Soutenance_I.pdf · Unbound alVue Star Wars...

Risk Star Warsrisk.star.wars.free.fr/download/Rapports/Soutenance_I.pdf · Unbound alVue Star Wars...

Date post: 09-Sep-2018
Category:
Upload: votuyen
View: 215 times
Download: 0 times
Share this document with a friend
22
Transcript

Risk Star Wars

Antoine BELIN (belin_a)Christopher TAUPIN (taupin_c)

Patrice DE SAINT STEBAN (de-sai_p)Thibault ROBIN (robin_t)

le 19 novembre 2004

1

UnboundValue

Star Wars RiskPremière Soutenance

Table des matières

1 Aperçu du Projet 31.1 Présentation Générale du Jeu . . . . . . . . . . . . . . . . . . 31.2 Présentation du Travail Collectif . . . . . . . . . . . . . . . . . 3

2 Règles et Aspects du Jeu Visés 42.1 Menu du Jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Répartition et déplacement des Troupes . . . . . . . . . . . . . 52.3 Phases de Combat . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 Fin de la Partie . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 La Carte Galactique 73.1 Création . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2 Déplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.3 A�chage des Calques et Sprites . . . . . . . . . . . . . . . . . 93.4 Le Panneau de Contrôle . . . . . . . . . . . . . . . . . . . . . 9

4 Les Premières Fonctions 114.1 Constantes, Types et Enregistrements . . . . . . . . . . . . . . 114.2 Procédure de Distribution Planétaire . . . . . . . . . . . . . . 124.3 Fonction-Procédure d'A�chage Planétaire . . . . . . . . . . . 134.4 Procédure Génèse . . . . . . . . . . . . . . . . . . . . . . . . . 134.5 Répartition des unités . . . . . . . . . . . . . . . . . . . . . . . 164.6 Procédure de combat (en cours) . . . . . . . . . . . . . . . . . 164.7 Finalité du Programme . . . . . . . . . . . . . . . . . . . . . . 18

5 Début de création de notre futur site 19

6 Découvertes des Di�érent Logiciels Utilisés 206.1 Latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.2 Easy PHP / PHP coder . . . . . . . . . . . . . . . . . . . . . 206.3 Photoshop CS / Image Ready CS / Corel Painter IX . . . . . 206.4 3DSMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.5 Borland Delphi 7 . . . . . . . . . . . . . . . . . . . . . . . . . 21

7 Conclusion et prévisions pour la 2e soutenance 22

EPITA 2 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

1 Aperçu du Projet

1.1 Présentation Générale du Jeu

Le jeu en cours de développement est une adaptation du célèbre jeu desociété Risk en version Star Wars. Il comprend à première vue des règlessimilaires au jeu de société version Seigneur des Anneaux. En bref, ce jeudoit se dérouler sous forme de jeu de plateau. Le but du jeu est de conquérirles di�érents secteurs de la galaxie ou de remplir des missions données endébut de partie. La conquète des planétes se fait en lançant aléatoirementdes dés par exemple, et le résultat marquera la victoire ou la défaite dujoueur, suivant les règes de combat établies.

1.2 Présentation du Travail Collectif

Le groupe s'est scindé en deux sous-groupes a�n de pouvoir avancer plusrapidement sur les principaux points de travail. Cela présente des avantages,mais aussi des inconvénients qu'il nous a fallu maîtriser. Avantages par la ra-pidité d'exécution et par son e�cacité, et inconvénients par la spécialisationdes deux sous-groupes dans certains domaines et non dans le tout : ainsi ilfaut donc que chacun prenne connaissance des parties avec lesquelles il n'estpas familier, et sur lesquelles il n'a pas travaillé.

Durant la période précédent la première soutenance, Antoine a réalisé un�chier LaTeX sur les visées du jeu, explicitant la forme et les aspects clés.

Patrice, qui a avancé plus rapidement que les autres membres du groupe,a mis en place une ébauche de site et a avancé sur la partie programmationdu jeu en réalisant quelques fonctions principales de base.

Christopher s'est imprégné des di�érents logiciels qu'il devra utiliser par lasuite, et a cherché du côté de l'implémentation et de l'initialisation de Di-rectX sous Delphi, par l'intermédiaire de DelphiX.

En�n, Thibaut a recréé une belle carte de la galaxie, ce qui nous servirade support principal en arrière plan du jeu, et au niveau de certaines règlesindispensables.

Le reste fut mis au point en groupe, comme l'accord sur les règles, ou autresréglages, et au niveau de l'organisation du groupe, régulièrement : tous lesmardi après-midis.

EPITA 3 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

2 Règles et Aspects du Jeu Visés

Nous avons cherché à harmoniser nos points de vue sur les aspects gra-phiques du jeu. Pour ce faire nous avons décidé de mettre au point un autre�chier en format LaTeX. Antoine a rédigé ce �chier sur lequel il a exprimésa propre vision du jeux. Puis ce �chier a été révisé par les autres membresdu groupe et a été remanié en conséquence. Ce �chier permet d'éviter de seposer des questions inutiles et de pouvoir se concentrer sur les questions defond. Il permet également une progression plus rapide pour toute la partiegraphique de notre jeux.

2.1 Menu du Jeu

Après le lancement du jeu, le menu principal de commande du jeu s'a�-chera. Il comportera di�érents onglets, à savoir :

Mode Solo :- Conquète de la Galaxie- Rejoindre l'Alliance Rebelle- Rejoindre l'Empire Galactique

- Campagne- Rejoindre l'Alliance Rebelle- Rejoindre l'Empire Galactique

- RetourMode Multijoueurs :

- Machine Unique- Rejoindre l'Alliance Rebelle (grisé si déjà choisi)- Rejoindre l'Empire Galactique (grisé si déjà choisi)

- Protocole TCP-IP- Rejoindre l'Alliance Rebelle (grisé si déjà choisi)- Rejoindre l'Empire Galactique (grisé si déjà choisi)

- RetourOptions Quitter le Jeu

Deux joueurs seulement ont été prévus lors de la rédaction de ce �chier.Néanmoins, la création d'autres joueurs pourrait se faire rapidement si nousavons terminé le jeux pour deux joueurs.

EPITA 4 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

2.2 Répartition et déplacement des Troupes

Optionellement, une cinématique s'enclenche lors du choix de l'ongletconquète, puis laisse place au jeu. Le joueur peut alors se familiariser avec larépartition aléatoire des di�érentes planètes lui ayant été attribuées. Une foisceci e�ectué, il doit cliquer sur un bouton a�chant Nouvelles A�ectations,et le jeu lui donne alors l'obligation de placer le nombre de troupes �xées luiétant attribué. Il apparaît alors dans ce que l'on appellera par la suite le ca-dran 1, une zone comportant le nombre d'unités disponibles, un emplacementmodi�able par le joueur a�n d'ajouter ou de soustraire le nombre d'unitésvoulues au nombre d'unités disponibles (impossible de soustraire plus quele nombre d'unités disponibles), un bouton de validation local, validant unerépartition du nombre souhaité d'unités, le transférant vers la planète sou-haitée.

A�n de rendre la répartition possible, un seconde cadran du panneau decontrôle doit être présent : celui d'une planète sélectionnée directement surla carte générale. Lors du transfert d'unités du cadran1 vers la planète, letransfert ne s'e�ectuera que dans un seul sens (cadran 1 vers cadran 2), pouréviter les téléportations de troupes de la planète vers la répartition, mais uneannulation du dernier transfert sera néanmoins possible optionellement. Lejoueur ne pourra plus répartir avant le prochain tour, lorsqu'il disposera denouveau de renforts. Lorsqu'il a �ni la phase de répartition, le joueur laissealors la main à son adversaire. Une fois tous les renforts sans exceptions ré-parties, la phase se termine et le jeu passe à la phase suivante.

Un système similaire sera instauré pour les transferts d'unités pendant lejeu, où les informations de répartition (cadran 1) sera remplacé par une autresérie d'informations (les informations de la planète) dans le même cadran :les transferts se feront alors dans les deux sens. Cependant, un compteurinterne permettra de geler avant le tour suivant les unités ayant déjà e�ectuéun mouvement, et un autre permettra de garder au moins une unité sur laplanète de départ. A chaque nouveau tour, les unités seront dégelées.

Il en va de même pour les planètes lorsqu'une unité est sélectionnée : lesplanètes qu'elle ne peut atteindre seront grisées, et celles qu'il peut atteindregarderont leur teinte normale.

Par ailleurs, il est nécessaire de laisser un intervalle, voir une validation dela part du joueur à chaque action de l'ordinateur, si il joue contre une IA.

EPITA 5 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

2.3 Phases de Combat

Le système de combat sera similaire à la répartition et au déplacement, àceci prêt qu'il visera une planète adverse. Au moins une unité devra toujoursrester sur la planète de départ, alors que les autres seront engagées dansl'arène des combats. Au terme d'un combat de dés entre les deux e�ectifs enprésence, la planète cible changera ou non d'appartenance. De petites scènesvideo seront peut-être ajoutées optionellement, et aléatoirement. Par ailleurs,les phases de combat et de déplacement pourront s'entrelacer, car seule lacontrainte des unités gelées permettra de mettre un terme aux actions dujoueur, lorsqu'il n'aura plus de possibilités de déplacement. L'enchaînementdes phases se déroulera de la manière suivante : Déploiement des renforts al-liés, Changement de Main, Déploiement des renforts adverses, Changementde Main, Déplacement et Attaques alliées, Changement de Main, Déplace-ment et Attaques adverses.

2.4 Fin de la Partie

- En mode Conquète, la possession par un joueur de toutes les planètesde la galaxie entraîne la �n de la partie.

- En mode Campagne, l'accomplissement des objectifs spéci�ques attri-bués au joueur (humain ou IA), termine la partie.

EPITA 6 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

3 La Carte Galactique

3.1 Création

Bienvenue dans l'univers mythique de Star Wars, alors que la célèbre cartes'a�che devant vous, accompagnée des planètes les plus célèbres de la galaxie.

La carte comprend une galaxie (pour information la galaxie voisine Andro-meda m31x), image de base de 2048 pixels sur 2077. En calques ont été rajou-tés les planètes (dont la disposition est tirée des sources o�cielles de lucas-�lm), les secteurs, dessinés arbitrairement a�n de les faire concorder à l'espritdu jeu, quelques noms des régions les plus connues, les cinq grandes routescommerciales et en�n les liaisons entre les planètes. Ainsi, ces calques o�rentl'énorme avantage de modi�er rapidement et sans détérioration l'image gé-nérale : ils peuvent être supprimés, retouchés, ou insérés à volonté.

EPITA 7 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

Voici une miniature de la carte

EPITA 8 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

3.2 Déplacement

Le déplacement s'e�ectuera soit :- En déplaçant le curseur sur les bords de l'écran- En cliquant sur un point spéci�que de la mini-map située dans un descoins du panneau de contrôle

- En utilisant un des raccourcis pour se cibler sur un secteur spéci�que(optionel)

- Dans le panneau de contrôle �gureront des liens �xés par le joueur versles points clés de son empire (optionnel).

3.3 A�chage des Calques et Sprites

Les planètes seront comprises dans le �chier racine sous forme de sprite,a�n d'être a�chées convenablement suivant les aléas du jeu. Lorsque parexemple une unité sera sélectionnée par le joueur, seules les planètes acces-sibles par l'unité serotn a�chées dans leur forme normale, alors que les autresseront grisées.

Les noms des planètes existeront sous plusieurs couleurs, pour l'instant rougepour l'Alliance Rebelle, et bleu pour l'Empire Galactique. Suivant l'apparte-nance de la planète, ils seront donc a�chés sous l'une ou l'autre couleur.

Les liaisons seront probablement intégrées au fond de carte, n'ayant pourl'instant pas besoin d'être modi�ables dans le jeu. Ils resteront néanmoinssous forme de calques tant que la carte et le système de jeu ne seront pasdé�nitifs. Il en ira de même pour les limites de secteurs et les noms de régionspour le moment.

3.4 Le Panneau de Contrôle

Résultant des mises au points du groupe concernant les modalités de jeu,une ébauche du concept d'un panneau de contrôle dans le jeu a germé dansnos esprits. Celui-ci comprendra de nombreuses cases dynamiques non mo-di�ables directement par le joueur, et d'autres cases a�chant certains pointsclés des sélections du joueur. Les cases non modi�ables serviront à l'a�chagede données variables apportant certaines indications au joueur, comme lenombre de planètes sous contrôle, ses e�ectifs... Sera comprise dans ce pan-neau de contrôle une mini carte représentant la totalité de la galaxie en tailleréduite, à partir de laquelle le joueur pourra se déplacer rapidement d'unpoint à un autre, sans passer par la méthode de base à partir du curseur.

EPITA 9 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

D'autre part, ce panneau de contrôle risque de masquer une partie des bordsde la carte, c'est à dire que le dé�lement de la carte devrait se stopper unefois un des bords atteints (le bas en particulier, où le principal du panneaude contrôle sera certainement le plus conséquent) : ce bord de carte seraitalors masqué à l'écran par le panneau de contrôle, et il n'y aurait pas moyenpour le joueur de le démasquer, étant arrivé au bord . . .A�n d'éviter ce genrede problème domageable, de plus aggravé par le fait que certaines planètesse situent assez prêt des bords de la carte, nous avons décidé d'encadrer lacarte par une bande noire ou de couleur adaptée et peu voyante, su�sam-ment large pour laisser une marge entre le panneau de contrôle et les bordsde carte.

EPITA 10 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

4 Les Premières Fonctions

L'ébauche de jeu programmé jusqu'à maintenant fonctionne sous modeconsole. Ainsi, les fonctions de base (exposées par la suite dans l'ordre d'im-plémentation sous Delphi 7) sont faciles à traiter, et à mettre en place, etle travail en est restreint à l'implémentation du code même. De cette ma-nière, le travail a pu être centré sur les di�érentes fonctions de départ dujeu sans prendre en compte une quelconque interface graphique inutile pourle moment. Il faut préciser que ces fonctions sont créées indépendament desfonctions d'initialisation graphique à partir de DirectX, qui, elles, permet-tront de lancer notre propre a�chage et de le lier par la suite aux autresfonctions du jeu.

4.1 Constantes, Types et Enregistrements

Le nombre total de planètes sera �xé à 60 : 60 est divisible par 2, 3 et 4,entraînant la possibilité d'une répartition des planètes entre 2, 3 ou 4 joueurs,ce qui conduit le nombre de joueurs maximum à 4. En revanche, nous ne sa-vons pas encore si nous irons ne serait-ce jusqu'à trois joueurs, ni quellesfactions pourront incarner les troisième et quatrième joueurs (nous hésitonsencore entre le grand nombre de factions présentes dans l'histoire de StarWars).

Le nombre de liaisons par planète est �xé à trois, car au delà, la carte de-vient une véritable toile d'araignée, et en dessous, le jeu risque de se bloquer,notamment dans le noyau galactique, où la concentration de planètes estconséquente.

Un type enregistrement a été mis en place pour le moment, qui est le typeT-planete. De la sorte, chaque planète se voit associer plusieurs variables,soit plus précisément 6 :

- La première concerne le nom de la planète, de type string.- La seconde prend en compte l'abscisse de la planète sur la carte (utileà la sélection de la planète). Type integer.

- La troisième prend en compte l'ordonnée de la planète sur la carte(complément à l'abscisse, utile à la sélection de la planète). Type inte-ger.

- La quatrième prend en compte un tableau des liaisons vers les planètesvoisines désignées. C'est cette variable que suivra la fonction de dépla-cement des unités, a�n de savoir vers quelle planètes elles peuvent être

EPITA 11 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

transférées.- La cinquième annonce soit le nom du joueur, de type string, ou lenuméro du joueur, de type integer.

- La sixième variable annonce le nombre d'unités présentes sur la planète.

Pour l'instant, dans les fonctions codées jusqu'à maintenant, seules les pre-mière et cinquième variables ont été utilisées.

Un tableau regroupant les soixante planètes a également été prévu pour lasuite (Array of T-planete).

T_planete = record //type de donnée pour mettre toutes

nom : String; // les information sur les planete

x : Integer;

y : Integer;

liaisons : array[1..NB_LIAISONS] of Integer;

joueur : Byte;

unite : Byte;

end;

T_tplanete = array[1..NB_PLANETE] of T_planete;

4.2 Procédure de Distribution Planétaire

La procédure de distribution répartit les planètes entre les joueurs. Ellese lance donc dès le début d'une partie, et associe chaque planète à un joueurspcéci�que. Elle compte le nombre de joueurs, puis passe au joueur 1, lui as-socie une planète de manière aléatoire, puis passe au joueur 2, fait de même,et recommence jusqu'à ce qu'il ne reste plus de planète à associer. Cetteprocédure utilise deux boucles : l'une fait alterner les deux joueurs, l'autre,imbriquée, décompte les planètes attribuées.

Procedure joueur_init(var Planete: T_tplanete; joueur: Byte);

var

n: Byte;

i: Byte;

m: Byte;

p: Byte;

begin

Randomize();

p:= NB_PLANETE div joueur;

EPITA 12 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

for n:= 1 to joueur do //boucle sur les joueurs

for i:=1 to p do // cette boucle choisis a chaque boucle une planete

begin

repeat // boucle jusqu'a trouver une planete

m:= Random(NB_PLANETE)+1;

until Planete[m].joueur=0;

Planete[m].joueur:= n;

end;

end;

4.3 Fonction-Procédure d'A�chage Planétaire

Cette fonction a�che les planètes appartenant au joueur juste après larépartition. Elle boucle les planètes et regarde à quel joueur elles appar-tiennent, une par une, et les a�che le cas échéant. Elle propose ensuite parune procédure au joueur de sélectionner une des planètes lui appartenant.

Procedure IHM(var Planete: T_tplanete);

var

i: Byte;

begin

writeln('Repartition des planetes');

for i:= 1 to NB_PLANETE do

begin

writeln(i,') ',Planete[i].nom,'(Joueur ',Planete[i].joueur,')');

end;

end;

4.4 Procédure Génèse

Cette dernière procédure, qui est en fait la première à agir, crée les pla-nètes et leur associe une place dans le tableau de planètes (T-tab). Ainsi, ellepasse la main à la fonction de distribution.

Procedure init();

var

Planete : T_tplanete; //variable qui contient toutes les infos

i: Byte; //variable de boucle

begin

Writeln('');

EPITA 13 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

Writeln('');

writeln(' ------------------');

Writeln(' - Risk Star Wars -');

writeln(' ------------------');

Planete[1].nom := 'Coruscant'; //initialisation de toutes les

Planete[1].liaisons[1] := 2; //Planettes avec leurs liasons

Planete[1].liaisons[2] := 3;

Planete[1].liaisons[3] := 7;

Planete[1].liaisons[4] := 8;

Planete[2].nom := 'Tatoine';

Planete[2].liaisons[1] := 1;

Planete[2].liaisons[2] := 3;

Planete[2].liaisons[3] := 10;

Planete[2].liaisons[4] := 5;

Planete[3].nom := 'Endor';

Planete[3].liaisons[1] := 1;

Planete[3].liaisons[2] := 2;

Planete[3].liaisons[3] := 6;

Planete[3].liaisons[4] := 12;

Planete[4].nom := 'Bakura';

Planete[4].liaisons[1] := 9;

Planete[4].liaisons[2] := 11;

Planete[4].liaisons[3] := 5;

Planete[4].liaisons[4] := 2;

Planete[5].nom := 'Dagobah';

Planete[5].liaisons[1] := 3;

Planete[5].liaisons[2] := 2;

Planete[5].liaisons[3] := 8;

Planete[5].liaisons[4] := 6;

Planete[6].nom := 'Géonosis';

Planete[6].liaisons[1] := 3;

Planete[6].liaisons[2] := 5;

Planete[6].liaisons[3] := 9;

Planete[6].liaisons[4] := 11;

Planete[7].nom := 'Agamar';

Planete[7].liaisons[1] := 1;

Planete[7].liaisons[2] := 10;

Planete[7].liaisons[3] := 11;

Planete[7].liaisons[4] := 12;

Planete[8].nom := 'Yavin';

Planete[8].liaisons[1] := 1;

EPITA 14 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

Planete[8].liaisons[2] := 5;

Planete[8].liaisons[3] := 9;

Planete[8].liaisons[4] := 11;

Planete[9].nom := 'Naboo';

Planete[9].liaisons[1] := 4;

Planete[9].liaisons[2] := 6;

Planete[9].liaisons[3] := 8;

Planete[9].liaisons[4] := 10;

Planete[10].nom := 'Dathomir';

Planete[10].liaisons[1] := 2;

Planete[10].liaisons[2] := 7;

Planete[10].liaisons[3] := 9;

Planete[10].liaisons[4] := 12;

Planete[11].nom := 'Dantoine';

Planete[11].liaisons[1] := 4;

Planete[11].liaisons[2] := 6;

Planete[11].liaisons[3] := 7;

Planete[11].liaisons[4] := 8;

Planete[12].nom := 'Dath';

Planete[12].liaisons[1] := 3;

Planete[12].liaisons[2] := 7;

Planete[12].liaisons[3] := 10;

Planete[12].liaisons[4] := 0;

for i:= 0 to NB_PLANETE do

begin

Planete[i].joueur := 0;

Planete[i].unite := 1;

end;

joueur_init(Planete,NB_JOUEUR);

IHM(Planete);

readln;

Writeln('Répartition des troupes');

for i:=1 to NB_JOUEUR do

begin

writeln('Joueur ',i);

joueur_unite(Planete,10,i); //repartition inirtial des troupes

end;

main(Planete); //passe la main à la fonction main

end;

EPITA 15 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

4.5 Répartition des unités

Cette procédure sera nécessaire pour la partie renfort. Elle nous indiquele nombre de troupes disponible, puis passe en revue chaque planète en de-mandant au joueur combien d'unités il désire positionner sur cette planète.De plus, le nombre d'unités restante est à chaque fois réa�cher, et l'on nepeut mettre plus d'unités que ce qui nous est permis. Pour le moment, onne peut revenir sur une planète que nous avons déjà visitée et on ne peutchoisir la planète désirée : elle nous est obligatoirement desservie. Elle seradonc bien évidemment révisée pour les besoins du jeu.

Procedure joueur_unite(var Planete : T_tplanete; unite , joueur : Word);

var

i, num : Byte;

begin

writeln('-------------- Distribution des unite -------------');

for i:= 1 to NB_PLANETE do

begin

if (Planete[i].joueur = joueur) and (unite > 0) Then

begin

writeln('Il vous reste ', unite, ' unites a repartir.');

write(Planete[i].nom, ' :',Planete[i].unite,' unites + ');

readln(num);

if unite <= num then

begin

Planete[i].unite := Planete[i].unite + unite;

unite := 0;

end

else

begin

Planete[i].unite := Planete[i].unite + num;

unite := unite - num

end;

end;

end;

Writeln('Fin de la répartition');

end;

4.6 Procédure de combat (en cours)

Elle permet d'attaquer une planète adverse grâce à un e�et de randomi-sation, ce qui remplacera les dés dans le jeu de plateau.

EPITA 16 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

procedure joueur_comba(var Planete: T_tplanete; plan_att, plan_def: Byte);

var

de, unite_att, inute_def : Byte;

annul : Boolean;

begin

Randomize();

annul := True;

repeat

writeln('Joueur ', Planete[plan_att].joueur,

' : Combien d_unite voulait vous utilisé (1-',

Planete[plan_def].unite - 1, ') ?');

readln(unite_att);

until unite_att < Planete[plan_att].unite;

unite_def := Planete[plan_def].unite;

Planete[plan_att].unite := Planete[plan_att].unite - unite_att;

while annul AND (unite_att > 0) AND (unite_def > 0) do

begin

writeln('Attaque de la planete ', Planete[plan_def].nom);

de := Random(3);

if de = 0 Then

begin

unite_def := unite_def - 2;

writln('Joueur ', Planete[plan_def].joueur, ' pert 2 unite');

end;

else if de = 1 Then

begin

unite_att := unite_att - 2;

writln('Joueur ', Planete[plan_att].joueur, ' pert 2 unite');

end;

else

begin

unite_att := unite_att - 1;

unite_def := unite_def - 1;

writeln('Chacun joueur pert une unite');

end;

if unite_att=0 then

begin

writeln('Joueur ', Planete[plan_att].joueur, ' pert 2 a gagne !');

Planete[plan_def]

EPITA 17 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

end;

end;

end;

4.7 Finalité du Programme

Ce petit programme nous a donc permis une approche relative du pro-blème, mais néanmoins signi�cative. Bien que cette application soit extrême-ment limitée, elle nous a permi de poser de solides bases et d'avoir un trèsnet aperçu de ce qui servira de ciment à toute l'implémentation découlant deces fonctions de base. Ce programme peut s'approcher de la future procédurequi initialisera le début d'une partie de jeu.

EPITA 18 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

5 Début de création de notre futur site

Notre site futur comportera di�erents aspects, une dite "Tous publics",l'autre "Interne au groupe".La partie interne au groupe permettra de récapituler chaque semaine ce qu'ily a à faire et les problèmes à régler. On pourra aussi s'envoyer des informa-tions entre nous grâce à un systeme de messagerie. Un rapport des tâchespermettra de revoir les résumés de nos réunions. En�n, une partie rapport dedébugage, très utilisé sur la �n du projet, permettra de noter tous les bugsrepérés et leur résolution.Dans la partie publics, on retrouvera les news qui donneront toutes les infor-mations sur l'avancement du projet. Deux autres parties, intitulées "présen-tation du groupe" et "présentation du projet", permettront de mieux nousconnaître. Et en�n nous mettrons nos �chiers et nos liens en ligne pour aiderles suivants.Pour le moment, seule la première page et l'envoi de message sont résolussur la partie "Privé" du site, mais il devrait bien avancer pour la deuxièmesoutenance.

EPITA 19 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

6 Découvertes des Di�érent Logiciels Utilisés

6.1 Latex

Oui, en e�et, il fallait obligatoirement en passer par LaTex, même si cen'est pas une surprise. Comme le cahier des charges tapé précédemment sousLaTex, le rapport de soutenance l'est aussi, avec maintenant la maîtrise desentêtes et des pieds-de-page pour appuyer un peu plus le côté LaTex (Il étaittemps !). Paraissant rébarbatif au départ, on s'aperçoit que suer un peu pluspour découvrir de nouvelles fonctionnalités a�n de rendre le document plusbeau et présentable n'est pas dénué de �nalité, et au �nal de contentement.

6.2 Easy PHP / PHP coder

EasyPHP permet d'installer un serveur Web, PHP et une base de donnéeMYSQL. Ce qui sert surtout pour tester tous les scripts php en local. Onutilise un logiciel d'edition de texte pour modi�er les pages PHP : PHP coderqui a la particularité de colorer le code PHP. Le language PHP permet dedynamiser le site, et par la meme occasion simpli�er les mises à jour.

6.3 Photoshop CS / Image Ready CS / Corel Painter

IX

Connaissant déjà le fonctionnement de Photoshop CS, et surtout, ayantacquit quelque expérience dans son utilistion (car il est indéniable que l'expé-rience et l'imagination font le talent sur les logiciels d'imagerie !), Thibaut aassemblé tous les di�érents éléments de la carte, et façonné tous les calques.Quelques retouches grâce à Image Ready, mais surtout par Painter IX, lacarte peut maintenant se vanter d'être quasiment sous son état �nal, sonmeilleur jour. Il était en e�et indispensable de terminer une carte proprepour la suite de l'expérience, sans quoi l'implémentation et le développementdu jeu s'en seraint grandement ressentis. Il était nécessaire de pouvoir �xerles liaisons inter-planètes, d'avoir une carte propre et nette pour son enver-gure, et surtout car elle est située au coeur du jeu. Malgré son aspect de�nalité, elle constitue en réalité un socle indispensable pouvoir continuer.

6.4 3DSMax

Malgré notre intention initiale d'avoir recourt à ce logiciel pour monterle design des modèles d'unités présents dans le jeu, ceci demandait le recourt

EPITA 20 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

à Direct 3D, et nous avons préféré simpli�er notre tâche en nous limitant àl'utilisation de Direct Draw, beaucoup plus adapté à notre idée.

6.5 Borland Delphi 7

Il était indéniable que nous aurions à nous servir de ce logiciel de pro-grammation, parfait pour Delphi et très puissant dans son domaine. Assezsimple à prendre en main, ce n'est pas tant le logiciel qui gêne, mais souventle code. La principale di�culté provient donc plus du pascal que de delphi 7lui-même, qui semble gérer de façon optimale les implémentations fournies.Il nous reste donc à nous perfectionner avant tout en TD. Nous portons degros espoirs dans ces séances de TD, car sans elles nous ne pourrons avancerplus loin. . .

EPITA 21 InfoSup B2

UnboundValue

Star Wars RiskPremière Soutenance

7 Conclusion et prévisions pour la 2e soute-

nance

La di�culté majeure avant cette première soutenance a été de résoudredes problèmes d'organisation, de méthodes et de travail. Ce projet nous aplacés devant des besoins très spéci�ques au jeu que nous n'avions encorejamais rencontrés et auxquels nous avons dû nous adapter. Nous avons tousévidemment fait des TPE en Terminale, un travail de longue haleine, maisil nous était possible de donner des grands coups de travail pour avancerénormément. En revanche on a rapidemment vu que ce projet nécessitait untravail régulier, car on pouvait être confrontés à des problèmes que seul letemps pouvait résoudre. Bien que la fréquence de nos réunions restent trèsrégulières, on ne peut encore a�rmer que le travail suit le même rythme. Onpeut cependant espérer que la période entre la première et la deuxième soute-nance sera plus productive, malgré les partiels et le manque certain de temps.

Nous avons cependant déjà bien avancé sur certains points, tels que la créa-tion de la carte et du site intranet, l'implémentation de quelques fonctionsde base, les premiers a�chages DirectX, une dé�nition précise de l'ensembledes règles concernant le jeu et la création de quelques sprites d'unités sous3DSMax.

Les prévisions pour la deuxième soutenance sont les suivantes : création àpart entière du site privé ET publique, implémentation de toutes les fonc-tions principales, écriture du code concernant les con�gurations (chargementet enregistrement XML) et la partie Joueur du jeu, l'a�chage graphique etla gestion des périphériques.

EPITA 22 InfoSup B2


Recommended