Rapport de projet Python.

publicité
Université Paul-Verlaine - Metz
UFR-MIM, Mathématiques Informatique Mécanique et Automatique
Département Informatique – Master 1.
Rapport de projet Python.
« Développement de jeux : Bataille navale »
Réalisateur :
•
Samir GUENDOUL.
Année universitaire : 2011-2012
Responsable de l’UV :
•
Benoît MARTIN
Lundi 14 mai 2012.
Projet python jeux
« bataille navale »
Sommaire
Sommaire ................................................................................................................................................ 2
1.
Introduction : ................................................................................................................................... 3
2.
Développement de jeux bataille naval : .......................................................................................... 3
2.1. Définition : .................................................................................................................................... 3
2.2. Contrainte de réalisation : ............................................................................................................ 3
3.
Développement de l’application : ................................................................................................... 4
3.1. Outils de développement : ........................................................................................................... 4
3.2. L’interface Graphique : ................................................................................................................. 4
3.3. La barre du menu : ....................................................................................................................... 5
3.4. Lancer une partie :........................................................................................................................ 7
4.1. La grille : ....................................................................................................................................... 8
4.2. Les bateaux : ................................................................................................................................. 8
5.
Conclusion : ..................................................................................................................................... 9
Page 2
Projet python jeux
« bataille navale »
1. Introduction :
Dans le cadre de l’unité de valeur (UV) développement Prototypage d'interfaces par
langage de script en Master 1 informatique à l’université Paul Verlaine de Metz, j’ai à
réaliser un projet de développement d’application. Le projet est intitulé : Développement de
jeux bataille navale.
Le projet est à réaliser durant le semestre 2 en binôme ou monôme. J’ai décidé donc
de le faire seul. Le travail est à rendre pour la fin du premier semestre.
2. Développement de jeux bataille naval :
2.1. Définition :
La bataille navale est un jeu de société dans lequel deux joueurs doivent placer des «
navires » sur une grille tenue secrète et tenter de « toucher » les navires adverses. Le
gagnant est celui qui parvient à torpiller complètement les navires de l'adversaire avant que
tous les siens ne le soient. C'est un jeu de hasard.
La première version du jeu fut publiée en 1931 par la Starex Novelty Co. sous le nom
de Salvo. Ce jeu est devenu populaire lors de son apparition en 1943 dans les publications
américaines de divertissement de la Milton Bradley Company qui l'exploita sous la forme
papier jusqu'en 1967 puis en réalisa une version électronique en 1977.
Quelques exemples de jeux développés avec flash sur le net :
•
•
•
•
•
http://www.stratozor.com/bataille-navale/bataille-navale-flash.php
http://www.stratozor.com/bataille-navale/bataille-navale-classique.php
http://www.stratozor.com/bataille-navale/bataille-navale-moderne.php
http://www.stratozor.com/bataille-navale/bataille-navale-3d.php
http://www.stratozor.com/bataille-navale/bataille-navale.php
2.2. Contrainte de réalisation :
Pour développer ce clavier virtuel, nous avons les contraintes suivantes à respecter :
-
Placement des bateaux manuellement ;
Placement automatique ;
Lancement d’une partie ;
Jeu à tour de rôle ;
Tir sur une case adverse (si déjà découverte le tir n’est pas prise en compte et le
joueur peut rejouer) ;
Page 3
Projet python jeux
-
« bataille navale »
Visualisation de sa grille avec les bateaux et les tirs déjà reçus et de la grille adverse
avec les tirs déjà effectués ;
Un tir réussi devra être affiché différemment d’un tir raté ;
Un score devra constamment être affiché pour indiquer l’état de la partie ;
Deux joueurs
Un joueur : possibilité de jouer contre l’ordinateur qui devra jouer ses tirs en croix. En
admettant que le navire le plus petit du jeu fasse 2 cases, il suffit de jouer une case
sur deux pour le repérer. Par contre les tirs devront être répartis sur toute la grille
pour donner une impression « aléatoire ».
3. Développement de l’application :
3.1. Outils de développement :
a) Langage de programmation :
Pour développer cette application j’ai utilisés le langage de programmation Python.
Python est un langage de programmation, dont la première version est sortie en 1991.
Créé par Guido van Rossum. C’est un langage de programmation multi-paradigme. Il
favorise la programmation impérative structurée, et orientée objet. Il est doté d'un
typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes
et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme,
Smalltalk et Tcl.
b) Plateforme de développement :
Et j’ai utilisé comme plateforme de développement Eclipse, il fournit divers outils
gravitant autour de la réalisation de logiciel, englobant les activités de codage logiciel
proprement dites (avec notamment un environnement de développement intégré) mais
aussi de modélisation, de conception, de test, de reporting, etc. Son environnement de
développement notamment vise à la généricité pour lui permettre de supporter
n'importe quel langage de programmation.
3.2. L’interface Graphique :
L’interface graphique de jeux doit être ergonomique, conviviale et facile a utilisée.
Cette interface permettra au joueur de configurer le jeu ainsi que de jouer. La figure
suivante illustre la fenêtre de jeux au démarrage :
Page 4
Projet python jeux
« bataille navale »
Figure 1 : Interface graphique de jeux bataille navale.
Cette interface comprend trois grilles :
•
•
•
Grille des bateaux : cette grille contient tous les bateaux de jeux, le joueur les
utilise pour les placer dans sa grille.
Grille de jouer : cette grille appartient au joueur, elle renferme ses bateaux qu’il a
placé de dans.
Grille adversaire : cette grille illustre la grille de l’adversaire, c’est dans celle la que
le joueur attaque l’attaque en cliquant sur les case pour trouver l’emplacement
des bateaux.
3.3. La barre du menu :
Cette barre contient trois menus :
Figure 2 : La barre de menu.
Page 5
Projet python jeux
« bataille navale »
a) Menu Fichier : ce menu contient les sous menus suivant :
a. Nouveaux : pour lancer une nouvelle partie.
b. Réinitialiser : pour réinitialiser le jeu.
c. Lancer le Robot : pour jouer contre le jeu (l’intelligence artificielle).
d. Quitter : pour quitter le jeu.
Figure 3 : le menu fichier.
b) Menu Option : ce menu contient les sous menus suivant :
a. Placement automatique : permet au joueur de placer automatiquement les
bateaux dans sa grille.
b. Connexion : pour se connecter et jouer une partie à deux.
c. Déconnexion : pour se déconnecter de serveur.
d. Paramètres : pour paramétrer les propriétés de connexion au serveur.
Figure 4 : le menu Option.
c) Menu « ? » : ce menu contient les sous menus suivant :
a. Aide : pour afficher l’aide d’utilisation de jeu.
b. A Propos : affiche des informations relative au jeu et a son développeur.
Figure 5 : le menu « ? ».
Page 6
Projet python jeux
« bataille navale »
3.4. Lancer une partie :
Pour lancer une partie il faut suivre les étapes suivantes :
1. Cliquer sur le bouton connexion (option ->connexion), maintenant vous êtes
connecter et prêt à placer les bateaux sur votre grille.
2. Placer les bateaux dans votre grille. Il suffit de cliquer sur un des bateaux qui se
trouvent dans la grille à bateaux puis choisir une position dans votre grille, enfin de
faire un clic dessus, votre bateau est ainsi placer et vous recommencez la procédure
jusqu’à ce qu’il ne reste plus de bateaux dans la grille à bateaux.
3. Vous attendez l’ordre de jouer, car l’autre joueur doit finir lui aussi de placer ces
bateaux dans sa grille.
4. Une fois l’ordre est donner, il vous reste qu’a jouer, pour cela il suffit de cliquer sur
une case au hasard dans la grille de l’adversaire.
5. Le jeu s’arrête que lorsqu’un jouer a découvert tous les case des bateaux de sont
adversaire.
a. Connexion.
b. Jouer au jeu.
b. Placement des bateaux
c. jeu finit.
Figure 6 : jouer à une patrie.
Page 7
Projet python jeux
« bataille navale »
4. La programmation :
4.1. La grille :
la grille est un tableau de 100 case, elles sont numérotées de 0 jusqu’à 99.
Figure 7 : grille du jeu.
Chaque case dans le jeu est cliquable, lors de clique un rond de couleur différent se
dessine, s’il y a un bateau sur cette case alors la couleur de rond est noire sinon sa
couleur est verte. Noire indique au jouer qu’il a touché un bateau, vert indique qu’il n’a
rien touché.
4.2. Les bateaux :
il y a cinq types de bateau :
a) Porte-avions : le joueur place un porte avion sur sa grille, sa place est de 5 cases.
Porte-avions.
b) Croiseur : le joueur place deux croiseurs sur sa grille, la place de chacun d’eux est
de 4 cases.
Croiseur.
Page 8
Projet python jeux
« bataille navale »
c) Contre-torpilleurs : le joueur place un contre-torpilleurs sur sa grille, sa place est
de 3 cases.
Contre-Torpilleurs.
d) Sous-marin : le joueur place un sous-marin sur sa grille, sa place est de 3 cases.
Sous-marin.
e) Torpilleurs : le joueur place deux torpilleurs sur sa grille, la place de chacun d’eux
est de 2 cases.
Torpilleur.
5. Conclusion :
Dans ce rapport nous avons expliqué, d’une manière générale, les étapes de
développement de ce jeu : bataille navale. Nous avons spécifié les besoins puis nous
avons proposé une solution.
Lors du développement de cette application nous avons réussi à assimiler tous les
cours que nous avons étudiés, ainsi nous avons bien raffiné nos connaissances dans le
développement avec le langage python.
Page 9
Téléchargement