Chat:Fr/2020-11-20

From CG community
Jump to navigation Jump to search

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

Default avatar.png CrazyHidenTalan: Hello all

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();

  1. 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

Default avatar.png JBM: comment es ta weekend

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:

Default avatar.png Romii: R4

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.

Default avatar.png JBM: y'avait pas un moyen de link des replays a une frame specifique?

Default avatar.png 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

Default avatar.png JBM: on se demande pourquoi la plateforme rame

Default avatar.png JBM: ils rerun tous les vieux multis en plein contest

Default avatar.png JBM: cherchez plus

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

Default avatar.png Paikan2068: Traquila Scratch est pas mal pour apprendre les principes de la programmation

Julius2k17: ca depend ce que tu veux faire aussi

Default avatar.png Paikan2068: Je l'ai testé sur mes cousins et cousines

Default avatar.png Paikan2068: Et ils ont accroché

Traquila: oui j'ai vu scratch aussi

Default avatar.png Paikan2068: Tu gagneras pas un concours CG en Scratch clairement

UmeHearts: Apres il a deja 6 puzzle en C++

Default avatar.png 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....

Default avatar.png JBM: bon, je crois que je peux arreter de bosser sur mon monitor/analyseur

Default avatar.png 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

Default avatar.png 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)

Default avatar.png JBM: pourquoi j'ai 275 games en base pour cet agentId alors que j'ai que 246 last battles?

Default avatar.png 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

Default avatar.png JBM: Stilgart: dis-m'en plus?

WhatTrickeryIsThis: Eliminate deep state agents

Stilgart: JBM: j'ai constaté que les battles trop vieilles n'apparaissaient plus au bout d'un certain temps

Default avatar.png JBM: mmm ok

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 ?

Default avatar.png JBM: je ferai ça une autre fois

WhatTrickeryIsThis: TrumpWall mexican bugs

Default avatar.png JBM: pour l'

Stilgart: et c'est surtout visible en multi (mais ça arrive aussi en contest quand tu soumets pas pendant 3j)

Default avatar.png 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)

Default avatar.png JBM: ah oui ok, les replays font 404 aussi

Default avatar.png JBM: (les plus vieux)

Default avatar.png 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

Default avatar.png JBM: plus ou moins tels quels

Default avatar.png JBM: par frame et par tooltip

Traquila: #45 avec quelques timeouts

Default avatar.png JBM: et toi?

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:

Default avatar.png JBM: ca pour une surprise

Default avatar.png JBM: rassure-toi, tu garderas le level up

BlaiseEbuth: Ah ?

Agade: Quelle heure l'ouverture de la ligue?

Default avatar.png JBM: juste apres ton coucher

GaTTaCa: Slut, on fait comment pour afficher des messages dans la GUI ? (pas dans la console)

Default avatar.png 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 ?

Default avatar.png JBM: c'est ça

GaTTaCa: Top, merci JBM.

Default avatar.png JBM: oui ça risque de te distraire

JSanction: C'est pas la question

Default avatar.png 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

Default avatar.png JBM: ah oui, ça

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

Default avatar.png JBM: coif

Stilgart: ha mais j'ai vraiment rien suivi

Stilgart: c'est quoi le soucis de coif ?

Default avatar.png JBM: c'est le stagiaire, il a drop la db de coif

BlaiseEbuth: voilà

Default avatar.png JBM: alors ils rerun tout depuis wood-6

Stilgart: genre ils ont pas de backup ?

Default avatar.png JBM: chépa

Default avatar.png JBM: j'ai pas de preuve en ce sens

BlaiseEbuth: A priori si.

Default avatar.png JBM: de toute manière ils feront pas de postmortem dont tout le monde puisse profiter

Default avatar.png JBM: encore, la au moins on a un message de julien qui reconnait les faits

Default avatar.png JBM: pour ooc je pense meme pas qu'on y avait eu droit

Stilgart: wait... il faut que je checke ooc aussi ???

Default avatar.png JBM: je pense plus

Default avatar.png JBM: c'était cet été

Default avatar.png JBM: enfin printemps

Default avatar.png JBM: hémisphère CG

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

Default avatar.png OldJohn: C'est quoi 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?

Default avatar.png JBM: s/pe/a peu pres obligatoirement/

Bob: même pas spécialement

Default avatar.png MehdiNECIB: Salut j'ai besoin d'aide

Default avatar.png 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.

Default avatar.png 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 :)

Default avatar.png 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 ?

Default avatar.png 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

Default avatar.png MehdiNECIB: Donc j'écris trop de code pour rien alors

dbdr: limite

Default avatar.png MehdiNECIB: Pas normale ca

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

Default avatar.png MehdiNECIB: bob, et c'est grave ça ,

CopperFr: et qui fait des sondages aussi

Default avatar.png MehdiNECIB: ?

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

Default avatar.png JBM: ils y travaillent

Bob: du coup ton code fait des trucs qui ne correspondent plus à la réalité

Default avatar.png MehdiNECIB: Je vois

Default avatar.png MehdiNECIB: J'ai compris c'que tu me dis

dbdr: c'est CsirpCsirp et RiSuS qui me pourrissent sourtout

Default avatar.png MehdiNECIB: mais la, concretement par exemple c'est quoi le probleme ? Sachant que c'est la 1ere fois que j'essaye ce site

Default avatar.png 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

Default avatar.png MehdiNECIB: Ahhhh d'accooord

Default avatar.png MehdiNECIB: Je vois le concept

egaetan: il est 1.2 devant moi le suivant, c'est mort

Default avatar.png 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

Default avatar.png MehdiNECIB: Moi je fais le code pour un seul tour

egaetan: va encore falloir coder

Default avatar.png MehdiNECIB: Merci beaucoup bob !!!

Bob: hm d'ailleurs le Scanner devrait sans doute être à l'intérieur du while

Default avatar.png 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)

Default avatar.png MehdiNECIB: Je vois, j'vais d'abord garder ca comme ca comme tu dis, c'est mieux pour m'habituer

Default avatar.png MehdiNECIB: Mias c'est vrai que une maniere de faaire différente que d'ahbitude

Default avatar.png MehdiNECIB: d'habitude

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png MehdiNECIB: Franchement tu m'a bien expliqué

Default avatar.png MehdiNECIB: Merci !!

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

Default avatar.png MehdiNECIB: Bon, ducoup la j'vais devoir passer du temps sur la 1ere question, pour faire en sorte de pas faire de boucle

Default avatar.png 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

Default avatar.png MehdiNECIB: Okayyy, ah bas parfait, j'ai enfin réussi

dbdr: on va te pousser

Default avatar.png 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

Default avatar.png JBM: bah

Default avatar.png JBM: plus vous vous battez, plus ce sera dur d'y entrer

Default avatar.png JBM: attendez donc que le boss soit fixé

Default avatar.png 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

Default avatar.png OldJohn: cela existe encore wxwidget ?

Default avatar.png OldJohn: dfsd

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

Default avatar.png 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.

Default avatar.png 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

Default avatar.png JBM: assez postérieure Bob \o

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

Default avatar.png JBM: 90 matches dont 7 crashes pour assert

Default avatar.png JBM: ça me parait actionnable

Warred: bah moi à partir de 4 if je mets un switch direct, bcp plus lisible en effet

Default avatar.png 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:

Default avatar.png 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.

Default avatar.png JBM: Vry: eh, j'y suis pas encore hein

Default avatar.png 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 :)

Default avatar.png JBM: elapsed, expanded, depth

Neumann: Quelle attitude de pleutre, une fois de plus

Vry: Ok merci

egaetan: ThomasNicoullaud on n'apprécie pas

Default avatar.png JBM: et un F

Haashi: les mots sont très durs

Neumann: C'est lequel ton smurf ?

Default avatar.png 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.

Default avatar.png 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

Default avatar.png Ridakz: tous sauf ceux que tu apprends

Vry: Mais comment vous faites tous avec vos BFS ... le mien il ne veut rien savoir !

Default avatar.png 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" ?

Default avatar.png 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 ?

Default avatar.png 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

Default avatar.png JBM: pas encore, de facto

Default avatar.png 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 ;-)

Default avatar.png JBM: c'est en train de ramer, c'est pas que moi?

BlaiseEbuth: si

ThomasNicoullaud: bon cette histoire de seed ca marche vraiment ?

Default avatar.png 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

Default avatar.png JBM: ah, ca y est, une reproduction

Bob: la reproduction même en dp ça reste possible

Bob: :no_mouth:

BlaiseEbuth: oui

Default avatar.png JBM: absolument

Default avatar.png 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

Default avatar.png JBM: je veux bien que quand on prend un bonus a 2, ma simu obsolete se rate d'un

Default avatar.png JBM: mais dans ce cas je veux assert failed

Default avatar.png 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é

Default avatar.png JBM: ah mais ok asserts sont désactivées quand y'a les optims

Default avatar.png 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

Default avatar.png JBM: oh je compte pas qu'il se passe grand chose avant de submit

Default avatar.png JBM: maintenant que j'ai pigé que je tournais sans asserts, j'en ai un paquet à peaufiner

BlaiseEbuth: assert(win)

Default avatar.png JBM: c'est un NOP ça ^^

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/

Default avatar.png 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

Default avatar.png Paikan2068: Holy fucking shit, c'est énorme Bob

BlaiseEbuth: MOI

xurei: je flirte sous les 100k

Default avatar.png JBM: ah mais t'es bien parti la bob

Bob: JBM oui

Default avatar.png JBM: c'etait quoi ton ingrédient magique finalement?

Bob: gros indice de YannT ce matin

Bob: le decay c'est la clé

Default avatar.png JBM: dire bonjour au client?

Haashi: decay ?

Default avatar.png JBM: oui decay

xurei: Bob https://www.codingame.com/share-replay/507075532

Haashi: c'est à dire

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png JBM: c'est un classique

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

Default avatar.png 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:

Default avatar.png 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

Default avatar.png wendrul: lol

Traquila: gg bob

Bob: woot

Bob: merci :)

Gronahak: bien joué :)

xurei: GG

domak: gg

CopperFr: le secret le secret

Default avatar.png Paikan2068: GG

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: ?

Default avatar.png 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

Default avatar.png Paikan2068: WhatTrickeryIsThis le bfs costaud quand même.... 1m noeuds en 50ms c'est costaud

Bob: 35ms

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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 ... !

Default avatar.png 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?

Default avatar.png OldJohn: Ou il y a Link404

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

Default avatar.png 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é

Default avatar.png wendrul: raisonnable

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

Default avatar.png 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é

Default avatar.png JBM: rouillé

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ıΛ

Default avatar.png JBM: qu'est-ce qui est excellent?

Stilgart: la macro de BlaiseEbuth

R4N4R4M4: BlaiseEbuth comment tu écris à l'envers ?

Default avatar.png JBM: ah :)

Default avatar.png 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

Default avatar.png Nanais45: Bonjour à tous

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!

Default avatar.png 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

Default avatar.png 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

Default avatar.png JBM: ah mais non

Default avatar.png JBM: que tout le monde en profite quoi

Bob: comment es ta presque gold JBM

Default avatar.png JBM: lol

Default avatar.png JBM: si c'était juste pour y passer, j'aurais pas du soumettre ;p

Bob: arf

Default avatar.png JBM: mais je suis pas inquiet

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 + ..

Default avatar.png 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

Default avatar.png JBM: tiens leojean890 t'es en silver

YannT: <$>

leojean890: JBM yep !

leojean890: je bosse sur mes perfs :P

Default avatar.png 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)

Default avatar.png JBM: mouais je sais pas trop le stream

Default avatar.png JBM: j'ai plus de ligne directrice claire

Zorg1: on te fera des commentaires constructifs, tkt

Default avatar.png JBM: mmm, juste 13 <$> en ce moment

YannT: <$/

Default avatar.png JBM: j'aurais cru plus

YannT: j'imagine que c'est pas le nombre mais la façon de s'en servir

Default avatar.png JBM: et 8 map et fmap, qui auraient pu être écrit en <$>

mrBen: Haskell noob's here, c'est quoi les <$> ?

Default avatar.png JBM: "fmap"

mrBen: functor map ?

Default avatar.png JBM: yep

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\

Default avatar.png JBM: ouais, les commentaires constructifs en stream, j'ai l'impression que ça marche que chez les autres

Default avatar.png 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ù ?

Default avatar.png JBM: oh ce soir ça risque pas

Default avatar.png JBM: c'est soirée rhum

Traquila: discord ?

egaetan: j'hesite biere tout de suite ou rhum ou attendre encore un peu

Zorg1: twitch plutôt

Default avatar.png JBM: tu te préparais pas pour la nuit?

egaetan: si, il va me falloir du carburant

Default avatar.png JBM: bon c'est ma pause

Default avatar.png JBM: à dans 2h

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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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 ???

Default avatar.png JBM: …Zorg1? …dbdr?

Zorg1: ?

Zakaoai: RIP Bob

Vry: Tu as les ingrédients dedans ?

Default avatar.png JBM: 22:18:55

Zorg1: tu fais un stream

Default avatar.png JBM: déjà fait

Zakaoai: Trop puissant les repeatable ;)

Zorg1: MK, c'était pour son bot "Mighty Knight" de CSB

Default avatar.png JBM: dis me more?

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

Default avatar.png JBM: mal à suivre

OldDadou: Qui fait en rust parmis vous ?

Default avatar.png JBM: juste dbdr

Default avatar.png JBM: et le boss gold

Default avatar.png JBM: enfin"et"

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 !!!

Default avatar.png JBM: egaetan: alors, ça streame ou ça boit?

egaetan: JBM ça pleure

Default avatar.png 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

Default avatar.png 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

Default avatar.png JBM: …et de stream

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

Default avatar.png JBM: ze classe

Default avatar.png 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é ...

Default avatar.png JBM: la planète

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...

Default avatar.png 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

Default avatar.png JBM: si y'a pas de malloc ça nous impressionne pas

Vry: Non j'ai un tableau de 4m nodes au cas où ...

Default avatar.png 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

Default avatar.png JBM: Fangel: merci de ta réponse partielle

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png JBM: Bon.

Default avatar.png 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

Default avatar.png JBM: c'est la voie de la facilité, non?

YannT: reverse le seed?

Bob: oui

Default avatar.png JBM: mmm

Default avatar.png 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 ?

Default avatar.png JBM: j'ai une todo list longue comme le bras

YannT: c'est quoi reverse le seed?

Default avatar.png JBM: allez va pour le decay

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

Default avatar.png JBM: la légende dit que...

Default avatar.png 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

Default avatar.png JBM: je trouve que si

Stilgart: bah, ça coute du temps

b0n5a1: bah si

Default avatar.png 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...

Default avatar.png JBM: peros je pense que meme pas tant que ça

Default avatar.png JBM: enfin du temps CPU

Default avatar.png JBM: ça coute des cyclescerveau

Default avatar.png JBM: que j'ai pas ce soir

b0n5a1: Zorg1 c'est passé de 1 milliard à 2^64

Default avatar.png JBM: d'où: decay

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 ?

Default avatar.png JBM: j'uaurais dit 4

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

Default avatar.png 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...

Default avatar.png 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é

Default avatar.png JBM: ze lol

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: