Projet Java

 

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.

 

Description

Mise à disposition des sources

Mode d'emploi

Détails techniques


Description :

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 :

Comment l'utiliser :

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 !

Détails techniques :

 

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.