Développement du jeu BackGammon en interface graphique Swing.
Fonctionnalités du jeu :
- Jeu à deux
- Jeu contre ordinateur (algorithme random)
- Gestion des flèches, barres, dehors, videau.
- Gestion sauvegarde/chargement.
- Fonction annuler.
- Gestion des profils (à dév.)
Développement :
- Code source commenté + JavaDoc (à générer) !
- Gestion log d'évènements
- Modèle/Vu séparé
Source / Exemple :
/**
- Lance les deux dés de façon pseudo-aléatoire.
- /
public void lancerDeuxDes () {
super.lancerDeuxDes();
Log.log.info("Lancer : "+_coups);
updateDeplacements();
}
/**
- Cette méthode permet de mettre à jour les déplacements en fonction des
- coups disponibles. Exemple : Coups 5 et 3 Déplacements : [3], [5], [3,
- 5].
- /
public void updateDeplacements () {
_deplacements.clear();
if ( nombreCoupsLibre() >= 1 ) {
_deplacements.add(new ArrayList<Integer>());
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(0));
}
if ( nombreCoupsLibre() >= 2 ) {
if ( estDouble() == false ) {
_deplacements.add(new ArrayList<Integer>());
_deplacements.get(_deplacements.size() - 1)
.add(getCoupLibre(1));
}
_deplacements.add(new ArrayList<Integer>());
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(0));
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(1));
}
if ( nombreCoupsLibre() >= 3 ) {
_deplacements.add(new ArrayList<Integer>());
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(0));
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(1));
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(2));
}
if ( nombreCoupsLibre() >= 4 ) {
_deplacements.add(new ArrayList<Integer>());
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(0));
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(1));
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(2));
_deplacements.get(_deplacements.size() - 1).add(getCoupLibre(3));
}
Log.log.info("Mise à jour des déplacements : "+_deplacements);
}
Conclusion :
Evolutions possibles :
- Algo ordinateur
- Gestion des profils
- détermination du premier à jouer
- Fonctionnalité réseau (+ chat)
- Fonction replay d'une partie
- ...
Le zip contient le projet eclipse (en zip) donc à importer avec existing project into your workspace ...
Have fun!!