Soigner l'affichage : couleurs et titres
Un programme agréable à lire donne envie de l'utiliser. Voyons comment ajouter des couleurs et de la mise en forme à la console.
Colorer un texte
couleur(code, texte) affiche un texte dans la couleur demandée :
couleur(#00BA7C, 'Bravo, bonne réponse !')
couleur(#F4212E, 'Dommage, essaie encore.')
La couleur s'écrit en hexadécimal : un # suivi de 6 chiffres ou lettres, sans guillemets. Les deux premiers donnent la quantité de rouge, les deux suivants le vert, les deux derniers le bleu.
#FF0000 : rouge#00BA7C : vert#1D9BF0 : bleu#FF7A00 : orange
Les noms de couleur ne sont pas acceptés : couleur('rouge', ...) provoque une erreur. Et le code s'écrit sans guillemets : #FF0000, pas '#FF0000'.
Plusieurs couleurs sur une ligne
Dans un affiche, couleur(...) peut colorer seulement une partie du texte :
points est un nombre vaut 42
affiche 'Ton score : ' + couleur(#1D9BF0, points) + ' points'
Seul le nombre apparaît en bleu.
Changer la couleur courante
Avec la couleur seule, tout ce qui est affiché ensuite prend cette couleur, jusqu'à ce qu'on la réinitialise avec #0 :
couleur(#FF7A00)
affiche 'Ligne en orange'
affiche 'Encore en orange'
couleur(#0)
affiche 'Retour à la couleur normale'
Question : Comment remet-on la couleur normale de la console ? — couleur(#0). couleur(#0) réinitialise la couleur courante.
Des titres et des listes avec html
html(...) affiche un texte mis en forme avec des balises. Une balise s'ouvre avec <nom> et se ferme avec </nom> :
html('<h2>Résultats du jeu</h2>')
html('<ul><li>Alice : 120 points</li><li>Tom : 85 points</li></ul>')
html('Le <strong>gagnant</strong> est <em>Alice</em>.')
<h1> à <h6> : des titres, du plus grand au plus petit ;<ul> et <li> : une liste à puces (<ol> pour une liste numérotée) ;<strong> : en gras ; <em> : en italique.
Seules ces balises (avec a et img) sont autorisées : toute autre provoque une erreur.
On peut bien sûr y glisser des variables :
prenom est un texte vaut 'Léa'
points est un nombre vaut 120
html('<h3>Fiche de ' + prenom + '</h3>')
html('<strong>Score :</strong> ' + points + ' points')
couleur et html ne se combinent pas : on ne peut pas colorer un texte produit par html.
En résumé
couleur(#RRGGBB, texte) affiche un texte en couleur ; dans un affiche, elle colore une partie de la ligne.couleur(#RRGGBB) change la couleur courante, couleur(#0) la réinitialise.- Les codes de couleur s'écrivent sans guillemets.
html('...') met en forme avec des balises : titres, listes, gras, italique.