Chat:Fr/2020-11-21
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à...
Yousersif: Hello j'ai besoin d'un conseil
mrBen: o/
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
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: ^^
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
Lx4: bah là je regardais MIPS car apparement c'est une bonne intro
Lx4: jeu d'instruction pas trop complexe, pour commencer c'est pas mal on dirait
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
Bichmoute: Vous explorez en largeur ou en profondeur votre arbre d'actions ?
Bichmoute: je me suis lancé dans un BFS mais jsuis en plaine remise en question
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
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
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
JBM: ouais, ajouter le decay, c'est pas du tout le slamdunk qu'on m'avait fait miroiter
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 :)
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
Stilgart: learn du 1er spell
Stilgart: tomeIndex=0
JBM: ouais je pourrais m'en caser quelques uns
CopperFr: ah oui pour python
CopperFr: ceci dit l'approche NN m'aurait intéressé
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
JBM: 1 timeout sur 50 battles, c'est moins que d'habitude
JBM: bon ok, git stash et je learn 6 spells
CopperFr: Send Me A Fangel comme chantait Scorpions :D
JBM: ah merde, j'ai pas commit entre mon decay qui march pas et ma modif d'état
Zorg1: l'erreur bête
JBM: et plus le submit vient de passer la barre du top 100 à 59
JBM: on va lui laisser sa chance
CopperFr: ah tu va retomber en bronze
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
egaetan: merci Domak Zorg1 WhatTrickeryIsThis Neumann
Stilgart: dbdr a dit qu'il avait une faiblesse, ça doit etre ça :)
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)
MehdiNECIB: Quelqu'un peut m'aider pour cet exo svp ? je bloque dessus
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 ?
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
- 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
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
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)
JBM: j'irai pas vérifier pendant le contest
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:
MehdiNECIB: Quelqu'un peut m'aider svp ?
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
MehdiNECIB: Ca c'est l'input "3 5 8 9"
panoramix: Mehdi personne va faire le boulot à ta place
MehdiNECIB: Dutout, j'ai juste besoin d'un peu d'aide
panoramix: commence pas calculer les différences entre chhaque inout
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...
MehdiNECIB: Oui mais pour cela, il faut que j'arrive déjà a les recuperer
MehdiNECIB: La je récupere que le 3
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 ?
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
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
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 ?)
MehdiNECIB: Sortie standard : [5, 8, 9]
MehdiNECIB: http://chat.codingame.com/pastebin/dd209497-94e9-4932-8b58-8523c7c4e05a
CopperFr: fait du pascal pour être premier
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 :)
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
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 ...
ThomasNicoullaud: bool[5] = { false };
ThomasNicoullaud: ?
reCurse: Oui
JBM: rappelle-toi les valeurs fondamentales du C++
BlaiseEbuth: oui
ThomasNicoullaud: ty
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
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...
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
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
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
BlaiseEbuth: stoi l'polynome
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
Mazelcop: prems !
**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
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
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
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é
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à
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
Simon21: ça arrive aussi qu'il timeout comme ça en plein milieu du jeu (link404 je parle)
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
BlaiseEbuth: pou
dwarfie: caillou (avec l'accent de cabrel)
dbdr: 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
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
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
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
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
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...
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
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é
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 ?
egaetan: tu les mets à la poubelle ?
Magus: trouver une potion c'est déjà une eval
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 ?
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
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 ?
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.
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.
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
JBM: ça fait un moment que j'essaie d'appliquer la méthode Bob
JBM: j'y arrive pas, mon code dérive en méthode pb4
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
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 ...
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
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
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
JBM: le souci avec les submits qui rament
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
JBM: mais j'aime pas le montrer
JBM: j'ai vraiment du mal à le montrer cette semaine
egaetan: va streamer
Zorg1: JBM a une crise de modestie ?
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"
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 ?
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 ?
Anonono: c est quoi qu il faut faire pour passer en or
plieuse: Coucou
BlaiseEbuth: gagner plus
Zorg1: pour gagner plus
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
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
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