readme.txt 4,17 ko
Newer Older
## Analyse du code produit par ChatGPT par rapport au code attendu :
### Pour PieceSquadro
- Le code généré par l'IA a omis d'ajouter les constantes en les déclarant comme `public` et en utilisant `static`.
- Après des tests, nous avons constaté que :
    - `const` est effectivement `static` par défaut.
    - Si aucun modificateur d'accès n'est précisé pour une variable ou une méthode, celles-ci sont considérées comme `public` par défaut. Il n'y a donc rien à signaler ici.
- Dans le diagramme UML, les attributs `couleur` et `direction` sont indiqués comme étant `protected`. Cependant, dans la première version du code générée et déposée par l'IA, ces attributs ont été déclarés en `private`. On a donc corrigé cette erreur.
- Une nouvelle version de la méthode `toString` a été ajoutée pour représenter la direction d'une pièce par une flèche, afin de faciliter l'affichage des pièces.  
  Un prompt demandant cette fonctionnalité a été donné à l'IA, et elle a su discerner les 4 cas suivants :  
    - `>` pour l'Est  
    - `<` pour l'Ouest  
    - `^` pour le Nord  
    - `v` pour le Sud  

> **Après test de la classe :** tout fonctionne correctement, pas de nouvelle erreur.
### Pour ArrayPieceSquadro
- J'avais demandé de ne coder que les méthodes définies dans le schéma UML. L'IA a cependant ajouté les méthodes des deux interfaces qu'elle a redéfinies. Cela peut être vu comme une initiative positive, mais ce n'était pas explicitement demandé.
- Les messages d'erreur des exceptions générées sont en anglais, alors que le projet est spécifiquement en français. Nous avons donc corrigé ceci en mettant les commentaires en français.
## Pour les tests

- En demandant simplement à ChatGPT de tester la classe `PieceSquadro`, il a utilisé par défaut **PHPUnit**. Il s'agit d'une erreur provenant de mon prompt, car je n'avais pas précisé de tester simplement sans PHPUnit.
    - J'ai corrigé cela en modifiant le prompt et en ajoutant une nouvelle classe de test sur la forge, sans utiliser PHPUnit.

- Lorsqu'il m'a redonné une version sans PHPUnit, il a effectivement testé l'ensemble des fonctionnalités, en les organisant dans des méthodes séparées.  
    - Ces tests ont montré la robustesse de la classe `PieceSquadro`.  
    - Même constat pour les tests de la classe `ArrayPieceSquadro`.

---

## Pour la PHPDoc

- L'IA n'a pas ajouté de PHPDoc par défaut.  
    - J'ai donc dû les ajouter manuellement, un par un, aux classes que j'avais déjà écrites.

- **Visibilité des constantes non précisées :** elle devrait être `public`.
    - RAS, quand la visibilité n'est pas précisée, elle est `public` par défaut.
  
- **Types des variables d'instances non précisés de même que le retour des fonctions :**
    - Évidemment, j'ai oublié de le préciser dans mon prompt.
- **Getters des lignes et colonnes jouables non faits :**
    - ChatGPT est nul ? Probablement prompt pas correctement fait.
- **Méthodes `toJson`, `fromJson` et `__toString()` non implémentées :**
    - ChatGPT est nul ? Probablement prompt pas correct... Sérieusement ?
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé

G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé

- **Méthode `reculePiece` semble incorrecte :**
    - La remise à zéro est censée mettre les pièces se dirigeant vers l'est à l'est, vers l'ouest à l'ouest, ainsi de suite... ce qui n'est pas fait : toutes les pièces est-ouest sont remises à l'ouest et toutes les pièces nord-sud sont remises au nord.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé

    - **Méthode à tester** une fois les tests implémentés.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé

- **Méthode `gererSautsAdversaires` venue de nulle part.**
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé

- **Méthode `jouePiece` à réécrire** puisqu'elle est censée utiliser `reculePiece` pour déplacer les pièces adversaires conformément aux règles du jeu.
G. Daryl M. OKOU's avatar
G. Daryl M. OKOU a validé

## Prompt 2
- **Prompt** : j'ai demandé à ChatGPT de corriger les codes de Plateau et Action en s'assurant que les diagrammes UML et les instructions soient respectées
- **résultat :**
    - Les fonctions non implémentées le sont maintenant.
    - Les paramètres des fonctions et leurs retours sont typés.
    - Je crois que je corrigerai reculePièce et jouePièce à la main.