Chat:Fr/2022-01-25

From CG community
Revision as of 05:29, 26 January 2022 by Chat Log (talk | contribs) (Created page with "<img src=/a/74275522264754> BlaiseEbuth: Agrougrou tout l'monde ! Automaton2000 ! Le monstre du chat est là ! File:Default_avatar.png Automaton2000: sauf que c'est pas t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

BlaiseEbuth: Agrougrou tout l'monde ! Automaton2000 ! Le monstre du chat est là !

Default avatar.png Automaton2000: sauf que c'est pas très clair, j'avais improvisé à l'époque

Stilgart: Automaton2000: tu es en train de dire qu'en réalité tu es encore plus monstrueux ?

Default avatar.png Automaton2000: et c'est pas en python :p

Stilgart: :fearful:

Default avatar.png borios14: hola

Bon[]Crayon: salut

Bon[]Crayon: Automaton2000 slt

Default avatar.png Automaton2000: est-ce que ça veut dire que je suis nul ou j'ai des problèmes de perf

Bon[]Crayon: Automaton2000 tu es performant comme une tortue

Default avatar.png Automaton2000: je vois plein de truc à la con comme ça

DCVolo: Salut, il y a un raccourcis pour activer désactiver l'assistance (code) parce que l'encart qui se met à chaque fois sous le curseur ça commence sérieusement à me ... :')

DCVolo: ?

Bon[]Crayon: à gauche de la page il y un bouton paramètres

Bon[]Crayon: avec une option configuration de l'editeur

DCVolo: c'est " semanticHighlighting " ?

Bon[]Crayon: je ne sais pas

DCVolo: non ce n'est pas ça visiblement du coup je ne vois pas ce qui correspond

DCVolo: à moins qu'il faille que je recharge la page ?

DCVolo: nope

Default avatar.png Anschluss: bonjour à tous

Default avatar.png Anschluss: une petite question

Default avatar.png Anschluss: quelqu'un aurait une astuce pour remplacer un boucle while trop gloutonne?

DCVolo: c'est pas très précis comme énoncé mais essaye de partir du principe que tu dois aussi souvent que possible définir à l'avance le nombre de fois que tu vas cycler (donc autant que possible utiliser les boucles for)

Default avatar.png Anschluss: en fait je fais le puzzle mime type

Default avatar.png Anschluss: et je dois comparer l'extension du fichier avec celle de ma abse de données

Default avatar.png Anschluss: et je vois pas comment réduire le champ des possibles à l'avance

DCVolo: tu codes en quel langage ? je vais vérifier si je l'ai fait

Default avatar.png Anschluss: python

DCVolo: ça " In this puzzle, you have to split a string into separate parts, compare them, and recognize similar strings using a case-insensitive algorithm. " ?

DCVolo: mime type ?

Default avatar.png Anschluss: oui

Default avatar.png Anschluss: et je passe tout les test sans problèmes sauf le dernier avec 9999 fichiers

Bon[]Crayon: est-ce que tu enregistres tous les noms de fichiers à traiter dans un tableau ?

DCVolo: sans vraiment trop te donner la solution parce que l'exercice est super court, essaye de séparer tes opérations et de ne pas répéter plusieurs fois un même code ou même fonction

Default avatar.png Anschluss: oui je les enregistrait dans un tableau au début mais j'ai aussi essayer d'y traiter en direct maismême résultat

Default avatar.png Anschluss: je vais réfléchir à ça DCVolo merci

nicola: Tu utilises une liste ?

nicola: Essaie plutôt un ensemble.

Frankich: si tu TO sans stocker les valeurs c'est que ton algo est trop gourmant, que se soit avec un while ou non

nicola: Le test d’appartenance est significativement plus efficace avec un ensemble qu’avec une liste.

Default avatar.png Anschluss: je vais me renseigner sur les ensembles. Je connais leur signification en math mais pas en prog

nicola: En Python, c’est set() ou {1,3,"2"}.

nicola: Attention, tu ne peux pas y stocker des listes ou des ensembles, c’est la rançon du test d’appartenance optimisé.

Default avatar.png Anschluss: qu'est ce que tu veux dire?

nicola: Comme en maths, tu ne peux y stocker qu’un seul exemplaire de ce que tu places.

nicola: {[1,2],3} va foirer.

Default avatar.png Anschluss: ok

nicola: Pas {(1,2),3}.

nicola: Ni {"1 2",3}.

nicola: Tu ne peux y stocker que des types hashables.

Stilgart: mais qu'ils sont cons chez python

Default avatar.png Anschluss: ^^

nicola: Essaie hash([1,2]), il fa chouiner.

nicola: *va

**Stilgart vient de tester

Stilgart: et je vois pas le problème

Stilgart: c'est hashable une liste... je dis ça, je dis rien

nicola: Si tu veux stocker nawak dans un ensemble, utilise un frozenset.

nicola: >>> hash([1,12]) Traceback (most recent call last):

 File "<stdin>", line 1, in <module>

TypeError: unhashable type: 'list'

nicola: Pas en Python.

nicola: Si tu veux une liste hashable, utilise un tuple.

nicola: C’est pareil mais sans les méthodes pop, append et compagnie.

Stilgart: non, j'utilise haskell plutôt

Bon[]Crayon: sinon un dictionnaire

Stilgart: >>> { [1,2]:1 } Traceback (most recent call last):

 File "<stdin>", line 1, in <module>

TypeError: unhashable type: 'list'

nicola: Pour stocker des chaînes, autant utiliser un ensemble.

nicola: Oui, même peine même punition.

**Stilgart a eu peur que ça marche à un moment

nicola: {(1,2):1} passera.

Stilgart: ce qui pour le coup ne fait pas de sens

Stilgart: (mais bon, les tuples de pythons ne font pas de sens)

nicola: Tu peux toujours écraser le type list avec le tien, qui contiendra une méthode __hash__ et boum.

Stilgart: ouais enfin faut pas pousser

Stilgart: tous les autres langages, ils se content de coder les set/map via des avl et tu as juste besoin de = au lieu de hash

nicola: À mon avis, en interne, un ensemble est un dictionnaire trié par hash.

Stilgart: (ce qui n'empêche pas de fournir aussi une version qui utilise des hash, bien entendu)

Stilgart: nicola: oui, j'ose espérer qu'il y a une limite à la connerie humaine

nicola: Le problème d’une liste, c’est que son contenu peut changer.

Stilgart: bref, pour un langage qui se prétend friendly, ne pas pouvoir indexer par défaut avec des chaines/listes ça la fout mal

nicola: Donc si tu écris {[1,2],[3,4]}, rien ne t’empêche de changer un des deux.

nicola: Avec des chaînes, si tu peux.

Stilgart: rien ne t'empêche de faire une copie de ta clé aussi

Stilgart: (à ce stade de non perf, c'est négligeable)

nicola: Sauf que tu fais quoi si tu as {[1,2]:3,[1,2]:4} ?

Stilgart: accessoirement, avec un hash on s'en fiche que la liste change (maintenant que j'y pense)

Stilgart: vu que c'est la valeur à l'instant t que tu hashes

Stilgart: je garde 4

Bon[]Crayon: l'adresse de la liste ?

nicola: Pour ça, il faudrait la recalculer à chaque utilisation.

Stilgart: en supposant que le comportement du constructeur en cas de conflit est de garder le dernier

Stilgart: Bon[]Crayon: marche pas

Stilgart: [1,2] et [1,2] n'ont sans doute pas la même adresse

Stilgart: (surtout en mode interprété)

Stilgart: nicola: recalculer quoi ?

nicola: Le hash du contenu.

Stilgart: dans une table de hash, tu as un gros tableau des avec cases vide et des cases non vide

Stilgart: et pour jouer avec le tableau, évidemment que tu recalcules le hash

Stilgart: tu vas pas faire un accès à un case au pif ...

nicola: Rassure-toi, ça me gonfle moi aussi de ne pas pouvoir mettre ce que je veux dans un ensemble en Python.

Stilgart: j'ai jamais dit que calcul le hash d'une liste n'était pas coûteux, note

nicola: À mon avis, le hash n’est pas recalculé en Python.

nicola: Il est stocké.

Stilgart: urfh

Stilgart: tu parles d'un gain en temps qui explose ton accès accès mémoire donc tes défauts de cache

nicola: Sinon il faudrait recalculer le hash de tous les éléments quand tu testes une appartenance.

Stilgart: bah non

nicola: En Python, je pense que si.

Stilgart: tu calcules le hash de ce que tu cherches

Stilgart: tu vas voir la case, et

nicola: Mais bon, il faudrait regarder le code source de Pthon/

nicola: . :grin:

nicola: *Python

Stilgart: 1. tu as ta réponse si tu ignores les conflits

Stilgart: 2. tu fais un post-traitement pour gérer les conflits

Stilgart: (au hasard un avl, chose qui aurait du être faite en amont du coup...)

Stilgart: à noter que les 2 strats sont valides suivant le contexte

nicola: Dans une liste, en Python, le test d’appartenance est en O(n), dans un ensemble, il est en O(log(n)).

Stilgart: (faire une liste chaînée toute bête suffisant largement à gérer les conflits, en fait)

Stilgart: j'ose espérer qu'il est en O(1)

Stilgart: sinon ce sont des plouks

Stilgart: enfin, + coût d'un calcul de hash

nicola: Enfin, c’est ce que j’ai constaté en utilisant Python.

Stilgart: O(log(n)), tu l'as avec des AVL, qui encore une fois est le choix des autres langages et ne nécessite que un =

Stilgart: après, je veux bien acheter qu'avec un hash pourri, tu as masses conflit et donc ça dégénère en O(log(n))

Stilgart: mais c'est un soucis de hash dans ce cas

nicola: Tu peux stocker des trucs qui ont le même hash, mais de types différents.

**Stilgart n'a rien vu

nicola: Il me semble avoir testé.

Stilgart: reteste, parce que c'est monumentalement con comme choix :/

nicola: À mon avis, c’est une usine à gaz, derrière.

Stilgart: donc je veux pas y croire

Stilgart: sur ce, il va être temps d'extraire boulet et d'aller manger

nicola: http://chat.codingame.com/pastebin/e010fea4-1025-4c3d-8781-c5dd3860e8f3

nicola: La preuve.

Stilgart: (ho putain)

Stilgart: Automaton2000: à terre

Default avatar.png Automaton2000: j'ai vraiment un problème de timeout

Default avatar.png Anschluss: merci à tous en effet l'utilisation de l'ensemble m'a fait gagner un temps de fou

nicola: :thumbsup:

Stilgart: Automaton2000: à terre je te dis, l'univers va exploser

Default avatar.png Automaton2000: il me reste plus que les gens sont fous

Stilgart: exactement

Stilgart: Anschluss: cool

**dwarfie lance un CD de Benny B sur Automaton2000

Default avatar.png Automaton2000: quand tu fais une boucle sur les ships

nicola: Je préfère le Bonnet B au Bonnet M.

dwarfie: ca fait pourtant longtemps que Bonnet B. n'est plus ministre de l'interieur ...

dwarfie: :yum:

dwarfie: (tien , il l'a pas ete ... les grosses tetes auraientt menti ...)

Bon[]Crayon: Automaton2000 croque les chips

Default avatar.png Automaton2000: est ce que tu essaies de faire quoi ?

Bon[]Crayon: Automaton2000 de battre le boss or

Default avatar.png Automaton2000: genre je peux pas le savoir

Bon[]Crayon: Automaton2000 [hash(x) for x in {994727857,(1,2)}]

Default avatar.png Automaton2000: tu fais une ligne de code ?

Bon[]Crayon: Automaton2000 oui

Default avatar.png Automaton2000: et j'ai encore une question de motivation

philRG: Automaton2000 t'es bien le seul tiens

Default avatar.png Automaton2000: ah ouai j'ai eu ça aussi

philRG: Automaton2000 ben oui çà va, çà vient. A chaque jour suffit sa peine

Default avatar.png Automaton2000: bonjour j'ai un soucis avec le test en plus ça doit être pour ça que je reste dans le top ...

Alshock: J'avoue ne pas avoir compris le problème dans le fait que le set puisse stocker des éléments de même hash, ça me paraît assez logique qu'il y ait une gestion des conflits dans les sets

Default avatar.png sir_creator: wamadamedou

Stilgart: Alshock: relis ce que nicola a fait

Stilgart: et pour le béotien, son code revient à ajouter une chaussette dans un sac de billes

Default avatar.png YellowChameleon: bonjour

Default avatar.png YellowChameleon: y a t il une ame charitable pou m'eclairer

Default avatar.png YellowChameleon: j'essaye de créer un jeu multijoueur

DCVolo: :flashlight:

yoann9344: Salut ! Je sais pas si je peux t'aider je peux essayer ! :]

Default avatar.png YellowChameleon: mais je ne sais pas comment importer dans eclipse le skeleton de vréation qui est github

Default avatar.png YellowChameleon: https://github.com/CodinGame/game-skeleton

Default avatar.png YellowChameleon: *création

yoann9344: Je connais pas eclipse, désolé :/

Default avatar.png YellowChameleon: tu travaille sous quel ide toi d'habitude

Default avatar.png YellowChameleon: ?

yoann9344: nvim

Default avatar.png YellowChameleon: ok brèvement tu fais comment sous vim

yoann9344: Je clone le repo et j'ouvre vim ><"

Default avatar.png YellowChameleon: y a t il des options à cocher ?

Default avatar.png YellowChameleon: pendant le clonage je veux dire

yoann9344: Des submodules éventuellement : git clone --recurse-submodules ...

Default avatar.png YellowChameleon: ok bon je vais essayer

Default avatar.png YellowChameleon: merci

yoann9344: Mais l'idée c'est de configurer un lsp si le langage en a un puis tu utilise make pour du compiler ou tu interprètes

Default avatar.png YellowChameleon: je suis sous java

Default avatar.png YellowChameleon: donc interprèter

yoann9344: Euh, c'est compiler en bytecode puis interpreter par la machine vituelle java

yoann9344: javac plop.java java plop

Default avatar.png YellowChameleon: pas compris

Default avatar.png YellowChameleon: les deux dernières ligne

yoann9344: Je connais pas grand chose en java, mais je crois bien que java c'est du compilé en un bytecode universel qui permet la portabilité entre les plateforme

Default avatar.png YellowChameleon: oui ca je sais

Default avatar.png YellowChameleon: mais c'est le javac plop.java que je ne comprend pas

yoann9344: donc t'as deux commande à dérouler, enfin bon bref j'ai l'impression que l'on se perd ><"

Default avatar.png KenZzo: Le Javac compile les fichier .Java en .Class et Java execute les .Class

BlaiseEbuth: Et moi j'execute java.

BlaiseEbuth: :knife:

Slowkay: yo les geeks

Stilgart: YellowChameleon: la solution simple c'est sans doute de pas utiliser eclipse

Stilgart: je peux te trouver les commandes maven magiques si besoin

Stilgart: yoann9344: si seulement on pouvait faire sans maven sur ce coup là :joy:

Stilgart: $ mvn compile $ mvn test $ mvn exec:exec -Dexec.executable=java -Dexec.args='-cp %classpath:./target/test-classes -Dleague.level=X Main [<bot1> <bot2>]' sachant que le Main.java n'est pas toujours fourni mais je peux t'en donner un

yoann9344: J'ai déjà vu le nom passer, mais je connais pas. C'est un outil d'apache non ?

Stilgart: c'est make pour le java

Stilgart: (ha, mon todo précise que quand à la troisième fois on en a marre de cette commande de l'enfer, on peut remplir le pom.xml pour éviter 3/4 des arguments)

yoann9344: Ah ok, donc apache maven, c'est une version open source je suppose ?

Stilgart: vu que je le compile, je suppose que c'est open source

yoann9344: Ah ok y a d'autres concurrent gradle, ant, sûrement d'autres

Stilgart: oui et non

Stilgart: le SDK de CG, c'est du maven, donc il faut passer par mvn

Stilgart: (sauf si les autres outils ont de la compat, mais je ne miserais pas trop la dessus)

yoann9344: Ah c'est pas juste un compilateur ?! Ça apporte des bibliothèques !?

Stilgart: c'est make

Stilgart: le compilateur ça reste javac

Stilgart: et l'interpréteur c'est toujours java

Stilgart: mvn exec:exec -Dexec.executable= *** java ***

Stilgart: ;)

yoann9344: C'est bon tu m'as perdu ><" Vu de l'extérieur java ça m'a l'air bien tortueux ! ><" J'essaye rust en ce moment, cargo c'est plutôt magique en comparaison ^^ Mais bon c'est sûrement dû au fait que ce soit compilé en bytecode !

leojean890: pour java faut voir s'il utilise maven ou gradle ou autre (assez répandus)

leojean890: niveau IDE vaut mieux utiliser IntelliJ qu'Eclipse :p

yoann9344: En parlant d'ide, y a moyen de coder et de lancer son code en dehors de son navigateur ? Du genre via une api CG ?

Stilgart: cherche à CG Sync

Stilgart: leojean890: le SDK utilise maven (bis)

yoann9344: Thx je regarde ça

Stilgart: tiens, la doc du SDK sur tech.io a été bien étoffée depuis la dernière fois que j'y ai jeté un oeil

Zorg1: tu vois Stilgart tu ne fais pas assez de Java :p

Stilgart: je vais en faire bien assez comme ça ce semestre

Stilgart: (ouch, 26h :fearful: )

yoann9344: T'es enseignant ?

Stilgart: il paraît

yoann9344: J'ai regardé CG sync, j'ai pas trouvé les sources ! :/ Si non j'ai vu CG Local. En plus y a un plugin firefox !

yoann9344: Je m'en doutais mais histoire d'être sûr :D

yoann9344: Ah tiens t'es aussi essonnien ! ^^

Stilgart: c'est dispo sous forme de plugin pour firefox/chrome, non ?

Stilgart: (ou alors je confonds encore avec CG Local)

yoann9344: Yep c'est CG Local qui est pour les deux et qui plus est open source !

Stilgart: à part chadok.info, tous les outils de CG faits par la commu sont open-source

yoann9344: ah bah j'ai dû passer à côté du lien !

yoann9344: Et les chadoks pompèrent !

Stilgart: quoique... je crois pas qu'on ait accès aux codes de euler et Azkellas

Stilgart: (ni de royale en fait)

BlaiseEbuth: Comment es ta re

Zorg1: ma re est #1

Zorg1: Automaton2000 quoi de neuf ?

Default avatar.png Automaton2000: je comprends pas trop la tête

BlaiseEbuth: chéque ta discorde Zorg1, Stilgart aussi à l'occaz

Zorg1: bah c'est une boîte osseuse où généralement y a des trucs Automaton2000

Default avatar.png Automaton2000: je pense que ca vient de la

Zorg1: the Tullius Detritus touch

Zorg1: ah tu parlais pas de discorde dans le sens de zizanie :D

Stilgart: Automaton2000: et si tu cherchais une tortue ?

Default avatar.png Automaton2000: bon je vais me faire rouler dessus

**Stilgart fonce vers Automaton2000 avec un regard menaçant

Default avatar.png Automaton2000: c'est dommage qu'il y ait des gens qui ont fait le contest ? :)

Stilgart: clair, avec mon de gens sur l'escape de 2022, CG aurait peut-être revu sa politique :(

Hyrozen: J'ai une question sur le calcul du score de Counting TicTacToe : est-ce que l'on peuit compter plusieurs fois une même case ?

Stilgart: moins*

Hyrozen: En gros, si je met un 4ème au bout d'un série de 3, je gagne un point ou pas ?

Stilgart: (ce n'est pas exactement la même question)

BlaiseEbuth: Ca a le mérite d'en être une. C'est déjà ça ici...

Hyrozen: Est-ce que XXX_XXX => XXXXXXX me donne 1 point ?

Hyrozen: Je sais pas si c'est moi mais je trouve ça pas clair et impossible de ralentir la video

Hyrozen: ni mettre en pause

Hyrozen: SI j'ai bien compris, on parle de "most 3 in a row", donc une série de 5 donne 3 : (XXX)XX / X(XXX)X /XX(XXX)

Hyrozen: Et donc on dois recalculer tout le board à chaque coup joué (sans parler des optim qui ferai rien gagner), je veux dire que l'ont ne doit pas simplement regarder autour de la case jouée

Hyrozen: Pardon de parler solo

Zorg1: tkt on a des spécialistes de ça

BlaiseEbuth: philRG, évangéliste monologue

darkhorse64: XXX_XXX => XXXXXXX te donne 3 points. Pour le calcul du score, il y a des techniques (bitboarding) pour faire ça très vite

Hyrozen: Pourquoi XXX_XXX => XXXXXXX ne m'en donne pas 5 ? Je peux faire 5 groupes de 3

Hyrozen: Je vais regarder le bitboarding

VilBoub: Hyrozen : Pour bien comprendre le score, lance une partie avec des coups valides au hasard et regarde comment est évalué le score dans le jeu !

philRG: BlaiseEbuth Je te salue pauvre pêcheur

philRG: un ch'tit coup de silver à PCR, çà remonterait mon moral tiens

darkhorse64: XXX_XXX => XXXXXXX te donne 3 points de plus soit 5 au total

darkhorse64: tu peux regarder les sources du jeu pour le calcul du score

philRG: bon ma chtite modif (retour aux bonnes vieilles heuristiques) latte bien le bot de leojean

philRG: bon un petit submit pour confirmer que ma modif c de la merde

philRG: go

TKirishima: Il y a un shorcut au clavier pour faire "TOUS LES TESTS" ?

TKirishima: D'ailleurs je suis premier dans une ligue de Bot, qq sait quand est ce qu'on passe à la ligue suivante ?

BlaiseEbuth: ctrl+enter il me semble

philRG: bon çà bouffe bien les chips à proximité au tour suivant, mais éviter les jetons qui n'accélèrent pas, pas au point

philRG: y a un bug çà c sûr

TKirishima: Merci Blaise!

BlaiseEbuth: TKirishima pour le passage de ligue ça dépend de la ligue, et de si tu es vraiment premier. ^^

leojean890: Stilgart ah d'accord :) ça peut se déduire si on voit des fichiers pom.xml dans les projets cg

leojean890: philRG tu me tues sur pcr ? pas dur, vu mon bot pourri xD

leojean890: essaye sur OOC pour voir :P

philRG: oui çà m'étonnait un peu vu le niveau du mien ;-)

philRG: sur ooc j'ai bien impl le tracker comme tu m'avais rappelé que ça comptait, çà m'a fait du bien car c'était mon 1er contest (et aussi multi), j'ai sué des flaques

philRG: par contre je l'ai laissé en route mon ooc (top bronze) faut que je le fasse évoluer

philRG: pour monter silver faut en faire un peu plus que des strats basiques

Zorg1: il s'est pas fait pousser en silver depuis ?

leojean890: le mien est nul aussi, je gère quasiment rien xD juste quelques heuristiques très simples:)

leojean890: OOC j'ai trop buché dessus pdt le contest, et ouais le tracker set très important et dur à perfectionner au max

Zorg1: essayé de le perfectionner me suis pris un peu trop tard ^^

Zorg1: mais OoC c'était sympa je trouve ^^

leojean890: ouais un ois sympathique^^

leojean890: mois

Zorg1: pour une fois que le FoW était totalement justifié et faisait partie du jeu

leojean890: ouais^^

leojean890: mais bon je suis resté sur du depth 1 sur ooc donc ça avait ses limites (sauf la gestion des déplacements)

philRG: un gars qui débute un multi à sec comme j'avais fait, c chaud. J'étais un peu fébrile en python aussi

Zorg1: OoC pour débuter y a plus facile ^^

Zorg1: ça visait quand même un certain public

Zorg1: le challenge qui suivait (pacman je crois) était plus "tout plublic"

leojean890: ooc fallait vraiment bcp réfléchir pour le tracker

leojean890: sinon pas de grosse complexité, quelques bfs

Zorg1: c'était le gros morceau

leojean890: et bien sûr réfléchir à la strat

leojean890: l'éval

philRG: sur pacman, j'étais mieux (toujours noob bien sûr)

philRG: suis monté mid-bronze alors qu'ooc pas décollé de wood 2

Zorg1: j'avais bien aimé les sorcières ^^

philRG: celui-là j'ai merdé par contre, jamais codé de bfs proprement avant

philRG: que des timeout

Default avatar.png JBM: wazza

Default avatar.png JBM: ça boume, les good old boys qui découragent les n00bz?

leojean890: comment es ton cover de jazz jbm ;P

Default avatar.png JBM: à la bourre, leojean890, à la bourre

Default avatar.png JBM: je perds rien

Default avatar.png JBM: mais je suis entre 2 jobs

Zorg1: ouaip on pourri le taux de rétention médian sur feedback négatif

Zorg1: tibo nous déteste

Default avatar.png JBM: il faut que je transfère les assets d'un laptop actuel à un futur que j'ai pas encore

leojean890: ah oui les sorcières c du bfs / beam search à optim^^

Default avatar.png JBM: c'est tendu

Default avatar.png JBM: on m'y reprendra à faire ma musique sur le laptop du boulot

leojean890: 2 jobs de musique ou de dev ?^^

Default avatar.png JBM: de dev lol

leojean890: ah compris

Default avatar.png JBM: la musique c'est trop sélectif

leojean890: la musique c chaud d'en vivre indeed xD

leojean890: faut une bonne vibe commerciale

leojean890: quand j'ai des dates à > 100 euros par musicien c'est quand je joue avec qqn qui la trouve (cad pas moi^^)

Default avatar.png JBM: rappelle-moi juste ta sélection de ce que tu considères comme «à garder»

leojean890: faut être "dans le milieu"^^

leojean890: dans les solos ?

Default avatar.png JBM: yup

leojean890: je savais pas combien de mesures tu voulais en fait^^

leojean890: juste tu peux jeter le fichier le plus court

leojean890: en durée

leojean890: et j'aurais dû te faire le solo sur une grille perso^^

Default avatar.png JBM: ben autant qu'il y avait dans la partoche

Default avatar.png JBM: c'est possible aussi, mais c'est plus cher

leojean890: une grille de la partoche en gros ?

Default avatar.png JBM: atta je sais même plus c'était quoi

Default avatar.png JBM: sugar non?

Default avatar.png JBM: donc 32 mesures a priori non?

Default avatar.png JBM: plus ou moins 2×16 pour ce qui est de la grille

leojean890: ouais^^

leojean890: je t'avais fait une version avec accords et une sans accords

leojean890: quoi qu'il en soit c'est le fichier long que je préfère

leojean890: le court, bof

Zorg1: Automaton2000 c'est bon ils ont finis de causer zique ?

Default avatar.png Automaton2000: et si on fait un peu de random

Zorg1: Au je dis 7 Automaton2000 c'est mon meilleur random

Default avatar.png Automaton2000: pourquoi j'ai pas pensé à faire un peu de challenge

Bon[]Crayon: Automaton2000 5

Default avatar.png Automaton2000: nan mais c'est une blague ?

Bon[]Crayon: :joy:

dwarfie: Automaton2000 : s'toi la blague ...

Default avatar.png Automaton2000: une histoire de géométrie non euclidienne aussi

leojean890: et de musique atonale aussi

Zorg1: houla

Bon[]Crayon: lalala Automaton2000 une tortue

Default avatar.png Automaton2000: dwarfie: tu as fait un ag

Zorg1: pas con Automaton2000 je vais faire une assemblée générale pour PCR

Default avatar.png Automaton2000: pour forcer les gens à faire des tests unitaires

Bon[]Crayon: Automaton2000 y'en a y forcent les gens à faire des tests naso-pharyngés

Default avatar.png Automaton2000: les gens sont de plus en plus de monde

leojean890: musique atonale c'est spécial, tape sur youtube si t'es curieux hehe

Bon[]Crayon: bin bam boum spouich

Remi.: Bonsoir la communauté ! Automaton2000 est-ce que tout le monde est gentil avec toi ?

Default avatar.png Automaton2000: peut-etre parce que ton code marche pas

Bon[]Crayon: o/

Remi.: C'est gentil ça, d'entrée de jeu ^^ merci Automaton2000

Default avatar.png Automaton2000: le truc c'est que je lui ai dit

philRG: Automaton2000: ah oui les tests unitaires j'en fais jamais 😂

Default avatar.png Automaton2000: si j'ai bien compris le concept

philRG: Farpaitement Automaton2000

Default avatar.png Automaton2000: ca fait moins de 100 lignes de code java

Default avatar.png SAlundra: PhilRG, pourquoi pas de unit test :o

philRG: Je crois que j'y pense pas

Default avatar.png SAlundra: La methode est de faire le test avant le code fonctionnel

Default avatar.png SAlundra: unit test puis la class/fonction

philRG: Étonnamment j'en fais quasiment jamais

philRG: Je teste parfois le résultat d'un bout de code python ou syntaxe, rarement d'une fonction écrite par moi

philRG: Je vois tout de suite en analysant les replays si ma fonction a le comportement voulu

philRG: J'analyse aussi le contenu de mes variables de jeu à l'instant/tour T

Zorg1: tester c'est douter

philRG: Oui voilà je teste une stratégie rarement une implémentation

philRG: Si je commence à tester une implémentation c mauvais signe

Remi.: Sur CG, les tests c'est quand on soumet le code. Les TU ça n'existe pas ^^

philRG: pkoa écrire une fonction de TU, alors que j'ai déjà tout factorisé précédemment. Je teste ma nouvelle fonction en regardant les replays

philRG: le code testé/factorisé part dans une boîte et j'y touche plus

leojean890: tiens Zorg1 je viens de tomber sur https://www.codingame.com/ide/puzzle/binary-sequence ça me fait penser à un truc qu'on a fait y'a genre 3 mois ;)

Zorg1: ah oui ça me rappelle vaguement un truc

Zorg1: évidemment il a codé 4 tests, plus ça explose

leojean890: ouais on avait fait un truc où il faut compter le nombre de 1^^

Zorg1: oui

leojean890: https://www.codingame.com/ide/puzzle/bit-count-to-limit

leojean890: et là ça va être un peu le même principe^^

leojean890: 75% en bruteforce lool

Zorg1: ah oui 2 nombres à 1 digits, 2 à 2, 4 à 3, 8 à 4, ...

leojean890: (ind*2**(ind-1))

leojean890: ouais^^

pardouin: j'ai 9 lignes :D

leojean890: hehe comme d'hab^^

pardouin: 6 lignes mais c'est moins lisible XD

Zorg1: cette frime

pardouin: ahahah je viens de faire un gros troll dans ma solution

pardouin: leo c'est pour toi <3

leojean890: dans lequel ?:P

leojean890: https://www.codingame.com/ide/puzzle/binary-sequence

leojean890: https://www.codingame.com/ide/puzzle/bit-count-to-limit

pardouin: premier

leojean890: j'ai déjà fait le 2nd, je suis entrain de faire binary sequence

pardouin: tu auras la surprise :)

leojean890: j'ai galéré à le faire, l'autre

leojean890: genre 2-3h dessus xD

leojean890: jgalère un peu sur ces sujets

leojean890: j'crois que je peux finir lui avec la même logique que l'autre

leojean890: naviguer du 1 le plus haut au plus bas

pardouin: oui ça ressemble beaucoup

leojean890: jvais essayer de mettre moins de temps cette fois que pour l'autre du coup xD

Zorg1: hop fait :p

leojean890: gg, pas encore moi mdrr

leojean890: alors tu le trouves plus simple ou dur que l'autre :p

Zorg1: bah plus simple j'ai pas la fonction récursive ^^

leojean890: I see^^

Zorg1: ofc je suis la seule contribution lua :(

leojean890: snif tu peux même pas comparer^^

leojean890: si le code est court tu convert

Remi.: Ou le seul à l'avoir publié

leojean890: ou tu fais en go allez hehe

leojean890: Remi. en c++ toi non ?:P

Remi.: Faut que je vérifie si je l'ai fait. Mais oui je fais tout en C++

Remi.: (ou du moins, quand je fais dans d'autres langages, je l'ai d'abord fait en C++)

leojean890: ah oui c ptet le seul à avoir publi mais d'autres auraient fait qd même en lua^^

leojean890: pareil moi avec s/cpp/python mdr

Remi.: Je n'ai fait ni l'un ni l'autre.

Remi.: En ce moment je suis sur ML3 ^^

Remi.: (entre 2 golf)

leojean890: ml3 j'avoue j'ai pas réussi mdr

leojean890: j'ai pas vraiment essayé j'ai tjr eu la flemme

leojean890: t'as pas fait les puzzles avec les bits ?

leojean890: j'avoue en tt cas je mets du tps

Remi.: Pareil pensant qu'il fallait une IA digne d'un bot legend (à cause des tags Algo G), mais j'ai appris il y a peu que c'est faisable en heuristique. Du coup je m'y mets.

Remi.: J'ai fait des puzzles avec des bits, mais pas ceux là.

leojean890: ouais c faisable mais chaud

leojean890: je vois

leojean890: avec des bits y'en a d'autres de galères parfois

leojean890: les trucs d'arithmétique

Remi.: Faudra que je les fasse, mais pas ce soir, dodo. Bonne nuit ^^

leojean890: ouais pas d'urgence xD

leojean890: good night !

leojean890: ah réussi aussi Zorg1 en effet y'avait pas à faire la récurrence, je somme jusqu'à la puissance de 2 demandée pour avoir une somme juste inférieure au nombre total d'itérations et ensuite je divise ce qui reste par le nb de bits des nombres suivants et le reste est l'indice du bit qu'on cherche dans le dernier nb entier

pardouin: mate ma soluce :D

pardouin: et gg !

leojean890: ah oui je vois la tienne, c plus concis, j'ai du mal à comprendre^^

leojean890: si tu lis la mienne tu comprends direct ?:P

pardouin: t'as pas vu l'easter egg ^^

leojean890: dans ta soluce ?

leojean890: (d := c * k

leojean890: l'opérateur tout nouveau ?

pardouin: le nom des variables XD

leojean890: ah oui mdr

leojean890: f u c k

leojean890: lol

pardouin: en fait par hasard j'avais presque ça

leojean890: j'me demande comment tu arrives si facilement à golfer :p

pardouin: du coup ça m'a fait marrer et j'ai changé j'avais puck je crois

leojean890: moi je fais trop complexe je crois

leojean890: par rapport à ce qui est piossible

leojean890: possible

pardouin: déjà divmod ça aide bien

pardouin: quand tu veux récupérer q et r

pardouin: tu fais q, r = divmod(a, b)

leojean890: ah ouais pas mal

pardouin: bon allez go dodo

pardouin: bn o/

leojean890: bn^^