L'objectif de ce workshop de 5 jours est de vous faire une petite remise à niveau en C++.
Vous devrez développer un jeu au rendu ASCII / console uniquement, en équipe de deux de niveau
équilibré. De plus, vous consacrerez la dernière heure de chaque journée à une revue de code
d'un autre groupe (une demi heure sur chaque projet).
Qualite du code
Vous devrez produire le code le plus propre possible, avec avant tout un projet qui fonctionne.
N'oubliez pas que vous etes en phase de prototypage, donc il vous faut trouver un juste milieu
entre la qualité du code et votre vitesse de développement.
Rendu
Vous rendrez : 1) une vidéo de votre proto, vous pouvez générer ca rapidement avec windows 10
(windows + G ). Si vous avez du mal à la compresser ensuite, uploadez sur youtube et récupérez
la avec keepvid, la vidéo sera propre. 2) dans un zip, le code de votre jeu ainsi qu'une image
du diagramme de classe de votre moteur (que vous pouvez générer avec visual), et tout autre
visuel que vous jugez intéressant à montrer. Vous avez le lien de rendu à partir de votre compte.
Un premier rendu sera fait le vendredi avant 17h. Vous avez ensuite tout le reste du
semestre pour finir votre projet. (et le reste de l'année si c'est le projet que vous voulez
pousser pour votre pres en M2).
Déroulement
Vous utiliserez la console windows et l'API qui va avec.
1) Constitution des equipes : vous me donnez votre niveau en C++ et on tire au sort les equipes.
2) Vous choisissez rapidement un concept de jeu. Inspirez vous d'autres jeux ASCII.
3) Vous codez et on vous aide
Attention, les accès à la console windows sont assez lents. Utiliser un système de buffer :
Maximum Block Depth is the maximum nested block depth level found.
At the start of each file the block level is zero. Depths up to 9 are recorded
and all statements at deeper levels are counted as depth 9.
Profondeur maximale
The complexity metric is counted approximately as defined by Steve McConnell
in his book Code Complete, Microsoft Press, 1993, p.395. The complexity metric
measures the number of execution paths through a function or method. Each function
or method has a complexity of one plus one for each branch statement such as if, else,
for, foreach, or while. Arithmetic if statements (MyBoolean ? ValueIfTrue : ValueIfFalse)
each add one count to the complexity total. A complexity count is added for each '&&' and '||'
in the logic within if, for, while or similar logic statements.
Switch statements add complexity counts for each exit from a case (due to a break, goto, return,
throw, continue, or similar statement), and one count is added for a default case even if one is
not present. (Note: when a project's Modified Complexity option is selected, switch statements
add a count of one to the complexity and the internal case statements do not contribute to the
complexity metric.) Each catch or except statement in a try block (but not the try or finally statements)
each add one count to the complexity as well.