Chat:Fr/2020-05-26
dbdr: JBM: c'est joli. mais c'est juste gitweb ou c'est clonable aussi?
dbdr: sinon, super les messages. du coup, "banning account" c'est OOC par rapport
dbdr: "tried to use black magic and was locked in the darkest cell of the dungeon. They key was thrown away." par exemple?
Neumann: Tu fais chier reCurse
dbdr: moi? :D
Neumann: Tu fais chier, reCurse
dbdr: :+1:
dbdr: "On bute Karadoc"
dbdr: Kaamelott c'est comme xkcd
Neumann: :D
Neumann: Je vais devoir passer en recherche offline avec ses enfantillages
dbdr: il est passé à 2 coeurs pendant 10 minutes?
Neumann: Monsieur aurait soi-disant "fix un bug"
dbdr: lol
Neumann: Entrainer un NN on peut presque considérer que c'est de la recherche offline
dbdr: oops, je faisais une random search en fait. fixed it
dbdr: partiellement, oui
dbdr: tu sais s'il l'entraine sur les validateurs?
dbdr: ou sur des maps aléatoires
Neumann: Je pense qu'il l'entraine sur des maps qu'il génère lui-même
Neumann: Enfin j'en sais rien en fait
Neumann: Il est capable de tout le bougre
dbdr: oops, j'ai peut-etre trop parlé :D
Neumann: C'est pas un secret :P
Stanworld: Bonjour, est ce que dans un forum ou quelque part, il existe une documentation sur comment développer en local un bot pour un challenge codingame ?
Stanworld: en fait, je souffre parfois de 'timeout" ou de log incomplet, je me disais que si je développe mon bot localement j'aurais plus la main sur les IO pour testé
dbdr: Stanworld: je suis pas sur qu'il y ait de la doc en particulier
dbdr: en gros, tu peux copier ton code vers un IDE local
dbdr: apres pour tester il faudra que tu aies l'input
dbdr: une façon de faire c'est d'ajouter dans ton bot une ligne qui recopie l'input vers stderr
Stanworld: oui, je ne suis pas totalement a l'aise avec la manipulation des Inputs... je vais regarder plus en profondeur.
dbdr: quel langage?
Stanworld: kotlin
dbdr: en gros, tu rajoutes des System.err.println() pour reproduire ce que tu viens de lire
dbdr: du coup ça apparait dans la console sur codingame
dbdr: tu peux le copier coller
dbdr: le sauver dans un fichier
dbdr: et apres tu démarres ton bot avec ce fichier comme entrée standard
Stanworld: c'est ce dernier point qui m'embete : tu démarres ton bot avec ce fichier comme entrée standard
Stanworld: en gros j'utilise Scanner(System.in) et des nextInt / Nextline pour lire les inputs... maintenant , je ne sais pas bien comment créer un input qui fourni la même chosE...
dbdr: dans un IDE, il doit y avoir une option pour selectionner un fichier comme input
dbdr: par ex dans eclipse tu as Run Configurations / Common options / Standard Input and Output
dbdr: sinon sur ligne de commande c'est simplement: java MyClass <input.txt
dbdr: si tu fais ça, pas besoin de modifier ton bot, il peut utiliser System.in et les données viendront du fichie
Stanworld: ha cool , j avais pas imaginer que l'ide proposer cela; je vais regarder
Stanworld: j'utilise IntelliJ IDEA community 2020
Stanworld: je vais regarder cela
Stanworld: merci
JBM: dbdr: ah merde je pensais que c'etait clonable. bon, je vais revoir
dbdr: clonable c'est pas critique, t'emmerdes pas si c'est compliqué
dbdr: out of character
Alshock: Ah putain je croyais vraiment que tu nous avais lâché un 3ocean of Code" genre "TORPEDO 1"
JBM: moi j'aime bien mon banning account
Magus: banning account ?
Alshock: Un Magus sauvage apparaît, Carapuce, à toi de jouer !
dbdr: oui, le banning est marrant aussi, si le OOC te dérange pas.
dbdr: rand() % 2 ?
leojean890: hmm sur A*craft j'ai fait tourner mon AG pendant 10 min en local sur chaque valideur pour hardcoder mes solutions trouvées en 10 min et je suis seulement passé de 3600 (2 sec de recherche) à 6300 ;p alors que dbdr a 11902
dbdr: bah alors, je croyais que hardcoder c'était trop facile? ;)
leojean890: donc y'a probablement qqc de pas optimal dans l'evol de mon AG xD
leojean890: moi j'aurais dit ça ?? mais non :P
dbdr: attention, j'ai les logs
pb4: Yop
Neumann: Ah bah, je croyais que "HaRdCoDeR C'eTaiT FaCiLe eT De La TRiChE"
pb4: JBM, M. CppReference, tu es là ? :)
leojean890: hardcoder ça aide mais ça permet pas de passer #1 :P
pb4: ah, cool :)
leojean890: pas facilement:P
dbdr: voila
Alshock: c'est un peu le gros problème que j'ai avec les optis, autant c'est loin de mon niveau donc ça me gêne pas personnellement, autant le fait que le haut du panier se joue aux validateurs c'est pas très attrayant
pb4: a = 0;
pb4: array[a++] = a;
pb4: C'est defined on undefined ?
Alshock: Notez que ça rend pas la chose facile, juste moins intéressante
pb4: Je sais que l'ordre d'exécution des paramètres quand on appelle une fonction c'est UB
JBM: j'aurais dit un mais ca a evolue recemment
leojean890: faut que jtrouve comment faire evoluer mon AG pour éviter ces max locaux ;)
Alshock: euh en quoi ? En C je crois que c'est UB
pb4: Mais là, d'un côté à l'autre du signe =, je ne sais pas
leojean890: pourtant je fais bien des mutations, des insertions..;P
pb4: C++
leojean890: des crossover
dbdr: pb4: solution simple, évite, et fais clairement celui que tu veux, non?
dbdr: quel interet?
Neumann: Apprendre
pb4: dbdr : c'est prévu de faire le truc sans ambiguité :)
pb4: Mais oui, sinon l'intérêt c'est d'apprendre
dbdr: aprrendre un truc à éviter de toutes façons, ça sert à rien
dbdr: sauf pour le fun, là OK
pb4: Je pourrais tester, mais le test ne me dira pas si c'est defined ou pas. Au mieux il me dira comment ma machine se comporte
Neumann: Yet on fait tous du golfing sur CG
leojean890: jpense que je devrais ajouter + de random dans mon AG vu que je peux le laisser tourner ad vitam en local
dbdr: OK, pour le golf ça devient utile du coup
leojean890: au moins pas de max locaux..
pb4: ah bah tiens en fait
Neumann: Utile ?
pb4: J'aurais du tester :)
dbdr: potentiellement
pb4: Mon linter me dit que c'est undefined :)
Alshock: tester c'est douter
pb4: "unsequenced modification and access to f"
leojean890: ou juste hardcoder mes propres solutions ;p
leojean890: ce qui demande d'y réfléchir pdt lgtps
dbdr: comme disait mon prof, le comportement dépend de s'il y a du vent, si le chien qui passe à coté a les poils longs ou courts, etc etc
Alshock: ça c'est le comportement UB des couilles qui grattent, je reconnais
JBM: je dirais que ce cas-la est defined
dbdr: meme si c'est vrai ça va dépendre de quel standard ton compilo implémente, non?
JBM: post-inc value < post-inc effect et assign lval < assign rval
JBM: (quand ils ont tout respecifie)
pb4: Je lis beaucoup de "until C++11 et until C++17" dans la doc
pb4: Tu es sur quelle page ?
JBM: https://en.cppreference.com/w/cpp/language/eval_order
pb4: J'ai celle là :https://en.cppreference.com/w/cpp/language/eval_order
Alshock: xD
Alshock: c'était si bô
dbdr: les compilos ils font quelle version par défaut de nos jours?
pb4: Vive le lag...
JBM: mmm non je redoute en fait
dbdr: c'est beau
dbdr: wow: si je fais chmod o-w <TAB> il me propose que les fichiers qui ont write pour others, et les repertoires :O
dbdr: yen a qui se sont amusés là...
ReborN: On est d'accord que dans Tron notre pos initiale est + que discriminante ?
ReborN: Quand tu commences en (0,0) avec un mec un (0,5) et un autre en (5,0) t'es heureux
dbdr: ya des matchs mirroirs non?
ReborN: Effectivement y'a les matchs miroirs, autant pour moi !
dbdr: apres le risque des mirroirs c'est bcp de nuls
dbdr: agade avait fait une propal pour des positions a peu près équitables, à base de voronoi
ReborN: Ça reste compliqué de savoir si tu te rank mal car t'es pas assez sécurisé en position favorable ou pas assez clutch en position défavorable
dbdr: oui, mais du coup c'est à toi de l'analyser
dbdr: c'est pas une faille dud système
ReborN: Yes j'imagine bien ! C'est juste particulier :)
Magus: Agade avait surtout fait une proposition pour obliger les départs symétriques en 1v1. Pour les autres c'est moins grave vu que ça va beaucoup dépendre de où vont aller les adversaires.
Magus: mais CG n'a pas donné suite
ReborN: C'est vrai qu'en 1v1 ça doit être rare de ne pas faire égalité dans les match des hautes ligues
dbdr: ça dépend, mais t'as qd meme un avantage/désavantage statistique
dbdr: mais avec les mirroirs c'est pas un gros pb je pense, si il n'y pas >50% de nuls
ReborN: Sinon les historiens vous avez une explication au fait que CSB ait une participation aussi énorme par rapport aux autres challenge ? :)
dbdr: c'est le tuto
ReborN: Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah
ReborN: C'est vrai
Neumann: C'est aussi le meilleur jeu
dbdr: :D
Alshock: clairement
Alshock: mais bon conceptuellement j'aime beaucoup PR aussi
Zanbez: Pour un tour de jeu, on a 50ms mais à partir de quand ? De la fin de la lecture de nos lignes d'input ? Depuis notre dernière sortie de jeu ?
Zanbez: Entre 2 sorties ?
Magus: tu commences ton timer juste après avoir lu le premier input
Zanbez: Et si je fais des calculs après ma sortie ?
Zanbez: Ils seront comptabilisés dans les 50ms ?
Magus: oui
Zanbez: Merci
arazor: Pas tant que ça je pense :)
arazor: (la position de départ n'est pas si discriminante que ça, pour celui qui posait la question)
ReborN: @Moi :)
ReborN: Après le probleme c'est aussi que je suis pas bon
ReborN: Pas de doute la dessus
arazor: C'est surtout que pour arriver à des algos qui prennent ça en compte, y'a du temps à y passer ^^
Neumann: C'est ULTRA discriminant au contraire
Neumann: Y'a des games impossible à gagner en fonction de ça
Neumann: Ou impossible à perdre
ReborN: Impossible à perdre j'y arrive toujours moi pourtant :smile:
Alshock: impossibles à perdre? Hold my beer
ReborN: Mais d'un point de vue théorique j'imagine oui
arazor: A quel moment se font les montées de ligue?
ReborN: Quand tu restes devant le boss pendant un petit peu de temps
ReborN: Ensuite t'as un timer avant de monter sur les anciens challenge
Zorg1: en fait quand ton submit/push est terminé et que tu finis devant le boss.
arazor: ok. ça fait un moment que je suis premier de ma ligne, donc j'imagine que ça doit se faire toutes les X minutes :)
Zorg1: (ça peut aussi jouer quand qqn fait baisser le boss et pas ton bot et que ton bot est devant le boss, on appelle ça "être poussé")
arazor: ok. ça fait un moment que je suis premier de ma ligne, donc j'imagine que ça doit se faire toutes les X minutes :)
Alshock: ça se fait tous les X temps c'est précisé en haut du leaderboard
Alshock: parfois c'est qu'une fois par jour
Alshock: enfin la prochaine date de montée est précisée
Zorg1: oui t'as l'heure de ton passage dans la ligue supérieure
Alshock: Par exemple Gold CSB : Those better than the Boss will be promoted to Legend League at 02 H 09
Alshock: (oui j'ai toujours pas fini l'IA qui doit détrôner mon -3vel)
arazor: ok. je ne vois pas où c'est sur le tron en fr, mais ça marche :)
Zorg1: en haut du leaderboard de l'IDE
Alshock: oui c'est pas dans la page leaderboard mais dans l'onglet leaderboard dans l'IDE. J'aurais dû dire ça plus expiicitement
Bob: pika
Bob: o/
Thyl: Salut tout le monde !
Thyl: Je voudrais me mettre au Java, est-ce que vous connaisez un endroit, une formation, ou encoredes video sur le sujet ?:grinning:
Bob: google java tutoriel, peut-être
Bob: ne connaissant pas grand-chose à Java, je commencerais sans doute par là
Bob: (bon je dis ça mais ça m'a pas empêché de coder un multi sans rien connaître des spécificités du langage :D)
Thyl: Je viens de trouver une plateforme
Thyl: Codegym
dbdr: trop fort, ce Bob ;)
Bob: j'ai failli répondre lmgtfy et puis j'ai choisi la gentillesse :)
Bob: si c'est pour le multi, faire tourner le framework CG est pas super sorcier, les instructions sont assez claires
Bob: si tu connais le C++, c'est pas super compliqué de faire du Java par mimétisme
Bob: au moins pour le minimum vital nécessaire pour claquer un referee et un viewer
Zorg1: les tutos pour Java, Python, ... ça doit pas manquer sur le web
Zorg1: après savoir ce qui vaut le coup et ce qui n'est qu'un mauvais copier/coller d'un autre truc ...
Bob: j'ai toujours pas compris pourquoi j'ai pas réussi à attaquer l'instance du viewer directement depuis ma classe plutôt que de la passer depuis la classe principale mais bon
Alshock: le fameux "plus ça abonde plus c'est dur d'en trouver des biens"
Bob: ah ben ça
Zorg1: Alshock : c'est faux ?
Bob: et encore python java on est sur des trucs qui ne bougent pas trop vite
Bob: va trouver un tuto sur React qui soit parfaitement à jour
Alshock: @Zorg1 toute phrase simple est fausse
Zorg1: ah oui vu comme ça, après dans les ressources tuto sur le web
Zorg1: après moi j'aime pas du tout les tutos vidéo, je préfère un truc à lire et à maniper
Alshock: Je me sens un peu sale, je viens de finir ML3 alors que mon GA est toujours au moins partiellement bugué
Alshock: ça laisse un goût amer dans la bouche
Zorg1: bah l'essentiel c'est que ça passe
Bob: dis toi que t'as fait ML3 avec un GA
Zorg1: après que la mob pétarade dans tous les sens et que le moteur va sans doute explosé ...
Bob: moi c'est limite hardcodé tellement c'est dégueu
Zorg1: moi j'ai même pas fait ML2 alors bon :p
Bob: rho le n00b
Zorg1: la flemme
Alshock: Bah tu veux savoir à quel ponit c'est crade ? J'ai bidouillé ma fonction de distance pour prendre la distance au sol au lieu de la distance à vol d'oiseau... sauf que c'est bugué du coup Initial speed, wrong side de ML2 ne passe plus par exemple
Bob: ah je préfère
Alshock: Bah j'avais pas fait ML2 jusqu'à hier :P
Zorg1: après CSB, j'ai eu une indigestion de tous les trucs à base de physique ^^
Bob: Alshock ah mais moi je suis sûr que mon code de ML3 ne passe que les 2 tests et les 2 validateurs de ML3
Alshock: @Bob Ouais envoie moi le replay du crash sur ML1 alors ? :P
Bob: je ne sais pas si tu as vu Armageddon ?
Bob: il y a une scène dedans avec un astronaute russe qui "répare" son matos à coups de marteau
Bob: c'est exactement comme ça que j'ai "réussi" ML3
Alshock: xD
Alshock: la fameuse méthode russe
Zorg1: oui c'est une variante du coup de poing réparateur
Bob: j'ai rajouté un bloc de code goret pour passer au-dessus de la grotte et après j'ai tapé sur les magic numbers jusqu'à ce que ça passe
ReborN: Tout ça me fait penser à mes 700 lignes de python sur le pacman pour finir en mi gold.....
Bob: dans le genre coup de poing réparateur, un sys m'avait raconté des trucs horribles il y a 20 ans
reCurse: Si tu avais fait ça de manière automatisée ça serait du machine learning et tu passerais pour un pro
Zorg1: et t'écrirais un bouquin là dessus ?
Alshock: mais c'est ça la nuance entre un mec comme toi et un mec comme moi Bob, toi tu fais crade parce que tu gères ton temps et t'as la flemme, moi je fais crade parce que je veux bien faire, j'y passe beaucoup de temps et je me rate avec un tel brio que je pourrais aller aux JO
Zorg1: ou un tuto youtube plutôt
Bob: genre la machine dont le disque dur se mettait en carafe
Bob: coup de fil chez HP
Bob: "est-ce que vous avez tel et tel symptômes ?"
Alshock: ah non, pas le café ! les histoires d'horreur sur les enfants ça va, sur le café c'est trop !
Zorg1: oui enfin le bidouillage de magic number c'est assez chronophage
Alshock: ah c'est pas une carafe de café ? :P
Bob: "alors voilà ce que vous faites : vous démontez le disque, vous le posez à plat sur la table, vous lui faites faire un quart de tour dans le sens anti-horaire, vous le remontez et vous démarrez la machine"
Bob: "oui ça marche et non, nous non plus on ne sait pas vous dire pourquoi"
Bob: #vaudou
Alshock: xD aujourd'hui on dirait un "la solution a été trouvé par une IA, les résultats sont fiables mais incompréhensibles"... Bah comme avant en fait quoi
reCurse: Y'a sûrement une raison qui n'est pas à la hauteur des attentes
Bob: 42
Bob: because
Alshock: 6 * 9
Alshock: ou 6 * 8 je sais plus
Bob: 9
Zorg1: 54
Alshock: j'étais en train de me dire que j'avais la flemme de faire le calcul en base 13
Bob: non, 42
Zorg1: 7*6 alors ^^
Alshock: nan c'est le concept, la question est fausse
Bob: elle n'est pas fausse, on ne l'a juste pas comprise
Zorg1: tu viens avec tes questions, nous avec nos réponses
Zorg1: si ça matche tant mieux
reCurse: Non.
Zorg1: Si.
Bob: Peut-être.
Alshock: est-ce que les oiseaux tirent leur nom des oies migratrices ?
Bob: les pygargues, sans doute pas
Bob: les oies, peut-être
dbdr: l'histoire de Bob ça me rappelle celle du type dont la voiture tombait en panne quand il achetait de la glace à la vanille, mais pas au chocolat. 100% reproductible
Alshock: C'est la route vers la Castille qui est trop cabossée
Alshock: ah bah non vers l'Aragon, putain j'suis con
Neumann: reCurse: elle est hardcodée ta solution SR ou pas ?
dbdr: Alshock: bobby lapointe?
Alshock: ouais, mais en fait c'est bien la castille :D
dbdr: je vois pas pourquoi tu dis ça
Bob: quand mes gamines ont entendu cette chanson, la petite insistait pour chanter "tagada dragon" :dragon:
Alshock: ? Tu me réponds à moi ou à Neumann ?
Bob: l'expression nous est restée depuis
Alshock: @Bob ta fille est une génie :D
Bob: :D
Bob: de fait c'est la grande qui est officiellement HP
Alshock: c'est Harry Potter ?
Bob: même si la petite a oublié d'être débile aussi mais on n'a pas eu de motivation particulière pour la faire tester
Bob: non, Hewlette Packard voyons
Bob: -e
Alshock: Mais c'est trop la classe ta famille l'une parle aux dragons l'autre aux serpents
Bob: la grande, à l'époque où j'allais la chercher à la crèche, elle faisait wazzaaaa à chaque fois qu'on passait devant le stade, j'ai jamais compris pourquoi
Bob: un gamin c'est comme un logiciel en fait
Bob: c'est pas parce que c'est toi qui l'as conçu que tu sais vraiment comment il fonctionne
Bob: ni même pourquoi
Zorg1: mais tu peux pas le reboot en fait
Alshock: xDDD Et au bout de 10 ans tu te rends compte que sa dette technique est trop grande et tu veux t'en débarrasser :P
Zorg1: et l'interface utilisateur est pas géniale
ReborN: git revert
Alshock: git blame
ReborN: :D
ReborN: En soit tout commence d'un merge...
dbdr: ya git clone aussi...
ReborN: Et malheureusement tu fais ta merge request tout seul...
Alshock: putain ton père il a laissé des conflits dans la PR
Bob: une prise mâle, une prise femelle
Bob: des histoires de bits par paquts de 32
ReborN: git cherry-pick humour-de-papa
Alshock: j'ai encore jamais utilisé cherry-pick
ReborN: Globalement t'utilises cherry-pick que quand t'as fais des conneries j'ai l'impression
ReborN: Quand t'as mal géré ton truc
Alshock: globalement dans git si t'utilises autre chose que commit merge re
Alshock: rebase* c'est que t'as fait une connerie, non ?
Bob: pas nécessairement
Bob: des fois tu veux récupérer un commit particulier dans une branche
ReborN: C'est que tu sors des bonnes pratiques
Bob: -> cherry-pick
Zorg1: en fait sur mon projet on utilises cherry pick pour reporter les corrections d'un branche vers une autre sans faire de merge
Bob: alors non ça c'est moche
ReborN: C'est pas une bonne pratique ça si ?
ReborN: C'est pour éviter la création de branche mais bon
Bob: non
Zorg1: typiquement branche de dev/branche de prod, correction d'un bug particulier
Alshock: je commence à comprendre comment ça marche ouais effectivement c'est pas du tout inutile
Bob: et c'est vite pas gérable si tu dois le faire régulièrement
Zorg1: bob : seulement pour la correction de bugs
ReborN: Vaut mieux faire une branche à part et la merge c'est plus clean je trouve
Bob: en quoi ça gène de faire un merge ?
Bob: gêne
Alshock: la bonne pratique c'est de merge le correctif sur le dev/master et de merge le tronc commun sur toutes les autres branches c'est bien ça ?
Zorg1: bah t'as pas envie de récupérer toute les modifs
Alshock: ah mais parce que le fix de bug est fait sur une branche qui a une autre feature que le fix, c'est pas unitaire tout ça (regardez la gueule de mes gits et écoutez-moi parler, je suis un hypocrite de niveau 15)
Zorg1: après bon j'ai l'impression que l'important c'est que tout le monde fasse un peu la même chose
ReborN: Oui c'est d'avoir des règles par projet pour s'y retrouver je pense
Alshock: ouais, ça c'est le plus important c'est clair
Zorg1: déjà été sur des projets où t'avais une vedette qui disait que notre façon de gérer c'était de la merde et qui faisait à sa sauce et que ça foutait de temps en temps un bazar monstrueux. pas qu'il avait tort dans l'absolu
Zorg1: mais quand tu passes une journée à tout remettre d'équerre t'as des envies de meurtre ^^
ReborN: Après y'a quand même des bonnes pratiques qui gagnent beaucoup à être installées. Typiquement la branche par ticket, la merge request qui doit être validée par quelqu'un obligatoirement etc ça offre de la stabilité sur le long terme La ou le cherry pick ça peut etre un peu plus tricky par exemple :)
Bob: en général je cherry-pick pour aller choper un micro-fix bien précis d'une branche d'un copain pour me débloquer sur ma tâche et dont je ne peux pas attendre que ça soit mergé
Bob: mais bon ça reste très rare
Bob: dans le monde merveilleux des licornes ouais si tu veux un bugfiix tu devrais juste pouvoir merger la branche qui fixe ça et seulement ça
Bob: dans mon monde à moi il faut trouver le commit fourre-tout du chef dans lequel ça a été fourré et qui a été squashé au moment du merge dans master
Bob: (╯°□°)╯︵ ┻━┻
Zorg1: l'histoire de la merge request à valider je suis assez sceptique, sans doute parce qu'étant l'un des plus vieux dev j'ai pas envie de me taper la peer review de tout le monde ;-)
ReborN: Ahah de l'autre coté on est content d'avoir des review ! Mais je suis d'accord avec toi vieux hiboux !
ReborN: J'espere que c'est pas une chouette...
ReborN: Sinon ça tombe à l'eau...
Zorg1: en fait je crois qu'il y a qu'en français qu'on fait la différence entre chouette/hibou (selon la présence ou non d'aigrette)
Alshock: qu'en français je pense pas, mais en anglais les deux sont sûrement owl
Zorg1: aussi en français, la différence entre mouette/goeland, je crois
Zorg1: après oui t'as d'autres langues qui font des différences qu'on a pas ;-)
Alshock: en espagnol ça serait búho et lechuza
Alshock: bùho j'aime beaucoup parce que tu sens vraiment le cri du hibou là-dedans
ReborN: Plus que dans lechuza en tout cas
ReborN: :grinning:
itzhakls: y a une fonction qui
ReborN: Hello @itzhakls
itzhakls: y a une fonction qui permet de split() mais e gardant l élément qui split()???
ReborN: Répondu en dm Maintenant le karma devrait me faire passer de 6e à 1e en silver Tron j'imagine...
thepianist59: je suis en plein clash of code qui se termine dans 2 minutes. Je ne pense pas le terminer à temps , mais je voulais savoir si vous pouviez m'aider à comprendre la consigne, car je pense ne pas avoir compris ce qu'il fallait retourner
thepianist59: https://i.imgur.com/kZMaIJx.png
thepianist59: j'ai fait cela , mais je doit etre totalement à côté de la plaque
thepianist59: https://pastebin.com/LgPnQG77
Alshock: Hum de ce que j'en vois j'ai bien peur que ce soit un
Alshock: "DRUNK" if sum(tips) / sum(bill) >= percentage else "THIRSTY"
Alshock: sum(bills)*
Zorg1: oui c'est un peu mal foutu, mais je crois qu'on demande si le pourboire total est supérieur à un certain percent de la somme totale
Alshock: C'est vachement triste comme puzzle non ?
Zorg1: évidemment qqn a répondu avant moi
Zorg1: Alshock : c'est du CoC aussi
Zorg1: ah le thème
Alshock: Ouais mais là c'est pas seulement la facilité, c'est genre 3 fois plus dur de bien comprendre l'énoncé que d'y répondre
Zorg1: la validation des CoC c'est un peu .. comment dire ... spécial ^^
Zorg1: en gros le ménage est fait après coup, quand pas mal de gens ont mis une sale note à un CoC
VilBoub: Bob, t'es dans le coin ?
VilBoub: C'est bon, il n'y a pas de problème finalement..
Zorg1: c'est mort dis donc
Zorg1: ils sont tous en train de hard coder leurs bots SR, Automaton2000 ?
Automaton2000: (ou alors il faut faire une fonction récursive ?
Zorg1: :thinking: ça se discute Automaton2000
Automaton2000: pour une fois que t'as fait ml3 avec un ga
ReborN: :D
Zorg1: ce troll :(
ReborN: A ma grande surprise je suis passé de 6e en silver à ... 5e en or :D
ReborN: Sur Tron
Zorg1: gg
ReborN: J'avais pas prévu de devenir une légende mais c'est tentant là...
Zorg1: ça se tente
ReborN: Peut etre en cherchant une profondeur supérieure à 1 sur mon minimax car c'est vraiment ridicule ! :D
Zorg1: oui c'est ce qui m'avait fait passer en légende d'ajouter de la profondeur
Zorg1: après si t'es en python c'est pê pas super évident niveau perf
ReborN: Yes c'est sur...
ReborN: On en revient toujours au même soucis
Zorg1: bah dès que t'es dans les algos de recherche, il faut simuler un grand nombre de coup alors forcément
ReborN: https://imgur.com/a/gUj16pc
ReborN: Après je perds encore des trucs comme ça (je suis rouge), je remplis mal
Zorg1: ça dépend vachement de ta position de départ en fait, c'est pour cela qu'à 4 CG joue un paquet de match avec les 4 gars (je crois qu'il y a les 4! permutations possibles dans les positions)
Zorg1: ah moins sans doute, j'avais pas vu la symétrie
ReborN: Yes c'est bien fait, un peu plus compliqué à optimiser que les jeux à deux joueurs à situation initiale symétrique
ReborN: Typiquement sur pacman tu perdais un match tu pouvais directement copier dans l'IDE et l'améliorer en faisant attention aux effets de bord
ReborN: Là à moins de voir des défauts optimisables sinon y'a des matchs que tu perds car tu dois les perdre ! :)
Zorg1: en plus MM à plus de 2, t'es obligé de jouer le paranoiaque c'est pas forcément opti
ReborN: Oui clairement !
Zorg1: il y avait le MaxN mais j'ai du implémenter un truc à ma saue qui marchotte + ou -
JBM: du coup t'as encore casse l'ambiance
Zorg1: quelle ambiance ? y avait pas un chat, juste les chardons boules qui roulaient
Zorg1: (enfin je sais jamais comment on appelle ces plantes qui roulent dans les westerns. on m'avait dit que c'était des plantes qui venaient de Sibérie mais bon)
JBM: j'avais compris en te lisant
Zorg1: merci
Zorg1: oh "Virevoltant" en français :heart_eyes:
b0n5a1: o/
Zorg1: o/
JBM: t1, a chaque fois que je pense que j'ai fini de configurer ce #$%^& gitweb proprement...
leojean890: Zorg1 moi c'est mon A*craft que je hardcode là, pas SR xD jsuis genre 130/750 là c'est pas évident xD
leojean890: ReborN 6eme silver vers 5eme gold en effectuant quels changements ?:P
Zorg1: de ce que j'ai compris si tu veux grimper faut lire le PM de tourist sur a*craft
Zorg1: sans hardcoder bien sûr
leojean890: pas encore lu :P
leojean890: mais ouais j'ai prévu de lire les 2 PM:P
Zorg1: c'est en l'appliquant que Vry est devenu #10 ;-)
leojean890: pareil pour tron je suis en minmax depth 1 ou 2 en python
Zorg1: moi j'ai eu la flemme. Et en go j'ai pas des perfs terribles
leojean890: ah ouais il a fait ainsi ;P bon bah jvais lire ça sous peu;p j'ai juste fait un AG en python:p
leojean890: pareil pas de perfs de ouf:p d'où le hardcodage, je fais simplement tourner mon prgrm 20 mn
leojean890: par valideur
leojean890: en local
leojean890: sinon j'ai commencé l'approche "réfléchir où placer les flèches en regardant le terrain";P
leojean890: mais bon jpense que c'est un peu chaud aussi:p
Zorg1: ça me chagrine un peu le hardcoding, mais bon pas la peine de relancer ce genre de débat stérile :D
Fksg: y'a un équivalent de codeingame pour le sql, javascript, css, html etc ... ?
JBM: un truc genre 'resous un crime par sql'
Zorg1: t'as hackerank qui propose des exos de SQL
JBM: le reste je vois pas trop comment tu gamifies le truc
Zorg1: SELECT * FROM SUSPECT WHERE CRIMINAL='YES';
JBM: si y'avait, tu le connaitrais non?
JBM: mais tu le connais plus ou moins que CG?
Zorg1: t'as aussi Hackerank
Zorg1: codewars j'ai un peu été dessus t'as pas mal de langage, mais pas forcément tous les puzzles vu que tu dois traduire un puzzle pour un langage
leojean890: Zorg1 ouais je comprends ton point de vue sur le hardcoding, en vrai ça ouvre de nouveaux horizons :P genre avec une contrainte de moins (temps) on peut mieux se lâcher niveau idées :P
JBM: t'as deja ecrit une ligne sans tirer la langue?
leojean890: 22h05 par ex :D
dbdr: JBM: facile, tu fais une optim où un testcase c'est un bitmap, et le joueur doit trouver le html + css + js minimal pour produire ce bitmap
dbdr: suffit d'implementer un navigateur dans le referee, tranquille
JBM: voila ton idee pour ton puzzle ;p (emprunte a leojean890)
JBM: bah y'en a plein d'opensource
JBM: ca me rappelle l'ICFP 2007
leojean890: tu m'empruntes l'émote ?;P
leojean890: je ne connais point ICFP
JBM: dbdr: au fait: c'est clonable, donc
Zorg1: c'est marrant
JBM: j'ai encore des bugs sur le gitweb, mais tant que tu evites HEAD dans l'uri ca a l'air de passer
leojean890: ça consiste en quoi ICFP ?
dbdr: "fatal: repository 'https://troll.desast.re/?p=troll.git/' not found"
dbdr: c'est quoi ma stupidité? :)
Zorg1: ICFP c'est une conférence de programmation fonctionnelle. Mais en même temps t'as aussi un concours de programmation
Zorg1: http://www.icfpconference.org/contest.html
reCurse: Ils ont bien fait d'isoler le fonctionnel
reCurse: Confinement tout ça
dbdr: c'est pas isolé
leojean890: ah ok, à tester :p mais je ne suis pas du tt expérimenté en fonctionnel!
dbdr: enfin la conf si, le concours est ouvert à tous les langages
Zorg1: t'as pas vraiment besoin de l'être en fait
Zorg1: je crois même que certains lauréat était en perl alors bon
reCurse: Ceux qui font du fonctionnel auront pas le temps de faire un concours entre deux débats de monades
JBM: dbdr: je suis passe en path_info, remonte d'un niveau
Neumann: Et voila, dans les dents reCurse ²
reCurse: Tu veux dire que je dois commencer à hardcode?
reCurse: Soit
dbdr: JBM càd?
Neumann: Un NN c'est déja de la recherche offline
Neumann: Kappa
reCurse: Ah mais quel troll de mauvaise qualité
JBM: https://troll.desast.re/troll.git
reCurse: Je m'attendais à mieux de toi
dbdr: JBM :+1:
Neumann: J'avais pas hardcodé jusqu'à maintenant, pour info
Zorg1: trop de troll tue le troll
reCurse: Déjà que ça me saoule les optims
JBM: d'ailleurs je vais m'offrir ma premiere reecriture de HEAD depuis que c'est public
reCurse: Si c'était n'importe qui d'autre j'aurais laissé tomber, la flemme
Neumann: Comme si t'allais supporter de rester deuxième
Neumann: C'est ton point faible
dbdr: push -f ?
reCurse: Pas quand ça me fait chier non
reCurse: Mais tu me fais plus chier donc
reCurse: :D
Neumann: Pas sympa
dbdr: papillon?
reCurse: C'est toi qui a commencé à mettre dans les dents je signale
Neumann: Ca arrive assez rarement pour que j'en profite
reCurse: Voilà
reCurse: Après faut pas s'étonner
Neumann: Come at me, m8
reCurse: Voyons ce que ça donne un NN quand ça a rien à foutre de rester générique
dbdr: ça y va sec dans la cours de récré
JBM: c'est bien l'internationalisation des cours d'ecols
Neumann: J'ai découvert au passage les joies des angles conservés en flottant entre les tours
reCurse: Les angles sont arrondis non
leojean890: entrainer son NN direct sur la base de test il va carburer sur cette même base :P
reCurse: Maximum overfit go
reCurse: Tiens ça ressemble à un pouvoir d'anime
Neumann: Oui arrondis
reCurse: Ah donc tu as découvert ça
Neumann: Je le savais, mais je m'en foutais jusqu'à maintenant
Neumann: J'ai jamais eu à faire de simulation complète d'une partie en offline
reCurse: Ok
reCurse: Ça change un peu
reCurse: ZA RELUDO
Neumann: Obligé de taper des conversions rad/deg dans tous les sens
reCurse: Tu veux dire t'as pas un head[360]?
Neumann: head ?
reCurse: Et ben
Neumann: Ah, précalculer le round de tous les angles radian en degrés
Neumann: Ouais je pourrais faire ça
reCurse: Mouais pas tout à fait mais si tu veux
Neumann: T'as beaucoup de temps libre pour quelqu'un qui vient de déménager
reCurse: Tu dis ça comme si c'est moi qui bossait
reCurse: Je laisse le truc s'entraîner tranquille
reCurse: Faut juste que je fasse 50 NN et zou
Neumann: C'est l'équivalent de jouer Protoss à SC2 en fait
reCurse: Sinon faut bien se divertir un peu, y'a pas que le boulot dans la vie
Neumann: Vrai
dbdr: tiens Neumann a cessé d'exister
Neumann: ?
JBM: y'a plus que son pseudo qui dit des choses qui lui ressemblent pas
Neumann: Non.
dbdr: https://i.snipboard.io/DBtjyX.jpg
JBM: et apres y'en a qui me font des remarques sur mon avatar!
Neumann: Entre ça et les lags, le chat régale
dbdr: plus d'avatar j'avais déjà vu, plus de pseudo c'est fort
pb4: "head[360]"
pb4: " reCurse 22H35 Tu veux dire t'as pas un head[360]?"
pb4: J'ai pas
pb4: C'est mal ?
reCurse: Moi et ma grande gueule
pb4: :D
MathisHammel: Quelqu'un veut clash en groupe ?
MathisHammel: live.h25.io
pb4: Joli score d'ailleurs
pb4: J'ai du boulot...
reCurse: Optimiser des pouillèmes sur des circuits fixes, du bonheur en boite
Neumann: T'es pas obligé
reCurse: Je me dis juste ça aurait pu être mieux
Neumann: Exemple ?
Neumann: 400 validateurs
reCurse: Multiple joueurs sans collision avec tracé aléatoire
Neumann: Ca aurait ajouté un concours d'optim de taille de code pour faire rentrer les solutions hardcodées
reCurse: Un multi
reCurse: Pas les optims
dbdr: il y a un système pour proposer des améliorations avant la publication. venir après pour dir que ça aurait pu etre mieux, c'est pas tres constructif...
reCurse: C'était pas après justmeent
Neumann: La plus-value de mettre ça en multi est pas folle par rapport à ce qu'on a là
reCurse: Pas moi qui ai approuvé
reCurse: Je laisse mon feedback sur le chat au lieu du système
reCurse: Il était au courant
Neumann: Il est toujours possible de faire la version multi
Neumann: Pour une overdose de CSB
dbdr: après on peut pas suivre toutes les propositions en permanence non plus, c'est normal
reCurse: Mouais bof
reCurse: Oui je sais
reCurse: Enfin je répondais juste au pourquoi je trouvais ça moche
reCurse: C'est tout
reCurse: Toujours un concours d'hardcoding les optims
dbdr: un concours d'optimisation sur des validateurs fixes
dbdr: c'est un peu dans le nom en fait
Neumann: Hashcode-like
reCurse: Ça change quoi à ce que je viens de dire?
reCurse: Dans le cadre d'un concours où le score est tiré sur un jeu caché de tous, oui d'accord
reCurse: Autrement...
Neumann: caché de tous ?
dbdr: autrement c'est de l'optimisation
reCurse: À la date butoir les scores sont issus d'un jeu de validateurs qui n'a jamais été montré à personne
dbdr: sur un probleme connu de tous, c'est qd meme le plus juste
reCurse: Mais du coup tu ne peux faire ça que dans le cadre d'un concours
pb4: Moi la partie qui m'intéresse c'est de voir que si je prends mon code de NN + RL "normal", je suis très loin du top
reCurse: Autrement c'est du hardcoding
dbdr: c'est de l'optimisation
pb4: Ca m'indique que je dois retravailler la base avant de travailler des trucs plus complexes sur des jeux avec un adversaire
reCurse: Quel pinaillement inutile...
Neumann: C'est toi qui pinaille :D
reCurse: Mais pas du tout merde
Neumann: D'accord.
reCurse: Prochaine fois on me demande mon avis je me la ferme :D
Neumann: Tu penses quoi du FoW sur les multis ?
pb4: Allez, un terrain neutre : bien passé le déménagement ?
reCurse: Oui merci
Alshock: reuh tout le monde ?
Alshock: Joyeuse propriété à toi reCurse
leojean890: hellow
Alshock: Hardcodé sûrement
Alshock: (oui je viens de catch-up le chat)
reCurse: Si c'est pour me faire répéter la définition d'overfit c'est pas la peine :D
reCurse: Et merci Alshock
reCurse: Oui
JBM: j'etais pas a ce niveau d'info
reCurse: Merci
Alshock: overfit c'est quand on a repris du gâteau pendant le confinement :D
reCurse: lol
Alshock: maintenant je t'imagine dans un chalet québécois, te balançant dans ton armchair devant le feu avec ton assiette de poutine sur les jambes et une flasque de sirop d'érable à la main @reCurse ^
leojean890: donc tu voulais overfit ton NN sur les valideurs au lieu de le faire généraliste ?;P
reCurse: :zipper_mouth:
Alshock: bah si t'as les validateurs ça serait quand même con de l'entraîner sur autre chose
reCurse: Là n'était pas la question
leojean890: jcrois qu'il l'avait fait généraliste au début pour changer ça ensuite si j'ai bien suivi la conv:p
reCurse: Je ne ruinerai pas ton image alors Alshock
reCurse: Elle me plait aussi
leojean890: et bravo pour l'achat du coup;p
leojean890: en plus du bravo pour SR :P
reCurse: Là-dessus je mérite pas encore
reCurse: :P
leojean890: prochaine version;P
reCurse: Ça me saoule d'entraîner 50 NN, je me demande si je peux pas faire un peu de transfer learning
reCurse: En théorie je crois pas que le tracé est optimisable plus qu'un pixel par ci un pixel par là
leojean890: jamais lu de papers sur ça, ça se fait bcp?:P
reCurse: Donc on est dans la bosse du global minima je crois
reCurse: C'est juste un terme deluxe pour dire qu'au lieu d'entraîner from scratch tu entraînes d'une bonne base généraliste
reCurse: Comme image net pour la reconnaissance d'image que tu peux raffiner pour ton domaine
Illedan: That wont put you faster in a local maxima?
leojean890: ouais je vois
reCurse: Comme je viens de dire, je ne crois pas qu'on soit dans un local du tout
leojean890: imagenet déjà utilisé ouais
reCurse: Par contre sur certains tracés comme hold the line c'est vraiment pénalisant d'être généraliste
leojean890: ah ouais pb4 parlait d'entrainer d'une bonne base généraliste tt à l'heure, qu'il n'allait finalement pas partir des bases habituelles
reCurse: D'habitude ça fait des belles courbes les pistes
reCurse: Donc ça tue ma perf et sur les tracés généralistes et le tracé spécialisé
Alshock: ça me paraît aussi un peu invraisemblable qu'il y ait un minimum très loin du global auquel les meilleurs plafonnent sur SR
Alshock: à moins qu'il n'y ait un bug de la simu qu'on n'a pas encore découvert, ça serait rigolo ça
Alshock: haut haut bas bas gauche droite gauche droite start select
Alshock: ou haut bas haut bas ? Merde j'en oublie mon konami
reCurse: T'auras pas tes 30 submits gratuits
BigUP: et le code CSB un peu adapté ca ne marche pas ?
Snef: BigUp pour moi si
reCurse: Ça se joue de trop près pour ça
reCurse: Sur CSB on se fout de prendre un CP 0.001 plus tôt quand y'a des collisions
reCurse: Ça change l'approche
BigUP: Snef, j'ai pas eu le courage de modifier mon code, je suis parti sur un truc relativement simple
Snef: reCurse j'ai utilisé l'éval pour prendre ça en compte ducoup mon approche à pas vraiment changé
reCurse: Pour gratter plus loin t'auras pas le choix de changer
Snef: Je vois pas trop pourquoi pour être honnête
BigUP: reCurse, sur CSB j'ai essayé d'optimiser au mieux, meme si j'ai du prendre de la marge a cause des collisions
Snef: mon éval favorise les solutions qui finisse a 100.2 au lieu de 100.9 par exemple
reCurse: C'est pas que ça
BigUP: reCurse, je calcul le point d'entré en fonction de la sortie vers le CP suivant
reCurse: Si tu prend le CP 0.1 plus vite mais que tu te pénalises 0.2 plus tard
reCurse: Tu commences à faire attention à des détails dont on se fout complètement à CSB
Snef: c'est pour ça que je le prend en compte que pour le finish et pas les autres cp
BigUP: ok, parcontre il me manque la simulation avec des vitesses différentes
reCurse: Bon après libre à toi de me croire ou pas
Snef: Je te crois mais j'ai du mal à voir quelles différences il y aurait avec mon approche
reCurse: Environ 300 :P
Snef: oof
reCurse: Trop facile désolé
Snef: pas de soucis je mérite
BigUP: ha merde dans CSB l'angle des inputs ne correspond pas a celui de SR j'ai l'impression
Alshock: si ça a pas changé l'angle est arrondi sur SR
Alshock: mais illedan a dit ça y a plusieurs jours j'suis ptetre pas à jour
BigUP: ha bah si, c'est le meme referentiel pour l'angle entre SR et CSB :)
Zorg1: arrondi dans le moteur ?
Zorg1: comme les x,t,vx,vy ?
Zorg1: ah oui c'est écrit dans l'énoncé
BigUP: je peux tenter une petite modif de mon code CSB
BigUP: ha cool, le niveau 1 passe avec mon code CSB ;)
BigUP: ok, pas trop mal, je devrais remonter au classemen
Zorg1: j'espère que tu vas mieux faire que mon -3vel bricolé
BigUP: ha mince de petits ajustements a prévoir... c'est pas trop les memes distances il me semble
Zorg1: bah dans CSB t'avais max 5 cp assez espacé, là tu peux avoir un paquet de configuration pas forcément simple à gérer
BigUP: 16437 sans ajuster, c'est correct
Zorg1: nice
Snef: Tu as quoi comme algo BigUp ?
BigUP: 10 places de gagnées ;)
BigUP: Snef, du bricolage a coup de ifs a l'ancienne
BigUP: Snef, mais je calcul mon angle d'entrée dans le checkpoint et de sortie en fonction du next CP
Zorg1: l'angle initial est positionable aussi dans SR ?
reCurse: Nan
Snef: il est forcé sur le next cp
Zorg1: ok merci
Snef: entre les trois facteurs suivant : depth ; eval ; evolution des solutions lequel vous semble le plus important à optimiser ?
reCurse: eval
Snef: j'ai l'impression qu'il n'y a pas besoin d'une éval très "poussé" sur sr mais je me trompe peut etre
BigUP: 14720 en corrigeant une petite connerie ;) faut que je corrige CSB...
reCurse: Cette excitation quand on a un -0.8 au lieu de -0.1
Snef: gg reCurse
Snef: par curiosité tu pourrais lancer un hold the line et me dire le score ?
reCurse: Je suis une très mauvaise référence sur celui là
reCurse: Je crois pouvoir gagner facilement 3 ou 4 points en spécialisant juste sur ce circuit
Snef: ou longest alors ?
Snef: j'ai 97 en record dessus
reCurse: 97 sur longest? :thinking:
Snef: sur hold the line*
reCurse: ...
reCurse: BON
reCurse: Je spécialise sur celui-là dès maintenant alors
Snef: ah
Snef: tu avais un si mauvais score ? x)
reCurse: 114
Snef: oof
BigUP: ha, ouais, 297 ici
reCurse: Je croyais pas l'optimal irait aussi bas
Snef: 338.2 sur longest
Snef: (sur 50 uniquement)
BigUP: en mem etemps, elle fait bien d ela merde mon I asur celui la ! ;)
Snef: sans simu ou hardcodé ça va etre dur de faire un beau run sur hold the line
BigUP: 391 sur longuest
BigUP: Snef, je ne suis pas tres loin d epasser correctement, mais je met trop de gaz trop tot j'ai l'impression, du coup je rate les CP
Snef: ouais je passe pas full speed non plus
Snef: et mon pod stop le thrust juste avant le cp 6 je crois
BigUP: 97.81 sur round and round, ca a l'air pas trop mal
Snef: 78 sur round
BigUP: Stop Covid développé par Dassault ... hum, on peut avoir confiance ...
BigUP: 2000 Euro en cas de découverte de faille critique
BigUP: bof
Snef: sub 106 sur tokyo drift :o
BigUP: 126, mais je vois que j'ai de la marge sur le CP 0
Snef: tu comptes simuler ou pas ?
BigUP: Snef, pour le moment non
BigUP: au fait, c'est quoi le nombre de tours dans le jeu ?
Snef: le nombre de tour max ou le score ?
BigUP: le nombre de tours max
BigUP: 3 ?
Snef: ah des tours de circuit j'avais pas capté ^^ oui 3
Snef: bon j'ai gratté 100 point en changeant l'évol de ma pop
BigUP: ok, faut que je soigne mon finish, je dois pouvoir grater un peu
Snef: if(lastCP) FULLBOOST
BigUP: oui, un truc du genre
Zorg1: il n'y a pas de tour dans SR ? de ce que j'ai compris on nous filait les cp éventuellement en les répétant ?
Snef: ouais ça te donne la liste complète
Snef: en répétant chaque cp 3 fois donc
BigUP: Zorg1, tu as 1 tour lorsque le next checkpoint est le 0
BigUP: ha mais ils filents les CP de tous les tours ?
BigUP: ca va etre plu ssimple :)
Snef: ouais
Alshock: Mais sa grand-mère en short de bain ! Pourquoi le stderr s'affiche comme du stdout maintenant ? ça va être pratique le débug
Alshock: Je sais pas ce qu'il s'est passé avec Python3, mais on a le stderr dans l'affichage de stdout en blanc et tout. Par contre c'est juste visuel, il prend les bonnes lignes ne compte pour le "expected"
BigUP: j'ai pas ce probleme
BigUP: mais j'ai pas rafraichi