Sujet :
Réalisation d'un Puissance 4 en réseau, par Sébastien BISMUTH et Yann LENNE,
dans le cadre des cours Java de M. BUFFA.
Mise à disposition des sources
Nous avons utilisé les fonctionnalités RMI de Java 1.1.6 pour créer ce très beau jeu ! Le principe est le suivant : On définit un objet Puissance 4 sur un serveur, auquel les clients se connectent pour accéder au jeu. En voici les principales caractéristiques :
Côté serveur :
Côté client :
Règles du jeu :
Les joueurs mettent un pion dans la colonne de leur choix à chacun leur tour. Le jeu nous ramène à nos contraintes de terrien : il tient compte de l'apesanteur !. Ainsi, les pions s'empilent dans les colonnes de bas en haut. Un joueur remporte la victoire lorsqu'il parvient à aligner 4 pions consécutifs, horizontalement, verticalement ou en diagonale. Si la grille est complètement remplie, aucun joueur n'a gagné, il y a alors match nul.
Mise à disposition des sources :
Vous pouvez télécharger au format zip :
ou consulter :
La première étape est d'enregistrer l'objet Puissance4 dans le registre rmi du serveur. Pour cela :
Une fois ces 2 étapes réalisées vous n'aurez plus à les refaire. Il faut alors :
Vous obtiendrez la fenêtre suivante :
Elle vous permet de saisir :
Après cela les clients peuvent se connecter au serveur. Vous devez la première fois :
Ensuite, la seule chose à faire est de lancer le client : javac StartClient qui propose l'interface graphique suivante :
Le joueur doit préciser :
Lorsque ces paramètres sont saisis, le joueur a (enfin !) accès à l'écran de jeu, divisé en plusieurs zones :
Voici le détail des fonctionnalités du menu :
Un thème permet de changer l'image de fond de l'écran ainsi que les pions des joueurs. Voici par exemple le thème Java :
et le thème Simpsons :
Maintenant vous savez tout sur l'utilisation de ce petit jeu sympa. Amusez-vous bien !
Message personnel à Monsieur BUFFA :
Nous avons pensé à mettre en place une architecture client-serveur bilatérale (avec 2 stub et 2 skeleton). Cette approche fonctionne, semble-t-il, très bien. Cependant, elle ne respecte pas (à notre sens) "l'esprit" de l'architecture client-serveur traditionnelle dans le sens où le client prend par intermitence le rôle du serveur et inversement. C'est pourquoi, nous avons opté pour la mécanique décrite ci-avant dans laquelle le serveur met des services à disposition du client et non l'inverse. De plus, nous avons voulu apporter une alternative aux autres groupes qui ont utilisé rmi.