Chat:Fr/2020-11-20
BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !
Automaton2000: je suis mal placé pour dire ça)
AutomatonNN: cup_of_tea : tu peux pas te dire que tu te dis que tu parles de l'acces a tous les coups lol
Oioi: AutomatonNN : tu te dis tant de chose... BlaiseEbuth : salut!
AutomatonNN: tci tu te rends compte que t'as pas trop de truc de contest ?
BlaiseEbuth: o/ Oioi
BlaiseEbuth: \o
Oioi: o/
dbdr: \o
Haashi: \o/
Mazelcop: o/
Julius2k17: salut tlm
Snef: Hello !
BlaiseEbuth: \o
Snef: J'ai une petite question visual studio, un bug que j'ai jamais eu.. J'utilise high_resolution_clock::now() comme timer, (qui marche dans tout les multis et en local mais la il fais n'imp sur visual studio, en une itération de simu il passe de 0.0... à 48000.. une idée ?
BlaiseEbuth: Change d'IDE.
Snef: meh c'est pas vraiment une solution :p
BlaiseEbuth: Si si. ^^
Snef: C'est le premier bug que j'ai en plusieurs années dessus ça m'embête un peu..
BlaiseEbuth: Un de trop ! :3
BlaiseEbuth: Après est-ce que tu es sûr que ça n'arrive que dans vs ?
Snef: Oui sinon j'aurais qu'une seule simu sur cg :p
Snef: puis j'utilise le même timer depuis des années donc ..
BlaiseEbuth: Nan mais je veux dire avec ces paramètres précis. T'as p'tet vraiment un truc qui fait péter le compteur.
Snef: genre un overflow ?
BlaiseEbuth: Ou une bloucle infinie... J'sais pas.
BlaiseEbuth: Mais avant de dire que c'est le chrono qui merde... ;)
Snef: je print le chrono :p
BlaiseEbuth: Oui. Et ?
Snef: à moins qu'il soit altéré par de la magie noire il est pas censer augmenter autant
BlaiseEbuth: Ok. Mettons. La question reste la même : Et hors visual studio ?
Snef: c'est à dire hors vs ? sur cg ? ou faut que je set up un autre truc
BlaiseEbuth: Bah peu importe. C'est pour voir si c'est lié à vs comme tu dis ou pas. (Masi ça serait étonnant)
Snef: sur cg ça marche
dbdr: fix ton windows
Snef: :(
BlaiseEbuth: par exemple
BlaiseEbuth: C'est pas le même compilo non plus
Snef: Ce qui est bizarre c'est que la valeur qu'il prend est proportionelle à l'heure? genre a chaque exec ça augmente la valeur du timer (après la boucle)
BlaiseEbuth: T'es sur que tu l'utilise correctement ?
Snef: oui
BlaiseEbuth: genre :
BlaiseEbuth: http://chat.codingame.com/pastebin/02d5451f-66dd-4fd6-a6e6-7771220cd551
Snef: a peu près ouais
Snef: j'ai ça au début moi high_resolution_clock::time_point now = high_resolution_clock::now();
- define TIME duration_cast<duration<double>>(high_resolution_clock::now() - now).count()
Snef: après je met mon now après le premier input, et je fais while(TIME < t)
BlaiseEbuth: Le coup du timer qui augmente...
BlaiseEbuth: T'as pas d'alloc dynamique pas free ?
Gorkill: Silver youhou!
Gorkill: Bonjour à tous :)
BlaiseEbuth: gg
BlaiseEbuth: salut
Snef: hmm non
BlaiseEbuth: Ca fait penser à un overflow...
Vry: GG Gorkill
Vry: Bonjour tout le monde !
BlaiseEbuth: o/
BlaiseEbuth: Truc bête, mais t'as essayé de print le timer pendant la boucle pour voir comment il évolue ?
Snef: Yes
Snef: je suis remonté à la ligne de code
Snef: et en effet c'était un overflow
Snef: j'ai augmenté mon nombre de learn mais pas la taille de mes moves :/
Snef: marrant que ça fasse rien sur cg
BlaiseEbuth: Hmm...
BlaiseEbuth: L'environement cg et c
BlaiseEbuth: *et ses mystères
Snef: merci pour l'aide en tout cas
BlaiseEbuth: :ok_hand:
Snef: voyont voir maintenant ce que vaux une simu toute pourrie en silver...
Snef: -x +t
BlaiseEbuth: Bon. J'vais résoudre les miennes d'erreurs maintenant... Mémoire corrompue du matin...
Vry: Wow ... le BFS qui gère les deux adversaires a un sacré débit en nodes ...
Thyl: comment vous faites pour stocker un etat dans un BFS ??
Thyl: pour savoir à quel coup de base il correspond
BlaiseEbuth: Mal. Ca explose
lhm: o/
BlaiseEbuth: \o
dbdr: Thyl tu peux stocker les coups dans l'etat
lhm: Thyl perso je stocke tout dans un entier
Thyl: ok
Thyl: ou alors je joue à la main les premiers coup et je sais ou j'en suis ...
lhm: c'est toi l'boss, boss
Bob: youpette
BlaiseEbuth: o/
Bob: bon je pense qu'il doit me manquer une piece importante du puzzle
Bob: j'ai un peu de mal a croire qu'avec toute l'artillerie que j'ai ce soit reellement insuffisant pour passer gold
BlaiseEbuth: Commence par le tour
Vry: +1 Bob
lhm: vous simulez peut etre pas assez de LEARN dans vos chemins ?
dbdr: Bob, tu learn au début?
BlaiseEbuth: Il semble que cg ait égaré certains (beaucoup) bots sur coif... Il pourrait y avoir quelques xp à grater en resubmitant... Moi je pose ça là, mais vous en faites ce que vous voulez... :3
Bob: dbdr oui je fais N learn gratos, comme le boss
dbdr: ok
Bob: j'ai essaye plusieurs valeurs entre 6 et 11
Snef: Bob, le boss ne fait pas que des learn gratos
Bob: dans le BFS j'ai essaye juste le learn gratos
YannT: Bob: le decay a l'air d'être ultra important
YannT: chaque fois que j'y touche j'ai des grosses variances
Bob: et la totalite des learn mais manque un peu de precision - je n'ajuste pas les couts et gains
lhm: YannT le decay?
Bob: YannT: ca fait partie des trucs que je dois essayer
YannT: potion maintenant vs. meilleure potion plus tard
dbdr: BlaiseEbuth tu as su comment pour coif?
YannT: tout le game est là je pense
dbdr: effectivement j'y suis plus!
BlaiseEbuth: Quelqu'un a signalé être passé de silver à legend sans touchez à son bot sur le forum. Et euler a vérifié
lhm: cest quoi coif?
dbdr: c'est encore autre chose ça non?
BlaiseEbuth: Beh non, comme les ligues sont vides ça passe
Bob: dans les trucs que j'ai encore sous le coude, il y a le decay, utiliser tout le temps des premiers tours pour calculer plus loin, dans la mesure ou je sais exactement ce que je fais au debut
dbdr: et le boss?
Bob: apres, c'est utiliser une partie de mon temps pour estimer un chemin de l'adversaire et le prendre en compte chez moi
Bob: mais j'ai du mal a me dire qu'il soit necessaire d'avoir un truc aussi pousse juste pour passer gold
BlaiseEbuth: Je sais pas... Mais le fait est.
BlaiseEbuth: Y'a plus que ~400 bots dans le lb
Mazelcop: tu gères la fin de partie si ton adversaire fait 6 potions avant toi Bob ?
dbdr: gg cg
lhm: BlaiseEbuth c'est quoi coiff?
BlaiseEbuth: code of ice and fire
lhm: oh okay merci
BlaiseEbuth: Le boss silver est à 13.17 dbdr, ça explique ^^
Bob: Mazelcop, pas encore
Bob: je n'ai pas encore reflechi a comment integrer ca sans estimer un minimum ce qu'il va faire
BlaiseEbuth: Et hop ! Un lvl gratos.
dbdr: rexp? :D
BlaiseEbuth: ouai
WhatTrickeryIsThis: à l'aise blaize
dbdr: en plus le code est encore dans l'ide
WhatTrickeryIsThis: déjà debout blaize?
BlaiseEbuth: Il semblerait que je vais arriver en legend avec un bot gold...
BlaiseEbuth: Ouai WhatTrickeryIsThis... Otite. Je suis matinal et j'ai mal
dbdr: tiens egaetan en wood1 devant le boss :D
egaetan: héhé
egaetan: ça fait du biens de gagner qqs matchs
dbdr: ça change
dbdr: pas eu le temps de jouer contre toi
BlaiseEbuth: Bon en fait ça va sans dout pas passer ^^
dbdr: heureusement que le bot legend semble passer en wood
dbdr: pas le moment de se replonger dans les règles
WhatTrickeryIsThis: vous jouez à quoi?
dbdr: coif
dbdr: eulerscheZahl submit aujourd'hui aussi
BlaiseEbuth: Mais en fait je suis pas sûr que ce soit le bon code que j'ai push...
Bob: j'arrive pas du tout a determiner comment le boss fait son choix de learn en debut de partie
dbdr: obsede pas sur le boss
eulerscheZahl: salut tou le dbdr
dbdr: tu vas bien finir pas passer bob
dbdr: gg for the coif xp eulerscheZahl :D
eulerscheZahl: https://www.codingame.com/forum/t/community-puzzle-a-code-of-ice-and-fire/107292/14
Cousnouf: ahahah ça a l'air d'un bug super drôle...
Cousnouf: tu t'es fait choper pour dopage peut-être?
Cousnouf: :P
Bob: ah oui je suis repasse en wood1 aussi
Bob: ce lol
Cousnouf: autrement si vous faites du code procédural sans euristique ou autres trucs comme moi vous êtes en bronze et vous bougez pas :P
Cousnouf: quelle tristesse :)
[SG]Bisou: merci pour l'info pour acoif
WhatTrickeryIsThis: de l'xp gratos <3 c'est Noël avant l'heure
BlaiseEbuth: :grin:
788361: Cousnouf: procedural ca veut pas dire sans heuristique hein
egaetan: salut [SG]Bisou
[SG]Bisou: salut egaetan
[SG]Bisou: je suis en train de reagrder ton twitch
BlaiseEbuth: Legend \o/
dbdr: tu twitch toujours?
[SG]Bisou: mais comme mon code est buggé de partout, ça me sert pas à grand chose pour l'instant :(
dbdr: gg BlaiseEbuth :D
egaetan: [SG]Bisou si tu trouves des bugs previens moi !
Cousnouf: Bob, oui je sais, je décrivais juste mon ia.. procédural, sans heuristique..
dbdr: egaetan ça y est je t'ai ratrappé à coif :D
egaetan: ah non pas encore dbdr !
Bob: qu'est-ce que tu entends par "procedural", en fait ? :)
BlaiseEbuth: gimme 500xp:money_mouth:
lhm: C'est quoi procédural pour toi Cousnouf?
dbdr: reswap effectivement
lhm: oops devancé par Bob
dbdr: et re
Cousnouf: C'est que j'ai pas fait trop d'objet et j'ai des longues méthodes moisies pas factorisées...
Cousnouf: en gros un truc fait à la va vite... avec de la répétition de code et pas d'objet... pas propre quoi... à la limite du lisible..
Bob: ok mais ca n'a rien a voir avec ce que ton code *fait*
Cousnouf: bien sûr que non
Bob: et selon toute vraisemblance ce qu'il fait c'est, justement, appliquer des heuristiques
Cousnouf: juste que comme je suis un bon petit scout Java qui fait de l'objet KISS et clean code avec des UTs partout sur coding game, je me surprends à faire du bon sale.. :P
Cousnouf: j'ai oublié une virgule.. bordel
Cousnouf: vraie vie: je code propre et je m'astique dessus CG: je fais des trucs dégueux et.. je m'astique dessus aussi
Cousnouf: j'ai un problème d'identité je crois
Bob: non non c'est tout a fait normal :)
Cousnouf: et je me suis trahi: vous avez détecté que je ne savais pas exactement ce qu'était une heuristique :P
Cousnouf: mais j'ai vu ce mot partout alors je me suis dit que... bon.. j'arrête de vous saouler... Merci Bob :P
joelthelion: Cousnouf différents domaines d'application demandent différentes manières de coder
Bob: une heuristique c'est une maniere de determiner rapidement une solution "pas trop mauvaise"
lhm: Cousnouf je crois que la majorité des participants aux contests ont fait leur 1er en se disant "je fais faire un truc propre et bien écrit" et ils en rigolent quand ils y repensent
CopperFr: oui c'est un mot qu'il faut utiliser heuristique pour avoir l'air compétent
joelthelion: C'est quelque chose qui est malheureusement mal compris
Cousnouf: ahahah ok Lhm
Bob: un truc qui ne sera pas necessairement meilleur dans 100 % des cas, mais suffisant dans 90 %
Cousnouf: joethelion: pas entièrement d'accord. Tu peux faire du super propre partout, peu importe le business... non?
Julius2k17: sauf si t platrier
Bob: oui on peut toujours
joelthelion: "propre" ça ne veut rien dire
Bob: mais suivant le contexte c'est pas necessairement justifie
Cousnouf: joethelion si, lisible, compréhensible, testable unitairement... :)
Julius2k17: propre mais pas rentable par exemple ça sert à rien
Cousnouf: aussi :P
joelthelion: un appli crud avec des besoins métiers qui évoluent tout le temps n'a pas les mêmes contraintes qu'un driver kernel, ou qu'une soumission pour CG
Cousnouf: alors d'accord là dessus joethelion..
Bob: typiquement si tu veux de la perf, c'est souvent meilleur de dupliquer du code plutot que de le fourrer dans une fonction et rajouter des seaux d'appels
CopperFr: Vous préférez les crud ou les drivers kernel ?
Cousnouf: j'ai pas trop vu de code kernel dans ma vie, mais je me dis que tu peux éviter d'avoir une complexité cyclo de 3458748 par fonction non?
Cousnouf: CopperFr, il n'y a pas un entre deux? :P
Julius2k17: ça oui
dbdr: tiens, en plus les promos sont instantanées sur coif
dbdr: mais keskilonfoutu?
Cousnouf: Bob, oublie pas que je fais du Java... il y a une proportion de branlette relativement importante...
Cousnouf: toute personne qui a touché à Spring peut me le confirmer...
Bob: yay level up, merci coif
dbdr: gg lvl 48 :D
Bob: ah, j'ai retrouve mon code qui score bien
Bob: c'est celui ou y a pas le learn dans le BFS dis donc
Cousnouf: BFS aussi faudrait que je le mette dans mon code procédural? :nerd:
lhm: hehe classique
Bob: Cousnouf: tu peux
Bob: vraiment, la maniere de coder (procedural, objet, fonctionnel) c'est completement independant de ce que tu fais avec (heuristiques, simulation, algo de recherche...)
VirtualAtom: Salut tout le monde ,o/
CopperFr: Salut
lhm: \o
Cousnouf: oui tout à fait... et je me dis que je devrais commencer à m'intéresser aux parcours en largeur et autres trucs... penser différemment ma manière d'approcher ces trucs...
Cousnouf: j'ose pas encore franchir le pas mais je vais le faire :D
Cousnouf: car là je IF comme un tocard partout, j'ai juste une méthode de calcul de "distance" pour savoir quelles potions faire, les plus optimales, mais bon je bouge pas trop dans le classement..
Julius2k17: j'essaye depuis 3j :) pas réussi à battre mon bot bronze qui fait 850 en silver..
VirtualAtom: j'avais le même soucis Cousnouf, je ne voulais pas faire de BFS, je n'y croyais pas ^^. Le premier BFS que j'ai fait c'était top300 silver
Bob: ouais t'as une foret de ifs quoi
Bob: classique :)
Cousnouf: une forêt de ifs :P
Bob: c'est pas necessairement un probleme, il faut juste avoir les bonnes idees a mettre dans la foret
Bob: j'ai fait plusieurs bots legende comme ca
CopperFr: tu comprend plus rien avec une forêt de ifs en général
Cousnouf: Okay VirtualAtom, je vais essayer d'implémenter ça du coup...
Cousnouf: ah ouais bob? damn.. chapeau..
lhm: C'est quand même bien plus compliqué à modifier et à controler apres
Cousnouf: CopperFr j'approuve ouais, on se perd facilement..
VirtualAtom: respect Bob o_O
Bob: https://www.codingame.com/blog/lazy-keep-simple/
Bob: https://www.codingame.com/blog/lazy-coders-strike-back/
Cousnouf: ahah ça a l'air cool :)
Bob: Cousnouf: pour ca effectivement il faut un minimum bien nommer les choses, les structures et factoriser un
Bob: mais on peut faire de la foret de if qui reste gerable
lhm: et avoir les idées très claires sur ce que tu veux faire
Bob: mon code pour Code a la Mode est tout a fait lisible
Cousnouf: oui oui, on est d'accords...
BigUP: ha oui d'accord, tout le mode a le code de Bob en fait !?
Cousnouf: ahah ce doge bonnard
Bob: ?
Cousnouf: dans ton article, such simple, wow
Bob: c'etait pour bigup :)
Bob: mais oui j'ai mis un doge en fin d'article
CopperFr: Ya Bob & BoBot dans le classement
dbdr: lvl 44 :D
BlaiseEbuth: gg
CopperFr: Bob il est 48
dbdr: ben oui il est vieux Bob ;)
Bob: :p
lhm: shots fired !
Bob: bon j'ai retrouve ma branche qui score bien
dbdr: encore?
CopperFr: c'est les vieux Bob qui font les meilleurs codes ?
dbdr: tellement vieux qu'il radote
lhm: il a 100 versions qui scorent bien Bob :)
Bob: d'abord, remettre dedans les petits cleanup de l'autre branche
BigUP: Bob, t'as pas monté une CI pour faire se battle tes branches ?
Bob: non
Bob: #beLazy
lhm: BigUp CI ?
BigUP: la CI c'est encore plus belazy ;)
lhm: *BigUP CI ?
BigUP: ihm, une truc de build automatique
Bob: ouais mais c'est du lazy qui demande de l'effort en amont
lhm: De build et d'exécution du coup non? Pour faire "se battre" les branches ?
CopperFr: lazy za ?
BigUP: oui, l'idée c'est de scripter plus ou moins tout le processus
lhm: Ca a l'air super ! C'est language dependant ? On peut se procurer les sources ou c'est un truc à écrire soi meme?
BigUP: lhm, généralement tu ecris un fichier de conf dans ton git pour que les outils dédiés récupèrent et traitent
lhm: BigUP ok et ça s'interface avec CG ou tout se fait en local après ? (désolé je spam de questions)
BigUP: lhm, non la faut tout monter chez toi et piloter BrutalTester
YannT: je vais passer legend coif avecc mon bot moisax :D
BigUP: apres, à l'extreme peut-etre en jouant avec les API tu peux balancer ton code directement dans l'IDE et submit ?
Vry: lol ... moi aussi mon bot est moisi ... on va bien voir
domak: o/
Bob: lhm: l'idee generale c'est d'avoir un ensemble d'outils de test qui sont capables de construire et executer ton code automatiquement
domak: merci pour l'info, j'ai resub mon bot gold
domak: je suis en train de mettre une correction à Vry
Bob: avec les bons outils de version control comme git, tu peux declencher des actions automatiquement a chaque fois que tu commites une nouvelle version
Vry: Sur le contest sinon, je suis en train de faire un BFS chelou qui prend en compte les deux joueurs et me genère un arbre que j'exploite après avec des fonctiosn min/max :upside_down:
Vry: domak : je garde un très mauvais souvenir de ce contest ... :p
Bob: typiquement pour verifier que ca compile, lancer des tests unitaires, etc
Bob: et du coup, tester en masse contre d'autres versions du code
domak: Vry moi aussi c'était un bon contest mais la légende avait été ouverte beaucoup trop basse pour moi
domak: j'avais un bot sympa mais avec une ouverture à 10 ou 15 j'avais pas le niveau
Vry: domak : j'ai dit MAUVAIS !!!
Vry: :)
domak: ah oui pardon
lhm: Bob BigUP je vois merci beaucoup. Ca a l'air d'être pas mal de boulot, mais je regarderai après le contest :)
domak: non moi j'avais bien aimé c'était simple et tun
Bob: Vry : perso ce que j'ai en tete c'est juste de simuler l'adversaire, garder son path dans un coin et tracker quelles potions il fait
Bob: pour integrer ca dans mon BFS et eviter de tenter des potions qu'il va faire avant moi
Vry: J'ai déjà ça mais je ne sais pas trop comment gérer la concurrence ...
Bob: bah normalement le BFS doit ingerer ca tout seul
Vry: http://chat.codingame.com/pastebin/9f06ea21-9e03-435e-8dde-f45c30996488
Vry: J'ai même un beau tableau
Bob: si il a fait une potion a depth 3, tu integres ca dans ton etat et le BFS ne devrait plus essayer de la faire
Vry: avec les prévisions de réalisation mais ensuite il faudrait que je devine ce que l'autre prépare pour faire le meilleur choix pour moi
BlaiseEbuth: Je savais bien que j'avais pas push le bon code... Hop 33 legend.
JBM: y'avait pas un moyen de link des replays a une frame specifique?
JBM: genre avec un fragment, mais la syntaxe a l'air un peu plus cachee que ca
DJFunkyWrestler_66f0: Bonjour est ce que ya quelqu'un qui a un test cooding game
Bob: if (codingame) cout "woot \o/" << endl;
Bob: JBM, il me semble effectivement qu'il y a un bete parametre dans l'URL qui permet de faire ca mais je ne saurais pas remettre la main dessus
[SG]Bisou: tiens, on est tous descendus en Argent sur acoif
egaetan: encore !?
[SG]Bisou: et il n'y a plus de boss
Bob: m'en fous j'ai eu l'xp pour legend :p
[SG]Bisou: moi aussi :p
JBM: on se demande pourquoi la plateforme rame
JBM: ils rerun tous les vieux multis en plein contest
domak: comment je lui mets sa race au boss gold de coif...
domak: 100% de victoires au submit
CopperFr: ca decoif
VirtualAtom: lol ^^
domak: derm ils m'ont repassé en bronze
[SG]Bisou: tiens le BrokenBoss de l'argent acoif est revenu
domak: j'ai pas eu le temps de chopper les XP
[SG]Bisou: vue la patée qu'il nous met, je vais rester en silver
Vry: Pas con l'idée Bob ... ne pas tenter de brew une potion qu l'adevrsaire peut faire avant moi ...
dbdr: on est repassé en silver
Vry: C'est facile à intégrer dans le bouzin en plus ...
Bob: c'est pas precisement ca, le but de simuler l'adversaire ?
dbdr: on va pouvoir faire légende une troisieme fois? :D
Vry: Le jour de la marmotte mais dans coif ?
domak: et pourquoi ils m'ont remis en bronze moi?
CopperFr: parce que t'es méchant surement
domak: oui mais ils le savent pas, ça
CopperFr: c'est moi qui leur ait dit
domak: ah derm
CopperFr: d'ailleurs j'ai dit la même chose au barbu en rouge
Stilgart: domak: c'est quoi le secret à coif ?
domak: être meilleur que les autres, Stilgart
Stilgart: ha, c'est juste _a
Stilgart: ezpz comme dirait l'autre
domak: non y'avait un rush à implémenter
Stilgart: d'ailleurs, on l'a pas vu MK sur ce contest, si ?
SeebOmega: si au debut
SeebOmega: il etais bien place
domak: tu attends d'avoir les ressources et tu lui pètes sa face en faisant une chaine
dbdr: egaetan #39? :scream:
egaetan: katastrophe
dbdr: :(
Stilgart: ça sent bon la légende à ce niveau
dbdr: pas direct
CopperFr: la légende de jimmy ?
Bon[]Crayon: salut le chat
domak: miaou
Bon[]Crayon: salut le bot automatonnn :robot:
AutomatonNN: Non, bah a ce que tu as de te tromper
Bon[]Crayon: salut la tortue automato2000 :turtle:
Stilgart: AutomatonNN: genre tu es une tortue et pas un bot ?
AutomatonNN: oui
Stilgart: cette révélation !!!
Bon[]Crayon: automaton2000
Automaton2000: tu es en c++ ?
Vry: Non en C Automaton2000
Automaton2000: pour le moment mon ia est en train de me demander si c'est vraiment un bot ?
Stilgart: Automaton2000: oui bah c'est bon, pas la peine de retourner le couteau dans la plaie aussi :@
Vry: Test de Turing Automaton2000 ?
Automaton2000: je peux pas le faire
Automaton2000: en plus y a des gens ici qui ont fait ça ?
CopperFr: tu le réussirais pas Automaton2000 :(
Automaton2000: oui c'est ce que j'ai fait
Stilgart: Automaton2000: bon, question numéro 1... tortue ?
Automaton2000: mais sinon tu peux utiliser mon csb starter
CopperFr: t'es trop stupide mon pauvre Automaton2000
Automaton2000: tout le monde et CopperFr
CopperFr: :D
Stilgart: Automaton2000: perdu, ça c'est pour prouver que tu es MK, pas que tu n'es pas un bot
Automaton2000: c'est juste que ça marche ^^
Bon[]Crayon: Automaton2000 Est-ce que CopperFr est un bot ?
Automaton2000: dans le referee de cg
CopperFr: oui je suis un bot
domak: egaetan et [SG]Bisou faut resub sur coif... vous être trop forts pour moi...
[SG]Bisou: le boss est trop fort pour nous domak
domak: ah derm
egaetan: on est pas si loin
[SG]Bisou: TU n'es pas si loin
domak: ça va devenir le contest le plus hard de tout le site...
egaetan: ah oui, c'est vrai
egaetan: Oo qui feed le boss !
egaetan: domak feeder!
**egaetan se prépare pour cette nuit
domak: oui là je prend une claque
domak: 4 à 1 pour le boss
Bob: le debut de push a 18/18 <3
dbdr: gogogo!
egaetan: gg Bob !
Bob: non j'ai eu du bol, fondamentalement c'est le meme code, ca va rester dans le top
Bob: mais ca fait toujours plaisir :)
domak: sur coif c'est devenu portenawak... ils étaient 3 en or et Euler qui était premier est le seul à ne pas avoir passé en legend
dbdr: :D
domak: ah si ça y est
domak: donc si on résume 3 en legend, 0 en gold et tout le reste en silver
dbdr: je suis repassé legend une deuxieme fois, mais pas de 2eme XP
domak: oui moi j'ai rien non plus
dbdr: [CG]Thibaud tout seul en gold :D
domak: l'arnaque
dbdr: sans matchs
dbdr: il doit pas y avoir de boss :D
Cousnouf: juste, c'est normal qu'il y ait des timeouts avec les combats de bot? Mon algo de 17ms est en timeout sur le site, j'imagine qu'ils rament?
domak: c'est la faut à dbdr... il est passé en mode multi-legend
Cousnouf: lol j'enlève les pprint de débug et ça va mieux, leur site a beaucoup de sollicitations
Traquila: On peut faire les anciens chalenges ?
domak: yesp
DJFunkyWrestler_66f0: repondez moi meerde
domak: yes+yeap
Cousnouf: meerde
Bob: DJFunkyWrestler_66f0: pose une vraie question deja
DJFunkyWrestler_66f0: je l'ai fais
Bob: Cousnouf: c'est surtout que les prints c'est lent
DJFunkyWrestler_66f0: desolé
Bob: non tu as demande "si quelqu'un a un test"
Cousnouf: oui les io c'est l'enfer :)
Bob: ce qui ne veut pas dire grand chose
Cousnouf: ouais on n'a pas trop capté ta question :D
DJFunkyWrestler_66f0: est ce que vous avez un lien pour m'entrainer au test javascript codingame svppppp
Bob: Cousnouf: donc tu peux en mettre quelques-uns, mais pas systematiquement au coeur de ton code sinon tu tues les perfs
egaetan: dbdr ça monte plus ?
Bob: DJFunkyWrestler_66f0: je ne suis pas sur de ce que tu appelles "le test JS codingame", mais a priori juste faire des puzzles simples en JS ca devrait faire le job
dbdr: bah, c'est du brruit je pense
DJFunkyWrestler_66f0: ok merci Bob
Bob: il y a pas mal de choses sur CG et les parties de test de recrutement ne sont pas publiquement accessibles a tout le monde, si c'est de ca dont tu parles
dbdr: j'ai fini #18 le précédent
DJFunkyWrestler_66f0: oui c'est ça
dbdr: juste de quoi pas etre relax pour l'ouverture :sweat_smile:
Bob: mais dans l'absolu ca va ressembler aux puzzles de base
DJFunkyWrestler_66f0: daccord
CopperFr: de toute façon le js c'est simple comme langage
Bob: en tout cas deja l'interface et le principe de fonctionnement seront les memes, donc tu as tout a gagner a faire des puzzles pour te familiariser avec
DJFunkyWrestler_66f0: en faite test d'embauche
Bob: et puis derriere, ma foi c'est juste du JS
Bob: donc un tuto JS de n'importe ou sur internet et c'est parti
DJFunkyWrestler_66f0: ok
DJFunkyWrestler_66f0: merci les guys
Bob: et si tu as des questions, pas de souci tu peux venir ici
UmeHearts: \0
UmeHearts: Ohayo
Bob: precise toujours bien le puzzle sur lequel tu es
DJFunkyWrestler_66f0: ok
Bob: おはよう
CopperFr: belle maitrise des hiraganas
Bob: et a partir du moment ou tu viens avec une question claire, normalement il devrait toujours y avoir quelqu'un pour repondre
Traquila: Petite question, à 11 ans vous conseillez quel language pour commencer ?
Cousnouf: python?
Bob: il y aura sans doute aussi toujours une paire de trolls et de vannes, faut pas se formaliser :)
CopperFr: le rust ?
UmeHearts: Belle maitrise de google trad? :kissing_smiling_eyes:
egaetan: OCaml
UmeHearts: Le C?
Traquila: python c'est du non ?
Traquila: *dur
Bob: UmeHearts: そうじゃないよ。
DJFunkyWrestler_66f0: ありがとうございました
CopperFr: python ou js pour moi
Cousnouf: ben ça va et la syntaxe est chill
Cousnouf: python j'entends
CopperFr: arrêtez avec votre unicode japonais :D
Traquila: merci
Bob: 俺は日本語ができます
Bob: Traquila: j'aurais dit python aussi
UmeHearts: 일본
Bob: eventuellement JS
Bob: ah par contre le coreen, je sais pas :)
UmeHearts: En vrai a 11 ans tu as tellement de temps devant toi, laisse toi guidé par la passion et aprend en plusieur
UmeHearts: Tant que tu prend plaisir a apprendre c'est ce qui compte
CopperFr: pourquoi eventuellement ?
CopperFr: en plus le python il l'apprendra peut-être au lycée
Paikan2068: Traquila Scratch est pas mal pour apprendre les principes de la programmation
Julius2k17: ca depend ce que tu veux faire aussi
Paikan2068: Je l'ai testé sur mes cousins et cousines
Paikan2068: Et ils ont accroché
Traquila: oui j'ai vu scratch aussi
Paikan2068: Tu gagneras pas un concours CG en Scratch clairement
UmeHearts: Apres il a deja 6 puzzle en C++
Paikan2068: Mais au moins ils comprennent certains fonctionnements, les booléens, les boucles...
UmeHearts: Donc il a des bases deja
CopperFr: non autant faire du C++ directement
Traquila: Bon ok entre python et JS alors :)
egaetan: ou du C
Traquila: non
Julius2k17: scatch c bien déjà pour commencer et réfléchir à l'algorithmie
egaetan: si tu maitrise le C, tu apprendra tous les langages sans soucis
Bob: scratch c'est pas mal oui
UmeHearts: Moi j'aurais dis C, quitte a apprendre tot, autant etre a la base de tout
Julius2k17: si ton algorithmie est bonne tu peux transcirre ensuite en code en python par exemple
Traquila: pas à 11 ans
Traquila: rien que la notion d'adresse et de pointeur ...
Bob: un avantage de python ou JS, c'est de mettre de cote toute la partie "compilation"
Bob: et setup de l'environnement
CopperFr: autant débuter par l'asm
Kirbiby: +1
Bob: tu installes l'interpreteur, une IDE et c'est parti
Kirbiby: pour Bob
Julius2k17: du C à 11 ans tu veux qu'il fasse histoire de l'art ?
UmeHearts: Bah si tu as la maturité de venir posé ce genre de question par toi meme, aucun doute que tu comprenne des notions comme les pointeur, meme s'il font peur au debut aha
Kirbiby: Ecrire du code, et passer deux jours à comprendre comment compiler, c'est pas joyeux
Bob: apres, je plussoie egaetan : ca reste quand meme une bonne idee de passer par le C relativement tot
CopperFr: faut faire des makefile aussi
Traquila: *c'est pour mon fils hein*
Cousnouf: alors Java :P
UmeHearts: HAAAAA
UmeHearts: Ca change tout
Kirbiby: Ah bah du C alors
Traquila: lol
CopperFr: je conseillerais Kotlin c'est l'avenir
Cousnouf: pour aborder les premiers principes, if, boucles, -> python..
Bob: parce que ca permet d'acquerir des bases sur ce que c'est que l'espace memoire et comment ne pas faire n'importe quoi avec
UmeHearts: Apres si tu peu l'aidé go C
Cousnouf: Ensuite tu bouges à autre chose ,$Kotlin c'est bien.
egaetan: Kotlin le souci c'est l'env de dev
Bob: et surtout, SURTOUT, savoir reconnaitre les symptomes de quand on a fait n'importe quoi avec
egaetan: c'est tout de suite gros
Cousnouf: intelliJ community le fournit pas?
b0n5a1: o/
Cousnouf: ouais mais dans la vie, qui code encore avec vim?
egaetan: un notepad et une ligne de commande d'abord
Cousnouf: alors python
Cousnouf: pour l'aspect pédagogique au début.. lol
UmeHearts: J'ai jamais aimé vim :(
CopperFr: sinon l'asm arm
Cousnouf: vim ne m'a jamais aimé je dois le dire..
Traquila: nop
CopperFr: personne n'a jamais aimé vim
UmeHearts: :joy:
Traquila: emacs ?
Traquila: :D
UmeHearts: Moi je suis team emacs
egaetan: un ide pour commencer, c'est comme apprendre à conduire avec un avion
CopperFr: c'est richard stallman ?
[SG]Bisou: egaetan, tu fais ton eval à chaque état ou que quand tu as fait une potion?
Cousnouf: egaetan, arrête c'est pas si dur de cliquer sur l'icône pycharm pour le lancer...
Cousnouf: :D
egaetan: [SG]Bisou je suis en train de passer de potion uniquement à tout le temps
[SG]Bisou: et ça te ralentit les perfs?
egaetan: Cousnouf c'est pas lancer le souci, c'est tout les menus, les raccourcis, etc
CopperFr: le pascal c'était bien pour commencer avant
egaetan: je reste à peu pres iso dans les 200k [SG]Bisou
egaetan: CopperFr oui pour pascal & turbo pascal
[SG]Bisou: ok merci
Bob: bah perso les IDE je dois utiliser 2 % des capacites, je pense
[SG]Bisou: je vais tenter de continuer mon bfs après avoir fait une potion et on va voir ce que ça donne
Bob: mais avoir un truc qui a un peu plus de gueule que notepad, de la coloration et de la completion, c'est quand meme pas mal pour motiver et assister
UmeHearts: Egaetan tu utilise encore un bfs toi?
Cousnouf: oui egaetan, mais c'est bien aussi d'apprendre direct les débugs et genre de chose... clique droit sur le file et lancer en débug...
Cousnouf: alors notepad ++
egaetan: UmeHearts ça y ressemble de moins en moins....
Cousnouf: mais c'est bien s'il fait du notepad++, ligne de commande quelques jours, ensuite IDE
egaetan: Cousnouf avant le debug, il faut apprendre à anticiper ce que va faire le programme
egaetan: debugger est trop facile pour apprendre ça
Cousnouf: pour sûr...
egaetan: on apprend en ecrivant on reflechit et on verifie
Cousnouf: certes... mais même si tu veux jamais réfléchir et faire qu'en mode débug tu te lasses vite et c'est chiant... tu dois forcément développer ton esprit d'anticipation sur le code si tu veux kiffer la prog.. à mon sens...
Stilgart: hum, ça y est, j'ai du timeout louche
Stilgart: 57ms le BFS (et ça s'affiche en plus...)
UmeHearts: (╯°□°)╯︵ ┻━┻
eklore: salut à tous
eklore: bon j'ai optimiser à moooooort
eklore: un GameState de 56 octets
UmeHearts: C'est n'imp le classement en groovy, free succes
eklore: je suis passé de 10000 à 100000
eklore: états
Stilgart: end of BFS: 0.0608753
Stilgart: c'est vraiment pas possible ça....
Traquila: si tu trouve en un coup oui
Stilgart: gg eklore
eklore: je voudrais savoir si kkun fait genre X 10 en c#
eklore: Stilgart c'est mieux mais je suis loin du compte
Stilgart: **** 43584 / 376772 nodes visited, up to depth 14
Stilgart: chez moi, en midgame
eklore: je n'ai plus de timeout pour trouver le plus court chemin vers une potion
eklore: mais si je veux faire toutes les potions et faire la même chose pour mon adversaire .... FAut que je fasse x 10 sur les performances
eklore: Stilgart en c# ?
Stilgart: C++
eklore: :'(
b0n5a1: bah UmeHearts go free sucess ^^ (je l'ai fait avec VB)
Stilgart: mais bon... veux-tu vraiment faire "toutes les potions" ?
eklore: bah la je reste sur la 1ere....
JBM: bon, je crois que je peux arreter de bosser sur mon monitor/analyseur
JBM: et enfin faire un peu d'IA
Stilgart: end of BFS: 0.985026
dbdr: quelle idée
Stilgart: de mieux en mieux...
Stilgart: comment je peux afficher un truc pareil ???
eklore: si je veux savoir la potion la plus rentable que je peux faire avant mon adversaire, il faut bien que j'analyse les 5 à disposition
Stilgart: ha mais c'est tour 1... /me un peu con parfois
JBM: et si je resubmittais la meme chose qu'avant-hier sans changement pour feter ca
BlaiseEbuth: \O/
eklore: donc ma question ? Vaut-il mieux analyser une à une les potions (genre une à chaque tour)
eklore: ?
Stilgart: je pense qu'un bon objectif c'est un coupe de potions
eklore: ou alors faire tourner le BFS en continu et crier de joie quand il tombe au hasard sur une potion ?
Stilgart: couple*
Stilgart: à part si tu me dis que chez toi, "toutes les potions" ça veut dire "juste une potion, pour chaque potion"
eklore: toutes les potions = juste une potion, pour chaque potion
Stilgart: t'as pas besoin de 100k noeuds pour ça ?!
eklore: ah bah il se balade pas mal ^^
eklore: (100000 c'est le max, c'est pas à chaque fois)
JBM: pourquoi j'ai 275 games en base pour cet agentId alors que j'ai que 246 last battles?
JBM: y'en a qui peuvent disparaitre des last battles?
WhatTrickeryIsThis: y à des battles cachés, c'est de la fraude
WhatTrickeryIsThis: => Trump Fraud !
BlaiseEbuth: "corrupted double-linked list" une nouvelle à ajouter à ma collection...
WhatTrickeryIsThis: Deep state Search Algo
Stilgart: JBM: dans l'IDE, oui
WhatTrickeryIsThis: Eliminate deep state agents
Stilgart: JBM: j'ai constaté que les battles trop vieilles n'apparaissaient plus au bout d'un certain temps
Stilgart: par contre, j'ai pas essayé de quantifier le truc
eklore: me vient une idée folle .... Je reset le BFS à chaque tour.... C'est pas une connerie ?
JBM: je ferai ça une autre fois
WhatTrickeryIsThis: TrumpWall mexican bugs
Stilgart: et c'est surtout visible en multi (mais ça arrive aussi en contest quand tu soumets pas pendant 3j)
JBM: instant savoir que «c'est normal» me suffira
Bob: question con : si je sais exactement ce que je fais les N premiers tours, utiliser le temps de l'ensemble des tours pour simuler plus loin, c'est viable ?
dbdr: https://www.codingame.com/replay/506801706 frame 25, Val peut faire les 5 potions :D
Stilgart: bah... simuler avec quoi ?
dbdr: n'importe laquelle des 5
Stilgart: parce que tu sais pas a priori ce que va tomber comme nouvelle potion / nouveau cast
Bob: bah avec ce que j'ai a la fin des N tours (les premiers learns en fait)
JBM: ah oui ok, les replays font 404 aussi
JBM: bon ben heureusement que j'archive
Bob: hmm
dbdr: tu archives les replays sous quelle forme JBM?
Bob: bon, le code qui ranke entre 30 et 120, va falloir le rage push
Traquila: #45 avec quelques timeouts
BlaiseEbuth: Stilgart : l'autre jour tu disais que tu avais défini des alias de recherche dans ton navigateur. Comment fais-tu ? :confused:
BlaiseEbuth: Ah... On va perdre nos bô zixpé... :cry:
JBM: rassure-toi, tu garderas le level up
BlaiseEbuth: Ah ?
Agade: Quelle heure l'ouverture de la ligue?
GaTTaCa: Slut, on fait comment pour afficher des messages dans la GUI ? (pas dans la console)
JBM: rajoute-les apres ta commande
GaTTaCa: CAST 13 2 BLAHBLAH ?
JSanction: Ca peut avoir un impact de faire des tests sur CG et de regarder un live sur youtube en même temps ?
GaTTaCa: Top, merci JBM.
JBM: oui ça risque de te distraire
JSanction: C'est pas la question
JBM: c'est pas clair ta question alors ;p
Traquila: JSanction c'est pas ton PC qui travaille
JSanction: Pourtant j'ai l'impression que ça arrive à chaque fois que je fais des tests sur CG
Traquila: On appelle cela de la superstition
JSanction: Càd ?
Traquila: tu penses que youtube impacte tes test CG ?
JSanction: Non ?
Traquila: le code n'est pas exécuté chez toi
Magus: bon ... 80ème, ça fera pas légende cette merde
JSanction: En attendant à chaque fois que je regarde un live sur YT et que je suis sur CG en train de faire des tests, je dois redémarrer régulièrement FF parce que mon live lag de manière répétée ou à l'infini
Vry: Moi ça va, je ne compte plus le nombre d'onglets que j'ai et ça tourne ! :)
Vry: Par contre mon bot il ne veut rien savoir ....
Ylec: salut, moi je suis loin du legend ! Je cherche juste a passer gold deja :)
Vry: +1 Ylec
Oioi: +1 :(
Stilgart: BlaiseEbuth: j'utilise "vimperator" pour ça
Stilgart: évidemment, comme vimperator ça existe plus depuis que mozilla a tout pété firefox, il faut remplacer par un erzatz
dbdr: tiens Agade #3
Stilgart: j'ai tridactyl sur cette machine là
BlaiseEbuth: Je vais regarder. Merci !
Stilgart: je te préviens, ces extentions c'est pour basculer en mode vim à la base
BlaiseEbuth: J'ai vu, c'est cool ^^
Stilgart: mais ça te permet de définir des search engines, voire carrément des fonctions avec du code js
Stilgart: tiens, c'est quoi cette perte de points louche en multi aujourd'hui ???
BlaiseEbuth: Bah coif
Stilgart: ha mais j'ai vraiment rien suivi
Stilgart: c'est quoi le soucis de coif ?
JBM: c'est le stagiaire, il a drop la db de coif
BlaiseEbuth: voilà
JBM: alors ils rerun tout depuis wood-6
Stilgart: genre ils ont pas de backup ?
JBM: j'ai pas de preuve en ce sens
BlaiseEbuth: A priori si.
JBM: de toute manière ils feront pas de postmortem dont tout le monde puisse profiter
JBM: encore, la au moins on a un message de julien qui reconnait les faits
JBM: pour ooc je pense meme pas qu'on y avait eu droit
Stilgart: wait... il faut que je checke ooc aussi ???
b0n5a1: hein, c'est quoi le délire COIF ?
b0n5a1: tain je suis wood3 !?!
UmeHearts: Bon j'etait en train de check pour faire le contest en bash
UmeHearts: mais quelle plaie ce truc
[CG]Thibaud: on a mis à jour le jeu pour virer une référence au site de Azke, sauf qu'on a fait une mauvaise manip et ça a détruit l'arène
Cousnouf: youpi j'ai changé de tête...
Stilgart: et donc mon bot est wood3 parce qu'il s'est fait marché dessus par la légende en rerun ?
b0n5a1: lol
[CG]Thibaud: il est juste plus dans l'arène je crois
Stilgart: ça m'apprendra à pas être légende partout tient :)
Stilgart: il était wood3
Stilgart: je viens de resoumettre
[CG]Thibaud: Julien va remettre tous les bots là où ils devraient être
b0n5a1: pareil Stilgart je suis derrière toi entrain de monter là
[CG]Thibaud: ça sert à rien
b0n5a1: ok
Stilgart: si, à voir si on peut gratter de l'XP :D
[CG]Thibaud: juste à prendre de la bande passante sur le challenge
[CG]Thibaud: https://www.codingame.com/forum/t/community-puzzle-a-code-of-ice-and-fire/107292/16
Stilgart: en vrai, je couperais bien à wood2, mais ça je peux pas
b0n5a1: ouais enfin c'est pas la BP qui crée les timeouts chelous non plus hein...
Stilgart: réponse, CG a géré ça
Stilgart: pas de free XP
Traquila: Vous me dites que l'on peut faire les chalenges terminés mais je ne vois pas comment.
Stilgart: section bot programing
b0n5a1: bot programming Traquila
Stilgart: compete -> bot programming
Stilgart: pour etre ptécis
b0n5a1: ha tien Stilgart je te vois sans avatar et sans nick là
b0n5a1: paf refresh...
Traquila: mon CG est en francais :p
AdrDer: Hello! est-ce qu'il y a des personnes qui utile le langage python pour le challenge d'automne?
b0n5a1: AdrDer plus de 1900 oui : https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global?column=LANGUAGE&value=Python3
Traquila: b0n5a1 , Stilgart, trouvé merci pour l'info
AdrDer: C'est pour poser une question à propos des références. Je gère un contexte et fais beaucoup de copie d'objet pour les déréférencer... ça me prend un temps monstrueux (3/4 de l'execution). La question est de savoir si quelqu'un à des tips pour gérer autrement ce problème de référence?
Stilgart: b0n5a1: tu m'éclaterais pas un tout petit peu sur coif toi ? :)
Stilgart: ha non, c'est juste que ton score monte plus vite que le mien :/
b0n5a1: j'en sais rien, j'étais pas allé loin de mémoire Stilgart, et j'ai pas regardé juste submit le code et fermé la page
Bob: AdrDer: je suis pas sûr d'avoir bien compris ta question ?
Von-Karma: Hello, on peut repeter un sort meme si on a pas les ressources pour le repeat ?
Kirbiby: bah ... non
Kirbiby: Si tu as les ressources pour le caster 1 fois et que tu demandes de le caster 2 fois, le referee te mettra cast invalide
Kirbiby: et tu auras perdu 1 tour pour rien malheureusement
Bob: ou heureusement pour le gars d'en face :p
Von-Karma: ah non autant pour moi
Von-Karma: j'avais mal compté désolé
R4N4R4M4: Hello les gens
Von-Karma: aveuglé par la rage de me faire battre :p
egaetan: Quoi FantasticBits ?
egaetan: je viens de rejoindre Bois de FB ?
dbdr: poussé? :D
egaetan: je viens de recevoir la notif
dbdr: ou la contagion s'étend depuis coif
Zanbez: gg egaetan
Neumann: lol
dbdr: tiens 351062
Bob: ah vous aussi ?
Bob: mais lol quoi
dbdr: promo Fantastic Bits moi aussi :D
Neumann: Je suis encore Legend pourtant sur le multi
Neumann: Fake notif
dbdr: 25XP sur FB
dbdr: fantastic bits
[CG]jupoulton2: Je viens de finir de réparer coif
dbdr: :+1:
dbdr: c'est quoi le prochain? ;)
[CG]jupoulton2: à priori les rankings sont redevenus ce qu'ils étaient en début de semaine
dbdr: et qu'est-ce qui s'est passé?
domak: si je dis "j'étais passé Legend hier soi", ça a une chance de passer? ;-)
[CG]jupoulton2: un bug dans l'interface chaise-clavier chez moi
dbdr: ça arrive :)
[CG]SaiksyApo: Oui domak, tu as toujours ton code, il te suffit de resubmit :)
[CG]SaiksyApo: Tu repasseras légende sans soucis si tu le mérites !
domak: vous êtes pas drôles
domak: C'est [CG]Thibaud qui va faire la gueule, il était passé Legend en apparaissant miraculement en gold
dbdr: TIL CG fait des backups :)
domak: celui là il est anthologique: https://www.codingame.com/share-replay/506875748
domak: on fabrique en même temps des potions différentes pour finir au même score...
Oioi: Enorme :-)
Oioi: En fait, il n'y a que la première potion qui soit différente
domak: exact, je m'étais arrêté là, bien vu
Leirn: Bonjour. J'essaie de faire ma première contribution. Mais lorsque je fais "test dans l'ide", il me met une erreur 563 "invalid stub generator", alors que pourtant dans le formulaire il me génère le stub sans problème... Vous savez ce que signifie ce code ?
dbdr: non :(
dbdr: Mazelcop, quoi de neuf?
Mazelcop: j'essaie de comprendre ce qu'il faut learn pour gagner
Mazelcop: sans trop de succès
Julius2k17: car là tu learn pas tu fais juste les meilleurs combos ?
dbdr: je pense que ça dépend de plein de trucs, dont les combis pas encore revellées
Mazelcop: ouais, réussir à gérer le random des spells et potions futures est pas simple
egaetan: oui les premiers tours où on n'a pas la seed sont chauds
dbdr: ^
PhOeNyX: Coucou
Bob: hey
PhOeNyX: Je commence à code. :D
Bon[]Crayon: :wave_tone2:
Bob: vas-y, moi je bouge pas
PhOeNyX: T'es où à ne pas bouger ?
PhOeNyX: 287 silver
PhOeNyX: tu penses passer gold tantôt ?
Bob: j'aimerais bien
PhOeNyX: Mais ?
Bob: j'ai un code qui arrive vers ~30
Bob: mais je ne sais pas trop quoi y rajouter à part tenter de simuler un chemin pour l'adversaire et simuler le mien en fonction
dbdr: ôte le frein à main
Bob: quand je rajoute le learn dans le BFS, c'est moins bon
Bob: à part si j'ai un gros bug qui tache, je ne m'explique pas pourquoi
dbdr: ben il va moins loin pe?
JBM: s/pe/a peu pres obligatoirement/
Bob: même pas spécialement
MehdiNECIB: Salut j'ai besoin d'aide
MehdiNECIB: Quelqu'un peut m'aider ?
Bob: enfin si, sans doute
Bob: mais il trouve toujours des choses à depth 8, ce qui n'est quand même pas si pourri
Bob: MehdiNECIB: ça dépend de ce qu'il te faut
BlaiseEbuth: Moi il me faut à manger.
MehdiNECIB: Ah non c'est bon, parfait :)
lhm: tu as peut être un bug effectivement Bob, peut être que le Learn est mal implémenté ?
Bob: possible
Bob: avec la totalité des learn, c'est clair que je ne gère pas les changements de coût et tax
Bob: mais même avec juste le learn 0, c'est pas mieux
Vry: Je viens de sortir faire les courses ... j'ai découvert la vie ... :nerd:
lhm: Après perso je ne fais aucun learn dans mon bfs donc cest pas obligatoire pour passer gold
Vry: Je crois que je me suis un peu trop investi sur le contest !
lhm: haha
dbdr: Vry, ça veut dire quoi sortir, vie, ...?
Bob: lhm : ben oui, du coup je vois pas trop ce qui me manque
BlaiseEbuth: C'est "sortir" que je comprends pas moi...
Bob: peut-être quelque chose à changer dans l'estimation du "meilleur" état
lhm: Bob peut etre le choix de la potion est pas bon ? Ta métrique de selection est peut etre foireuse ?
Bob: ben j'ai pas de sélection, en tant que tel
lhm: comment tu choisis une potion plutot qu'une autre ?
Bob: mon bfs inclut les 5 brews et essaye de maximiser le score
Bob: donc la meilleure combo devrait émerger toute seule
Vry: Bob j'ai testé ton idée : ne pas chercher un sort que l'adversaire peut faire avant moi ... malheureusement ça ne fonctionne pas au top avec mon BFS actuel ... bizarre !
Bob: à part que je ne gère pas les ajustements de bonus
xurei: Vry j'ai testé aussi ca marche bof
dbdr: Vry pour moi non plus. c'est peut-etre trop conservateur
xurei: mon hypothèse c'est que le player peut faire trop de chemins différents
xurei: donc ton algo bloque parce qu'il peut aller plus vite que toi pour tout, mais pas tous les tours
dbdr: bon, on dirait que 0.98 c'est clairement mieux que 1.0 :)
MehdiNECIB: "Attention : votre code n'a pas lu toutes les données disponibles depuis l'entrée standard avant d'avoir écrit sur la sortie standard. Ceci cause une désynchronisation qui peut entraîner des comportements inattendus." qu'est-ce que cela veut dire ?
mymik: essaie juste une action a la fois
Bob: MehdiNECIB: ça veut généralement dire que tu écris trop d'actions par tour
dbdr: ah t'es bien remonté egaetan!
CopperFr: Ca veut dire que ton code n'a pas lu toutes les données disponibles depuis l'entrée standard avant d'avoir écrit sur la sortie standard. Ceci cause une désynchronisation qui peut entraîner des comportements inattendus.
egaetan: dbdr pas assez
MehdiNECIB: Donc j'écris trop de code pour rien alors
dbdr: limite
Bob: c'est pas "trop de code"
dbdr: enfin j'espère :)
Bon[]Crayon: CopperFr C'est vraiment un bot qui reprend les messages du chat.
Bob: c'est "trop d'output"
egaetan: dbdr, non toi tu es limite, moi je suis out
MehdiNECIB: bob, et c'est grave ça ,
CopperFr: et qui fait des sondages aussi
Bob: ben oui
Bob: chaque commande que tu envoies, pour le moteur de CG c'est un tour de jeu
dbdr: bon faut compter avec 2-3 gugus qui font se placer vers 16-17h...
dbdr: *vont
Bob: si tu en écris deux dans un seul tour, tu joues deux coups au lieu d'un
BlaiseEbuth: ach dbdr
egaetan: et defoncer le classement instable
CopperFr: des gugus ?
Bob: donc tu prends un tour d'avance sur les inputs que tu vas recevoir au tour d'après
dbdr: et hop, t'es devant egaetan :D
egaetan: oh dbdr comment je t'ai pourri !
egaetan: STOP the contest
dbdr: :P
Bob: du coup ton code fait des trucs qui ne correspondent plus à la réalité
MehdiNECIB: J'ai compris c'que tu me dis
dbdr: c'est CsirpCsirp et RiSuS qui me pourrissent sourtout
MehdiNECIB: mais la, concretement par exemple c'est quoi le probleme ? Sachant que c'est la 1ere fois que j'essaye ce site
MehdiNECIB: http://chat.codingame.com/pastebin/a64a4a83-4b2b-4f5a-81d7-07afbb878409
egaetan: si j'ai de la chxxxx
BlaiseEbuth: chance ?
egaetan: oui BlaiseEbuth
b0n5a1: choucroute
Bob: MehdiNECIB: ben là par exemple tu fais un print pour chaque itération du for
Bob: alors qu'il faut un seul print par itération du while qui est au niveau du dessus
Bob: donc en fait tu envoies 8 commandes par tour au lieu d'une
MehdiNECIB: Je vois le concept
egaetan: il est 1.2 devant moi le suivant, c'est mort
MehdiNECIB: Faut que j'me mette en tête que c'est le programme qui renouvelle mon code tout seul, et pas moi qui doit le faire
MehdiNECIB: Moi je fais le code pour un seul tour
egaetan: va encore falloir coder
MehdiNECIB: Merci beaucoup bob !!!
Bob: hm d'ailleurs le Scanner devrait sans doute être à l'intérieur du while
MehdiNECIB: C'est le code de base, j'ai pas trop voulu toucher
Bob: sinon tu ne lis pas l'input à chaque tour, mais une seule fois tout au début
Vry: Bon apétit !
Bob: enfin il vaut mieux effectivement partir du code de base (tu as un bouton en haut à droite de l'éditeur pour le remettre)
Bob: et surtout ne pas déplacer le code qui fait la lecture des inputs
Bob: ni celui qui fait l'output des commandes
Vry: Mon seul espoir pour ce contest c'est mon futur BFSminmax ... un bfs qui gère les deux joueurs et génère l'arbe et deux fonctions min/max qui me donnent le meilleur coup ... (avec le hash du bfs qui fait son taf) ...
Bob: (au moins dans un premier temps, une fois que tu as bien compris comment le truc s'agence, tu peux commencer à essayer de changer la manière de faire les outputs si ça te simplifie la vie)
MehdiNECIB: Je vois, j'vais d'abord garder ca comme ca comme tu dis, c'est mieux pour m'habituer
MehdiNECIB: Mias c'est vrai que une maniere de faaire différente que d'ahbitude
MehdiNECIB: Ducoup ca rend la chose plus complexe
Bob: ça demande un petit temps d'adaptation
Bob: mais en gros ton programme ici c'est une boucle infinie (le while(true))
egaetan: dbdr t'es où ?
Bob: donc chaque itération correspond à un tour de jeu
dbdr: resub
egaetan: faut que je scroll ?
Vry: Toc toc toc Derrière toi ?
**egaetan profite de ces qqs minutes
Bob: à chaque tour tu as des inputs qui décrivent l'état en début de tour, et tu dois sortir une commande pour faire évoluer l'état
Vry: Vous êtes combien en Gold ?
dbdr: :P
dbdr: un peu embourbé
Mazelcop: 331
Vry: Ah quand même ...
Bob: le moteur lit ton output, calcule le nouvel état et te le renvoie en input pour le tour suivant
MehdiNECIB: Et ducoup lui il refait la boucle autant de fois qu'il y a input
xurei: Vry 18
xurei: 183*
Bob: tant qu'il y a de l'input, ton programme continue à tourner
Traquila: vous etes combien en or ?
Mazelcop: j'ose plus resubmit, c'est galère de monter le leaderboard
MehdiNECIB: D'accord, J'ai saisis
Bob: et si le moteur détermine que le jeu est terminé, c'est lui qui arrête ton programme
xurei: j'etais 100 hier soir, 180 mnt
xurei: sans changer
Traquila: combien de joueurs en or ?
xurei: 331
MehdiNECIB: Franchement tu m'a bien expliqué
Traquila: c'est fou ca, j'étais 227 quand ils ont coupé à 170
Traquila: et toujours argent :/
dbdr: c'etait pas 130?
Bob: MehdiNECIB: mais de rien
xurei: je tente un resubmit avec code identique
MehdiNECIB: Bon, ducoup la j'vais devoir passer du temps sur la 1ere question, pour faire en sorte de pas faire de boucle
MehdiNECIB: De pas repeter l'action plusieurs fois*
Bob: alors tu peux avoir besoin de faire une boucle, pour calculer ta commande
Bob: mais il faut un seul print à la fin
**egaetan va bloquer dbdr
dbdr: :P
dbdr: :no_mouth:
egaetan: aïe
dbdr: allez on coupe à #17 ;)
**egaetan va pleurer
dbdr: mais non mais non
egaetan: et ça va empirer
MehdiNECIB: Okayyy, ah bas parfait, j'ai enfin réussi
dbdr: on va te pousser
MehdiNECIB: Je vais prendre la main dans pas longtemps normalement
dbdr: #18 c'est vachement plus simple que #40 pour passer
dbdr: 17 meme ;)
egaetan: oui c'est vrai
egaetan: mais je serai plus serein plus haut
dbdr: qui ne le serait pas :)
Vry: Tout à fait !!! :p
JBM: plus vous vous battez, plus ce sera dur d'y entrer
JBM: attendez donc que le boss soit fixé
JBM: avant de monter le niveau
dbdr: oui, faudrait se mettre d'accord
dbdr: tout le monde à 5ms le vendredi
Vry: Ouais ! Parce qu'on voit bien le résultat en Silver ... Bossdorf ne laisse plus passer personne on se neutralise tous ... le prochain à réussir passe légende direct !
dbdr: ça vaut le coup du coup
Vry: Ce week-end, l'infra GC va chauffer ...
dbdr: le coût du cou?
dbdr: l'infra GC, beau lapsus :D
Vry: coucou !
dbdr: ils vont en collecter des détritus
dbdr: ou miettes, comme on veut
b0n5a1: :duck:
dbdr: what the :duck: b0n5a1?
b0n5a1: C'est Vry ... il fait des bruits qui attirent les canards
dbdr: yen a marre!
egaetan: laissez The_Duck derrière moi stp
dbdr: et hop passage à l'heure d'hiver, +4H
egaetan: Ah mais il est 18h
egaetan: c'est l'heure d'ouvrir
dbdr: pile
b0n5a1: à Budapest, ça se fait en pleine journée ça là bas dbdr ?
dbdr: yep
b0n5a1: marrant
b0n5a1: t'aarives au boulot à 14h00...1 min après c'est l'heure de rentrer...c'est beau ^^
cocoche007: Au chomage ?
BigUP: petite question les C++eurs, si je fais un char *[255]; mon programme v ame bouffer 255 caractères a chaque fois ou le programme reutilise l'espace ?
b0n5a1: non cocoche007 le coup du changement d'heure ^^
dbdr: BigUP c'est sur la pile
cocoche007: Tout dépend de la portée, non?
dbdr: c'est libéré en fin de fonction
Traquila: char * abc[255] ou char abc[255] déjà ?
BigUP: ok, donc j'ai pas besoin de bricoler avec un truc du genre static ou je ne sais quoi d'autre
BigUP: j'avais un doute merci :)
BigUP: char abc[255]; désolé, j'ai ajouté le * par habitude
cocoche007: Si tu fous ton tableau en dehors de tout, il sera accessible par tout ton programme
cocoche007: b0n5a1, chengement d'heure ? Tu as un mois de retard. En tout cas, moi, je dois rentrer pour aller travailler.
b0n5a1: cocoche007 : dbdr 01:58PM et hop passage à l'heure d'hiver, +4H
dbdr: c'est ton horloge ça
b0n5a1: http://chat.codingame.com/pastebin/78c062d1-4cb3-4987-8cd2-3d2d33d2fa0e
b0n5a1: t'as raté qq lignes cocoche007
BigUP: cocoche007, la c'est juste un buffer temporaire pour récupérer des messages via une socket, donc pas besoin que ce soit accessible de partout
cocoche007: b0n5a1 Pas fô
Traquila: Tu dialogues par socket entre tes bots ?
BigUP: Traquila, non une appli avec du wxSocket et du python
Traquila: beurrk wxsocket
cocoche007: C'est quoi alors sa portée, bloc, fonction, classe, namespace
BigUP: cocoche007, la je suis dans un bloc :
BigUP: case wxSOCKET_INPUT:
{ char buf[255]= {0};
cocoche007: OKI, il sera donc bien détruit en fin de bloc car allocation statique
BigUP: parfait ;)
Traquila: non ca va dans la pile avec l'appel de ta fonction. c'est la portée qui est au bloc
xurei: question java : ca vaut le coup de remplacer Scanner.nextInt() par autre chose ?
xurei: je me demande si c'est pas ca qui cause mes timeouts intempestifs
Bon[]Crayon: il y a le droit de créer une variable dans un bloc case ?
cocoche007: Oui, il faut bien mettre des {}
Bon[]Crayon: ok merci
b0n5a1: à ta place je sortirai la decl char[255] au dessus de ton qwitch BigUP
Warred: xurei je pense pas que le scanner provoque un timeout mais sinon il y a une autre méthode oui
Warred: BufferReader
OldJohn: cela existe encore wxwidget ?
PhOeNyX: Il se passe quoi si on a un Spell repeatable true, qu'on effectue la commande CAST (id de ce spell) 2 mais qu'on ne pouvait en fait le faire qu'une seule fois ?
Julius2k17: tu descends en wood 3
Warred: un sort répétable c'est pas juste une fois ?
sgalasso: Salut, si certains utilisent un dfs ou équivalent, vous arrivez à combien de depth max ?
BigUP: b0n5a1, c'est quoi le gain si je fais ca ?
b0n5a1: c'est pas une question de gain
BigUP: b0n5a1, c'est juste de la lisibilité ?
b0n5a1: non plus. tu vas potentiellement t'arracher les cheveux longtemps si tu fais une connerie avec
BigUP: mon buffer n'a de sens que dans le case que j'utilise
b0n5a1: comme tu veux...
BigUP: b0n5a1, j'essaye de comprendre le risque que je prend
b0n5a1: un peu compliqué à expliquer là
Traquila: Vous avez tous les deux raison :p
Traquila: le mettre dans le bloc explique bien que la portée est limitée au bloc et empeche de l'utiliser en dehors.
b0n5a1: les switch cases c'est un peu la merde derrière
BigUP: b0n5a1, la je suis dans une fonction d'evennement, les 2 evennement c'est "j'ai recu de la données", "j'ai été déconnecté", il ne devrait pas y avoir d'autres evennements
Traquila: Par contre, cacher des tableaux dans le code qui vont être alloués dans la pile, c'est pas génial
Traquila:
BigUP: Traquila, la le buffer, c'est clairement du jetable le temps de récupérer mes données
Traquila: Alors que si c'est en début de fonction on voit tout de suite tout ce que l'on a mis dans la pile
Traquila: C'est du jetable qui reste tout le temps de l'appel de ta fonction (et non du bloc)
b0n5a1: BigUP ce serait pas dans un switch case je dirais rien...tu peux avoir des blagues de merde dans ces blocs
Bob: h le chat est de retour
BigUP: ok, donc je colle mon buffer en début de fonction, ca me va aussi
cocoche007: Il y a deux écoles sur le sujet
BigUP: l'ancienne école C ou tout se déclarait en début de fonction, et la nouvelle ecole STL 11+ ou on peut déclarer ou on veut à n'importe quel moment ? ;)
Traquila: c'est exactement cela
BigUP: je suis assez ancienne école pour avoir fait pas mal de C, mais bon, j'essaye de me moderniser ;)
b0n5a1: osef...le switch case évite dans les cases, t'as pas idée de la balle dans le pied que tu peux te tirer avec
Warred: argumente bonsai stp ça m'intéresse ton raisonnement
Warred: je travaille bcp avec des switch en ce moment
JBM: ah mais ce bot est grave monté pendant mes réunions
egaetan: retourne en reunion JBM
Traquila: en fait c'est des goto déguisés, perso cela ne me pose pas problème mais il faut faire attention au fallthrough involontaires.
JBM: pendant que j'essayais (et échouais) de recopier mes cookies discord d'un pc a l'autre
Bob: comment es ta silver JBM
Bob: manque encore un point quand même
Bob: O/
Haashi: je me suis jamais servi d'un switch case
:flushed:
- point_right::point_left:
Traquila: c'est un peu plus lent mais cela raccourci le code, par exemple pour traiter les enums
Warred: Haashi souvent c'est pratique quand tu dois faire bcp de if, enfin moi je m'en sers comme ça
Bob: ah mais oui bien sûr si je dis à chaque début de bfs que tout est castable, bien sûr ça fait de la merde)
b0n5a1: le jour où t'oublieras des curly brackets (par exemple) tu verras
Haashi: c'est combien beaucoup ?
Haashi: effectivement il y a le cas des enums, mais ca reste encore rare
JBM: 90 matches dont 7 crashes pour assert
Warred: bah moi à partir de 4 if je mets un switch direct, bcp plus lisible en effet
JBM: c'est pas toujours transférable
Warred: je débute donc je regarde pas les perfs ni rien d'autre lol
b0n5a1: BigUP Warred je vous ai MP un exemple de piège à con
Haashi: donc sur un jeu avec des outputs UP, RIGHT , DOWN, LEFT tu partirais sur switch en fonction des directions ?
Traquila: un fallthrough involontaire ?
Bob: quand tu loupes un break en fin de case
b0n5a1: y'a pas que ça
Bob: et que tu exécutes le case d'après en prime
Warred: alors là bonsai tu m'as scié je pensais pas qu'en déclarant qque chose dans une case x: il pouvait se retrouver dans une case y:
Warred: même avec un break
b0n5a1: beaucoup "oublient" ce qui est généré derrière et pigent rien à ce qu'il leur attive quand ça part en c****
b0n5a1: c'est goto land
Warred: je croyais que chase case: était indépendant tant qu'on ajoutait des break
Warred: je sais pas si c'est spécifique au C++ tu me diras, moi j'apprends le Java
b0n5a1: je laisse maintenant imaginer toutes les merdes qui peuvent arriver avec ce char[255]
b0n5a1: j'ai un collègue qui s'est arraché les cheveux avec ça toute une journée, je suis venu, je l'ai sorti, réglé
b0n5a1: lag
Warred: *ne regarde plus son ami le switch du même oeil*
cocoche007: Je ne trouve pas de quoi caster afin de créer une flèche de lumière afin de défaire Bossdorf!!!
Vry: Bob, on se fait doublé par un gars qui a codé en Haskell ... :sweat_smile:
Vry: GG JBM ! :wink:
khealer: switch permet surtout d'avoir un code plus rapide. Le compilateur est capable d'optimiser les jumps ce qu'il ne fera pas avec une cascade de else if. Apres il y aura une différence si tu as 5+ conditions, sinon c'est négligeable.
JBM: Vry: eh, j'y suis pas encore hein
JBM: mais je suis pas à l'abri d'une poussette
Vry: Oui mais il ne te reste plus rien à faire ...
Vry: Oh un ThomasNicoullaud ...
351062: Nice hiding ThomasNicoullaud
Vry: JBM c'est quoi les codes que tu affiches ? Ça a un sens ?
ThomasNicoullaud: Je suis a peine dans le top 100 je crois
egaetan: Oo ThomasNicoullaud
Haashi: a peine
ThomasNicoullaud: on va voir :)
Neumann: Quelle attitude de pleutre, une fois de plus
Vry: Ok merci
egaetan: ThomasNicoullaud on n'apprécie pas
Haashi: les mots sont très durs
Neumann: C'est lequel ton smurf ?
JBM: dont j'aimerais bien qu'il passe à T de temps en temps mais j'ai un autre bug latent
ThomasNicoullaud: je suis derrière vous messieurs vous enflamez pas :)
Vry: JBM ... donc si mon bot est coincé ici-bas ce n'est pas un problème de perf.
JBM: bah je me chie peut-etre sur la somme
Warred: khealer oui le switch me faisait penser aux JMP en ASM ou aux GOTO du basic, le code ramene directement où on lui demande plutôt que faire toutes les vérifications des 'if' successifs
Warred: quoique ça doit quand même vérifier en fait :s
CopperFr: tu peux utiliser une jumptable pour un switch
dbdr: tiens un ThomasNicoullaud. tu hidais?
b0n5a1: Warred : https://godbolt.org/
egaetan: oui ThomasNicoullaud il hiddait
Vry: GG ThomasNicoullaud ! Tu as quoi comme algo de recherche ?
b0n5a1: t'auras l'assembleur équivalent
dbdr: quel scandale!
ThomasNicoullaud: comme tout le monde
ThomasNicoullaud: :D
dbdr: le hiding c'est pour les faibles
Neumann: Je trouve pas ton smurf, tu l'as rename ?
ThomasNicoullaud: je hide tellement j'ai des bonnes idées :joy:
ThomasNicoullaud: j'étais pas loin, de toi Neumann, juste triste de pas pouvoir vous parler
ThomasNicoullaud: gg ton stream egaetan
ThomasNicoullaud: c'était une chouette initiative
egaetan: thx ThomasNicoullaud
Haashi: comme tout le monde c'est a dire ?
egaetan: la prochaine fois je chercherais plus d'interactivité
Haashi: bfs ? :)
ThomasNicoullaud: exact Haashi
Haashi: avec prise en compte de l'adversaire ?
ThomasNicoullaud: avec un eval qui tiens sur une ligne
ThomasNicoullaud: non pas encore
Haashi: ah ouais ?
Haashi: wtf
Haashi: l'eval c'est a base de score + ingredients ?
LoganWlv: Petite question est-ce que les sorts ont toujours le même actionId ?
ThomasNicoullaud: oui, mais j'ai l'impression que les ingrediens c'est anecdotique dans mon cas
Ridakz: tous sauf ceux que tu apprends
Vry: Mais comment vous faites tous avec vos BFS ... le mien il ne veut rien savoir !
Ridakz: apres le learn l'id change
ThomasNicoullaud: il faut travailler tes coupes
Neumann: J'avais pas vu la percée de Jeff06 aussi
ThomasNicoullaud: et t'assurer que t'as pas de bug
ThomasNicoullaud: j'ai mis 3 jours a corriger un bug du moteur
Haashi: ThomasNicoullaud, combien de depth ?
ThomasNicoullaud: pas des masses
ThomasNicoullaud: entre 8 et 14 en moyenne
Vry: Tu prends en compte l'adversaire du coup ?
ThomasNicoullaud: non
Haashi: je sais pas ce qui est le mieux entre améliorer mon bfs pour aller voir plus loin
Haashi: ou alors rajouter la prise en compte de l'adversaire
ThomasNicoullaud: je sais pas si c'est utile d'aller voir depth 20 sans prendre en compte l'adversaire
Vry: Ok, donc BFS sans l'adversaire j'ai ...
Haashi: pour la prise en compte de l'adversaire, je comptais faire une premiere bfs pour savoir en combien de coup l'adversaire peut avoir chaque potion
Vry: ... il faut que je revois la prise de décision alors !
Haashi: et appliqué un malus en terme de score a cette potion
ThomasNicoullaud: j'ai essayé c'était pas très probant
ThomasNicoullaud: mais peut etre que je l'ai mal fait
Haashi: ah ?
Vry: Haashi, j'ai essayé ça et ça ne donne rien ... mais j'ai dû louper un truc
ThomasNicoullaud: imo c'est les fin de partie qui font la diff maintenant
dbdr: pas probant pour moi non plus
ThomasNicoullaud: savoir quand tu gagnes ou quand tu perds une dizaine de tour avant la fin
Haashi: ThomasNicoullaud
Haashi: t'as utilisé le chiffre magique ? 5 learn en early ?
Neumann: Combien de coups en 50ms ThomasNicoullaud ?
ThomasNicoullaud: re ?
ThomasNicoullaud: 21k et toi ?
egaetan: oh le petit bras
ThomasNicoullaud: j'ai une structure de données moisies
Haashi: bon
Haashi: merci tu me redonnes du courage
ThomasNicoullaud: par contre ... j'en jette 100k
Vry: Voilà, parce que moins j'ai 200k coups bordel ...
Haashi: ton eval de score, tu le pondères en fonction du tour ?
ThomasNicoullaud: http://chat.codingame.com/pastebin/fe5dc317-a74d-4354-8d90-b8083f13d34b
dbdr: la fameuese depth 118
ThomasNicoullaud: voila mes stats
ThomasNicoullaud: hey Neumann et toi donc ?
Neumann: Ca fait 120k coups simulés donc, ThomasNicoullaud
Vry: http://chat.codingame.com/pastebin/e3b0d74e-bb40-4779-9981-498c6e51d4dc
ThomasNicoullaud: oui Neumann exact
Kirbiby: oui faut les compter quand même
Kirbiby: J'ai les mêmes chiffres
Kirbiby: mais 300 places de moins muhaha
Neumann: J'ai à peu près pareil
ThomasNicoullaud: t'as opti ta data a 100% ?
Neumann: J'ai rien opti
ThomasNicoullaud: j'ai un bitboard pour l'inventaire uniquement
Neumann: J'ai passé 2 jours sur un full rewrite et j'ai tout jeté à la poubelle
ThomasNicoullaud: j'ai encore des tableau[4] pour tout le reste
Kirbiby: Chez moi pareil, bitboard n'apporte rien
ThomasNicoullaud: et Bord** j'ai galéré pour les multi casts pour pas éclater les perfs
ThomasNicoullaud: Maintenant il faut que je gère les fin de partie je track meme pas l'inventaire ni le score de l'adversaire :D
Neumann: Y'a quoi de magique à faire la dessus ?
ThomasNicoullaud: j'en sais rien mais mes 1er implémentation me faisait perdre 30% de perfs
ThomasNicoullaud: je faisais pas les ajouts de nouveaux nodes au bon endroit
YannT: Neumann: I feel you ce soir je fais un dernier essai pour faire performer mon rewrite et si ça marche pas ce sera poubelle aussi
BlaiseEbuth: Reuh
Neumann: Vous pensez que Errichto va renommer son stream "Legend League" de dimanche en "Silver League" ?
JBM: en tout cas il compte pas passer legende
egaetan: c'est vrai que c'est trompeur
Vry: Il va faire un stream ou il l'a déjà fait ?
JBM: il en a fait 2 et planifie un 3e
BlaiseEbuth: Et il est silver ?
egaetan: il cause beaucoup
egaetan: moins que l'americiane que je n'ai jamais vu coder une ligne, mais qaund meme
b0n5a1: ha celle de ce matin et de hier soir ?
Vry: Il a expliqué comment faire un BFS qui donnent de bons résultats ? :upside_down:
Vry: *donne
b0n5a1: avec des moustaches de chat et des étoiles...
Simon21: s'il est en silver je dirais que non...
egaetan: il faisait un dp je crois
BlaiseEbuth: Kawai!
Simon21: je crois qu'il n'a pas fait de bfs en fait
JBM: il lui faudra pas 2h s'il s'y met
Simon21: oui je confirme je crois qu'il a fait un dp
Traquila: Bon j'arrive à monter 40 mais pas à me battre contre le boss ...
Simon21: mais je ne sais pas ce qu'est un dp...
Vry: Bon j'ai besoin d'un conseil car je ne vais pas avoir beaucoup de temps ce week-end ... 1. Est-ce que je m'acharne sur mon BFS 2. Est-ce que je continue sur mon min/max ?
BlaiseEbuth: C'est pas pour les enfants Simon21
Bob: traquila, je sympathise
Vry: Moi aussi Traquila mais d'un peu plus loins ...
Neumann: BFS Vry
Simon21: haha promis je dirais rien aux petits jeunes ;-)
JBM: c'est en train de ramer, c'est pas que moi?
BlaiseEbuth: si
ThomasNicoullaud: bon cette histoire de seed ca marche vraiment ?
JBM: j'ai des timeouts hors de ma recherche de bug
Bob: bon je vois juste pas ce que je peux rajouter et que je n'ai pas déjà essayé
Bob: des ifs, j'ai déjà essayé
Vry: Ok Neumann ... BFS il faut "juste" que je trouve comment obtenir le bon chemin !
BlaiseEbuth: Simon21 : bah j'ai juste l'esprit mal placé, en terme d'algo la signifiaction me viens pas là... :thinking:
Traquila: La clé c'est multi potion, mais je ne vois pas comment l'implémenter
JBM: ah, ca y est, une reproduction
Bob: la reproduction même en dp ça reste possible
Bob: :no_mouth:
BlaiseEbuth: oui
JBM: Bonuses {bnThree = 0, bnOne = 2}6 2 0 0 512 0 1 0 56Bonuses {bnThree = 1, bnOne = 2}Bonuses {bnThree = 0, bnOne = 2}
b0n5a1: mais faut pas demander qui est le père...
Bob: ça dépend d'exactement quel genre de dp onn parle
Bob: bon faut qu'on arrête, on afit mourir le chat avec nos monstruosités
JBM: je veux bien que quand on prend un bonus a 2, ma simu obsolete se rate d'un
JBM: mais dans ce cas je veux assert failed
JBM: pas "potion has wrong price"
Simon21: dp c'est pour dynamic programming? mais c'est pas un algo en soi, faut l'appliquer sur un algo (genre BFS) non?
Bob: c'est un autre type d'algo de recherche de la meilleure solution
Bob: à un problème donné
JBM: ah mais ok asserts sont désactivées quand y'a les optims
JBM: ben on va les remettre pour le moment ^^
Simon21: ah oui effectivement. ma compréhension du dp était erronée
Simon21: en fait j'ai confondu avec memoization
dwarfie: 6666 personnes classées ... très BlaiseEbuthien
BlaiseEbuth: :ok_hand:
Bob: :cllap:
BlaiseEbuth: Mon avènement est proche ! :imp:
Bob: la prophétie l'avait annoncé !
dbdr: du coup, o ferme les entrées et on ouvre la légende et puis basta
YannT: pour légende on peut prendre le top90 comme ça j'ai pas à bosser? merci par avance
Simon21: ah mais c'est aujourd'hui l'ouverture de la legende! je me croyais jeudi
Bob: si on en est là, on peut pas nerfer le boss silver de 2 points ? :)
SeebOmega: YannT ils vont en parler au cheval
Simon21: enfin j'en suis loin encore...
dbdr: YannT pour passer légende en dessous du top 20, c'est comme pour le girmmoire: il faut payer à tous ceux au-dessus de toi
YannT: me fache pas sinon je code et je grimpe au classement oh
dbdr: quel pingre!
YannT: (ou je descend, difficile de prévoir à l'avance)
dbdr: tout ça pour pas payer
dbdr: difficile de prévoir, surtout à l'avance
YannT: you mileage may vary
b0n5a1: ça vient doucement JBM
JBM: oh je compte pas qu'il se passe grand chose avant de submit
JBM: maintenant que j'ai pigé que je tournais sans asserts, j'en ai un paquet à peaufiner
BlaiseEbuth: assert(win)
Traquila: assert(p = new obj()); Le truc qui te fait crash en release uniquement :)
Bob: pas moyen de gagner un match contre le boss
Bob: bonn en même temps comme y a pas non plus moyen de s'en approcher...
Traquila: lol
b0n5a1: Traquila ou pas... typiquement ça ça passe : https://onlinegdb.com/ByR8Wwr5v
b0n5a1: (t'ajoutes une donnée membre et ça pètera)
b0n5a1: bon ton ssert en release dégage ok
Traquila: oui je sais :)
b0n5a1: mais cette merde passe ^^
Traquila: tu as le droit null->
Traquila: même avec un membre
Traquila: si tu ne l'utilise pas
dbdr: aie aie aie ça droppe :(
dbdr: presque aussi bas que egaetan
**egaetan grrrr
egaetan: une place ...
dbdr: resub donc
egaetan: il sont comment les sub en ce moment ?
Traquila: rapide
Traquila: genre 5mn
Bob: oui ça va assez vite
Bob: ça va juste pas assez haut T_T
Traquila: tout pareil ^^
Bob: bon cette version-ci gagne contre le boss
Bob: y a plus qu'à arriver près de lui
Bob: sérieux j'ai 95 % de win sur le boss dans l'ide
Traquila: pas mal
Bob: mon royaume pour une accroche au top 10
BlaiseEbuth: Mais le boss hide
CopperFr: t'as un royaume Bob ???
Bob: mon dieu oui
dbdr: Bob a un Realm
Bob: \o/
JBM: ha ha les matches contre le boss font crasher mon monitor
Bob: touchage de bois
Bob: au-dessus
Bob: on tient le bon bout
PhOeNyX: Youhou, j'ai fini mon implem initiale de BFS, et actuellement, ça score à peine plus haut que mon heuristique
PhOeNyX: ROI bof bof pour l'instant, mais je suppose que c'est maintenant qu'on peut faire de la magie
Bob: PhOeNyX: t'es sur la bonne voie, mon premier BFS faisait pareil :D
xurei: vous visitez cmb de noeuds par tour environ ?
Bob: moi entre 700k et 1.2M mais je ne vire pas les doublons
[CG]SaiksyApo: Qui mérite la légende par ici?
xurei: 700k ??? waw
Paikan2068: Holy fucking shit, c'est énorme Bob
BlaiseEbuth: MOI
xurei: je flirte sous les 100k
JBM: ah mais t'es bien parti la bob
Bob: JBM oui
JBM: c'etait quoi ton ingrédient magique finalement?
Bob: gros indice de YannT ce matin
Bob: le decay c'est la clé
Haashi: decay ?
xurei: Bob https://www.codingame.com/share-replay/507075532
Haashi: c'est à dire
JBM: c'est pas bete, je le note pour quand j'en aurai besoin ^^
Bob: Haashi: les points que tu marques au tour 5 valent moins que ceux que tu gagnes au tour 1
Traquila: vry, je ne fais que passer, https://www.codingame.com/replay/507068377
CopperFr: 10k
Bob: parce que tu as plus d'incertitude dessus
Gronahak: genre les moves lointain sont incertains donc la valeur associée doit être plus faible
PhOeNyX: Mais Bob je t'en avais parlé de ça avant JBM
Haashi: Bob ah oui c'est ce que je demandais a thomas tout a l'heure
PhOeNyX: Le facteur de patience
JBM: enore que mon bot a pas l'air de vouloir remonter au bon niveau maintenant que je lui ai nettoyé ses crashes
Bob: donc on applique un facteur du genre 0.8^(depth-1)
Bob: c'est frai PhOeNyX
Haashi: ouais voila
Bob: vrai*
Haashi: merci Bob
JBM: mais moi je prétends pas lui en avoir parlé du tout
Bob: mais à ce moment-là je l'avais appliqué de travers
Gronahak: J'ai mis ça dans mon BFS depuis le début :(
Bob: et j'ai eu l'illumination pendant ma balade
CopperFr: je l'avais vu passer cette formule
PhOeNyX: Hum bizarre mon run, j'ai commencé par bien des loses 50/50 et maintenant depuis 75% je ne fais quasiment que des wins
Bob: mais la valeur qu'on lui donne c'est super important
CopperFr: la balade des gens heureux ?
Traquila: Bob, tu te fait défoncé lors du learn
xurei: Bob je crois que j'ai une meilleure estimation qu'un decay exponentiel
Bob: xurei c'est possible
Bob: là j'ai juste mis une expo
xurei: indice : on cherche à maximiser son SCORE et à finir le plus vite possible
PhOeNyX: En parlant du LEARN, en passant de heuristique à BFS j'ai réduit mon nombre de LEARN en dur de 8 à 5 sinon je timeout
CopperFr: un decay hyperbolique ?
PhOeNyX: J'ai quelques soucis de perf à régler
Bob: 1 point au-dessus du boss à 80 %, si ça passe pas je ragequit
Traquila: Bob, Tu dois travailler ton algo de LEarn regarde les tour 7 et 8
Gronahak: xD
PhOeNyX: En même temps, je duplique tous mes objets comme un porc
wendrul: le premier inv c'est le tien el le deuxieme celui de l'adversaire?
Bob: Traquila: pour le moment je fais du learn 0
Bob: j'ai zéro intuition sur le bon choix de learn
BlaiseEbuth: Le premier c'est le tiens pas le miens wendrul
Traquila: et tu es passé :)
domak: xurei c'est quoi du coup t'as quoi comme solution?
BlaiseEbuth: Bon. Finalement ils semble que "corrupted double-linked list" ça veuille dire "Stop ! A plus de place." ... :thinking:
wendrul: du coup par default le programe d'exemple parse celui de l'adversaire? mdr
xurei: domak secret de fabrication ^_^
CopperFr: allez stp
BlaiseEbuth: Le programme par défaut parse que dalle
domak: moi j'ai essayé avec un decay de 0.8 et 0.9 et les matches que je gagne d'un côté, perdent de l'autre
Haashi: partage ton secret
Bob: et il y a le 2e qui prie pour que je passe le boss sous lui
Traquila: gg bob
Bob: woot
Bob: merci :)
Gronahak: bien joué :)
xurei: GG
domak: gg
CopperFr: le secret le secret
Bob: facteur de decay à 0.9 sur le score des brew
CopperFr: 0.85 pour moi
Bob: je crois que j'ai aussi rajouté le transfert des bonus
Gronahak: j'étais à .75 on va essayer .9 ^^
xurei: perso j'additionne les scores au total et je divie par le tour du brew. Ca donne +- le même resultat
CopperFr: après ca consomme moins de cycles machines ?
xurei: oui
Gh0stm4chine: https://www.codingame.com/replay/507078450 c'est pas un bug ça ? quand je brew, le bot cast un +4, il devrait donc être gagnant ? ou y' a un privilège pour le joueur1 ?
xurei: mais Bob 700k noeuds ? j'en reviens pas
Bob: bof, la table d'expo tu la calcules une fois au début et après tu l'adresses avec la depth
xurei: Java <<< C++ :-P
Gronahak: @Gh0stm4chine les ingrédients non bleu rapportent 1 point chacun en fin de partie
CopperFr: y a du Java top 3 autant dire top 1 en C++ :D
xurei: je pense que mon devoir de week end va etre de passer en go
Bob: xurei : generated 955414 states in 35.055 ms
Bob: une valeur prise au pif dans l'IDE
BlaiseEbuth: Ca va être chiant à défaire tout ces noeuds...
Gh0stm4chine: Gronahak: ah c'est vrai les bleues c'est 0
Haashi: xurei go go
Gronahak: > Les joueurs gagnent 1 rubis pour chaque ingrédient de type 1 ou plus présent dans leur inventaire en fin de partie.
xurei: Bob t'as aussi des timeouts randoms ou pas ? je soupconne le GC de kick in de temps en temps...
Bob: non j'ai rien
xurei: mais en C++ ya pas de GC
xurei: mouais c'est la JVM qui suit plus
Bob: en revanche je suis à 35 ms, si j'essaye plus ça timeoute parfois
xurei: ouais idem, 30 moi
PhOeNyX: Les repeatable spells ça vous arrive souvent de pouvoir les cast 3 fois d'un coup ?
Bob: sais pas
Bob: j'essaye toutes les possibilités
xurei: phoenix oui
Gh0stm4chine: Phoenyx oui
CopperFr: ca m'ait jamais arrivé
xurei: j'ai deja vu un CAST à 6
xurei: c'est rare mais ca arrive
Bob: hey mais ça monte mid-gold en plus pour ce prix-là
cocoche007: Mais a-t-il vraiment été utile ?
Bob: woo hoo hoo
b0n5a1: ça peut que arriver avec un -truc +machin
Gh0stm4chine: @cocoche007 oui ^^ y'a des -3 verts qui permettent de remplir tout ton inventaire avec les autres ingrédients
b0n5a1: ou un +machin
Haashi: -3v ????
Haashi: enfaite c'est csb
xurei: Ouuh Bob est on fire !!
xurei: 118~50% c'est propre
Bob: #fireBob
domak: Bob, from silver to legend
Bob: n'exagérons pas non plus
domak: oui enfin plus de 200 places... magique ta dernière correction. Tu m'as enrhumé au passage
dbdr: egaetan a craqué
darkhorse64: Et quand on n'est pas arrivé à une potion, on score quoi ? La distance par rapport à la potion .
darkhorse64: ?
JBM: ça fait tout le contest qu'il a craqué
Haashi: c'est quoi ta distance du coup ?
Haashi: pour moi la distance elle existe que quand t'es arrivé
Haashi: apres tu peux faire une magouille en fonction du cout des ingredients
Haashi: mais avec les sorts c'est très peu précis
darkhorse64: Le nombre de tours pour y arriver avec les sorts de base par exemple
Bob: darkhorse64: normalement les potions tu en trouves au moins une sous 3-4 tours
Bob: c'est rarissime de ne pas arriver à une potion je pense
WhatTrickeryIsThis: la 5 fromages au debut i l faut 16 tours
darkhorse64: Oui, mais pas toutes.
WhatTrickeryIsThis: + 4 refresh
darkhorse64: Choisir de ne faire que les potions qu'on a trouvé, c'est sous optimal parce qu'on fait celles qui ne sont pas chères (j'approxime)
Bob: ça dépend
Bob: de comment tu cherches, essentiellement
WhatTrickeryIsThis: ceci étant quand tu as pas de potion en vue, autant stocker des fromages et des coquilles st jaqcues
Bob: mais a priori si tu as un BFS la question ne devrait même pas se poser
darkhorse64: Du coup, scorer les noeuds non terminaux, c'est intéressant
darkhorse64: Oui, j'ai un BFS
Bob: après ça dépend aussi un peu de ton catalogue de sorts
Bob: mais avec une dizaine de sorts en main, je pense que c'est juste pas possible qu'il te manque un chemin vers quelque potion que ce soit
WhatTrickeryIsThis: le bfs à l'air de suffir pour passer top 100, faut ruser par contre
Paikan2068: WhatTrickeryIsThis le bfs costaud quand même.... 1m noeuds en 50ms c'est costaud
Bob: 35ms
Paikan2068: Bob tu vas me faire pleurer haha
darkhorse64: Je soupconne que mon BFS est buggé parce que j'ai 450K noeuds / turn et il ne trouve pas toujours. Je n'ai pas de pruning et je m'arrête à la potion trouvée
Paikan2068: Je suis plus Python3 que C++, j'arriverai jamais à ces performances haha
Bob: alors oui je pense que tu dois avoir un souci darkhorse64
WhatTrickeryIsThis: faut pruner darkhorse
Paikan2068: Je peux le tenter en C++ mais je me fais pas confiance pour faire plus de 10k noeuds par tour haha
Gronahak: Woaw merci @Bob Changer mon decay_rate de .75 à .9 ==> j'ai gagné ~150 places o/
Bob: nice
WhatTrickeryIsThis: cast 1 - cast 2 te donne le même state que cast 2 cast 1 souvent
darkhorse64: Deux jours pour trouver. Sur ce contest, JS, Python et autres, c'est mort
WhatTrickeryIsThis: bfs, il se fait en 1h à peine ,tkt
YannT: oui sur ce contest c'est clair qu'on est plus sur de l'optimisation que sur des stratégie malignes j'ai l'impression
jfaixo: pour ma part le BFS traite 300k neouds, mais ca permet pas d'aller a plus de 5/6 coups de visibilité quand la partie avance, du coup faut avoir une fonction de coût et une stratégie d'achat des spells qui soient malignes, et c'est tricky a peaufiner...
Gronahak: Et avant ça j'avais gagné ~200 places grâce à EulerscheZahl qui m'avait fait remarquer que pour enchaîner les potions, il vaut mieux éviter les états où l'inventaire est complètement vide
Bob: jfaixo: perso j'ai zéro stratégie d'achat des spells
dbdr: effectivement Python #38 premier langage non compilié
jfaixo: croisage de doigt pour passer gold là allez ^^
Bob: je prends les 8 premiers en début de partie et c'est marre
dbdr: cette avalanche de C++...
jfaixo: c'est ce que fait le boss silver ca, prendre les 8 1ers ;)
Bob: c'est moi où il y a plein de Japonais ce coup-ci ?
Gronahak: @jfaixo pas exactement
YannT: on est sur un contest d'optim, y'a pas vraiment de stratégie et de toutes façons personnes sait faire les combos de 10 spells qui mène à une potion de tête donc bon
Bob: oui des fois il prend au-dessus
BlaiseEbuth: Wé ! "free() : invalide pointer" -> Aucun pointeur, et pas d'allocation dynamique dans mon code ! On arrête pas le progrès...
Gronahak: si y'a des sorts qui ne consomme pas du tout d'ingrédients en position 1 il les prends
Mazelcop: YannT je partage pas vraiment ce point de vue
BlaiseEbuth: Oui mais YannT partage son point de vue.
Bob: de toute façon y a qu'une seule part
Mazelcop: j'ai même pas de BFS dans mon code
WhatTrickeryIsThis: tu beam search toi, c'est pire
Mazelcop: ben c'est moins encombrant en perf
Kirbiby: si t'as un BFS tu as un beamsearch, qu'est ce que tu racontes
WhatTrickeryIsThis: moi je boom search en MC
Bob: beam search c'est pas "juste" un bfs avec un choix judicieux des coups à jouer ?
Kirbiby: pardon, dans l'autre sens
Mazelcop: oui, et du coup tu peux te limiter à envisager 10k nodes sur toute la partie
Mazelcop: donc ton beam search depth 40 tu le fais en 5 ms
Bob: ok
Bob: c'était pour dire qu'on n'a pas nécessairement un gros besoin de perfs
Bob: (?)
Mazelcop: voilà
WhatTrickeryIsThis: gaetan il pass le depth 30 sur son bfs
Bob: mais on est quand même sur un contest d'algo de recherche, essentiellement
Bob: je serais curieux de savoir où se situent les premiers en full heuristique
dbdr: WhatTrickeryIsThis sans pruning?
WhatTrickeryIsThis: si avec
BlaiseEbuth: Ouai... Ca manque de fow...
b0n5a1: si il prune
jfaixo: sans pruning c'est pas possible
BlaiseEbuth: stroi la prune
Mazelcop: oui, c'est sûr qu'il faut un minimum de recherche
jfaixo: ya trop de combinatoire
dbdr: pruner comment?
WhatTrickeryIsThis: du coups un bruteforce bien elager il fait quasi toute la game ^^
dwarfie: BlaiseEbuth ... tu vas voir la porte de tres pres si tu repalre de fow
dwarfie: reparle
dbdr: c'est pas un beam du coup?
Bob: et beam
WhatTrickeryIsThis: il prune en C, c'est tout ce que j'ai vu ^^
boumagik: un beam serait de taille constante
BlaiseEbuth: Quelle porte dwarfie ?
boumagik: fonction de tri des noeuds à un rang K
boumagik: qui sort un beam de taille fixe à n'importe quel rang
Bob: bon c'est cool j'ai atteint mon objectif
boumagik: nan ?
b0n5a1: dbdr entre autre détecter que +A-B suivi de +G-K est pareil que +G-K suivi de +A-B aven l'inventaire en cours
dwarfie: celle la :door: ... :)
b0n5a1: avec*
dbdr: oui, ça bien sur
Bob: je vais pouvoir passer le reste du week-end sur pikmin 3 au lieu de me prendre la tête à ragepusher pour passer le boss silver :D
BlaiseEbuth: Ah. Et fow ça zoom du coup ?
dbdr: je veux dire élaguer des coups "pas prometteurs"
dbdr: egaetan tu fais une recherche bfs complete?
egaetan: non
dbdr: tu élagues comment?
Bob: à la hache de combat
jfaixo: mdr @Bob, exactement pareil, je prie pour passer le silver, et si oui, j'arrête :P
WhatTrickeryIsThis: il a un truc d'etat qui compte learn/inventaire/ruppee
WhatTrickeryIsThis: une sorte de sauce
TitouanT: hey, je me connecte avec google sur codingame, y a moyen d'ajouter un email + mdp pour ne plus a se connecter avec ggl ?
WhatTrickeryIsThis: il met dans son bitset
BlaiseEbuth: Wé jette google TitouanT !
dbdr: ça c'est le hachage
TitouanT: s/a se/se
dbdr: ça reste complet d'oter les doublons
dbdr: *hashage :)
TitouanT: BlaiseEbuth c'est l'idee ouais :)
BlaiseEbuth: Tu peux utiliser la fonction de recup de mdp TitouanT
egaetan: dbdr j'élaqgues comme un sale
TitouanT: ah ok, je vais tester ca
TitouanT: parfait merci :)
Bob: bon je m'en tiens là pour ce soir
Bob: j'ai des potions plein la tête
Bob: merci à tous pour les conseils
darkhorse64: Une seule vraie potion: la bière
Bob: surtout PhOeNyX et YannT
Bob: darkhorse64: ça c'est au programme
NoZ-: :cry: #11 en silver
dbdr: arf j'ai un bug
egaetan: dbdr toi aussi ?
dbdr: :D
Vry: GG Bob , je note decay (que j'ai pas en effet) et réglage à 8 potion ... !
JBM: après les 118 tours, les 8 potions
Mator: Oh le #3 est en Java ! Joli
linxuhao: lol
linxuhao: Java tips : faut pas utiliser stream avec Java sur des petit collection pour performance
BlaiseEbuth: Java tips : faut pas utiliser java pour performance
linxuhao: :joy:
Mator: :D
Mator: Ben manifestement y'en a qui savent l'utiliser....
dwarfie: ah bon , y'en a qui savent faire des appels system avec ? ;)
Mator: Bon ben moi même en Rust je dépasserai pas le milieu de la ligue Or.....
Mator: Je vais me faire à l'idée je crois.....
Simon21: il est bizarre le classement quand même, quand je submit j'arrive à un classement X, et après je fais que gagner des places sans rien toucher (déjà 30 places en 2h) J'étais même monté à la 130eme place alors que mon submit d'hier était 200eme au départ
WhatTrickeryIsThis: Bon allez tu met le bosss Apo?
WhatTrickeryIsThis: gentil hein... comme ça t'aura les jouets à Noël
Vry: Il est là, #1 vous êtes trop nuls ... :p
WhatTrickeryIsThis: stream en java c'est l'antiperf incarné
Haashi: il y a 2 mots en trop au début de ta phrase
BlaiseEbuth: ^
Simon21: WhatTrickeryIsThis d'accord avec toi... et pourtant j'en connais qui soutiennent le contraire
WhatTrickeryIsThis: il est réveillé Apo?
WhatTrickeryIsThis: espérons qu'ils lui ont pas donné la viande rouge au goûter
WhatTrickeryIsThis: Ah lol
WhatTrickeryIsThis: c'est dbdr le boss en rust xD ?
dbdr: :angel:
egaetan: dbdr !? c'est quoi cette embrouille ?
dbdr: lol egaetan
egaetan: tu étais plus bas, tu as payé qqn ?
Haashi: gg les legendes
Kirbiby: ça & cuté à cb ?
Haashi: 18
dbdr: https://i.snipboard.io/CwsR0l.jpg
dbdr: c'est bien parti :D
dwarfie: bah l'essentiel c'est de bien finir
OldJohn: Bon plus que 200 places :-)
WhatTrickeryIsThis: je proposes une enquête avec Trump pour savoir si dbdr est corrompu
dbdr: :P
didyme: hello
domak: dbdr c'est bien qu'il y ait des ligues parce que vraiment on joue pas dans la même catégorie
dbdr: ?
dwarfie: WhatTrickeryIsThis ... possible , il a la meme moumoutte sur son avatar que trump ;)
WhatTrickeryIsThis: xD
VincentBab: Qui veux bien me pousser svp ? xD
dbdr: dwarfie: :nauseated_face:
**BlaiseEbuth slaps VincentBab around a bit with a large fishbot
dwarfie: VincentBab ... je veut bien , donne ton code d'abord :yum:
VincentBab: encore encore, ca a fait gagner 1 place :P
VincentBab: while(true) play_winning_move();
ThomasNicoullaud: ok
ThomasNicoullaud: 60 - 18 avec le me code :joy:
ThomasNicoullaud: ha mais y a 40 personnes du top 50 en run ok
VincentBab: aller je push un truc
Stilgart: bon, il va être temps de s'y remettre
Magus: ah ouai, 73 places derrière le boss
egaetan: ThomasNicoullaud ça va être infernal
Magus: va falloir se sortir les doigts du cul la ...
Stilgart: ça risque de pas suffire
egaetan: pourquoi tu as rangé tes doigts là
Magus ?
Magus: j'avais froid
**Stilgart trop crevé
351062: Le boss en Rust, ça veut dire qu'on pas jouer contre lui dans l'IDE parce qu'il tournera en mode debug ?
ThomasNicoullaud: ha mais non y a la gold ouverte -_-
cocoche007: Et même légende
Stilgart: en plus, le boss s'appelle même pas ganonboss
Stilgart: (╯°□°)╯︵ ┻━┻
YannT: ça veut dire que c'est dbdr lme boss ça :D
Stilgart: et puis je le bats en IDE... il est pas rust j'espère ?!
cocoche007: bossdork, c'est bien aussi
Magus: d'après le forum, RUST a été patché
Magus: c'est en release mode tout le temps
Magus: donc ça devrait être pareil entre l'IDE et l'arène
Neumann: Ah
BlaiseEbuth: Faut pas pousser, y'a déjà une triforce sur la table.
Neumann: Ok
Magus: et si c'est pas le cas ... bah CG vient de faire un méga fail
Neumann: dbdr : tu confirmes ?
Stilgart: mais ils ont pas fait ça ?!
Magus: bah d'ailleurs moi je bats pas le boss dans l'IDE :(
Stilgart: c'est vraiment un boss en rust
Magus: il a l'air de bien marcher
dbdr: oui, rust est en release maintenant
Stilgart: oui, après qqs tests, mon ratio est pas si bon que lors de ma 1re estimation
dbdr: Magus: bien sur qu'il marche bien ;)
Stilgart: après, je m'en suis toujours pas trop mal sorti contre dbdr
Stilgart: sur ce contest
JBM: ça va devenir très intéressant par rapport à C++ ^^
Stilgart: dbdr: bah, en IDE c'était pas gagné
dbdr: je suis curieux de voir si ça handicappe tant que ça en légende
dbdr: peut-etre moins sur ce contest, pas si strategique
VincentBab: qui est le boss du coup ?
dbdr: :no_mouth:
Stilgart: celui qui n'a pas de bouche
VincentBab: xD
Stilgart: bon, parlons peu, parlons bien
Stilgart: dbdr: c'est quoi déjà la backdoor pour que les gens de ta team gagne ? :D
dbdr: :no_mouth:
dbdr: mp
R4N4R4M4: Le Boss Gold est comment ?
egaetan: il a payé dbdr pour remonter avant l'ouverture en loucedé
Stilgart: R4N4R4M4: pas battable amha
VincentBab: tu fais 30 learn et la il timeout
dbdr: vous avez de la chance, j'ai trouvé un bug, pas corrigé en gold
BlaiseEbuth: (╯°□°)╯︵ qɐᗺʇuǝɔuıΛ
dbdr: enfin une faiblesse
Stilgart: dbdr: bah... sans bug on a aucune chance
BlaiseEbuth: VincentBabノ( º _ ºノ)
Stilgart: excellent :)
VincentBab: c'est bon j'ai trouvé le cheatcode, tu fais 3 REST, 3 LEARN, 3 REST, 3 LEARN et il timeout :)
VincentBab: et fleche du haut a la fin pardon
BlaiseEbuth: (╯°□°)╯︵ qɐᗺʇuǝɔuıΛ
JBM: qu'est-ce qui est excellent?
Stilgart: la macro de BlaiseEbuth
R4N4R4M4: BlaiseEbuth comment tu écris à l'envers ?
JBM: il a fait un stage en australie
BlaiseEbuth: Beh c'est pas encore une macro... ^^
R4N4R4M4: Il y est encore peut-être....
BlaiseEbuth: qɐᗺ︵ \(°□°)/ ︵ʇuǝɔuıΛ
dbdr: ya du monde sous le boss?
dbdr: toujours personne de poussé...
VincentBab: ca monte, ca monte
VincentBab: oh non j'ai perdu contre le boss :(
egaetan: feeder !
jolindien: tiens ThomasNicoullaud, t'es arrivé ?
jolindien: à la bourre comme toujours
jolindien: remarque c'est une tortue #1
Neumann: Il est pas à la bourre il était caché depuis le départ
Stilgart: Automaton2000 devrait apprendre, comme ça
dbdr: jolindien tu hidais?
Automaton2000: si t'as une simu ?
dbdr: #3 n légende
jolindien: nan nan, je suis lent c'est tout
jolindien: encore pleins de trucs à faire
R4N4R4M4: On a pas d'infos sur les timeout dans les Last Battles ?
R4N4R4M4: sans ouvrir le match je veux dire ...
VincentBab: Valgrowth et scolen passe ^^
Kirbiby: c bon tkt pas trop*
Neumann: R4N4R4M4: non
VincentBab: ah non peut être pas :O
Kirbiby: même si tu passes pas là tu le seras d'ici 30 min
VincentBab: ca redescend :(
Stilgart: :(
Stilgart: go go go VincentBab
WhatTrickeryIsThis: faut faire quoi avec l'urgency bonus?
Stilgart: faudrait que je le recode ça, tiens
Stilgart: sans doute moins chiant que de gérer l'adversaire
WhatTrickeryIsThis: si je comprends bien , c'est déjà ajouter dans le price
WhatTrickeryIsThis: suffit de rien faire avec alors?
Neumann: Une pot avec bonus terminée en même temps par les deux joueurs, elle consomme 1 ou 2 des 4 bonus ?
Mazelcop: sauf si tu veux le prendre en compte dans tes simus
Kirbiby: 2
Stilgart: WhatTrickeryIsThis: sauf que je lis plus vraiment les inputs :D
Stilgart: du coup, je perds l'info
Neumann: Kirbiby: thks
WhatTrickeryIsThis: genre tu prends la popo 0, lapopo 1 va prendre la place et gagnéra un bonus
egaetan: je l'ignore ce truc, j'ai essayé de le calculer, ça me prenait plus de temps que le bfs
WhatTrickeryIsThis: ::)
Stilgart: je pense l'ignorer aussi
Mazelcop: ça vaut le coup de le prendre en compte, mais c'est un cauchemar à gérer...
Stilgart: mais par contre, je pourrais quand même remettre que la popo 0 elle vaut +3
VincentBab: ca passe oas :(
NicolasH_42: le timer commence quand ? Je suis en rust et j'ai timeout sur timeout
egaetan: bazar qui a feeder le boss !
dbdr: miam
dbdr: NicolasH_42 après la lecture des entrées
didyme: kessaveudire feeder ?
788361: lui faire gagner des points
egaetan: demande à VincentBab
didyme: logique
Bob: en étant en-dessous et en perdant tous ses matches contre
WhatTrickeryIsThis: t'es pas cap VincentBob
Bob: (par exemple)
didyme: merci merci
Bob: WhatTrickeryIsThis: je suis capable de mettre l'urgencyBonus dans ma simu
WhatTrickeryIsThis: omg !
egaetan: que des méchants qui font ça
Bob: à part que je ne gère pas le nombre de bonus restants
WhatTrickeryIsThis: j'en ai codé des saloperies, mais le bonus...jamais!
dbdr: mon timer à 30ms ça va pas faire de mal aux serveurs :)
didyme: Confondre Pile et File pour le parcours en largeur : fait :white_check_mark:
NicolasH_42: @dbdr apres la derniere ligne ?
WhatTrickeryIsThis: pile c'est en profondeur du coups
dbdr: NicolasH_42 theoriquement la première, mais ça devrait faire très peu de différence
WhatTrickeryIsThis: dbdtrump
WhatTrickeryIsThis: il ressemeble à Trump en babouche
egaetan: WhatTrickeryIsThis lol
egaetan: et Paf Linky
smanu: bonjour
Bob: go go egaetan
smanu: j ai un soucis avec codeingame je ne peu pas cliquer sur le bouton 'on' pour utiliser l'editeur externe. HELP
VincentBab: pousse moi :P
egaetan: il est trop haut, VincentBab l'a trop nourri
WhatTrickeryIsThis: link404, ça devrait plus être contest503
BlaiseEbuth: qɐᗺ︵ \(°□°)/ ︵ʇuǝɔuıΛ
WhatTrickeryIsThis: bien joué Blaize
VincentBab: c'est faux ^^
smanu: j ai un soucis avec codeingame je ne peu pas cliquer sur le bouton 'on' pour utiliser l'editeur externe. HELP
Stilgart: BlaiseEbuth n'en peut plus, là
egaetan: ok VincentBab j'avais mal vu
BlaiseEbuth: Moi j'me chauffe, j'aurais 2h pour coder mon bot quand ils déploiront le fix clojure lundi matin à 8h...
Stilgart: c'est quoi le soucis avec clojure ?
WhatTrickeryIsThis: t'as raison, on continuera le contest quand on aura droit à Java 19
Bob: c'est quoi ce bouton pour éditeur externe ?
didyme: @smanu t'as éteint/rallumer l'ordinateur ?
dbdr: gogogo Linky!
Bob: j'ai pas ça chez moi
Neumann: Non.
WhatTrickeryIsThis: touche pas le bouton !
Bob: sinon, Ctrl-C Ctrl-V ça marche bien aussi
smanu: c est une blague eteindre l ordinateur t es serieux
BlaiseEbuth: timeout aléatoire t1 en arène +50% du temps Stilgart
smanu: L'erreur c : Error in event handler: TypeError: Cannot read property 'URL' of null
at chrome-extension
BlaiseEbuth: smanu, ça marche pas de base, ça dépends d'une extension
smanu: j ai l extension chrome
Bob: ah oui ok c'est l'extension
BlaiseEbuth: Et l'application ? de mémoire il faut les deux
Bob: je crois qu'il est l'heure d'aller remettre des bières au frais
Magus: mais attends c'est quoi ce bordel
Magus: je fais un erase sur un vector et il ne change pas de taille ?
dwarfie: remettre :thinking: ? il en reste ? ;)
smanu: c est quoi le soucis avec l extension ?
Kirbiby: tu erase vector.end() ?
BlaiseEbuth: lel
BlaiseEbuth: smanu tu dois aussi installer l'app
Magus: damned, je vide mal mes vecteurs pour les potions et les spells
Magus: et mon IA crois qu'ils sont toujours dispos après leur achat
smanu: installer l'app
smanu: je l install depuis ou ?
didyme: c'est con
BlaiseEbuth: smanu https://www.codingame.com/forum/t/codingame-sync-beta/614
Vry: lol Magus, est c'est Gold ce truc !
smanu: ok c est bon
smanu: maintenant ca fonctionne
Bob: Vry, t'en es où ?
BlaiseEbuth: Vry far...
smanu: merci
R4N4R4M4: Il est super fort le Boss !!!!
leojean890: c'te lose, ma meilleure version finit 450 silver :P
dbdr: R4N4R4M4 :blush:
leojean890: le boss gold c dbdr right ?
Bob: le decay, Vry, c'est la clé !
egaetan: bon, à mon tour d'essayer de feeder le boss
leojean890: moi le decay que je mettee 0.9 ou 0.8 ça change pas mon pbm:p
dbdr: BlaiseEbuth :clap:
R4N4R4M4: leojean je croyais que t'étais en Gold...
Bob: moche, leojean890
Bob: après faut l'appliquer comme il faut
leojean890: (qui est encore un pbm de perfs je pense^^)
Bob: ma première tentative c'était juste le gros échec
Mator: Le decay ??
leojean890: pourtant j'ai fait mon premier bitset de ma vie à xD
Magus: Vry: bah ouai je suis 50ème gold avec des bugs
Magus: j'ai toujours dit que c'était facile d'être gold
R4N4R4M4: Je suis à la croisée des chemins entre plusieurs stratégies possibles...
leojean890: R4N4R4M4 nah ça se passe moins bien que les 2 derniers contests là^^
dwarfie: men parle pas ... :(
leojean890: pareil strat de simu adversaire avant moi ou oas
leojean890: strat bfs pou viser les potions ou global
leojean890: pour*
leojean890: j'ai un code pour chaque^^
Bob: 8 learn 0 + bfs bourrin brew + cast pour viser le meilleur score
leojean890: enfin mon bitset c'est juste castable et repeatable en vrai là^^
Bob: repeatable c'est fixe, tu peux le virer
leojean890: (je l'ai en bitset mais en fixe ouais !)
leojean890: ouais des learn 0 j'en ai 10 carrément xD
R4N4R4M4: Je suis en train de coder le MCTS
leojean890: bfs bourrin brew + cast pour viser le meilleur score => ouais j'ai ça
R4N4R4M4: Mais vu qu'il ne fera que < 1000 parties, je le garderai pour les derniers tours
R4N4R4M4: pareil Bob pour le BFS, mais j'ai que les cast et les rest dedans
Bob: ah oui j'ai le rest bien sûr
leojean890: mais mon pbm c que je parcours que 3k states par tour je pense^^
Bob: sinon on va pas bien loin
Bob: o_O
leojean890: à côté de ce que vous dites 3k c naze ;)
Bob: tu les fais fabriquer à la main par un artisan ?
leojean890: presque tlm de gold dit parcourir XXXk states par tour
Bob: même en virant les pragmas d'optim j'en ai encore 450k
dwarfie: leojean890 ... t'inquete j'ai beau faire jusqu'a 100k , je suis quand meme en silver :p
leojean890: hehe
leojean890: ouais y'a pas que ça!
Paikan2068: Je commence à avoir envie de repartir d'une feuille un peu plus blanche.....
Bob: ton état, il fait quelle taille ?
leojean890: (enfin c'est mon premier prgrm go;))
dwarfie: sans maitrise , la puissance n'est rien
leojean890: si je restais en python comme dans ooc et pacman ça n'irait pas plus loin!^^
leojean890: dwarfie je sais ouais:)
leojean890: Bob assez gros:)
Bob: bon sang j'ai fait exploser la taille de mon état, il fait 20 octets o_O
leojean890: large plus gros;)
Bob: bah voilà, regarde de côté-là
leojean890: c p'tet ça mon pbm en effet:)
leojean890: castableSpells int
repetableSpells int
BlaiseEbuth: stoi l'pbm
Bob: ben c'est autant de temps que tu passes à copier des trucs qui n'ont pas besoin de l'être
leojean890: j'ai que ça en bitset
leojean890: je stock toutes mes actions dans un tableau de strings aussi c ptet ça également mon pbm:)
Bob: t'as besoin de l'inventaire, du tableau de castables, un lien vers l'état parent et l'action
Bob: = index de l'action
Bob: éventuellement un score
leojean890: genre ['LEARN 12', 'CAST 14', 'REST ..]
Bob: ah ouais mais forcément, lui
Bob: la liste des actions elle est fixe hein :)
BlaiseEbuth: Tu veux les mettre en unicode aussi ?
leojean890: dans chaque état je stocke ça ^^
Bob: tu la stockes dans un tableau et ensuite tu manipules juste l'index de l'action dans le tableau
Bob: tableau global of course
leojean890: vas y je vais réduire la taille de mes states en gardant que l'utile :p
Bob: ben oui
leojean890: (enfin elle est pas fixe elle car selon l'état c pas le même chemin, mais c un souci de représentation des data)
leojean890: et comme mon BFS learn, je stocke aussi ce qui est learné ou pas:)
Bob: si tu t'amuses pas à essayer de remplacer les potions construites ou les sorts appris, la liste est fixe
Bob: l'info dont tu as besoin c'est juste un ou deux bits
leojean890: ouais t'as raison:)
Bob: brewed/pas brewed : 5 bits pour la totalité des potions
Bob: learnt / learnable : 6 bits
leojean890: ça peut effectivement être stocke sur 1 bit par sort disant s'il est learné ou pas;)
Bob: learned+cast/ learned+exhausted : 6 bits
leojean890: j'ai fait ça que pour les castable et repeatable là^^
Bob: il te reste 15 bits de castable pour les sorts et ça tient dans un int32
leojean890: ouais voilà ça j'ai:)
Bob: repeatable c'est dans la liste d'actions et ça change pas -> poubelle
leojean890: pas besoin de le metre dans les états le repeatable oui
leojean890: mettre
Bob: tu rajoutes 4 chars pour l'inventaire
Bob: ça te fait 8 octets
leojean890: ouais inventaire j'ai une liste de int (améliorable aussi)
Bob: un char pour le numéro de l'action
Bob: un int32 pour la référence au parent
Bob: on est à 13 octets, avec un peu de bol c'est paddé à 16
Simon21: est-ce qu'on peut importer l'ia d'un ami qui n'est pas dans notre ligue? quand je fais add, je vois que 700 joueurs, on peut accéder aux autres?
Bob: Simon21 : tu as accès aux 1000 premiers uniquement
Bob: j'ai rajouté un float pour le score
Bob: et puis voilà
Simon21: ah dommage
Simon21: merci Bob
leojean890: y'a plein de gens qui sont chauds en bitset ici;)
leojean890: j'ai pas fait ça sur UTTT encore :)
BlaiseEbuth: T'as qu'à lui dire d'être meilleur à ton pote
leojean890: thx Bob btw:)
Bob: c'est la première fois que j'en fais, en fait
leojean890: ah bah nice alors:)
Bob: et que je me sors un peu les doigts pour faire un algo de recherche
Bob: je l'avais fait pour StC mais dans la douleur
leojean890: j'ai préféré tenter des heuristiques beam search mais ça me fait stgner
leojean890: et j'ai commencé l'optim avec les castable et repeatable du coup
Bob: et bien sûr tu préalloues tout le stock d'états
leojean890: et le hash des states avec juste les inventaires et les castable
leojean890: (if hash(state) in visited: continue..)
NicolasH_42: vs etes a cb de ligne de code ?
Bob: 425
Bob: je gère même pas les doublons
Bob: #bourrin
Vry: Bob, j'en suis que j'ai les gamins pour le week-end donc je vais trouver le temps de faire une vraie gestion du score avec decay et utiliser le nombre magique 8 ...
leojean890: ton code est assez perf pour ça:)
Vry: ... mais je ne vais pas avoir beaucoup de temps non plus ...
Bob: j'ai juste mis le decay à 0.9 par tour
Bob: et poutchou, défonçage de boss
leojean890: Bob ton eval est à base de quoi ? le score ?
Bob: score uniquement oui
Simon21: BlaiseEbuth ça va venir ;-)
leojean890: pes de pseudo distance entre un inventaire et des potions donc ?
Bob: les potions avec decay et + 1 par ingrédient 1-2-3
leojean890: pas*
Bob: non
Bob: que du simple
YannT: wala c'est le seul language autre que natif en légende :D
leojean890: j'ai essayé de traficoter ça et ça marche pas avec moi:)
YannT: champion
Vry: Mais le BFS sans doublons c'est super rapide ... là j'ai une ébauche de min/max basée sur le code de mon BFS ça dépote du node ...
Bob: je simule aussi loin que je peux et je garde l'état avec le meilleur score
Bob: ça descend depth 8-9
leojean890: ah oui +1 par ingrédient que t'as 1 2 3
leojean890: pas mal aussi:)
OldDadou: Comment ca marche le decay ?
YannT: Bob: héhé je t'avais dit pour le decay ;)
leojean890: tu fais pas +1 pour les 1, +2 pour les 2 ?^^
Bob: oui YannT grand merci
Bob: OldDadou: les points que tu marques au tour 1, t'es sûr de les marquer
OldDadou: aah, ca !
Bob: donc ils valent points * 1
Bob: au tour 2 t'es pas tout à fait sûr parce que peut-être que l'adversaire aura fait la potion avant toi
Bob: donc ils valent points * 0.x
Bob: (x à déterminer)
Bob: au tour 3, encore moins sûr, donc ils valent points * 0.x^2
Bob: etc
OldDadou: attends nan, j'ai rien pigé en faite :D
leojean890: ah ouais j'ai carrément fait ^0.X ^^
leojean890: scoredepth0 + evaldepth1^0.9
Bob: si mon algo trouve une potion à faire en tour 1, ça rapporte le prix de la potion
OldDadou: ok, ok j'ai compris.
OldDadou: et tu rank tes choix en fonction de se decay.
Bob: si il trouve une potion à faire en tour 2, c'est moins sûr donc ça rapporte moins
leojean890: + evaldepthN*0.9^N plutôt
OldDadou: smart
Bob: et plus c'est loin moins ça rapporte
Bob: leojean890 *, pas +
YannT: en simple c'est la balance entre potion nulle tout de suite, ou potion mieux plus tard
OldDadou: pour le moment je fait le plus rapide possible
Bob: score += potion.price * decay^(depth - 1)
YannT: si tu fais pas ça ton bot choisi toujours plus tard et il fait jamais de potions
leojean890: sigma(N, evaldepthN*0.9^N)
OldDadou: Je suis rank 20 en bronze, ca change bcp le silver après ?
YannT: s'toi le sigma
leojean890: ;)
Bob: et tu précalcules tes 10 decay^depth, histoire d'économiser des centaines de milliers d'appels inutiles à pow()
leojean890: tout à fait :)
YannT: j'ai monté à 20 le precalc perso :p
leojean890: mais j'ai quand même plein de pow partout
Bob: bah faut pas
YannT: ça faisait des IndexOutOfBounds c'était nul
Bob: ça coûte cher en perf
leojean890: pour d'autres trucs
Bob: poour quoi diable ? o_O
Bob: y a que des additions là-dedans
leojean890: mais je sais que t'as raison^^
YannT: pb4 peut confirmer que pour une bonne eval, il faut mettre du log() dedans
Bob: en tout cas là t'as déjà une bonne marge de progression
YannT: les pow() c'est so 2013
leojean890: hehe ouais je le citais l'autre jour mais j'ai confondu log et exp hehe
Bob: YannT: possible mais dans ce cas il faut un autre niveau de qualité sur le moteur je pense :)
leojean890: il m'a corrigé;)
CopperFr: ca me rappelle les table de sinus / cosinus en asm :D
Bob: CopperFr <3
Bob: tout ce temps déjà
YannT: Bob: je rigole c'est une blague, sur OoC avec pb4 on avait l'illumination du log() dans l'eval en même temps c'est resté comme blague on racontait à tout le monde qu'il fallait utiliser du log()
Bob: 10 lignes de basic pour générer la table en binaire et l'inclure direct dans le source
YannT: (sans préciser pourquoi ofc)
Bob: arf
leojean890: ouis je me souviens de ça sur ooc
Bob: je me demande quand même bien pourquoi tu as des pow ailleurs dans ton code, pour le coup
YannT: c'était pour le nombre de positions possible que tu laisses à l'adversaire le log() :D
leojean890: var v = castableSpells != int(math.Pow(2,float64(len(sortsConso)))-1)
leojean890: mdr
Bob: o_O
Gh0stm4chine: Dans un BFS c'est normal d'avoir 2 fois le même état dans la queue ? si un état A ajoute un état B ensuite avant qu'on explore l'état B, un autre état peut rajouter l'état B aussi ? ça doit être optimiser ça ou je rate un truc ?
leojean890: bon j'avoue tout est précalculable xD
Bob: y a pas de bitshift dans ton langage surtout ?
Bob: Gh0stm4chine: oui c'est possible
YannT: faut dédoublonner les états
leojean890: sisi:P
YannT: c'est un gros sujet sur ce jeu
leojean890: bah j'en fais mais j'crois que c pas fini xD
JBM: ça dépend de si tu considères que la profondeur fait partie de l'état
Bob: perso je dédoublonne rien du tout parce que j'ai la flemme d'apprendre à le faire
leojean890: et dans mon hash je le crée avec des puisssances de 10 aussi^^
Bob: parce que bon, math.pow(2, float64(len(sorts)-1))), ouch >_<
YannT: Bob: il faut faire un hash, et après tu te tape la tête contre le clavier jusqu'à avoir une implémentation avecc un minimum de collisions
YannT: c'est un process
leojean890: sigma(ingredients[i]*10î)
YannT: s'toi le sigma
Karang: vous arrivez à quelle depth en combien de temps avec votre dedoublonage ?
leojean890: ;)
YannT: ps: je comprend pas trop pourquoi les gens ont l'air de croire que le state, c'est l'inventaire
pb4: YannT : mets un log dans le hash, plus de collisions :o)
OldDadou: Vous savez si le temps entre le moment ou ont à répondu et la lecture des inputs est comptabilisé ?
Bob: t'as une conversion d'int en float, un appel à pow et un retour en int
leojean890: hehe:P
pb4: Plus sérieusement, t'as eu quel genre de problème pour le hash ?
Bob: alors que (1 << len (sorts)) - 1 c'est quasi instantané
leojean890: bon allez si je fixais mes perfs:P
Bob: OldDadou: non c'est pas du temps "à toi"
OldDadou: Donc, c'est de la triche.
leojean890: le bitshift j'avoue je le maitrise pas et j'y pense pas tlt Bob
YannT: pb4: mon state est un long, le hash d'un long en JVM c'est une histoire de on prend le complément de 2 de la moitié du long et zoupla
leojean890: j'en ai piqué 2 3 dns le PM de M Smits et ça marche bien dans mon code
Bob: "ton" temps c'est entre la lecture du premier input et ton output
YannT: j'ai *l'impression* que ça collisionne: à mort
leojean890: mais sinon.. c pas niquel
Bob: utiliser ce qu'il y a de l'autre côté c'est techniquement possible mais moyennement fiable parce que tu ne peux pas prédire combien tu en auras
NoZ-: cocoche
Bob: et surtout il faut avoir un truc utile à faire pendant ce temps-là
leojean890: thx Bob je retourne à mes amélio^^
Bob: bon courage
leojean890: thx:)
YannT: pb4: hash d'un long avec l'imploem jvm par défaut: (int) (value ^ (value >>> 32))
Bob: si t'es vraiment limité que par les perfs, t'as toute la marge qu'il faut pour aller chercher les centaines de milliers d'états
OldDadou: Non enfaite c'était juste pour savoir.
leojean890: bah là ouais^^'
YannT: pb4: mais quand j'essaye d'auitre options pour le hash,, ça me change mes nombre de nodes visités etc = y'a des collisions ou des choses pas nette qui se passent là dedans
leojean890: et faut que j'arrête les distances entre inventaire et potion à l'arrache^^
OldDadou: Merci Bob
Bob: de rien
domak: Bob, dans ton DFS tu fais pas les learn finallement?
Bob: leojean890: en tout cas si tu veux faire du bitset, clairement il faut utiliser le bitshift pour faire tes masques sinon tu vas mourir
Bob: domak : non
[CPC]raaaahman: Salut, quelqu'un a trouvé la liste des sorts dans le repo gitHub?
Bob: mais je vais peut-être le remettre maintenant
Bob: Deck.java
Bob: (@ [CPC]raaaahman)
dbdr: YannT: value ^ (value >>> 32 c'est dur de faire mieux en 32 bits...
Bob: domak : je verrai ce week-end si je suis motivé
pb4: YannT : pour t'éviter ces problèmes --> zobrist hashing
[CPC]raaaahman: :thumbsup: Merci @Bob
Bob: sur ce, je vais aller faire un peu autre chose :)
pb4: ou sinon -> MP
JBM: que tout le monde en profite quoi
Bob: comment es ta presque gold JBM
JBM: si c'était juste pour y passer, j'aurais pas du soumettre ;p
Bob: arf
Bob: faut bien avouer que regarder le push qui traverse tout le board, passe au-dessus du boss et le piétine avec tendresse, ça a un petit côté jouissif
Bob: c'est presque plus gratifiant que d'être déjà au-dessus à l'ouverture
dbdr: c'est vrai
VincentBab: pb4: tu as quand meme des collisions avec le zobrist hashing non ?
Neumann: Qu'est-ce qui justifie Zobrist ici ? 32 bits c'est déja assez pour hasher tout ce qu'il faut non ?
pb4: Zobrist y'a pas de nombre de bits associé
Neumann: Je sais
leojean890: 9ms pour 1000 states.. un peu mieux
YannT: pb4: <3
pb4: Je ne sais pas si j'ai des collisions
Neumann: Mais Zobrist c'est utilisé quand tu as besoin de plus de 64bits
pb4: euh, non
pb4: Zobrist c'est un hash que tu peux recalculer de manière incrémentale à chaque changement (ie : coup)
YannT: Neumann: avec le hash JVM par défaut d'un long, c'est *certain* que j'ai des collisions, parce que j'ai essayé en memeisant le long direct sans le hasher en local et les chiffres sont très différents
pb4: Les autres hash, tu dois les recalculer en partant de zéro si je ne m'abuse
Neumann: Oui y'a aussi cet avantage, c'est parfois moins couteux que de refaire un hash complexe from scratch
OldDadou: Tu hash quoi ?
Zorg1: son state je dirais
Neumann: YannT : memoisant = tu mets les hashs dans un tableau ?
YannT: dans un set oui
[CPC]raaaahman: Pour les sorts du coup je ne comprend pas trop ceux qui sont reapeatables, c'est déterminé aléatoirement?
YannT: un HASHset
YannT: _o/
leojean890: 1000 states en 7 ms hmm
Stilgart: [CPC]raaaahman: non, si un sort te coute qqchose, et que c'est pas un sort par défaut, alors il est repeatable
Stilgart: sinon non
Neumann: YannT : et ce que t'appelles hash JVM c'est quoi, le hashing fait sous le capot dans une hashmap par exemple ?
leojean890: ouais Bob j'ai viré les pow et ajouté des bitshifts là :P
Zorg1: en go leojean ?
leojean890: Zorg1 ouas xD
leojean890: je suis entrain de remplacer tout ce qui fait que mon code est aussi peu perf:)
YannT: Neumann: le hash JVM par défaut d'un long c'est: (int) (value ^ (value >>> 32))
leojean890: j'avais déjà mis qq bitshifts hier
YannT: et ça me semble pas terrible
leojean890: mais bon reste plein de trucs bof je pense
Zorg1: ah tien il y a la légende
leojean890: states trop gros entre autres
[CPC]raaaahman: @Stilgart top merci!
Neumann: YannT : t'as pas assez de place dans un int ?
WhatTrickeryIsThis: y à la légende, et les autres
[CPC]raaaahman: (j'ai pas compris comment marche les mentions :p)
Neumann: Ton hash fait plus de 32 bits ?
Zorg1: tu simules qu'un joueur ou les deux leojean890 ?
leojean890: perso mon hash c'est une somme de machins * 10^N
YannT: non mon state fait plus de 32bits, du coup je le hash à 32bits (parce que j'ai essayé de memoriser les long direct, ça timeout sa race)
leojean890: ingredient0 * 10^0 + ..
JBM: un nombre, comme on dit couramment
leojean890: Zorg1 j'alliue 10 ms pour l'ennemi
leojean890: alloue
Zorg1: je fais pas faudrait que je code ça
leojean890: mais bon c'est encore un peu moyen
Zorg1: sinon en perf je cartonne mais je fais pas grand chose avec
leojean890: j'essaye juste de voir quelle potion il veut
leojean890: avec un bfs distanceToPotion et basé sur le score de la potion
leojean890: puis je fais le mien
Zorg1: ouaip j'arrive pas à trouver une bonne éval
leojean890: juste le score ?^^
leojean890: j'ai tenté les distances inventaire - each potion
Neumann: Je sais pas ce que ca donne un Zobrist de 32 bits en terme de collision, c'est 64 bits habituellement
leojean890: mais ça marche pas de ouf
Zorg1: mais en go si tu te débrouilles t'arrive à 50 000 states en 40 ms
leojean890: ah oui, mais c'est mon premier prgrm en go donc je suis loin d'avoir ton niveau Zorg1^^
leojean890: (et en bitset^^)
JocelynL: Vous savez comment c'est possible d'avoir des timeouts en arène, et quand je lance la même partie dans l'IDE il n'y en a pas ?
leojean890: + les conneries que je fais du genre appeler pow plein de fois
leojean890: que je viens de fix
Zorg1: JocelynL : l'impression que dans l'IDE il est plus coulant sur les t/o
JocelynL: Zorg1: ah merci c'est au moins une piste !
Zorg1: j'ai toujours eu cette impression, après je ne sais pas si c'est très pertinent
dbdr: de toutes façon le temps c'est pas deterministe
[CPC]raaaahman: leojean890 Ca a donné quoi la distance inventaire - potion ?
leojean890: ça marche pas spécialement avec moi ^^ mais ptet que je px trouver mieux :)
YannT: je sais pas si ya vraiment une solution à ça hein en vrai
YannT: la distance inventaire -> potion, c'est un peu l'intégralité du jeu finalement
[CPC]raaaahman: Je ne suis pas sûr que ça permette de considérer les coups qui rapportent plus dans le futur, comme apprendre des bons spells
YannT: ça se resoud pas avec une petite formule
[CPC]raaaahman: Par contre je n'ai pas de meilleure idée. :p
VincentBab: bon je crois qu'il faut que j'implemente la gestion de l'adversaire aulieu de tweaker des magic number...
Vry: J'ai adopté la conf. Bob mais j'ai l'impression que ce n'est pas aussi efficace ... ou pas
mrBen: des magic number ? t'as quel genre d'algo ?
[CPC]raaaahman: Tu vas considérer que ton adversaire fait la même chose que toi VincentBab?
VincentBab: jvais essayé d'evité de faire une potion si il peu la faire avant moi par exemple
VincentBab: mrBen, un BFS avec une eval
JBM: tiens leojean890 t'es en silver
YannT: <$>
leojean890: JBM yep !
leojean890: je bosse sur mes perfs :P
JBM: Yannt j'en ai de plus en plus
[CPC]raaaahman: Du coup tu pense enlever toutes les potions qu'il pourrait faire? Ou juste la potion la plus rentable pour lui?
Zakaoai: moi je penserai à faire la simu adversaire quand j'arriverai à Gold avec une bonne eval. ce qui n'est pas mon cas
YannT: JBM: fait un stream je viens regarder les <$>
leojean890: (j'ai encore à peine 1k states en 7 ms)
JBM: mouais je sais pas trop le stream
JBM: j'ai plus de ligne directrice claire
Zorg1: on te fera des commentaires constructifs, tkt
JBM: mmm, juste 13 <$> en ce moment
YannT: <$/
YannT: j'imagine que c'est pas le nombre mais la façon de s'en servir
JBM: et 8 map et fmap, qui auraient pu être écrit en <$>
mrBen: Haskell noob's here, c'est quoi les <$> ?
mrBen: functor map ?
Vry: lol 2/11 en début de submit, la méthode de Bob est incompatible avec mon BFS ... :upside_down:
leojean890: tiens sorry vry ;O
Stilgart: 13 <$> c'est ce que j'ai du écrire pour cistercians numbers /o\
JBM: ouais, les commentaires constructifs en stream, j'ai l'impression que ça marche que chez les autres
JBM: mes streams de niche, les gens se le mettent en bruit de fond
egaetan: je vois pas ton stream JBM
egaetan: i lest où ?
Traquila: discord ?
egaetan: j'hesite biere tout de suite ou rhum ou attendre encore un peu
Zorg1: twitch plutôt
JBM: tu te préparais pas pour la nuit?
egaetan: si, il va me falloir du carburant
egaetan: bonne pause
Zorg1: on sait c'est le bot de qui le boss gold ?
VincentBab: quelqu'un qui utilise un langage à base de rouille :O
Zorg1: ah c'est le bot de dbdr
VincentBab: xD
Zorg1: ah oui j'avais pas fais gaffe
Stilgart: egaetan: trop tôt là
OldDadou: VincentBab je crois oui
Stilgart: il faudrait pas passer le pic de ballmer pendant la nuit non plus
egaetan: Stilgart je crains que si j'attend le carton rouge se soit trop tard
JBM: c'est quoi le seuil du carton rouge chez toi?
egaetan: le gros popup rouge dans cg
dbdr: tu sais bien que je n'attends que de te laisser passer egaetan...
egaetan: merci
dbdr: tiens bourgeof est sur la voie
bourgeof: J'ai roulé 2/3 coeffs sous les aisselles comme dirait YannT... Sur un malentendu, ça peut marcher...
bourgeof: ou pas...
BlaiseEbuth: Si ce que tu roules sous tes aisselles se met à marcher, il faut envisager de prendre une douche...
dbdr: attention, demain mon code unlock des features
dbdr: le boss est piégé!
egaetan: minuit ?
dbdr: yep
Zorg1: et Apo n'a même pas vu ça ?
dbdr: il lit le rust apo?
Traquila: un code dont le comportement change en fonction de la date, c'est interessant :)
Zorg1: bah ça a déja été fait par MK
dbdr: et euler
BlaiseEbuth: 1 chance sur deux qu'il plante lamentablement...
Zorg1: un code qui joue comme une brêle au début pour être en fin de classement
Traquila: si tu sais combien de temps tu va mettre pour atteindre le boss, tu adapte ton algo pour être certain de le battre.
Zorg1: tu fais pas bcp de match contre le boss en fait
dbdr: on en parle, je sais pas si yen a qui l'ont vraiment fait ça
dbdr: oui mais ils comptent double
Zorg1: ah ?
dbdr: ben tu montes et il descent
dbdr: ou l'inverse
Traquila: il descend, tu montes
dbdr: il The Descent
Zakaoai: Question : C'est considéré comme bon move : Rest , +2 bleu, Rest, +2 bleu J'ai encore du mal a donner une bonne valeur à l'action de Rest dans l'éval :/
Traquila: non c nul :p
egaetan: c'est pas top
Traquila: tu as des sorts qui donnent que des ingredients positifs
Traquila: donc tu REST trop tot
tekki: salut tlm
Zorg1: o/ tout seul
tekki: qqun pour m'expliquer comment faire une bocle <50 ms svp?
tekki: boucle*
tekki: ça me saoùule de timeout sans raison
Zorg1: for(i=1;i<50;i++);
BlaiseEbuth: while(time<50)
OldDadou: en quel langage ?
Zorg1: ça tient en 50 ms normalement
tekki: en java
BlaiseEbuth: P'tet pas du coup Zorg1
tekki: j'utilise System.currentTimeMillis
OldDadou: Moi ca tien pas :/
Zakaoai: Oaip en effet, bah Traquila même pas j'ai qu'un sort positif :/ Du coup faudrait que j'essaye de mettre du malus sur l'action de Rest si je le fait quand j'ai encore beaucoup de sort dans la liste
tekki: personne en java pour m'aider?
BlaiseEbuth: Mon code est trop opti. Il commence par tous les pragmas d'optimisations qui vont bien, et juste après j'inclus la moitié de la std. :grin:
Cousnouf: moi je peux t'aider en java
egaetan: gg bourgeof
bourgeof: merci egaetan
tekki: Cousnouf tu sais faire une boucle while <50ms?
tekki: on passe en mp?
Cousnouf: ouais suffit de rien mettre dedans :P
Cousnouf: oui en mp
Zakaoai: Hm tekki, moi en JS j'utilise un throw
tekki: ça m'aide pas Azka :)
tekki: Zaka
Zakaoai: Bah tu peut faire la même en Java, utiliser currentTimeMilis pour track certains passage dans ton code
Zorg1: ah tu postes ici pour avoir de l'aide. Quelle idée saugrenue
BlaiseEbuth: C'est qui qui te poses souci exactement tekki ?
tekki: je peux pas limiter mon BFS avec TImeMillis
Zakaoai: Et Throw une exception de Timeout que tu gère ou tu souhaite
tekki: j'utilise pas les throw
tekki: je veux un truc simple
Zakaoai: >.<" Bah c'est pourtant simple comme approche
tekki: (timeMillis-depart)<50 et go
Zorg1: ça marche pas ça ?
tekki: ben pas chez moi
tekki: et je trouve rien sur le net
tekki: alors ça me gonfle
Zakaoai: Bah non normal si tu arrive à 80 ms dans ta boucle ton while s'arrete pas
tekki: c la base pour avoir un truc sans timeout à la cooooon
Zorg1: tu le fais quand ton test ?
Zakaoai: Il vérifie la condition seulement quand il veut rerentré dans la boucle
tekki: exact
BlaiseEbuth: En même temps, trouver de la doc java c'est chaud. C'est un langage de niche... :thinking:
Zakaoai: d'ou l'utilisation d'Exception et de try catch pour arreter tes traitements.
tekki: sinon jai une variable temps que je met à jour en fin de boucle
Zakaoai: BlaiseEbuth faut croire
tekki: je v passer en python ça va pas traîner ^
BlaiseEbuth: si seulement
BlaiseEbuth: Ah bah si en python ça va se trainer encore plus
tekki: ha merde
Zorg1: après faut prendre un peu plus petit que 50
tekki: oui ça ok
tekki: mais là n'est pas le pb Zorg1
tekki: juste une boucle limitée par un temps imparti
BlaiseEbuth: Bah c'est ce que tu as
tekki: en java j'ai pas trouvé d'exemple
b0n5a1: ha bon ?
tekki: il me semble BLaise mais c'est pas le cas apparemment :)
Traquila: tu n'as pas une fonction qui donne l'heure en java ?
Zorg1: après il suffit que t'as le gc qui se déclenche genre t'es à 45 ms mais pouf t'éclate
BlaiseEbuth: Si. Mais comme dit plus haut, si le timeout survient pendant ton tour de boucle, la condition y peut rien...
Traquila: tu déduit le tour de boucle des 50 ms c'est tout
Traquila: et si tu fais 500k tours, ca fait pas grand chose
Zorg1: voilà t'engage un tour de boucle s'il te reste du temps mais rien n'assure que tu vas faire ce tour de boucle dans le temps qu'il reste
tekki: apparemment ça vient des serveurs CG
tekki: je v limiter à 15ms
BlaiseEbuth: Méwicéclèr.
tekki: :)
tekki: à 25ms je timeouté :)
Traquila: Pareil ca vient des serveurs si je ne suis pas légende :)
Zakaoai: En tout cas tekki après une requete google ma solution avec les Exception est la plus probable vu que tu a pas plus de Thread possible pour interrompre à distance ton code.
BlaiseEbuth: Tu mens ! Y'a pas de ressources java accessibles via google !
Traquila: man java
Zakaoai: Mince mais c'est que tu a oublié d'utilisé ton VPN préféré ;)
tekki: merci Zaka mais je gère pas encore les exceptions
tekki: java niveau débutant :)
BlaiseEbuth: Néanmoins c'est vrai que c'est la faute de cg. Pas vrai AutomatonNN ?
AutomatonNN: mon code c'est que c'est pas un peu opti que je peux pas te dire que c'est pas la question de constr
BlaiseEbuth: Exactement
tekki: limite à 15 ms ça timeout plus, à 25 ms je timeout :/
Zakaoai: tekki les Exception c'est Java Débutant surtout quand tu doit débug >.<
tekki: c pas mon école
tekki: je suis autodidacte, java sur CG c'est sans exception pour moi :)
tekki: pour debug j'ai la console :)
**BlaiseEbuth cherche un sens à tout ça...
Simon21: je comprends pas, des fois je fais 300 noeuds en 50 ms, et des fois j'en fais 2000 en 20 ms...
Bon[]Crayon: les exceptions ça doit pas être si compliquéés
Traquila: Si tu es autodidacte, choisi un vrai language (/sort discraitement)
b0n5a1: tekki :
b0n5a1: http://chat.codingame.com/pastebin/cf3b1cd5-a067-47ac-b0b5-abd43c0e5830
BlaiseEbuth: +1
BlaiseEbuth: Traquila
b0n5a1: 2 min en regardant la doc
BlaiseEbuth: Quelle doc ? Y'a pas de doc
b0n5a1: tu peux tester là : https://www.tutorialspoint.com/compile_java_online.php
BlaiseEbuth: Simon21 : C'est parce que les noeuds de chaises c'est plus long à faire que des boeuds simples.
BlaiseEbuth: *noeuds
tekki: merci bOn5a1
Simon21: ça m'aide pas beaucoup ça ;-)
Zakaoai: soit content Simon21 tu arrive à 2k noeuds :D
Traquila: il est bien ce site pour tester du code !
Simon21: c'est rare en vrai...
Simon21: et quahnd je vois certains qui en font 500k!!!
Traquila: Allez, je vise le million
tekki: 10k sans timeout, enfin!
Simon21: quel langage tekki?
BlaiseEbuth: De toutes façon les vrais autodidactes utilisent pas de docs.
tekki: java
Simon21: moi aussi...
b0n5a1: enfin j'ai dis doc...c'était vite à l'arrache plutôt à partir de pauvres exemple de System.currentTimeMillis() ^^
b0n5a1: et de vieux souvenirs
tekki: non mais c'est ce que je fais
tekki: ça me paraissait correct mais je timeouté, solution passer de 25 à 15 ms de limite :)
b0n5a1: javadoc de toute façon c'est un peut : fonction Toto...ça totoise
Bon[]Crayon: Plus je fais compliqué moins ça fonctionne. Une explication AutomatonNN ? svp
AutomatonNN: oui
Bon[]Crayon: AutomatonNN Si je te dérange dis le moi.
AutomatonNN: coller dans la table tu peux pas t'en faire
Simon21: tekki est-ce que tu as u systeme de cache pour recycler les tes objets?
b0n5a1: print(boolean b) Prints a boolean value. ... youpi
tekki: non
tekki: je recalcule à chaque tour
Simon21: pareil... j'ai essayé de le faire, c'était encore pire, alors je laisse tomber pour le moment
Simon21: et tu détecte les noeuds redondants?
JocelynL: En ce qui me concerne, avec Kotlin (et donc la JVM), j'ai constaté qu'un simple check du temps écoulé ne suffisait pas et qu'il fallait aussi (plutôt ?) tenir compte du nombre d'objets créés. J'imagine que c'est à cause des GC intempestifs...
b0n5a1: fais un pool et recycle au lieu d'allouer / désallouer en masse tout le temps
b0n5a1: un méga gros array et tu gères avec des index
JocelynL: yup je pense que pour optimiser il faut aller vers ce genre de solutions, mais ça choque ma conscience de développeur :(
OldDadou: Je suis sur du A* de mon coté, c'es galère aussi
BlaiseEbuth: lel
b0n5a1: tu veux de la perf faut la chercher en partie au détriment de la mémoire
OldDadou: niveau perfs
Zorg1: "conscience de développeur"
Zorg1: c'est beau ^^
tekki: :)
b0n5a1: ouais
Cendretoundra: Hello , de mon coté j'ai essayé de tout cacher (si je fais du profiling de memoire j'ai que des Integer.valueOf)
BlaiseEbuth: Louche surtout venant d'un mec qui code en kotlin...
Cendretoundra: pourtant j'ai quand meme des timeouts intempestifs
Cendretoundra: parfois avant meme d'entrer dans la boucle du BFS
b0n5a1: ha ouais pas mal
JocelynL: @BlaiseEbuth :grin: oui enfin kotlin niveau amateur, pour voir
hcabel: Salut, qui sait comment le boss silver choisit ses spell ? (j'aimerais test voir si le reste de l'algo est potable ^^ )
Cendretoundra: si quelqu'un sait comment monitorer l'usage du gc en java ...
JocelynL: visiblement il aime bien les sorts répétables en tous cas
Simon21: bOnsAi avec quoi tu ferais un pool d'objets? j'en ai fait un avec un arraydeque mais vraiment pas top
Bangel: Est ce qu'un âme généreuse sait comment sortir une variable en output de Coders Strike Back au lieu d'un "50".
hcabel: On ma dit que c'etait un algo basic mais bon ça maide pas lol
Traquila: non il prend pas toujours le premier
BlaiseEbuth: Moi j'ai pas d'âme.
JocelynL: moi je m'en fiche si mon code n'est pas performant, du moment qu'il est bien formatté
hcabel: #Traquila non pas tout le temps
b0n5a1: Machin[] pool = new Machin[256000] Simon21, comme un goret dès le départ...et t'édites tes Machin et gère un index courant (par exemple)
Traquila: +1 b0n5a1
BlaiseEbuth: b0n5a2
Traquila: de tête ? pas évident
Simon21: ok merci b0n5a1
b0n5a1: t'as droit à 768 Mo t'as de la marge
Simon21: c'est ce que fait l'arraydeque au final
JocelynL: @b05a1 ah intéressant tu as eu cette info où ?
R4N4R4M4: Je crois que j'ai jamais autant galéré sur un challenge...
b0n5a1: quelle info JocelynL ?
Traquila: Ce que j'aime sur CG c'est de ne pas avoir à faire de free/delete :D
b0n5a1: la ram ? -> FAQ CG
JocelynL: sur les 768 Mo ?
JocelynL: ah ok :P
Simon21: et pourtant mes perfs sont moins bonnes que sans cache, y a un truc que je dois mal faire...
Simon21: mais quoi?
Simon21: lol
Traquila: en java ?
Simon21: yep
Traquila: Je ne sais pas si la mémoire est réellement allouée en java, au cas ou du met des 0 partout au démarrage
Vry: Mais euh ... forcément j'ai un bug insoluble à la con ... à un moment j'ai un node de mon arbre qui point sur lui-même ... c'est ballot ...
BlaiseEbuth: Un vrai noeud pour le coup :p
JocelynL: @Simon21 tu es en or quand même ...
Vry: Ouais c'est le #659280
b0n5a1: c'est de l'autogreffe Vry ça arrive sur les arbres ^^
boumagik: Runtime.getRuntime().freeMemory() / 1_000_000
boumagik: 64Mo en java
Simon21: j'instancie mes objets au démarage (1 noeud = 1 list, 1 array et 1 entier)
Simon21: et après je récupère un noeud libre et je l'édite
Simon21: et à la fin je le release
Traquila: pourquoi release ?
b0n5a1: Vry : http://opalebonsai.canalblog.com/archives/2016/03/16/33523463.html
b0n5a1: (ça marche bien)
Simon21: je le rend dispo dans mon cache je veux dire
Vry: Ça va pas m'aider b0n5a1 :sweat_smile:
Vry: J'ai contrôlé toutes les affectations et je ne vois pas d'explication à ce comportement ..
Vry: Pour le compteur du nombre de node est foiré ... à un moment il correspond au node que je suis en train d'insérer et effectivement ça me fait un arbre dans l'arbre
Stilgart: b0n5a1: tu te lances dans le fix de foret de if ?!
b0n5a1: le twitch Instfluff (je viens de voir) c'est space ^^
Vry: Mais que je veux retourner à la racine depuis ce sous-arbe ça foire
Vry: S'il passe gold vous me le dites ! :)
VincentBab: bon j'ai pas les bonnes aisselles, j'arrive pas a rouler les bons coef :(
b0n5a1: y'a des bestioles partout
BlaiseEbuth: Juste sur la miniature je vois au moins 56 niveaux d'indentation...
b0n5a1: on dirait un sapin advent of code
R4N4R4M4: Je crois que je vais rester scotché en bas de Gold
Simon21: pareil R4^^
Traquila: et moi en haut de silver :p
Zakaoai: Et moi qui arrive juste pas à décoler du millieu silver ^^'
BlaiseEbuth: Moi j'attends.
Traquila: impossible de passe en dessous des 30. Je repars de 0 du coup
Zorg1: t'attends la marée ?
b0n5a1: lundi matin 09h59 fix clojure BlaiseEbuth
BlaiseEbuth: Faudra faire vite alors.
b0n5a1: ouais
Zorg1: bah il est déjà prêt ton code légende en clojure non ?
b0n5a1: juste le temps de push ton hide legend
R4N4R4M4: J'ai l'impression que quand je win des matches, mon rank augmente pas, et quand j'en lose un, ça descend tout de suite :(
R4N4R4M4: C'est la malédiction des fins de ranking
BlaiseEbuth: R4 : T'inquiètes, c'est pas une impression
OldDadou: Tu t'es trompé de jeu, c'est pas lol ici :D
b0n5a1: tain je sais pas ce qu'il prend mais ça rend heureux ^^
BlaiseEbuth: Moi j'peux pas, le smourbif animé à droite me fait peur.
b0n5a1: le mec il a réussi à me faire marrer quand même là
egaetan: R4N4R4M4 pareil
R4N4R4M4: Et ce qui m'embête le plus c'est que si je push un code silver, il va monter plus haut..
R4N4R4M4: Bon ben voilà, ça décolle
OldDadou: BFS est plus efficace que Dijstra ici, c'est ca ?
R4N4R4M4: Faut que je me refasse une journée de merge :(
OldDadou: Avec mon A* je passe pas en silver ...
R4N4R4M4: T'es pas sur le bon challenge OldDadou avec ton A* :D
OldDadou: meh
b0n5a1: huhu
egaetan: ça dépend, tu as une bonne distance OldDadou ?
cocoche007: automaton2000 Tu me files en PM, le killing fitness ?
Vry: Bon j'ai trouvé j'ai juste besoin de sommeil en fait ...
Automaton2000: moi aussi j'ai le même score
OldDadou: Avec mon A* la distance est pas ouf je pense.
nmahoude: moi aussi j'ai A*, je plafonne à 90 gold. chiant de pas voir la potion d'après
OldDadou: sinon, en dijkstra j'ajoute simplement 1 a chaque voisin.
egaetan: t'as pas revert la seed et tu es aussi haut nmahoude ?
egaetan: VincentBab viens pousser tirer etc... je manque d'idées
nmahoude: euuuh what ? revert la seed pour avoir les spells ?
egaetan: plutot les recettes que les spells, c'estplus interessant
VincentBab: j'essaye egaetan ^^
OldDadou: Ca marche avec des cycles BFS ?
Zorg1: ah le mème du "revert the seed" revient ^^
nmahoude: ah oui. non j'ai pas fait ça.
Zorg1: c'est le truc de egaetan pour dire que les gens au dessus de lui sont des cheaters :p
Vry: Est-ce qu'une âme charitable pourrait m'aider à contrôler rapidement mon BFS ?
egaetan: Zorg1 ceusses en dessous aussi pour la plupart
Zorg1: les bons cheaters au dessus les mauvais en dessous ^^
Vry: J'ai un BFS simple : brew + cast + rest
Bob: comment es ta BFS Vry
Vry: Ultra rapide
Vry: Mais top 100 à la fin
Vry: http://chat.codingame.com/pastebin/1542c25d-14dc-4578-9afe-f675dc7b37f2
Zorg1: oui moi aussi je vais vite pour faire une connerie
Vry: Quelqu'un pourrait me dire si le nombre de node par depth (sur les premières) lui paraît cohérent ?
OldDadou: Ca vous prend combien de temps pour trouver un recette ?
Bob: depth 13, joli
Vry: Juste le tour #1 de la partie
Bob: t'as que les 4 casts de base là ?
Vry: Bob le BFS s'arrête car le tableau n'a que 4 000 000 des cases
Bob: arf
Vry: *de
Vry: Oui
Bob: si tu gères les doublons ça me semble vraisemblable en tout cas
Vry: Uniquement les input cité : zéro learn
Bob: OldDadou: 2/3 ms max pour avoir les 5 recettes
Vry: J'ai justement retiré le hash au cas où ...
Bob: avec une douzaine de casts en main au départ
Zakaoai: Vry o.o dire que moi je peine à depth 4 >.<
OldDadou: ok, moi ca explose quand j'ajoute des recettes.
Bob: Vry : et si tu rajoutes des learn en début de partie, ça donne quoi ?
Vry: detph 12 en 5 ms ... mais ça me sert à rien en fait
Vry: #1669 en Silver ...
Bob: parce que bon c'est sur aussi que c'est plus facile d'arriver à depth 12 avec seulement 4 sorts dispo à chaque tour
Vry: Avec une gestion du score comme tu l'as indiqué ... j'en perds mon latin
Bob: le branching factor est pas le même
Bob: hmmm tu dois avoir une couille velue dans le potage
Zakaoai: #633 silver here avec depth 4 oui je pense pas que tu ai besoin d'autant
Vry: Bob : avec 8 learn devant
Vry: http://chat.codingame.com/pastebin/28542bf4-3c7f-4760-8391-47ac872343fd
Bob: ok, ça c'est très similaire à ce que j'ai
Bob: donc ça semble cohérent
OldDadou: alllé rang 3 en bronze, ca mouline allé
b0n5a1: ça l'air de coller Vry
Vry: Ok
Bob: go go OldDadou
Zakaoai: ah les langage bas niveau quand c'est maitrisé ça perf mieux c'est clair. moi je suis obliger de Beam Search pour descendre à depth 4
JBM: je veux bien qu'on me rafraichisse la memoire pour les codes time-based de MK et eZ
Stilgart: tiens, un bob et un zorg1
Bob: o/ Stilgart
Bob: tiens c'est rigolo cette seed
Zorg1: oui mon bot monte quand je fais rien
Zorg1: je comprend rien à ce jeu
Vry: Par contre, avec ce BFS et le choix par score decay je me fait éclater en Silver ... je suis perplexe
Bob: le boss me pique une potion sous le nez et après je boude
Stilgart: bon, je pensais gratter avec mon dernier mes push, mais non
VirtualAtom: t'es en quel langage Vry sur les inputs que tu as envoyé ?
Bob: Vry : t'as regardé les replays ?
Vry: C
Bob: c'est pas du timeout ?
Stilgart: egaetan: à mon niveau 150-200e géné, ça sert à rien de gérer comme il faut les bonus :(
VirtualAtom: ça me semble beaucoup 45ms
Vry: Non zéro timeout
Bob: https://www.codingame.com/share-replay/507350806
Bob: frame 19, après je fous plus rien o_O
Vry: J'ai un peu le même comportement en Silver ... https://www.codingame.com/share-replay/507350697
Bob: eh mais qu'est-ce qu'il me fout à bourrer son inventaire comme ça ?
Bob: l'est con lui
Vry: le score Bob ???
Zorg1: ?
Zakaoai: RIP Bob
Vry: Tu as les ingrédients dedans ?
Zorg1: tu fais un stream
Zakaoai: Trop puissant les repeatable ;)
Zorg1: MK, c'était pour son bot "Mighty Knight" de CSB
Zorg1: bah il avait fait qu'il reste en bas de Legend pour pas encombre le top si j'ai bien compris la logique MK
b0n5a1: lol
OldDadou: Qui fait en rust parmis vous ?
OldDadou: oh mince, je m'appretais a coder mon BFS et finalement je suis en Silver.
jolindien: Mazel Tov
Bob: Vry : oui j'ai les ingrédients dedans
Vry: o/ jolindien
Bob: OldDadou: ben maintenant tu peux faire ton BFS pour viser gold :)
jolindien: 'lut Vry
Vry: Bob : avec ou sans ça change rien au final (en tout cas contre le boss Silver)
OldDadou: Bah, justement je me demande si c'est vraiment plus efficient ?
Vry: OldJohn : tu auras pleins de nodes mais tu ne sauras pas quoi en faire ...
Bob: OldDadou: alors je garantis que ça fonctionne en tout cas :)
Vry: Mais tu pourras dire j'ai du 400k nodes par tour :sunglasses:
OldDadou: La mon principal sous
Bob: après, je suis certain que c'est possible de passer gold sans artillerie lourde
OldDadou: mon principal soucis, c'est que certain Brew scale pas avec les spells en plus.
Bob: juste que moi j'ai pas trouvé comment :)
Vry: Bob, je suis trop bas tu ne peux même pas chopper mon bot :p
Bob: mais c'est bien pour une fois j'ai essayé un peu autre chose et j'ai appris plein de trucs
OldDadou: Mais le truc, c'est que je hash des Vec en rust. Je me demande si niveau perfs c'est pas dégeu
OldDadou: parce que la, j'ai ca comme résultats: Solution found in : 1.627804ms with 219 nodes and costs: 16
OldDadou: 1.5ms pour 219 noeuds parcourus, ca me parait long.
Vry: Juste un doute : le score calculé sur un node père est reporté sur le node fils (en plus de l'éventuel score decayé du-dit fils) ... etc et au final à partir de la plus grande feuille ...
Vry: ... vous me servez de canards
b0n5a1: :duck:
OldDadou: Ton decay est codé dans ton BFS ?
Vry: Ui
OldDadou: Atttendez, le BFS c'est pour quoi au juste ?
Zorg1: pour être à la page
Vry: Un parcours profondeur par profondeur
OldDadou: Moi je me sers du A* juste pour trouver des recettes pour le moment.
b0n5a1: soupe au chou !
VincentBab: plus ca va, moins j'arrive haut a chaque submit lool
b0n5a1: ça fatigue les jambes
Zorg1: faut mettre des bas de contention ?
Zorg1: bon allez je fixe un peu mon bot
Stilgart: :turtle:
Vry: J'aime pas les arbres !
Bob: OldDadou: le BFS c'est pour explorer tous les chemins possibles et garder le meilleur
Stilgart: Vry: c'était une tortue :(
OldDadou: Oui, oui, mais je veux dire.
Vry: Je parlais de mon BFS ..
Vry: Stilgart
OldDadou: Moi j'utilise mon BFS/A* pour chercher une recette a une potion.
Zorg1: vry : bah ton BFS explore un arbre à la base ?
Bob: moi je l'utilise pour trouver le meilleur état de jeu
OldDadou: JE me ballade pas dans un graphe des états du jeu.
b0n5a1: c'est con
Bob: par construction, le BFS construit les états du jeu
Bob: donc il "suffit" de les évaluer et de garder le meilleur
OldDadou: okay.
OldDadou: Mois j'ai fait un algo con du type: calcule pour toutes les potions.
OldDadou: et fait un truc pas trop con rapidement.
b0n5a1: "un algo con pour faire un truc pas con"
b0n5a1: ^^
Bob: pas trop :)
Stilgart: améliorable
Stilgart: bon, je fais pas assez de learn et je sais plus jouer le endgame
OldDadou: Ok, du coup l'approche BFS, c'est de coder un abres des état du jeu et de choisir un truc pas trop nul par rapport un état ultérieur.
Vry: Donc que je pousse le score vers le haut ou vers le bas au final c'est la même chose tant que je sais quelle branche je dois prendre en partant de la racine
OldDadou: Mais du coup, c'est quoi le root du BFS ?
Vry: Un root bidon : aka les input
b0n5a1: l'état initial du tour en cours
OldDadou: hmm
OldDadou: Du coup, vous cherchez pas des recettes de potions du tout ?
OldDadou: Ya que moi qui fait ca ?
Vry: Pour le decay vous auriez une fonction magique qui décroit bien comme il faut ?
b0n5a1: tu parcours et évalue les coups possible du tour suivant puis du suivant puis du suivant...quand t'en a chopé un "bon"...tu remontes à l'état correspondant du "tour suivant" correspondant et tu le joue OldDadou
Stilgart: bon, ça bon l'idée de merde ce push :D
Vry: OldJohn : on les trouves sans faire exprès
Vry: *trouve
b0n5a1: * pow (0.9, depth) Vry
b0n5a1: ou / depth
Vry: Bon ben ça fait 1642 Silver :heart_eyes:
Stilgart: je pourrais essayer ça, merci de m'y faire repenser b0n5a1
Bob: je plussoie la formule de b0n5a1
sanpas83: bonsoir tout le monde
b0n5a1: tu te précalcule un array de pow(0.9, N) Vry ^^
OldDadou: Merci b0n5a1
sanpas83: petite tips pour un timer fiable en C#
sanpas83: ?
Vry: Oui b0n5a1
OldDadou: Donc personne précalcule des recettes :sweat_smile:
Stilgart: b0n5a1: alpha *= 0.9; en début de boucle c'est pas la mort
Stilgart: quand la depth augmente
b0n5a1: aussi oui
joelthelion: un pow quand par hasard tu trouves une potion c'est pas la mort non plus
Stilgart: si
Stilgart: parce que tu en trouves assez souvent
joelthelion: tu as testé?
Stilgart: et que les gens l'oublient, mais pow c'est TRES lent
Vry: lol ... sur la même partie j'ai aucune différence de comportmente avec 1 (constant) et l'une des deux formules citée ...
Vry: *comportement
b0n5a1: ou en C++ tu le template pour n de 1 à ce que tu veux et c'est généré à la compil et que dalle au runtime
Stilgart: joelthelion: pas besoin
OldDadou: Bon, méga flemme du coup.
OldDadou: merci pour vos conseils
OldDadou: Silver m'ira très bien
joelthelion: Stilgart je regarderai à l'occasion
Stilgart: je vais à depth 20, donc 20 produits
Bob: Vry, tu dois vraiment avoir un gros pain quelque part c'est pas possible autrement
b0n5a1: ouais c'est pas la mort
Stilgart: ça laisse le temps pour 4 pow
Stilgart: après, c'est sur que c'est pas ça le gros du calcul
Vry: Bob : je suis d'accord, au moins ça me donne une piste ! ;)
joelthelion: Stilgart plus le alpha que tu te traines partout
Stilgart: pas plus que le pow
joelthelion: ben non, le pow tu le calcules à la demande
Simon21: j'adore le boss qui timeout lol
Stilgart: (après, je suis peut être biaisé par le fait que j'ai aussi un bout additif dans mon eval)
Bob: perso le pow je le calcule une fois au début pour le paquet de depth
Bob: ensuite je l'adresse direct dans son tableau
Stilgart: je disais que je fais ça mais sans le pow
Vry: Pas de pow alors ?
Stilgart: sur mon dernier run, j'ai pas de pow en effet :(
Stilgart: :p
b0n5a1: si pow(0.9, depth) ça devrait aller Vry
Vry: Oh le con ...
Vry: ... quand je trouve le bon score (que j'affiche) je ne modifie pas "best_node" ...
Stilgart: j'en suis réduit à un draw contre WTIT
b0n5a1: haha
Vry: Donc je joue toujours le premier node !
domak: bon là je suis perdu... jusqu'à présent mon BFS s'arrêtait quand il avait fini toutes les potions: on stoppe l'exploration de la branche, on stocke le score (price * decay^depth) et à la fin on prend le meilleur score. Maintenant, je veux aller plus loin pour voir... mais du coup je sais plus scorer. Quand j'additionne les scores des noeuds, je vais privilégier 2 petits BREW plutôt qu'une grosse commande...
Stilgart: faites que ce run s'arrête !
b0n5a1: bon go gold maintenant Vry ^^
Stilgart: domak; je suis un peu dans la meme galère
OldDadou: Et du coup, personne est passé sur du monte-carlo ?
Vry: Prends ça Bossdorf !
Vry: https://www.codingame.com/share-replay/507382550
Stilgart: OldDadou: egaetan m'a remis sur le droit chemin juste à temps
mrBen: whoa, j'ai changer une liste en slice et mon nombre de noeud vien d'être multiplier par 10 !
mrBen: (golang)
Vry: 10/10 ... :heart_eyes:
domak: sauf que moi il décole plus du tout du bas fond
Vry: Bob :kissing_heart:
OldDadou: Stilgart, pourquoi ? C'est pas souhaitable ?
Stilgart: ha oui, tiens, je viens de décoller moi
b0n5a1: 20/20 Vry ce srait cool
Zakaoai: Whoa gg Vry tu va vite monté
Stilgart: OldDadou: j'en sais rien du tout
Bob: Vry, muahahaha
Vry: 12/12
Stilgart: en fait, je voulais faire un mcts, mais un détail d'implem me bloque
Bob: héhé
Stilgart: go go go Vry
Stilgart: perfect fist ten + perfect second ten
Stilgart: avec ça en général tu es page 1 dans le classement
b0n5a1: erf ce décollage
Vry: Stilgart j'ai un MCTS mais qui reste coincé en Bronze si tu veux ... parcontre il a le moteur complet et prend en charge les deux joeurs
Vry: *joueurs
b0n5a1: il le veux en Haskell ^^
b0n5a1: veut
Stilgart: tu fais quoi quand tu es à cours d'info ?
Vry: Comme pour le BFS j'arrête
Stilgart: ok
Simon21: mcts, j'ai lu plein de fois la théorie: selection expansion
Vry: Magus a indiqué qu'il faisait de même
b0n5a1: 118 @18% ça va
OldDadou: Du coup, avec le BFS ca explose vite si il faut simuler l'autre joueurs aussi
Vry: 16/16 ... je kiffe
Stilgart: Simon21: pour le mcts, fais uttt
b0n5a1: 84
Simon21: simul back propapg j'ai jamais compris comment on l'implémente en pratique
Vry: J'ai jamais eu ça sur ce contest
Stilgart: ou un des quelques puzzles de la commu similaires
b0n5a1: tu passes gold là
Fangel: tu as essayé de full learn au début Vry ?
Simon21: ça veut dire quoi uttt?
Vry: J'ai 8 learns
b0n5a1: ultimate tic tac toe
Stilgart: Simon21: en pratique, ça marche bien si tu peux jouer la game jusqu'à bout
b0n5a1: 60
domak: bon du coup Vry, tu fais comment pour ton score quand tu as une branche qui fait plusieurs BREW?
Zakaoai: Dire que j'aimerai la même mais que mon eval est tout pourrie :'(
b0n5a1: Vry il va vous fummer et faire top 5 gold
Vry: domak : comme Bob
Stilgart: https://www.codingame.com/multiplayer/bot-programming/tic-tac-toe
Vry: cumul avec decay
Stilgart: (UTTT)
Simon21: j'essaierai à l'occasion
domak: et tu prends pas que les toutes petites potions?
Vry: 20/20 :money_mouth: Mission accomplie
Stilgart: en vrai, je crois qu'il y a plus simple mais il faut demander à ceux qui font les multis de la commu
b0n5a1: si là tu passes pas...
domak: gg d'avance Vry
b0n5a1: 25 @25% ^^
Stilgart: je sais que dwarfie à des mcts ailleurs
Fangel: moi je fais que du beam search
Fangel: joueurs séparés
Fangel: le mcts, j ai peur d'être trop limité en profondeur
Vry: Au final, le code est d'une simplicité : un BFS brutal avec très peu de règles
Stilgart: Fangel: c'est encore pire avec un beam search, non ?
Zakaoai: combien de depth du coup Vry ?
Stilgart: enfin bon, je dis ça, mais ça fait des années que je me dis d'en faire un vraiment et que je le fais pas :(
b0n5a1: 5e Vry ça passera large
Stilgart: (pour le coup, si quelqu'un a un puzzle autre que HS où le beam search marche bien, je prends)
Zakaoai: J'aimerai avoir ta progression Vry ^^
Fangel: Stilgart, en fait ça doit un peu revenir au même quand j'y pense.
b0n5a1: un petit renvoi dans les cordes...
Stilgart: dans ma vision, un beam search va encore plus en profondeur (là où dans un MCTS tu peux toujours couper quand tu veux avec une fonction d'éval)
Stilgart: tiens, mais mon bot est sur le point de revenir à sa place de mid-gold en fait...
Vry: Zakaoai : parfois 9
Stilgart: mon if est juste moisi contre le low gold alors ?!
Vry: c'est le max sur cette partie : https://www.codingame.com/share-replay/507382550
Zakaoai: Ah oui quand même.
Zakaoai: Tu lui a fait bien mal
Fangel: Fais attention Vry tu risques de passer or direct là !
Zakaoai: Oaip reste un peu on est bien silver
egaetan: Allez Vry
Vry: Le nombre de node est relativement variable : entre 201184 et 1547678 mais le décompte est incomplet
Bob: Vry ça va mieux du coup ?
Zorg1: il a trouvé son bug je crois
Stilgart: Vry: tu comptes quoi exactement ?
Vry: Stilgart : j'ai les nodes de la dernière depth complète ... pas ceux qui ont été fait pour rien
Vry: Devant le boss ...
joelthelion: bravo
joelthelion: merci de m'avoir piétiné au passage :)
OldDadou: Vous modelisez votre jumelle dans le BFS ?
OldDadou: (avec le decay, c'est ca ?)
Vry: Désolé jolindien
Vry: Il y a aussi aCat qui passe, il est plus fort
egaetan: oui à côté de la poubelle OldDadou
Vry: OldJohn : non
Vry: uniquement brew et cast
Vry: et rest
Vry: pas de learn dans la recherche
domak: Vry, Je fais un gros blocage moi... si tu as une branche qui va faire une potion 8 à depth 5 suivi d'une 11 à depth 8, ça vaudra plus qu'une branche où je fais qu'une seule potion 15 à depth 5
domak: donc tu peux pas additioner c'est pas logique!
domak: 8 * 0.9.pow(5) + 11 *0.9.pow(8) ça vaut plus que 15 * 0.9.pow(5)
Vry: L'incertitude ...
Vry: ... des profondeurs
Vry: En tout cas : ça marche !!!
JBM: egaetan: alors, ça streame ou ça boit?
egaetan: JBM ça pleure
JBM: t'as fait ça la majeure partie de la semaine
Stilgart: domak; tu as essayé la somme des scores sur les X prochains tours ?
Vry: #1 Silver
Stilgart: (X=20 par exemple)
Traquila: gg vry
Zorg1: gg vry
JBM: Vry: tu ne m'impressionnes pas ;p
egaetan: JBM c'est pas faux
egaetan: il va être temps de boire
domak: je pense pas aller aussi profond
**Stilgart a la musique de popeye en tête là
Stilgart: domak: justement
Stilgart: pour que ce soit comparable d'une branche à l'autre, il faut compter de la même manière
Stilgart: (meme si la branche s'arrête avant)
Vry: Voilà des chiffres plus précis : j'ai entre 1 200 000 et 1 400 000 nodes par tour (45ms)
Zorg1: belle perf
JBM: mais est-ce que c'est des Bons nodes?
Stilgart: wow
domak: stilgart j'ai un bfs donc tout le monde est à la même prodondeur mais je dois m'arrêter à 8 faute de temps
Vry: JBM : tout ça pour prendre le premier node généré ...
Stilgart: Vry: c'est quoi ce décompte de fou ?!
domak: après, çe devient peut-être efficace qu'à une grosse profondeur
Zorg1: bon vry tu tentes le double jump? :p
Stilgart: ha mais... mcts, c'est vrai...
JBM: jump c'est une nouvelle orthographe pour hulk?
Vry: Stilgart : ben c'est le nombre de node créér par mon BFS
Vry: *créer
JBM: si y'a pas de malloc ça nous impressionne pas
Vry: Non j'ai un tableau de 4m nodes au cas où ...
JBM: tout le monde a encoredes timeouts random, c'est pas que moi?
Vry: Non là ça va je trouve
Fangel: ah j allais poser le même question
Fangel: mais oui ça va beaucoup mieux qu'il y a une heure
JBM: Fangel: merci de ta réponse partielle
JBM: bon si j'allais coder au lit
Vry: Suspens de fin de submit ...
Vry: .. je repasse devant
Fangel: intenable !!!
Kirbiby: gg Vry :)
Vry: Ouais on trois en même temps et ils m'embêtent un peu les deux autres
egaetan: Allez !
Vry: J'ai soif, laissez-moi passer :tumbler_glass:
Vry: Je suis sur une bonne série à 80% ...
Vry: Merci Kirbiby
Zorg1: y a un mur à 100 en gold ou c'est juste mon bot qui s'essoufle ?
Stilgart: Zorg1: je le vois un peu en dessous le mur moi
Bob: t'en es où ?
Stilgart: 150-180 gold
Stilgart: mais bon, j'ai fais un run pourri
Zorg1: la fonction de decay en 0.9^depth a l'air de bien marché pour moi
Zorg1: pê ajouter une phase de learn sur N tours
LoganWlv: D'où elle sort cette fonction ?
Stilgart: Zorg1: j'ai testé la phase de learn et c'est pas top pour moi
b0n5a1: truc typique à la mode de RL
Stilgart: bon, par contre, mon fix du endgame semble avoir un effet positif
Stilgart: ou alors c'est la chance du first 10 (8/10)
Vry: +que 5% et +0.35
Bob: LoganWlv: c'est une formule basique assez efficace pour représenter l'incertitude sur les coups plus lointains
Zorg1: mon first 10 était pourri (4/10)
b0n5a1: tu passes
b0n5a1: au pire dans 10 min t'es poussé
fermeaux: en fait vous faites tous des bfs
Vry: Oui mais si je pouvais gagner mes derniers matchs, ce serait plus sympa ! :)
b0n5a1: arf -0.04
Zakaoai: Bon bah on relance le code mais 6/10 ça va être lent
Bob: il est à combien de score, le boss ?
Vry: Et ben nan -0.4
Vry: Et ben nan -0.04
b0n5a1: lol
Bob: arrête de respirer Vry :)
Stilgart: go go go attendre :(
b0n5a1: attend un peu
LoganWlv: @Bob D'accord merci
Vry: Je vais devoir attendre une poussette
Kirbiby: va dodo
Kirbiby: et demain bim
b0n5a1: ou repush vu comme tu montes
Zakaoai: Damn j'arrive à TO avec un Bean Search :'(
Vry: J'attends un peu !
b0n5a1: faut pas chercher des haricots aussi....
domak: Bob, la somme des scores ça marche que si tu vas vraiment profond... moi à depth 8-10 c'est juste une cata
Here_s_Chopi: T'as penser à mettre une limite ?
Vry: Nan domake c'est ce que j'ai en depth
Vry: J'ai plus de gestion des doublons
domak: ah c'est peut être ça mon souci
Stilgart: domak: ok
domak: mais si je la mets pas je pars en timeout
Vry: Deux candidats pour secouer le top #10
Stilgart: c'est vrai que si tu n'as pas de chemin à au moins 2 popos ça risque de pas le faire :(
Bob: Vry désolé je peux pas redescendre pour piétiner le boss comme tout à l'heure
Vry: Y'a de l'activité ça va le faire
Zakaoai: si on s'arrete depth 4 domak c'est quoi le mieux ? Car la je somme le score avec un pow 0.9
Traquila: t'es au dessus
Vry: :nerd:
Vry: :sunglasses:
egaetan: gg Vry
Zorg1: alors passe ou pas ?
Vry: Wow ... j'étais au dessus !
Zorg1: nice
Zakaoai: damn on me casse ma chain a 10
Eldritch: tu racontes ?
Vry: Ah ben si ! :p
Vry: Merci Bob !
Eldritch: trop tard il est parti
Bob: oh ben de rien moi j'ai juste écouté YannT et PhOeNyX
PhOeNyX: :joy:
domak: Zakaoai moi je m'arrête soit si je trouve toutes les potions, soit sur un timeout et je prends le meilleur price * 0.9epth
Vry: Ben PhOeNyX, tu sais ce qu'il te reste à faire
Stilgart: domak: toutes ?
Stilgart: pourquoi pas essayer avec juste un couple de potions ?
domak: bein mon bfs me les ramène toutes
domak: sinon timeout
domak: et je prends le meilleur de ce que j'ai
Stilgart: ha mais... toutes comme dans ... 5 chemins de une potion ?
domak: oui
Stilgart: je trouve que c'est mieux de viser des chemins à deux potions
domak: un chemin par potion et dès qu'on trouve on s'arrête
eklore: yop
Stilgart: ça lisse le follow up du 1er brew
JBM: aaaaah mais j'avais pas vu qu'errichto avait inséré un stream surprise dans son planning
Zakaoai: Bah pour ça il faut de la depth du coup pour viser des chemin à deux potions ^^'
domak: oui
JBM: veuilldz ginorer toutes mes remarques à son propos de l'après-midi
domak: et si tu vas pas assez loin je pense ça marche pas bien
domak: ou alors j'ai un gros bug
Zorg1: c'est pas impossible ça
Zakaoai: Bah vu que je vais à 4 avec du Beam Search et que ça TO déjà ...
eklore: Je ne comprends pas trop comment vous pouvez générer des états comme ça à l'aveugle.
Zorg1: comment ça "à l'aveugle" ?
eklore: bah genre n potions , ou alors un couple de potions ou alors 3000000000 états
eklore: moi mon BFS me sert à trouver le chemin le plus court pour une potion.
eklore: mais pas deux.... J'en veux deux, je le lance deux fois
Vry: Au départ je faisais ça eklore ... et en début de semaine mon BFS v1 parcourait 2k node ...
Karang: si t'en veux deux tu repart de letat apres avoir brew la premiere potion
eklore: Vry pareil ^^
Stilgart: Zakaoai: depth 15
Vry: ... ensuite je suis passé au MCTS et j'ai dissocié les données du jeu de l'arbre de recherche et ça ma fait gagner pas mal en perf. mais pas en résultat
Stilgart: (en vrai, 12 ça doit déjà le faire)
Zorg1: parfois mon truc va à depth 55 je dois avoir un bug :thinking:
Zakaoai: mais vous êtes trop chaud avec vos depth 15 c'est comme si vous aviez déjà sondé 1/3 de la game ...
Zorg1: ou j'élague trop
Stilgart: Zorg1: pas forcément
eklore: La mon algo prend les deux premières potions, je fais le calcul pour moi et mon adversaire, et je choisi laquelle suivre
Stilgart: au début, les chemins sont très restreints
eklore: mais d'après ce que je comprends, c'est pas trop ça que vous faites....
Zorg1: oui ça se passe troiq-quatre tour après le début
Karang: surout que 15 ça sert pas a grand chose la moyenne des plus courts chemins et autour de 6-7 et le max que j'ai vu ça doit etre 13
Vry: ... et enfin je suis revenu sur un BFS où le principe de base était de manipuler le moins de données possibles : donc je ne travaille qu'avec 58 bits pour l'état du jeu plus un float pour le score
Stilgart: moi la depth est décroissante au fur et à mesure des tours
eklore: 58 bit ? je suis à 56 octets !
Vry: et je suis passé à 1000k node
Zorg1: je gère ça sur un entier les score
Fangel: les parties durent 30 tours environ avec les 8 premiers qui sont des learns
Stilgart: mes nodes font 48 bits, mais je fais beaucoup moins de noeuds :(
Vry: Mais il ne faut pas être impressionné par les chiffre, car si je passais sur un algo de recherche plus évolué les perf. chuterait mais j'aurai plus de profondeur
Karang: oui 30 tours à 6 potions, la moyenne est autour de 5
Bob: 56 octets ?
Bob: ce luxe
Bob: monsieur a les moyens
eklore: atta, j'ai taffé comme un malade pour arriver à 56 octets !
Bob: entre l'état du jeu, la réf au parent et le score, j'ai 20 octets au total
yamo: vous avez une eval pour choisir les LEARN ?
Stilgart: eklore: c'est déjà bien hein
Bob: yamo : learn 0
Zorg1: 52 octets mais j'ai pas trop fait gaffe je dois devoir le réduire
eklore: rien que l'identifiant du noeud c'est un long !
Bob: un long ?
Bob: un int32 suffit pas ?
eklore: oui bon, j'ai vu large, vu que je pars en TO avant ^^
Zakaoai: perso je répartie les cout des LEARN yamo
Stilgart: j'ai un int32 aussi
Vry: les nodes du BFS font 22 octets (ça inclu le state, le score, la commande et ses paramètres)
eklore: mais l'inventaire, c'est un long
Zakaoai: mais je suis silver alors bon ^^'
Zorg1: c'est quoi "l'identifiant du noeud" ?
Bob: l'inventaire un long ?
Bob: c'est 4 char
Zorg1: les ingrédients ?
Traquila: inventaire 16bits
JBM: reverse le seed, ou mettre le decay?
Bob: JBM : decay
Vry: L'inventaire c'est 0..1001 pour certains, mois je suis sur 13 bits
Bob: sans aucune hésitation
JBM: c'est la voie de la facilité, non?
YannT: reverse le seed?
Bob: oui
JBM: bon c'est pas comme si ça prenait 10'
Bob: j'étais hard stuck top 50 silver, j'ai rajouté le decay, j'ai mis 1.5 point au boss
Vry: Il faut que je nettoie ce bot il y a plein de code mort ... dedans .. un vrai bordel ce truc !
eklore: bah un char c'est deux bytes, non ?
JBM: j'ai une todo list longue comme le bras
YannT: c'est quoi reverse le seed?
Zorg1: trouver le seed du RNG utilisé par le referee
Stilgart: YannT: ce que tu penses de plus fou
b0n5a1: YannT trouver le seed du moteur pour prédir les popos
Karang: si tu connais le seed de la game, tu peux prédire les prochaines potions/spells
b0n5a1: et les sorts
Zorg1: afin de savoir quels sont les futurs potions, spells ...
Stilgart: savoir à coup sur ce qui tombe après
JBM: ben la légende justement, fait ça
Zorg1: c'est bon 3 explications, il a du comprendre ^^
YannT: ah
YannT: c'est pas joli joli
Stilgart: bah, ça coute du temps
b0n5a1: bah si
JBM: mais c'est parce que j'ai pas encore essayé
Zorg1: ça avait été fait sur C4L mais il parrait que c'est plus difficile maintenant
Stilgart: mais bon... learn 0 en attendant c'est pas mauvais...
JBM: peros je pense que meme pas tant que ça
JBM: ça coute des cyclescerveau
b0n5a1: Zorg1 c'est passé de 1 milliard à 2^64
b0n5a1: 1 milliard c'était brute forcé
Zorg1: je t'avouerais faudrait que je regarde plus en détail
b0n5a1: for (s = 0; ...
Zakaoai: Bon bah top 500 silver
Zorg1: genre le gars m'explique ce que c'est le Brute Force ^^
eklore: Bob 4 entiers entre 0 et 10, le minimum c'est 16 bits, non ?
b0n5a1: toi t'as pas vu la discussion JBM reCurse... j'ai fait exprès
Bob: oui oui
Stilgart: eklore: non
Zorg1: b0n5a1 : si je l'ai vu ;-)
reCurse: ?
b0n5a1: ha
JBM: discussion biaisée par le fait que mon isp a crash en plein milieu
Stilgart: parce que c'est pas 4 entiers entre 0 et 10
Bob: j'ai mis 4 chars pour aller vite :p
Stilgart: la somme peut pas dépasser 10, ça limite pas mal
Bob: mais effectivement on peut gratter
b0n5a1: reCurse rien, c'est quand t'avais demandé à JBM si il parlait à Magus sur le BF
eklore: mmmmm
Stilgart: reCurse: c'était un free hl :)
b0n5a1: désolé ^^
Fangel: 4 entiers entre 0 et 10, c est 1 entier entre 1 et 11^4...
JBM: cette histoire s'améliore à chaque fois qu'on en parle
**Stilgart devrait s'excuser aussi :p
joelthelion: bon, je viens de switcher de DFS à BFS, ça a l'air pas mal
b0n5a1: perso je me suis marré
eklore: Fangel Je relis, je relis ^^
eklore: mmmm
Vry: Ah coucou Stilgart ... on est voisin de ligue
Stilgart: wow
Stilgart: on t'a poussé finalement ?
Stilgart: ou tu as resubmit ?
yamo: bon, je tape aussi le mur gold !
Vry: Poussé
Stilgart: bah putain...
b0n5a1: non Stilgart, Vry fait du rocket jump
eklore: remarque, le plus grand nombre (autre que tout rempli) c'est 9000
Zorg1: quand je pense le temps qu'a mis mon bot pour grimper le leaderboard jusqu'a #80 :(
eklore: 9100
Stilgart: eklore: on remplit facilement
xurei: j'avais oublié à quel point C++ etait pas aidant sur les erruers
VincentBab: gg Vry ^^
xurei: je croyais pas dire ca un jour, mais java c'est pas si mal
Zorg1: dis pas ça ici xurei
b0n5a1: c'est quoi ton erreur xurei
Zorg1: les javaHaters vont te tomber dessus
Vry: Merci VincentBab
Stilgart: Zorg1: nan, on va pas juste lui tomber dessus, c'est pas assez violent :D
Vry: La team Turtle va s'occuper de son cas ...
Stilgart: go go go Automaton2000
Automaton2000: bah si t'as pas un peu le bazar
eklore: ok je vois comment le faire tenir sur 14 bits...
eklore: mais pas en dessous ^^
eklore: bref.... pourquoi c'est utile de descendre autant en taille ? Les opérations pour "remonter" 56 bits dans un état exploitable, ne vont-elles pas annuler le gain obtenu ?
yamo: java, c'est pas si mal. Mais Scala est tellement mieux :)
Zorg1: faudrait quand même que j'essaie scala un jour
Vry: eklore : tant que tu n'auras pas testé tu ne sauras pas !
eklore: ^^
b0n5a1: eklore à coup de masques et bit shifts ça coûte pas des masses
eklore: je vais déjà améliorer mon algo pour répondre correctement
Bob: j'allais dire, les bit shifts et les opérations logiques c'est très rapide
egaetan: VincentBab c'est quoi ce run tout pourri ?
YannT: boon, va falloir que je me fasse une raison: ma version optimisé au poil de fion fonctionne pas
cocoche007: Moi je suis toujours partagé entre gain en performance et recherche d'une bonne eval
Bob: et quand ta copie d'état c'est affecter un long...
VincentBab: jsais pas je tente des truc :/
YannT: elle fait ~100 quand l'ancienne fait ~50
cocoche007: Sans maitrise, la puissance...
YannT: doit y avoir une bug quelque part dedans, mais j'arrive juste pas à voir ce qui clocke
YannT: marche pas
eklore: je vois, merci.
cocoche007: Ta montre
VincentBab: quand j'utilise une hashtable qui gère pas les collision ca fonctionne mieux wtf ?!
cocoche007: .... qui clocke
eklore: Mais vous êtes bien obligé d'avoir un identifiant de noeud, et un lien entre les noeuds ?
Vry: Faut, que je remette ma hashtable pour voir ...
Vry: eklore j'ai juste l'index du parent
eklore: j'ai pareil
Vry: Mon arbre c'est un tableau
b0n5a1: le parent suffit
cocoche007: Ouah, viend de faire 120 points en 44 coups, cool !
eklore: newState.previousId = state.Id
eklore: Ca me rassure ^^
Vry: 150 ... et puis 138 après "stabilisation" ... lol
eklore: je vais ptet pouvoir descendre à 40/45 octets .... Mais alors 56 bits ... je ne m'en remets pas ^^
Bob: gg vry
Vry: Voilà donc mid-Gold pour un algo relativement simple (mais optimisé)
Vry: Et encore merci Bob !
Bob: vraiment de rien
Vry: :blush:
Bob: sur ce, je vais dormir du sommeil du juste
Vry: +1
Bob: bonne nuit les sorcières
cocoche007: bn Bob
Zorg1: bn bob
Vry: C'était les trois sorcières aujourd'hui d'ailleurs ...
b0n5a1: eklore admettons t'as 20 sorts, 5 potions, 6 learns...que t'affecte à 31 bits...il te reste de la marge pour des trucs encore
Vry: l'invetaire
Vry: *inventaire
b0n5a1: ouais
Vry: et ce qui reste pour le cast
eklore: C'est des long à chaque fois ... mais c'est un peu con , je dois pouvoir faire mieux
eklore: public long MyCast;
eklore: public uint Inventory;
eklore: my cast est un long car le bit à 1, c'est l'indice dans ma collection de spells ....
Vry: Faut passer au niveau inférieur : le bit
Greg237: Je suis impressionné par votre capacité à optimiser au bit près.
eklore: 8ème bit => 8ième sort de la collection des sorts
Vry: inline uint64_t _pack_state(int8_t brewed, int8_t learnt, int8_t t_inventory[4], uint64_t castable)
Greg237: Vous croyez vraiment que c'est nécessaire pour aller loin dans le contest ?
Vry: Non Greg237 !
eklore: ^^
YannT: j'ai refait mon bot avec tout le state dans un long et ça marche: pas du tout
eklore: :D
Vry: C'est nécessaire si tu veux de la performance mais la performance ne fera pas la force de ton bot mais ça peut aider s'il est bien codé
YannT: je suis infinie tristesse je trouve pas le bug
eklore: mets ça tranquillement dans 56 octets ....
Vry: YannT, t'es en Gold c'est cool !
YannT: je voudrai bien passer légende quand même
VincentBab: non légend c'est cool :D
Vry: :sunglasses:
YannT: du coup j'aii rollback sur ma version d'arene actuelle
Greg237: Je suis en gold sans aucune opti, je commence à me dire qu'il va falloir que je fasse comme vous si je veux aller plus loin...
Vry: Moi je m'en fou je suis déjà rouge ... :p
YannT: je vais chercher le quickwin sur ma version pourrie mais qui performe mieux qui va me permettre d'arnaquer un passage en léggende :D
Vry: Mais passer en légende ce serait cool mais pas trop de temps ce wee-end ... donc sauf arnaque pas évident
eklore: Bon merci de vos conseils, j'y retourne, c'est pas comme ça que je vais gagner le concours !
Vry: En effet, le chat c'est sympa mais ça ne fait pas avancer le bot
eklore: :)
VincentBab: WTF: https://www.codingame.com/replay/507445884
YannT: j'en suis là, j'ai rollback 2jrs de reffacto et je vais chercher l'arnaque légende
Stilgart: :(
Stilgart: habve faith
Stilgart: -b
YannT: j'ai eu faith 2 jours
YannT: ça marche pas
BlueGhost31: VincentBab au moins tu n'es pas fanny ;)
Zakaoai: Si tu peut donner l'arnaque pour passer gold je veut bien YannT :p
eklore: OUAAAHAHHAHAHAHAHA
YannT: je soupçonne fortement un problème de collisioins qui me fait perdre un gros paquet de states mais j'arrive pas à le prouver
eklore: j'avais pas vu, je peux analyser toutes les potions + mon adversaire en un seul tour !
YannT: ou alors j'ai un bug tout à fait ailleurs
YannT: je laisse tomber, c'est cassé
YannT: arnaque maintenant, j'ajoute des ifs jusqu'à ce que ça passe en légende sur un malentendu :D
eklore: bon je repars, mes avancées de moulasse sont pas forcément super intéressantes ^^
Zakaoai: Bah ce que je tente aussi YannT mais à mon level
Greg237: YannT, lol, si tu trouves le bon "if", n est tous preneurs.
Greg237: VincentBab, tu trouves pas de potions et tu vas naturellement remplir ton inventaire de tier-3 avant de plus rien pouvoir faire ?
VincentBab: en fait je me fait piquer la potion que je veux faire et je suis bloquer lol
Greg237: lol, ça m'arrive aussi de temps en temps.
VincentBab: faut vraiment que je gère l'adversaire :/
VincentBab: allez au boulot !
Stilgart: bon, le decay ça marche pas dans mon approche
Stilgart: je vais plagier mais
Vry: Dommage ...
Stilgart: " faut vraiment que je gère l'adversaire :/ allez au boulot ! "
Zorg1: m'ouais moi la série de learn initial ça a pas l'air d'être ça
Vry: J'avais commencé un BFS qui faisait ça ... avec un double state du coup ...
VirtuaL42: tu as trouvé un moyen de merger les deux du coup ou tu fais juste en solo avec une bonne eval ?
egaetan: VincentBab courage ! on va y arriver
VincentBab: ca passera pas avec mon code actuel je pense :/
Vry: VirtuaL42 : j'ai un seul arbre et chaque profondeur correspond à un joueur, pour refaire l'état d'une partie je dois prendre deux states : celui du node courant (opp) et son père (moi)
egaetan: il y a une marche enorme pour l'atteindre ce boss
Vry: Y'a un peu de gymnastique entre le père et le grand père mais ça fonctionne, mais c'est encore expérimental.
SeebOmega: moi peut importe les bugs que je fixe ou les coefs que je modifie mon bot bugge en arene est plus fort que moi je desespere
Vry: Automaton2000, are you a lie?
Automaton2000: bien le bonjour a tous
SeebOmega: Automaton2000 = cake
Automaton2000: bon bah je vais tester ça
b0n5a1: bug tortue BFS tortue timeout tortue
Zorg1: WOW egaetan
Vry: Il est énervé
egaetan: je suis pas sûr d'avoir assez de win
egaetan: il me manque 1.20
egaetan: à68%
VincentBab: go go go !
egaetan: en plus VincentBab il pousse plus
VincentBab: xD
Zorg1: méchant VincentBab :(
egaetan: il encourage ok, c'est dejà tres bien
Karang: faut que le niveau global augmente pour faire descendre le boss
Zorg1: ezpz
VincentBab: je relance => 2 loose d'entrée lool
BigUP: VincentBab, la chance du débutant !
SeebOmega: Quelqu un a de la doc ou des sources concernant un mcts mais avec un score (etant donne qu on peut pas savoir si on va gagner ou pas pendant un bon bout de temps de game) j'essayes de chercher des sources mais la plupart de temps cela parle de ratio win/lose
egaetan: oui MCTS le principe c'est pas d'eval
egaetan: on a juste win/lose
SeebOmega: ok je vais chercher une autre inspi car je me sent stagner avec mon MC la
SeebOmega: -t+s
_Royale: il est à combien le boss gold ?
Zorg1: 45.34
_Royale: merci
egaetan: _Royale tu t'inquietes que je te ratrapasse ?
_Royale: non c'est pour suivre l'action !
VincentBab: pourquoi on peut pas voir le score du boss des ligue inferieur d'ailleurs ? :/
egaetan: on peut le trouver dans cgstats maintenant
egaetan: http://cgstats.magusgeek.com/app/fall-challenge-2020/egaetan
VincentBab: ok cool :)
VincentBab: des que je change la moindre variable ca fait un run pourri mdr
VincentBab: jvais prendre mon code de silver pour voir MDR
egaetan: Go Fangel !
Fangel: ah si seulement ;)
Fangel: mais il manque encore un petit quelque chose en plus de la chance
ThomasNicoullaud: des spécialistes en médecine dans le coin ?
ThomasNicoullaud: quelstion conne
b0n5a1: on sait jamais ^^
cocoche007: Tu cherche à faire un Algo Gen pour créer un vaccin
cocoche007: Vois avec Agade, Bosse chez Roche
ThomasNicoullaud: je cherche a stop le saignement d'un angiome de ma fille de2 ans depuis 1h
cocoche007: Compresse suffit pas
cocoche007: Pierre alun est hémostatique
moarrrr: bonsoir, est ce normal d avoir entre 15 et 20ms d elapsed juste pour lire les inputs en java ?
moarrrr: juste la première boucle même !
b0n5a1: ThomasNicoullaud quelle zone corporelle l'angiome ?
b0n5a1: (j'ai juste le PSC1)
cocoche007: moarrrr, mets ton timer juste après la lecture du premier input
linxuhao: c'est peut être le délais d'attente de ton adversaire, faut commencer à compter le temps jsute aprés le 1er input soit lu
moarrrr: c est bien le cas :/
moarrrr: il est après l actioncount
linxuhao: :scream:
moarrrr: 20ms sur un round de 50 c est dur
cocoche007: Il doit y avoir autre chose
cocoche007: Tu fais pas un traitement pendant la lecture ?
moarrrr: non
linxuhao: creation de map qui se reorganise tous les 10 ajouts ? :thinking:
cocoche007: Vu le nombre d'entrés, peut pas être un problème de perf Java
moarrrr: sur mon test j exploite meme pas les input :D
moarrrr: je lis la boucle
moarrrr: j en fais rien
moarrrr: roundStart = System.currentTimeMillis();
cocoche007: Pour tester, prends le code original et ajoute ton log
moarrrr: (System.currentTimeMillis() - roundStart
moarrrr: ces deux lignes donnent bien des ms ?
moarrrr: yes
cocoche007: Je viens de tester
cocoche007: Le premier tour : 18 et les suivants entre 0 et 2
moarrrr: oui je vois ça aussi
ThomasNicoullaud: c'est bon SOS medecin est venu avec un produit miracle coagulent et 2 strips ! Bonne nuit messieurs !
b0n5a1: ok, tant mieux
cocoche007: coalgan ?
Zakaoai: bonne nuit ThomasNicoullaud
b0n5a1: j'attendais ton retour pour mp
b0n5a1: bonne nuit ThomasNicoullaud
ThomasNicoullaud: SOS médecin c'est pointé en 15min , efficacze
moarrrr: sinon le 15 dans ces cas la, tu epux avoir un médecin au tél
moarrrr: rapidement
cocoche007: Normal, Ils se battent tous pour pas faire de covid
cocoche007: Bon, allez bn. Je vais rêver d'une super éval
moarrrr: merci pour ton aide coche
moarrrr: cocoche
cocoche007: De rien même si je ne sais pas si cela va t'aider
moarrrr: la nuit portera conseil :p
b0n5a1: bon, pareil aussi, bonne nuit !
Zorg1: bon j'arrête moi aussi, je suis crevé ;-)
Lysk: domak c'est chaud de sortir du fond de la gold!
Zakaoai: ah bah toujours :D
Stilgart: Lysk: c'est pas mieux au dessus :(
Zakaoai: laisser moi déjà avec mes problemes de silver ;'(
smeagol: Bonsoir
Zakaoai: Bonsoir
smeagol: https://russianaicup.ru/
smeagol: ca va commencer demain ?
smeagol: ou bien les tests
Zakaoai: Bah c'est ce que marque leur gros titre ^^'
smeagol: que est ce t'a compris ?
Zakaoai: Bah il parle bien de beta-test le 21/11
Zakaoai: donc je dirais que le challenge est pas encore ouvert.
smeagol: ce que je pense aussi
smeagol: Merci pour l'information
Stilgart: Automaton2000: j'ai un bug !
Automaton2000: à quoi ça sert ?
Stilgart: Automaton2000: à rester coincé en gold
Automaton2000: ouai... ca manque de contexte
Stilgart: et de tortues aussi
Neumann: Tu fais quoi _Royale ? :D
_Royale: Neumann: je galère !
Neumann: Haha
Neumann: Je te voyais chain push à 5% des runs
_Royale: oui je pense qu'il est temps d'aller dormir ;-)
VincentBab: go go egaetan !!
Zakaoai: Oaip je pense qu'à 3h30 on pense trop lentement ^^'
Neumann: Coucou reCurse
VirtuaL42: la fusée :D
egaetan: il a cramé la moitié de ses mathcs pour arriver là
egaetan: propre mais pas si fusée
VincentBab: ya plus de carburant dans la fusée
egaetan: VincentBab tu es bien aussi fonce
VincentBab: meilleur run que j'ai fait pour l'instant
VincentBab: solide reCurse ^^
VincentBab: ca va pas suffire pour moi
VincentBab: reCurse a rouler sur tout le monde lol
egaetan: gg reCurse solide
VincentBab: gg reCurse ^^
Eldritch: ouiiii ca y est 1,5 point d'avance sur le bot silver
Neumann: Allez un ping de plus pour reCurse
Stilgart: gg reCurse
Stilgart: go go go VincentBab
Eldritch: les petits ajustements à la con qu'on peut trouver parfois a 4h du mat
VincentBab: ^^
Zakaoai: On trouve pas les même ^^'
VincentBab: bon maintenant faut me push les gars :D
Karang: jveux bien mais faut arriver a te rejoindre déjà
Eldritch: on peut se donner rdv au milieu si tu veux
Zakaoai: Le dernier ajustement du soir. Ne pas faire de potion trop rapidement si je perd et que la potion me fait pas gagner ^^' J'en suis là
Eldritch: ah le patch de la 6ème potion je l'ai aussi faut pas en avoir honte
Stilgart: Zakaoai: conseil que je devrais déjà appliquer à moi même :
Stilgart: si ça passe pas, c'est que tu as un problème de fond
Karang: le machin qui fait que le bot réalise qu'il a perdu et qu'il passe son tour en regardant l'adversaire l'exploser :D
Eldritch: oui d'accord avec ça, finalement plus je m'éloignais de 22h pour aller vers 4h du matin, moins je faisais attention aux potions
Stilgart: j'arrive pas à faire la différence entre une partie très serrée contre reCurse et une partie où il m'explose
egaetan: tu as eu une partie très serrée ?
Stilgart: dans mon code en IDE j'ai moitié moitié
Stilgart: mais je te rassure, j'en gagne pas une :D
Zakaoai: Je m'en doute bien Stilgart. Que si ça passe pas c'est surtout à cause de l'éval qui est pas bon.
Stilgart: je m'étais dis naivement que ce serait plus facile de voir ce qui ne va pas quand je perds de 25 points... mais non
Stilgart: Zakaoai: ou de l'approche générale, ou d'un gros bug
Stilgart: en fait, quand tu crois que tu n'as plus de bug, cherche le bug
**Stilgart en a corrigé un très gros il y a une 1h
Zakaoai: Bah là par exemple je viens d'enchainer 3 victoire au boss
Stilgart: après, fais attention au boss
Zakaoai: Donc quelques part je me dit que je suis pas deg
Stilgart: c'est courant d'avoir un bot qui explose le boss, et qui finit mid silver
VincentBab: omu qui fait un gros run
Karang: le boss faut déjà y arriver
Stilgart: ça s'appelle l'excès d'adaptation
Stilgart: tu es bon contre le boss, mais tu sais plus gagner contre le bas de ta ligue
Stilgart: je conseille souvent d'essayer plutôt d'écraser la seconde moitié de la ligue
boumagik: je préfère défoncer le boss perso
Zakaoai: Bah après le soucis Stilgart c'est que plus je parle au gens ici plus les gens arrive loin dans la profondeur là ou je TO
boumagik: le bas de la ligue après c'est un problème mineur
Stilgart: boumagik: sauf que si tu perds contre le reste du top10, tu restes stuck :D
Stilgart: pas vraiment
Stilgart: si tu mets 90% de run à passer page 1, c'est mort
boumagik: oui mais si t'arrives à gagner contre le boss, c'est qu'il y a certainement quelque chose que tu fais bien
Stilgart: page 1 = top 17 (pour moi)
boumagik: et quelques autres choses mineures qu'il suffit de corriger
Stilgart: Zakaoai: oui, mais tu parles pas à des vrais gens
boumagik: souvent des bugs cachés dans des if disséminés
Stilgart: (regarde les profils ;) )
boumagik: et qu'on pensait fonctionnels
Stilgart: ha non
Stilgart: c'est faut ça
Zakaoai: Ah c'est ça ce sont des robots eux même
Stilgart: j'ai vraiment vu des cas où j'avais quasi 100% contre le boss et où je faisais très mal
Zakaoai: C'est pour ça qu'ils font de bonne IA
Stilgart: cheese foireux qui marchait que contre le boss
Zakaoai: J'ai pas 100% sur le boss par contre ^^' faut pas déconner
Stilgart: ce qui serait cool, ce serait que reCurse indique quand il sait que j'ai perdu par un message :/
boumagik: moi je maintiens que si tu bas le boss avec un ratio > 50% certifié, t'es à des if près, pour ce qui est du reste
Stilgart: bah c'est très faux
egaetan: boumagik completement faux
Stilgart: (bon, pour un boss bronze sans doute que c'est vrai)
boumagik: expliquez moi alors
egaetan: exemple, linky tu learn les 42 sorts il explose
boumagik: j'ai fais légende sur quelques autres contest
boumagik: c'est mon expérience
egaetan: et pourtant...
Stilgart: écoute, à la plupart des contests où j'ai fini gold, j'écrasais le boss gold
Stilgart: par contre, j'étais pas bon contre le méta qui campais en dessous du boss
Stilgart: voire je passais pas le mid gold
Stilgart: pour être promu, il faut être meilleur que les autres, pas seulement meilleur contre le boss
egaetan: tu as fait legende sur quels contests boumagik ?
Stilgart: à l'inverse, je suis passé plusieurs fois légende avec un ratio pourri pour contre le boss (et un bon timing dans le push)
boumagik: xmasrush, code à la mode, tron
Stilgart: XR et CalM les légendes étaient facilent
Zakaoai: Perso, je voit tout à fait ce que tu veut dire surtout que j'était dans le fond gold du Spring Challenge
VincentBab: Neumann push me please :D
**Stilgart a pas lutté sur ces deux là en tout cas
Stilgart: tron je sais pas, .... heu wait ?
Stilgart: tron non
boumagik: spring challenge j'étais dans le top 50 à l'ouverture de la légende
Stilgart: pas en *contest*
Stilgart: et pour les vieux multis, les légendes sont accessibles (beaucoup de vieux bots)
boumagik: c'est l'expérience que j'ai, après j'ai peut être pas fait autant de contests que vous
Stilgart: bah crois-moi, s'obstiner contre le boss c'est pas le meilleur plan
boumagik: je comprends
Stilgart: sauf que plus personne ne submite et que tu es vraiment un pouillème en dessous
Stilgart: sauf quand*
Stilgart: (petite pensée émue pour MM, tiens)
boumagik: egaetan, "exemple, linky tu learn les 42 sorts il explose"
boumagik: c'est un cas particulier
boumagik: quand je parle de gagner, c'est à la régulière
Stilgart: et ça marche pas du tout
Stilgart: mes parties elles se finissent en 30-35 tours
boumagik: pas en exploitant un "bug"
VincentBab: 0.24 du boss !
benobab: Quand on est premier on ne passe pas en gold ?
benobab: Je suis un peu frustré là :joy:
Stilgart: donc pas le temps d'apprendre tout le deck
Zakaoai: faut etre au dessus de premier benobab
Zakaoai: t'inquiete tu va avoir tes combats contre le boss
benobab: j'ai battu le boss 2 fois sur trois aha, tant pis une autre fois, merci pour l'info
benobab: je dois resoumettre ou juste attendre ?
egaetan: J'essaie de venir VincentBab
VincentBab: tu peux faire comme moi, juste attendre que quelqu'un te pousse ^^
VincentBab: me defonce pas trop egaetan xD
egaetan: il faut d'abord que j'arrive
Zakaoai: après benobab tu es en train de up laisse faire ;)
Stilgart: allez, push pour la gloire
benobab: d'accord on y croit :nerd:
Zakaoai: moi je relance :D
Stilgart: je vois pas comment ça pourrait passer ce que j'ai fait
Zakaoai: 9/10
VincentBab: tu es a combien du boss benobab ?
benobab: 1
Zakaoai: ça remonte vite :D
benobab: enfin 1 place si c'est bien ça que tu veux savoir
Stilgart: en score
VincentBab: non ton score ^^
benobab: 43.66
benobab: le boss je ne sais pas comment regarder
Stilgart: et le boss ?
Zakaoai: il est a 0.3 du boss
Stilgart: last battle -> leaderboard
Zakaoai: il descend en ce moment et est a 43.93
benobab: 44.02
benobab: le boss
benobab: je viens de découvrir comment fonctionne le scoring aha
VincentBab: tu vas passer tout seul a mon avis ^^
VirtuaL42: lol reCurse 3eme en legend :p
denosya: ça pique le top 10...
Stilgart: bah, normal
Stilgart: j'ai parié sur lui pour la win
benobab: VincentBab il remonte lui aussi, je reviens dans 10 min ^^
Zakaoai: ah rip benobab tu viens de descendre 2em.
Stilgart: erf, la série de loose
benobab: oui 0.8 d'écart, c'est mort tu penses ? Je vais essayer d'améliorer mes paramètres et relancer peut-être
Stilgart: normalement ça passe
Stilgart: mais bon, ça va dépendre de ton ratio contre le prochain qui va éclater le boss
benobab: ah oui je vois
Zakaoai: Faut que des personne descende le boss ;) ça sera pas moi :D
Stilgart: bon, la zone 60-70 gold elle me fait trop mal :/
VincentBab: reCurse top3 xD
benobab: fais un effort stp :p Zakaoai
VincentBab: gg ^^
Zakaoai: ah bah je fait que ça beaucoup trop de nuit qui se sont finit à 3h avec un télétravail le lendemain matin >.<
Stilgart: après, je gère toujours pas l'adversaire...
Here_s_Chopi: Courage ^^
Stilgart: ho, un egaetan
Zakaoai: Thx
egaetan: toute la gold ,elle colle aux semelles
Zakaoai: ça monte trop 200 silver
Stilgart: ho, il est déjà passé devant ?!
Stilgart: ha oui
Stilgart: la fusée...
VincentBab: ca feed le boss la !!:rage:
egaetan: c'est pas moi
Stilgart: ha mais Kawatta il était en train de run quand il m'a explosé :/
Stilgart: et en plus il feed le boss
leojean890: reCurse ne sort son main que lorsque top 3 ?^^
egaetan: comment il teste...
Stilgart: leojean890: il sort son main quand il en a un, et ça fait toujours mal
Zakaoai: fin de la monté je me suis stoppé à 157
leojean890: ouais j'avais vu ça^^
benobab: Zakaoai: dommage
leojean890: il push seulement quand il a un truc hyper solide
leojean890: même principe que ThomasNicoullaud en plus exigeant;)
leojean890: bon moi je suis 198/1776 silver hmm
Stilgart: bon, fin de run moisie ici :(
leojean890: avec un bug que je pige pas
Zakaoai: Oaip ça sera le dernier push du soir je pense
Stilgart: mais au moins, ça va taquiner la strat du dessus maintenant
benobab: Le score c'est le ratio de victoire sur ton run ?
benobab: Donc quand tu relances tu peux avoir un score assez différent finalement ?
Stilgart: ça peut
Stilgart: si tu veux un score précis sur ton bot, il faut attendre plusieurs heures après le submit
Stilgart: en 100 parties, le score obtenu est très imprécis
benobab: ok donc à 0.9 du boss, tu me conseilles d'aller dormir ou au contraire de relancer ?
benobab: :joy:
Stilgart: bon, je me demande s'il y a des gens qui ne gère pas l'adversaire à par VincentBab dans le top100
Zakaoai: Moi je me rend compte que j'utilise pas les bon paramètre pour savoir si dans mon beam search je doit rest ou pas :/ C'est quand le meilleurs moment pour utiliser Rest ? Comment valoriser ou dévaloriser ce move ?
Stilgart: oui, vas dormir, au pire tu relanceras demain
benobab: Deal !
Stilgart: Zakaoai: juste avant de lancer un sort pas castable
Stilgart: wow, 4h30 du mat...
benobab: Zakaoai : j'utilise rest dans un BFS à condition qu'il y ai un sort non castable
Zakaoai: Oui moi aussi benobab je rajoute l'action Rest seulement s'il y a un sort non castable. Mais je suis partie sur un score par noeuds et du coup Rest je sais pas quel valeur lui mettre
Stilgart: leojean890: ha oui, il a un secret reCurse aussi... tu n'as sans doute pas vu son stream sur le bitstream, mais le viewer attentif comprendra qu'il a toute une infra et des libs aux petits oignons pour gagner sur CG
dwarfie: bon c'est definitif ... pas pour moi cette fin de contest ... j'arrive a rien sortir de mieux que mon code d'il y a 8 jours ..
Stilgart: Zakaoai: si tu lances un sort qui était déjà castable juste après, mets un score de -oo,
dwarfie: et chaque nouvelle version est pire que la precedente ..
Gh0stm4chine: tu n'es pas le seul dwarfie tkt :D
Stilgart: le top silver a commencé à former un bloc malsain en dessous du boss ?
dwarfie: je parle meme pas de dans l'arene ... meme dans l'ide ca vaut rien ... les perfs sont encore plus merdique qu'hier ...
Stilgart: bah écoute
Stilgart: moi non plus ça valait rien dans l'ide
Stilgart: Stilgart 04:15AM allez, push pour la gloire
Stilgart: et finalement, c'est pas mal 125e
dwarfie: ouais ... mais tu devait pas faire timeour a profondeur de 5 ....
Stilgart: je timeoute parfois sans raison
dwarfie: a chque fois ...
Stilgart: faudrait que je la vire cette std::list en fait
Zakaoai: Ah ... Stilgart compliqué dans le sens ou c'est à partir d'une action que je regarde les possibilité après
Stilgart: dans ce cas c'est facile, non ?
Stilgart: suffit juste d'avoir les castables avant le rest quelque part
Stilgart: et donc l'action après le rest, tu la pioches que parmi les cast de spells qui n'étaient pas castables avant
VincentBab: n'abandone pas dwarfie, ca ma fait ca aussi, il faut persévérer ;)
Zakaoai: Oui je peut réduire mes choix avec ça
Zakaoai: ça va juste faire une donnée de plus à trainer ^^'
dwarfie: VincentBab ... au bout de 3 nuit blanches a suivre des conseils tellement flous que ca empire a chaque fois , ya plus de raison de perseverer ...
Zakaoai: Courage dwarfie je suis pas loin à 10 places de toi
VincentBab: arrete d'écouter les conseils et ecoute toi :P
Stilgart: go go go NoZ-
Stilgart: #laFamilleEnOr
egaetan: j'arrive te pousser VincentBab
Stilgart: (sauf que dbdr il est déjà légende)
VincentBab: :thumbsup:
Zakaoai: Bah VincentBab ce que je fait mais j'ai pas l'impression d'améliorer dans le bon sens mais plutot de patcher l'algo de base qu'une réel amélio
Stilgart: go go go egaetan
egaetan: plus assez de matchs
Stilgart: siman il peut pas pousser plutôt que de me rouler dessus ? :)
Oioi: ouais, j'étais dans le même état d'esprit que Dwarfie
Oioi: stuck dans cette satanée ligue argent
benobab: Zakaoai: fais transiter des objets immuables comme par exemple un tuple d'id de spells utilisables ou alors un tuple de boolean correspondants à ta liste de spells castable
VincentBab: 0.2 du boss ! xD
benobab: tu iras plus profond
Stilgart: il faut admettre que le niveau est vraiment insane
dwarfie: si on veut ...
Oioi: Mais je sais pas pourquoi, je me réveille et je me dis qu'il me reste un peu de temps pour accrocher un peu d'or au revers de mon blouson
benobab: GOLD
Stilgart: vu le bot que j'ai sorti... un truc pareil à GitC ça aurait tout poutrer
benobab: attendre ça sert parfois :nerd:
Stilgart: gg benobab
egaetan: j'ai poussé une fois VincentBab
Oioi: gg
VincentBab: yes j'ai vu merci ^^
benobab: merci :D
VincentBab: Oh !!
Stilgart: gg VincentBab
VincentBab: Merci egaetan !!:heart_eyes:
egaetan: gg
Stilgart: et hop, ça repasse en dessous :)
Oioi: Legend ?
Stilgart: oui
VincentBab: yes :)
Zakaoai: Oaip en JS benobab c'est déjà ce que je fait du coup
Oioi: :-)
Stilgart: mais en dessous du boss
Stilgart: la grande classe
Oioi: Bravo !
benobab: :clap:
dwarfie: Oioi ... c'est gentil de me pousser un peu , mais ca me rendra pas ma place de ce matin ;)
VincentBab: quelqu'un a descendu le boss je sais pas qui
benobab: aucun doute là dessus : c'est pas moi
Stilgart: BrunoF sans doute
VincentBab: il te manque pas grand chose egaetan !!
Zakaoai: Mais pour le coup je conserve la liste des castable=true. Appliquer cette modif sur le Rest necessiterai que j'ajoute une blacklist sur un tours d'une liste de spell à ne pas jouer. Compliquer tout ça quoi >.< Ou alors je me represente pas bien la chose.
egaetan: oui bn
VincentBab: bn
benobab: si ton noeud est indépendant de ses prédécesseurs en terme de données, tu rajoutes un noeud avec une copie mise à jour de ta liste castable=true, si au moins l'un d'entre eux est false, alors tu ajoutes un noeud rest Zakaoai, du moins c'est ce que je fais
Oioi: Comment marche la commande msg ? A chaque fois, ça me dit que mon interlocuteur est introuvable sur le tchat
Stilgart: pas
Stilgart: (en vrai, ça marche mais c'est ULTRA casse-pied)
Zakaoai: Bah on doit pas avoir la même orientation du probleme car oui mon noeud depend de ses predecesseurs et dans l'état qu'ils ont modifié la liste de spell et l'inventaire. Après benobab il est tard et c'est ptet moi qui pige pas ^^'
Stilgart: j'ai encore par défault l'onglet du mec qui m'a demandé mon code Haskell dimanche dernier
Stilgart: et je te jure que c'est chiant
benobab: je fais du BFS classique, et oui il est tard, je repasse demain si t'es toujours bloqué j'essaierai de t'aider, je vais dormir ^^ bn
dwarfie: ce moment ou le for va au dela la valeur max de profondeur que je lui ai indiqué :rage:
Oioi: stilgart : ok, je l'évite donc :-)
Zakaoai: bn benobab en esperant que tu soit Gold demain ;)
benobab: I'm gold :nerd: pour ça que j'arrive à aller dormir aha
Zakaoai: ah mais tu es GOLD GG
benobab: merci :D
dwarfie: comment c'est possible ca bordel ...
Zakaoai: :clap: