• [^] # Re: En Python, modélisé

    Posté par (Mastodon) . En réponse au message Avent du Code, jour 9. Évalué à 3.

    C'est vrai !

    Bon, comme j'aime bien les trucs rigolos qui bougent, j'ai fait une animation en terminal.
    On ajoute ça :

    import os
    import time
    class display:
     def __init__(self):
     self.w, self.h = tuple(os.get_terminal_size())
     self.h -= 1
     self.delta = numpy.array((self.w//2, self.h//2))
     self.top = "*" * (self.w)
     self.line = "*" + " " * (self.w - 2) + "*"
     self.background = self.top + "".join(
     self.line for _ in range(self.h - 2)) + self.top
     def __call__(self, knots):
     x, y = self.delta + knots[0]
     if x <= 0:
     self.delta[0] += 1
     if x >= self.w-1:
     self.delta[0] -= 1
     if y <= 0:
     self.delta[1] += 1
     if y >= self.h-1:
     self.delta[1] -= 1
     txt = [c for c in self.background]
     for knot in knots:
     x, y = knot + self.delta
     txt[int(x + y * self.w)] = "#"
     print("".join(txt))
     time.sleep(.01)
    d = display()

    Et dans la boucle on ajoute à la fin : d(knots)
    J'ai 11460 mouvements dans mon input, à cette vitesse - sleep(.01) - ça prends 2 minutes et quelques.

    Ça commence centré sur le démarrage, et quand la tête déborde d'un côté, on translate tout pour garder dans le champs.

    • Yth, du temps à perdre on dirait...