Projet java - BFH

Transcription

Projet java - BFH
Haute école spécialisée bernoise
Haute école technique et informatique, HTI
Section Electricité et système de communication
Laboratoire de l’informatique technique
Projet java
Puissance 4
© 2007, Laboratoire d’informatique technique
Nom de fichier:
Création:
Auteur:
Version:
Projet_Info4.DOC
Juin 2007
Elham Firouzi
1.1
Table des matières
Table des matières
1 Introduction
1.1But du projet
1.2 Le thème proposé
1.3 Les thèmes alternatifs
1.4 La notation
1.6 Le délai pour la documentation
1.5 La documentation
2 Le projet puissance 4
2.1 Description du travail
2.2 Les différents étapes de réalisation
2.3 La procédure de réalisation
Annexe A: Les possibilités GUI
Annexe B: GUI avec Swing
Annexe C: Connexion des PC’s
3
3
3
3
3
3
3
4
4
4
4
5
6
8
2
Introduction
1 Introduction
1.1 But du projet
Les buts de ce projet sont les suivants :
1.
2.
Approfondir la matière du module « Introduction dans la programmation Java » à l’aide de la programmation d’une
application Java légèrement plus complexe. Il s’agit en particulier de réalisé un design orienté objet et de
transposer ce dernier en code.
Encourager le travail en équipe. Par conséquent, ce projet devra être réalisé en groupe de 2 ou de 3.
1.2 Le thème proposé
Le thème proposé est le jeu puissance 4. Plus précisément, l’implémentation de ce jeu sous forme d’une application Java
avec une interface d’utilisateur graphique. Le chapitre deux contient une description plus détaillée du cahier de charge.
1.3 Les thèmes alternatifs
Vous pouvez également choisir votre propre thème. Toutefois, les conditions suivantes doivent être respectées :
1.
2.
3.
Le programme doit être une application Java.
L’application doit utiliser une interface d’utilisateur graphique.
Vous devez décrire votre application dans un cahier de charge, qui doit être approuvé par le professeur au début du
projet.
Toutes les autres formalités (notation, présentation orale et documentation) sont décrites ci-dessous.
1.4 La notation
Le projet est noté, dont les critères sont les suivants:
1.
2.
3.
4.
La documentation
La fonctionnalité du programme
Le design du programme
La qualité du code
1.5 La documentation
La documentation doit contenir le cahier de charge, la gestion du projet (analyse), la structure du programme (diagrammes
de classes), les problèmes rencontrés, les tests etc. Le journal de travail peut également y être fourni en annexe. Ajoutez
également un CD avec le code source du programme. Le rapport, sans les parties annexes, ne devrait pas contenir plus de 10
pages.
1.6 Le délai pour la documentation
Le délai pour la documentation est la dernière semaine de la période des cours.
3
Projet puissance 4
2 Le projet puissance 4
2.1 Description du travail
Le jeu puissance 4 doit être implémenté sur PC. Le programme doit posséder les caractéristiques suivantes:
1.
2.
3.
4.
5.
Les joueurs peuvent s’annoncer au début du jeu.
Chaque joueur reçoit une couleur.
Les joueurs peuvent jouer en alternance.
L’état du jeu doit être affiché sur l’interface d’utilisateur graphique. Différentes propositions pour l’affichage
graphique sont fournies en annexe. Cependant, vous pouvez développer vos propres affichages. Toutefois, ces
dernières doivent être programmées soit en AWT ou en Swing.
Le programme doit déterminer le gagnant.
2.2 Les différents étapes de réalisation
En fonction de l’avancement du projet vous pouvez ajouter des nouvelles fonctionnalités à votre projet. Toutefois la
première étape devrait absolument être atteinte par tous les groupes. La deuxième étape est le fonctionnement à travers le
réseau. Le code pour la mise en réseau est mis à disposition sur le serveur et sa description est fournie en annexe dans ce
document.
1.
2.
3.
Deux joueurs sur un PC
Deux joueurs à travers le réseau
Sauvegarde de l’état actuel du jeu
2.3 La procédure de réalisation
1.
2.
3.
4.
5.
6.
Spécifier la partie gestion de projet (organisation du travail au sein de l’équipe, ...)
Réalisez le design du programme
Définissez le code du programme
Testez le code.
Constituez un journal de travail, dans lequel vous évoquez les connaissances acquises, les problèmes rencontrés
ainsi que les solutions pour ces problèmes.
La documentation ne devrait pas être écrite à la fin du projet, mais en parallèle.
4
Possibilités GUI
Annexe A: Les possibilités GUI
Voici quelques propositions pour l’interface d’utilisateur graphique :
5
GUI avec Swing
Annexe B: GUI avec Swing
Swing est une bibliothèque plus moderne que celle d’AWT, pour la programmation des interfaces d’utilisateur graphique.
Vous pouvez programmer ce projet soit en AWT ou en Swing.
La programmation avec la bibliothèque Swing est très semblable à celle avec la bibliothèque AWT. Les différences les plus
importantes sont les suivantes :
1.
2.
3.
4.
Les noms des classes commencent toujours avec un « J », comme par exemple « JButton » au lieu de « Button ».
Les composants ne peuvent plus être ajouté simplement avec la méthode « add ». Il faut d’abord appeler la méthode
« getContentPane ». Cette méthode retourne un container, qui permet d’ajouter les composants à l’aide de add.
La méthode « paint » a été remplacée par la méthode « paintComponent ».
Les dessins peuvent être réalisé à l’aide de « JPanel ». Swing ne contient pas de Canvas.
Cette annexe fournit un aperçu des classes Swing, qui pourraient être utiles pour votre projet :
Class JFrame
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
Class JOptionPane
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JOptionPane
Class JMenuBar
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JMenuBar
6
GUI avec Swing
Class JPanel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
Class JLabel
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JLabel
7
Connexion des PC’s
Annexe C: Connexion des PC’s
Les mouvements des joueurs doivent être échangés à travers le réseau. Ce qui peut être réalisé avec la communication par
socket.
La communication par socket
Un socket définit une interface, orienté flux d’octets, destiné à la communication entre deux ordinateurs dans un réseau
TCP/IP. Le transfert de données à l’aide d’une connexion socket est comparable aux accès fichiers :
1. Créer une connexion
2. Lire ou écrire les données
3. Fermer la connexion
Les classes « Client.java » et « Server.java » sont mises à disposition pour la communication par sockets.
Server.java
Important:
Il faut d’abord instancier un objet de la classe Server. Le serveur attend alors, que le client se connecte
au port spécifié.
public Server(String port)
public void sendMove(int ownMove)
Constructeur: ouvre la connexion socket et attend sur un esclave afin
de créer une communication.
Attend que le client envoie son mouvement et retourne ce dernier en
tant que valeur entière.
Envoi un mouvement au Client.
public void closeConnection()
Ferme la communication
public String getConnectionStatus()
Retourne l’état de la communication sous forme chaîne de caractère
public int getNextMove()
- "Verbindung hergestellt!"
- "Verbindung terminiert!"
public String getMoveStatus()
Retourne l’état du mouvement sous forme chaîne de caractère
- "waiting for move from client..."
- "got move from client. move = " + move
Client.java
public Client(String port, String remoteIP)
public int getNextMove()
public void sendMove(int ownMove)
public void closeConnection()
public String getConnectionStatus()
public String getMoveStatus()
Constructeur : essai de créer une communication par socket avec le
serveur (remoteIP)
Attend jusqu’à ce que le maître envoie un mouvement et retourne ce
dernier en tant que valeur entière.
Envoie un mouvement au maître.
Ferme la communication.
Retourne l’état de la communication sous forme chaîne de caractère
- "Verbindung hergestellt!"
- "Verbindung terminiert!"
Retourne l’état du mouvement sous forme chaîne de caractère
- "waiting for move from server..."
- "got move from server. move = " + move
8