diff --git a/README.md b/README.md index 882b8a942af7e3ed0e30aa2edcb5e863180b3d16..91a2a4dd34ff0d04cd96ed5eb4606d97240a22fd 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,13 @@ - Uniquement une abstraction + une implémentation avec liste ou tableau - L'abstraction doit avoir au moins deux méthodes par défaut - Corrigez le nom de la méthode `exist` en `exists` + +## Délais + +- 22 novembre à 22h00: Rendu de la version 1 de votre TP (`tag v1.0`) + - Ensemble des fonctionnalités sur les vecteurs (package `ch.hepia.numeric`) + - Deux fonctionnalités du pendu (package `ch.hepia.hangman`) + - L'ensemble des fonctionnalités sur le tas binaire (package `ch.hepia.strucure`) Ce repository contient l'énoncé du TP "numeric" et un squelette maven. @@ -19,7 +26,9 @@ Après avoir choisi votre binôme, vous devrez **impérativement** : - Ajouter Joel Cavat (@joel.cavat), Jeremy Gobet (@jeremy.gobet) et Steven Liatti (@steven.liatti) en tant que *Reporter* de votre repository. - Lire attentivement l'énoncé. -## Fonctionnalités à réaliser sur les vecteurs (itération 1) +# Itération 1 (tag `v1.0` - 22 novembre à 22h00) + +## Fonctionnalités à réaliser sur les vecteurs Le projet contient déjà un ensemble de tests unitaires. Faites-en sorte que le projet compile et que les tests passent. @@ -44,7 +53,7 @@ Vous devez réaliser des fonctionnalités sur les calculs vectoriels (dans un pr - [ ] Toutes ces fonctionnalités doivent exister sur un **vecteur transposé**. - [ ] Retourne RuntimeException() avec un message approprié en cas d'erreurs -##### Vecteur +### Vecteur ```math \vec{x} = \begin{bmatrix} @@ -53,7 +62,7 @@ Vous devez réaliser des fonctionnalités sur les calculs vectoriels (dans un pr ``` -##### Transposée +### Transposée ```math \vec{x}^t = \begin{bmatrix} @@ -61,7 +70,7 @@ Vous devez réaliser des fonctionnalités sur les calculs vectoriels (dans un pr \end{bmatrix} ``` -##### Produit scalaire en notation matricielle +### Produit scalaire en notation matricielle ```math \vec{x}^t \cdot \vec{y} = \begin{bmatrix} @@ -71,7 +80,7 @@ Vous devez réaliser des fonctionnalités sur les calculs vectoriels (dans un pr \end{bmatrix} = \sum_{i=1}^n x_i \cdot y_i ``` -##### Norme d'un vecteur +### Norme d'un vecteur ```math \vec{v} \begin{pmatrix} @@ -82,7 +91,7 @@ Vous devez réaliser des fonctionnalités sur les calculs vectoriels (dans un pr \end{pmatrix} = \lVert \vec{v} \rVert = \sqrt{v_1^2 + v_2^2 + ... + v_n^2} ``` -##### Map +### Map ```math map(\vec{x}, f) = \begin{bmatrix} @@ -108,10 +117,6 @@ map(\vec{x}, f) = \begin{bmatrix} Les constructeurs doivent être non publiques. Pour créer un élément, vous devez utilisez une fabrique (méthode statique) tel que `of()` ou `empty()` -## Fonctionnalités à réaliser sur les matrices (prochaine itération) - -TBD - ## Fonctionnalités à réaliser sur les tas binaires (*binary heap*) @@ -179,39 +184,75 @@ public class App { Vous devrez fournir également des tests unitaires, à mettre dans le package `ch.hepia.structure` du répertoire `test`, qui valident votre implémentation. -## Maven -Maven est un gestionnaire de projets et d'automatisation de production pour l'écosystème Java. +## Fonctionnalités à réalsier sur le jeu du pendu -Le fichier `pom.xml` décrit le projet avec ses dépendances. +- package `ch.hepia.hangman` +- le main doit se trouver dans le fichier `Hangman.java` +- les fonctionnalités peuvent éventuellement se trouver dans un fichier `HangmanHelper.java` ou en tant que méthode +statique de `Hangman.java` -### Exécutez votre projet +### Cahier des charges (itération 1) -- compilation et téléchargement des dépendances. Produit un `jar` dans le dossier `target`. +Réalisez deux fonctionnalités pour le jeu du pendu (`Hangman.java`) -``` -mvn package -``` +- une méthode de vérification `check(String currentWord, String guessWord, char letter)` -- exécutez à l'aide de java et du classpath: +Exemple d'utilisation -``` -java -cp target/my-app-0.1.jar ch.hepia.my_app.App -``` +- `check("_____", "amies", 'm')` retourne `"_m___"` +- `check("_______", "caramba", 'a')` retourne `"_a_a__a"` +- `check("_____", "frite", 'a')` retourne `"_____"` -- ou, à l'aide du plugin `exec-maven-plugin` (plus simple): +Réalisez une fonctionnalité d'affichage `print(int attempts)` du pendu en fonction du nombre d'essais manqués: +- Première erreur, affichage d'une potence ``` -mvn exec:java +---------- +|/ +| +| +| +| +| +| ``` -### Exécutez les tests uniquement +- Exemple de 5e erreur +``` +---------- +|/ | +| (_) +| /| +| +| +| +| +``` +- Exemple à la 9e et dernière erreur ``` -mvn test +---------- +|/ | +| (_) +| /|\ +| | +| / \ +| +| ``` -### Notes -Le plugin `maven-assembly-plugin` est configuré et permet d'embarquer les dépendances dans un seul `jar`. + +# Itération 2 (`tag v2.0` - TBD) + +## Fonctionnalités à réaliser sur les matrices + +## Fonctionnalités à réaliser sur le pendu + +## Fonctionnalités à réaliser sur les structures + + + +