Files
web_2025/R4.01_R4.A.10/td_tp/tp4/README.md
2026-02-16 11:14:11 +01:00

101 lines
2.8 KiB
Markdown

# TP javascript : Ajax, promesses.
Vous disposez tous, à la racine de votre compte, d'un répertoire `public_html` qui est servi (http/https) par le serveur dwarves.
Pour accéder à vos pages, utilisez l'url :
> http(s)://dwarves.[arda|iut-fbleau.fr]/~login
Pour tester les différentes api http, vous pouvez utilisez la commande `curl`.
#### Ex1
Le but est de faire une recherche de film en utilisant l'api [OMDb](https://www.omdbapi.com/) (Open Movie Database).
![movie](img/search.png?style=centerme)
Son utilisation nécessite une clé. Vous pouvez utiliser la mienne `2fcb2848`. Si
la limite de requêtes est atteinte, générez votre propre clé.
Complétez le [code](./src/ex1).
- J'ai volontairement utilisé des modules. Il vous faut donc tester l'application avec
http.
- Écrire la fonction du modèle
```js
getMovies(search)
```
Cette fonction renvoie une promesse qui permet de faire une requête ajax vers l'api OMDb. Pour ajax,
utilisez d'abord l'interface `fetch`, ~~puis l'objet `XMLHttpRequest`~~.
- Écrire la fonction du contrôleur
```js
async search(searchMovie)
```
qui permet de faire une recherche. Cette fonction utilise évidemment la fonction précédente `getMovies`.
- Écrire la fonction de la vue
```js
renderList(movies)
```
qui construit la liste des films affichés. La structure attendue est
```html
<li>
<a href="http://www.imdb.com/title/tt0068646" target="_blank">The Godfather</a><span>1972</span>
</li>
```
#### Ex2
Le but, dans un premier temps, est d'écrire une interface, avec ajax, qui permette de joueur au jeu suivant :
- On a une grille dans laquelle sont cachés des renards (on en connait le nombre initial).
- A chaque tour, on choisit de tirer sur un case. On a l'alternative suivante :
- on tue un renard,
- on récupére les nombres de renards sur la grille sur la ligne, colonne et diagonales de la case.
<div align="center">
<img src="img/renard1.png">
</div>
Le jeu utilise un serveur http à l'url suivante
```
https://dwarves.iut-fbleau.fr/foxes/foxes.php
```
Voici les urls du jeu :
```
https://dwarves.iut-fbleau.fr/foxes/foxes.php?new&size=10&foxes=10
```
initialise la partie , avec la taille de la grille et le nombre de renards
dont la position est aléatoire (le script utilise des sessions de cinq minutes).
La réponse normale, en json :
```json
{"status":"ok","foxes":10,"tries":0}
```
```
https://dwarves.iut-fbleau.fr/foxes/foxes.php?X=1&Y=3
```
permet de tirer sur une case. Le serveur répond
```json
{"status":"ok","foxes":2,"tries":1}
```
`foxes` vaut -1 si le coup est gagnant, sinon donne le nombre de renards de la colonne, ligne et diagonales de la case.
En cas de victoire, le status est `win`. En cas d'erreur, le status est `nok`.
**Remarque**
Ajouter l'option `credentials` à vos requêtes pour utiliser la session en cours.