07:32 <Mindiell> oubliez-moi, j'étais à l'ouest hier soir
07:49 <Mindiell> oh, la diagonale des fous !
08:05 <mdk> Mindiell, hum ?
08:11 <entwanne> fallait un peu plus bosser aujourd'hui
08:14 <debnet> J'ai pas encore regardé !
08:14 <debnet> Je viens de me lever.
08:25 <mdk> Pareil j'ai pas encore regardé, et là je soulève mon courage à deux mains pour aller à l'OSXP 😀
08:28 <discord_afpy_> <lythari59> entwanne t'as fait un solver 💪 , si tu te contente du problème c'était relativement simple.
08:30 <entwanne> j'ai fait un truc générique parce que je trouvais que sinon il y avait trop de cas à gérer
08:32 <discord_afpy_> <chadys> On sera au stand "Libre-Entreprise" si tu veux faire un coucou !
08:46 <asyd> matin
08:46 <debnet> Les diagonales c'est toujours relou.
09:02 <debnet> Ah putain la partie 2 qui casse mon algo.
09:02 <debnet> Classique.
09:05 <asyd> on dirait que c'est fait exprès :)
09:22 <discord_afpy_> <Andy K (boss dreamer ou pas)> Salut
10:03 <debnet> Ah je déteste quand mon code marche sur l'exemple mais pas sur l'input.
10:16 <entwanne> Sur 2023 je suis tombé sur pas mal de cas où le code d'exemple n'était pas assez exhaustif ouais, c'est embêtant
10:31 <debnet> Ah j'ai compris...
10:31 <debnet> Je me suis fait avoir par les -1 qui me retournent le dernier élément à la liste au lieu de me faire un IndexError. :D
10:32 <debnet> Voilà.
12:57 <alain_afpy> surveiller si fichier modifié par d'autres programmes - https://discuss.afpy.org/t/surveiller-si-fichier-modifie-par-dautres-programmes/2398
13:01 <discord_afpy_> <melcore> Oh j’ai vraiment pas utilisé la même méthode pour la partie 1 et 2. La partie 2 me paraît beaucoup plus simple
13:52 <discord_afpy_> <lythari59> nous on cherche dans un carré, debnet il cherche dans un tore 🧠
13:53 <debnet> luthari59 c'est exactement ça. Je me suis fait avoir par la puissance de Python. :P
13:53 <debnet> melcore La partie 2 est infiniment plus simple que la partie 1.
13:54 <debnet> Même si objectivement les deux parties ne sont pas difficiles.
15:13 <entwanne> Ça dépend de d'approche, dans la mienne la partie 1 était plus simple, je savais directement comment aborder le truc
15:13 <entwanne> pour la 2ème j'ai dû retravailler la façon dont je voulais découvrir les chaînes
15:31 <debnet> @entwanne Ma partie 1 est très "straight to the point", c'était simple mais """long""" à écrire.
15:31 <entwanne> je préfère l'inverse ^^
15:31 <debnet> Oui. :P
15:32 <debnet> Ma partie 2 c'est juste une vérification de diagonales quand tu trouves "A" lors de ton parcours.
15:32 <debnet> Donc on peut dire que c'est mécaniquement plus simple.
15:32 <entwanne> Complex is better than complicated!
15:32 <debnet> @entwanne Regarde mon code et dis moi si c'est compréhensible/simple à comprendre.
15:32 <debnet> J'essaye toujours d'être "explicite".
15:33 <entwanne> j'ai regardé et justement je trouve ça assez compliqué
15:34 <debnet> Qu'est ce que tu trouves compliqué ?
15:35 <entwanne> c'est dense en terme d'opérations, donc pour moi c'est difficile de dérouler l'avancement
15:37 <debnet> Ah tu trouves ? Pourtant ça ne fait qu'être très directif : on cherche le mot dans les lignes, puis dans les colonnes, puis dans toutes les diagonales, dans les deux sens à chaque fois.
15:37 <debnet> Ca manque peut être juste de commentaires après, vu que je ne prends pas le temps d'en faire pour l'AoC.
15:54 <discord_afpy_> <lythari59> je trouve ça compliqué aussi sur certains aspects.
15:54 <discord_afpy_> <lythari59> OK pour ligne et colonne d'utiliser `count()` mais après pour les diags tu recrées toutes les diags là où beaucoup cherchent autour des `word[0]` uniquement pour réduire.
15:54 <discord_afpy_> <lythari59> Sinon d'instinct je chercher `word` et `word[::-1]` plutôt que de chercher dans `line[::-1]`.
15:54 <discord_afpy_> <lythari59> Tu peux même pousser le vice à chercher `word[1:]` si tu pars à chaque fois du premier char de word.
15:54 <discord_afpy_> <lythari59> Enfin la méthode pour créer la diagonale fonctionne (on lit les chars et on les append dans les diagonales concernées) mais c'est quand même plus compréhensible de parcourir une grid en diagonale que de numéroter les diagonales et construire des list comme tu le fais 😅
15:58 <entwanne> Ah et zip(*grid[::-1]) ça demande quelques abstractions dans la tête aussi :D
15:58 <entwanne> d'ailleurs il est vraiment utile ce [::-1] vu que tu recherches ensuite dans les deux sens ?
15:59 <debnet> Pas impossible qu'il ne serve à rien.
15:59 <debnet> Ouais.
16:01 <debnet> lythari59 je comprends pas ton truc de word et word[::-1].
16:01 <debnet> Ou alors c'est que je suis fatigué.
16:03 <debnet> Oulà je viens de regarder vos solutions respectives, et à la première lecture c'est difficile à lire. xD
16:03 <debnet> Ca me fait dire que c'est vraiment une question de sensibilité.
16:03 <discord_afpy_> <lythari59> tu cherches dans line et line[::-1] le word.
16:03 <discord_afpy_> <lythari59> j'aurais chercher word et word[::-1] dans line.
16:03 <discord_afpy_> <lythari59>
16:03 <discord_afpy_> <lythari59> si je le faisais à la main je lirais une ligne pour chercher XMAS ou SAMX plutôt que de lire la ligne à l'endroit et à l'envers.
16:03 <discord_afpy_> <lythari59> (note que je lis à l'envers facilement)
16:04 <discord_afpy_> <lythari59> <entwanne> Ah et zip(*grid[::-1]) ça demande quelques abstractions dans la tête aussi 😄
16:04 <discord_afpy_> <lythari59> +1
16:04 <debnet> lythari59 ah oui d'accord.
16:04 <debnet> Par contre je ne suis pas sûr que ça change grand chose.
16:04 <discord_afpy_> <lythari59> rien je pense mais tu inverses 4 char au lieu de x.
16:07 <debnet> C'est trop pratique ce zip mais je suis d'accord ah ah. :D
16:17 <debnet> C'est quand même beau l'AoC, y a tellement de moyens d'arriver au résultat.
16:17 <debnet> C'est intéressant de voir la démarche de chacun.
18:53 <discord_afpy_> <melcore> Pour la partie 1, je l’ai fait à coup de numpy perso
20:59 <debnet> melcore T'as transformé les lettres en chiffres pour ça ou numpy prend en charge les chaînes maintenant ?
21:31 <mdk> Je viens de push ma solution, fiou
21:32 <discord_afpy_> <melcore> debnet, j'ai pas souvenir que ça ne soit pas le cas mais du coup oui.
21:32 <discord_afpy_> <melcore> Mes solutions sont là https://git.afpy.org/Melcore/AOC24
21:32 <discord_afpy_> <melcore> Dommage que gitea n'ait pas un affichage pour le notebook jupyter
21:33 <debnet> Ah ah, encore une fois tout le monde a une solution différente.
21:35 <discord_afpy_> <melcore> T'es trop rapide debnet j'étais en train d'ajouter mon repo à ton message
21:35 <debnet> :D
21:35 <debnet> @mdk Ta solution est... originale. x)
21:35 <mdk> Meeerrrrciiiiiiii ♥
21:36 <mdk> j'aime écrire plus de donnée que d'instructions, là j'suis pile dedans 🙂
21:36 <debnet> Moi c'est l'inverse, je suis fidèle aux principes de Turing. :P
21:44 <discord_afpy_> <melcore> Je suis passé sur github pour l'affichage https://github.com/jeanlapostolle/AOC24