Journal TapTempo en langage Linotte

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
24
9
mar.
2018

Bonjour,
Bah oui, il fallait bien une variante de TapTempo en langage Linotte quand même ! Pour réaliser cette exemple, j'ai un peu triché. J'ai modifié le moteur du langage pour y ajouter la méthode taille() à un casier (une liste). Cela permet d'alléger le code.

J'ai ajouté quelques commentaires pour expliquer certaines commandes.

    /*
    Version originale : http://linuxfr.org/users/mzf/journaux/un-tap-tempo-en-ligne-de-commande
    Comptatible à partir de Linotte 2.7.7
    */
    principale :
        horloge est un horodatage // greffon permettant de récupérer le temps
        tempo valant 0 // équivaut à "tempo est un nombre valant 0"
        entrée valant "" // variable utilisée pour stocker les touches
        entrées est un casier de nombres // tableau qui contiendra les délais entre les tempos
        début
            tant que vrai lis
                tempo vaut horloge.maintenant()
                demande entrée
                si entrée = "q" lis
                    affiche "Au revoir !"
                    termine
                ferme
                sinon lis
                    ajoute (horloge.maintenant()) - tempo dans entrées
                    si (entrées.taille()) > 2 lis
                        affiche "Tempo : " + calculerbpm(entrées) + " bpm"
                    ferme
                    sinon affiche "Appuyer encore sur la touche entrée pour lancer le calcul du tempo…"
                ferme
            ferme

    calculerbpm : liste // paramètre liste, contient la liste des tempos
        retour valant 0
        début
            si (liste.taille()) > 5 ôte liste{0} de liste // On supprime le premier élément
            pour liste, retour += joker // Somme des valeurs de la liste
            retour vaut retour / (liste.taille())
            retourne arrondi (60000 / retour)

La boucle principale du programme se trouve dans la première fonctionne qui s'appelle ici principale (En Linotte, c'est toujours la première fonction du programme qui est exécutée en premier).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.