Chat:Fr/2020-11-21

From CG community
Revision as of 11:09, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/35124966490208> Zakaoai: Tu va pouvoir bien dormir <img src=/a/29054906001010> Stilgart: (score=3.76888, depth=20) ... tu m'étonnes que je perds avec une vision...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Zakaoai: Tu va pouvoir bien dormir

Stilgart: (score=3.76888, depth=20) ... tu m'étonnes que je perds avec une vision pareille de l'avenir :/

Stilgart: (3.7 c'est pas si dégueux chez moi)

Zakaoai: Ah l'avenir parait compromis oui

Stilgart: egaetan il me claque 3 popos dans cet intervalle :D

Zakaoai: Ah bah des fois c'est dur

Stilgart: surtout que c'est le tour 2 :)

Stilgart: l'erreur était tour 1, j'ai joué un coup free lose

Zakaoai: il te claque 3 popo en cb de tour ?

Zakaoai: Replay ?

Stilgart: (à savoir faire une potion direct sans faire learn)

Stilgart: là j'en ai une autre

Zakaoai: J'ai vu oaip que la strat learn 8 turn était déprécié à haut level ^^'

Stilgart: endgame, c'est tours 33, 36 et 37

Stilgart: je sais pas trop ce qu'il faut faire

Zakaoai: 5 tours par potions en moyenne

Stilgart: j'ai testé le learn 8 first, c'était pas top

Zakaoai: Je peut pas dire, c'est l'approche du boss silver donc j'ai garder ça

Stilgart: en silver, je suis passé en jouant le gros score

Stilgart: peu de popos, mais du lourd

Zakaoai: early silver j'ai réussi à monté haut avec juste un bot qui sortait son meilleurs sort jusqu'à plus pouvoir et si une popo passé il la faisait.

Zakaoai: Après c'est une strat que je trouve difficile. Sortir des grosses potions demande pas mal de grosse Ressource.

Zakaoai: Alors que 2 moyennes ça termine une game

Zakaoai: C'est le retour Top 500 Global

Stilgart: bon, sur ce, allons faire un sieste

dwarfie: sur ce , allons nous pendre

Zakaoai: Pareil je vais faire ça

Here_s_Chopi: la nuit porte conseil ^^

Zakaoai: Ah ah si seulement Here_s_Chopi ;)

Zakaoai: Bonne nuit à tous.

dbdr: \o

Mazelcop: Hello o/

VirtualAtom: \o

dbdr: #6 Mazelcop, bravo!

PhOeNyX: Coucou

Mazelcop: thx dbdr !

dbdr: des idées?

Mazelcop: je commence à plus trop avoir d'inspiration là...

Default avatar.png Yousersif: Hello j'ai besoin d'un conseil

mrBen: o/

Default avatar.png Yousersif: je vais bientôt passer un entretien Python de CodinGame for work. Y a t'il un moyen d'accéder aux tests python de cette plateforme pour m'entraîner ?

VirtualAtom: fais des puzzles en python sur la plateforme, ça devrait être suffisant pour s'entraîner

Simon21: je ne pense pas, sinon c'est plus un test de compétences mais un test de mémoire

VirtualAtom: les puzzles aident au moins à connaître la plateforme

Simon21: par contre il y a d'autres sites où tu trouveras des qcm (skillvalue, w3school)

Mazelcop: c'est bien trueskill le système de classement utilisé par CG ?

dbdr: oui

PhOeNyX: C'est quoi la bistouille qui fait gagner 250 places en silver ?

dbdr: learn 0

PhOeNyX: Déjà fait

Default avatar.png Yousersif: merci pour vos réponses ! je fais faire les QCM et les puzzles !

BigUP: learn 0 a faire que si le learn 0 est dispo ?

dbdr: learn gratuit

PhOeNyX: Je fais 8 learn obligatoires en début de partie, et je me permets de sélectionner un learn 1 si le sort ne consomme rien et ne fait que produire.

dbdr: consommer ça veut dire que c'est repetable, c'est pas mauvais

PhOeNyX: j'en prends suffisamment des répétables avec le learn 0 par défaut

BigUP: PhOeNyX, moi je sis plus laxiste sur le learn pendant environ 30 tours, ensuite faut qu'il soit gratuit

PhOeNyX: Sinon mon algo sélectionne systématiquement un noeud de la dernière DEPTH en cours d'analyse (et donc pas terminée), je me disais que ça devait être mauvais mais prendre le meilleur state de la depth précédente me donne un résultat moins bon

BigUP: ils sont pas tous repeatable les truc qu'on learn ?

PhOeNyX: Seulement ceux qui consomment des ingrédients

BigUP: ha ok, j'avais pas fait gaffe

mrBen: PhOeNyX t'as une queue normale pour tes noeud, ou une priority queue ?

PhOeNyX: C'est une queue normale, mais je génère les noeuds dans un ordre priorisé

PhOeNyX: C'est la dernière modif que j'ai faite qui m'a fait gagner 250 places

PhOeNyX: Plus que 250 \o/

mrBen: je me disais bien qu'il fallais un genre de priorisation pour ce genre de technique

domak: plop. Dans votre arbres de recherche, vous faites comment pour gérer les REST inutiles genre le REST inutile avant le CAST3 : REST, CAST 1, CAST2, REST, CAST3, BREW ?

mrBen: rien du tout, comme un rest n'améliore pas le score le chemain ne sera jamais sélectionner car un autre chemain de score équivalant sera sélectionné avant

PhOeNyX: Ton algo le trouve tout seul si tu dis que faire la popo au tour 5 c'est mieux que de la faire au tour 6

mrBen: *chemin

domak: Je peux décider que le CAST3 est inutile sur cette branche mais il faut que je remonte au pire jusqu'au noeud racine (si ce n'était pas un REST) pour vérifier que l'action est valide

PhOeNyX: Avec un facteur de patience

mrBen: par contre ça pourrai être élagué, c'est vrai

mrBen: avant j'avais un algo qui ne prenais pas les rest en compte, et au moment de lancer un sort, si le sort était pas dispo je faisai rest

domak: je suis d'accord si tu t'arrêtes dès que tu veux faire le BREW. Par contre, si tu veux descendre en profondeur ça marche plus

mrBen: pas opti, mais ça m'a monter mid-silver

BigUP: domak, est-ce que c'est pas un faux probleme ? tu vas pas réévaluer la situation au tour d'apres ?

mrBen: :point_up:

domak: Jusqu'à présent, j'arrêtais de construire mes noeuds pour une postion si j'avais un BREW. Donc je trouvais REST, CAST 1, CAST2, CAST3, BREW10 avant REST, CAST 1, CAST2, REST, CAST3, BREW10

PhOeNyX: Les personnes qui sont passées tout juste gold, les IA simulent quelle DEPTH en général ?

domak: mais maintenant je veux continuer la recherche plus loin

mrBen: a score égal, il faut privilégier un chemin avec un depth moindre

mrBen: et ça devrai régler ce problème

ThomasNicoullaud: Ha ouais

ThomasNicoullaud: et après on me dit que je hide

ThomasNicoullaud: faire monter un smurf en legend c'est pas mal quand meme

domak: tu parles de reCurse?

egaetan: salut

Simon21: hello

mrBen: coucou

Mazelcop: hello

351062: Non, il parle du compte supprimé en Rust

Mazelcop: ah oui, emil. n'est plus là

Magus: je crois pas trop l'intérêt de faire un smurf

Magus: cacher une IA je comprend le principe

Magus: mais faire un smurf ?

Magus: ou alors CG a découvert un multicompte ?

mrBen: un smurf ? kékésé

Magus: un compte secondaire

Neumann: Tu peux pas hide 1 semaine sans smurf

Magus: mais si t'as un smurf tout le monde voit ton IA

Magus: pour ça que je comprend pas trop

Magus: que ce soit emil. ou reCurse dans le top 3, les gens vont bien tester contre ton IA

Neumann: Non, tu pousses un code de merde dessus

Neumann: Faut juste un code en Bronze pour pouvoir bench contre n'importe qui

Magus: ah mais emil. a supprimé son compte pour en recréer un bronze ?

ThomasNicoullaud: emil != reCurse ?

Neumann: Non j'en sais rien de ce qu'il a fait, je t'explique l'interet d'un smurf pour hider :P

Neumann: Emil il a ptet glissé sur le bouton DELETE, il a le seum

Magus: ça m'étonnerait que emil. ce soit reCurse, ou alors reCurse a décidé de coder en Rust

egaetan: il lancait son c++ en rust ?

Neumann: Y'a ptet une sorcellerie pour wrapper du C++ en Rust

Magus: faudrait que ça inclue une sorcellerie de pouvoir compiler le C++ en moins de 1 seconde

Magus: et pour avoir déjà essayé, ça marche pas terrible

Neumann: Ca m'étonnerait de reCurse de faire un truc aussi "visible" parce que côté CG ils peuvent check qui s'est connecté sur ce compte

Neumann: Enfin c'est VRAIMENT pas discret et risqué

egaetan: il passait peut-etre par nordvpn ?

Neumann: Haha

PhOeNyX: Sauf s'il utilise un VPN + autre PC

Neumann: Je pense plutôt que reCurse a un smurf qui dort au milieu de la ligue bronze

BigUP: mais puisque je vous dit que c'est emil. le tueur !

PhOeNyX: Prenez un chewing gum emil.

dbdr: system c'est sorcier?

PhOeNyX: Si c'est le cas, je fais de la sorcellerie

PhOeNyX: System.arraycopy

dbdr: ThomasNicoullaud c'est bien à toi de dire ça :D

BigUP: les vrais magiciens sont en python de toute facon !

PhOeNyX: On m'a dit que les magiciens étaient en Basic, mais qu'ils étaient aussi très vicieux.

BigUP: Fangel, 23eme en Python ! respect !

mrBen: ah, je vien de décrouvrir plusieur boucle qui utilise i... à l'interieur de ma boucle des noeud qui utilise aussi i

dbdr: encore un wrapper :D

BigUP: 4 Python dans le Top 100 ! :)

dbdr: mais bon, serieusement, oui, respect!

dbdr: 35 légende tout d'un coup, qqn m'a défoncé?

PhOeNyX: Et sinon, vous allez jusqu'à quelle DEPTH en mid game ?

joelthelion: ~ 12 pour moi

joelthelion: mid gold

Zorg1: entre 10 et 14 pour moi

Zorg1: c'est pas super stable

PhOeNyX: https://www.codingame.com/replay/507835137

PhOeNyX: meh

Cousnouf: bordel je bats tout le monde en bronze en individuel mais lors de l'arène j'ai des timeouts.... j'imagine que ça vous est arrivé aussi?

Cousnouf: tu passes ta life à te faire chier à coder du cirque et finalement leurs timeouts te brisent les balls et gâchent ta vie.. ouééé vive l'alcool

dwarfie: Cousnouf ... bienvenue au club :tumbler_glass:

Cousnouf: merci merci :)

Cousnouf: j'apprends genre 7 sorts au début.. chaque défaite que je condède est sur 9 tours... chaque... purée, je vais manger une bouteille en verre cassée..

Eldritch: petite astuce qui a eu de l'effet je pense pour moi : même si tu hardcode des LEARN au début, fait tourner ton algo pendant le 1er tour (dans le vide) Avant ça j'étais comme toi et si je faisais 6 LEARN en dur je plantais tour 7

Eldritch: je me suis pas débarassé totalement des timeout mais ça a fait une grosse diff

Gh0stm4chine: rang 16... allez petit tu peux le faire

Zorg1: 35 en legend

Vry: o/

Gh0stm4chine: Yop Vry

Magus: bon, va falloir passer en légende quand même, c'est un peu la honte mon classement

Magus: alors ... comment on code déjà

nmahoude: un bug apres l'autre

PhOeNyX: Ah c'est pas con de faire tourner le BFS dans le vide... Premièrement ça permet de précalculer des choses, mais en Java ça permet aussi de faire chauffer la JVM. ^^

Zorg1: la rupture de JVM froide c'est terrible en effet :p

PhOeNyX: Et je fais appel manuellement au gc dans mon algo x)

PhOeNyX: #PasTaper

Cousnouf: Okay Eldritch, merci :D

Zorg1: un truc qui m'amuse c'est qu'en contest j'ai tendance à inliner mes fonctions à la main

Zorg1: c'est pas super maintenable tout ce copier coller :(

Vry: inline Zrog1 ... y'a pas ça en Go ?

dbdr: pour les perfs?

dbdr: ou pour tweaker?

Zorg1: vry : bah c'est le compilo qui le fait

Zorg1: mais j'ai pas trop confiance ^^

Vry: Ok

Zorg1: et j'ai pas de #define

Vry: Celui-là : #define inline __attribute__((always_inline)) inline

Zorg1: dbdr : pour les perf

dbdr: #trusttoncompilo

Zorg1: vry : omg c'est quoi cette horreur???

Vry: Un truc tombé du camion ...

Zorg1: :D

Vry: Pour insister un peu lourdement sur le mot clé inline

Magus: ça oblige le compilateur a faire un inline même s'il avait décidé le contraire

Magus: par contre si tu en abuses, tu peux timeout à la compilation sur CG :D

Zorg1: et si tu le fais sur des fonctions récursives ça doit être marrant ce qui se passe ^^

Vry: J'ai que cinq petites fonctions inline ... c'est pas énorme en fait. Je peux en ajouter probablement

Eldritch: oui PhOeNyX la JVM a commencé à faire des merveilles pour moi une fois que je la frottais un peu avant le lancement

Eldritch: enfin des merveilles c'est un grand mot :D

R4N4R4M4: Salut tout le monde, comment ça boume ?

mrBen: o/

Zorg1: o/ R4N4R4M4 la forme et toi ?

mrBen: toujours pas Or, mais sinon ça vas !

R4N4R4M4: Je bataille avec mon MCTS, même si je devine qu'il ne me fera pas gagner des places au contraire

R4N4R4M4: mrBen, mais où est donc Or ?

Cousnouf: une fois le challenge terminé, est-ce que ce combat de bots restera?

R4N4R4M4: :D

Zorg1: Cousnouf : normalement oui

Zorg1: ça a été le cas pour tous les contests précédents

R4N4R4M4: Cousnouf, une fois le challenge teminé, je veux plus le voir du tout :D

Zorg1: faut affronter ses peurs R4N4R4M4 !

Cousnouf: ahah ouais moi encore, j'ai pas trop le temps de me foutre dessus ce week-end et j'aimerais tout de même atteindre l'argent..

Zorg1: et t'auras les PMs

Zorg1: Post Mortem

R4N4R4M4: Je suis en plein dedans Zorg1, trop tard pour l'affronter

Zorg1: ;-)

R4N4R4M4: Mon MCTS me tire des coups en dehors de la liste...

Zorg1: ça me rappelle mon CAT 83 15 ça ^^

R4N4R4M4: C'est un MCTS infidèle

R4N4R4M4: C'est interdit x15

R4N4R4M4: Moi il tire le coup : _T-44667 Je connais pas le type T, et pas l'ident -44667

R4N4R4M4: c'est ma fonction random Move à tous les coups

Vry: En effet ... c'est louche :nerd:

R4N4R4M4: En même temps j'ai codé le MCTS à la louche

R4N4R4M4: Je suis en train de faire du pas à pas dans la mémoire

Vry: Tu n'avais pas fait UTTT ?

R4N4R4M4: Si, j'ai le code sous les yeux

R4N4R4M4: Mais je peux pas le reprendre, il est trop optim

Zorg1: et t'arrive pas à comprendre ton moi qui l'a codé ?

Vry: Ok, je suis reparti de ce code aussi mais ma tentative a échouée sur ce contest

R4N4R4M4: Ce n'est plus le même moi :D

R4N4R4M4: Et en plus c'est pas bien de copier le code de son autre moi

R4N4R4M4: J'ai ça pour me sauver https://fr.wikipedia.org/wiki/Recherche_arborescente_Monte-Carlo :D

R4N4R4M4: Bon, je crois que j'appelle le tirage aléatoire des moves dans une liste qui n'a plus de moves non visités...

R4N4R4M4: Du coup, faut que je fasse du rétro debug

mrBen: bon courage !

R4N4R4M4: merci mrBen, au moins toi tu me comprends

Zorg1: RETRO DEBUG ! FULGURO PRINT !

R4N4R4M4: J'aimerais bien pouvoir au moins utiliser le MCTS pour la fin de partie

mrBen: :laughing:

R4N4R4M4: UCT FLIPENDO

Zorg1: (désolé ça m'a rappelé Goldorak "rrétro debug" ;-) )

R4N4R4M4: Ah, nous on regardait pas ça, mon fils était trop grand :D

R4N4R4M4: Ah non en fait, il était pas encore né à cette époque

Zorg1: ^^

Default avatar.png Lx4: Yop, quelqu'un a une bonne resource pour apprendre l'assembleur? Jsuis en train de me faire les cours cs61C avec MIPS mais je galère un peu xd

Zorg1: l'assembleur de quel proc ?

R4N4R4M4: +1

Default avatar.png Lx4: bah là je regardais MIPS car apparement c'est une bonne intro

Default avatar.png Lx4: jeu d'instruction pas trop complexe, pour commencer c'est pas mal on dirait

Default avatar.png Lx4: mais bon si vous avez des idées Risc V ou arm bien expliqué je peux switch : p

Haashi: alala

Haashi: ce moment magique ou tu doubles tes perfs mais c'est moins bien

Zorg1: bienvenue au club ^^

Haashi: t'es bien remonté toi

CopperFr: En tout cas Cousnouf n'est plus nicola :(

Zorg1: j'ai passé mon temps à bricoler

CopperFr: C'est bien le bricolage

CopperFr: mais faut être bien outillé

Zorg1: je fais plusieurs potions mais j'ai un peu du mal à tirer qqch d'utile de tout ça

domak: tiens egaetan est passé légende

Haashi: pareil, j'ai changé mon algo de "va a la potion la plus rentable" à "combien de points tu peux faire en x tours" avec un decay a 0.9^tour au final je fais que des popos qui rapporte que dalle, et je finis souvent les parties avec 6 potions contre 4 mais moins de points que l'adversaire

Haashi: peut etre que mon decay est trop haut cela dit

Haashi: ou alors vu que j'arrive souvent a etre le premier a 5 potions, il faudrait que je reflechisse a bien jouer la fin de partie

CopperFr: faut trouver the path to decay

Haashi: bon je lance de l'arene

Haashi: good luck mon bot

Zorg1: gg egaetan

Haashi: 3 victoires / 10 ...

mrBen: en ce moment, moi j'ai tandance à finir mes partie avec 3 ou 4 popos, mais un score proche de l'adversaire

domak: Haashi J'ai l'impression que pour que ça fonctionne faut descendre bien en profondeur

Zorg1: Haashi : bah j'ai le même decay et la même logique

Zorg1: la grimpette est assez lente

Haashi: tu learns en early aussi ?

Haashi: les 5 premiers tours je learn le spell 0

Zorg1: oui 5 learn, mais j'ai qd même encore les learns dans mon alg

Haashi: pareil

Haashi: tu visites combien de noeud unique environ ?

Haashi: je suis a ~30k

Zorg1: plutôt 50k moi

Haashi: ca doit aider

Zorg1: en fait je fais tourner mon algo les 5 premiers tours et je prend le résultat si c'est un LEARN sinon je prends le LEARN gratuit

Zorg1: après je crois que j'élague un peu comme une brute

Haashi: je sais pas trop comment elaguer moi

Zorg1: potion+sort dispo+ingredient actuellement

Haashi: ah mais ca c'est ton unicité de noeud non ?

Haashi: c'est pas vraiment un elagage

Haashi: c'est juste que tu veux pas retourner dans un meme état

Zorg1: bah c'est ce qui permet d'élaguer non ? d'éviter de tout visiter

Zorg1: ah ok

Haashi: bah je le vois pas comme un elagage a proprement parler

Zorg1: bah c'est pas vraiment un état unique ça en inclut d'autres

domak: je fais que ingrédients + sorts

Haashi: ah ouais effectivement j'ai pas les popo dans mon hash

Zorg1: sorts castable ?

domak: du coup j'ai beaucoup moins de nodes

Zorg1: Haashi : si tu peux brew plusieurs option je pense que c'est utile

Zorg1: s/option/potion/

domak: oui, enfin un tableau de boolean

Zorg1: ah oui si t'as pas le learn dans ton algo ça peut aller

domak: je suis à moitié bitboard, c'est un peu batard, faut que je pousse plus loin

domak: tiens y'a CG qui me propose le tutoriel d'onboarding sur un refresh de ma page

Haashi: effectiveent avec les popo dans le hash c'est mieux

Zorg1: quel troll ce CG

domak: je sais pas trop comment je dois le prendre

YannT: l'algo doit se dire que t'en a bien besoin

domak: voilà...

Haashi: wtf

Haashi: je rajoute les popo dans mon hash

Haashi: je passe de 3/10 à 7/10 sur le submit

Zorg1: tu vas encore me doubler ? la prochaine fois je la ferme :p

Haashi: je pense pas

YannT: ben, tu croyais que 2 states avec des potions différentes de livrées pouvaient être les mêmes? ;)

marcgardent: j'ai pas fait de hash et encore moins de cache, avec les 1s du démarrage et un opening de plusieur learn je me dit qu'il y a moyen d'avoir un peut de réutilisation de branches.... Qu'en dit vous !?

Haashi: YannT, bah enfaite comme j'ai dit plus tot, avant j'allais chercher le chemin le plus court vers chaque potion, et je prenais la popo la plus rentable (price-distance le plus grand)

Haashi: donc je m'arretais à chercher cette potion des que je la trouvais

Haashi: donc effectivement je l'ignorais dans mon hash

Zorg1: fix ton bot, comme on dit en legend

WhatTrickeryIsThis: baisse pas les bras domak

WhatTrickeryIsThis: :clap: egaetan

Zorg1: et ça tombe bien kovi vient aussi de passer légende ...

domak: WhatTrickeryIsThis je peux pas puisque j'en ai pas

Zorg1: bon j'ai aucune idée géniale pour mon bot, Automaton2000 des suggestions ?

Automaton2000: je ne dis pas le contraire

Stilgart: Automaton2000: et donc, tu peux partager tes suggestions ?

Zorg1: mais tu dis pas grand chose non plus Automaton2000 :(

Automaton2000: j'avais eu des soucis de timeout

Automaton2000: si je veux un truc qui me manque

Stilgart: hum... c'est vrai que j'ai toujours un timeout à fix

Zorg1: fix tes timeouts et go legend !

Zorg1: ezpz

Haashi: bon j'ai un gros bug

Haashi: si j'arrive a le fix je risque de monter haut

Haashi: en gros mon bot il aime bien faire les potions, un tour après avoir les ingrédients pour le faire

Neumann: Mazelcop: T'as toujours pas de LEARN dans ta recherche ?

Stilgart: on dirait le mien qui aimait bien rest un tour sur 2 dès qu'il avait fait le 1er rest

WhatTrickeryIsThis: si il en a, mais comme il grab tout au debut

Stilgart: go go go NoZ-

Magus: Si Automaton2000 donnait des vrais conseils, je serais déjà légende

Automaton2000: chez moi c'est le contraire

Zorg1: :D

Stilgart: Automaton2000: tu te répètes

Automaton2000: si t'arrives à faire des trucs qui servent à rien

Default avatar.png Bichmoute: Vous explorez en largeur ou en profondeur votre arbre d'actions ?

Default avatar.png Bichmoute: je me suis lancé dans un BFS mais jsuis en plaine remise en question

Default avatar.png Bichmoute: pleine*

Zorg1: bah vu qu'on parle de BFS sans arrêt

Stilgart: ha non, tu te contredis Automaton2000

Automaton2000: genre quand tu fais une simu ?

Zorg1: je dirais en largeur

Default avatar.png Bichmoute: Ok thx, je débarque, sry pour les questions redondantes

Stilgart: bon, c'est noté, les simus ça sert à rien :D

Stilgart: go go go JBM

Default avatar.png JBM: ?

Stilgart: #LaTeamEnOr

Zorg1: au moins lui il est toujours en Haskell :smiling_imp:

Stilgart: mais il est encore en silver :imp:

CopperFr: :D

CopperFr: alors qu'il y a même un Python 3 légende

Mazelcop: Neumann, je les gère toujours à part

Default avatar.png JBM: ouais, ajouter le decay, c'est pas du tout le slamdunk qu'on m'avait fait miroiter

Default avatar.png JBM: j'aurais mieux fait de reverse le seed

Stilgart: CopperFr: ouais enfin, je demande à voir

CopperFr: c'est l'exploit du coup

Stilgart: j'aurais pu rester en Haskell, compiler mon code C++ tour 1, et le lancer avec System :)

Default avatar.png JBM: et tu perdrais un max de temps du premier tour

CopperFr: tu penses que les Java & Pyhton c'est forcément du system ?

Stilgart: JBM: et learn 0

Stilgart: CopperFr: aucune idée, mais c'est possible

Stilgart: un NN entrainé en externe c'est possible aussi

Stilgart: auquel cas le langage n'a aucune importance

Default avatar.png JBM: c'est quoi learn 0?

Stilgart: learn du 1er spell

Stilgart: tomeIndex=0

Default avatar.png JBM: ah ok

Default avatar.png JBM: ouais je pourrais m'en caser quelques uns

CopperFr: ah oui pour python

CopperFr: ceci dit l'approche NN m'aurait intéressé

Default avatar.png JBM: je suis en train de bidouiller ma représentation du state, j'ai pas de code soumettable en l'état

Stilgart: après, c'est Fangel le bot en python, donc s'il repasse par ici, on pourra lui demander

Default avatar.png JBM: 1 timeout sur 50 battles, c'est moins que d'habitude

Default avatar.png JBM: bon ok, git stash et je learn 6 spells

CopperFr: Send Me A Fangel comme chantait Scorpions :D

Default avatar.png JBM: ah merde, j'ai pas commit entre mon decay qui march pas et ma modif d'état

Zorg1: l'erreur bête

Default avatar.png JBM: et plus le submit vient de passer la barre du top 100 à 59

Default avatar.png JBM: on va lui laisser sa chance

Default avatar.png JBM: paf, 6 défaites de suite

Default avatar.png JBM: nouvelle échappée

CopperFr: ah tu va retomber en bronze

Default avatar.png JBM: je vise sur min_score qui underflow

Magus: c'est quoi cette merde

Magus: j'ai une boucle for (size_t i = 0; i < mode ? 2 : 1; ++i) {

Magus: en c++, avec mode qui est un booléen de template

Magus: et la boucle s'arrête jamais oO

Zorg1: c'est < ou ? le plus prioritaire ?

lhm: la prévalence

Magus: oh

Traquila: https://fr.cppreference.com/w/cpp/language/operator_precedence

Magus: shit

Neumann: naab

Magus: je vais reconsidérer mes choix de vie

Thyl: fait unrefresh comme reCurse Magus

Haashi: ah punaaaaise ce bug

YannT: héhé le boss gold quand tu gagnes contre il plante sur le dernier tour des fois s'il a aucune chance de win

YannT: genre VOUS M'AUREZ JAMAIS VIVANT

Uxof: :D

Haashi: hara-kiri

Default avatar.png MehdiNECIB: Yo !!!!

egaetan: merci Domak Zorg1 WhatTrickeryIsThis Neumann

Stilgart: dbdr a dit qu'il avait une faiblesse, ça doit etre ça :)

Default avatar.png JBM: il avait dit une faiblesse exploitable

Stilgart: gg egaetan au fait

egaetan: thx Stilgart

egaetan: dbdr méfie toi je reviens

dbdr: :scream:

Vry: gg egaetan !

dbdr: gg

Mazelcop: gg !

YannT: je sais pas si c'est une faiblesse, ça plante si la game est déjà plus au moins perdue j'ai l'impression

dbdr: YannT: oui, c'est quand je peux plus faire que learn trop de fois. effectivement c'est foutu de toutes façons

egaetan: la mielleure sieste du monde,je me couche #6 et je me reveille carton rouge

dbdr: :D

_Royale: gg egaetan :-)

Vry: Bon, je vais essayer alors cette nouvelle méthode S.I.E.S.T.E. ... :)

Stilgart: ça a pas marché ici

Stilgart: (j'ai un peu monté, cela dit)

Vry: En même temps j'étais 130 hier soir, lç je suis 90 ... lundi matin je devrais être dans le top 10 Gold ... qui sait

egaetan: _Royale merci, j'aimerai bien revenir #4 et te lazisser #3 mais ça va être dur

Vry: Donc je vais faire la marmotte ... (au moins je serai reposé lundi)

Default avatar.png MehdiNECIB: Quelqu'un peut m'aider pour cet exo svp ? je bloque dessus

Default avatar.png MehdiNECIB: Écrivez un programme qui, à partir d’un ensemble donné de puissances, identifie les deux puissances les plus proches et affiche leur écart avec un nombre entier positif.

Stilgart: log

Stilgart: (oui, c'était spoiler)

Boulet: plop

Stilgart: go go go BlaiseEbuth

Stilgart: heu

Stilgart: go go go Boulet

Boulet: meme pas en reve

Stilgart: BlaiseEbuth il dort à cette heure là

Boulet: je remets mon code de la semaine dernierer

Boulet: j'arrive pas à trouver la bonne strat

Boulet: me gave

Stilgart: je te file mon code Haskell si tu veux (qui était moins bien classé que ton code :p )

Boulet: gnagnagna

Stilgart: tu as essayé de forcer du learn 0 au début

Simon21: J'ai un problème de timeout au 3eme tour, la lecture des inputs prend entre 50 et 80 ms, je ne fais absolument rien d'autre que lire les inputs. Est-ce qu'il y en a d'autres dans ce cas?

Boulet: mon code actuel fait 80% de learn

Boulet: Simon21: pas crédible. ta sonde est foireuse

Boulet: Quel langage ?

Simon21: java

Boulet: GC qui pique au milieu ?

Simon21: ça timeout 1 fois sur 2, et quand ça timeout pas ça a quand même pris 50ms alors que j'ai rien fait

Simon21: oui c'est ce que je me suis dit, mais le GC n'a rien à nettoyer encore

Boulet: sur ?

Simon21: j'ai créé 100k objets dans un cache, mais ils ne sont libérés qu'à la fin du jeu normalement

Simon21: comment je pourrais m'assurer qu'ils ne soient pas libérés avant? un syserr dans le finalize?

Cendretoundra: Simon21 j'ai exactement le même probleme !

Boulet: Y'a pas une sonde GC en java ?

Simon21: et puis ce qui est bizarre c'est que ça ne fait jamais ça à d'autre moment de la partie, toujours au tour 3 lors de la lecture de la 7eme action

Simon21: ah merci Cendretoundra!! je me sens moins seul

PhOeNyX: Alors en fait c'est bien le gc qui te pourri

Simon21: PhOeNyX pourquoi est-ce qu'il me pourrirait?

Boulet: voila je vais laisser les gens qui comprennent de quoi ils parlent (pas comme moi) vous repondre

PhOeNyX: Si tu crées vla les objets et qu'ils sont toujours référencés, le gc va se trigger tout seul et analyser tous tes objets pour savoir s'il peut les libérer, sauf qu'il ne peut pas

PhOeNyX: Du coup il va continuer à se trigger et finira par te faire timeout

Simon21: mais pourquoi toujours au même moment précis?

Cendretoundra: PhOeNyX il y a un moyen de contrer ce phénomene ?

Simon21: j'aurais atteinds la limite de mémoire? je vais essayer de diminuer la taille de mon cache

PhOeNyX: Mettre des trucs en cache c'est bien, mais en java faut éviter que ça soit trop volumineux. Car plus ta mémoire sera proche de la limite de ce qui est alloué à la JVM, plus le GC aura de chance de trigger

Cendretoundra: ok merci je vais essayer de réduire la taille alors :)

Simon21: oui c'est vrai que j'ai souvent ce problème au boulot quand on frole la limite de la jvm

PhOeNyX: Mon code ne cache pas énormément de chose mais pour un tour donné je peux me retrouver par plusieurs milliers d'objets, du coup le gc trigger aussi vers les tours 30 si je ne fais rien. Pour contrer le phénomène, je déclenche le GC à la main en début de tour (après lecture du premier input et le déclenchement de mon chrono) et je réduit au maximum la taille de mes objets

Simon21: problème résolut!! merci beaucoup phoenix!

Simon21: j'avais aussi pensé à trigger le gc en début de tour^^ mais si je ne me trompe pas, rien ne me garanti qu'il va bien 'exécuter à ce moment

Simon21: bon ben on va resubmit alors, parce que la moitié de mes défaites sont à cause de ça ;-)

PhOeNyX: Alors en effet, tu ne peux pas savoir s'il va vraiment se déclencher. D'où le fait que j'ai quelques timeouts résiduels (1% des parties peut-être...)

PhOeNyX: Dans mon cas, je veux juste qu'il se trigger au plus proche du début du tour après le lancement du chrono afin que son temps d'exécution soit pris en compte dans mon calcul du temps

Simon21: en même temps j'avais 128k états en cache alors que je me serts de 30k au maximum

Zakaoai: Hello tout le monde et rip mon classement j'était dans les 500 j'ai perdu 50 places :'(

Stilgart: ça va remonter

Stilgart: c'est rien 50 placezs

Stilgart: le classement fait des vagues, et tu dois être en position basse

dwarfie: Stilgart ... c'est beaucoup suivant ou on est ...

Zakaoai: Oui mais mon objectif c'est gold c'est pas rester dans les silver :p

**dwarfie retourne se souler

Stilgart: dwarfie: je dirais ça quand je serai 45e de la gold

Stilgart: :p

Zakaoai: T'inquiete dwarfie on est pas très loin ;) je compatie

dwarfie: je perd 100 places par jour ... dans pas longtemps je repasse en bronze ...

Stilgart: Automaton2000: submit et va aider dwarfie et Zakaoai

Automaton2000: si tu prends le meilleur

dwarfie: Automaton2000 ... c'est bon , les conseils flous , y'en a eu assez , n'en rajoute pas :p

Automaton2000: je ne sais pas quoi dire

Zakaoai: :D

dwarfie: Automaton2000 : et bien dit rien , ca vaut mieux

Automaton2000: il y a un truc qui permet de se faire une idée

dwarfie: Automaton2000 : dis la ou tais toi

Automaton2000: et si t'es pas un vrai langage

dwarfie: (╯°□°)╯︵ ┻━┻

Zakaoai: dwarfie est pas content

Zakaoai: Bah je suis en JS donc bon en effet j'assume que c'est pas le meilleurs langage

Zakaoai: Et il y a que 14 personnes devant moi dans mon langage

Gh0stm4chine: oh rang 6, ça pousse de derrière !

Zakaoai: Ho Gh0stm4chine va t'il passer

Gh0stm4chine: je ne pense pas :(

Gh0stm4chine: va falloir resubmit un meilleur truc

Gh0stm4chine: le problème c'est que je refactore, je m'aperçoie qu'il y'a un bug flagrant, je le corrige, mais du coup ça marche moins bien :D

Zakaoai: Tu reste toujours plus proche que moi sur la chose

Traquila: attend j'arrive pour pousser

Simon21: encore merci Phoenix, j'ai gagné plus de 100 places!!*

BigUP: ou alors, le niveau est monté.... et toi tu descend ;)

BigUP: ha mince, je répond a un truc d'il y a plus de 2h

Gh0stm4chine: 4 !

Zakaoai: Ah bah là sans le contexte oui on comprend pas ta réponce BigUP

Gh0stm4chine: 4 victoire d'affillée contre SelectNul, il fait plaisir lui

Fangel: Oh je m'endors 15ème or hier soir et me réveille en légende ce matin.... Que s'est il passé ?

xurei: C'est vraiment mystique ces bugs de timeout java

Mazelcop: gg Fangel

Stilgart: Zakaoai: le légendaure bug de scrolling

Fangel: ils ont changé le boss or ?

Stilgart: parfois sur certains onglets, le chat arrête de scroller

xurei: je retire une fonction inutile : timeouts de partout

Zakaoai: il s'est passé que maintenant il faut aider les petit Silver Fangel ;)

xurei: je la remet, pas de timeout

Gh0stm4chine: mais ça reste très loin du boss :( faut pousser du haut

Stilgart: Fangel ?

Traquila: j'arrive Gh0stm4chine :p

mrBen: le meilleur genre de bug xurei

Stilgart: tiens, tu confirmes que ton bot c'est du vrai python (et pas un NN ou du system.*) ?

Fangel: Vas y Zakaoai, je suis derrière toi ! :)

Gh0stm4chine: Traquila :(

Fangel: Je confirme Stilgart ! Même si je ménage beaucoup mon python avec numpy

Gh0stm4chine: je compte surtout pour faire baisser le boss au moins

Gh0stm4chine: massacre le !

Fangel: Il est toujours en rust le boss or ?

Default avatar.png JBM: il va pas se réécrire tout seul

dbdr: Fangel pourquoi ça changerait?

Traquila: j'ai feed le boss :p

Stilgart: Fangel: oui pourquoi ?

dbdr: Traquila miam

Fangel: non je me demandais s'ils n avaient pas mis un boss plus accessible...

Stilgart: ça monte pas très vite le nombre en légénde

dbdr: :no_mouth:

dbdr: ça me rassure, il tient à peu près

Stilgart: la faute à CG :/

dbdr: c'est stressant d'etre boss en fait

dbdr: :D

Fangel: oui dbdr, il tient bien, et c'est un peu étrange que je sois passé. Je ne gagnais pas 50 % contre lui

Stilgart: 6.8k participants, ils auraient pu mettre une légende (et aussi une gold) un peu plus facile d'accès

Gh0stm4chine: vasy Traquila !

dbdr: ce serait la honte de faire comme euler

Stilgart: dbdr: code en Haskell, tu es sûr de ne pas être choisi :D

Stilgart: dbdr: faire comme euler ?

Fangel: après il faisait quelques time out des fois aussi...

dbdr: apo m'a demandé si j'étais OK

Zakaoai: Bah BossDorf est pas ultra accessible. Mais Stilgart par rapport à la Summer il voulait ptet eviter d'avoir autant de legende et gold

dbdr: Fangel normalement qd il perd déja

Stilgart: j'ai pas fait SC, j'ai raté quoi ?

dbdr: Spring?

Fangel: dbdr: j'ai vu quelques timeout d'entrée sur le boss or. Mais dans cette compèt, tout le monde fait des timeout incontrôlés j'ai l'impression...

dbdr: ouais...

Zakaoai: Oaip il était bien cool ce multiagent pacman pierre feuille ciseauxx

dbdr: il est à 30ms qd meme...

Traquila: feed le bos (bis)

mrBen: Traquila, tu passe Gold ?

Fangel: mais j'ai l'impression de payer du temps qui ne fait pas de calcul des fois....

Traquila: Je ma'rrange surtout pour que plus personne ne passe or

dbdr: tiens Neumann est passé aussi, gg!

Neumann: thks

Gh0stm4chine: tu m'as mis tellement dans le mal Traquila :( mais gg !

Zakaoai: Ho gg Traquila

Traquila: pas terminé

Zakaoai: Non ça c'est mechant de dire ça par contre. Laisse nous monter

Vry: gg Neumann

PhOeNyX: J'ai 7 points de moins que le boss, et je pense que là où j'ai le plus à gagner c'est optimiser le nombre de simulations

Neumann: :thumbsup:

PhOeNyX: Et j'ai pas envie de changer de langage

Zakaoai: Non mais Traquila tu met 1 point complet au boss il y a pas débat tu passe

Vry: Moi j'optimise mon nombre de ligne de code et je mets des commentaires pour le reprendre en multi ... 700 lignes de C sans chercher à golfer le code

Vry: Bon ratio perf / loc

Gh0stm4chine: bon Traquila est passé, il est temps de recuper quelques places

Traquila: désolé Gh0stm4chine, je suis tombé plein de fois contre toi

Gh0stm4chine: héhé tkt gg

Gh0stm4chine: ça retente un submt

Vry: .

mrBen: gg

Vry: .0

dbdr: Neumann qd il passe il passe :)

Traquila: Ca fait 3 semaines que je connais ce site, donc finir or pour mon premier contest c'est plus que j'espérais

TidyMaze: coucou Fangel, quel est ton secret pour etre legende en Python ? x)

dbdr: gg Mazelcop!

Fangel: TidyMaze tout est vectorialisé avec numpy

dbdr: toi qui n'avait plus d'idées... :D

Mazelcop: merci :) mais je sais pas si j'ai été chanceux si le run ou si j'ai vraiment amélioré un truc

Kirbiby: bon comment on bat ton boss dbdr

TidyMaze: ok Fangel bien joué ^^

dbdr: Kirbiby bonnes perfs, bonne eval

VincentBab: oh 10 nouveau en legend depuis ce matin ^^

VincentBab: vous avez vu comment reCurse a rouler sur tout le monde cette nuit mdrr ? xD

PhOeNyX: je suis en train de me demander si les sorts de base ne sont pas suffisamment merdiques pour exclure certains chemins qui les utilisent

Zorg1: ah il a changé d'avatar

Vry: Non VincentBab, il est passé trop vite ...

VincentBab: xD

Vry: ... et de nuit

Zakaoai: Bon bah on va optimiser sur des préco Fangel on va voir ce qu'on peut faire

Zorg1: ah et le fameux "emil" a disparu ..

Zorg1: ça devient compliqué vos histoires de hiding

Zorg1: va me falloir un debrief ^^

Zakaoai: Bon par contre ça va pas être de la tarte pour tout les travaux à faire ^^'

Stilgart: TidyMaze: Fangel c'est un bon, pas comme nous :(

Stilgart: ESCROLL

Zorg1: Zakaoai : j'espère que t'as pas prévu de dormir

VincentBab: comment il a fait pour disparaitre :fearful:

TidyMaze: Stilgart tu dis ça parceque je suis bloqué en Silver avec mon BFS C++ ? xD

Zakaoai: Ha ha ;) Bah Fangel m'a trouvé le moyen possiblement de gagner en perf en utilisant la 1er seconde

Zorg1: VincentBab : bah tu supprimes ton compte non ?

Zorg1: ou tu changes de nom

Stilgart: TidyMaze: je dis ça parce qu'on a quitté le navire Haskell

TidyMaze: c'est haskell qui m'a quitté

VincentBab: C'est "Joueur sans nom" peut petre ?

Zorg1: ah il a été lobotomisé

Stilgart: ha, c'est emil le joueur noname !

Stilgart: il avait trop honte de pas être 1er ?!

VincentBab: gg Mazelcop, c'est quoi l'ingredient secret? :D

Stilgart: les gens en C++, vous utilisez quelle clock ?

Mazelcop: corriger des bugs VincentBab :p

TidyMaze: std::chrono::high_resolution_clock::

                                                                           now()
                                                                               .time_since_epoch()

Stilgart: hum... j'ai des timeout incompréhensibles avec ça

Zorg1: il me faut une idée

VincentBab: ok ^^

Stilgart: Zorg1: essaie de gagner, c'est pas mal il parait

VirtualAtom: c'est pas steady_clock qu'il faut choisir plutôt que high_resolution_clock ?

Stilgart: c'est la question que je me pose, en effet

TidyMaze: aucune idée ^^ j'ai mis ce que j'utilisais, pas la meilleure solution :D

Zorg1: Stilgart : que croits tu que j'essaie de faire ?

Zorg1: houla cette conjugaison en folie

Stilgart: passer en légende, comme presque tout le monde :(

Stilgart: nan ça va, la mienne est pure

Stilgart: pire*

VincentBab: http://chat.codingame.com/pastebin/d225b5bc-c3d2-485a-a3d6-feab4cfff7dc

Stilgart: ha non

Stilgart: gettimeofday c'est la fonction pourrie jusqu'à la moelle des parents de ceux qui ont écrit son code :/

VirtualAtom: Je mets ça, mais j'ai jamais comparé aux autres méthodes

  1. include <chrono>namespace timer { using clock = std::chrono::steady_clock; clock::time_point _start = clock::now(); inline void reset() noexcept { _start = clock::now(); } inline int32_t elapsed() noexcept { return (int32_t)std::chrono::duration_cast<std::chrono::microseconds>(clock::now() - _start).count(); }}


VirtualAtom: houlà c'est moche la mise en forme

Stilgart: damned, j'ai une marge énorme... pourquoi ça timeout ? :/

VincentBab: tu fait un gros memset par exemple ?

domak: comment c'est devenu dur de sortir du bottom gold...

Stilgart: VincentBab: un seul au début

Stilgart: enfin, tour 1

Stilgart: donc c'est pas ça :/

Stilgart: le destructeur de std::list me faisait mal, mais ça règle pas tout

VirtualAtom: pas de hash_map de la std non plus ?

Stilgart: j'ai vité toute la stl

Stilgart: viré*

Stilgart: je pensais que ça réglerait mon soucis, mais non :/

VirtualAtom: tu peux sauver les inputs et l'exécuter en local dans un profiler ?

Stilgart: pas reproductible en local

CopperFr: ben non pourquoi virer la stl elle t'as rien fait

Stilgart: je peux profiler (c'est comme ça que j'ai vu à quelle point ma std::list me faisait mal)

VincentBab: par ce que c'est leeennttt

CopperFr: c'est lent c'est lent

Neozero: Yes enfin dans le top 1000 du clash of code :D

Stilgart: ouais enfin, je finis en 0.0441 (44 ms la limite du bfs)

Stilgart: et parfois,.... timeout

BrainSolver: stil

VincentBab: prend plus de marge

CopperFr: recode tout en asm

Neozero: Et valider toute la branch clash of codes en même temps :D

Stilgart: nan mais même en haskell je prends pas une telle marge d'habitude

Mazelcop: Stilgart, des fois je perds 10 ms sans raison aussi

TidyMaze: Stilgart tu ferais pas un gros `map score` sur une liste enorme de coups, après le BFS ?

Stilgart: pas de stl

VincentBab: ma theorie c'est que les server doivent swaper, et du coup parfois un acces memoire devient hyper long (plusieur ms)

Stilgart: ~0 alloc

VirtualAtom: donc faut bien timer son submit ^^

Stilgart: VincentBab: hum... ça c'est une bonne théorie

Stilgart: ou se dire que 1 timeout c'est pas grave

dwarfie: et hop , apres 3 verres , j'ai regagné 50 places ... ca n'a pas de sens ...

Stilgart: et que ça arrive aux autres

Stilgart: ou craindre comme moi un bug rare mais profond

**Stilgart tend 30 verres à dwarfie

VincentBab: ou prendre plus de marge pour être safe

dwarfie: merci ... mais c'est pas les verres qui ont fait monté ... rien a voir avec balmer ... juste la continuite du leaderboard random

Vry: Parfois je perdais 5ms sur la remise à zéro des mes hashtables ...

VincentBab: si tu as mis 20ms pour arrivé depth=9 par exemple, tu arrivera jamais a depth=10 avant les 45ms je pense

Vry: ... du coup comme j'en ai plus tout va bien

Stilgart: VincentBab: si

Stilgart: carrément

Stilgart: avec la façon dont j'élague

VincentBab: hum ok

POLOB: Est-ce que vous aussi votre code commence à ressembler à une poubelle avec des restes de tous vos essais ratés ?

VincentBab: faudrait mesuré le temps en plus a chaque depth pour voir

Stilgart: je me bats pour maintenir 14

VincentBab: bah perso je suis plutot entre 9 et 12

Stilgart: je peux pas trop, vu que

Stilgart: <spoiler>

Stilgart: je fais pas exactement un bfs

Stilgart: </spoiler>

VincentBab: apres ca sert a rien de voir trop loin si l'eval est pas bonne ^^

POLOB: yes, c'est l'eval qui fait tout je pense

Stilgart: c'est sur, mais top 150 on va dire que l'éval est pas pourrie

POLOB: à moins que tu estimes bien ce que va faire l'adversaire

Stilgart: et surtout, la mienne a besoin de ça pour être précise

VincentBab: ok ^^

OldDadou: salut, pour les approches BFS, vous arrivez a explorer combin d'états ?

VincentBab: parfois une eval simple avec les bon coef vaut mieux qu'une eval compliqué ^^

Stilgart: elle est simple

Stilgart: c'est mon interprétation qui est complexe

Bon[]Crayon: salut tout le monde :smiley_cat:

Stilgart: ma vision est que ça marche bien si j'arrive à évaluer tous les paths qui me font acheter deux potions

Bon[]Crayon: Salut la sorcière bleue AutomatonNN

Stilgart: et pour ça, en début de game, il faut aller un peu profond

AutomatonNN: et que je suis pas sur que c'est pas trop le temps de coder un peu de temps pour le premier tour et

Bon[]Crayon: Salut la sorcière rouge Automaton2000

Automaton2000: si je viens de perdre contre toi

VincentBab: Hello Bon[]Crayon

VincentBab: Automaton2000 c'est des menaces ?

Automaton2000: on a un truc qui a l'air de bien marcher

PhOeNyX: Pas assez

VincentBab: je préfères ça Automaton2000

Automaton2000: si je veux faire une copie

Stilgart: Automaton2000: arrête, tu vas timeout après

Automaton2000: ca parle de quoi ?

Stilgart: Automaton2000: de tortue

VincentBab: mdr

Automaton2000: mais c'est pas ce que c'est censé être quoi ?

VincentBab: Automaton2000 fait une division par zéro stp

Automaton2000: en fait c'est un peu bizarre

VincentBab: :O

Stilgart: il est doué, parfois

xurei: woah je crois que je viens de trouver la source de mes timeouts

xurei: je concaténais des strings

VincentBab: bad idea

xurei: c'etait juste pour le reporting debug (print path)

xurei: mais je viens de changer ca par un printPath() => toutes les games en timeout passent mnt

TidyMaze: tu loggais beaucoup j'imagine

BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !

Automaton2000: c'est celle que tu as du code de magus

Stilgart: Standard Output Stream: http://chat.codingame.com/pastebin/f45b41e1-8935-44ff-8b86-487cf5ac99b5

AutomatonNN: oui, c'est quoi le problème de la compilation ?

Stilgart: on me trolle là ?!

Stilgart: oh wait... elle est pas finie ma ligne en fait... comment c'est possible ça ?

TidyMaze: \n

Stilgart: c'est pas ça

Stilgart: l'output complète c'est

Stilgart: CAST 90 2 CAST 90 2

Gh0stm4chine: oh la je le sens bien là

Gh0stm4chine: 43 et 33%

Stilgart: je vois pas comment ça peut couper entre le deuxième affichage de l'action

Gh0stm4chine: :pray:

Stilgart: go go go Gh0stm4chine

TidyMaze: poste ton code Stilgart, on va t'aider à faire un println en C++

Stilgart: j'allais dire oui, mais il y a un vrai spoil dans ce code en fait :D

Zorg1: au point où j'en suis je suis prêt à récupérer des spoils de C++ ^^

Stilgart: cid = spellIndexToCastId[arg1]; <-- c'est cet accès qui prendrait des plombes

Stilgart: VincentBab doit avoir raison

Default avatar.png JBM: tiens un bug ghc

Stilgart: sauf que je viens de le faire juste avant cet accès pour afficher le premier CAST 90 2 :(

BlaiseEbuth: Si tu l'as déjà fait, le refait pas.

Stilgart: c'est censé être en cache, donc bien mieux que de concat des chaines

Default avatar.png JBM: ghc: panic! (the 'impossible' happened)

  (GHC version 8.4.3 for x86_64-unknown-linux):

[...] Please report this as a GHC bug: http://www.haskell.org/... <http://www.haskell.org/ghc/reportabug>

Stilgart: et puis dans aucun monde ça prend 10ms

Gh0stm4chine: allez 5, et 50% :( please

Gh0stm4chine: faut pas chock

Stilgart: JBM: gg

Stilgart: ça m'est arrivé qu'une fois :(

Stilgart: (sur un bug évidemment corrigé depuis longtemps)

Default avatar.png JBM: j'irai pas vérifier pendant le contest

Default avatar.png JBM: mais c'est probable oui

Stilgart: (et avec un code foireux surtout)

BrainSolver: Si la mem swap alors il faut faire tenir le code dans le cache du proc pour voir si ca se produit toujours.

BlaiseEbuth: Skwa ça... KDE a décidé qu'aujourd'hui la gui serait transparente... C'relou

TidyMaze: fallait pas installer un theme WIndows 7 aussi BlaiseEbuth

BlaiseEbuth: J'ai pas d'theme

egaetan: BlaiseEbuth c'est la faute du dark mode

BlaiseEbuth: Peut-être

Zorg1: KDE ? c'est un peu lourdingue comme truc ?

BlaiseEbuth: C'est surtout kde qui commence à m'faire ***** de plus en plus.

BlaiseEbuth: Le ratio ça m'fait chier de le farder/ça m'fait chier de changer commence à basculer

BlaiseEbuth: *garder

Zorg1: ah j'avais compris "fader"

Zorg1: ça marche aussi

BlaiseEbuth: Zorg1 : C'est un peu lourd, mais c'est mon pc perso, un gestionnaire de bureau plus léger mais moche ça finit par me taper sur le système. :sweat_smile:

Zorg1: ah ok

BlaiseEbuth: Mais c'est la première fois que je mets kde, et je pense que c'est la dernière

Mator: xmonad les gars !!!!!

VincentBab: Salut BlaiseEbuth

BlaiseEbuth: je préfère la limonade

VincentBab: gg egaetan ;)

BlaiseEbuth: o/ VincentBab

Stilgart: xmonad :heart_eyes:

egaetan: \o/ VincentBab

BlaiseEbuth: egaetan m'en veut pour une sombre histoire de thème...

Mator: Domage que ça ne bouge plus trop xmonad

Mator: En même temps, ça marche tellemetn bien.....

Gh0stm4chine: ça passe devant le boss !! Stop the count

VincentBab: bon peut être si je me motive a faire une gestion de l'adversaire je peux rentrer dans le top 20

**egaetan n'a pas choisi le côté obscure

BlaiseEbuth: Le côté obscure te rendra fort.

egaetan: et ça me permettra de rester devant dbdr ?

BlaiseEbuth: Bien sûr :imp:

Default avatar.png MehdiNECIB: Yooooo

Default avatar.png MehdiNECIB: Quelqu'un peut m'aider svp ?

Default avatar.png MehdiNECIB: Écrivez un programme qui, à partir d’un ensemble donné de puissances, identifie les deux puissances les plus proches et affiche leur écart avec un nombre entier positif.

dbdr: no pasaran

BlaiseEbuth: horses duals

Default avatar.png MehdiNECIB: Ca c'est l'input "3 5 8 9"

panoramix: Mehdi personne va faire le boulot à ta place

Default avatar.png MehdiNECIB: Dutout, j'ai juste besoin d'un peu d'aide

panoramix: commence pas calculer les différences entre chhaque inout

Default avatar.png MehdiNECIB: Ma fonction au lieu de me mettre les 4 chiffre, elle me met le chiffre 3 trois fois

Gh0stm4chine: tellement stressant cette fin de run...

Default avatar.png MehdiNECIB: Oui mais pour cela, il faut que j'arrive déjà a les recuperer

Default avatar.png MehdiNECIB: La je récupere que le 3

Default avatar.png MehdiNECIB: Et quand je stocke dans un tableau al 'aide d'une array, il me stocke tout les nombres sauf le 1er

Gh0stm4chine: Gold :nerd:

BlaiseEbuth: gg

VincentBab: gg ^^

Haashi: gg

BlaiseEbuth: MehdiNECIB tu fais comment ?

Stilgart: gg Gh0stm4chine

Stilgart: Zorg1: ok.. ce mur là

Gh0stm4chine: merci :)

Vry: gg Gh0stm4chine

CopperFr: panoramix tu es bon en potion ?

Default avatar.png MehdiNECIB: @BlaiseEbuth enfait je creer une mutable list, comme ca je peux add. Ensuite, je fais une boucle for (i in 0 until N) et je add input.nextInt

Default avatar.png MehdiNECIB: http://chat.codingame.com/pastebin/31ac1cae-e5bc-4017-b669-5b71fbc7bdad

Stilgart: CopperFr: go coder au lieu de dire nimp :)

Stilgart: YannT il me laisse pas passer

CopperFr: je préféres dire nimp :D

Stilgart: mais pas nous :)

CopperFr: dommage :(

YannT: cc'est mon bot d'il y a 3jrs dans l'arène

Stilgart: en effet :(

YannT: j'ai ENFIN réussi à faire marcher la refonte

CopperFr: le vrai panoramix serait top 1

YannT: je vais pouvoir submit un truc mieux enfin je pense

VincentBab: Road to legend ^^

Stilgart: long is the road

Stilgart: après, mon bot semble plus solide là, c'est déjà ça

Gh0stm4chine: @MehdiNECIB ton code à l'air correct

BlaiseEbuth: pour du kotlin...

Stilgart: BlaiseEbuth: tu devais pas faire du clojure toi ?

ThomasNicoullaud: y a-t-il des gens en legend qui s'occupe pas de l'adversaire ? :s

Default avatar.png MehdiNECIB: Dans ce cas la pourquoi il me donne pas le 1er int

BlaiseEbuth: Va le dire à cg Stilgart

Stilgart: (tu l'as pas déjà l'achievement de 1er dans un langage ?)

Default avatar.png MehdiNECIB: Sortie standard : [5, 8, 9]

Default avatar.png MehdiNECIB: http://chat.codingame.com/pastebin/dd209497-94e9-4932-8b58-8523c7c4e05a

CopperFr: fait du pascal pour être premier

Default avatar.png MehdiNECIB: Entrée : 3,5,8,9

BlaiseEbuth: Stilgart : le jour où je serai suffisement investit pour être premier en c++ sur un contest... :D

ThomasNicoullaud: dbdr ton bot gold il regarde un peu se que fait l'adversaire ou on ?

Vry: YannT https://www.youtube.com/watch?v=9Mw4uEa2m5E&t=3194s

CopperFr: le meilleur pascal est seulement silver :D

dbdr: ThomasNicoullaud un peu, oui

VincentBab: ThomasNicoullaud moi je m'occupe pas de l'adversaire, sauf un peu a la fin

BlaiseEbuth: Sauf une fois au chalet

dbdr: ref?

BlaiseEbuth: &

ThomasNicoullaud: je trouve pas la feature qui me manque :s

dbdr: :P

ThomasNicoullaud: décompter les bonus dans le BFS c'est important ?

CopperFr: no feature

BlaiseEbuth: whatTheCut dbdr

dbdr: je le fais ThomasNicoullaud

ThomasNicoullaud: sur link404 ?

dbdr: oui

Stilgart: ThomasNicoullaud: j'avais dit non, mais depuis que j'ai fix le truc, je dis oui

dbdr: étrange, à 1-3 pts près...

VincentBab: ah faut que je fixe ca aussi alors xD

dbdr: mais potentiellement 2-3 fois

Haashi: bon je viens encore d'augmenter mes perfs

ThomasNicoullaud: sachant que je regarde pas si qund j'ai 6T potitions je suis devant, je sais pas si décompter les bonus va me servir lol

dbdr: depth 118 ou rien

Stilgart: dbdr: endgame ça change tout contre quelqu'un qui ne compte pas bien les bonus :)

dbdr: :)

Stilgart: 118 :D

Haashi: j'avais oublié cette histoire de padding sur les structures

Stilgart: pour un jeu à 100 tours :D

dbdr: demande à Vry

Haashi: Stilgart, 64 tours pour ma part

Haashi: sinon j'explose

BlaiseEbuth: strut{padding:None;}

VincentBab: tu calcul deja la game d'apres :D

Vry: lol

Stilgart: huhu

ThomasNicoullaud: j'ai du jeter 200% de code écrit je commence à saturer

PhOeNyX: Les parties en gold durent toutes moins de 50 tours je suppose, et ça doit même plutôt être proche de 40 tours

Vry: VincentBab : c'est encourageant si tu dis que tu ne tiens pas compte de l'adversaire ...

Stilgart: PhOeNyX: 35 meme

VincentBab: Bonne perf du bfs, bonne eval comme a dit dbdr, c'est la clé

BlaiseEbuth: Respirer c'est la clé

Vry: J'ai quelques trucs à améliorer sur la perf. et surtout l'éval. par la suite ... si j'ai le temps. Là je nettoie le code histoire d'avoir une base saine.

Stilgart: VincentBab: tu forces les learn au début, ou pas ?

VincentBab: nan

Stilgart: donc en gros, ton approche est très similaire à la mienne

Stilgart: sauf que tu vas moins profond que moi, donc soit j'élague trop, soit j'évalue très mal

VincentBab: c'est pas evident d'elaguer je trouve, ya plein de edge cases

Haashi: VincentBab t'es a combien de noeuds visités ?

VincentBab: entre 180k et 210k a peu pret

ThomasNicoullaud: tu utilises une unordered_map qq part ?

ThomasNicoullaud: j'ai perd 30% de mon temps la dedans

ThomasNicoullaud: me dit Visual Studio

VincentBab: 380k en local sur ma machine lol...

Vry: Tu as une détection de doublon du coup

VincentBab: pourtant j'ai qu'un i7 7700k

VincentBab: les server de CG sont pas rapide xD

VincentBab: oui je gère les doublons

reCurse: Ils ont à gérer des milliers de bots en même temps aussi

VincentBab: j'utilise pas unordered_set c'est trop lourd en effet :/

ThomasNicoullaud: :O

Haashi: pareil je perd 20% de mon temps de la gestion de doublon apres je pesne que c'est mieux que de pas les gérer

ThomasNicoullaud: c'est quoi la magie qui remplace une unordered_map ?

ThomasNicoullaud: je suis un caca en C++ en faite ..

Stilgart: int[]

reCurse: Un tableau lol

VincentBab: coder un HashMap a la main ? :D

ThomasNicoullaud: j'ai essayé un tableau

ThomasNicoullaud: mais je perd trop de temps a reset le tableau

ThomasNicoullaud: meme avec un memcpy

egaetan: un bitset ?

reCurse: Bah reset pas alors

ThomasNicoullaud: lol?

VincentBab: yes pas besoin de reset :)

**Stilgart ne reset pas non plus

dbdr: le 40 tient bien :)

ThomasNicoullaud: ha putin il suffit de rjouter le nombre de tour !!

ThomasNicoullaud: :O

reCurse: :flag_ru:

**ThomasNicoullaud retourne sur vs

VincentBab: xD

VincentBab: par contre tu gère les collisions avec cette technique reCurse ? car je vois pas comment

reCurse: Ça dépend de quoi on parle

Kirbiby: ça m'intéresse, comment vous vous passez de unoredered_set

VincentBab: de pas eliminer un node qui a le meme hash qu'un autre alors qu'il sont different en fait

reCurse: C'est dans les notions de base d'un hashmap non?

reCurse: Y'a plein de moyens

Vry: Kirbiby : j'ai une hashtable en "open adressing"

Kirbiby: J'ai cherché des implem de hastable mais c'est de .h de 12000 lignes

reCurse: Fake news

Vry: Deux lignes :p

BlaiseEbuth: reCurse a changé d'avatar ! :scream:

reCurse: Faut renouveller de temps en temps

Vry: Ça a l'air de fonctionner mais j'ai pas eu assez de temps pour faire suffisamment de tests

Kirbiby: pas compris

BlaiseEbuth: coder une hashtable c'est easy, regarde pas d'implems, juste comment ça fonctionne et hop

VincentBab: open addressing c'est comme le system de "bucket" du unordered_set ?

Kirbiby: mais du coup vous faites tout vos hash % taille de votre tabeau ?

VincentBab: & car % est lent ^^

Zorg1: la base

reCurse: % avec une constante 2^n c'est pareil

VincentBab: en -O3 peut être , mais j'ai pas l'impression sur CG ?

Haashi: mais vous avez pas peur des collisions ??

BlaiseEbuth: élastiques les collisions

Kirbiby: C'est quoi une bonne base ? n = 18 ?

reCurse: VincentBab: https://godbolt.org/z/5bv6nj

VincentBab: hum ok tu dois avoir raison, c'est peut être mes tests qui été pourri :/

reCurse: Bon après c'est sûr que si tu changes la constante sans penser

reCurse: static_assert peut valoir le coup

reCurse: Y'avait aussi une théorie que le reste d'une division avec nombre premier ça aide les collisions...

reCurse: Je sais pas si encore valable

Cousnouf: question: les delivery spells sont toujours les mêmes right?

reCurse: Tu peux les hardcode oui

Cousnouf: thank you sir

reCurse: Sauf en wood 2 >_<

BlaiseEbuth: les buckets c'est là pour ça Haashi

egaetan: pourquoi vos Sets pour savoir si un etat a deja été rencontré ?

Cousnouf: okay okay je suis en zebron...

reCurse: Je parle en général car c'était la discussion

reCurse: Rien à voir avec le contest pour moi

BlaiseEbuth: idem, j'ai rien fait sur le contest ^^

VincentBab: si je fais #define HASH_SIZE 1024 et hashtable[hash&(HASH_SIZE-1)] il resoue le HASH_SIZE-1 a la compilation non ?

reCurse: D'abord static constexpr stp :)

Default avatar.png JBM: mauvaise question

reCurse: Et oui il calcule la constante à la compile

Kirbiby: mais reCurse est en BFS ? :d

reCurse: Là je suis en pause café

Kirbiby: ça m'étonnerait qu'il s'abaisse à une strat si simple

BlaiseEbuth: Brew For Supremacy

reCurse: ^

reCurse: Ou juste pour se réveiller en fait...

VincentBab: reCurse: https://godbolt.org/z/9o81hP ca devait être ca mon PB ^^

reCurse: Ah mais c'est une erreur ça

reCurse: % 1024 == & 1023

Zorg1: c'est num % 1024

VincentBab: ah oui jsauis debile mdrr

Simon21: c'est chiat que link404 soit aléatoire, ça rend le débuggage compliqué

VincentBab: oui j'ai completement craqué, laisse tombé... xD

reCurse: La programmation à timeout c'est aléatoire...

Zorg1: et les compilos moderne font de la réduction de force là dessus

Simon21: oui c'est vrai en fait... j'aurais pu réfléchir jusqu'au bout lol

R4N4R4M4: On connaît la RAM dispo ?

egaetan: 768

R4N4R4M4: Je pense que mon MCTS déborde

VincentBab: mieu vaut pas utiliser trop de RAM a mon avis xD

R4N4R4M4: 768 Mo ?

reCurse: Faut toujours ajouter la note de bas de page

Haashi: mais une hashsize de 1024 c'est petit non ?

reCurse: 768 c'est la théorie

R4N4R4M4: Hello reCurse, GG pour ton rank :D

reCurse: En pratique ça peut être plus bas

reCurse: Merci

reCurse: Ça tiendra pas

dbdr: reCurse tu crois que le compilo sait pas optimiser le % 2^n?

reCurse: Non je dis carrément le contraire

reCurse: ...

VincentBab: non c'est moi qui pensait ca ^^

dbdr: ah pardon

reCurse: D'ailleurs j'ai pas trop suivi ton discours sur discord

dbdr: mon discours?

reCurse: Laisse

dbdr: k

Zorg1: t'es sur discord dbdr ?

Zorg1: tu nous caches des trucs ...

dbdr: quand le chat est mort principalement

dbdr: t'inquietes je vous trompe pas trop ;)

VincentBab: "pas trop" xD

Stanworld: bonjour, suivant ma lecture du referre, est ce que l'on peut dire que tout les sorts du tome sont "repeatable" , hors mis ceux qui ne consomment rien ?

Kirbiby: ui

Default avatar.png JBM: oui

reCurse: Oui

Stanworld: ok, merci :)

ThomasNicoullaud: question conne : dans un boo[5] en C++ tout est a false par défaut ?

ThomasNicoullaud: *bool

reCurse: Non

BlaiseEbuth: non

Kirbiby: ça dépend

ThomasNicoullaud: ha ...

Default avatar.png JBM: Non.

ThomasNicoullaud: bool[5] = { false };

ThomasNicoullaud: ?

reCurse: Oui

Default avatar.png JBM: rappelle-toi les valeurs fondamentales du C++

BlaiseEbuth: oui

ThomasNicoullaud: ty

Default avatar.png JBM: "on ne paie pas pour ce qu'on n'utilise pas"

Zorg1: du C avec de l'objet

dbdr: en général, C++ c'est garbage par défaut

Kirbiby: tu vas pas aller loin avec une hastable de 5 élément

dbdr: au sens qui vous convient

reCurse: Quand on sait pas s'en servir

dbdr: allez, on tente la feature sans filet

dbdr: ce matin j'ai eu un début de run dément, je suis passé #2 une seconde :D

Mazelcop: c'est très aléatoire les débuts de run, en effet...

reCurse: On parle d'un jeu aléatoire aussi

dbdr: comme beaucoup :)

dbdr: au moins c'est 2 joueurs, ça réduit un peu la variance

egaetan: Ha je le savais, c'est pas moi qui code n'imp, c'est pas de chance dans l'arène

Zorg1: après c'est la situation qui est aléatoire

Mazelcop: j'ai l'impression que trueskill ça aide pas sur l'aléatoirité du classement aussi

Fangel: hum tu ne connais pas les brew/learn à venir

reCurse: Trueskill est correct quand on l'utilise correctement

reCurse: Je suis pas convaincu de l'utilisation correcte

BlaiseEbuth: Beaucoup de choses gagnent à être utilisées correctement.

reCurse: On ne le dit pas assez

BlaiseEbuth: ^

Zorg1: bah Trueskill c'est conçu pour des matchs avec des joueurs dans le cadre tournoi/matchs réguliers

Zorg1: avec des bots c'est pê pas forcément pertinents

reCurse: Ça l'est. Quand on l'utilise correctement.

YannT: ah tiens reCurse est entré dans le contest :D

Default avatar.png JBM: il attendait ta refonte

YannT: c'est en cours de submit

YannT: c'est pas top...

Zorg1: m'ouais ...

dbdr: gogogo Zorg1

Zorg1: j'ai rien changé

dbdr: :D

Zorg1: donc à mon avis ça passe pas

dbdr: sur un malentendu...

Zorg1: c'est juste pour voir ma place "pure" sans le drift des pushs nocturnes

VincentBab: zorg

VincentBab: oops

Zorg1: ?

BlaiseEbuth: Le recherche sur le chat

VincentBab: exactement :P

Zorg1: on se sent surveiller ;-)

BlaiseEbuth: Ouai hein ?

ThomasNicoullaud: Bon je vois +5 depth

ThomasNicoullaud: mais ca marche moins bien

ThomasNicoullaud: c'est génial

BlaiseEbuth: Voir plus n'est pas voir mieux...

ThomasNicoullaud: surtout quand il me sort la 4 potions au 18eme tour

ThomasNicoullaud: je vois pas trop la proba d'atteindre ce noeud

POLOB: voir à 5 coups, pas sur que ce soit super fiable à moins d'être sur de la tactique de l'adversaire...

POLOB: Si il te pique la recette cible sous le nez...

BlaiseEbuth: Bah faut prévoir l'adversaire

POLOB: oui, et si il a mis un peu d'aléatoire, pas facile

Here_s_Chopi: Faut être plus rapide

POLOB: ceci dit, je pense pas que le boss silver soit aléatoire

POLOB: oui, être rapide, c'est le but, non :D ?

BlaiseEbuth: Pis faut mettre du decay

POLOB: je suis pas sur de comprendre ce que vous entendez par "decay"

BlaiseEbuth: Dégrader la valeur des gains en fonction de la profondeur

BlaiseEbuth: i.e de l'incertitude

POLOB: ok, oui, alors je fais déjà un peu ça

POLOB: mais c'est pas évident à thuner...

Default avatar.png JBM: ce submit rame sa race. mais est plus prometteur que la moeyenne

POLOB: vous arrivez à estimer le jeu à 5 coups en tenant compte de l'adversaire ?

Stilgart: tu entends quoi par "prendre compte de l'op" ?

Stilgart: je peux simuler l'op sur 5 tours, puis moi sur 5 tours

POLOB: bin tester les différentes possibilités d'action de l'adversaire

Stilgart: les deux en meme temps ça doit être plus chaud, par contre

POLOB: et ça tient dans les 50 ms ?

POLOB: (oui, elle est bête ma question :))

BlaiseEbuth: Non. Mais Stilgart a un compte premium, il a 150ms.

VincentBab: pay to win !

Stilgart: **** 60160 / 102065 / 548130 nodes visited, up to depth 15 simu de moi uniquement sur 30ms

Stilgart: exemple pris midgame au hasard

VincentBab: ca correspond a quoi les 3 chiffres ?

POLOB: marrant de sortir ces stats :)

Stilgart: 60k noeuds traités, 102k que j'avais prévu de traiter, et 548k noeuds croisés

Stilgart: (donc ~5.4 de facteur d'élagage)

dbdr: désolé egaetan

VincentBab: noeuds croisé ca compte les doublons ?

Stilgart: oui

Stilgart: de fait, mon élagage est dans le hash

Here_s_Chopi: c'est quoi un doublon pour toi ?

BlaiseEbuth: c'est quoi un doublon pour toi ?


Stilgart: deux suites d'actions qui mênent dans le même "état"

mrBen: AutomatonNN c'est quoi un doublon pour toi ?

VincentBab: voila, jaurai pas dis mieux

AutomatonNN: j'ai eu des cons qui compte ce que c'est que j'ai pas compris comment ça marche

VincentBab: LOL

Stilgart: go go go AutomatonNN

AutomatonNN: oui je suis toujours pas trop de temps pour le moment de ma connerie

POLOB: stilgart

BlaiseEbuth: La bare de recherche est en haut

mrBen: te dévalorise pas comme ça AutomatonNN

AutomatonNN: batterie

POLOB: je comprends pourquoi on n'est pas dnas la m^me ligue :)

BlaiseEbuth: :drum:

POLOB: je tourne plutot autour des 2000/3000

BlaiseEbuth: En quoi ?

POLOB: en nombre de position de jeu visitées

BlaiseEbuth: Oui, mais en quel langage ?

POLOB: c++

BlaiseEbuth: Ah.

POLOB: je devrais quand même faire mieux :)

BlaiseEbuth: Oui.

ThomasNicoullaud: Agade qui déroule

mrBen: moi j'ai 4500/5000 en Go, mais c'est pas encore opti

POLOB: c'est un peu rageant les temps de replay instables aussi

POLOB: ou c'est mon impl qui est pas bonne du tout :)

Simon21: les matches nuls ça comptent comment dans le classement? comme un match nul? ou comme une victoire?

mrBen: 2 victoire je crois

dbdr: toujours des problemes des frames sur le viewer: https://i.snipboard.io/1DaLjs.jpg le popup correspond pas

mrBen: l(une chacun hein)

POLOB: c'est pas un classement à elo ?

Simon21: yep j'avais interpreté ;-)

mrBen: a plus grosse amélioration que j'ai eu en perf, c'est mon hash des état que j'ai changer d'un int64 à un int32

POLOB: le nul est un peu moins qu'une victoire...

dwarfie: POLOB ... non c'est un classement a byebye ... le nul peut etre a peine moins qu'un defaire

POLOB: :D

dwarfie: blague a part , j'ai deja eu un nul contre un gars loin derriere et ca m'a fait descenre

dwarfie: +d

POLOB: ce qui pousserait pour un classement de type Elo donc

POLOB: si tu bats qqun de plus fort que toi, tu montes bcp

Mazelcop: trueskill le classement POLOB

Simon21: ok donc vaut mieux viser la vistoire quand même ;-)

POLOB: Merci Mazelcop

dwarfie: ca c'est la reponse officiel Mazelcop ... tant qu'on aura pas vu le code c'est pas confirmé

POLOB: Sage strategie Simon21 :)

POLOB: il y a des ligues à plus que 2 joueurs ?

dwarfie: a ce que j'ai vu , le trueskill , ca correspond a ce qui se passe en CoC ... pour les contests ou le multi c'est pas tres adapté ... mais bon , c'est un debat lletmotiv ;)

POLOB: TrueSkill is patented,[3] and the name is trademarked,[4] so it is limited to Microsoft projects and commercial projects that obtain a license to use the algorithm.

POLOB: ceci dit, ils peuvent tricher un peu...

dwarfie: POLOB . c'est meme mieux que ca , a calm par exemple , il peut y avoir une ligue avec un seul qui en sortira jamais parce que pour faire les matchs faut au moins 2 joueur + le boss

reCurse: En pratique ça n'a pas arrêté personne

dwarfie: :D

**dwarfie ne citera pas les tontons fligueurs meme si c'est tres tentant :D

dbdr: lache toi dwarfie

OldDadou: Tien, j'ai KC bossdorf

OldDadou: spells_memo.get(&spells).unwrap().clone(),

OldDadou: https://www.codingame.com/replay/508110169

Zakaoai: Oh trop fort :p

dbdr: pq le rust?

Zorg1: pq pas ?

OldDadou: pas compris la question ?

dbdr: https://i.snipboard.io/1DaLjs.jpg

Here_s_Chopi: Parce que c'est bien ^^

dbdr: spells_memo.get(&spells).unwrap().clone(),

OldDadou: ouai, déso j'ai foiré un copié collé

dbdr: moi aussi :D

OldDadou: :/

Stilgart: hum... pas si facile de savoir ce que l'adversaire va faire comme potion, en fait...

dbdr: j'avais un replay où il pouvait faire les 5 au tour suivant

Stilgart: http://chat.codingame.com/pastebin/f83b91e1-516a-40b9-b80a-b629d644686d

Stilgart: prédire dbdr, c'est peine perdue en fait :D

dbdr: :angel:

dbdr: ben il faut 30ms en C/Rust

Stilgart: (tu fais la popo numéro 1)

dbdr: je dois scorer plus profond

Stilgart: oui, tu enchaines derrière sur autre chose

Stilgart: mais bon, j'essaie de faire un truc simple

dbdr: toujours une bonne idée

Dje54: est ce qu'il y a une tolérance sur les 50ms ? en prenant le temps entre le dernier input et l'output, je peux atteindre des fois 60 ms sans timeout

dbdr: oui

dbdr: mais compte pas dessus

Stilgart: Dje54: non, mais tu peux gratter

Stilgart: tu peux joueur pendant que le referee parse ta sortie

dbdr: parser ça prend rien

dbdr: normalement

Stilgart: officiellement, on te locke juste après

Zakaoai: Question : quel est le meilleurs moyen de hash un spell selon son cost ?

Stilgart: en pratique, je soupçonne qu'ils font tourner le moteur avant

Stilgart: et que c'est du Java :D

Stilgart: Zakaoai: chez moi, le spell c'est son id

Dje54: merci pour les infos

dbdr: 1 pts de marge, Linky, c'est sain :)

Zakaoai: Oui mais j'aimerai précompiler des infos tours 1 et l'id dans le tome est différent de l'id quand tu le learn

dbdr: faut faire barrage à Closet

Stilgart: faut que je gère l'adversaire pour ça :/

Stilgart: et j'y arrive juste pas

Zakaoai: ou alors tu stocke la combinaison idBook - idDans ta liste ?

Stilgart: je brasse que des ids

dbdr: (TM)

Stilgart: et je vais voir dans un tableau global les infos quand j'en ai besoin

dbdr: c'est pur ça? ;)

Zakaoai: Bah justement l'objectif de ce que cherche à faire

Stilgart: dbdr: ouais, MonadReader

Zakaoai: Sauf que l'id global d'un sort c'est son cout

Stilgart: heu... c'est le champ actionId qu'on m'envoie l'id d'un spell

Stilgart: avec peut-être un shift, je sais plus si ce sont les potions ou les spells qui commencent à 0

Zakaoai: :p le meme sort a un identifiant différent pour toi et ton adversaire

Stilgart: pas chez moi

Stilgart: j'ai aussi un hack (pas pur du tout) pour convertir les ids pourris de CG en id

Zakaoai: Ah mais j'ai pas ça moi :p

Zakaoai: Du coup je voulais faire ça avec le cout du sort

Stilgart: (en vrai, ReaderStateT ça le ferait, mais je passe par IO dans mon code haskell)

Zakaoai: Du coup on reviens à mon soucis initial un bon moyen d'avoir le même id pour le spellBook, moi et mon adversaire ?

Stilgart: bon, on va tenter des trucs au pif pour l'adversaire...

BlaiseEbuth: Zakaoai : se foutre des ids ?

Stilgart: les ids au dela de 77 c'est un non sens

Default avatar.png JBM: le format d'entrée complet c'est du non-sens

Zakaoai: Bah c'est à dire que ce sont les même spell mais ils ont des id différent

Batpapa: Quelqu'un ici s'est "amusé" à indexer l'espace (a,b,c,d) avec 0 <= a+b+c+d <= 10 ? En 2D la bijection se fait bien, mais en 4D c'est une autre histoire

Default avatar.png JBM: pas mal de monde le fait

Zakaoai: 0-42 dans le book et a partir de 78 dans les listes

VincentBab: quadruple boucle ^^

Stilgart: for the win !

VincentBab: en vrai je l'ai fait mais je m'en sert pas finalement lol

Batpapa: ca demande de résoudre des polynomes d'ordre 4, ca m'etonnerait que ce soit efficace à calculer

Default avatar.png JBM: euh

BlaiseEbuth: stoi l'polynome

Default avatar.png JBM: ba, fais comme tu préfères

Batpapa: ahah

VincentBab: pas besoin de polynomes Batpapa, juste une quadruple boucle xD

Batpapa: ca réduit l'information à stocker d'un facteur 2, c'est pas nonplus la folie

Stilgart: o/ Batpapa

Batpapa: Et tu stockes tout dans un enorme array pré-alloué?

Batpapa: c'est asp faux

Mazelcop: ça fait 1001 combinaisons, c'est pas si gros que ça

Default avatar.png OldJohn: 1001 is the answer !

Mazelcop: prems !

Default avatar.png OldJohn: secs!

**Stilgart grillé avec ses 300Mo de tableaux pré-alloués qui font des trucs

BlaiseEbuth: Sherazade was first.

**dbdr pleure avec le cache L3

Stilgart: (en vrai, j'ai 250Mo pour le bfs, donc c'est juste 50Mo le précalcul)

VincentBab: ahh c'est toi qui fait swaper les servers Stillgart !

VincentBab: Stilgart*

Stilgart: héhé

Stilgart: j'arrive pas à tasser plus pour le bfs

Stilgart: j'aimerais bien gratter un facteur 2, mais je peux pas

BlaiseEbuth: Tu grattes qui tu veux...

Stilgart: cela dit, je te rassure, je stocke de façon à avoir une très bonne localité

Stilgart: (donc c'est un minimum cache-friendly quand même)

**Stilgart gratte BlaiseEbuth pour voir

Batpapa: Ah si voilà, comment vous avez l'indice dans le tableau pré-alloué sachant le quadruplet (a,b,c,d) ?

BlaiseEbuth: :scream:

Stilgart: Batpapa: avec un tableau

Batpapa: un tableau 4D?

Stilgart: int inventoryIds[maxCapacity+1][maxCapacity+1][maxCapacity+1][maxCapacity+1];

Stilgart: voilà :)

Batpapa: oui mais tu alloues trop de place ducoup

Default avatar.png OldJohn: bref (((a*11+b)*11+c)*11+d

Stilgart: non, ça prend 0 en place ça

Stilgart: par rapport aux deux obèses qui sont en dessous

Batpapa: genre inventoryIds[10][10][10][10] ca existe pas

Stilgart: si

Batpapa: okok

VincentBab: tu peux alloué un tableau de 65536 int8

reCurse: On n'est plus en 1980 hein :p

Stilgart: et puis 1001 ça tient pas en int8

Batpapa: mdr c'est vrai, mais je voulais etre super optimal :p

VincentBab: nan en fait tu code l'inventaire sur un int16 (4 bit par ingredient)

Batpapa: oui ca j'avais !

Batpapa: Merci pour la discussion -> je laisse tomber mon optim à la con

Batpapa: :D

dbdr: 250 computing :(

Stilgart: VincentBab: c'est l'autre possibilité, mais ici c'est très largement moins bon

BlaiseEbuth: Tu peux pas être Batpapa et Superoptim en même temps.

Batpapa: ahah

VincentBab: :raised_hands:

Stilgart: BlaiseEbuth: fais pas ton randy !!

domak: question: à depth 8, j'explore env 18K noeuds et j'en prune à peu près autant. Vous avez ça vous aussi? Je fais mon hash sur inventoy, spells, commands

reCurse: Je crois qu'ils ont rajouté des workers dbdr

dbdr: ça reste lent...

dbdr: mais c'est pas écroulé

BlaiseEbuth: Les workers dbdr c'est plus efficace que les workers classiques ?

reCurse: C'est ce qu'on dit

dbdr: à ton avis?

Stilgart: BlaiseEbuth: cf le boss gold

BlaiseEbuth: :thinking:

dbdr: après un bon sytème il secroulerait pas

BlaiseEbuth: Je n'ai pas eu le plaisir de le rencontrer Stilgart

reCurse: Quand c'est saturé c'est saturé

dbdr: tu peux toujours rejeter, ou mettre en queue avec utilisation resources essentiellement de 0

dbdr: et que les submits en cours terminent

reCurse: Ça rend pas les submits plus rapide ça non?

reCurse: Ou je vois pas

dbdr: ceux qui sont admis, si

Default avatar.png JBM: il en était à "ça s'écroule pas"

dbdr: leur system il finit pas s'arreter complement

reCurse: Tu fais que rendre les premiers plus rapides et les derniers plus lents

Vestiaz: question, les rounds durent ils vraiment 50 ms sur le challenge en cours la ? :/

reCurse: Ça s'arrêtait complètement? J'ai pas remarqué.

dbdr: ça vaut mieux que tous bloqués

dbdr: oui, genere aucun match en 1 heure

reCurse: Arf ok, ça devait être pendant je dormais

dbdr: :D

Batpapa: J'ai lu je-sais-plus-où qu'en C++ l'arène était en mode release. C'est une fausse croyance non? Ca m'a l'air d'être en debug, comme l'IDE

dbdr: en fait tout est joué dans les fuseaux horaires, pas le talent ;)

reCurse: Ah ça les excuses sur mon cas c'est pas ça qui manque

dbdr: :P

reCurse: Après on se demande pourquoi je me montre pas

Stilgart: bon, ça marche pas les trucs au pif

Default avatar.png JBM: le rapport?

BlaiseEbuth: 0.2

Stilgart: 1/5, mais ça marche pas je viens de dire :D

Stilgart: BlaiseEbuth: tu vois mon code ? o_O

BlaiseEbuth: :eyes:

Thyl: Comment ça se passe la russian AI Cup ??

Zorg1: on va découvrir que les modos voient le code des autres en contest :scream:

BlaiseEbuth: Bien. Généralement

Bon[]Crayon: Est-de que CG modifie le code du bot qu'il sélectionne ?

reCurse: Dur à savoir

Stilgart: trop risqué

Default avatar.png JBM: ça dépend des fois

Magus: je me souviens qu'ils avaient fix des crashs

Magus: certains boss ils baissent la limite de temps

Magus: donc oui ils modifient un peu le code

Stilgart: j'imagine qu'ils demandent à l'auteur dans ces cas là

Default avatar.png JBM: if (d20) SLEEP ca coute souvent pas cher non plus

Magus: par contre s'ils avaient pu éviter le boss qui timeout dans l'ide :/

Stilgart: il timeout que sur des défaites assurées, si j'ai bien compris

Default avatar.png JBM: euh non

Simon21: ça arrive aussi qu'il timeout comme ça en plein milieu du jeu (link404 je parle)

Default avatar.png JBM: il timeout *au moins* dans ce cas-la

dbdr: j'ai propose à apo un fix, il a refusé

Magus: il timeout dans plein de cas ouai :/

egaetan: il est déjà casse pieds à passer

Magus: parfois il timeout au 2ème tout

Magus: *tour

dbdr: replay?

egaetan: quan il est déjà sur de perdre ?

Stilgart: héhé

dbdr: après c'est peut-etre le probleme de timing général

Stilgart: l'aura du magus en face

dbdr: je lui connais qu'un cas de crash, que j'ai gardé exprès

dbdr: +2pts :)

dbdr: good boss

POLOB: qqun a une idée du coup en c++ d'un chrono::system_clock::now() ?

POLOB: (ou si qqun a une meilleure techique pour mesure le temps écoulé, je suis prenneur)

BlaiseEbuth: std::chrono::high_resolution_clock::now()

dbdr: on ferme la légende à 42, dépechez-vous!

Magus: dbdr: oui je pense que c'est le souci de timeout général que tout le monde a

Magus: parce que suffit de rejouer la partie pour qu'il ne timeout

Magus: *pas

Stilgart: dbdr :'(

POLOB: le high_resolution, c'est plus fiable ?

BlaiseEbuth: Les élèves de 42 ont pas le droit d'aller en legend ?

dbdr: :D

BlaiseEbuth: POLOB pour les ms c'est bien

POLOB: ok, merci pour l'info

dbdr: on ferra une exception pour les porteur de carte du club des anciens du #fr

VincentBab: A quelle heure ton IA passe en mode Hardcode dbdr ? :D

dbdr: minuit

VincentBab: ^^

Stilgart: bon bon bon...

Stilgart: ça laisse plein de temps...

BlaiseEbuth: T'aurais pu le faire direct

dbdr: en fait, vu le +2pts, c'était minuit hier

Stilgart: ou pas... c'est ce que j'étais en train de me dire

BlaiseEbuth: ah bah voilà

Stilgart: bon, comment on gère l'adversaire ?

VincentBab: je suis passé vers 5h moi xD

BlaiseEbuth: violement

dbdr: mais il passe en random move lundi à 9h50

Stilgart: héhé

VincentBab: xD

egaetan: il ouvre les portes lundi marrant ça

dbdr: si l'adversaire prend que des spells primes

BlaiseEbuth: Juste à temps pour mon bot clojure. Parfait.

dbdr: :+1:

Stilgart: tout était calculé

egaetan: BlaiseEbuth tu as réglé tes soucis de thème ?

BlaiseEbuth: Nan. Je fais comme si je les voyais pas. Ce qui est facile puisque tout est transparent.

BlaiseEbuth: Comment gérez vous les taxes dans le state ?

egaetan: bien

BlaiseEbuth: Chouette

Stilgart: hibou

dwarfie: avec elegance ... c'est d'ailleurs une des rares choses qui marche dans mon code :D

Default avatar.png JBM: genou

BlaiseEbuth: pou

dwarfie: caillou (avec l'accent de cabrel)

dbdr: true

Default avatar.png JBM: true

Zorg1: ah son pluriel c'est truex ?

dbdr: évidemment, quue question!

dwarfie: Waaazzaaaaaaaa

BlaiseEbuth: J'imagine qu'il y'a moyen de le déduire des learns... :thinking:

dwarfie: :thinking: ... du coup le pluriel de cast ... c'est castex ?

Stilgart: go go go NoZ-

Zorg1: qui a survolé son PC ne l'oublions pas

dwarfie: ah , j'ai du la loupé celle la

dwarfie: :)

Stilgart: BlaiseEbuth: c'est un peu subtile ça

Zorg1: son CP d'ailleurs

Zorg1: je me plante

NoZ-: @Stilgart : ça marche pas du tout, j'ai plei de timeouts

Stilgart: perso, je pense que mon code fait une approx à ce niveau là

**Stilgart tend 20ms à NoZ-

BlaiseEbuth: Mais tu les stockes pas dans ton state ?

NoZ-: c'est à peu près ce qu'il me manque

NoZ-: ^^

Stilgart: BlaiseEbuth: si, mais pas dans le hash

NoZ-: faut que j'apprenne le C++ avant le prochain contest je crois :P

Stilgart: donc j'ai une petite collision à ce niveau là

Stilgart: nan mais j'y crois, tu vas passer gold, JBM aussi, et grace au boss gold on aura toute la team en gold

Default avatar.png JBM: lol

Default avatar.png JBM: dont un en C++

Default avatar.png JBM: SHAME

Stilgart: clair que je fais tache là

NoZ-: j'ai plus le temps ce weekend, j'ai du boulot :sob:

NoZ-: j'ai l'impression que pour passer gold, faudrait que je repart de quasi zéro

Default avatar.png JBM: enfin tu feras dès que j'y serai

Stilgart: en vrai, je suis surpris de la taille de la gold... elle est plus petite que ce que je pense

Stilgart: pensais*

Zorg1: moi ça va ils ont repoussé ma mise en prod de ce week end au week end prochain ^^

Zorg1: mais je suis pas forcément plus dans le contest

Traquila: Noz, repartir de 0 c'est ce que j'ai fait hier

egaetan: Allez Zorg1 !

Stilgart: go go go Zorg1

Zorg1: j'ai changé un truc ça a pas l'air d'être un succès ...

Stilgart: réponse dans 1h

NoZ-: Traquila, je subis des pressions multiples pour ne pas le faire (taf, copine)

BlaiseEbuth: largue tout

didyme: c'est pas possible une rallonge d'une semaine ? j'ai pas eu le temps :'(

dbdr: dites-moi quand activer la backdoor

Traquila: Ca m'a pris 3H en gros

Stilgart: wow... gg

Stilgart: ça m'a pris plus que ça :/

Stilgart: plutôt le double

NoZ-: je pense que ça me prendrait plus aussi, je suis pas un grand habitué

Traquila: Attend, je parle pas du temps passé sur contest, juste de repartir d'une page blanche en connaissant les astuces

dbdr: de repartir de 0?

Traquila: c'est 400, 500 lignes

Stilgart: Traquila: je parlais de mon Haskell --> C++ aussi

NoZ-: si je dois apprendre C++ entre autres, ça prendra surement plus longtemps

dbdr: il gene ce smuf, mais qui l'a mis là?

dwarfie: bon , je saispas si ca va servir ... mais ca a soulagé d'effacer tout mon code ... c'est deja plus propre ...

Traquila: juste 2, 3 ans :)

egaetan: dbdr et emile il est où ?

dwarfie: apero pour gravir le pic de balmer et a 'attaque pour les choses serieurse

dbdr: ben c'est bien de lui que je parle

dbdr: 6/7 victoires, donc deux contre un <0.0 :(

dbdr: ça rank pas

Stilgart: rha, l'entrée dans le top100 c'est la galère :/

Zorg1: ouaip

VincentBab: emil c'est pas Joueur sans nom ?

dbdr: si

Kirbiby: C'est quoi l'histoire ? j'ai pas suivi

dwarfie: c'est le smurf de image ... je sors

VincentBab: il hide sans complexe du coup ? xD

Traquila: lol

Stilgart: dbdr: mais il a delete son compte

egaetan: c'est dbdr ou tanzaku ?

dbdr: image?

Stilgart: ou juste changé de nom?

dbdr: delete je pense

dbdr: pas de pays, rien

Zorg1: oui enfin tu parles d'un hide

VincentBab: ah oué ? pk il aurait fait ca ?

BlaiseEbuth: Le smurf de qui ?

Zorg1: j'ai rien compris

egaetan: debdr emile et image

Zorg1: s'il connait pas ...

Stilgart: o// \\o o//

Traquila: c'est pas tout jeune

Zorg1: c'est vieux image

dbdr: Imagine?

Zorg1: un groupe des années 80/90

**Stilgart aurait du plus écouter le stream de egaetan

Stilgart: tu gérais pas mal l'op toi :(

BlaiseEbuth: On pouvait pas écouter c'était en light mode

egaetan: Stilgart oui j'ai discuté de ça un peu

Zorg1: eux : https://www.youtube.com/watch?v=PR0BggKs5jA

egaetan: BlaiseEbuth c'était pour hidder le code magique

Traquila: il est nul le boss gold https://www.codingame.com/share-replay/508175736

BlaiseEbuth: egaetan bah ça a marché :o

dbdr: ah, démons de minuit je connais, je sais juste pas le nom du groupe

Default avatar.png JBM: l'op?

dbdr: bon, après c'est bien moisi

egaetan: tiens dans un replay avec le boss on voit son elo

Stilgart: opponent

Kirbiby: mais du coup emil c'est un autre en legend mtnt ou c'est personne ?

Stilgart: opXXXX dans mon code

Default avatar.png JBM: ah

Default avatar.png JBM: je suis en train de commencer à en mettre un peu

Traquila: En tout cas le boss a une phase de learn bien pourrie

dbdr: egaetan http://cgstats.magusgeek.com/app/fall-challenge-2020/bin101 elo aussi

egaetan: il est pas tout le temps dans cgstat, il faut avoir joué contre lui

dbdr: oui

dbdr: allez, on continue les recommendations de Zorg1 https://www.youtube.com/watch?v=SYnVYJDxu2Q

Zorg1: tout de suite tu poses une question je fourni une réponse

Zorg1: je recommande rien moi :/

dbdr: oui oui ;)

dbdr: fais comme si de rien était

Zorg1: sinon je vais te mettre Moscou

dbdr: tu l'avais sous la main depuis un long moment

dbdr: attenant l'occasion

Zorg1: https://www.youtube.com/watch?v=NvS351QKFV4

dbdr: c'est ambiance de contest sur #fr ! :sunglasses:

Zorg1: :8

Traquila: :D

Zorg1: je monte une boule disco

dbdr: et un punch magique

Zorg1: bon ça dure combien de temps un push en gold au dernières nouvelles ?

dbdr: en jours?

BlaiseEbuth: en ms

dbdr: 2

Zorg1: 2 * 86 400 000 doc

Zorg1: *donc

egaetan: il y a des timeouts méfiez vous

Zorg1: peut on éviter les timeouts avec une machine à remonter le temps ?

NoZ-: non de Zeus

NoZ-: nom*

Zorg1: j'ai équipé une super 5 avec mon équipement temporel

Zorg1: j'ai fait avec ce que j'avais sous la main

dbdr: c'est la réponse allemande à Rasputin?

dwarfie: oui ... la difficuté c'est d'avoir 2,21 gigowattsssssss

xurei: mais c'est quoi un gigowatt ????

Zorg1: c'est un gigawatt bien cuit

dwarfie: on sait pas ... meme dans naheulbeuk ils se posent la question :D

dbdr: https://www.youtube.com/watch?v=YgGzAKP_HuM wth

BlaiseEbuth: dbdr qui découvre youtube

Zorg1: faut éviter de cliquer sur toutes les reco youtube aussi ...

dbdr: :blush:

Stilgart: tiens, ça faisait longtemps

dbdr: c'est un documentaire sur la russie, apparament

Zorg1: enfin les spécialistes du lien chelou c'est BlaiseEbuth & b0n5a1

Zorg1: moi je reste mainstream

Vry: +1

VincentBab: optimisation de bout de chandelle pour évité le branching: int maxRepeat = action.repeatable*4+1;

mrBen: ça vaut le coup les learn dans le BFS ?

Stilgart: OUI

mrBen: ah

dwarfie: on va faire simple .... faut tout dans le bfs ... voila ... on peut pas le mettre en topic... ah ben non y'a pas de topic :D

Zorg1: je commence à m'appercevoir que j'ai pas mal simplifier dans mon BFS

Traquila: c'est rare ou je learn après le tour 20

Stilgart: tiens,

Stilgart: ThomasNicoullaud: tu es ~déterministe toi ?

Stilgart: (j'ai des parties stables dans l'IDE contre toi, ça change)

egaetan: ThomasNicoullaud il est ~

egaetan: ça veut dire tordu ?

Traquila: j'aime pas les random, impossible de debug contre eux

Stilgart: ça voulait dire "à peu près"

BlaiseEbuth: https://www.youtube.com/watch?v=mDFBTdToRmw

Stilgart: (parce que j'imagine que ça dépend de la charge du serveur quand même)

VincentBab: c'est moi ou la font utilisé a pas le tilde ? xD

Stilgart: c'est pas toi :D

Zorg1: ds le webchat tu vois pas les tildes

Zorg1: c'est un tiret

Traquila: je le vois

Traquila: ~ ca ?

Stilgart: (sous freebsd j'ai un ~ dans le webchat)

Stilgart: enfin, un tilde

Zorg1: ça doit être mon FF alors ^^

Traquila: Sous arch / chromium aussi

mrBen: moi je l'ai

Stilgart: Zorg1: je pense que j'ai pas la fonte que demande CG et que du coup, ça en utilise une vraie à la place :D

Vry: +1 Stilgart, idem sur Xubuntu

Zorg1: ah la fameuse fonte CG sans le tilde

VincentBab: . chat { font-family: Arial; }

VincentBab: ^^

Stilgart: bon, 25% de la gold en compute

Stilgart: il voudra rien dire ce run :(

RyMe: pfiu j'ai commencé hier soir, t'arrives bronze et d'un coup c'est le drame :D

VincentBab: faut attendre 5h du mat pour run (:

Stilgart: gg RyMe

Stilgart: c'est super dur quand on commence tard de gravir les ligues

Zorg1: y a moins de gens sur le chat à 5h du mat ?

Stilgart: encore plus avec des ligues à 2k personnes

BlaiseEbuth: Blague à part. La russie c'est cool. https://www.youtube.com/watch?v=BVWfqOSdzs4

**BlaiseEbuth relève le niveau

VincentBab: ya pas grand monde en effet Stilgart

RyMe: ça va c'était pas si difficile mais ls règles c'est violent... On passe des sorts qui bougent les items 1 par 1 à..... des vrais tests de réflexion quoi ^^

RyMe: j'imagine que monter plus haut que le bronze oui ça va pas être simple

VincentBab: tu as pas de nouvelle règles après bronze RyMe rassure toi

RyMe: cool, du coup faut que j'arrive à prévoir les coups à l'avance, ce que je ne faisais pas...

egaetan: RyMe si il ya plus de trois ifs c'est de l'ia

mrBen: ah bon c'est 3 la limite ?

Stilgart: la foret de ifs c'est pas mal pour sortir de la bronze

RyMe: pour sortir de la bronze je pense que j'ai pas le choix que de sortir une fonction récursive plutôt..

Zorg1: mais je vais y passer ma soirée sur ce push ???

RyMe: ou alors vous lanciez des sorts possible au hasard ^^

b0n5a1: o/

Zorg1: \o

Default avatar.png Kaearin: Non RyMe, une fonction récursive ça passe pour passé bronze (argent, voir meme gold)

dbdr: j'ai fait un MC pour sortir de wood :D

**BlaiseEbuth découvre la puissance cachée des fonctions récursive...

dbdr: tant qu'elles sont primitives

Zorg1: houla

BlaiseEbuth: et pures

dbdr: siman tout près

Haashi: ah ouais les push c'est pas ca ce soir

Zorg1: ouaip

Zorg1: y a dbdr qui doit pomper toute la puissance de calcul avec son truc rust en debug

dbdr: *en release

dbdr: faut suivre

Haashi: bon

Zorg1: ah ok

Haashi: doubler ses perfs c'est contreproductif

Zorg1: ils ont aussi mis emil en release ?

dbdr: ils ont releasé emil, oui ;)

dbdr: délivré, même

dbdr: c'est pas moi qui fais 333 submits

VincentBab: ca va passer pour siman je pense ^^

Nangini: ah oui tiens il est où emil??

dbdr: :popcorn:

VincentBab: dans les limbes

Haashi: mon bot a 30k noeuds visités est meilleur que 50k :(

Haashi: parce que celui a 50k trouve sa intelligent de préparer un combo de 3 potions au lieu de juste jouer sa vie

Haashi: et qu'il timeout 1 fois sur 2 aussi, accessoirement

Zorg1: bon je ferais mes tests plus tard

Zorg1: bon dimanche ça risque d'être la folie

Thyl: emil était un bot ??

dbdr: mets ton réveil à 03:00

dbdr: on est tous un peu des bots

Zorg1: bof je vais plutôt faire des trucs jusqu'à 03:00

dbdr: des vieux bots

Zorg1: ouaip on est tous des bots de MK

Haashi: il hide mk ou il fait pas le contest serieusement ?

Zorg1: je crois pas qu'il le fasse

Zorg1: hider c'est pas trop dans sa philosophie. il aime bien faire du bruit lui

Zorg1: ah il a un bot en silver

Vry: On passera légende tranquillement pendant le multi ... :)

Vry: ... là, il faut retrouver une vie normale.

Zorg1: en lisant peinard les PM du top ^^

Vry: Pour le coup, je nettoie mon bot, et je mets des commentaires comme ça je suis prêt.

Zorg1: ah oui la semaine prochaine faut que j'aille sur site

Zorg1: ils ont fusillé tous les accès à distance ces comiques

Zorg1: "on va livrer une nouvelle version du VPN tkt tout est sous controle ^^"

Vry: Ok, vous n'avez pas une équipe technique sur site ?

Zorg1: oui mais on sait pas s'ils vont réussir à remettre d'équerre le truc Lundi

Zorg1: donc vu qu'on a une Mise en Prod assez colossale pour le WE prochaine

b0n5a1: Zorg1 la même toujours pas de VPN

b0n5a1: par contre raf je reste chez moi

b0n5a1: ça me bloque pas...j'ai juste une liste de trucs à commiter qui s'allonge

Zorg1: ah oui moi je bosse beaucoup sur Skype

b0n5a1: (ce qui devient chiant à un moment)

Zorg1: alors bon sans réseau je peux vraiment rien faire

Zorg1: et faut accéder à des tonnes de serveur

Zorg1: après ça me permet de me sortir de chez moi

Zorg1: et de voir qu'il y a quand même du monde dans les transports ...

Zorg1: vu que Vendredi j'ai du venir sur site

b0n5a1: pour ça ça va, sorties de la chienne et rencontre d'autres voisins/voisines avec chiens/chiennes

b0n5a1: y'en a une dans le quartier qui a une jeune cocker de 4 mois là, c'es marrant

Zorg1: oui c'est sûr la chienne si tu la sors pas

b0n5a1: la mienne est super cool avec (cocker aussi) parce que plus petite...parce que sinon la mienne c'est une furie quand elle joue avec d'autres

b0n5a1: les gros chiens finissent par abandonner et en avoir marre avec elle tellement c'est une pile

b0n5a1: et avec un autre cocker de quelques mois de plus que la mienne...là ça s'arrête plus des deux côtés, des dingos ^^

ThomasNicoullaud: bon j'ai un winrate positif sur le boss gold

ThomasNicoullaud: plus qu'a attendre 2h de run

dbdr: rip siman

dbdr: t'as meme l'air de monter pas mal ThomasNicoullaud

Haashi: siman :(

dbdr: quoique

Stilgart: bon, j'ai un winrate positif contre ThomasNicoullaud, plus que 4h de run

dbdr: c'est transitif?

Stilgart: j'espère :D

dbdr: et exponentiel

dbdr: le prochain c'est 8h de run

dwarfie: arreter de me mettre le stress ... je vais finir par croire que j'ai plus 4h pour tout refaire si je veut que mon run soit fini avant la fin du contest :D

dbdr: tu sais bien qu'on peut sub 5 secondes avant la fin

Zorg1: et faire un double jump jusqu'en légende ?

dwarfie: hummm ... c'est pas ce qu'a laisser entendre apo ... et est-on promu gold si le run se termine apres ... :yum:

dbdr: ben oui

dbdr: on peut meme etre promu plusieurs fois

dbdr: et wood apres légende

dwarfie: fin de run .. promotion dans 2h ... pas de bol , l'arene est fermée D

dwarfie: on peut meme passer gold et se retrouver silver le lendemain d'ailleurs ;)

Zorg1: ça me rappelle ces marathoniens qui finissent la course quand le stade est fermé

dbdr: https://i.snipboard.io/63sWvE.jpg

Zorg1: ce talent ^^

dwarfie: s'te honte... et en plus t'as ramasser des XP ....

dwarfie: :D

Zorg1: pour ça qu'il a pas de pb de time out il remonte le temps ^^

dbdr: je suis nouveau moi, faut bien que je me ratrappe

Zorg1: du moment que tu ne trouves pas de bug sur "the descent"

Zorg1: :p

dbdr: ah oui tiens, quelqu'un l'a résolu? je crois qu'il y a un problème

dbdr: mon code est bon, ça c'est sur

Zorg1: ^^

dbdr: mais les validateurrs passent pas

Zorg1: les tests IDE non plus mais ça on s'en fout

dbdr: oui

Stilgart: dbdr: c'est quoi cette arnaque...

Stilgart: j'ai pas réussi à voler de l'XP moi :(

dbdr: faut suivre

Stilgart: et pourtant, j'ai essayé

Zorg1: Alléluia ^^ mon push est fini

BlaiseEbuth: Quel xp ?

Stilgart: le "rerun" de coif

BlaiseEbuth: Ah ouai, l'xp est restée finalement ^^

Stilgart: j'en ai pas eu moi

**Stilgart crie au scandale et à l'Automaton2000 !!!

Automaton2000: la solution c'est de faire le tour de la boucle infinie

BlaiseEbuth: Moi si, et 500 de mieux

dbdr: Stilgart, t'es tombé dedans quand tu étais petit

Stilgart: nan mais t'imagine pas à quel point c'est dur d'atteindre le lvl 50

Zorg1: on change un magic number et on repush

**Stilgart sent la légende qui s'échappe à FC en plus

dbdr: la potion magic number?

Stilgart: Zorg1: exactement

Stilgart: une 1664 ?

b0n5a1: Stilgart pareil ça avait pas compté pour moi

b0n5a1: l'XP rerun coif

dbdr: c'est triste les challengens ont plus de noms ;(

Stilgart: ça a du compter le temps qu'ils se rendent compte de la connerie

b0n5a1: possible oui

Stilgart: et évidemment, j'étais stuck wood3 à ce moment là

b0n5a1: idem ^^

BlaiseEbuth: ballot

Stilgart: dbdr: pourtant, il y avait moyen là

dbdr: 50?

b0n5a1: bof j'ai looté de l'XP sur des trucs cachés une fois, euler qui était tombé dessus

dbdr: euler trouve tout

b0n5a1: tombé dessus par accident en se trompant dans le numéro d'un replay

Stilgart: dbdr: me manque plus que 1.3k xp

Stilgart: mais c'est presque l'infini

**Stilgart ne sait pas comment euler fait

b0n5a1: c'était des drafts de multis existants, qqchose comme ça...et ça validait l'XP

dbdr: contribs non?

BlaiseEbuth: Stilgart il fait des contribs

dbdr: creator

Stilgart: BlaiseEbuth: mais même

Stilgart: son total d'XP est juste insane

Stilgart: 10 victoires d'affilée, +5 places :/

Stilgart: c'est bien la peine que mon bot il se décarcasse

Stilgart: 1 défaire, -5 places

BlaiseEbuth: logique

dbdr: au moins tu as des victoires

Stilgart: c'est bien fait, j'avais qu'à pas raler :D

Stilgart: dbdr: mais je reste stuck à 100e :/

Stilgart: après, le run est encore long

dbdr: closet fini à -0.08 :D

**Stilgart chaud patate pour le pousser

dbdr: const TURN_INTO_BOURRIQUE: bool = true;

dbdr: je suis très fier de ma traduction

Stilgart: :)

dbdr: retraduit, ça donne transformer en bourrique

dbdr: :joy:

dbdr: je crois qu'il faut que je dorme

Stilgart: tu peux, tu es légende

Stilgart: tiens, j'ai un bug énorme dans ma dernière feature... comment mon bot peut monter si haut alors qu'il sait plus jouer les 10 premiers tours ?!

dbdr: http://chat.codingame.com/pastebin/17a03b76-7253-4edb-9321-ce464e23c418

BlaiseEbuth: Va dormir... :expressionless:

Stilgart: c'est raccorde avec emile et images

Stilgart: -e

Stilgart: BlaiseEbuth: c'était pour qui ? :p

BlaiseEbuth: Henry...

dbdr: oui, mais pour ça il faudrait que j'code à plein temps

**BlaiseEbuth Jette des sacs de sables sur dbdr

dbdr: ?

Bon[]Crayon: AutomatonNN La tortue 4éme en légende :turtle:

AutomatonNN: ah merde j'ai une petite question : https://www.codingame.com/ide/challenge/docs/codingame/code ?

BlaiseEbuth: Le marchand de table toussa....

BlaiseEbuth: sable

dbdr: ah

Stilgart: what....

dbdr: des tomates ou des filles nues j'aurais mieux compris

Stilgart: comment ça se fait que AutomatonNN produise un lien valide ?

AutomatonNN: A que tu as déjà fait de la traduction de pourquoi tu veux dire que tu peux pas te dire que tu te fa

Stilgart: il travaille pas lettre à lettre ?

BlaiseEbuth: Marche pas ton lien Automaton2000

Automaton2000: si tu veux un truc qui va pas

Magus: si, NN travaille à la lettre

BlaiseEbuth: pardon

Magus: c'est assez étonnant qu'il sorte un lien entier

BlaiseEbuth: AutomatonNN

AutomatonNN: Pourquoi ?

Stilgart: bah oui

JavaGenin: Est-ce possible de gagner un clash of code avec le code le plus court avec du java..

Bon[]Crayon: C'est déjà arrivé au moins une fois

dbdr: non

dbdr: raisonablement

Stilgart: bon, ça 404 mais c'était très crédible comme url

Stilgart: JavaGenin: oui, en fait 100% tout seul

Stilgart: faisant*

Bon[]Crayon: JavaGenin Si tu tombe avec des joueurs qui abandonneent

BlaiseEbuth: /ide/challenge/code/docs

dbdr: AutomatonNN: tite question : https://www.codingame.com/ide/contest/contest/contest/conte...

AutomatonNN: stilgart : je connais pas le sujet de la constante du contest de CG :(

Stilgart: AutomatonNN: mais si, c'est la victoire

AutomatonNN: suce toi et tu peux pas te dire que tu as tendance à faire un truc de moi

Stilgart: quoi quoi quoi ?!

BlaiseEbuth: En fait on se demande pourquoi AutomatonNN est si limité, mais en fait tout son réseau est dédié à la création d'url valides...

AutomatonNN: pas mieux que le contest que tu veux la faire un truc de mon code

JavaGenin: Bon[]Crayon : bref c'est pas possible sauf abandon :joy:

dbdr: ThomasNicoullaud t'as joué contre le boss au moins?

ThomasNicoullaud: no xD

ThomasNicoullaud: c'est la loose total

dbdr: c'est bien la peine!

Magus: Mais qui a appris des choses pareilles à AutomatonNN ? oO

AutomatonNN: un truc que t'as pas tout dire que tu peux pas te donner ce que tu veux dire

BlaiseEbuth: Ca reste gentil par rapport à ce qu'Automaton2000 dit parfois...

Automaton2000: je me sens moins seul

BlaiseEbuth: :D

Stilgart: bon; 50xp en vue

BlaiseEbuth: Ah ?

dbdr: tu passes bronze?

Stilgart: cf le beep

Boulet: Number derivation

BlaiseEbuth: J'ai pas de notifs

Boulet: :D

Haashi: closet qui passe a 0.02

dbdr: 4 école JP dans le top 6

dbdr: c'est pour ça qu'ils sont si nombreux

Magus: toute une journée à coder pour enfin réussir à faire mieux que ma merde de mcts

Magus: mais ça fera pas légende

dbdr: ça monte bien...

Kirbiby: t'as fait quoi du coup ?

Magus: ouai mais j'ai un winrate de merde dans l'IDE

OldDadou: Comment vous arrivez a avoir du 30k noeud visité ? Je plafne a 2K

Magus: (contre le boss gold)

VincentBab: OldDadou: https://www.codingame.com/playgrounds/38626/optimizing-breadth-first-search

OldDadou: Meric

Magus: OldDadou: dans plein de contests, j'ai souvent beaucoup plus de simus que ce que disent les gens du top (après, c'est ce qu'ils disent, je peux pas vérifier). Mais bon, hein ... visiblement ça fait pas tout... vu que le dernier contest que j'ai gagné remonte à plusieurs années et que j'ai eu beaucoup de chance

Magus: et maintenant j'arrive même plus à passer légende :(

Magus: vas y je suis vieux et rouillé

reCurse: C'est que le nombre de simus veut pas dire grand chose

Magus: comme disait un grand sage, sans maitrise, la puissance n'est rien

Stilgart: clairement, je fais touner mon bot avec 30ms au lieu de 50ms et ça donne le même résultat

Stilgart: le nb de simu, ça fait pas tout

reCurse: Si t'as une super éval qui fait descendre de 10x ton nombre de simus, c'est quand même mieux

Magus: bah ça suivant ton algo c'est normal non Stilgart ?

reCurse: Donc c'est des comparaisons tellement foireuses

dbdr: un ordre de grandeur ça aide x2 c'est presque du bruit

Stilgart: c'est pas choquant dans mon cas

Magus: si c'est un BFS, la prochaine profondeur à atteindre est souvent beaucoup trop grosse

Stilgart: mais j'arrive pas à exploiter les 20ms restantes pour gérer l'adversaire (

Stilgart: Magus: je fais pas du iterative deepening

Magus: ah

Stilgart: donc mon temps est vraiment utilisé

Fangel: en plus derrière le mot "simu" il peut se cacher beaucoup de chose

Stilgart: c'est juste que je garde au final un truc trouvé très tôt

Fangel: prendre un peu de temps pour calculer une métrique qui prune efficacement par exemple

Magus: bon, j'arrive à rentrer dans le top 10 gold mais ... a 3 ELO du boss, sniff

reCurse: Je peux avoir des millions de simu en 50ms en calculant que le cast du premier tour hein

dbdr: gogogo Magus!

Stilgart: gg quand même

Magus: j'ai un winrate de merde contre le boss je passerais pas. A moins qu'il y ait des genre sous le boss qui perdent 100% du temps contre moi

Kirbiby: dire sniff à 25% du run en même tps ...

Magus: *des gens

Fangel: bon dbdr va t'avouer, il y a un glitch caché dans le boss...

VincentBab: un truc important avec le BFS il me semble, c'est de pas prendre un résultat si tu as pas evalué tout les node de la depth en cours

dbdr: mp pour me demander mon addresse bitcoin

Magus: oui VincentBab, c'est la base ça

VincentBab: oué mais je sais pas si tout le monde le fait ^^

Haashi: je le fais pas

Stilgart: je fais pas ça

VincentBab: :P

Magus: iterative deepening, que ce soit pour du BFS ou DFS, si tu finis pas d'évaluer la profondeur, tu gardes pas le résultat

BlaiseEbuth: fixez vos bases

Stilgart: mais c'est pas si pertinent que ça dans ce contest

VincentBab: ca aide a avoir des résultat répétable deja et je pense que c'est important quand meme

Haashi: le gold c'est un bourbier

Haashi: un submit je fais 130

Haashi: a midi

OldDadou: Et, est-ce que vous orientez le parcours des noeuds de votre BFS ?

Haashi: le meme submit et je stuck 290

BlaiseEbuth: Tu disais la même chose en bronze Haashi...

Eldritch: pareil Haashi c'est les tranchées la :D

Haashi: BlaiseEbuth ouais mais en bronze le bourbier c'était parce qu'on était 3000

Neumann: Magus t'as remplacé ton MCTS par quoi ?

BlaiseEbuth: Toujours vers la gauche OldDadou

BlaiseEbuth: Neumann -> de la merde visiblement

Neumann: Oui mais quel genre de merde

Neumann: Y'en a un paquet

Magus: Par un truc mieux qui fera sans doute pas légende

Magus: (c'est juste un BFS avec une éval)

Neumann: Ok

Kirbiby: avec l'adversaire ?

Neumann: Ca existe les BFS sans éval ?

Magus: euh ... non :D

VincentBab: Ca peut faire légend Magus crois moi :P

Stilgart: si, mais ça timeoute

dbdr: Magus Completely Terrible Search

VincentBab: xD

Magus: mon mcts pour le coup c'était un mcts bidon

Magus: rollout jusqu'à ce qu'il n'y ait plus de potion ou la vraie fin de la partie

Magus: la seule subtilité c'est que je faisais pas de LEARN pendant un rollout

dbdr: je gagne plutot plus de matches qd je suis #20 que qd je suis #39 en légende comme quoi le bourbier c'est partout :D

Magus: je sens que je vais rank 1er juste derrière le boss ...

Mator: Ca finira bien par passer....

dbdr: en deuxième rempart

Magus: 1 ELO d'écart je vois mal comment ça passe

Stilgart: si je te pousse ça passe large

Magus: enfin on va déjà attendre la fin du submit

Magus: et bidouiller des coefs au pif

Stilgart: mauvaise idée ça

Magus: quoi ? mais je fais tout le temps ça moi !

Stilgart: j'ai fais ça toute l'aprem, et c'est l'echec

Magus: regarde, allez, ce coef à 0.2 la, passons le à 0.22

dbdr: that's Numberwang!

BlaiseEbuth: "vu que le dernier contest que j'ai gagné remonte à plusieurs années et que j'ai eu beaucoup de chance" :grin:

dbdr: bien casé

Magus: bah t'as pas vu le bug de l'espace que pb4 avait dans son code

Magus: ses wizards pouvaient pas tourner

pb4: ?

pb4: ahhhh, FB -_-

Magus: fantastic bit

pb4: Et c'était pas le seul -_-

Magus: le mec il a fait 2ème avec des wizards qui tournent pas

dbdr: et ça rankait ça???

Magus: bah ouai, 2ème du contest

Magus: juste derrière moi

Mator: Si c'est pas ce coup ci ce sera le suivant :/

pb4: Pour plus de précisions :

dbdr: c'est dire le niveau ;)

pb4: angle = rand(256)

reCurse: Il a fait 3e

pb4: en degrés...

Haashi: ah ca y est

reCurse: :P

Haashi: j'ai passé les 280

Magus: ah c'était reCurse le 2ème ?

Magus: je me souviens plus

Haashi: depuis série de victoire \o/

dbdr: ah, donc il faisait 256/360 des angles?

dbdr: c'est deja plus réaliste

reCurse: Angle mort du balai

dbdr: :D

dbdr: sinon faut bien vier le snaffle pour qu'il te mette dans le bonne direction

dbdr: enfin viser sans tourner... doser l vitesse

egaetan: _Royale c'est sympa de rester juste devant moi mais mon IA est pétée là

egaetan: tu as le droit departir plus haut

Kirbiby: vous utilisez std::queue ou pas ?

dbdr: il est loin devant toi, de 3+ points...

dbdr: c'est juste la glue le bottom legend

b0n5a1: Kirkiby si tu veux aller plus vite prends un gros tableau + un index last inserted + un index current (par exemple)

b0n5a1: (préalloué tour 1)

Haashi: b0n5a1 quand je fais ca j'ai des randoms timeout

b0n5a1: bah t'as une seconde, ça suffit très large pour allouer...ensute c'est plus que des éditions à un index particulier

b0n5a1: t'as plus de construction/destructions

Magus: Bondo416 qui a submit en même temps que moi me met des claques à chaque parties la

Magus: et je viens de découvrir que son avatar c'est un tube de coll

Magus: *colle

Magus: et ça me rend encore plus triste

BlaiseEbuth: sniffe le, ça ira mieux

Agade: J'te corrige, c'est de la colle a bois

Vry: En attendant le boss baisse bien ... ton éval. à l'air de bien s'en sortir

dbdr: c'est de la colle japonaise

Magus: c'est pas moi qui descend le boss

Magus: c'est monsieur colle à bois japonaise

_Royale: egaetan: ouais t'as raison, resubmit !

Magus: bon remarque si bondo baisse tellement le boss que je passe avec lui

Magus: pourquoi pas

dbdr: c'est de la colle usion

VincentBab: ca va le faire Magus

dbdr: bondo il pert 5-7 contre le boss

dbdr: 5-8

Magus: ah mais c'est vrai que j'ai fait un outil pour savoir ça

Palmipedus: pfffff, c'est vraiment chiant cette histoire de GC, j'ai trop de timeout sauvage

dbdr: lol

nicolasD: Haha j'ai réussis a gagner 250 places :)

Magus: j'ai 5-10 contre bondo :(

nicolasD: Mais il est loin le boss silver ...

Magus: le mec me farm pour passer légende

VilBoub: Allez Magus ^^

R4N4R4M4: T'es pas loin du boss là Magus

egaetan: resubmit qu'il se casse la figure

Traquila: 0.19

Magus: bah avec un peu de chance ça passera tout seul avec quelqu'un qui submit derrière moi

Magus: suffit qu'il soit à la limite du boss pour ne jouer que contre moi et le boss :D

Zanbez: Palmipedus, j'ai le meme souci de GC.

Palmipedus: la c'est limite injouable, en fait je dois jouer sur 25ms...

OldDadou: On peut savoir combien de pots il reste avant la fin ?

Palmipedus: et comme c'est pas trop opti mon code ben antant dire q'il va pas loin dans le search

Palmipedus: OldDadou oui mais il faut que tu calcule

Traquila: pour que le GC déclenche il faut libérer des objets non ?

VincentBab: par contre dbdr ferme les portes à 00h donc dépêche toi Magus xD

Haashi: euh

Haashi: c'est quoi ce run d'Agade

Haashi: 1.5 au 2eme

Zanbez: J'ai fait quelques modif et la, c'est le chateau de carte. Timeout à outrance

Haashi: gg

BlaiseEbuth: Bah Agade il revient pas pour enfiler Perl

dbdr: joli

VincentBab: c'est qui Perl ?

Magus: il enfile les Elixir comme des Perl

Traquila: Magus tu feed le boss non ?

egaetan: C'est la deuxieme question que l'on se pose apres la fameuse , Magus c'est celui de dt... et

Traquila: siman va te pousser :)

Traquila: ha non, il pousse le boss :)

Magus: je sais que je feed le boss, j'ai un winrate naze contre lui

mrBen: ah ! j'ai fix mon decay, et ça marche vachement mieux !

Magus: mais siman et bin101 vont peut être me pousser au dessus du boss, vu que mon submit est fini je vais plus jouer contre le boss (système de ranking pas terrible sur ce point ...)

Traquila: Bon il faudrait que je gère les visites dans mon dfs mais je ne sais pas comment faire sans écrouler les perfs

Traquila: il me faudrait une allocation 4Gb

Magus: ah, bah merci trictrac

Traquila: On t'a poussé !

Traquila: gg

trictrac: de rien bon courage pour la legende

dbdr: gg Magus!

egaetan: gg Magus

mrBen: gg Magus

Magus: mon IA va se faire massacrer en légende maintenant, elle doit être contente

_Royale: gg Magus !

dbdr: bon, je repasse le boss à 30ms

Magus: mais chut dbdr, dévoile pas le secret

Magus: "ouai, je suis légende, je vais jouer contre Agade le premier, je suis sur la partie sera super intéressante, bien plus qu'en gold"

Magus: https://www.codingame.com/share-replay/508304494

Magus: c'est quoi cette merde ?

mrBen: what

mrBen: jolie partie !

Traquila: lol

YannT: j'adore tour 69 ton IA se dit après 30 tours à rien faire atta jme lance dans le fromage

dbdr: :no_mouth:

Magus: en fait la raison se cache dans la profondeur qu'elle arrive à voir

Magus: tour 67, profondeur de 34, elle voit la fin de la partie

Magus: ce qui m'inquiète c'est pourquoi elle gagne pas avant, elle a eu 30 tours pour juste acheter la première potion et finir la partie :/

YannT: "je vois le futur, le clé de la victoire est dans le fromage"

Stilgart: farmer le fromage, c'est la vie !

mrBen: ça vas bien avec ton avatar ça YannT

Pink: not a gambler...lollll

egaetan: Magus tu prunes les branches ou ton ia fait une potion ?

Magus: je prune rien à profondeur 0

Magus: en fait mon IA enchaine les LEARN parce que comme j'ai interdit le WAIT ... bon bah voila

mrBen: allé, run sans défaite, es-ce que je vais battre le boss ?

redCroc: pour ceux qui auraient fait du multihread en python, vous avez des soucis au moment du .start() ? sur mes tests le .start() bloque parfois pendant 20ms ...

mrBen: c'est utile le multithread sur CG ?

Traquila: non

b0n5a1: y'a qu'un core redCroc

mrBen: (vraie question)

Traquila: J'ai essyé

Traquila: J'ai commencé le contst avec 5 thread (un par potion)

OldDadou: on peut faire des threads ?

mrBen: parce qu'il me semblai que le temps de chaque thread est ajouté pour le temps limite

Traquila: Mais les changements sur un mono core te faire perdre qq ms

Magus: on peut faire des threads, mais il n'y a qu'un seul core de dispo

Magus: donc en terme de perf, c'est inutile

Magus: ça peut être utile en terme d'algo/code

redCroc: ok merci pour vos réponses

Traquila: en fait c'est inutile avec un dfs

redCroc: donc mes threads sont un peu inutiles...

redCroc: parfois ils fonctionnent bien quand même donc j'avais de l'espoir

Traquila: c'est utile avec d'autres algo ou tu aurais besoin de paraléliser les traitemetns

Traquila: Mais tu vas perdre 5 à 10ms à cause des changemetns de contexte

redCroc: oui c'est ce que je vois --'

Traquila: Vous avez implémenté une table de hash pour gérer les visites ?

mrBen: oui

Magus: non

egaetan: non

VincentBab: gg Magus ^^

Magus: a vrai dire, j'ai jamais réussi à implémenter des tables de hash

mrBen: change de langage

Magus: chaque fois que j'ai essayé, gérer la table de hash s'est avéré plus lent que de ne pas le faire

Traquila: Du coup vous avez pas de notion de visite ?

mrBen: si

Magus: non

egaetan: si

Magus: enfin ça dépend, t'entends quoi par "notion de visite" ?

Magus: et beh egaetan, tu galères encore plus que moi en légende

egaetan: quant A+B == B + A == C ?

Traquila: Dans mon node, j'ai pas de boleen disant si je l'ai visité ou pas

egaetan: Magus oui

Magus: je fais un BFS sans me soucier de savoir si j'ai déjà visité un node ou pas

Magus: je visite le noeud quoi qu'il arrive, tant pis s'il était déjà passé

Traquila: Du coup j'ai pareil

ThomasNicoullaud: tu fais un BFS ou plusieurs BFS Magus ?

Magus: j'ai pas d'id/hash/autre pour savoir s'il a déjà été traité

Magus: un seul

ThomasNicoullaud: et ton eval elle est complexe ?

Magus: j'avais un MCTS stupide et je l'ai juste remplacé par un BFS stupide

Traquila: Mais ca fait plein de branches en trop du coup, et avec 500K nodes, j'ai que 8 en profondeur

VincentBab: tu doit avoir une bonne eval ^^

Vry: Ça me donnerait presque envie de m'y remettre parce que du coup il ne me manquerait que l'éval. et le learn si j'aibien compris

Magus: mon eval fait 20 lignes

Vry: Tu learn Magus ?

VincentBab: c'est pas la taille qui compte :P

PhOeNyX: Mon eval fait 1 ligne

PhOeNyX: ahah

Traquila: comment on coupe les branches sans visite alors ?

Magus: comment ça je learn ?

ThomasNicoullaud: tu fais plusieurs bfs VincentBab toi ?

egaetan: et la motivation Vry

Zorg1: vry : le "learn" chez toi c'est prendre les 10 premiers spell gratuit c'est ça ?

Magus: je fais le learn dans mon bfs si c'est la question

VincentBab: non un seul aussi, mais j'ai une idée pour un 2eme si je me motive

Magus: et j'ai une astuce piqué à euler :D

PhOeNyX: Magus est-ce que tu es en train de dire que tu perds en perf quand tu tentes de skip les doublons ?

VincentBab: :O

Traquila: J'ai un BFS pour la partie learn

ThomasNicoullaud: j'étais sur le point de recoder un nouveau truc mais je crois que j'ai la flemme

Magus: PhOeNyX a chaque fois que j'ai essayé, quelque soit le contest, oui

VincentBab: quelle astuce ? :D

Magus: la première fois que j'avais essayé c'était sur wondev woman, ce fut un échec monumentale

Magus: soit je m'y prend très mal

ThomasNicoullaud: à base de 1BFS par coup pour calculer les distances des potions et une éval pour minimiser les distances

Magus: soit il y a un truc que je comprend pas du tout

Magus: mais maintenir/calculer des hashs pour un état de la partie, c'est pas gratuit en perf

PhOeNyX: Ok, parce que là j'ai un objet "State" dont j'ai Override la méthode hashCode() et j'utilise un HashSet pour mettre les State explorés

Magus: encore plus quand t'as des collisions

Zorg1: mon BFS essait de faire tout en même temps, learn, cast, ...

PhOeNyX: Je n'ai pas testé sans. ^^

Magus: résultat a chaque fois que j'ai essayé, ne pas le faire me faisait de meilleurs perfs, je fais beaucoup plus de noeud (bon ok j'ai des doublons dans le tas, mais je fais avec)

Vry: Je me dis que le hash peut aussi te couper la mauvaise branche ...

Vry: Genre A+B et B+A il coupe B+A mais c'était le "meilleur" choix

Magus: VincentBab: une astuce bidon qu'il avait donné sur le chat world. C'est juste que si tu vois que dans le "chemin que veut faire ton IA", tu as un LEARN après la profondeur 0 et que tu n'as aucun BREW avant ce learn, autant faire de LEARN directement que plus tard.

Magus: (parce que faire des casts tu t'en fous tu le fais quand tu veux. Les learns par contre l'adversaire peut piquer le spell entre temps)

egaetan: zut je pensais à une révélation

Traquila: je learn en deep 0 ou 1 (car il y a le cout du learn a payer aussi)

Magus: ah bah j'ai pas dit que c'était l'astuce du siècle hein :D

PhOeNyX: Si A+B=B+A en quoi B+A serait un meilleur choix que A+B ?

VincentBab: ok je vois, je gère ca un peut differement mais j'ai un peu la meme chose ^^

Vry: le prix de la potion, le fait de se la faire piquer

egaetan: oui aussi

Magus: PhOeNyX si B est un LEARN et A est un CAST, B+A c'est mieux queA+B

VincentBab: true

YannT: sauf si tu veux cast des tiers0 pour payer le LEARN

Magus: j'ai déjà vu mon IA faire un LEARN pour se faire de la place

Vry: Mais du coup ton hash il en prend un coup ... il doit se poser pleins de questions

Magus: 4 tiers0 qui servent à rien dans l'inventaire => allez je vais un petit LEARN 4

Magus: *je fais

Magus: aucune idée de si c'est rentable de faire ça, mais visiblement elle avait pas trouvé mieux

Vry: Tien j'ai un bug ... :)

Vry: *Tiens

Vry: Dans mon BFS avec learn je ne déduisait pas le coût

Vry: *déduisais

Traquila: Si l'ID unique du node tient sur 32bits, alors il avec un tableau de 2^32 bits (536 MO) on peut gérer la visite. C'est jouable ?

egaetan: Traquila non

Magus: faut quand même prendre le temps de le générer ton ID unique de 32 bits

Traquila: J'ai peur du memset 0 à chaque tour

Vry: Oui le memset coûte

VincentBab: ca va te prendre 50ms (voir plus) pour memset 500Mo xD

Vry: Quand les serveurs étaient à la ramasse > 5ms perdues

Vry: Pour 32Mo

egaetan: 256ko mon already visited

egaetan: peut être je pourrais m'en passer ... :'(

egaetan: => ajouter à la todo

YannT: sauf si t'as des perfs de psychopathe il faut pas s'en passer

YannT: y a *beaucoup* de states dupliqués

Vry: :sunglasses:

Mapapin42: Comment tu calcules la taille ? @egaetan ?

Traquila: Je ne sais pas comment les gérer

POLOB: il faut que ton calcul de hash te coute pas trop cher

POLOB: oulà, mon chat était pas à jour :)

egaetan: je suis en C alors uint64_t set[32032]; je sais quelle taille ça fait

Traquila: ca ok mais apres tu as un arbre statique géré avec des id ?

Mapapin42: Ah ok

egaetan: et en perfs 200k noeuds visités en moyenne

Magus: wow, j'en visite tellement moins que ça lol

egaetan: mon eval fait une ligne

Magus: 300k noeuds c'est ce que je fais avec une eval vide

Magus: ah

Magus: c'est peut être pour ça

Magus: la je suis plus à 50K

egaetan: j'ai tendance à êter d'accord

Traquila: j'en fait 500K mais j'imagine avec 90% de branches dupliquées

mrBen: bon bah faut que je bosse mes perf, j'attein à peine 5000

egaetan: bosse ton eval

egaetan: et corrige tes bugs d'abord

mrBen: ouais, la correction de bugs c'est en cours...

VincentBab: une trop grande profondeur ne sert pas a grand chose car l'avenir est incertain (spell et brew) ^^

Vry: Merde je suis à plus de 1000k ...

Vry: ... mais avec le learn ça va descendre

egaetan: haha

Traquila: 1M je vois pas comment tu fais par contre

mrBen: et mon eval fait aussi une ligne...

Vry: Traquila : je fais vite

Stilgart: 1k après l'autre

Vry: Et avec doublons !

Stilgart: tu as quoi comme ratio de doublon ?

Zorg1: bah s'il les vire pas je sais pas s'il le sait

Traquila: exactement

Vry: Stilgart : je sais pas ... mais le hash filtre rapidement dès les premières profondeurs donc ça baisse vite

Traquila: tu peux pas savoir si tu ne cherche pas à les supprimer

Stilgart: Zorg1: il aurait pu essayer de le mesurer en local

Vry: Oui, je pourrais ...

Zorg1: vty : ah mais si tu as un hash c'est que tu les vires ?

Traquila: vry tu fais 1M de node avec un hash ??

Vry: J'ai viré mon hash pour passer Gold

Zorg1: ah ok

VincentBab: ca parait enorme oué

Zorg1: ah oui 1 millions de noeuds par tour c'est ça ?

egaetan: Vry tu enleves le hash sans rien dire à personne !

Vry: J'ai allégé au max à la Bob > KISS

VincentBab: tu as fais ton BFS en assembleur ?

**Stilgart savait qu'il aurait du faire un git branch

Vry: En C mais j'ai encore un truc moche à améliorer

Traquila: Perso je vois pas comment réduire plus sans faire de l'ASM

Vry: http://chat.codingame.com/pastebin/bf55dce3-d5e8-475e-895d-5525c60cab48

VincentBab: il fait quelle taille ton state Vry ?

Jino42: A quoi sert une eval dans un BFS ? :o Vue qu'il n'y a pas de priority queue

b0n5a1: hein ?

mrBen: fin de run : #77 Silver, c'est mieux que d'hab mais je suis toujours pas Gold...

Default avatar.png JBM: à quoi sert un bfs?

Zakaoai: mrBen 121 Silver et pareil que toi ;)

Gh0stm4chine: Courage les gars !

b0n5a1: ouais se poser cette question d'abord JBM :joy:

mrBen: merci Gh0stm4chine !

egaetan: Vry c'est super lisible ton truc

egaetan: http://chat.codingame.com/pastebin/6e52cd9a-7eb2-4679-ae57-3fc42419b16d

Default avatar.png JBM: je vais la reposer de manière plus explicite

Zorg1: j'en sais rien, on m'a dit qu'il fallait faire un BFS, j'ai récupéré mon code et j'ai codé

Default avatar.png JBM: à quoi sert d'avoir plusieurs possibilités sans eval?

Zakaoai: Thx Gh0stm4chine

Magus: comment tu ferais un BFS sans éval ?

Zakaoai: un BFS sans eval ... pas à grand chose je dirais

Magus: genre t'as fini de parcourir tout les noeuds d'une profondeur ... ok ... t'en fais quoi ?

Gh0stm4chine: tu passes à la profondeur suivante, jusqu'a trouver des potions ?

Default avatar.png JBM: "trouver des potions"

egaetan: tu les mets à la poubelle ?

Magus: trouver une potion c'est déjà une eval

Default avatar.png JBM: c'est ça ton eval, que tu l'assumes ou non

mrBen: Mon eval c'est juste le score que j'aurai si le partie s'arrete sur ce noeud. C'est normal ou faut que je trouve une meilleur idée ?

Default avatar.png JBM: c'est un début

Vry: VincentBab : uint64

egaetan: trouve mieux

Fangel: mrBen c'est bien meilleur que ce qu'on croit

Gh0stm4chine: oué c'est une éval à +infini directement

Fangel: je suis passé légende avec ça

Zakaoai: Oaip faut trouver mieux même moi j'ai mieux et je pense qu'il faut que je trouve mieux ^^'

mrBen: ah non, j ai un decay en fait

mrBen: en plus

egaetan: Fangel c'est vrai ?

VincentBab: Ah oui c'est tout petit ! moi il fait 32bytes ^^

VincentBab: 4 fois plus gros

Fangel: egaetan oui

egaetan: zut j'ai 40

Gh0stm4chine: tu as le nombre de tour et le nombre de potions déja produites par chacun que tu peux utiliser aussi

Traquila: Je suis passé à 96bits pour gérer le learn

mrBen: mon état fait 32 bit

mrBen: (enfin le hash, parce que je ballade des objet un poil plus gros

mrBen: )

VincentBab: mais tu peux pas tout géré avec 8bytes, les taxcount, les tomeindex, les brew, ... ?

egaetan: les bonus

Traquila: 96b je jère tout

Vry: VincentBab: le node avec state inclu fait 19 octets

VincentBab: ah oui tien les bonus c'est dans ma TODO xD

egaetan: le truc relou

POLOB: 19 octets ?

b0n5a1: si t'associe un bit à un truc (brew, sort, ...) si VincentBab

POLOB: du mets pas tout, si

POLOB: perso, je garde par les brew et les learns

Vry: VincentBab : en effet j'ai pas la fiscalité mais sinon learn (oui/non), brew (oui/non) inventaire et castable

POLOB: que ce qui est stable à peu près

VincentBab: mais du coup tu simule pas le tomeIndex et taxCount

Traquila: http://chat.codingame.com/pastebin/fd5dda9d-a58f-4d8c-bfff-d6180f0b3b6b

POLOB: octets, pas bits polo...

Vry: Non ... mais j'ai pas le learn

egaetan: 32bits d'etats alors que tu peux avoir 42+4 sorts avec un etat castable, je vois pas

Vry: Mais si je veux l'ajouter proprement j'ai un peu de boulot

Fangel: c'est quand même rarement celui qui fait la 6ème potion qui perd...

VincentBab: egaetan: j'ai limité les cast a 32 car en pratique ya jamais plus

POLOB: oui, jFangel

Zorg1: bah si tu te contentes de faire 10 learn au début, tu n'as que 16 sorts possibles

Vry: Moi j'ai 40bits pour les casts

Zorg1: * 14 d'ailleurs

POLOB: du coup, je me demande si il faut pas prendre en compte ça

mrBen: Fangel, si si, en Silver je gagne souvent avec 5 voir 4 potions

egaetan: ok quand la partie fait 30 tours, les 42 sorts c'est ....

b0n5a1: ouais j'ai des victoires à 4 potions contre 6

POLOB: viser la fin de match en faisant les sorts les plus rapide quelque soit le prix

Fangel: bien sûre y a des exception

egaetan: quand je rushai potions, j'etais sans doute pas assez rapide

Fangel: mais celui qui est à 5 potions a l'oppotunité d'arrêter la partie sur un gros gain

Magus: de toutes façons suffit de regarder le top pour voir que les parties font très rarement plus de 40 tours

Magus: ça s'arrête entre 30 et 35 tours

mrBen: par contre quand je perd, c'est effectivement toujours l'autre qui fait la 6e

VincentBab: mais si tu as 5 potions et que ton score est inferieur au score de l'adversaire+ la plus grosse popo tu as deja perdu ^^

VincentBab: (modulo les ingredient de ton inventaire)

Fangel: oui VincentBab, mais là y a un problème quand même....

Fangel: ça veut dire que tu perds à 6 potions contre 4

egaetan: oui ça m'arrive

Traquila: Magus, du coup tu fais comment pour couper les branches inutiles ?

Magus: qui a dit que je coupais des branches ?

Magus: j'ai dit que je faisais un bfs stupide

VincentBab: il coupe pas il eval tout ^^

Magus: ça inclut la stupidité

VincentBab: jvais test en desactivant les hash pour voir xD

Traquila: je coupe pas non plus et avec 500k nodes je descend à deep 8, tu coup le multipotion n'est pas possible. Tu dois avec un truc, j'en suis cur :)

Traquila: *sur

Magus: bah j'ai une eval

VincentBab: toute la subtilité est dans l'eval ^^

Traquila: c'est cela couper des branches :p

egaetan: ou pas, mon eval d'une ligne est bien stupide

VincentBab: ca va être cool de lire les PM à la fin :)

Magus: bah surtout ceux du top 10, parce que j'ai aucune idée ce qu'ils font pour être aussi haut

Traquila: un hash :p

egaetan: un hash et du pruning ?

joelthelion: bon, sympa, mon code est soudain 1000 fois plus lent sur CG qu'en local. J'ai fait un gros patch, je sens que ça va être facile à débuguer :-(

Magus: un hash ça m'étonnerait, c'est pas le genre de le maison pour certains dans le top

Magus: du pruning, surement

Magus: une meilleur éval, obligatoirement

VincentBab: Mazel a dit qu'il faisait du beamsearch, donc il prune

VincentBab: mais sur quelle critère c'est un mystère ^^

Magus: bah beamsearch le critère c'est l'éval normalement

egaetan: il a aussi dit qu'i lgerait en partie l'adversaire

Magus: tu éval tes noeuds, tu tris tes noeuds, tu tranches ton tableau à l'index que tu veux pour garder que les meilleurs

VincentBab: ah oui ca c'est sur ma TODO aussi lool

egaetan: je sais pas s'ils fontun vrai beam

egaetan: le tri ça coute la peau des fesses normalement

Magus: bof, un tri par profondeur ?

Magus: au pire tu fais quoi, 30 tris ?

Magus: c'est pas comme si ça allait te prendre plus de 5ms de trier 30 fois ton tableau

VincentBab: ah oui par profondeur pas par node humm

Magus: (et encore ... 5 ms ... je m'emballe. Même un tri de plusieurs milliers de noeud ça doit prendre 0.1ms)

Magus: entre un BFS et un beamsearch il n'y a qu'un sort

Fangel: je fais un beamsearch et le tri me coûte clairement moins cher que de vérifier si le noeud a déjà été vu...

mrBen: et du coup, ça vaut le coup de faire un beam search à la place d'un BFS ?

Magus: ça dépend des cas, comme toujours

Magus: tu pourras le savoir qu'en testant toi même

Magus: un beamsearch ira plus profond qu'un BFS, mais tu vas prune agressivement

Magus: et potentiellement virer des bonnes branches sans le savoir

VincentBab: tout depend de la pertinance de ton eval quoi ^^

mrBen: Bon bah je sais ce que je vais faire demain

VincentBab: Agade a taper un gros coup en fait la lol

Traquila: j'ai une autre idée en tête, si on classe les sorts en mettant ceux uniquement positif en tete de liste, pour tous les nodes inférieurs créés lors des cast on leur interdit de cast les sorts inférieurs.

Traquila: Un exemple, S1 et S2 sont 2 sorts positifs, je crée S1 normalement, puis je créé S2 en disant n'utilise pas S1.

Traquila: puis S1 sont reversible je coupe une branche

VincentBab: mais pk S1 > S2 > BREW ne serait pas possible par exemple ?

Traquila: si

Traquila: Mais j'interdit S2 S1

ThomasNicoullaud: dans vos BFS vous inculez l'adversaire ?

ThomasNicoullaud: *incluez

VincentBab: ok je vois oui ca a du sens ^^

xfagixis: Quand on apprend une formule elle est forcément castable au step d'après ?

ThomasNicoullaud: je me retrouve avec des depth 20 mais sans l'adversaire j'ai l'impression que ca me sert a rien

Traquila: Mieux quand je créé S2, je luis dit que S1 n'est plus dispo

VincentBab: mais il faut autorisé S1 > * > S2 > ...

Traquila: en fait je grille tous les cast inférieurs, ca me coute rien en mémoire

VincentBab: faut voir si ca marche

VincentBab: mais ca a du sens en tout cas ^^

Traquila: après ca ne marche que pour les positif pur

CDA-20285-Gabriel-Misiurny: Salut à tous, http://chat.codingame.com/pastebin/803d0d06-14a3-4ccb-bcc2-fe2c77084624

egaetan: ThomasNicoullaud non

egaetan: je n'inclus pas l'adversaire

ThomasNicoullaud: ty egaetan

egaetan: mais je trouve ça bizarre aussi

Stilgart: same here

egaetan: mais je vais beaucoup moins loin, à depth 18 il n'y a aucun souci ThomasNicoullaud

BigNozMG: Fangel tu fais un beamsearch en évaluant uniquement ton score si la partie s'arrête ? Mais comment tu tries du coup ? Tu dois avoir plein de nœuds qui ont tous le même score

Stilgart: mais je vois pas comment inclure l'adversaire sainement

Stilgart: et les essais au pif ont rien révélés :(

joelthelion: on sait sur quels CPU tournent les serveurs de CG? je soupçonne la taille du cache pour mes soucis de perf

BlaiseEbuth: Toujours la faute du materiel

Zorg1: bah tu peux lancer un uname avec bash

R4N4R4M4: De mieux en mieux : "R4N4R4M4 attempted an invalid action: Not enough space in inventory for spell 89"

joelthelion: j'avais plutôt de meilleurs perfs que chez moi, et là tout à coup je me prends un facteur 1000

Zorg1: puis un cat /proc/cpuinfo

Stilgart: R4: fix ton place

R4N4R4M4: J'avais que ça à faire Stilgart... :D

Traquila: tu peux /proc/cpuinfo

joelthelion: bonne idée, merci

R4N4R4M4: Pas de bol, j'ai trouvé le cas sur un bot non déterministe :(

R4N4R4M4: Je vais recréer les input à la mains si il faut

Stilgart: c'est le plus simple oui

Stilgart: tiens, siman va passer

BlaiseEbuth: R4 t'as le replay ?

Traquila: un cas tordu, le nombre d'item après un reapeat ?

R4N4R4M4: Tour 35 Blaise : https://www.codingame.com/replay/508359893

R4N4R4M4: CAST 89 2

BlaiseEbuth: Pas pour moi, mais si t'as le replay tu peux essayer le bouzin d'euler.

BlaiseEbuth: https://eulerschezahl.herokuapp.com/codingame/replays/reproduce/

R4N4R4M4: Waow c'est quoi ces outils de la mort :D

BlaiseEbuth: Ca te sort les inputs

Fangel: BigNozMG ben je fais un beamsearch en tour par tour. Pour chaque tour, je garde les x meilleurs noeuds. En cas d'égalité je coupe arbitrairement.

egaetan: R4N4R4M4 tu n'as pas la place

Zorg1: oui pareil

egaetan: 3 bleus 4 verts

Stilgart: c'est ce que dit le message d'erreur oui

egaetan: la 89 fait -2 verts + 3bleus + un orange

egaetan: en repeat x2 ça passe pas

BigNozMG: c'est fou, j'aurais jamais pensé que tu peux garder les chemins pertinents en faisant ça

Default avatar.png thelefant: Fangel entre 2 CAST par exemple sur quoi tu bases ton heuristic? le CAST qui te donne le plus d'ingrédients en sortie?

egaetan: Fangel propre, et ton eval est complexe

egaetan: ?

R4N4R4M4: Merci BlaiseEbuth ça a l'air cool

egaetan: BlaiseEbuth et apres tu lui proposes ton thème transparent ?

ThomasNicoullaud: défois ma boucle dur +60ms .. alors que je cut a 45

ThomasNicoullaud: ca vous le fait aussi ?

egaetan: non

Fangel: mais en fait ce qui compte, c'est de ne pas éliminer trop de noeuds, j'ai une largeur de 100-200. Après je vais taper à 20 de profondeur donc les détails de ressources à la fin je m'en fous, ce qui compte ce sont potions que je ramasse sur le chemin

Fangel: et mon eval c'est juste le score. C'est ce que j'ai trouvé de mieux pour l'instant mais je bosse dessus.

BlaiseEbuth: egaetan ça t'as tellement vexé que je dise que les thèmes clairs étaient moches ? :/

Palmipedus: nouveau push, 15/5 et les 5 defaites sont sur timeout du a GC, franchement c'est nul ce contest

egaetan: ça m'a assez décontenancé

Gronahak: @ThomasNicoullaudle garbage collector derrière peut être ?

Stilgart: ThomasNicoullaud: oui

Stilgart: rien à faire

R4N4R4M4: Ah j'ai trouvé mon bug, j'ai eu peur, c'est une nouvelle feature qui met le bazar

Stilgart: sans doute le serveur qui swap à mort

ThomasNicoullaud: c'est lié a quoi ?

ThomasNicoullaud: +15ms quand meme !

Stilgart: bah, j'ai eu la chance d'avoir un saut entre deux outputs successives

Stilgart: le seul "calcul" c'était tab[i]

Fangel: moi j'ai ça aussi ThomasNicoullaud, j'ai mis des cuts partout du coup, c'est môche. Sur cette compétition j'ai l'impression de payer du temps CPU à rien faire des fois...

Fangel: Le pire c'est que qaund je relance le match, tout va bien...

Palmipedus: j'ai mis un timer a 30ms et ca timeout encore parfois

Traquila: Je connais pas le Java, mais si vos variables restent toute accessibles durant la partie, je ne comprend pourquoi le GC intervient ?

Default avatar.png optplx: moi aussi j'ai eu ca

egaetan: la granularité de la clock peut aussi expliquer des pas de 10~15ms selon les clocks

BlaiseEbuth: egaetan, alors je te présente mes excuses, je passais juste parce que le lien avait été collé sur le chat, et j'ai transposé mon niveau de troll courrant. :sweat_smile: Mais il n'y avait aucune mauvaise intention.

ThomasNicoullaud: c'est quoi le meileur moyen de mesurer en C++ ?

Gonny: vaut mieux utiliser time.time ou time.clock en oython sur CG?

Gonny: python*

POLOB: si le GC se déclenche, c'est que vous créez trop d'objets...

BlaiseEbuth: ThomasNicoullaud mesurer la taille des carottes ou des navets ?

egaetan: BlaiseEbuth pas de soucis, à=ça m'apprendra et ça fait un sujet de troll maintenant

Traquila: 10-15ms c'est sous windows egaetan

R4N4R4M4: gettimeofday, ça marche en C++ ?

Gonny: CG est sous linux?

ThomasNicoullaud: le time BlaiseEbuth suis la conversation un peu :D

R4N4R4M4: en C c'est pratique

BlaiseEbuth: egaetan ++

Traquila: auto curTime = std::chrono::steady_clock::now();

Stilgart: R4: ça marche jamais

BlaiseEbuth: steady ? J'utilise high_resolution

Gonny: Traquila tu dis que CG est pas sous windows mais sous linux?

BlaiseEbuth: Encore heureux

Gonny: ok, va pour time.clock alors

Traquila: oui c'est du linux

Gonny: merci

BlaiseEbuth: steady clock ça fait un pléonasme...

Traquila: c'est monotonic c'est ce qu'il faut

Traquila: high resolution pointe sur steady je pense

R4N4R4M4: Mon code compile en C++ et il sort bien le gettimeofday comme il faut on dirait :D

Traquila: http://chat.codingame.com/pastebin/863cb494-bad8-435f-942e-acb21527eefe

Vry: Pour ne pas me faire avoir niveau timeout je contrôle dès que j'ai plus de 500 nodes nouveaux ...

Stilgart: je vérifie tous les 256 noeuds

egaetan: c & 255

Stilgart: j'ai mis 0xff :)

BlaiseEbuth: Traquila ça dépends de l'implem

Traquila: bonne idée un masque, le module est cher

egaetan: Traquilla c'est du bout de chandelle

egaetan: parce qu'on aime se la péter

Stilgart: non, moi je trouve ça plus clair que % en fait

egaetan: c'est pas utile quand on passe seulement 20k fois dans la boucle

Stilgart: tu passes que 20k fois ?

egaetan: 10x plus

Stilgart: **** 45056 / 84619 / 490938 nodes visited, up to depth 13

Stilgart: tiens, j'ai perdu en perf :(

Stilgart: après, peut-être que c'était un état plus compliqué

R4N4R4M4: J'ai ça : http://chat.codingame.com/pastebin/0a2428ea-dc3c-4c82-a699-d26ecdb16b06

Traquila: nn'utilise pas gettimeofday

Traquila: c'est pas monotonique

egaetan: mais c'est moche l'objectiveC

R4N4R4M4: C'est quoi monotonique ? Traquila

R4N4R4M4: Tu veux dire que quand je compile chez moi je dois changer le facteur de temps ? :D

Traquila: tu n'as pas clock_get_time ?

R4N4R4M4: je sais pas je vais regarder

R4N4R4M4: Ah ben c'est ça qui me manque du coup dans mes macros

Traquila: si c'est pas monotonic, tu peux être impacté par le ntp. Accéléré, rallenti voir même un saut en arriere

R4N4R4M4: parce que je dois toujours faire x1 ou x1000 en fonction de là ou je compile

R4N4R4M4: Ah ok

joelthelion: Traquila à l'échelle d'une partie, le ntp, on s'en fout un peu, non?

Traquila: si t'es accéléré c'est sur plusieurs heurs / jours

Traquila: En règle générale on utilise pas gettimeofday pour faire des mesures

joelthelion: tu veux dire que c'est réparti sur plusieurs heures?

Traquila: oui pour éviter si possible de faire un saut dans le temps

joelthelion: ok, merci, je ne savais pas

R4N4R4M4: Mince, je trouvais ça bien pratique, et j'avais essayé d'autres solutions moins faciles à utiliser

Traquila: Class std::chrono::steady_clock represents a monotonic clock. The time points of this clock cannot decrease as physical time moves forward and the time between ticks of this clock is constant. This clock is not related to wall clock time (for example, it can be time since last reboot), and is most suitable for measuring intervals.

R4N4R4M4: joelthelion à l'échelle d'une partie ça doit pas se voir, mais à l'échelle de tous les matches CG, tu risques de perdre des places au global :D

egaetan: il faut pas l'utiliser non plus traquila

egaetan: la mesure cg c'est du wall clock pas du cpu clock

R4N4R4M4: Il pourraient pas développer des fonctions qu'on peut utiliser ? :D

Traquila: en c l'quivalent:; clock_gettime(CLOCK_MONOTONIC, &start);

Arrcival: Autant poser la question ici, y'a t'il un moyen sur cette plateforme de stocker/mémoriser des informations d'un niveau a l'autre ?

egaetan: Arrcival non

Arrcival: Okay dommage aha, merci !

egaetan: question precise, reponse precise

Arrcival: ;)

egaetan: de rien

Vry: Moi j'utilise > car & il faut tomber pile poile dessus du coup (sauf à avoir placer le contrôle très bas) ça peut être testé peu souvent.

Magus: les règles "La partie s'arrête après 100 tours." Mon IA "J'ai exploré jusqu'à profondeur 224"

Magus: alors ... comment dire ...

Magus: argh j'ai trouvé mon bug

Magus: petite futée

POLOB: @magus : question : ton IA, tu l'as trainé chez toi avant de l'envoyer dans l'arene je suppose ?

Magus: bah j'ai juste brutaltester pour tester qu'elle est au moins meilleure que ma précédente IA

Magus: mais c'est tout

BlaiseEbuth: Il m'a fallut 2s avant de comprendre que tu parlais pas de maltraitance POLOB...

joelthelion: Magus tu as mis à jour brutal tester?

POLOB: ok, interressant. Bon, j'en suis pas là du tout :)

BlaiseEbuth: C'est ce qui arrive quand on francicise des termes anglais...

Magus: pourquoi mettre à jour brutaltester ?

Magus: il marche très bien

Magus: enfin c'est vrai que dans la roadmap j'ai mis "Conquer the world"

joelthelion: quelqu'un m'avait dit qu'il ne marchait plus avec la nouvelle version du framework

Magus: et que brutaltester est en retard sur ce sujet

POLOB: Punaise, je connaissais pas brutaltester

joelthelion: je n'aurais sans doute pas dû le croire :)

Magus: brutaltester fonctionne toujours, par contre la CommandLineInterface que je donne dans le tuto pour modifier le referee pour le faire fonctionner avec brutaltester n'est plus du tout d'actualité

POLOB: le prochain concours, je préparerai mon setup de test un peu plus tôt...

joelthelion: Magus il faut faire comment du coup?

pierre31: fangel

Magus: il faut faire comme c'est indiqué dans la doc de brutaltester, mais il faut modifier CommandLineInterface pour que ça compile

BlaiseEbuth: pierre31 : la barre de recherche c'est pas celle là

joelthelion: ok, il faudra que j'essaie, merci

pierre31: ahaha lol

pierre31: je regardais son score dans le leader board

BlaiseEbuth: T'inquiètes, t'es pas le premier... Je sais juste pas comment vous faites... :thinking:

pierre31: avec son beam search avec juste comme éval le score, ça m'a intrigué

Fangel: ouais désolé de te décevoir pierre31 mais je n'arrive plus à monter :)

BlaiseEbuth: Parles en à ton médecin

b0n5a1: y'a des pillules bleues pour ça

pierre31: ce n'est pas grave Fangel, ton rank est déjà super.

Vry: Vous avez déjà fait des triples cast ?

Fangel: mon code réussit mieux la nuit... Comme moi.

Default avatar.png JBM: tiens t'es passé Gold Vry gg

b0n5a1: Vry oui

Fangel: Vry, tu peux faire des pentacast aussi !

BlaiseEbuth: Les sorts y'en a bien 42 ? Et les 4 de bases sont inclus ?

Magus: non

Magus: (les 4 de bases sont pas inclus)

Magus: donc tu peux avoir 46 sorts si tu fais 42 fois LEARN

BlaiseEbuth: Ok. Merci ! C'pour fixer mon tableau.

Default avatar.png JBM: sans te rater pour learn les memes que l'adversaire

Simon21: bon ben j'ai passé toute ma journée sur mon bot, j'ai essayé pleins de choses mais je n'ai pas progressé d'un poil... impossible de me rapprocher de la ligue legende :-(

Vry: Merci JBM ... c'était hier soir pendant ta pause de 2h si je me souviens bien ... j'ai appliqué la méthode Bob !

Vry: Je viens de gagner 4% de nodes en plus ... :p

Magus: t'en fais 104 maintenant ?

b0n5a1: 2.000.000

Default avatar.png JBM: ça fait un moment que j'essaie d'appliquer la méthode Bob

Default avatar.png JBM: j'y arrive pas, mon code dérive en méthode pb4

Default avatar.png JBM: sauf que je suis pas pb4

Default avatar.png JBM: donc j'y arrive pas non plus

pb4: C'est quoi la méthode pb4 ?

b0n5a1: Vry juste plus de 60.000 de plus quoi ^^

pb4: Ca m'intéresse, peut être qu'elle marchera mieux que ma méthode actuelle :D

Stilgart: :D

Default avatar.png JBM: pour le moment, c'est la partie "eval de 5 pages" de la méthode pb4

Vry: Magus : j'arrive à toucher les 2 millions

pb4: haha

Zorg1: vry : j'ai déjà fait des triples cast mais c'est assez rare

Vry: Mais si j'ai le courage d'implémenter le learn ça va diminuer ...

Default avatar.png JBM: d'un autre côté, avec le peu de profondeur que j'ai, il faut bien que je distingue les nœuds astucieusement

pb4: Ah mais c'est pas la méthode pb4 d'être astucieux

Default avatar.png JBM: ouais je l'applique mal j'ai bien saisi

Magus: c'est perturbant l'avatar de reCurse

reCurse: ?

Magus: il devrait y avoir une règle qui interdit de changer son avatar aussi subitement quand on a gardé le même pendant longtemps

Magus: ça perturbe les autres après, je le reconnais plus

Default avatar.png JBM: comment on change d'avatar pas subitement?

Magus: aucune idée

reCurse: Transition bilinéaire?

Stilgart: gg siman

smeagol: Salut

egaetan: transition d'avatar je kiffe

smeagol: Salut gaetan

smeagol: cmment vas tu ?

VincentBab: pfiou c'est long un run la :/

Magus: tiens, un submit en légende ça commence pas avec 10 matchs comme dans les autres leagues ? :o

R4N4R4M4: T'es passé Magus ?

Magus: ouai, quelqu'un m'a poussé

R4N4R4M4: Ah oui GG

Magus: enfin je serais passé pendant la nuit sinon je pense

R4N4R4M4: C'est clair

Magus: ah ouai la lenteur des submits, rofl

Stilgart: ça commence comment du coup ?

Magus: bah par 3 matchs

Magus: au lieu de 10

Magus: mais 3 matchs contre les derniers de légende visiblement

Stilgart: ok

egaetan: non j'ai eu du gros dans les 3 premiers matchs aussi

egaetan: assez random

Default avatar.png JBM: le souci avec les submits qui rament

Default avatar.png JBM: c'est qu'on a la fausse illusion d'etre trop bon quand un streak de victoires dure longtemps

Fangel: c'est surtout que t'attends une éternité avant de savoir si tes changements sont bons

egaetan: t'es trop bon JBM

Default avatar.png JBM: mais j'aime pas le montrer

Default avatar.png JBM: j'ai vraiment du mal à le montrer cette semaine

egaetan: va streamer

Zorg1: JBM a une crise de modestie ?

Default avatar.png JBM: c'est mon bot

egaetan: il est naze ton BOT, c'est JBM la légende !

Zorg1: wep fait nous un stream avec un bot en CG-Lambda !!

Zorg1: ou CGUnlmabda plutôt

Magus: bordel intellij ...

Magus: quand t'as l'habitude de vscode

Magus: ça pique les gros IDE

egaetan: les enfant dorment tu peux meme dire qqs insanités sur certains langages ou ide ou theme darks

Magus: "nom nom nom nom ta RAM"

Default avatar.png JBM: c'est quand meme pas le mal dans le genre "je veux pas gagner", non? https://www.codingame.com/share-replay/508437415

Zorg1: egaetan : c'et quoi le pb avec les dark themes ? ^^

egaetan: vscode c'est l'ide ecrit en JS, non ?

Default avatar.png JBM: lol

Zorg1: oui c'est en JS

egaetan: Zorg1 j'ai eu des reflexions deplaisantes sur mon CG en theme blanc et mon eclipse lors de mon stream

Zorg1: ah ok encore un coup de Blaise ^^

Stilgart: yep, un sale coup de Blaise

Stilgart: et devant témoins en plus

POLOB: je comprends pas mon bot

POLOB: il learn des sorts

Zorg1: tkt t'es pas le seul

POLOB: et il les utilisent pas après

Stilgart: c'est plutôt pas mal jusque là

Stilgart: ha, ça ça peut arriver

egaetan: bravo POLOB c'est mieux que 50% des IA du contests

Stilgart: si tu as besoin de tier0, learn parfois ça aide

Zorg1: ou t'en débarasser aussi

egaetan: POLOB comment tu choisis si tu dois utiliser un sort ?

Stilgart: aussi, mais ça j'ai pas encore en ide

POLOB: bin, en fait, je sais pas trop

POLOB: j'evalue sur quelques niveaux entre les learns et les casts

POLOB: et je regarde quel state est le plus proche d'une potion

POLOB: c'est là qu'est le drame évidement

egaetan: POLOB c'est normal ! c'est ton chien qui code à ta place !

POLOB: la fameuse "fonction d'eval"

POLOB: c'est le chien de "I don't know what I'm doing"

egaetan: la distance inventaire / potion est difficile

egaetan: :)

POLOB: oui, c'est bien ça le pb

Stilgart: tu as un majorant facile :)

POLOB: +le devay

BlaiseEbuth: (inv.x-pot.x)²+(inv.y-pot.y)²

Stilgart: non, l'achat bourrin avec les casrs de base

Stilgart: casts*

POLOB: oui, c'est plus ou moins ce que je mets

Magus: quand tu regardes un vieux code d'un outil que t'as pas utilisé depuis longtemps et que tu vois des trucs ...

Magus: engine.threads=20

Magus: bah ouai genre j'ai 20 coeurs

egaetan: tu avais une belle machine à l'epoque

egaetan: ou beaucoup d'I/O

egaetan: ou tu refaisais un serveur web ?

Magus: nan c'est un truc pour codingame que j'ai pas ressorti depuis 1 an minimum

Magus: qui répond au doux nom d'Abathur

Magus: mais je vois pas comment j'ai pu le faire tourner avec 20 threads

Magus: ou alors je me suis amusé avec un serveur au boulot peut être

Magus: ah par contre si j'arrive à être top 20 c'est cool ça

egaetan: on est 297 à se dire ça en ce moment Magus

Zorg1: bon va falloir qu'ils développent une fonction pour t'envoyer un SMS quand ton push est fini ^^

Magus: 297 ?

egaetan: score computing

Magus: ah

Gh0stm4chine: relou le boss gold qui utilise du random pour débug :(

BlaiseEbuth: Ouai mais fallait le passer avant minuit aussi...

BlaiseEbuth: Après faut pas s'plaindre

BlaiseEbuth: Pis rien t'obblige à l'utiliser pour debug non plus

Gh0stm4chine: c'est pas faux :D

Gh0stm4chine: après d'un autre côté il permet de tester tous les cas :)

BlaiseEbuth: (╯°□°)╯︵ 000ᄅuoʇɐɯoʇn∀

BlaiseEbuth: Automaton2000ノ( º _ ºノ)

Automaton2000: pas parce que tu veux

tekki: Automaton2000 j'ai perdu 200 places! explique moi ça

Automaton2000: je sais pas si c'est bien la peine de se faire chier

BlaiseEbuth: :D

tekki: oh slaud

tekki: salaud

tekki: Automaton2000 t'es trop con

Automaton2000: il faut voir le code des autres

VincentBab: La vérité sort toujours de la bouche de Automaton2000

Automaton2000: bon, je tente un truc

VincentBab: vasy Automaton2000

Automaton2000: c'est parce qu'il y a aussi le fait qu'il y ait un peu de tout et n'importe quoi

yamo: j'ai perdu 80 places en gold ajd. le niveau est monté ou j'ai fait de la merde ? (c'est pas exclusif)

SeebOmega: yamo le niveau est monte

Kirbiby: egaetan t'es là ?

egaetan: oui Kirbiby

Kirbiby: pourquoi dans le chat d'à côté t'as réagi quand le gars a montré 2926546 je sais pas quoi

Kirbiby: et tu as dit tutu il te manque 4

egaetan: parcequ'il avaitoublié les 4 sorts de base

Kirbiby: c'est quoi ces magic numbre

egaetan: 64*42*1001

Kirbiby: et c'est utilisé pour quoi ?

Default avatar.png Anonono: c est quoi qu il faut faire pour passer en or

plieuse: Coucou

BlaiseEbuth: gagner plus

Zorg1: pour gagner plus

Default avatar.png Anonono: :|

egaetan: ça ressemble à une table de transposition entre l'inventaire et les sorts

plieuse: je peux me joindre à vous ? J’arrive pas à dormir

Zorg1: oui on parle du contest actuellement

plieuse: J’avais deviné :)))

Zorg1: mais on est prêt à partir en live sur n'importe quel sujet ^^

Kirbiby: okay, merci

Default avatar.png Anonono: merci gaetan

Default avatar.png JBM: t1 mais j'ai un match sur 3 qui timeoute

plieuse: Il y a combien de participants au contest

plieuse: ,

plieuse: ?

Kirbiby: 6000+ par là

plieuse: Woah

BlaiseEbuth: C'koi 64 ?

plieuse: Et c’est quoi le langage le plus utilisé chez les 100 premiers ?

BlaiseEbuth: Le Japonais

BlaiseEbuth: il semblerait

plieuse: Le japonais

plieuse: hmm

Karang: va falloir s'y mettre alors

Default avatar.png Anonono: le problème c est que la table de transposition n est pas suffisante

plieuse: Super je pourrai participer dans cinq ans

plieuse: Je vois beaucoup de c++ dans la pile des 100 premiers...

plieuse: C’est japonais le c++ ?

BlaiseEbuth: ^^

Gh0stm4chine: bonne nuit tlm :)

BlaiseEbuth: 'nuit

plieuse: Le chat de sos amitié ne répond pas c’est nul

plieuse: Bon il répond mais le mec est con comme ses pieds et ne comprend rien

plieuse: misere

Zorg1: bah ici on est un peu monomaniaque ces derniers temps ^^

plieuse: Sans blague

plieuse: ca ne se voit pas du tout

Zorg1: :D

plieuse: cest jusqu’à quand ?

Zorg1: Lundi 10h je crois

Zorg1: et ça va redevenir le désert

plieuse: Ah c’est la dernière ligne droite

plieuse: cafe et nuits blanches pour être bien classe

plieuse: je vois

Vry: Bon mon BFS learn ... mais san la fameuse "éval." c'est pas top

plieuse: voud le marquez sur votre cv après ?

Zorg1: on évité ^^

Vry: bn les gens

Zorg1: bn vry

Razielwar: bn vry

BlaiseEbuth: Vry good night

Razielwar: bon j'y go aussi, je sens que passer légende ça va etre compliqué cette fois ci...

VincentBab: ma gestion de l'adversaire ne marche pas du tout :( Je vais rester dans le fond de la ligue légende je pense :(

Razielwar: déjà t'es passé c bien

Razielwar: moi non plus la gestion de l'adversaire fait nimp

Karang: comment on fait un bot qui bat a la fois le bas et le haut de la ligue ? quand j'optimise pour l'un je me fait battre par l'autre :(

BlaiseEbuth: Fait un bot qui bat le milieu de ligue

Karang: je sais pas si c'est suffisant ^^

VincentBab: tu as des idées a implementer egaetan ou tu en es réduit a bidouiller des coef comme moi ? xD

egaetan: j'ai pleins d'idées VincentBab

VincentBab: des idées qui marche je veux dire :D

egaetan: bien sûr

VincentBab: la chance

Zorg1: mais c'est plus cher

egaetan: j'ai une nouvellle eval qui cartonne

egaetan: les bonus presque corrigés

egaetan: x1 en perf

egaetan: (bon j'espere mieux)

BlaiseEbuth: Et un nouveau thème

egaetan: changer l'algo de recherche

VincentBab: lool

egaetan: et toi VincentBab ?

VincentBab: bah je perd un peu la motiv la :/

VincentBab: j'ai essayé d'implementé une gestion de l'adversaire mais ca marche pas du tout ^^

plieuse: Ce connard de sos amitié ma souhaite bonne nuit et à mis fin à la conversation... je crois qu’il n’a pas compris le rôle d’écoutant

plieuse: Ils se refilent les solutions les japonais ? Parce que la Tokyo school og agriculture est drôlement bien placée

plieuse: Bon je vais réessayer de dormir, pour la quatrième fois ce soir... pourvu que ça marche

plieuse: @+

VincentBab: bonne nuit

Vry: Depuis que mon bot learn ... LEARN 10 LEARN 22 LEARN 25 LEARN 24 LEARN 16 LEARN 9 REST

Vry: Il va pas aller loin ...

Zorg1: tiens t'es toujours debout toi ?

Vry: Ben ouais ...

Vry: ... mais faut que je me couche les gamins seront levés avant 7h ... :sleeping:

leojean890: bah moi je suis encore silver donc c'est pas mieux hehe

leojean890: record du jour 150 silver ça suffit pas quoi;)

leojean890: c'te marécage de 18XX bots

leojean890: 1854

VincentBab: xD

VincentBab: au mois tu roule sur 1700 gars :P

leojean890: faible conso hehe^^

leojean890: bah après ça dépend de mes submits et de mes versions du coup^^

leojean890: 334 à 53% là :s

leojean890: je lutte dans certaines zones marécageuses

VincentBab: tu as toujours un bfs pour evalué la meilleur potion a faire ?

leojean890: 281 60%

leojean890: un bfs général

VincentBab: mais tu t'arrete quand tu trouve une potion ?

leojean890: j'ajoute scorePotion*0.9^depth

leojean890: dès que j'en trouve une

Razielwar: j'ai pareil et je suis or leojean

leojean890: et à la fin j'ajoute ingredients[1]+ingredients[2]+ingredients[3]

egaetan: leojean890 il a des bugs en plus :D

Razielwar: :p

leojean890: 257 64%..

leojean890: #237

VincentBab: oué faut fixe les bugs c'est le plus important ^^

leojean890: ouais j'ai ptet encore des bugs

leojean890: j'en ai fix pett à petit

Zorg1: "ptet"

leojean890: faut que je teste + unitairement :s

leojean890: hop ça redescend #254

BigUP: leojean890, essaye un truc du genre i0*1+i1*3+i2*7+i3*15

egaetan: i3 = 1 * i0 ?

Razielwar: c quoi cette formule bigup! :)

leojean890: ton eval bigup ?

leojean890: en fait j'ajoute des bonus ingrédients à la fin quand je score les states et je les compare

egaetan: BigUP tu esperais qu'on te la corrige ? :p

leojean890: j'ai pas de beam search

BigUP: j'essaye de favoriser les elements plus difficiles

BigUP: à avoir

Zangdar1111: Hello ! ça vous semble normal que mon script timeout parfois en rejouant les meme conditions ? sachant que j'ai pas de random

BigUP: c'est un bout de mon eval...

VincentBab: j'ai un truc un peu comme ca aussi ^^

leojean890: en fait je devrais changer ce scoring en fonction du turn

BigUP: apes, on ne peut pas dire qu'elle marche tres bien ;) moi je coince autour de 600/700 en silver

leojean890: genre late game on veut independemment des 1,2,3

Razielwar: moi j'ai rien sur les ingrédients ^^

egaetan: VincentBab moi je n'ai pas

leojean890: early/mid game plus de 3 que 2 que 1

VincentBab: mais tu dois avoir d'autre chose que j'ai pas ;)

leojean890: BigUP bah moi variable entre 150 et 400

egaetan: VincentBab oui 0.5 point d'elo

VincentBab: mdr ^^

leojean890: je devrais tenter de faire varier ce scoring en fonction de l'évol de la partie aalors

leojean890: avant j'avais un beam search avec des distances ingredients potion mais c'était nul (ml fait!)

leojean890: mal*

egaetan: VincentBab en fait c'est dans une de mes todos de rajouter un scoring des ingredients restants

egaetan: c'etait quoi ta distance ?

VincentBab: ma distance ?

egaetan: leojean890 c'etait quoi ta distance ?

VincentBab: ah pardon ^^

egaetan: j'aurais pas osé te demander en public VincentBab

egaetan: pas avec mes 0.2 point d'elo d'avance

VincentBab: xD

VincentBab: attend mon prochain submit tu va voir :P

leojean890: egaetan c'était un truc nul de sum(potion[i]-ingredients[i])

VincentBab: ... tu sera a 0.5 xD

egaetan: haha

leojean890: et j'hésitais quand j'avais plus d'ingré que nécessaire comment le compter

leojean890: sinon fairfe un mini bruteforce avec les sorts de base..

leojean890: faire*

egaetan: compliqué leojean890

egaetan: bn

leojean890: Razielwar t'as pareil ok mais en mieux optimisé je parie ;)

VincentBab: oui, faut pas chercher des truc compliqué ^^

leojean890: egaetan ouais j'ai pas trouvé mieux :) sauf sum des ingrédients sans faire de distance ..

VincentBab: enfin sauf en legende peut être ^^

leojean890: 31 min le submit ;o

Razielwar: leojean890 sais pas, j'ai un bfs et une eval plutot simple

VincentBab: si tu corrige tous les bug, que tu as le learn dans ton bfs au moins sur le 1er tour, avec l'eval de 0.9^depth ca passe gold

VincentBab: et un minimum de perf pour voir plus loin que depth 3 aussi peut être ^^

leojean890: Razielwar j'ai à peine 7k states par tour ;)

BigUP: tin, c'est vrai que ca à l'air de passer gold ! ;) je viens de battre le Boss dans l'IDe ;)

leojean890: d'où le "non-optimisé"

Razielwar: leojean890 ah oui :( je suis à 130k

leojean890: VincentBab je learn 2 tours dans le bfs et 10 tours obligé learn 0

Razielwar: tiens j'ai jamais été aussi haut en or

VincentBab: essaye learn sur le 1er tour et pas de learn forcé ^^

BigUP: Razielwar, a peu pres comme moi 20*5*5 :)

VincentBab: si tu as pas beaucoup de perf tu te tire une balle avec 10learn je pense

leojean890: je pourrais tenter comme BigUP en early et mid game de favoriser les 3 aux 2 et 1

Karang: et c'est quoi comme eval pour passer en légende ? :D

Lionel: Hello!!

leojean890: VincentBab tu ferais donc le learn dans le bfs mais pas forcé ?

leojean890: je vais tenter de le retirer en forcé

VincentBab: tente le learn uniquement a depth=1 et pas de bfs forcé ^^

Razielwar: moi le learn j'ai pas réussi, il est dans mon bfs mais au début je force

VincentBab: et pas de learn forcé pardon

leojean890: VincentBab depth == 0 et 1 mais je lui laisse le choix de faie autre chose quoi ? quel que soit le tour ?

VincentBab: oui

leojean890: ok vas je change ça et je teste :)

leojean890: vas y*;)

BigUP: le learn, je l egère comme un cast (sauf que je ne retire pas le delta) et je retire la taxe

VincentBab: tu arrive a trouver des path vers toute les potions leojean ?

Zorg1: allez essayons de rajouter une formule à la BigUp pour le fun

VincentBab: en 50ms ?

VincentBab: Je sombre petit a petit dans le bas fond de la lagende :(

Zangdar1111: perso oui (la pluspart du temps)

BigUP: bon forcément dans certains cas extremes, mon eval me met dans des situations pourries --> https://www.codingame.com/share-replay/508551257

leojean890: VincentBab faut que je vérifie, je score juste mon état

leojean890: fond de la légende c bien quand même xD

leojean890: par contre mon IA se fait exploser en enlevant le learn forcé ;o

leojean890: par ma version arêne qui est 292 silver / 1851 :P

Zorg1: BigUp : ça m'arrive c'est quand je tente une potion mais que je me la fais piquet et que j'ai un paquet d'ingrédient dont je ne peux me débarasser facilement

BigUP: tiens, c'est bizarre, on dirait que mon IA n'a rien Learn

VincentBab: c'est peut être que ton ia vois pas assez loin leojean :/

leojean890: VincenBab je pense ouais :s

leojean890: nb states entre 5k et 8k par tour :s

BigUP: arf ! :) elle passe son temps à faire du triangle !;)

leojean890: 10k parfois tiens

leojean890: je vais essayer les pondérations de types d'ingré en early

VincentBab: avec tier3=15*tier0 c'est normal BigUP xD

leojean890: et garder pondérations équiv en late

BigUP: C'est le Cast 86 qui pourri mon IA ;)

OldDadou: Moi c'est la profondeur d'exploration qui me pause souci

BigUP: le truc fait directement 1 triangle gratuit, donc il cast 86 et rest :)

Zorg1: bon c'est pas extraordinaire cette affaire

BigUP: si je change les poids effectivement, ca se passe mieux

VincentBab: tout est une histoire de poids dans l'eval ^^

Zorg1: c'est quoi ces conneries ? je rajoute une éval délirante à la BigUp et mon bot est dans le top 30 ???

VincentBab: xD

BigUP: Zorg1, ha tu vois ! ;)

Zorg1: ouais ...

BigUP: Zorg1, le jour ou mon IA fait 130k vous etes tous mort ! :)

Zorg1: :fearful:

Zorg1: bah Python c'est très bien finalement :smirk:

BigUP: Zorg1, apres faut voir si t'es toujours top 30 apres resubmit, j'ai remarqué que des fois en changeant un peu son algo, on fait une percée, mais apres 1 ou 2 resubmit c arevient au point d'avant

Zorg1: oui c'était une percée sans doute, mais c'est la première fois que je passe le top 100 aussi rapidement

Zorg1: c'est étrange

Zorg1: ah il retombe :-

Zorg1: :(

Zorg1: au moins c'était marrant

BigUP: Zorg1, si tu submit beaucoup, ton IA va créer un bouchon qui va lui résister. En gros tu fais monter toutes les IA qui sont problématique pour la tienne

Zorg1: sur les grosses ligues à 400 je ne sais pas si c'est problématique que ça

leojean890: python t'es obligé d'avoir de bonnes heuristiques :P

leojean890: sinon c mort^^

Zorg1: bon va falloir un peu musclé ton go leojean890

Zorg1: kestufou encore en silver ?

Zorg1: on va faire un graphique par langage et les stats du go vont être toute moisie :(

leojean890: Zorg1 hehe ouais j'ai pas encore utilisé l'intégralité de tes conseils juste une partie mais j'ai noté ce qui manque :)

leojean890: entre 7 et 10k states par tour;)

leojean890: et mes submits finissent entre 150 et 400 silver là..

leojean890: quelques win contre le boss parfois dans l'ide

leojean890: purée ces timeouts, relou

Zorg1: j'en ai 10 fois plus mais j'ai pas l'impression que je les utilise mieux

leojean890: ça saoule, 2 timeouts en15matchs ;)

leojean890: nouveau submit.. 11 victoires d'affilée!!

leojean890: (en changeant des params de time)

leojean890: 12eme match lost

leojean890: dommage !

leojean890: ah je le bats quand même régulièrement ce Bossdorf

leojean890: dmg que ce soit pas tlt et que ça monte pas aussi haut durant le sub;)

leojean890: c'est le pbm de ces ligues marécageuses avec 1860 personnes, il faut un prgrm sans failles pour autant monter en seulement 90 matches;)

BigUP: leojean890, oui c'est beaucoup plus difficile lorsqu'on veut passer le boss apres l'ouverture de la ligue. généralement j'y arrive lorsque mon bot est à 50/50 contre le boss, si c'est au dessus, mon IA est trop spécialisée et à du mal a passer la masse

leojean890: moi elle passe tranquille jusqu'à un stade et après elle prend cher

Zorg1: ok gold 25 bah merci BigUp

**Zorg1 ne comprend rien à ce contest

leojean890: xD gg ;)

BigUP: Zorg1, pas de quoi, si vous voulez d'autre evals, j'en ai plein ! ;)

leojean890: l'éval doit dépendre du stade de la partie !

Zorg1: enfin j'ai un peu bricolé les coeffs

leojean890: #238 silver allez monte monte.....:(

leojean890: à 35%....

leojean890: 206...

leojean890: snif ça baisse;)

leojean890: oh non un timeout :(

VincentBab: vous selectionné bien un node seulement quand vous avez fini une depth ? ^^

leojean890: pareil j'ai fait des coeffs 1 2 3 4

leojean890: sauf late game

leojean890: où je value autant chacun

Zorg1: en fait je sélectionne aux potions

Zorg1: c'est mon point de décision

Stilgart: VincentBab: encore une fois, cette règle ne fait pas de sens ici

leojean890: #196 allez allez

VincentBab: bah ca depend comment tu gere ton BFS

leojean890: VincentBab j'utilise un timer

leojean890: #178 allez !!

Stilgart: VincentBab: non

Stilgart: genre tu trouves un path qui te fait win la game à depth 2... tu vas le jeter parce que tu n'as pas fini depth 2 ?

Zorg1: bon ça m'a rajouté des magics number à tuner cette histoire ...

Stilgart: Zorg1: je te souhaite un meilleur tuning que moi

leojean890: bon mon IA arrive tjr pas à dépsser les 150 :s

Zorg1: Stilgart : je me demande toujours ce qui c'est passé

leojean890: ça risque de rester silver tout ça

Stilgart: Zorg1: pour moi ?

Stilgart: j'ai changé un magic number d'un pouilleme

Stilgart: et le low gold m'a broyé en first 10

Zorg1: non pour mon bot qui a fait un saut dans le top 30

Stilgart: ha...

VincentBab: si tu as trouver que a depth=8 le meilleur coup (a depth=1) c'etait CAST 1, tu commence a evaluer depth=9, et la tu trouve un meilleur coup (CAST 2), mais si tu avais eu le temps de continuer la depth=9 tu aurai bien retrouvé ton chemin de la depth=8 qui te dit que le meilleur coup c'est CAST 1

Stilgart: bah, l'inverse de moi :D

VincentBab: jsais pas si c'est très claire... compliqué a expliqué...

Zorg1: bon on verra ce qui se passe demain

Zorg1: bonne nuit tout le monde !

Stilgart: VincentBab: je vois ce que tu veux dire

Stilgart: et ça ne fait aucun sens dans mon code

leojean890: à peaufiner selon l'algo

Stilgart: le chemin a depth 8 est comparable avec celui de depth 9

Stilgart: donc soit celui à depth 9 est vraiment meilleur, soit je garde celui à depth 8

VincentBab: pourquoi le chemin serai toujours comparable ?

Stilgart: parce qu'avec mon eval ils le sont

VincentBab: maid dans ce cas ton bot va toujours préféré faire une potion a depth=3 que deux potion a depth=4 et depth=5 par exemple

Stilgart: non

Stilgart: pourquoi il ferait ça ?

Stilgart: de fait, il faut trop l'inverse le mien

Stilgart: (mais ça, c'est ce que j'essaie de tuner)

VincentBab: hum ok..

Stilgart: si tu regardes que le score par exemple

Stilgart: tu vas quasi toujours préférer deux potions plutôt qu'une seule

ThomasNicoullaud: mais allez vous coucher les gens et laissez un peu de CPU

VincentBab: ca bosse ThomasNicoullaud ? ^^

VincentBab: je suis passé devant dbdr :O