Appuyez sur S pour exporter l'image.

Ici on utilise à nouveau la boucle for pour répéteter du code, et le mode "statique" (draw() n'ext exécuté qu'une seule fois).
Le but est de générer un visuel en code, et d'en faire un export image de bonne qualité pour impression.

pixelDensity(4); permet d'exporter une image 4 fois plus grande que la taille du sketch - à utiliser dans setup() juste après createCanvas().
Les typos sont parfaitement rendues en grand format, et pour les images il suffit de prévoir de grandes images, quitte à les afficher plus petite dans le sketch.
De cette façon lors de l'export les images seront bien rendues.

Pour réagir lorsqu'une touche du clavier est enfoncée, on s'appuie sur "l'événement" keyReleased qui est déclenché quand une touche du clavier est relâchée.
Dans P5js c'est une fonction qu'on remplit, et que P5js déclenche au bon moment.

Ensuite il faut faire l'export SI la touche enfoncée était "S", on utilise donc une condition if

(Accessoirement, ce sketch est ma réponse personnelle à l'exercice qui vous est demandé.)