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