Comments (2)
Le Template Method design pattern est assez simple à comprendre, il suffit en effet de décider d'une API publique commune à différents objets dont la nature est vaguement similaire, pour en faire une interface (ou une classe abstraite selon le niveau de composition autorisé par le langage).
Ainsi ici, nous pouvons déterminer une classe abstraite Jeu
qui n'exposerait qu'une méthode Jeu.jouer()
lançant une partie.
Chaque contrôleur hériterait de cette classe Jeu, et nous pourrions donc déterminer dans le Main
, selon l'input utilisateur, le jeu à lancer.
from conception-application.
L'intérêt de Template Method est la flexibilité qu'il permet pour les développeurs d'ajouter un nombre indéterminé d'objets de même nature dans le code, en gardant une simplicité de choix entre eux (mot clé : interopability), sans néanmoins compromettre un risque en runtime, puisqu'il n'est pas facile de switch de jeu en pleine exécution.
Si le besoin de changer dynamiquement au runtime est nécessaire (ce qui est le cas pour les itérations quatre et cinq avec les IA), alors il faudrait adopter un paterne Strategy.
from conception-application.
Related Issues (20)
- Les rotations ne tiennent pas compte des éléments existants HOT 6
- Match nul quand une rotation amène à deux victoires HOT 5
- Utiliser des caractères ASCII avec des couleurs ANSI dans l'affichage de Nim
- Erreur customisée
- Unifier plus les contrôleurs
- Inverser le sens des rotations
- Baisser le délais dans les sleep des print de l'IHM
- Créer le corps du paterne de stratégie pour les joueurs HOT 1
- Implémenter la stratégie "Stratégie gagnante" pour le jeu de Nim HOT 1
- Implémenter la stratégie "Stratégie aléatoire" pour le jeu de Nim
- Implémenter la première stratégie pour le Puissance 4
- Implémenter la stratégie optimisée pour le Puissance 4 HOT 1
- Créer un meilleur type pour le int[], choix du jeu Nim HOT 1
- Fix la problème de rotation gauche
- Remplacer le choix des stratégie
- Gérer l'affichage des coups des ia
- Implementer ia Bonus puissance 4 HOT 1
- Reorganisation du jeu puissance 4 HOT 1
- Reorganisation package jeu ? (à voir si on le fait)
- normaliser les nom des strategie (ia nim)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from conception-application.