Mon
2ème essai de code essaie de donner un petit côté graphique qui reprend l'idée des rochers et de la forme des personnages du jeu
Ultimate Smash Friends
Le code est encore bien compliqué car je ne sais pas encore lister automatiquement mes personnages, mais j'utilise des fonctions définies en haut du code, que j'appelle ensuite au sein du programme.
Il y a un petit problème d'encodage des accents quand je regarde ma
page de code dans Firefox, mais chez moi, ça fonctionne comme il faut.
Tout ça ne bouge pas beaucoup, mais le côté graphique est amené progressivement.
Si on veut faire une ligne de tirets en pouvant changer ensuite le nombre, on met ce nombre comme variable:
nb_tirets = 80
print '-'*nb_tirets
Je rappelle que le tiret doit être mis entre apostrophes puisqu'il s'agit d'une chaine d'un seul caractère.
Il suffira de changer le chiffre 80 par un autre pour avoir une ligne plus courte ou plus longue.
FONCTION
Mais on peut être amené à réutiliser plusieurs fois ce bout de code, en changeant à chaque fois le nombre de tirets, ce qui oblige à redéfinir la variable à chaque fois et à recopier tout ce code, pas évident !
Si on accumule plusieurs instructions pour un même objet et qu'on a besoin plusieurs fois du même bout de code, une fonction sera vraiment très utile. Le programme fera appel à elle chaque fois qu'il en aura besoin puis reviendra dans le cours normal des instructions.
On va donc définir une fonction pour ce bout de code dessinant une ligne composée d'un nombre précis de tirets successifs, ce qui permettra de l'appeler ensuite quand on veut:
def Tirets(nb_tirets):
chaine_tirets = '-'*nb_tirets
return chaine_tirets
Ne pas oublier les 2 points après la parenthèse donnant l'argument de la fonction (c.à.d
nb_tirets) et les tabulations avant
chaine_tirets et
return. Ce sont ces indentations (faites avec la touche Tab, dans Kate) qui indiquent que l'on est en train de définir la fonction.
L'instruction
return permet de faire un calcul, par exemple, sans l'afficher tout de suite.
Quant on appelle cette fonction
Tirets au sein du programme, on note entre parenthèses le nombre de tirets désiré. On doit mettre l'instruction
print dans le programme avant le nom de la fonction car l'instruction
return, présente dans la fonction, n'affiche rien. Cela donnera 80 tirets puis 30 tirets:
print Tirets(80)
print Tirets(30)
SUGGÉRER UN ROCHER
Un rocher est constitué du tiret vertical
| (touche 6 + AltGr) au début et à la fin, et d'un nombre variable de tirets
(touche 6, sans autre touche). La façon de réaliser un rocher est définie dans la fonction
Rocher(nb_tirets).
def Rocher(nb_tirets):
chaine_tirets = '|' + '-'*nb_tirets + '|'
return chaine_tirets
Je rappelle de nouveau que le tiret et le tiret vertical doivent être mis entre apostrophes puisqu'il s'agit pour chacun d'une chaine d'un seul caractère.
Il faudra bien sûr appeler la fonction Rocher par l'instruction
print Rocher(10) ou
print Rocher(5) au sein du code en indiquant le nombre de tirets désirés (dans notre exemple: 10 ou 5) comme argument.
ESPACER LES ROCHERS
Entre les rochers, il y a des espaces successifs appelés par la fonction
Vide, avec en argument le nombre d'espaces (touche espace du clavier, tout bêtement).
def Vide(nb_espace):
chaine_vide = ' '*nb_espace
return chaine_vide
Cette fonction est même plus simple que pour réaliser un rocher ! Il faut juste penser à mettre un espace entre les apostrophes de la chaine.
La 1ère ligne de rochers comprend donc des vides de taille différente et des rochers de taille différente.
print Vide (3) + Rocher(5) + Vide(10) + Rocher(10) + 2*(Vide(5) + Rocher(5)) + "\n"
On note que la succession d'un vide de 5 espaces et d'un rocher de 5 tirets est appelée 2 fois (en multipliant le contenu de la parenthèse par 2) comme ci-dessous:
- Succession d'un vide de 5 espaces et d'un rocher de 5 tirets:
print Vide(5) + Rocher(5)
- La même chose appelée 2 fois:
print 2*(Vide(5) + Rocher(5))
2ème LIGNE DE ROCHERS
Pour la 2ème ligne de rochers, au lieu de changer la taille des vides "à la main", j'ai additionné le chiffre avec un autre au sein de la parenthèse de la fonction Vide, ou soustrait un nombre d'espaces au premier chiffre.
- 1er vide de la 1ère ligne, de 3 espaces:
print Vide (3)
- 1er vide de la 2ème ligne, de 3 espaces supplémentaires, soit 6 espaces:
print Vide (3+3)
- 2ème vide de la 1ère ligne, de 10 espaces.
Note : Pour cet exemple, l'instruction
print ne se met que si vous faites l'essai isolé, sinon il faut concaténer avec le symbole
+ la ligne de code précédente avec celle-ci :
print Vide(10)
- 2ème vide de la 2ème ligne, de 7 espaces en moins, soit 3 espaces restants:
print Vide(10-7)
Il semble logique de ne pas changer la taille des rochers.
SYMBOLISER LES PERSONNAGES
Au-dessus des rochers, on a fait une ligne où chaque personnage est représenté par une lettre, rappelant sa forme dans le jeu.
BiX = O

Blob = A

Stick = I
Il y a des vides appelés par la fonction
Vide entre les personnages (leur lettre) et un saut de ligne noté
"\n" à la fin de la ligne, code que vous avez remarqué seul
dans le fichier à d'autres endroits, concaténé en fin de lignes.
print Vide(5) + perso_1 + Vide(15) + perso_2 + Vide(8) + perso_3 + "\n"
print "\n"