Backgammon

Description

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!!

Codes Sources

A voir également