Puisque tout le monde y va de sa petite version de TapTempo, je me suis dit hein, quoi, y'a pas de raison. Alors voici un portage en GOTO++, ce magnifique langage qui, il fut un temps, était chroniqué régulièrement sur ce site par son auteur en personne, et fit même l'objet de news.
Dans la version ci-dessous, j'ai voulu rester sobre, aussi me suis-je inspiré de l'algorithme simple de la version javascript de TapTempo pour en reproduire le fonctionnement à l'aide des fonctions de base du GOTO++. Bien qu'exempt, donc, d'utilisation des concepts avancés du GOTO++, tels que le branchement aléatoire ou les troupeaux de machines à pingouins, j'estime que ce code respecte néanmoins assez bien l'identité unique du langage.
niveaugourou 0
GOTOPRINTDUTEXTE() ; «Appuyer sur la touche entrée en cadence (q pour quitter).»
J==BOITEAPINGOUINS()
§Debut
c=TapeUneTouche()
GOTOMULTIPLE &c
?*`Q' enentier?
?*`q' enentier?
GOTOPASMALIN %Fin
FINGOTOMULTIPLE
Pousse(J Quelleheureestil())
AUTOGOTOZ } J tailleenlongueur sup *(1) {
bpm=60000 : &J<J tailleenlongueur - *(1)> - &J<*(0)> MULTIPLICATION } J tailleenlongueur - *(1) {
GOTOPRINTDUTEXTE() ; « bpm» &bpm «Tempo : »
AC
AUTOGOTOZ } J tailleenlongueur sup *(4) {
EnleveDessous(J)
AC
GOTOPASMALIN %Debut
§Fin
GOTOPRINTDUTEXTE() ; «Au revoir !»
Bien que le texte d'invite parle de la touche Entrée comme dans le programme d'origine, on peut utiliser n'importe quelle touche, sauf le Q qui permet de quitter.
Aussi, vous noterez au passage dans la partie qui effectue le calcul des bpm, que la gestion optimisée des priorités des opérateurs en GOTO++ permet une écriture bien plus élégante que dans les autres langages, qui imposeraient une accumulation de parenthèses.
NB: Je place ce code sous licence LPCLWTFPLMEPP.
# Excellent
Posté par mzf (site web personnel) . Évalué à 8.
J'ai bien rigolé avec le nom des méthodes (BOITEAPINGOUINS, GOTOPASMALIN, etc.), merci pour la découverte de ce langage incroyable !
Par contre je n'ai pas réussi à compiler l'interpréteur gotopp (le CMakeFile a l'air très ancien) donc pas possible de tester…
# BrainFuck ?
Posté par Mimoza . Évalué à 2.
Le prochain portage sera en BrainFuck ?
[^] # Re: BrainFuck ?
Posté par littlebreizhman . Évalué à 10.
Déjà porté : https://linuxfr.org/users/guillaum/journaux/taptempo-en-brainfuck
[^] # Re: BrainFuck ?
Posté par Mimoza . Évalué à 1.
En effet je n'avais pas vu ce journal …
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.