You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Présenter ici une description générale du projet. On peut s'appuyer sur des schémas ou croquis pour illustrer cette présentation. Éventuellement, proposer des projets existants et/ou captures d'écrans permettant de rapidement comprendre la nature du projet.
13
+
14
+
### 1.2 Règles du jeu
15
+
Présenter ici une description des principales règles du jeu. Il doit y avoir suffisamment d'éléments pour pouvoir former entièrement le jeu, sans pour autant entrer dans les détails . Notez que c'est une description en «français» qui est demandé, il n'est pas question d'informatique et de programmation dans cette section.
16
+
17
+
### 1.3 Conception Logiciel
18
+
Présenter ici les packages de votre solution, ainsi que leurs dépendances.
19
+
20
+
21
+
## 2 Description et conception des états
22
+
L'objectif de cette section est une description très fine des états dans le projet. Plusieurs niveaux de descriptions sont attendus. Le premier doit être général, afin que le lecteur puisse comprendre les éléments et principes en jeux. Le niveau suivant est celui de la conception logicielle. Pour ce faire, on présente à la fois un diagramme des classes, ainsi qu'un commentaire détaillé de ce diagramme. Indiquer l'utilisation de patron de conception sera très apprécié. Notez bien que les règles de changement d'état ne sont pas attendues dans cette section, même s'il n'est pas interdit d'illustrer de temps à autre des états par leurs possibles changements.
23
+
24
+
### 2.1 Description des états
25
+
26
+
### 2.2 Conception logicielle
27
+
28
+
### 2.3 Conception logicielle: extension pour le rendu
29
+
30
+
### 2.4 Conception logicielle: extension pour le moteur de jeu
31
+
32
+
### 2.5 Ressources
33
+
34
+
Illustration 1: Diagramme des classes d'état
35
+
36
+
37
+
## 3 Rendu: Stratégie et Conception
38
+
Présentez ici la stratégie générale que vous comptez suivre pour rendre un état. Cela doit tenir compte des problématiques de synchronisation entre les changements d'états et la vitesse d'affichage à l'écran. Puis, lorsque vous serez rendu à la partie client/serveur, expliquez comment vous aller gérer les problèmes liés à la latence. Après cette description, présentez la conception logicielle. Pour celle-ci, il est fortement recommandé de former une première partie indépendante de toute librairie graphique, puis de présenter d'autres parties qui l'implémente pour une librairie particulière. Enfin, toutes les classes de la première partie doivent avoir pour unique dépendance les classes d'état de la section précédente.
39
+
40
+
### 3.1 Stratégie de rendu d'un état
41
+
42
+
### 3.2 Conception logicielle
43
+
44
+
### 3.3 Conception logicielle: extension pour les animations
45
+
46
+
### 3.4 Ressources
47
+
48
+
### 3.5 Exemple de rendu
49
+
50
+
Illustration 2: Diagramme de classes pour le rendu
51
+
52
+
## 4 Règles de changement d'états et moteur de jeu
53
+
Dans cette section, il faut présenter les événements qui peuvent faire passer d'un état à un autre. Il faut également décrire les aspects liés au temps, comme la chronologie des événements et les aspects de synchronisation. Une fois ceci présenté, on propose une conception logicielle pour pouvoir mettre en œuvre ces règles, autrement dit le moteur de jeu.
54
+
55
+
### 4.1 Horloge globale
56
+
57
+
### 4.2 Changements extérieurs
58
+
59
+
### 4.3 Changements autonomes
60
+
61
+
### 4.4 Conception logicielle
62
+
63
+
### 4.5 Conception logicielle: extension pour l'IA
64
+
65
+
### 4.6 Conception logicielle: extension pour la parallélisation
66
+
67
+
Illustration 3: Diagrammes des classes pour le moteur de jeu
68
+
69
+
70
+
## 5 Intelligence Artificielle
71
+
Cette section est dédiée aux stratégies et outils développés pour créer un joueur artificiel. Ce robot doit utiliser les mêmes commandes qu'un joueur humain, ie utiliser les mêmes actions/ordres que ceux produit par le clavier ou la souris. Le robot ne doit pas avoir accès à plus information qu'un joueur humain. Comme pour les autres sections, commencez par présenter la stratégie, puis la conception logicielle.
72
+
### 5.1 Stratégies
73
+
74
+
#### 5.1.1 Intelligence minimale
75
+
76
+
#### 5.1.2 Intelligence basée sur des heuristiques
77
+
78
+
#### 5.1.3 Intelligence basée sur les arbres de recherche
79
+
80
+
### 5.2 Conception logicielle
81
+
82
+
### 5.3 Conception logicielle: extension pour l'IA composée
83
+
84
+
### 5.4 Conception logicielle: extension pour IA avancée
85
+
86
+
### 5.5 Conception logicielle: extension pour la parallélisation
87
+
88
+
89
+
## 6 Modularisation
90
+
Cette section se concentre sur la répartition des différents modules du jeu dans différents processus. Deux niveaux doivent être considérés. Le premier est la répartition des modules sur différents threads. Notons bien que ce qui est attendu est un parallélisation maximale des traitements: il faut bien démontrer que l'intersection des processus communs ou bloquant est minimale. Le deuxième niveau est la répartition des modules sur différentes machines, via une interface réseau. Dans tous les cas, motivez vos choix, et indiquez également les latences qui en résulte.
91
+
92
+
### 6.1 Organisation des modules
93
+
94
+
#### 6.1.1 Répartition sur différents threads
95
+
96
+
#### 6.1.2 Répartition sur différentes machines
97
+
98
+
### 6.2 Conception logiciel
99
+
100
+
### 6.3 Conception logiciel: extension réseau
101
+
102
+
### 6.4 Conception logiciel: client Android
103
+
104
+
Illustration 4: Diagramme de classes pour la modularisation
0 commit comments