TP3 PEP8
Pour le bonheur de mes yeux et de pylint
This commit is contained in:
parent
7c6eb18e9c
commit
882c3c89b9
|
@ -16,7 +16,8 @@ http://fr.wikipedia.org/wiki/Bataille_navale_%28jeu%29
|
|||
"""
|
||||
|
||||
__author__ = 'BEAUSSART Jean-loup & PREUD\'HOMME Geoffrey'
|
||||
__date_creation__ = 'Tue, 10 Feb 2015 11:26:19 +0100' # TODO Metre à jour avant envoi
|
||||
# TODO Metre à jour avant envoi
|
||||
__date_creation__ = 'Tue, 10 Feb 2015 11:26:19 +0100'
|
||||
|
||||
|
||||
###############################################
|
||||
|
@ -37,7 +38,7 @@ from datetime import datetime
|
|||
# sur le plateau :
|
||||
# - H : horizontale
|
||||
# - V : verticale
|
||||
DISPOSITIONS="HV"
|
||||
DISPOSITIONS = "HV"
|
||||
|
||||
|
||||
# codes réponses d'analyse de tirs
|
||||
|
@ -52,7 +53,8 @@ FICHIER_RESULT = 'bataille_navale_scores.txt'
|
|||
# Procédure principale du jeu
|
||||
###############################################
|
||||
|
||||
def jouer (nom,descr):
|
||||
|
||||
def jouer(nom, descr):
|
||||
"""
|
||||
str, str -> ()
|
||||
procédure de jeu complet de bataille navale,
|
||||
|
@ -66,22 +68,23 @@ def jouer (nom,descr):
|
|||
decrire_le_jeu(jeu)
|
||||
nbre_tirs = 0
|
||||
while not tous_coules(jeu):
|
||||
tir = lire_un_tir (nom)
|
||||
tir = lire_un_tir(nom)
|
||||
nbre_tirs += 1
|
||||
nav,res = analyse_un_tir (jeu,tir)
|
||||
nav, res = analyse_un_tir(jeu, tir)
|
||||
if res == RATE:
|
||||
print ("raté.")
|
||||
print("raté.")
|
||||
elif res == TOUCHE:
|
||||
print (nav + " touché.")
|
||||
print(nav + " touché.")
|
||||
else:
|
||||
print (nav + " coulé.")
|
||||
sauver_result (nom,descr,nbre_tirs)
|
||||
print ("Terminé en {0} tirs".format(nbre_tirs))
|
||||
print(nav + " coulé.")
|
||||
sauver_result(nom, descr, nbre_tirs)
|
||||
print("Terminé en {0} tirs".format(nbre_tirs))
|
||||
|
||||
###############################################
|
||||
# Opérations sur les fichiers
|
||||
###############################################
|
||||
|
||||
|
||||
def lire_donnees(num_descr):
|
||||
"""
|
||||
str -> tuple
|
||||
|
@ -103,68 +106,69 @@ def lire_donnees(num_descr):
|
|||
contenu = fichier.readlines()
|
||||
fichier.close()
|
||||
|
||||
#On lit la largeur
|
||||
# On lit la largeur
|
||||
|
||||
i=0
|
||||
tmp=''
|
||||
while(contenu[0][i] != ':'):
|
||||
i = 0
|
||||
tmp = ''
|
||||
while contenu[0][i] != ':':
|
||||
tmp += contenu[0][i]
|
||||
i+=1
|
||||
i += 1
|
||||
|
||||
largeur=int(tmp)
|
||||
largeur = int(tmp)
|
||||
|
||||
#On lit la hauteur
|
||||
# On lit la hauteur
|
||||
|
||||
i+=1
|
||||
tmp=''
|
||||
while(contenu[0][i] != '\n'):
|
||||
i += 1
|
||||
tmp = ''
|
||||
while contenu[0][i] != '\n':
|
||||
tmp += contenu[0][i]
|
||||
i+=1
|
||||
i += 1
|
||||
|
||||
hauteur=int(tmp)
|
||||
hauteur = int(tmp)
|
||||
|
||||
res = (largeur, hauteur, list())
|
||||
|
||||
#On va maintenant traiter tous les bateaux un par un
|
||||
# On va maintenant traiter tous les bateaux un par un
|
||||
|
||||
for i in range(1, len(contenu)):
|
||||
nom=''
|
||||
tailleStr=''
|
||||
j=0
|
||||
while(contenu[i][j] != ':'):
|
||||
nom = ''
|
||||
tailleStr = ''
|
||||
j = 0
|
||||
while contenu[i][j] != ':':
|
||||
nom += contenu[i][j]
|
||||
j+=1
|
||||
nom = nom[:-1] #on supprime l'espace
|
||||
j += 1
|
||||
nom = nom[:-1] # on supprime l'espace
|
||||
|
||||
j+=1
|
||||
while(contenu[i][j] != '\n'):
|
||||
j += 1
|
||||
while contenu[i][j] != '\n':
|
||||
tailleStr += contenu[i][j]
|
||||
j +=1
|
||||
j += 1
|
||||
|
||||
res[2].append((nom, int(tailleStr)))
|
||||
|
||||
return res
|
||||
|
||||
#test OK
|
||||
#print(lire_donnees('2'))
|
||||
#print(lire_donnees('1'))
|
||||
# test OK
|
||||
# print(lire_donnees('2'))
|
||||
# print(lire_donnees('1'))
|
||||
#
|
||||
|
||||
#Fichier personnalisé
|
||||
#print(lire_donnees('3'))
|
||||
# Fichier personnalisé
|
||||
# print(lire_donnees('3'))
|
||||
#
|
||||
|
||||
# Sauvegarde du bilan
|
||||
#q1
|
||||
# q1
|
||||
|
||||
#print(datetime.today())
|
||||
#2015-02-10 11:25:48.324981
|
||||
#On obtient la date et l'heure au format AAAA-MM-JJ HH:MM:S
|
||||
# print(datetime.today())
|
||||
# 2015-02-10 11:25:48.324981
|
||||
# On obtient la date et l'heure au format AAAA-MM-JJ HH:MM:S
|
||||
|
||||
#str(datetime.today())
|
||||
#on convertie en chaîne de caractères la date et l'heure
|
||||
# str(datetime.today())
|
||||
# on convertie en chaîne de caractères la date et l'heure
|
||||
|
||||
def sauver_result (nom, jeu, nbre):
|
||||
|
||||
def sauver_result(nom, jeu, nbre):
|
||||
"""
|
||||
str, str, int -> NoneType
|
||||
ajoute une ligne dans le fichier FICHIER_RESULT
|
||||
|
@ -178,7 +182,7 @@ def sauver_result (nom, jeu, nbre):
|
|||
|
||||
fichierScores = open(FICHIER_RESULT, 'a')
|
||||
|
||||
fichierScores.write('%s:%s:%s:%s\n' %(nom, jeu, nbre, date))
|
||||
fichierScores.write('%s:%s:%s:%s\n' % (nom, jeu, nbre, date))
|
||||
|
||||
fichierScores.close()
|
||||
|
||||
|
@ -191,7 +195,8 @@ def sauver_result (nom, jeu, nbre):
|
|||
# Procédures de construction du jeu
|
||||
###############################################
|
||||
|
||||
def cree_jeu (descr):
|
||||
|
||||
def cree_jeu(descr):
|
||||
"""
|
||||
str -> dict
|
||||
renvoie un nouveau jeu de bataille navale construit à partir des données
|
||||
|
@ -213,7 +218,7 @@ def cree_jeu (descr):
|
|||
"""
|
||||
|
||||
|
||||
def cree_plateau (l, h, l_nav):
|
||||
def cree_plateau(l, h, l_nav):
|
||||
"""
|
||||
int, int, list -> dict
|
||||
renvoie un plateau de largeur l et de hauteur h occupé par les navires
|
||||
|
@ -223,20 +228,21 @@ def cree_plateau (l, h, l_nav):
|
|||
CU : les dimensions doivent permettre le placement de tous les navires
|
||||
"""
|
||||
|
||||
def est_placable (esp, nav, pos, disp):
|
||||
|
||||
def est_placable(esp, nav, pos, disp):
|
||||
"""
|
||||
dict, tuple, tuple, str -> bool
|
||||
|
||||
CU : disp = 'H' ou 'V'
|
||||
"""
|
||||
|
||||
assert(disp == 'H' or disp == 'V')
|
||||
assert(disp == 'H' or disp == 'V'), 'disp = \'H\' ou \'V\''
|
||||
|
||||
if pos[0] > esp['larg'] or pos[0] < 0 or pos[1] < 0 or pos[1] > esp['haut']:
|
||||
return False
|
||||
|
||||
|
||||
def placer (esp, nav):
|
||||
def placer(esp, nav):
|
||||
"""
|
||||
dict, tuple -> NoneType
|
||||
place le navire nav dans l'espace maritime esp.
|
||||
|
@ -250,7 +256,7 @@ def placer (esp, nav):
|
|||
# Procédures de déroulement du jeu
|
||||
###############################################
|
||||
|
||||
def decrire_le_jeu (jeu):
|
||||
def decrire_le_jeu(jeu):
|
||||
"""
|
||||
dict -> ()
|
||||
imprime une description du jeu.
|
||||
|
@ -264,10 +270,13 @@ def decrire_le_jeu (jeu):
|
|||
print('Navires :')
|
||||
etats = jeu['touches']['etats_navires']
|
||||
for navire in etats:
|
||||
print('- %s : %d case%s' % (navire, etats[navire], 's' * (etats[navire] >= 2)))
|
||||
print('À vous de jouer en répondant à l\'invite ?- par deux nombres séparés par une virgule.')
|
||||
print('- %s : %d case%s' %
|
||||
(navire, etats[navire], 's' * (etats[navire] >= 2)))
|
||||
print(
|
||||
'À vous de jouer en répondant à l\'invite ?- par deux nombres séparés par une virgule.')
|
||||
|
||||
def lire_un_tir (nom):
|
||||
|
||||
def lire_un_tir(nom):
|
||||
"""
|
||||
str -> tuple
|
||||
renvoie un couple d'entiers lus sur l'entrée standard
|
||||
|
@ -288,9 +297,7 @@ def lire_un_tir (nom):
|
|||
print('Merci de saisir une valeur correcte.')
|
||||
|
||||
|
||||
|
||||
|
||||
def analyse_un_tir (jeu,tir):
|
||||
def analyse_un_tir(jeu, tir):
|
||||
"""
|
||||
dict, tuple -> str,int
|
||||
renvoie
|
||||
|
@ -317,7 +324,7 @@ def analyse_un_tir (jeu,tir):
|
|||
return ('', RATE)
|
||||
|
||||
|
||||
def tous_coules (jeu):
|
||||
def tous_coules(jeu):
|
||||
"""
|
||||
dict -> bool
|
||||
renvoie True si tous les navires du plateau de jeu ont été coulés
|
||||
|
@ -329,7 +336,6 @@ def tous_coules (jeu):
|
|||
return jeu['touches']['nb_touches'] >= jeu['nb_cases_occupees']
|
||||
|
||||
|
||||
|
||||
###############################################
|
||||
# Pour une utilisation du module depuis un terminal
|
||||
###############################################
|
||||
|
@ -341,6 +347,3 @@ def tous_coules (jeu):
|
|||
# jouer ('Jean Bart','1')
|
||||
# else:
|
||||
# jouer (sys.argv[1],sys.argv[2])
|
||||
|
||||
|
||||
|
||||
|
|
Reference in a new issue