Skip to content
Snippets Groups Projects
Commit 6c7f504b authored by Joel Cavat's avatar Joel Cavat
Browse files

Add deadline

parent 5a7011c0
No related branches found
No related tags found
No related merge requests found
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment