CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

Comment bien bruler de l'énergie avant un mardi gras #196

Open michaelb opened 2 years ago

michaelb commented 2 years ago

Voici un petit programme en Lua tout simple, bien compréhensible et commenté, pour movaicode/9

J'ai essayé Lua par curiosité* , et j'avoue que je suis un peu déçu, car on m'avait dit que c'était censé être très rapide. actuellement, ce programme met entre 30s et 5 minutes pour trouver la réponse... mais bon ça marche donc... Pour ma défense j'ai tenté de le réécrire en Rust mais ca donne un 'error stackoverflow', je sais bien que le site est populaire mais ça m'aide pas trop.

les_specialites_regionales_de_mardi_gras = {"gaufres", "croustillons du ch\'nord", "bugnes", "ganses", "pets de nonne", "roussettes", "merveilles", "crouchepettes", "bougnettes", "beugnot", "bottereaux", "oreillettes"}

function choisi_une_recette_aleatoire_de_mardi_gras ()
    local biggest_integer = 4294967296
    -- 4 millaird: 2^32 pour un entier 32 bit, même si le site de Lua
    --  dit qu'il n'y a pas de type entier
    -- mais qui croit la documentation en 2022 ???

    -- étape 1: récupérer un entier aléatoire
    local index =  math.random(0,biggest_integer)

    -- Etape2, recupérer la recette correspondante
    local recette = les_specialites_regionales_de_mardi_gras[index]

    -- ETAPE 3; gestion d'erreur
    if recette ~= nil then
        -- tout va bien
        return recette
    end
    -- il y a eu un problème, mais on peut juste réessayer, non ? Trop smart
    return choisi_une_recette_aleatoire_de_mardi_gras()

end

--affichaj du résultat
print(choisi_une_recette_aleatoire_de_mardi_gras())

* (c'est un mensonge, c'est délibérement choisi. Essayez de trouver pourquoi)

bursauxa commented 2 years ago

@michaelb

c'est un mensonge, c'est délibérement choisi. Essayez de trouver pourquoi

Je penche pour https://www.lua.org/pil/6.3.html ! La blague sur le site populaire donnait un indice un peu trop facile :wink:

Je ne connaissais pas Lua autrement que de nom/réputation, mais je dois dire que pour un "simple langage de scripting" c'est une fonctionnalité bien avancée :+1:

louismarslen commented 2 years ago

Salut salut,

Malheureusement tu n'as pas gagné l'édition 9 de MOVAICODE (c'est S4lem qui gagne : #186) 😭 Toutefois nous t'invitons fortement à participer à l'édition 10 qui vient d'être lancée : le README est ici

Merci pour ta prestation 🤘