Commit 02719cd7 authored by Robert Sebille's avatar Robert Sebille

Ajout des sous-titres à la classe

parent 61aa5547
......@@ -37,7 +37,7 @@ class Film:
et dans l'ordre alphanumérique croissant.
"""
def __init__(self, titre=""):
def __init__(self, titre="", dic_st={}):
"""Constructeur"""
self.titre = str(titre)
self.frames = []
......@@ -45,6 +45,7 @@ class Film:
self.affiche_titre = True
self.affiche_ctrl_c = True
self.titre_x = 2
self.dic_st = dic_st
def __str__(self):
"""Retoune la chaîne "Film : Titre du film" """
......@@ -76,6 +77,10 @@ class Film:
"""Retourne le titre """
return self.titre
def get_dic_st(self):
"""Retourne le dictionnaire des sous-titres"""
return self.dic_st
def get_affiche_titre(self):
"""Retourne si il faut afficher le titre (booléen)"""
return self.affiche_titre
......@@ -120,20 +125,33 @@ class Film:
dep = 0
after = ""
before = " " * trace
seq = 0
while (dep <= nb and dep >= 0) or nb == 0:
try:
for f in self.frames:
# affichage de la frame
for l in range(len(f)):
self.goto(x + dep, y + l)
print(before + f[l] + after)
# Traitement des sous-titres
self.goto(28, y + l + 1)
print(" "*40)
for k, v in self.dic_st.items():
if seq in range(int(k[0]), int(k[1])):
self.goto(28, y + l + 1)
self.print_rev(v)
# affichage éventuel du CTRL+C
self.goto(0, y + l + 2)
if self.affiche_ctrl_c:
print(" CTRL + C to stop.")
sleep(delai)
# deplacement et sequençage
if self.reverse:
dep -= 1
seq -= 1
else:
dep += 1
seq += 1
except KeyboardInterrupt:
print("\nReçu CTRL + C")
input("Pressez entrée pour sortir.")
......@@ -144,6 +162,15 @@ class Film:
"""Modifie ou crée le titre"""
self.titre = titre
def set_dic_st(self, dic_st):
"""Modifie ou crée le dictionnaire des sous-titres
Ce dictionnaire est de la forme: {(a, b): "sous-titre"}
ou a = n° de la frame où l'affichage de "sous-titre" démarre et
b = n° - 1 de la frame où s'arrête l'affichage de "sous-titre"
"""
self.dic_st = dic_st
def set_affiche_titre(self, affiche_titre):
"""Décide si il faut afficher le titre (booléen)"""
self.affiche_titre = affiche_titre
......
......@@ -32,16 +32,43 @@ from classes.Film import Film
if __name__ == '__main__':
# On crée 4 nouveaux films (f1, 2, 3, 4), avec leur titre (non requis))
f1 = Film("La promenade tranquille ...")
d1 = {
(5, 10): " Bonjour ",
(20, 27): " Quelle belle promenade ! ",
(34, 41): " Et quel temps agréable. ",
(48, 55): " Allez, au revoir "
}
f1 = Film("La promenade tranquille ...", d1)
f1.set_frames("frames/")
f2 = Film("La moto infernale")
d2 = {
(5, 15): " Ouf ti ! ",
(25, 35): " Ca tape la vitesse ! ",
(45, 60): " Bon, je freine. "
}
f2 = Film("La moto infernale", d2)
f2.set_frame("frame/roflflyingmoto")
f3 = Film("La poursuite impitoyable")
d3 = {
(5, 10): " Je t'aurai, rascal ! ",
(15, 20): " Essaie toujours, voyou ! ",
(25, 30): " Tu ne t'en sortiras pas ! ",
(35, 40): " Numérotte tes abattis ! "
}
f3 = Film("La poursuite impitoyable", d3)
f3.set_frame("frame/poursuiteci")
f4 = Film("La poursuite effroyable")
d4 = {
(5, 10): " Ha ha, on ne dit plus rien ! ",
(15, 20): " C'est ce que tu crois, bandit ! ",
(25, 30): " Je te tiens cette fois, rascal ! ",
(35, 40): " Compte là-dessus, voyou ! "
}
f4 = Film("La poursuite effroyable", d4)
f4.set_frame("frame/poursuiteic")
# on efface l'écran. Méthode de classe, car quand on efface l'écran,
......@@ -127,3 +154,4 @@ if __name__ == '__main__':
Film.clearsc()
f4.goto(27, 6)
f4.print_rev("A vous de jouer !")
print("\n\n\n")
......@@ -23,8 +23,8 @@ long_line_column=80
[files]
current_page=1
FILE_NAME_0=920;Python;0;EUTF-8;0;1;0;%2Fhome%2Frobert%2Fdev%2Fpython%2Ffilms%2Fclasses%2FFilm.py;0;4
FILE_NAME_1=3210;Python;0;EUTF-8;0;1;0;%2Fhome%2Frobert%2Fdev%2Fpython%2Ffilms%2Fdemo.py;0;4
FILE_NAME_0=4272;Python;0;EUTF-8;0;1;0;%2Fhome%2Frobert%2Fdev%2Fpython%2Ffilms%2Fclasses%2FFilm.py;0;4
FILE_NAME_1=4428;Python;0;EUTF-8;0;1;0;%2Fhome%2Frobert%2Fdev%2Fpython%2Ffilms%2Fdemo.py;0;4
[VTE]
last_dir=/home/robert/Nextcloud/dev/python/puissance4
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment