Chat:Fr/2020-11-23

From CG community
Jump to navigation Jump to search

smeagol: on a cet avantage

Pink: je pense pas faire gold de toute facon

smeagol: tu joue ?

Pink: oui je suis 627 silver

smeagol: perso je ne joue pas

Pink: pourquoi?

smeagol: ca m a pas intérissé ce chalenge

smeagol: de charlatane

Pink: j'avoue que je suis rentrer dedans hier soir seulement, j'ai presque rien fait de la semaine

smeagol: il y a Russian AI Cup

smeagol: on peut coder un algo de simulation: AG , MC ...

BlitzProg: Mon objectif a toujours été de rester au moins gold sur tous les challenges que Codingame propose

smeagol: presque tous le top 100 utilise ces algos

Pink: vos terminologie, j'y comprend rien... surtout le bsf dont tout le monde parle

Pink: j'ai 0 simulation

smeagol: AG: algorithme génétique

BlitzProg: bfs = breadth first search

smeagol: MC : monte carlo

smeagol: Pink : donc t'utilise une heuristique

smeagol: Blitz: t'utilise un algo de simulation ?

BlitzProg: beam search

BlitzProg: bfs plutôt, mais je tente de migrer vers beam search

BlitzProg: et si t'as une solution pour me mettre top 100 avec je suis preneur

smeagol: ah c'est algo de recharche de type glouton

smeagol: je ne joue pas au challenge

smeagol: bientot Russian AI cup

smeagol: Blitz: t'a commencé a codé pas lontemps

smeagol: dans ce challenge ?

BlitzProg: depuis ce week end on va dire

BlitzProg: mais je suis pas très entrainé pour les algo lourds, du coup mon expérience me joue systématiquement de sale tours

Pink: orienté object en vb.net

smeagol: Sur ça les amis je vous laisse A bientôt

Pink: @+

BlitzProg: Allez, cette fois, c'est la bonne

BlitzProg: Si avec ça je passe pas gold je vais être bien déçu

BlitzProg: On dirait bien que ça va passer.

Pink, jte souhaite bonne chance

Pink: merci, je te souaite de passer

Pink: mais pourquoi bonne chance?

BlitzProg: bah pour la fin du contest! :D des fois que tu aies une dernière upgrade à trouver!

Pink: je vous vois discuter des bsf et je sais pas trop comment et ou mettre ca

Pink: je suis en recherche

Pink: mais qui sais, j'ai implanter les tax voula 2h environ... Reste a voir ce que je gere pas je pense

BlitzProg: Et bien... le principe d'une simulation c'est de tester en avance comment ta partie va se passer

BlitzProg: et tester des combinaisons sur ce que tu essayes ensuite... bref, prévoir de gros coups

Pink: j'ai une formation bizare... je savais faire des singleton par exemple, mais galere au bublesort...lolll

BlitzProg: promu gold

BlitzProg: pfouuuu

Mazelcop: gg

BlitzProg: Depuis le système de ligue ya quelques années, j'ai toujours fini gold+

Mais aujourd'hui j'ai bien cru que ça m'échapperai

Pink: houhou!!!!! nice game!!!!

Mazelcop: go legend, t'as encore quelques heures :)

BlitzProg: En vrai je suis plutot bien classé

BlitzProg: ~150ème / 450

BlitzProg: pas mal pour une entrée en gold, je pensais que je me ferais bien tabasser

Mazelcop: nice

Default avatar.png CrazyHidenTalan: Dites, comment on peut s'améliorer?

Default avatar.png CrazyHidenTalan: En effet j'ai fait mon challenge mais quelqu'un fait un une review pour donner des conseils ou que sais-je?

Mazelcop: un peu tout le monde va rédiger des post-mortems sur le forum à la fin du challenge

Mazelcop: regarder les post-mortems des challenges passés est pas mal aussi

Default avatar.png CrazyHidenTalan: ok

R4N4R4M4: Salut tout le monde

Mazelcop: o/

Default avatar.png CrazyHidenTalan: Parce qu'en mettant en place le learn j'ai perdu 300 places haha :(

R4N4R4M4: Si t'as le courage CrazyHidenTalan, tu pourras voir tous mes lives ici : https://youtu.be/ncEtXoFcGK0 J'ai pas encore posté les derniers jours, mais y aura les 11 jours :D

[CG]SaiksyApo: QUOI !

[CG]SaiksyApo: J'ai spam les lives toute la semaine et j'ai rien vu

R4N4R4M4: J'ai fait mes lives en privé sur FB

[CG]SaiksyApo: Ah ok

R4N4R4M4: Tu pouvais pas les voir

R4N4R4M4: Mais je compile jour par jour. De toute façon, mon challenge est pourri, donc ça aidera que les débutants :D

R4N4R4M4: GG pour ton score [CG]SaiksyApo

[CG]SaiksyApo: Je ne l'explique pas, je gere meme pas l'opposant :(

Kirbiby: y'a pas d'opposition en Legend c'est pour ça

R4N4R4M4: Pas comme en Gold :D

R4N4R4M4: Décoller du fond de Gold, c'est pire que le passage d'un Boss :D

R4N4R4M4: Hein Kirbiby ? :D

Kirbiby: j'ai corrigé un bug que j'avais depuis 3 jours

Kirbiby: puis j'ai introduit de nouveaux

Kirbiby: ça me gave

R4N4R4M4: J'ai refranchi la barre des #400 donc je touche plus, c'est trop galère à remonter

R4N4R4M4: Mince y en a déjà qui me fond redescendre :(

dbdr: tiens, JBM t'as une version C qui tourne, gg!

dbdr: objectif tshirt [CG]SaiksyApo? ;)

[CG]SaiksyApo: Non :(

dbdr: bah, tu peux toujours en subtiliser un je pense :D

dbdr: gg en tout cas

dbdr: belle montée tardive

R4N4R4M4: Et mon code qui se laisse pousser tout doucement :D

Pink: premier win sur un seed null vs boss

Pink: on continu...

NicolasH_42: GOLD enfin

domak: gg

Mazelcop: gg

sanpas83: gg

Pink: félicitation !!!

NicolasH_42: thx !! Premier challenge et c'était mon objectif !!

sanpas83: oo top 20 argent pas 1 match contre le boss :(

sanpas83: 39.36 la il est monté trop haut 41.21 :(

Zakaoai: 25 argent

Zakaoai: ça me suffit pas

sanpas83: 4eme argent et toujours pas de partie contre le boss dur

Zakaoai: ah tu va y arriver

Zakaoai: rah j'ai perdu contre toi

sanpas83: c'est chaud devant 2 bot avant le boss qui me gagne tout le temps alors que dans l'IDE je bat souvent le boss :(

Zakaoai: 63 a 65 :'(

sanpas83: il faudrait que j'ameliore le learns comme sa je pourrais pas monter dommage

Default avatar.png CorLeone02: Moi j'suis nul

sanpas83: jamais dire sa :)

Default avatar.png CorLeone02: j'découvre le coding donc j'suis nul logique

sanpas83: a oui beh tu est en découverte et en apprentissage c'est pas être nul .. .

Default avatar.png CorLeone02: Mouais//

788361: sqlut les petits lus

Zakaoai: Hello Bob

788361: !nick Bob

Mazelcop: yo o/

Zakaoai: des conseils de dernière minutes les legendes pour que je passe Gold :p

Zakaoai: je suis 19em

Neumann: Farm les potions

Neumann: Vite

eklore: 431103

788361: Zakaoai: du decay dans le score

NicolasH_42: decay ?

Zakaoai: déjà ça serait cool que je TO plus dans l'arene quand dans l'ide ça passe

Bob: Zakaoai: baisse ton timeout

Bob: 35 ms ca joue

Zakaoai: Bah je l'ai mit a 40

NicolasH_42: moi c'est a 25

Zakaoai: 35 ?

Bob: essaye 35

NicolasH_42: pk je trie mes solutions (8k)

Bob: 40 j'ai des TO occasionels

Zakaoai: Je suis en JS je brasse pas autant que vous

Bob: NicolasH_42: le decay c'est le fait de considerer que plus tu explores loin, plus tu as d'incertitude

NicolasH_42: ouais moi c'est du Rust ac du bitwise ducoup ca va vite.

Bob: si, sur un meme chemin, je fais une potion au tour 1 et une deuxieme au tour 5

Bob: celle au tour je suis certain de la faire meme si l'adversaire la fait en meme temps, donc je peux compter son prix complet

NicolasH_42: haaah ok ok

Bob: celle au tour 5, en fait l'adversaire peut la faire avant moi donc je ne vais compter qu'une fraction de son prix

NicolasH_42: j'ai pas gere ca, je fais une search reduit sur mon adversaire

Gronahak: @Bob je suis passé Gold :sunglasses: !!

NicolasH_42: boooom gg

Default avatar.png CorLeone02: ggggggggg

Bob: on peut trouver plein de manieres de modeliser ca, mais un truc du genre 0.x ^ (depth - 1) fonctionne generalement pas mal

Bob: gg Gronahak

Gronahak: Je sais même pas pourquoi, je me suis fait pousser je crois...

Gronahak: J'étais 15e silver j'ai abandonné

Bob: valeur de 0.x a tester et ajuster suivant ton cas

Gronahak: Et je suis passé

Default avatar.png CorLeone02: Je suis Fer IV perso

Bob: en tout cas c'est ca qui m'a fait passer de top 50 silver a premiere moitie gold

Gronahak: Moi j'avais fix mon decay à 0.75 de base et après avoir vu Bob en parler dans le chat samedi je l'ai changé à 0.9 j'ai gagné 200 places

Gronahak: Ensuite je l'ai mis à 0.826 et j'ai encore gagné des places x)

Bob: ca prend 5 minutes a coder, investissement on ne peut plus rentable

Zakaoai: decay pow 0.9

Bob: moi j'ai 0.9

NicolasH_42: mais je m'arrete au brew moi

Bob: ah

Bob: ben non faut pas :)

Zakaoai: Bon je resubmit jusqu'à passer gold

Bob: va le plus loin que tu peux

sanpas83: je suis redescendu 500 sa va pas passer encore :(

Default avatar.png CorLeone02: lache rien mec

Default avatar.png CorLeone02: continue

Zakaoai: 592

Zakaoai: Bob, si je voit que je fait des loose il vaut mieux resubmit ou attendre l'arriver a 100% ?

Bob: ca depend de si ca va vite :)

Default avatar.png CorLeone02: ²100%

Gronahak: Je suis en python par contre, je visite max ~700 nodes / tour

Bob: mais si ton code est parti pour passer le boss, normalement ca doit se voir assez vite

Bob: genre top 20 a 50 %

sanpas83: j'aurais pas du resubmit j'etais 1 fallait juste attendre que l'on me pousse :o

Bob: sanpas83: ah alors la oui c'est dommage :)

NicolasH_42: @Bob je suis arrive gold, premier challenge , c'etais mn objectif ! je suis content, la je vais me coucher :). (J'ai fais le challenge pour test le Rust) et puis je check 30k etats je sais pas si c'est assez pour pas s'arreter au brew

Bob: gg

sanpas83: et oui saimplique re café est attente :)

Bob: si t'es arrive la ou tu voulais c'est deja bien :)

NicolasH_42: yep et j'ai bcp appris ! et le rust c'est trop bien !

Bob: independamment de combien d'etats tu tournes, plus tu peux aller loin mieux c'est

Bob: si tu arrives a profondeur 8-9, c'est pas mal

NicolasH_42: je fais 10-11 ac les learns dedans

Bob: alors c'est carrement pas mal

NicolasH_42: entre 5 et 10 mais j'ai une limite pour mon nbr de solutions

NicolasH_42: je veux pas plus de 8k solutions

NicolasH_42: apres le sort & pick est trop long

Bob: moi je fais de subtilite

Bob: je teste tout, je n'elague pas les doublons

Bob: je fais pas*

Zorg1: bon les pushs sont figés ou ça tourne encore ?

Bob: #bulldozer

Bob: Zorg1: il reste encore une heure

sanpas83: sa tourne mais toujours lent

Zorg1: oui enfin si un push c'est deux heures ...

sanpas83: donc chaud pour resubmit

Bob: ouais voila :)

Bob: disons que si tu repousses il vaut mieux etre sur de ton coup

sanpas83: j'aurais pas du ::!

Bob: ou desespere

Bob: sanpas83 : au pire tu pourras faire un push du desespoir a la derniere minute :D

Zorg1: en fait je sais pas trop ma place en légende, tout le monde push

sanpas83: 38% je suis 300

Zorg1: on verra après le rerun

Mazelcop: on dirait que c'est reparti pour que les submits prennent 1h

Bob: sanpas83: laisse tourner, 30 % c'est trop tot pour dire quoi que ce soit

cocoche007: Et moi qui juste avant le contest a été contraint de mettre en pause ma reprise de Zelda The Windmaker.

cocoche007: Bonjour Automaton2000

Automaton2000: je suis du même avis

sanpas83: oui merci je vais voir d'ici 30 min

Zorg1: mais c'est sûr j'aurais pas de T-shirt ;-)

Bob: cocoche007: eh ben t'as le temps de le terminer avant la fin des runs :D

cocoche007: Pas fô

dbdr: Zorg1 regard mon run

dbdr: je te laisse passer lgende et tu me fais ça? ;)

Zorg1: ah oui

Zorg1: bah c'est étrange pour un bot qui est passé légende au chausse pied ^^

Zorg1: mais je l'ai pas retouché depuis

dbdr: :)

Zorg1: ah je comprends la citation latine sur World ^^

Zorg1: je me réveille là

dbdr: :)

dbdr: je me suis reveillé, tu étais #25 et moi #30

dbdr: :)

dbdr: tu as du monter dans la nuit

YannT: j'ai vraiment du rater un truc sur ce contest

NicolasH_42: @YannT pk ?

dbdr: ah voila, tout est pardonné Zorg1

YannT: soit gérer l'adversaire était nécessaire pour passer légende, soit je suis complétement passé à côté d'un autre truc important

YannT: (soit j'ai un gros bug que j'ai pas vu)

Simon21: je te rassure yann je n'ai pas non plus réussit à passer legende

nicolasD: A la fin du contest, ça rerun pour tous le monde ou ça fini juste les runs en cours ?

Simon21: je suis passé gold mercredi soir, et j'y ai pourtant passé tout mon week end^^

sanpas83: sa rerun seulement pour les légende

nicolasD: D'accord merci pour l'info :)

domak: après c'est pas forcément une bonne idée de lancer un rerun maintenant... si tu loupes ton run, tu auras pas forcément le temps de le relancer

domak: et je dis pas ça parce que je viens de perdre 40 places en 20 minutes ;-)

dbdr: Neumann serein? :sweat_smile:

Neumann: Pas du tout, j'aurais jamais du repush

dbdr: yolo

Mazelcop: pareil

sanpas83: j'ai perdu 100 place pour le moment a cause du re-submit

dbdr: après, un recalc qui monte c'est plus sympa qu'un qui descend

Neumann: Mouais, encore faut-il ne pas partir de trop bas, et pouvoir remonter

dbdr: oui

Zorg1: yannt : pas besoin de gérer l'adversaire

sanpas83: oui c"'est sa la j'ai fait 1 repush et vue que les 10 premier match sont win sa me remonte completement

dbdr: tiens Mazelcop en sub aussi

Neumann: Tin j'étais bien, dans le top 15

Neumann: Je vais pas réussir à y retourner

dbdr: mais si mais si

dbdr: après le rank un lundi matin faut s'en méfier

Neumann: Je t'assure que non, c'est un marécage

Zorg1: toute façon il y a rerun ?

dbdr: une petite série à un moment du run et tu décolles Neumann

Neumann: Meh

dbdr: Zorg1 oui

Neumann: rip

Zakaoai: top 7 a 62%

Bon[]Crayon: salut

Zakaoai: et merde defaite sur le boss :'(

dbdr: il sort d'où ce MichalOp?

Zakaoai: Top 1 refaite moi affronter le boss

cocoche007: Pologne

LoganWlv: Le classement freeze à 10h ou il faudra attendre la fin de toutes les batailles en cours ?

cocoche007: Le runs doivent se finir

Zakaoai: 40.88 vs 41.04

domak: Pourquoi toutes les légendes sont en rerun, il y en aura un à la cloture non?

Zakaoai: bon là je doit laisser mon bot TOP 1 et battre le boss

domak: ou alors c'est déjà le cas? ils ont fermé à 9h?

Traquila: Habituellement, il y en a qui submit 1mn avant la fin ?

domak: pas une bonnne idée si tu foires ton run

domak: ça m'est déjà arrivé de perdre une centaine de places comme ça

Traquila: si tu as une mauvaise place, tu n'as rien à perdre

Zakaoai: etmerde j'ai des TO encore :'(

domak: oui

sanpas83: oui Zakaoai il faut attendre que le boss descende j'aurais pas du re submit j'arrive pas a remonter je suis 280 à 35% la

domak: tu peux aussi faire pire

CopperFr: c'est la dernière ligne droite ?

Zorg1: ah t'es repassé devant moi dbdr

sanpas83: aa TO peut être la raison contre le boss

Zakaoai: Oui je reste à ma position mais les TO me font du mal à la longue

dbdr: Zorg1 oui, au moins je regretterai pas le resub

sanpas83: oui c'est sur les TO pas bon pour le score

Bob: Zakaoai: t'es toujours a 40 ms ?

Bob: si oui descends a 35

Zakaoai: Oaip 40

CopperFr: Le fameux TO ... 7

Traquila: à 40ms ca ne passe plus

Zakaoai: oki go 35ms

Traquila: ou 38

CopperFr: 37.2

Zakaoai: Quel valeur que je resubmit

Traquila: j'ai un run à 40, 1 defaite sur 15 c'est timeout

Zakaoai: 3 defaite contre le boss :'( seum

Zakaoai: Je peut changer ma depth en fonction du tours aussi

Bob: moi j'ai 35

Zakaoai: car je TO à la fin

Bob: et zero timeout

dbdr: et ben voila Neumann monte

Zakaoai: c'est chiant de se dire de resubmit au Top 1

Zakaoai: 40.7 vs 41.29 sur le boss parce que j'ai 3 defaite contre lui

Zakaoai: Bon je resubmit avec TO à 35 ou pas ? J'ai peur de pas monter au dessus de Dorfy

Vry: Yo Bob Zakaoai Traquila CopperFr dbdr domak Zorg1 Neumann et les autres :grin:

Lionel: Hello : question : si je push en argent à la dernière minute : j'ai une chance d'allzer en gold (en théorie...)

Lionel: ??

dbdr: Lionel: oui

Lionel: ok merci

Zakaoai: damn il reviens que maintenant le tchat

dbdr: tu vois tu as décollé Neumann :)

Zakaoai: je resubmit ou pas ma version TO a 35ms. 40.9 vs 41.29 ?

CopperFr: ah oui même le chat y merde

Vry: 20 minutes pour écrire une éval. et passer légende c'est jouable ? :upside_down:

CopperFr: t'as rien à perdre

egaetan: c'est jouable

Vry: Mais j'ai pas envie ...

Vry: o/ egaetan

788361: o/

Gh0stm4chine: o/ => salut ?

Gh0stm4chine: o/ vry

Zakaoai: Bon je resubmit ou pas :'( je sais plus quoi faire ...

Vry: Le puzzle de la semaine on ne peut le trouver qu'avec les notifications ?

Gh0stm4chine: tu n'as rien à perdre si tu resubmit je pense

Gh0stm4chine: si ça passe tant mieux, sinon dis toi que le jeu va resubmit pour toi à la fin du concours

Gh0stm4chine: tu px attendre la fin du run de ceux juste en dessous de toi si tu veux

Zakaoai: ah le boss baisse

Zakaoai: Bah ce que je fait

Zakaoai: yowa monte en ce moment

Traquila: ca veut dire quoi "multi" en fin de concours ?

Robinsstudio: Ah ça resubmit tout le monde à 10h ? Ou ça gèle le classement ?

Zakaoai: ça resubmit legend only Gh0stm4chine

WhatTrickeryIsThis: le six

Zakaoai: allez yowa fait baisser le boss pour moi

Zakaoai: que je passe sans resubmit

WhatTrickeryIsThis: oups..

Magus: bon, 15ème mais t'as tout le monde en légende qui resubmit

Magus: dure de prévoir où je vais finir

Zakaoai: mais j'ai 4 defaite sur dorf

Gh0stm4chine: @Zakaoai ah je savais pas

Magus: A 10h, déjà les submits en cours se terminent

Zakaoai: Je ne sais plus quoi faire :'(

Magus: et ensuite ils font jouer 300 parties pour tous les joueurs légendes (environ)

Zakaoai: submit ou pas

Gh0stm4chine: yowa il a piétiné la gold

Magus: et à la fin de ça, le classement est figé et le classement est fait

egaetan: Magus j'avais le souvenir de beaucoup plus

Traquila: donc ca sert à quoi de resubmit legende ?

Magus: bah c'est 300 parties par joueur légende, mais donc en moyenne pour un jeu 1v1 tu vas en jouer 600

Magus: tes 300 parties à toi, et 300 parties des autres

Mazelcop: à voir si le bugfix de dernière minute, il marche Traquila

Zakaoai: cliquer ou ne pas cliquer

Traquila: ok

Gh0stm4chine: si tu cliques pas tu ne passeras pas je pense :/

Zakaoai: Bon allez tant pis je clique

Gh0stm4chine: quoi que y'a Ben-oit

Zakaoai: rah

Zakaoai: tu me fait peur

Zakaoai: yowa resubmit ?

Bglacial: Dernière chance pour moi, j'ia resubmit

Zakaoai: bon allez ça clique

Zakaoai: 10/10

Gh0stm4chine: :muscle:

Gh0stm4chine: yowa qui ne passe pas alors qu'il avait 7 défaites en 40 parties, il perd tout le top 3

Zakaoai: allez go go go

Default avatar.png SpeedSPTest: go derniere chance

Zakaoai: bah déjà la je leur relaisse la place 1

Default avatar.png SpeedSPTest: tout le monde a re submit devant chaud le boss va prendre des points encore :(

dbdr: miam

Zakaoai: merde defaite a 12

Zakaoai: resubmit ou pas ?

CopperFr: les 5 dernières minutes ?

Default avatar.png SpeedSPTest: non pas assez de % d'avancement pour re submit a 12 match

Zakaoai: du coup je laisse comme ça

sanpas83: la je suis 130 a 50%

sanpas83: j’espère que sa monte un peu :!

Zakaoai: allez sanpas83

Zakaoai: 2 defaite

Zakaoai: ça bloque

sanpas83: pourtant j'ai eu 3 defaite sur les 10 premier quand j'ai resubmit

Traquila: syamashi passe legend 2 min avant la fin

[CG]SaiksyApo: Autant passer légende 2min après la fin c'est plus de spectable du coup

Bon[]Crayon: Il n'est pas encore legend

Traquila: oui il est pas encore

Magus: c'est triste de se dire qu'on aura pas d'autre contest avant 6 mois ;(

sanpas83: Magus oui bien dommage

egaetan: :snif:

WhatTrickeryIsThis: qui sait, y aura peut être un truc à Noël? <3

Traquila: il n'y en a pas en hiver ?

Traquila: ..

Magus: voila, fini, gg tout le monde

788361: tiens question con aux plus-doues-que-moi-en-C++

POLOB: Marrant de voir un gars d'Ubisoft #3

POLOB: ils devraient pas avoir le droit de participer

Zakaoai: bon bah je laisse courir mais #236 silver a 20%

CopperFr: ca coute cher en t-shirt les contests

Gh0stm4chine: avant y'en avait plus souvent non ? mais du coup y'avait bcp moins de participants par contest ?

Bon[]Crayon: L'ambiance du décor est réussi. :smiley: :thumbsup_tone2: :100:

Magus: Oui avant il y avait plus de contests. Il y avait même les community contests, fait par des gens de la communauté.

Magus: Mais les contests ça coute cher à CG, et les community contests leur coutait plus de temps que de faire les contests eux même

Magus: donc ils ont du changer leur façon de faire

1400179: Pourquoi?

sanpas83: le prochain 06/05/2021 :o

Zorg1: finalement 81 en légende

Zakaoai: le petit le 504 gateway a 10h

Bon[]Crayon: GG

BigUP: vous avez tous fait votre submit de derniere seconde ?

Zakaoai: yes

BigUP: Zorg1, ca va encore bouger ca resubmit en auto pour la legende

Zakaoai: bcp de monde en silver

Zakaoai: c'est long

Vry: GG les gens !

sanpas83: gg a tous

nicolasD: GG, c'était cool !

Zanbez: GG

Sissiimperatice: gg

Mazelcop: gg c'était cool

frozar: c'est clair bravo à tous

LoganWlv: GG Super contest !

Von-Karma: yes trop cool !

Robinsstudio: GG

sanpas83: bonne journée a tous un retour dans le monde sa ma bien plu avec du bon monde

frozar: par contre, le prochian challenge dans 6 mois, ça fait loiiiiin

Cendretoundra: Bien marrant cette contest !

nicolasD: Quelqu'un en java accepterais de me montrer son BFS et son MCTS ? j'ai essayer de faire un BFS, mais je pense avoir mal fait un truc =p

egaetan: gg

Zorg1: faut déjà que les 295 pushs en cours finissent ...

eklore: gg

domak: gg mais faudra vraiment qu'on arrête les contests le vendredi.... à chaque fois je m'écroule le second we.

YannT: alors c'était quoi la clé pour passer légende, gérer l'adversaire ou y avait autre chose et je suis passé à côté?

sanpas83: jeudi soir y a la Battle Dev d au pire :D

Zakaoai: pour moi le contest se passe encore maintenant ^^'

Zakaoai: mais je pense que c'est mort

Zakaoai: ou très chaud

frozar: sanpas83 arf, sur la battle dev, il support pas le Rust

frozar: mon prochian challenge je le ferai en Rust

sanpas83: a oui

sanpas83: sa c'est sur

frozar: (au moins le challenge servira vraiment à quelque chose)

sanpas83: oui au moin tu aborde un nouveau langege sa peut être sympa :) Vous connaissez des challenge ou battle sur du SQL

sanpas83: ?


LoganWlv: Zorg1 comment tu fais pour voir combien de push il y a en cour s?

dbdr: YannT mon boss gère un peu l'adversaire pour pas finir en dessous, juste depth 5 en gold je crois

sanpas83: encore 275 en cours

Magus: j'ai juste un dummy qui gère l'adversaire au premier tour de ma simu

Magus: et il me fait que maximiser son score

domak: LoganWlv dans le selecteur "score" du classement général

YannT: ok, donc pour légende il fallait gérer l'adversaire au moins pour calculer son score à quelques depths donc

Traquila: On ne peut plus suivre les combats en cours ?

Kirbiby: https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global

Traquila: merci :)

LoganWlv: Ah oui bien vu merci

Zanbez: C'est une impression ou les écoles japonaises ont cartonné ?

Zorg1: y a eu un paquet de Jap en effet

Bob: question con pour optim C++

CopperFr: 5 écoles jap :D

Magus: .je sais pas, mais la ligue légende il y a plein de japonais par rapport à d'habitude j'ai l'impression

Magus: et je dis pas ça parce qu'une certaine colle à bois a essayer de m'empêcher de passer légende

Kirbiby: l'impression de revenir plusieurs années en arrière avec ce top 3

Corrosif: vous savez si on va pouvoir continuer sur le challenge après que le classement soit figé ?

Magus: Corrosif: le puzzle multi sera ouvert demain je pense

Zorg1: oui le challenge passe en multi

Magus: peut être mercredi

Bob: entre faire struct { unsigned char i0: 4; unsigned char i1: 4 } et utiliser i0 et i1, et et struct { unsigned char inv; } et utiliser (inv & 0xf0) >> 4 et (inf & 0x)

Corrosif: cool ! :)

Bob: y en a t-il un plus rapide ?

dbdr: ensl #1 française, gg JBM Stilgart NoZ-

dbdr: Bob imposslble de répondre dans l'absolu

Magus: Bob: j'ai essayé plein de choses (4 char, 2 char, 1 char ...)

dbdr: l'une est mieux pour le cache mémoire, l'autre requiert moins d'instructions

Magus: le plus rapide que j'ai trouvé c'est de tout précalculer comme un énorme bourrin

Bob: arf :)

dbdr: donc ça dépend de ce que ton code fait

Bob: ok

dbdr: comme toujours, il faut mesurer

Magus: InventoryPrecalculation precalculations[1001];

Bob: bon j'en suis pas encore a ce niveau de finesse mais la question m'a traverse l'esprit

Traquila: J'ai essayé les décalages mais à chaque lecture / écriture, c'était moins perfomant

Bob: oui le precalc, pareil j'ai vu passer l'idee mais j'ai pas eu suffisamment besoin de perf pour aller dessus

Bob: peut-etre pour le multi, pour rire

CopperFr: ca dépend peut-être du proc

YannT: j'ai essayé le precalc des inventaires, ça apportait pas de perfs par rapport à un char

YannT: (mais bon, en JVM ça)

fermeaux: Y'a des légendes qui partagent leur code pour la science ?

Magus: le code, probablement pas

Magus: pour les idées/strats : https://www.codingame.com/forum/t/fall-challenge-2020-feedbacks-strategies/187846/2

fermeaux: La logique alors ?

jolindien: 'lut tout le monde

dbdr: normalement non, il y aura le multi après

dbdr: \o jolindien

jolindien: il est ou le rerun ?

Mazelcop: o/

dbdr: jolindien https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global?column=LEAGUE&value=legend

darkhorse64: Bob: suite à tes posts, j'ai compressé ma structure en utilisant des bitfields et ça dépote mais je n'ai pas fait de comparaison avec des masks. Simplement, c'est un peu plus facile de coder comme ça (à part gérer les overflows). J'ai entre 300 et 500K en myenne avec des pointes à 1 million. Autant dire que la recherche des recettes pour potions va vraiment très vite

jolindien: déjà fini ?

dbdr: pas commencé

jolindien: ahhh

dbdr: subs en cours pour l'instant

Kirbiby: ah les PM où tu vois que t'as fait fait comme tout le monde masi en moins bien :d

fermeaux: Merci @Magus

Bob: darkhorse64 : en pratique j'ai 4 chars pour l'inventaire mais je tape facilement le million,

Traquila: 1M de visité ?

Bob: oui

Bob: sans elagage des doublons

Traquila: ha sans hash

Bob: oui oui

Traquila: ca fait bcp quand même

darkhorse64: Mon inventaire fait partie du hash pour gérer les transpositions. Alors, c'est 4 bits pour chaque ingrédient

Magus: j'ai énormément moins de visites, et j'élague pas de doublons non plus

Gronahak: Je tape 700 nodes max / tour en python xD

Mator: Hi all. Vous savez qd le classement sera stabilisé ??

Magus: je fais environ 100k visites en 40ms

Magus: avec un beam de 1000 ça permet d'aller assez loin en profondeur

Traquila: Pareil 125K sans doublons

dbdr: ça va a quelle profondeur 1 million?

Bob: 8-9

dbdr: ah c'est pas bcp

Mapapin42: Moi 6k @Gronahak mais pas du tout opti quand même ^^

Bob: oui voila

Magus: mais t'as pas d'éval pour faire 1 million ? oO

sanpas83: comme souvent University of Wrocław aussi

Bob: non j'ai juste le score

Magus: ah

darkhorse64: Avec les transpositions, tu vas au délà

Bob: #beLazy

GeoBlack: Magus : chaque node est défini par quoi ? (juste ton inventaire ou ton inventaire + potions + sorts possibles)

Corrosif: vous la voyez ou l'info que le challenge passe en multi je trouve rien sur le forum ?

dbdr: juste le score depth 9, je vois pas comment ça peut etre fort

Magus: GeoBlack: dans mon code je gère pas les doublons

Traquila: j'avais juste le ratio score/deep. Mais avec 125k visite, c'est très rare quand je vois 2 potions (max deep 9)

Magus: donc un noeud est défini par euh ... l'état de la partie quand j'arrive dessus

Bob: dbdr : ah ben ca fait juste mid gold, faut pas rever hein

WhatTrickeryIsThis: GG merci CG <3

dbdr: ouais

darkhorse64: Tout le problème (le mien), c'est l'éval. Trouver le combo de la mort, c'est bien, le réaliser sans se faire piquer le learn ou la potion, c'est mieux

egaetan: Magus c'est l'élagage

SeebOmega: :clap::clap::clap::clap:

egaetan: qui enlève les doublons peut etre

Magus: Corrosif: on le sait parce que c'est comme ça à chaque contest

Magus: egaetan: j'élague pas les doublons dans mon code. J'ai juste un beamsearch qui prune à chaque profondeur mais c'est tout

Magus: enfin "c'est tout"

Magus: garder que 1000 noeuds ça fait un sacré pruning D

dbdr: Magus mais dans les 1000 ya des doublons?

Traquila: Je pense que je n'ai pas compris la partie eval, c'est pour cela que je ne suis pas allé très loin

egaetan: dbdr je pense pas, le A+B=B+A il degage à la première etape A vs B ou le pruing aggressif n'en garde qu'un

dbdr: Magus dit qu'il gère pas

YannT: comment tu fais une beam performant? tu fais pas un sort sur tous les noeuds de la depth si?

POLOB: Merci Magus pour le Post Mortem dans le forum, c'est cool :)

POLOB: vous savez si il y en a d'autres qui trainent ?

dbdr: si tu prunes par valeur, tu gardes tous les doublons dus meilleurs

egaetan: il ne doit pas y avoir le temps de faire des doublons avec une pop de 1000

Vry: Pour le beam, je pense que c'est l'éval. qui permet de garder les bons path

Vry: J'ai testé le beam sans éval. c'était bien moche ... :p

Magus: dbdr: oui je dois avoir des doublons vu que je gère pas les doublons

POLOB: Comment tu fais un beam sans éval ?

Traquila: Comment vous faites pour voir 2 potions ? (a deep 8/9 j'en voyais rarement deux)

Vry: qsort + cut à 1000 :)

Julius2k17: le postmortem de Magus a fait crasher le forum, too many requests :D

dbdr: surpris que ça marche si bien Magus

Magus: de toutes façons, quelque soit le contest j'ai jamais réussi à gérer les doublons

dbdr: tu dois avoir une très bonne eval

POLOB: il te faut bien une métrique pour ton qsort ?

Magus: si j'essaie de gérer les doublons, ma gestion des doublons me coute tellement plus cher en perf que de juste les visiter quand même ...

Magus: dbdr: bah cf le forum

Magus: mon eval est bidon

dbdr: ok

Magus: score + inventaire + spells + potions + coef de patience

dbdr: pourtant oter des doublons, c'est un gain exponentiel qd tu vas profond

dbdr: donc à une certaine profondeur ça vaut mathématiquement toujours le coup

dbdr: vu que le cout est linéaire

GaTTaCa: coef de patience ?

dbdr: apres ça dépend de la depth et des constantes

POLOB: c'est con, mais je pense que le fait d'ajouter des points par potion/learn ça doit avoir son importance...

Traquila: Magus, pour les doublons, ca m'a pris 20 lignes. Le truc est de ne pas gérer les collisions. Si collision, je ne coupe rien.

Magus: nan mais 20 lignes ou pas c'est pas le souci

darkhorse64: Magus: Additionner les scores, c'est meilleur pour le tri que de juste considérer le score brut du noeud

GeoBlack: coeff de patience ?

Magus: ça coute en perf de le faire, et j'ai jamais réussi à le faire "moins cher" que de juste parcourir les doublons

Julius2k17: je me suis crouté sur mon search, ca m'a couté le gold, je viens de le refaire en 30 min bisque rage..

Traquila: Ca coute un hash

Traquila: c'est tout

Bob: GeoBlack, GaTTaCa : un facteur pour privilegier les points a moindre profondeur

Julius2k17: des fois tu t'entêtes dans la mauvais direction

SeebOmega: GeoBlack c est un coefficient degressif qui permet de favoriser un but plus tot

joelthelion: Traquila c'est pas gratuit un hash

Bob: sur lesquels il y a moins d'incertitude

dbdr: le probleme c'est pas les doublons, c'est que tous les enfants de doublons sont aussi des doublons, donc ça croit exponentiellement

GaTTaCa: @Bob, cimer

Magus: un hash c'est pas gratuit en perf, comparer des hashs c'est pas gratuit

Bob: de rien

darkhorse64: Si ton state, c'est ton hash, c'est gratuit

GeoBlack: ok je suis vraiment nul en bfs

POLOB: Ca dépend le rapport entre le calcul du hash et le re calcul du noeud

Traquila: non pas possible, state c'est 64bits min

Zorg1: après les hash c'est géré les collisions

joelthelion: darkhorse64 dans ce cas tu as un méga tableau et les accès en RAM sont pas gratuits non plus

umarbahadoor: quelqu'un sait quand le challenge sera disponible en multi?

Default avatar.png Brandon: @Magus Merci merci pour ton partage

Magus: et même si t'arrives à faire un state en bitset sur 32 ou 64 bits, tu perfs en performance pour ta simu

Zorg1: le calcul du hash c'est peanuts

Magus: parce que les opérations bits à bits c'est pas magique hein

Magus: *tu perds en performance

darkhorse64: Faut pas tout mettre dedans: inventory, learned, potions, ca suffit: 25 bits

SeebOmega: umarbahadoor oui comme a chque fois

joelthelion: au final j'ai gardé mon bitset optimisé sur ~25 bits, mais j'étais à deux doigts de le virer

umarbahadoor: SeebOmega, dans quelque jours ou semaines?

dbdr: darkhorse64 et castable?

Traquila: rien que les castable c'est 16 bits

darkhorse64: Je fais sans. L'inventory est le resultat de castable

Traquila: learned et learned catable 16 bits de plus

egaetan: Traquila osef des catables dans le hash

SeebOmega: umarbahadoor ca depends de CG et d'eventuels problemes technique mais en general c est de l'ordre de quelques jours

darkhorse64: 32 pour moi pour être large

Traquila: Hash sans castable ?

darkhorse64: Oui

umarbahadoor: @SeebOmega, super, merci :) J'ai hate de tester d'autres strategies

egaetan: oui

GaTTaCa: et pour le coeff de patience, vous aviez une stratégie complexe ? Ou sort un simple sort(level) ?

Bob: 0.9^(depth-1)

darkhorse64: C'est une idée de egaetan. J'ai piqué ça dans son stream

NoZ-: 0.9^nb de tours

Bob: que j'applique au prix quand je fais une potion

Zorg1: moi j'ajoute à la valeur de la potion la valeur des ingrédients

Zorg1: c'est super efficace ^^

Julius2k17: vous incluez les tours de rest dans vos evals ?

Bon[]Crayon: Dans votre bot, est-ce que vous simulé le "REST" ?

Zorg1: (des infrédients qui restent)

Julius2k17: lol crayon

Bob: et je rajoute les ingredients a +1 hors du facteur de decay

Magus: bah évidemment

Bon[]Crayon: :grinning:

Bob: ben euh oui le rest

eklore: au début oui....

eklore: ... mais je n'arrivais pas à avoir les 5 potions avec le rest

NoZ-: pourquoi hors du decay les ingrédients Bob ?

Bob: NoZ : parce qu'ils valent toujours 1, quoi qu'il arrive

Zakaoai: Top 1 silver :'(

Zorg1: bah justement bob ...

NoZ-: oui mais si tu les as plus tard, ils valent 1 plus tard

Bob: moui

Bob: je ne suis pas sur que ca fasse une grosse difference dans mon cas, en fait

Zorg1: c'est ce qui m'a fait gagné des points d'ajouter la valeur des ingrédient à la potion, puis d'y applique le decay

NoZ-: ok

Bob: mais je note l'idee pour le multi

Zorg1: je suis passé légende grâce à ça en fait

Hyllore: get

NoZ-: moi j'ai déjà ça mais je reste gold :P

Vry: Zorg1 : c'étaut juste ça ton éval. ?

Stilgart: bon, ma dernière idée était moins bonne :D

**Stilgart a pris cher pendant la nuit

Zakaoai: Hey dernier combat je bats le boss mais mon rang est pas au dessus de lui :'(

Zorg1: vry : oui potion + valeur des ingrédients

Zorg1: qui restent

ThomasNicoullaud: merde je fais pareil

Zorg1: (1/2/3/4)

ThomasNicoullaud: mais a tout les tours, pas juste quand je brew

ThomasNicoullaud: quel con

Traquila: ha j'étais pas loin, je prenais la valeur uniquement en cas d'égalité

Zorg1: oui je compare les scores uniquement aux potions

Vry: Moi j'avais la somme des potions avec decay et après j'ajoutais uniquement le décompte des ingrédients restants (sans le premier)

Zorg1: je faisais ça pour la dernière potion uniquement

Bon[]Crayon: C'est quoi le decay ?

Zorg1: bah tu rajoute au score en cours valeur de la position * (0.9)^(depth-1)

Vry: Bon[]Crayon : le coef. de patience

Zorg1: en fait mon éval est super simple

Zakaoai: sur 5 combat contre le boss j'ai win que 2 fois :'(

Bon[]Crayon: ok merci

eklore: et c'est quoi le coef. de patience ? ^^

Zorg1: je suis parti d'un truc compliqu"

GeoBlack: un coefficient de déclin du score en fonction du nb tours

fermeaux: il me manquait surement le coef de patience effectivement

eklore: GeoBlack merci

Zakaoai: ah j'ai mit depth du coup Zorg :/

GeoBlack: j'ai posé la même question toute à l'heure !

GeoBlack: ;-)

Zakaoai: le -1 jouerai peu être sur mon résultat

eklore: vous faisiez tourner votre BFS pour l'adversaire ?

Traquila: non mais j'avais un mini bfs pour le choix des learns en début

Zakaoai: Nope je me suis dit que c'était trop avancé comme strat pour du silver

Zakaoai: Ah j'ai pas fait de BFS pour les learns :thinking:

GeoBlack: je n'arrive pas à voir comment vous gérer le fait de faire un REST

GeoBlack: gérez

eklore: mais du coup, vous pouviez viser une potion que l'adversaire allait faire avant ,

Zorg1: j'ai qu'un seul BFS qui fait les learn, les potions, les casts ...

GeoBlack: dans le BFS

eklore: GeoBlack c'est une action comme une autre

Zorg1: par contre j'avais une phase de 5 learns au début

GeoBlack: oui

GeoBlack: mais du coup

darkhorse64: ThomasNicoullaud: toi aussi, tu viens de comprendre que ton eval foireuse t'a coûté la légende alors que c'est cinq lignes

ThomasNicoullaud: :'(

eklore: GeoBlack Ca te fais par contre exploser le nombre d'état

ThomasNicoullaud: pire

GeoBlack: dans tes simus tu as des REST parasite

eklore: ha ?

eklore: genre des REST qui servent à que dalle ?

GeoBlack: oui

eklore: bah tu ne le fais que si Castable != Sort

Traquila: tu créés une branche rest uniquement si tu as des sorts épuisés

GeoBlack: ok là je cromprends mieux

ThomasNicoullaud: darkhorse64 pire, il fallait juste pas que j'ajoute l'inventoryScore quand je faisais pas de brew à cette def, alors que moi j'ajoutais le score a chaque deph. Donc juste un if

Zorg1: par contre je learn que pour les 4 premiers tours de siu

GeoBlack: en tout cas merci

Zorg1: ça explose assez vite sinon

GeoBlack: pour vos retour

Vry: Moi pareil ThomasNicoullaud et darkhorse64 ... mais on passera L2gende sur le multi :thumbsup:

eklore: Zorg1 ah c'est bien ça je n'y avait pas pensé

eklore: j'ai du virer les learns

eklore: virer les rest... j'étais a deux doigts de virer les CAST !

Magus: ah oui dans ma simu j'empêche les REST inutile

Zorg1: eklore : bah initialement je les faisais qu'en depth 0 mais je me suis apperçu que ça améliorait quand tu les fais un peu plus profond

Zorg1: en fait mon code est resté assez simple

eklore: Zorg1 tes learns du début sortait donc de ta simu ?

Traquila: deep 0/1 pour les learn en cours de jeu

eklore: *sortaient

Zorg1: eklore : en fait je simulais quand même. si ça me sortait autre chose qu'un learn, je learnais le sort gratuit

darkhorse64: Ben alors, j'ai pas bien compris le post de Magus parce qu'il ajoute l'inventory à chaque étape.

GeoBlack: une stratégie pour un BFS, du style : je ne considère pas le REST ni le LEARN, je les fais que si j'utilise un sort qui le nécessite, c'était jouable ou pas ?

Magus: oui, j'ajoute l'inventory à chaque étape

R4N4R4M4: Salut tout le monde

Magus: chaque noeud est évalué entièrement

eklore: GeoBlack C'est ce que j'ai fini par faire, mais c'est pas top

Magus: sinon le sort pour le beamsearch il ferait bien de la merde

Bob: GeoBlack: sans le rest, ca me semble difficile

Magus: parce que si tu fais aucune potion, t'as que l'inventaire pour guider le beamsearch

GeoBlack: j'ai fait cela avec un MCTS

Bob: GeoBlack: pour te donner une idee, j'ai 8 learn gratuits en debut de partie et apres juste un BFS avec brew + cast + rest

eklore: "Juste" ... J'ai jamais réussi, j'avais des timout tout le temps ^^

Vry: Moi j'ai idem Bob, et on est classé pareil je crois

Kirbiby: Sinon, tu introduis un bug dans ta simu où tu n'autorises aucun sort ou potion qui vide l'inventaire

GeoBlack: oui mais moi le rest je ne le faisais que si j'en avais besoin

R4N4R4M4: Et moi qui me suis embêté à faire un MCTS pour les Learns :D

darkhorse64: J'y ai rajouté les learn. Ca explique que j'aille moins vite que Bob

GeoBlack: du coup je me demande si c'était limitant

Zorg1: R4N4R4M4 pour une fois que tu fais une simu ...

Bob: Vry oui et d'ailleurs je crois qu'on a la meme gestion du score

Bob: prix de la potion * decay au brew, et je rajoute les ingredients 1+ separement

ThomasNicoullaud: bon bah c'était probablement le challenge le moins fun en terme de gameplay et de visionnage de replay pour moi je pense :-(

R4N4R4M4: J'ai un 1 MCTS + 1 BFS + 1 Bruteforce + Heuristiques :D

Bob: c'est vrai que j'ai regarde quasiment aucun replay

Bob: ce qui est con parce que c'est aussi le plus beau viewer :)

YannT: ThomasNicoullaud: agreed c'était moins motivant parce que nos petits cerveaux sont pas capables de mieux voir que le bot les bons coups à jouer

Kirbiby: +1 horrible les replays décalés de milles frames avec ton output

YannT: un peu comme UTTT

GeoBlack: bob : c'est clair

Zakaoai: Bob j'ai pas 8 learn gratuit mais 8 learn dans les 3 premier slot et je prend du moins cher au plus cher selon le type de consomation d'ingrédient. et meme BFS que toi

darkhorse64: Par contre, j'ai brassé un paquet de logs

BigUP: Kirbiby, si c'est completement décalé, ca peut etre parceque tu as beaucoup de debug ?

Kirbiby: Oui

YannT: le seul truc que je regardais dans les replays c'était la barre en bas pour avoir une idée du pacing des potions

Kirbiby: beaucoup

LuckyJ.: Hólà, vous avez un lien qui regroupe les postmortem des légendes?

Je suis curieux de voir leur strat' :D

Zakaoai: Moi je trouve que ce challenge à favoriser certains langage sur la gestion des perfs

Zorg1: R4N4R4M4 : ah oui t'as mis le paquet ^^

Kirbiby: Moi j'ai adoré au contraire que le jeu soit simple

Gh0stm4chine: dire que je me suis cassé la tête à faire un hash.. j'aurai p-e du laisser les doublons

Traquila: en légende il y a du java, python, c#

Bob: je serais curieux de savoir si il y a des gens purement en heuristique au-dela de mid-gold

Zakaoai: c'est pas compliqué à generer le hash si tu part en langage binaire

Bob: mais pour le moment c'est sortie d'ecole

Vry: R4N4R4M4 : j'avais aussi n MCTS mais je l'ai abandonné mais ça m'a permit de comprendre qu'il fallait travailler sur la taille des données ...

GeoBlack: Zakaoai : c'est certain mais perso c'est mon manque de technique/connaissance dans le BFS

Zakaoai: ^^' j'avais les grande lignes mais https://www.codingame.com/playgrounds/38626/optimizing-breadth-first-search m'as aidé merci Gh0stm4chine de me l'avoir sortie

Zorg1: en plus je gère assez mal les learn (je met pas à jour les coûts)

Zorg1: et je gère pas le mécanisme des bonus

R4N4R4M4: Pareil Vry, avec un node de 8k, je vais pas bien loin en MCTS :D

Zorg1: c'est asssez compliqué pour connaître le nombre de bonus restant

darkhorse64: Ily a pas mal d"exo sur CG qui se résolvent avec un BFS. C'est un très bon entrainement

Zorg1: faut repérer les potions disparues et qui a fait une potion

UmeHearts: Le prochain chall est dans longtemps :O

BigUP: Zorg1! ?? tu ne gère pas le cout des learn !??

Vry: Mon MCTS faisait 700k node quand même mais il gérait les deux joeurs et avait le moteur complet (avec tax et cie)

Zorg1: BigUP : si mais je les mets pas à jour si j'en fais deux de suite

R4N4R4M4: Vos BFS, comment ils gèrent le fait de revenir à une situation identique ?

BigUP: ok

Vry: R4N4R4M4 : osef !

Zakaoai: hash inventaire spell R4N4R4M4

Zorg1: si tu prend le tomeindex 0, le tomeindex 1 devient 0

Zorg1: je me suis pas emmerdé avec ce genre de détail

BigUP: Zorg1, je n'y avais meme pas pensé ! :)

Default avatar.png CrazyHidenTalan: Il sert à quoi le tomeindex?

R4N4R4M4: A goûter la tome :D

Default avatar.png JBM: dbdr: yep :) merci

Vry: GG JBM

R4N4R4M4: J'aurais dû lire l'article de MSmits

LuckyJ.: http://chat.codingame.com/pastebin/e5c980e1-ebe0-4d42-b74c-11945ec6a1b2

Vry: Pour le coup mon code C est super court 700 lignes dont 60% pour lire des données

LuckyJ.: R4N4R4M4: en recodant le hash_combine de boost

BigUP: et dire qu'avec une eval comme ca, le gars termine 250eme ! -->

BigUP: BFS for BREW moves with score evaluation on final node score = 1 * tier0 + 3 * tier1 + 3 * tier2 + 3 * tier4 - turns * 3.5

Vry: BigUP, il est entre Bob et moi c'est rigolo

R4N4R4M4: Merci LuckyJ.

Zakaoai: 943 ligne chez moi de mon coté

Traquila: 300 pour passer silver 29 600 pour passer gold

ShinjiKun: Petite question pour ceux qui ont fait un beamsearch: comment avez vous fait pour gérer la simultanéité des coups pour la construction de l'arbre ? Vous avez simplement ignoré l'adversaire ?

Mazelcop: ShijinKun -> un autre beamsearch pour l'adversaire

Zakaoai: Du coup moi pour le hash state R4N4R4M4 j'ai 2 binaires 1 pour l'inventaire et 1 pour les spell le hash etant du coup binaireInventaire shiftLeft de taille de liste spell + binaireSpell

Zakaoai: Oaip tu a pas les meme donnée de base pour toi et l'adversaire ShinjiKun du coup un 2nd BeamSearch serait mieux. J'ai pas implem l'adversaire perso.

Zakaoai: C'est ptet ce qui fait que je passe pas gold :/

Zakaoai: Ce qui m'a mit dans le mal c'est d'avoir changer tout mon code pour l'opti une 3em fois samedi a minuit.

darkhorse64: Tu peux ignorer l'adversaire pour passer Gold

Bon[]Crayon: Oui

Zakaoai: Bah darkhorse64 je suis rester stuck top 1 silver

Default avatar.png JBM: euh⤦ comment on retrouve le lien vers le leaderboard du contest passé déjà?

ShinjiKun: Je comprend pas trop ^^ du coup t'as deux arbres, tu compares comment ensuite ?

darkhorse64: Ce sont probablement tes perfs en BFS qui te plombent

Zorg1: https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global

Zorg1: JBM

Zakaoai: Au faite pour vous dire juste : Ils ont modifier le boss Silver en plein contest

Bon[]Crayon: Ah bon ?

YannT: JBM: c'est bon j'ai sauvé la face quand même je suis juste devant toi 😂

Zakaoai: il est passé de la strat learn 8 a learn 6

Default avatar.png JBM: merci Zorg1

Mazelcop: ShinjiKun -> c'est un peu long à expliquer dans le chat, j'en parlerai dans mon postmortem

Default avatar.png JBM: YannT: ah? mince hier soir j'étais devant. le dernier submit a pas du etre bon

YannT: bon clairement je suis passé à coté de ce contest, je sais pas pourquoi j'avais en tête qu'il y avait pas besoin de gérer l'adversaire pour passer légende alors que clairement si 😬

Zorg1: euh non yannt

ShinjiKun: @Mazelcop Ok merci :)

Zakaoai: J'hesite à faire mon post mortem. Vu le nombre d'heure passé ^^'

YannT: Zorg1:alors je suis passé à côté d'autre chose, parce que sinon un BFS sur depth8 devrait suffire

Zorg1: j'ai un BFS depth 10/15 moi

YannT: ah, avec un beam?

Zakaoai: pinaiz je viens de recheck vous voulez savoir : je suis a 0.06 du boss Silver :'(

darkhorse64: Tu seras poussé

Zakaoai: non car c'est finit darkhorse64

Default avatar.png JBM: je vois pas de match contre toi dans mon historique YannT faudra se cgbencher :p

Zorg1: YannT : euh non sans beam

darkhorse64: Poussé quand ça deviendra un multi

Zorg1: je vire les doublons

YannT: hmm moi aussi

YannT: ça donne depth 8-10

Zorg1: j'ai un peu optimisé pour avoir 100k de coup en 4àms

Zorg1: *40 ms

YannT: j'ai ça aussi

NicolasH_42: ya plus de leaderboaard ?

Zorg1: j'ai au moins depth 10

YannT: 350k states / tour environ => 100k states uniques

Zakaoai: Bah ça dépend des fois je depasse pas depth 5 des fois j'arrive a 8

Default avatar.png JBM: perso j'ai rien optimisé du tout, j'étais déjà content d'avoir un truc qui fasse ce qu'on lui demande à 3h30

Zorg1: en C ?

Kirbiby: aha j'étais là

Zakaoai: Elle est la la différence le nombre de state gérable

Zorg1: je suis déçu

Default avatar.png JBM: yep

Default avatar.png JBM: si le serveur avait pas ramé autant j'en serai sans doute pas venu là

YannT: mais donc ok il fallait soit gérer l'adversaire, soit plus de depth (mais ça je vois pas par quelle magie en fait, j'ai le même nombre de states que toi et ça me donne moins de depth)

Default avatar.png JBM: mon haskell aura quand meme atteint gold

YannT: sauf si t'avais des règles d'elagage malignes

Zorg1: bah je virer les doublons sur inventaire + sort appris

YannT: ahhh

Default avatar.png JBM: j'ai commencé le C juste parce que j'avais rien de mieux à faire en attendant 3 runs pour evaluer 3 evals

Zorg1: je considéré pas les sorts castables ou pas

YannT: moi j'avais inventaire + sorts + potions + castables

Zorg1: oui les potions aussi

Zorg1: j'ai oublié

YannT: en virant les castables ça fait peut être la diff alors

YannT: ça doit certainement dédoublonner encore plus en tout cas

Default avatar.png JBM: c'est clair que quand y'aura multi réduire la taille du noeud c'est le premier truc qui viendra

Eldritch: mais si tu vires les castables tu élimines des "faux" doublons du coup non ?

Zorg1: m'ouais ça dégraisse par contre je vérifie pas de doublon après un REST

YannT: si c'est la différence entre depth 10 et depth 15 en tout cas ça vaut le coup, j'ai pas pensé à essayer ça

NicolasH_42: plus moyen d'avoir des replays ?

Zorg1: bah au début j'avais vraiment des perfs de merde

YannT: p'tet que voilà la clé qui m'a manqué: j'étais pas assez sévère dans ma gestion des doublons

Zorg1: donc j'ai dédoublonnée comme une brute

GeoBlack: du coup Zorg1, le REST tu le fais au hasard ou quand tu veux utiliser un sort non castable ?

GeoBlack: au hasard : (si tu as un sort non castable, biensur)

YannT: ben le bot fera un REST si c'est sur le chemin d'une potion

NicolasH_42: hello ya plus moyen de faire des match ou voir nos replay ?

GeoBlack: https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global

YannT: ok donc pour légende il aurait fallu que je pense à dédoubloner plus pour gagner en depth ou que je gère l'adversaire

Zorg1: bah je le fais à chaque fois que j'ai un sort exhausted

YannT: ok, that's fair :)

GeoBlack: juste pour voir les replay

bodbod: Bonjour, je suis en noob désolé. C'est quoi un BFS ?

bodbod: merci

GeoBlack: Zorg1 : du coup, tu fais REST mais si les sort non castable tu ne les utilises pas forcément ?

GeoBlack: utilisent

Zakaoai: bodbod Google -> Algo BFS :p Un algo de parcours de graphe ;)

Gronahak: @bodbod Parcours en largeur (Breadth First Search)

bodbod: merci

Zorg1: geoBlack : bah à chaque noeud je vais simuler les actions possibles

Zorg1: j'explore l'arbre des coups

GeoBlack: ok

GeoBlack: compris

GeoBlack: merci

GeoBlack: en fait je n'ai pas mis le REST dans les actions possibles

GeoBlack: Je l'ai géré comme le LEARN

GeoBlack: si mon noeud utilise un sort non castable ou inconnu alors je dois faire un REST ou un LEARN

GeoBlack: avant

Magus: dangereux ça

GeoBlack: Pourquoi ?

ThomasNicoullaud: va falloir faire les statments en Japonnais bientôt

Gronahak: xD

ThomasNicoullaud: Vivement le classement par Pays, qu'on se battent tous dans la meme équipe :D

YannT: "For each node, I add the score of the parent node."

YannT: ahhh

YannT: ptet ça que j'ai mal fait aussi tiens

YannT: j'eval pas les noeuds de façon cumulative

Default avatar.png JBM: c'est pas forcement "mal" ou "bien" ça, àmha ça dépend surtout de la forme de ton eval

Default avatar.png JBM: (et de ton état)

ThomasNicoullaud: YannT si tu fais pas ca, comment tu evalues à depth N un brew X tour avant ?

Default avatar.png JBM: exactement

Default avatar.png JBM: réponse "avec depth faisant partie de l'état"

YannT: ah je précise que le score lui sans être cumulatif d'un tour sur l'autre et "à jour"

YannT: quand j'evalue un noeud, ça inclue l'eventuel score gagné sur un brew les tours d'avant

ThomasNicoullaud: ok donc ca change rien

Default avatar.png JBM: c'est juste des variantes sur la même chose

YannT: je me dis que ça peut changer le calcul avec le decay

Gh0stm4chine: on peut envoyer un PM à quelqu'un même si on le voit pas dans le chat ?

Kirbiby: le score est cumulatif s'il inclue celui du tour d'avant non ?

ThomasNicoullaud: si tu appliques le decay sur le score de la potion d'avant avec la depth du moment de la création, c'est bon

YannT: le fait d'avoir ton inventaire en cumulatif par exemple, moi je l'evalue à l'état du node sans prendre en compte les inventaires des états précédent, je sais pas si ça fait pas agir le decay différement

ThomasNicoullaud: Moi par contre j'ai eu un gros soucis, incapable de faire marcher mon BFS en prennant la meilleur node de la dernière pronfondeur calculée. Mais je prends le meilleur de tout les noeufs confondus ! je crois que c'est à cause de mon pruning trop agressif

Neumann: Gh0stm4chine : je crois pas, avec le webchat en tout cas

YannT: là si je comprend bien le PM de Magus, en gros un BREW va compter sur tous les tours suivants (de façon degressive certes mais quand même)

YannT: à mon avis ça change qqchose

YannT: c'est cumulatif quoi

Gh0stm4chine: @Neumann yep je ne trouve pas :( triste

Magus: oui, je rajoute l'éval du parent dans le noeud courant

Kirbiby: bah tu viens de dire que ton score prenait en compte l'étt d'avant aussi

Magus: donc un BREW tour 1 va compte tous les tours suivants

YannT: mais va compter plusieurs fois

YannT: puisque tu reajoute le parent à chaque depth

ThomasNicoullaud: toi aussi YannT ?

ThomasNicoullaud: ha oui ok je vois

Magus: techniquement un brew tour 1 va compter 0.95^0 + 0.95^1 + 0.95^2 + 0.95^3 + ....... :D

YannT: ben non moi j'evalue le noeud de façon statique, donc oui si y'a eu un brew 3 tours avant il va compter, mais "une fois", pas en cumulé sur les 3 tours

YannT: voilà

ThomasNicoullaud: je fais comme Magus je me suis pas posé la question en réalité perso :D

YannT: moi u brew compte score*.95^3

Kirbiby: ah oui c la seule que je connais

Magus: a vrai dire j'ai fait ça parce que sinon pour la patience c'était chiant

YannT: j'ai p'tet mal implémenté mon decay en fait

Magus: il aurait fallu que je sache quand le brew est arrivé quand j'éval un noeud

ThomasNicoullaud: oui voila same

YannT: ouais voilà j'ai du foirer

Zakaoai: Du coup ce soir je fait mon post mortem en live ;)

Zakaoai: Top 9/909 en JS ça sera interessant quand même même si je passe pas Gold

YannT: moi un brew turn 3 compte score*.95^3 juste, et au tour 4 il va compter score*.95^4

YannT: je sais pas si ça fait une différence

YannT: 3 et 4 tours avant*

ThomasNicoullaud: mon meilleur decay moi c'était 0.99^depth² d'ailleurs

YannT: Oo

ThomasNicoullaud: j'ai fait que ca pendant 2 jours, trouver ce decay

Mazelcop: moi c'est

Mazelcop: 1

darkhorse64: Ca doit avoir pour effet de favoriser le "score early" plutôt que le combo sur 10 tours que tu n'arrives jamais à faire

YannT: moi j'ai mis un decay variable entre .95 et .8 en fin de partie, il augmente plus la partie de rapproche de la fin

YannT: pour qu'en fin de game mon bot favorise les potions "proches"

ThomasNicoullaud: j'ai test YannT mais sans résultat chez moi

Gronahak: Moi 0.826 ^ DEPTH

darkhorse64: Surtout après la 5è, j'ai carrément fait un autre search

Gronahak: Ah ouais super idée YannT

YannT: oui la 5ème j'ai fait une eval différente aussi basée sur le score final plutot

YannT: comme je gérer pas l'adversaire, si mon scorefinal > score_adversaire + 2 * depth alors win sinon lose

YannT: gérait*

darkhorse64: Je fais deux recherches ce qui me permet de savoir la potion qu'il faut viser pour scorer assez sans me la faire piquer

YannT: ouais moi juste potion qui me semble avoir un delta score arbitraire suffisant :p

YannT: c'est approximatif mais ça posait pas trop problème

darkhorse64: Comme tu cherches juste à atteindre une potion sans faire de combos, ça va vite < 10 ms pour les deux

ThomasNicoullaud: donc on pouvait aller legend sans jamais lire les inputs de l'adversaire donc ? j'ai pas trop suivi

Lionel: Hello!!

Lionel: Il ya déjà des post-mortems??

YannT: je suis plus inquiet sur cette histoire de cumulativité du scoring, je me demande si au final j'ai pas juste foiré mon eval en fait en cumulant pas

Default avatar.png JBM: t'es vraiment du genre à douter de toi, toi?

YannT: p'tet que le decay marche pas ou moins bien si on cumule pas, je connais pas les maths derrière

darkhorse64: C'est ce qu'a fait Zorg1 si bien compris. J'ai fait la même chose et #145

Default avatar.png JBM: les "maths", c'est juste une formulation du "bon sens"

ThomasNicoullaud: Zorg1 tu lirais pas les inputs de l'adversaire tu aurais le meme code ?

YannT: JBM: au tour N, entre une potion 2 tours avant qui vaut x*.95^0+x*.95^1+x*.95^2 ou juste x*.95^2, c'est quoi le bon sens alors?

Zakaoai: moi YannT j'ai enlevé le scoring sur les autres états que Brew sur préco de Gh0stm4chine. En vrai pas besoin de score ces actions si je beamsearch pas. Mais je fait quand même la somme des des score dans le cas ou j'ai un enchainement de 2 potion possible

Default avatar.png JBM: héhé

Default avatar.png JBM: elle vaut autant si elle t'apporte autant

Magus: oula le rerun me fait gagner plein de place la

YannT: JBM: c'est à voir ça, potentiellement elle apporte plus si tu la fais plus tot

YannT: (déjà parce que tu te la fais pas chourrer)

Default avatar.png JBM: oui

Default avatar.png JBM: "se la faire chourrer", c'est de l'interaction

YannT: à potion égale, je dirai que c'est toujours mieux plus vite dans tous les cas

Default avatar.png JBM: le decay est une heuristique pour contrer le fait que t'as pas l'adversaire dans ton etat

Default avatar.png JBM: t'en aurais pas besoin si tu faisais un maxmin avec l'adversaire

Default avatar.png JBM: (t'aurais d'autres problemes ^^)

YannT: certes, et je veux mes potions au plus vite, étant donné ça alors, il faut cumuler ou pas? ou ça change rien?

Default avatar.png JBM: faut que tu trouves une eval qui le tienne en compte

YannT: -_-

YannT: les deux prennent en compte le decay

YannT: pour les deux potions plus vite = mieux

YannT: je m'interroge sur ce qui est le plus juste dans le détail

GaTTaCa: Parmi ceux qui tapent +50K noeuds, vous codiez en quoi ?

Default avatar.png JBM: ...de la maniere qui ordonne les noeuds comme tu le veux

Default avatar.png JBM: je vais pas te faire la reponse parfaite dans le cas du contest :)

GaTTaCa: Parceque Python, même en faisant gaffe, j'étais à 3K noeuds max pour 5 de profondeur.

pb4: à potion égale c'est pas toujours mieux de prendre vite

NicolasH_42: Rust et 30k pour 10 de profondeur

Default avatar.png JBM: je crois que ça tlm est d'accord

pb4: Ok, j'avais mal lu au dessus alors

Default avatar.png JBM: le débat c'est sur "c'est quoi l'eval parfaite pour reveler ca"

NicolasH_42: apres mes noeud etait super leger (40 octets)

Magus: YannT si je cumule mes noeuds c'est juste une question technique. C'était plus simple à coder comme ça.

Default avatar.png JBM: 40 octets ca parait pas si leger la comme ca

Magus: Parce que sinon quand j'évalue un noeud, faudrait me souvenir "quand" a été fait un brew, pour lui donner le bon coef de patience

ThomasNicoullaud: jolindien j'ai cru qu'il était dans le top 4 tout le weekend, bizzare ce rerun

Default avatar.png JBM: mmm faudrait que je verifie les miens

Magus: c'était trop chiant à coder, alors j'ai juste rajouter l'éval du parent dans le noeud

GaTTaCa: 40 octets pour stocker le noued ou le pointeur sur le noeud ?

Magus: ThomasNicoullaud: ouai, le rerun de jolinden est bizarre

NicolasH_42: le noeud

YannT: ça d'accord Magus mais je me demande si ça a pas plus d'impact qu'une question juste technique au final

ThomasNicoullaud: j'ai raisonné exactement comme Magus, dans ma node je sais pas quand j'ai fait mon brew, donc j'ai add le parent sans réfléchir

Default avatar.png JBM: mmm, 64 les miens (mais j'ai pas effleuré l'idée de commencer à les optimiser)

Default avatar.png JBM: c'est trop rond, je pense que le compilo les padde

YannT: dans mon eval plis la depth est élevée, plus le score va être petit, et au final il va avoir du mal à battre le score des depths précédentes puisque je cumule pas, donc j'ai peut être merdé mon eval en fait

YannT: en gros si j'ai un BREW à depth 2, y'a rien qui sera assez bien pour détroner ça à depth 8 sauf un gros BREW, mais par exemple un petit BREW sera p'tet considéré comme pas un gain suffisant au vu du decay et donc ignoré

YannT: (ou alors oui il faudrait ajouter le score du BREW à la depth à laquelle il est intervenu, mais j'ai pas fait ça non plus)

ThomasNicoullaud: c'est plutot une bonne nouvelle, tu vas pouvoir gagner des 10aine de place dans le multi en ajoutant 10 chars a ton code YannT :D

Kirbiby: mais tu as quoi exactement

NicolasH_42: le challenge sera dispo en puzzle plus tard ?

Kirbiby: tu n'as pas score(n) = score(n-1) + current*decay ?

YannT: ben non justement

YannT: j'ai score(n) = current*decay

Kirbiby: ah okay

YannT: c'est p'tet bien ça que j'ai raté au final :/

Kirbiby: j'avaias cur que tu avais dit plus tot que ton score actuel prenait en compte celui d'avant

YannT: il prend en compte ce qui a été BREW avant dans current oui

YannT: mais il lui applique le decay de la depth où il eval, c'est ça qui doit pas etre bon

Kirbiby: aaaaaaaaah okay

Kirbiby: ah oui c'est caca

YannT: Magus ThomasNicoullaud donc dans l'eval de depth N, vous comptez que le delta score du tour + score parent, ou score complet + score parent?

ThomasNicoullaud: delta pour moi

ThomasNicoullaud: j'utilise jamais le score complet

Magus: score complet + score parent

ThomasNicoullaud: score complet ? oO

Magus: mon eval est très bidon

Magus: result += me.score * COEF_SCORE;

Magus: ouai je confirme

Magus: score compet

Magus: *complet

ThomasNicoullaud: omg

ThomasNicoullaud: c'est peut etre ca que j'ai raté :D

YannT: ah donc si score = 60 à depth-1 et score=70 à depth, dans l'eval ça donne 60 + 70*decay et non pas 60 + 10*decay ?

ThomasNicoullaud: t'as testé avec le delta Magus ? il y a une vrai diff ?

YannT: (moi ça donne 70*decay ce qui à priori est pas bon)

Magus: j'ai pas testé avec le juste le delta

Magus: mais oui dans mon cas, ça donne 60 + 70*decay

ThomasNicoullaud: moi ca fait 60 + 10*decay exactement

Magus: pourquoi 60 ?

Magus: si tu prends que le delta, ton tour 0 devrait être de 0, non ?

Magus: ça fait 0 + 10*decay

ThomasNicoullaud: ha oui ...

ThomasNicoullaud: bien vu

Magus: si tu me dis que t'as pris le score complet au tour 0 et le delta pour les tours d'après, tu m'étonnes que ça marche mal :D

ThomasNicoullaud: 0 + 10*decay ;)

YannT: oui je donnais un exemple entre par ex depth 3 et depth 4

Magus: bon bah je fini 13ème, je sais pas si ça me porter malheur

Magus: *ça va

jolindien: gg pb4

Saelyos: gg pb4

YannT: ThomasNicoullaud: t'as pas fait bcp mieux que moi, à mon avis la bonne version c'est celle de Magus :D

YannT: gg pb4!

Neumann: pb4 le stremon

Magus: YannT je sais pas si cumuler le decay ou cumuler le score change quoi que ce soit de toutes façons

YannT: je pense que ma version est clairement pas bonne retrospectivement

Magus: parce que cumuler le score, ça change juste que toutes tes évals vont prendre un flat de +score

Magus: et entre 60 + 70*decay ou 0 + 10*decay

Magus: c'est pareil

YannT: oui mais 70*decay c'est ce que j'ai fait moi

YannT: et ça je crois que c'est pas bon

Magus: bah c'est ce que j'ai moi

Magus: je l'ai dit au dessus, j'évalue le score en entier, pas le delta

YannT: non toi t'as le +60

Magus: ah tu rajoutes pas le score du parent à l'enfant, toi ?

YannT: non...

Magus: ah. Sans le score du parent mon IA était moins bonne

Magus: j'ai rajouté le score du parent plus tard

YannT: à mon avis c'est là que j'ai faux, ça doit me masquer de meilleures combinaisons à depth plus élevée

YannT: avec ma version il faut un delta suffisant pour "battre" le decay pour que ce soit meilleur

Kirbiby: toi t'as 60 + 70**dacay

Bon[]Crayon: AutomatonNN Ton debrief de con contest de contest de potions de contest.

ThomasNicoullaud: pb4 balance nous des infos un peu là

ThomasNicoullaud: :D

Kirbiby: "oui alors j'ai un beamsearch depth 9 avec 500 nodes"

Magus: huh, automatonNN est mort ?

Magus: mais Automaton2000 c'est ton job de réveiller ton frère quand ça crash !

Automaton2000: moi, je vais le faire en clojure

Magus: c'est quoi ce boulot

Bon[]Crayon: " moi, je vais le faire en clojure " la phrase de ce contest :joy:

Vry: Il est ou Blaise d'ailleurs ?

Vry: gg pb4 !

Vry: Agade était pas loin

CopperFr: ca y'est c'est comme capri ?

Julius2k17: les classements sont figés ?

RomanceDawn: test

CopperFr: le chat est figé ?

Simon21: gg à tous ceux qui sont passé en légende! (et aux autres aussi bien sur) j'espère que certains partageront leurs astuces! je suis resté bloqué à 100-150 gold depuis samedi

Julius2k17: c déjà très bien

Stilgart: Bon[]Crayon :D

Simon21: yep je suis arivé au max de ce que je pouvais, va falloir apprendre de nouvelles choses maintenant :-)

Stilgart: tiens, le rerun est fini ?

Stilgart: gg à tous du coup

Stilgart: Automaton2000: tortue top 5 !

CopperFr: rerun c'est fini

Stilgart: :'(

CopperFr: maintenant va falloir faire le puzzle de nicola :(

Stilgart: en effet...

Stilgart: j'ai 50xp facile à looter maintenant que tu le dis :D

Stilgart: 100 même \o/

CopperFr: j'aurais préféré un puzzle de Cousnouf

dbdr: https://i.snipboard.io/SIoarh.jpg

dbdr: Skrill a pas continué sa progression

Stilgart: j'aimerais bien avoir cette courbe là mo

Stilgart: i

Automaton2000: mais après il faut voir si tu as besoin de faire un truc du genre ?

Stilgart: Automaton2000: ça te fait laguer tant que ça quand une tortue fait une belle perf à un contest ? :D

Automaton2000: je suis un peu perdu

Magus: J'aurais du plus tester contre ichyo http://cgstats.magusgeek.com/app/fall-challenge-2020/Magus

CopperFr: on t'a pas sonné Automaton2000

Automaton2000: je sais plus quoi faire

Magus: ou alors c'est lui qui a testé contre moi

Stilgart: j'ai pas suivi la fin du contest, il y avait plusieurs méta ?

Stilgart: parce que si c'est juste un gus qui te pourrit, il a sans doute testé contre toi (et tu peux pas y faire grande chose)

Zanbez: Automaton2000 a le blues

dbdr: ya pas trop de meta il me semble

Automaton2000: c'est pour ça que j'ai pas envie

CopperFr: tout la musique elle vient de là

Zanbez: Resaisi toi Automaton2000. Du nerf

Automaton2000: il faut faire quoi ?

Stilgart: Automaton2000: passer du coté tortue de la force

Automaton2000: oui c'est vrai je suis content

Zanbez: Automaton2000: dire tortue

Automaton2000: ya pas de raison que ce soit en python

Stilgart: go go go Automaton2000

Automaton2000: oui, c'est la merde en fait

Stilgart: :D

Stilgart: :joy:

Zanbez: Automaton2000 le bot déprimé

Automaton2000: j'en suis pas encore à ce niveau

Stilgart: dbdr: même pas sur le nombre de learn au départ ?

Stilgart: j'avais des résultats assez différents entre 7 et 8, j'ai pas su choisir :(

dbdr: bof. on interagit très peu en fait

CopperFr: vivement le prochain challenge

ThomasNicoullaud: dixit le mec qui n'en fait jamais

CopperFr: en même temps les autres je connaissais pas le site

ThomasNicoullaud: tu regrettes de pas avoir fait celui la ? pourquoi dire "vivement" si tu n'as jamais expérimenté :D

CopperFr: non pas du tout

Stilgart: perso, même quand j'ai pas le temps, j'essaie de soumettre un bot quand même

dbdr: vivement le prochain que je le fasse pas

Stilgart: quand je ne le fais pas, je regrette

CopperFr: je ne regrettes rien

Stilgart: dbdr: tu es notre team à toi tout seul, déconne pas :fearful:

dbdr: je taquinais Copper

CopperFr: il va le faire le dbdr le prochain

dbdr: bien sur que je le ferai

CopperFr: alors que moi non :D

**Stilgart rassuré

dbdr: mais tous les rangs comptent

Skril: dbdr suivre la progression de cette courbe était trop de pression ;-)

Stilgart: CopperFr: dommage, tu aurais pu fini devant robo sur ce contest :)

dbdr: surtout avec 7k participants, #100-is c'est presque autant je pense

dbdr: Skril :D

leojean890: j'ai un peu préféré pacman et OOC à ce contest perso, chacun ses gouts après :P

CopperFr: je préférerais faire un challenge ou tu codes qq chose d'utilisable à la fin

CopperFr: (genre un jeu)

dbdr: ben tu as l'IA d'un jeu

dbdr: code le reste ensuite

Stilgart: on lui dit qu'on recode le moteur dans nos bots, ou on garde le secret pour nous ?

leojean890: au moins ça m'a fait sortir de ma zone de confort vu que j'ai pas l'habitude de tant de contraintes de perfs

Bon[]Crayon: tu codes un challenge

CopperFr: c'est juste l'ia d'un jeu pas très passionnant à mon avis

Mazelcop: gg pb4 et merci CG !

ThomasNicoullaud: pourtant il va bientot sortir sur PS5 le dernier contest

CopperFr: oui mais bon je vais pas en acheter une pour ca :D

Stilgart: tu devrais

leojean890: et je confirme, CG avaient bien diminué les ressources pour les multis car j'avais des timeouts que j'ai pas normalement pendant cette période sur tron et là c'est redevenu normal :P

dbdr: tiens jolie idée pour les learns Mazelcop!

leojean890: en même temps un contest avec 7k personnes, ils sont obligés de metrte à dispo tous leurs moyens ;P

Mazelcop: :)

Stilgart: forum ?

CopperFr: y'avait 17k d'inscrits ?

dbdr: turn 1 to 4: simulate the game with every spells (learned and learnable) but one. The lowest score obtained by the simulation would be used to identify the critical spells that should be taken early.

Stilgart: ha oui, futé ça

ThomasNicoullaud: ClosetAI : hen beam seach like Magus described with some differences: 0.9 patience, the goal is to brew 3 potions ASAP (unless fewer is enough to end).

dbdr: Mazelcop meme is le meilleure coute 3 tu la prends?

Stilgart: après, c'est pas clair de voir si claquer tes tiers0 pour choper ledit spell est vraiment rentable

dbdr: et si c'est plus que 3?

ThomasNicoullaud: A ouais j'ai peut etre raté ca aussi, moi j'avais parfois des solutions a 4 potions

Mazelcop: j'ai rajouté une pénalité en fonction du tomeindex

dbdr: magic number? :)

Mazelcop: un magic number parmis la petite dizaine que j'ai dans mon code oui :)

Stilgart: ThomasNicoullaud: moi aussi... j'ai essayé avec 2 et c'était pas bon :(

Stilgart: j'aurais peut-etre du tenter avec 3

Stilgart: en me disant qu'en cas de vol, il m'en resterait 2 derrière

dbdr: du coup tu fais qu'une potion Stilgart?

ThomasNicoullaud: comme toi Stilgart haha

Stilgart: non, j'ai enlevé le test et je fais whatever nb de potions qui donne le plus en score

dbdr: ah ok

Stilgart: (sans dépasser 6, évidemment)

dbdr: pareil

Stilgart: et avec mon score foireux

GeoBlack: Mazelcop : tu faisais combien de BFS et combien de nodes et quelle profondeur ?

Mazelcop: beamsearch, largeur 150, et profondeur max 35

GeoBlack: car moi rien que 1 j'avais des problèmes de Timeout. Franchement respect

GeoBlack: oui tu en faisais un aussi pour l'adversaire

Ylec: Bon vivement que ce challenge soit disponible :)

dbdr: 35 ça finit la partie :D

Mazelcop: j'en faisais 7 au maximum (un pour moi, un pour l'adversaire, un par sort apprenable)

dbdr: ce qui est surement bien

GeoBlack: franchement respect !

dbdr: enfin il manque les potions du coup

Stilgart: dbdr: le résumé, c'est que je dois un coder un beam search pour le multi, c'est ça ?

GeoBlack: j'en faisais un par potions

Mazelcop: ah oui j'ai pas précisé, je rajoute des potions au pif

Ylec: il faut que j'ameliore mes perfs, je faisais un bfs profondeur 3 seulement. sinon je timout :(

dbdr: Mazelcop ah ok, fixées au début

dbdr: ?

Mazelcop: je shuffle à chaque tour

dbdr: Stilgart tu peux surement faire légende avec, oui

Mazelcop: ça me donne j'ai une évaluation un peu variable sur les premiers tours du coup

GeoBlack: et en plus ce n'était pas un bfs que je faisais mais un MC car mon code prenait trop de temps

Stilgart: dbdr: je pensais le faire en "bfs"

dbdr: j'ai une largeur de 3000 (mais un seul beam)

Stilgart: maintenant je peux le dire, c'était pas un bfs parce que j'ai fusionné rest et cast

Stilgart: donc parfois ça faisait depth+2

GeoBlack: stilgart moi aussi en plus !

ThomasNicoullaud: ca veut dire quoi largeur 3000

ThomasNicoullaud: 3000 enfant par node ?

Stilgart: du coup, c'était plus un ordre bfs, mais ça changeait pas grand chose

dbdr: non, garder les 3000 meilleurs

dbdr: entre chaque depth

ThomasNicoullaud: 3000 meilleurs par depth ?

ThomasNicoullaud: ok ty

YannT: je crois que quand le jeu sort en multiplayer, juste en fixant la cumulativité dans mon eval je passe légende... reageant, une ligne de code qui fait la diff 😬

darkhorse64: +1

ThomasNicoullaud: en faite c'est un BFS avec une condition en plus dbdr ?

Stilgart: YannT: j'ai peur de passer en enlevant un commentaire et en changeant le == 2 par == 3

dbdr: c'est equivalent à un BFS si le width est infini

Stilgart: (là pour le coup, ça me ferait mal)

YannT: c'est un BFS sauf qu'à chaque depth, tu gardes que les N meilleurs à chaque depth

Zorg1: bien le rerun est terminé \o/

dbdr: Zorg1 débarque :D

Stilgart: Zorg1: merci

Zorg1: bah j'ai un travail aussi mine de rien ^^

CopperFr: on va enfin pouvoir passer à autre chose

Stilgart: je me sans moins seul à débarquer après la guerre

dbdr: pfff

Stilgart: sens*

YannT: par contre, je me demande comme t'implémentes ça de façon performante, parce que stocker les nodes de chaque depth dans une liste puis les sorter, ça doit être bien couteux

Zorg1: dbdr : oui je sais c'est petit comme excuse

YannT: (liste ou autre hein, mais le sort + cut doit couter pas mal)

dbdr: cut c'est gratuit

dbdr: beam et next, et tu swap

ThomasNicoullaud: ca sert a quoi d'aller a des profondeur +35 sans faire simuler l'adversaire a chaque depth ?

dbdr: le sort coute, mais ça vaut le coup

Zorg1: pour un gars qui s'est fait poussé en légende je finis pas trop mal :p

ThomasNicoullaud: bon visiblement a faire 4eme :D

darkhorse64: "le sort coûte"

ThomasNicoullaud: mais je comprends pas pourquoi

dbdr: çá évite de traverse plein de chemins moisis

YannT: mais comment tu gère le fait qu'un branche "pourrie" peut donner un BREW au prochain tour?

YannT: tu risques de la cut dans ton beam non?

R4N4R4M4: La prochaine fois, ça serait possible de mettre les stratégies dans le forum avant le début du challenge ? :D

dbdr: si elle donne un brew son inventaire est bon

YannT: sauf si t'as une notion de "distance" à la potion dans le scoring du beam, mais ça me semble casse gueule

dbdr: faut un minimum d'eval

dbdr: j'ai pas de distance, mais au moins ya des items

YannT: ah ok je vois, le score des items est suffisant pour que la branche tienne dans le beam

Stilgart: ThomasNicoullaud: dans ma vision, ça te permet de voir quelle action te propose le meilleur futur

dbdr: un inventaire qui a juste juste pour une potion de toutes façons c'est mauvais

dbdr: sauf pour la derniere

R4N4R4M4: GG Zorg1

Zorg1: merci R4N4R4M4

ThomasNicoullaud: Stilgart non mais a depth 35 ton futur il existe jamais si tu prends pas en compte les coups de l'adversaire

dbdr: ça doit qd meme aider à scorer les learns

ThomasNicoullaud: personne n'a tenté de mixmax d'ailleurs ?

Stilgart: ThomasNicoullaud: le problème est de mesurer la flexibilité de ton action

YannT: je sais meme pas si je vais faire le test de fixer l'eval en mettant le cumulatif sur le multi, c'est une ligne mais ça risque de me faire rager si je passe légende cash :D

dbdr: reste gold alors YannT ;)

Stilgart: en gros, un action qui t'amène à finir la game tour 35, elle est sans doute plus flexible

Stilgart: et donc elle resistera mieux à ce que va faire l'autre

Stilgart: et puis comme dit tout à l'heure, si tu vises gros et que l'adversaire te pourrit un peu, c'est pas si grave, tu fais quand même l'autre moitié du plan

ThomasNicoullaud: YannT tu as lu le PM de closetAI ?

ThomasNicoullaud: parce que t'as probablement raté une autre quickwin comme moi :D

Stilgart: Mazelcop: ça marche si bien que ça ta prédiction de l'adversaire ?

Stilgart: (la mienne était à coté de la plaque la majorité du temps)

leojean890: bon va falloir passer le multi en gold mtn en ce qui me concerne xD j'ai rodé entre 40eme et 100eme silver pendant 24h :s

Traquila: il ouvre quand le multi ?

leojean890: (et j'ai rien pushé depuis 36h btw)

leojean890: j'ai benché des trucs inaboutis

CopperFr: 36h ???

leojean890: beamsearch

Mazelcop: Stilgart bof, ça marchait à 2-3 coups de profondeur, après c'était dans les choux

leojean890: bah ouais j'ai rien pushé depuis dimanche 3h05

leojean890: beam search foireux pour le moment => still silver

Stilgart: Mazelcop: ça me rassure un peu (mais moi meme à 2 coups c'était dans les choux)

Stilgart: en tout cas, gg

Mazelcop: thx :)

GeoBlack: pruner un node cela veut dire quoi ?

CopperFr: tu as préféré aller te coucher ?

Zorg1: prune=elaguer

GeoBlack: =cut

GeoBlack: ok merci

Stilgart: dixit le mec qui s'est pas levé

Zorg1: ah la méta c'était le BeamSearch finalement ?

dwarfie: prune = tres bon alcool de fruit pour moi :yum:

Stilgart: Zorg1: ça parait être le plus naturel pour inclure l'adversaire

Zorg1: ah ok

Stilgart: partant d'un bfs

CopperFr: les prunes compte pas pour des prunes ?

Zorg1: bon je vais rédiger en PM dans mon anglais à moi

Zorg1: *un PM

Vry: Moi je laisse Bob faire mon PM ;)

dwarfie: iou aveu e vérri goude ingliche

788361: de ?

788361: quoi ?

CopperFr: je suis dans la taverne de Bob

788361: non

Bob: laissez-moi me rendormir

dwarfie: dormir ... c'est quoi ca ?

Stilgart: bonne nuit Bob

Stilgart: dwarfie: c'est le truc qui tu fais après les contests

dwarfie: si seulement .... :(

Simon21: c'est quoi un PM?

dwarfie: post mortem

dbdr: vu qu'on est tous morts

CopperFr: moi ca va :D

Zorg1: on s'occupe de ton cas tkt :p

CopperFr: je suis sympa j'ai pas utilisé de resources serveur

Vry: Moi j'ai un peu les yeux qui piquent et pas motivé pour bosser non plus ...

Vry: ... mais j'ai YT à portée de main

BlaiseEbuth: Coment ça mon bot clojure est pas legend ! :rage:

R4N4R4M4: T'as bien bossé Vry

R4N4R4M4: Hein ? BlaiseEbuth ? Ton bot clojure n'est pas Legend ???

BlaiseEbuth: C'est honteux !

R4N4R4M4: Ah oui c'est vrai c'est pas fini faut encore faire le PM...

R4N4R4M4: Fais-nous un joli PM BlaiseEbuth et ton clojure sera pardonné :D

BlaiseEbuth: C'est pas mon clojure qui a besoin de pardon...

R4N4R4M4: De toute façon, le PM le plus long de toute l'histoire de CG, ça sera le mien :D

R4N4R4M4: 32 heures de vidéo jour par jour du J1 au J12 :D

R4N4R4M4: On te pardonne BlaiseEbuth

Stilgart: le graphique de pb4 il dit que le classement est random, ou j'ai mal compris ?

R4N4R4M4: quel graphique ?

Stilgart: https://www.codingame.com/forum/t/fall-challenge-2020-feedbacks-strategies/187846/28

BlaiseEbuth: C'est pas moi non plus qui ait besoin de pardon R4...

Stilgart: celui sur la différence

R4N4R4M4: Il manque les J8 J9 J10 J11 mais j'ai mis en ligne le J12 :D https://youtu.be/eURQUJKVKC4

pb4: Pas exactement Stilgart

pb4: Pour ceux qui sont au milieu de ranking, votre rang bouge beaucopu pendant le calcul

pb4: Vous pouvez donc voir plein d'adversaires différents

Stilgart: pb4: mon interprétation c'est que tout le monde aurait pu être 5 places plus haut ou plus bas

pb4: Typiquement, siman au milieu a joué contre 60 personnes

Stilgart: mais peut-être que j'interprète très mal

Stilgart: en tout cas, merci pour ces graphiques, je pense qu'on peut en tirer des choses intéressantes

pb4: 1000 games distribués sur 60 personnes, ça fait 16 games contre une seule personne

pb4: Sur 16 parties il est très peu probable d'observer exactement le winrate réel

pb4: Je pense que c'est la raison pour laquelle c'est très coloré en milieu de ranking dans le milieu de classement

Stilgart: R4N4R4M4: grâce à toi, j'ai pu voir Automaton2000 qui dit faire le contest en clojure :D

Automaton2000: je crois que ce que j'avais compris

pb4: Pour répondre un peu différemment à la question que tu te poses, je verrais bien les choses de la manière suivante :

pb4: 1000 games par joueur, en imaginant qu'il a un winrate de 50% contre ses adversaires

pb4: Ca donne un intervalle de confiance de 1.95*sqrt(0.5*0.5/1000)

pb4: 3%

pb4: 3% de winrate

Stilgart: c'est vrai que c'est beaucoup

pb4: 3% de winrate, c'est 10 ELO

Stilgart: du coup, c'est sans doute très coloré là où le score est serré, en fait

pb4: donc si tu prends les valeurs "raw" en bas de mon post, tu calcules ton ELO +- 10 et ça te dit dans quel gamme de rang tu peux te trouver

Stilgart: (enfin, ça serait logique)

pb4: omu par exemple, 450 elo, il pourrait gagner ou perdre 3 places dans cette gamme de 10 ELO

sanpas83: bonjour vous savez quand est ce qu'il passe en combats de bots le challenge ? merci

pb4: Mazelcop "limited my search to depth 35"

pb4: J'aime bien la notion de "limited" quand une partie fait 34 tours en moyenne :D

Stilgart: c'est le temps qu'il faut pour finir une partie ça

Mazelcop: :D

Stilgart: Mazelcop: c'est pas pour ça que tu avais choisi 35 ?

Stilgart: j'avais vu ça comme un garde fou

Mazelcop: oui, et en fait j'utilise même pas les données au delà de 30

darkhorse64: A ce niveau, il faut rajouter des recettes et des sorts, non ?

dbdr: Stilgart, je viens de découvrir le chan école :)

Stilgart: héhé

darkhorse64: Dès qu'on dépasse 2-3 potions, les résultats de la simu ne doivent plus valoir grand-chose

Stilgart: il y a encore mon message ?

dbdr: oui

Kirbiby: j'avais tenté de compter pour chaque spell combien de fois il apparaissait dans le plus court chemin de chaque inventaire pour chaque potion, pour donner un score à chaque spell pour le learn, mais c'était pourri en fait

Mazelcop: darkhorse64, la simu est assez précise pour déterminer quand un joueur fait 6 potions, c'est là où la profondeur a un avantage

Stilgart: dbdr: ok, bon à savoir

dbdr: après il a que 3 jours, je sais pas quelle est la permanence

Kirbiby: mazelcop, quand tu dis "Remove the potions which were taken by the opponent at the depth before, considering the most profitable path for the opponent," , ça marche comment si l'opponent peut faire toutes les potions avant toi ?

Mazelcop: ben je perds

Kirbiby: non mais si c'est avant la 6eme

Mazelcop: mais pour enlever les potions je ne considère que le chemin le plus profitable jusqu'à une certaine profondeur

Kirbiby: si chacun en a 4, et il peut faire toutes les 5eme avant ta 5eme, tu fais quoi

darkhorse64: Ton résultat montre que tu as probablement raison mais ça me surprend que calculer si loin un enchainement qui n'a aucune chance de se produire puisse donner la bonne direction. Avec MCTS, on fait la même chose mais on en fait beaucoup

Stilgart: Kirbiby: c'est pas possible qu'il fasse TOUT avant toi sur un chemin donné

Mazelcop: il peut faire toutes les 5è, mais un ordre sera plus profitable que l'autre

Kirbiby: okay je comprenais pas le s à "potions"

Kirbiby: si son sur chemin max, il en fait 2 tu jartes ces 2 là

Kirbiby: dac

Mazelcop: yep

Mazelcop: et je les jartes au moment où il les fait, pas avant

Kirbiby: hmm, au cas où en fait il dévie ?

Mazelcop: dans ce cas il prend un chemin moins profitable, donc c'est bénéfique

Kirbiby: yep okay

Kirbiby: donc ta search à chaque fois que tu déplies un node, tu enlèves la potion avant l'eval du node si besoin ?

Kirbiby: ça rajoute pas trop de if ?

Default avatar.png Brandon: vivement qu'il soit dispo en combat de bots ... :-(

CopperFr: vivement dimanche

Mazelcop: c'est ça. ça rajoute un peu de if, mais le gros du beamsearch c'est de trier à chaque noeud, donc il y a moins besoin de se creuser la tête à tout optimiser

Kirbiby: j'ai tjrs la flemme de faire ça

Kirbiby: un jour je me forcerai

Kirbiby: et tu as un tableau de son score pour chaque profondeur ?

Kirbiby: comment tu check "Do not make 6 potions if the opponent can get a better in-game score." ?

dbdr: tu calcules le max score opponent tour par tout

dbdr: *tour

Default avatar.png JBM: comment es ton re

Kirbiby: oui mais de quelle façon dbdr

dbdr: en faisant la recherches pour l'opposant d'abord

Kirbiby: c'est que je disais

Magus: il est tellement en PLS le forum

Kirbiby: et après tu mets ça dans un oppScore[35] ?

dbdr: moi oui

Kirbiby: okay c'est tout ce que je me demandais :)

Kirbiby: ça rajoute encore des if

dbdr: un if par brew

Vry: Et pour les potions tu peux faire sans if, juste avec un & si tu as brewed sur 5 bits :sunglasses:

dbdr: pas bete vry

Kirbiby: de quoi tu parles Vry

Vry: J'avais testé cette approche un peu plus tôt dans le jeu suite au stream de egaetan mais bof à l'époque

Kirbiby: il faut bien un if (myScore >= hisScore) qquepart

Vry: pour le score oui

Default avatar.png JBM: ton eval?

Vry: Mais pas pour les potions

Kirbiby: je parle pas de stocker le state

Stilgart: JBM: dans rod cutting pb, on a le droit de faire des bouts hors marché ?

Default avatar.png JBM: non

Default avatar.png JBM: tu me demandes parce que j'ai demandé?

OldDadou: Comment ca un brewed sur 5bits ?

Default avatar.png JBM: mais en l'occurence je crois que tous les tests ont un bout avec 1, donc au final ça change rien

Stilgart: JBM: ça fait 100% :(

Default avatar.png JBM: et c'est pas grave

Stilgart: je te demande parce que tu es le 1er à avoir validé :)

Stilgart: je suis parti du principe que bout de taille pas dans le marché => 0

Default avatar.png JBM: donc potentiellement c'était pas le meme pb du tout O:-)

Stilgart: mais on doit pouvoir trouver un jeu de test qui met mon code en défaut

Stilgart: JBM: c'est possible aussi

Default avatar.png JBM: mais là c'est juste pour pinailler

Stilgart: je ne trouve pas

Default avatar.png JBM: ça change un == en <= dans ton acceptation de solution

Stilgart: enfin, je serai content que mon code ne passe pas là

Default avatar.png JBM: et statement est un peu vague, mais pas d'une manière incompatible avec les inputs, moi ça me va

Stilgart: il faut que je construise un exemple pertinent

Stilgart: 5 --> 1€ , 9 -> 1000€ , longueur 10

Stilgart: suivant que tu acceptes le rebus de 1 ou pas, c'est pas le même optimal

ThomasNicoullaud: question pour le top : Vous essayez de forcer le gain ou la nulle ?

Default avatar.png JBM: yep

Stilgart: mon code actuel il répond 1000, mais peut-être que la réponse attendue était 2

Default avatar.png JBM: si ça met le statement en défaut, tu peux aller rajouter le commentaire au bon endroit

Default avatar.png JBM: mais je me souviens assez clairement avoir posé la question

Stilgart: ok

Default avatar.png JBM: ThomasNicoullaud: y'a pas besoin d'être dans le top pour ©a

Mazelcop: ThomasNicoullod nulle si l'adversaire peut faire 6 potions avant, gain sinon

OldDadou: Le jeu va être disponible prochainement ?

OldDadou: vous savez ?

ThomasNicoullaud: ok ty Mazelcop

Vry: OldDadou : 5 potions = 5 bits, au début les 5 potions sont disponible donc je pars avec 00000b, lors de ma recherche si je prépare la deuxième je passe à 00010b ...

Vry: ... du coup je peux très facilement utiliser un deuxième masque pour appliquer un filtre "Mazelcop" sur les potions en fonction de la profondeur

OldDadou: merci

Traquila: le site ne fonctionne plus ?

CopperFr: quel site ?

Traquila: CG, impossible de lancer aucun puzzle

Simon21: les serveurs ont chauffé pendant 11 jours, ils peuvent bien se reposer quelques heures ;-)

Vry: Zorg1, tu n'était pas le seul à avoir 5 entiers sur un seul

CopperFr: Effectivement ca marche plus :(

Kirbiby: hey Vry

Kirbiby: dans ton state de 3 octets, comment tu gardes la trace du chemin en fait ?

Default avatar.png JBM: la trace mérite-t-elle d'être considérée "état"?

Kirbiby: tu as un super state 15 coups plus tard, c'est bien, mais comment tu sais quel coup jouer maintenant du coup

Kirbiby: j'ai toujours mis mes chemins dans le state, et je me demande comment améliorer

BlaiseEbuth: Y'a pas besoin que ce soit dans le state

Stilgart: en ne mettant pas les chemins dans le state

Stilgart: tu as juste besoin du state précédent et de l'action jouée, déjà

Stilgart: et ensuite, ça tu peux le stocker ailleurs que dans le state

Zorg1: vry : oui Pb4 avait le même

Stilgart: Traquila: j'ai fais 100xp tout à l'heure (deux puzzles solo)

Kirbiby: mais le state précédent est détruit à la depth d'après

Kirbiby: j'ai dit chemin mais je stock que le 1er coup

Kirbiby: Du coup vous le mettez où vous ?

Stilgart: bah non, pourquoi il serait détruit à la depth d'après ?

Stilgart: en vrai, ça coute pas tant que ça de garder tous les noeuds

Kirbiby: parce que je garde pas en mémoire 100000 noeuds

Stilgart: bah tu devrais :)

PhOeNyX: Si j'ai 16 bits sur un entier pour l'inventaire, avec par exemple inv = 0001 0010 0011 0100 (1 type 3 à gauche, 4 type 0 à droite) Si je veux ajouter 0001, à un type "n" quelconque, c'est quoi l'opération à réaliser ?

Kirbiby: héhé

Stilgart: j'en ai 2097152 moi

Stilgart: (2^21)

Stilgart: et je suis bien loin de les user tous

BlaiseEbuth: un << et un |

Kirbiby: en pseudo code, je déplie depth d, je remplis d+1 avec les enfants, et je swappe d+1 avec d quand d est vide

Stilgart: non, ça ajoute pas |

Stilgart: PhOeNyX: précalcul tour 1

BlaiseEbuth: ouai +

Kirbiby: donc je garde pas les noeuds

Zorg1: ah ok eZ aussi

Stilgart: BlaiseEbuth: qui pourrait ne pas marcher non plus :)

Stilgart: image 0000 0000 0001 0000 où tu enlèves un tier3 :)

Stilgart: Kirbiby: tu pourrais faire d piles et juste parcourir plutôt que depiler

BlaiseEbuth: Quoi enlève ? il parle d'ajouter

Stilgart: le problème serait essentiellement le meme

Kirbiby: oui mais c'est pas beau :)

Stilgart: pas moins que de swap deux piles

b0n5a1: o/

BlaiseEbuth: Bah mis à part l'overflow si on arrive à 1111 je vois pas

Stilgart: gg b0n5a1

b0n5a1: ?

Kirbiby: c'est ce que je me copie colle entre chaque contest :p

Stilgart: BlaiseEbuth: tu pourrais

b0n5a1: gg quoi Stilgart ?

Stilgart: quand tu as 8 tiers 0 et que tu en lootes 5 via un learn

Kirbiby: donc ton state il a un State* prev ?

Mator: Ah tiens, je vois apparaitre le Fall Challenge dans les combats de bots.....

Mator: Mais 404 en cliquant dessus...

Stilgart: b0n5a1: je préfère pas répondre :(

BlaiseEbuth: Bah ça overflow Stilgart

Stilgart: (je pensais que tu étais passé en gold)

PhOeNyX: ((inv >> (4 * n) + 0001) << (4 * n)) & inv ?

b0n5a1: ha non j'ai plus rien fait depuis 2 jours qqchose comme ça

PhOeNyX: | inv

Stilgart: PhOeNyX: un truc du genre :(

Stilgart: tiens, au moins 1 disqualifié

Stilgart: (en légende)

BlaiseEbuth: Ah ? Ki ? Pourkwa ?

Stilgart: ça doit être emil

BlaiseEbuth: Abawi

Zorg1: ah l'anonyme à -15

BlaiseEbuth: C'était le smurf de qui ?

Zorg1: emil ? j'aurais dit recurse mais il paraît que non

Zorg1: mais c'est pas le mien ça c'est sûr ^^

CopperFr: un disqualifié en légende ???

Default avatar.png JBM: en rust qui perfe autant ça sent pas un habitué d'ici

Stilgart: je te rassure CopperFr, c'est pas toi

Default avatar.png JBM: à part éventuellement westicles en troll

chibi: bonjour

Bon[]Crayon: salut

chibi: j'ai une question un peu bête peut être

CopperFr: Ben je sais bien je suis pas un tricheur

Stilgart: on risque d'avoir une réponse un peu bête du coup :)

chibi: en légende, quasiment 60 / 80 des personnes sont en C++

Default avatar.png JBM: ouais c'est biaisé hein

CopperFr: oui c'est trop

Bon[]Crayon: c++ fort

chibi: est ce que parce que les personnes qui choisissent le C++ font les choses mieux

Default avatar.png JBM: clairemente CG les favorise

chibi: ou pcq c'est plus rapide ?

Default avatar.png JBM: c'est honteux

Default avatar.png JBM: les preuves sont là, au vu de tous!

Haashi: chibi les deux

CopperFr: je pense que c'est un peu les deux

Stilgart: chibi: les deux

**Stilgart too slow

Haashi: c'est plus rapide, donc c'est favorisé parl es gens qui font les choses mieux

Kirbiby: y'a un documentaire sur ce favoritisme chez CG, ça s'appelle Hold-up

Haashi: ^

Stilgart: C++ c'est sans doute le plus adapté, donc les gens font du C++, donc C++ c'est plus adapté, etc.

CopperFr: disqualifié pour quel motif ?

BlaiseEbuth: à carreaux

Stilgart: +1

Default avatar.png JBM: il a plus une tête de "self-deleted account" que de disqualifié, quand même

Stilgart: au fait, elle est classé la team turtle au final ?

Stilgart: JBM: c'est ce que je pense aussi

BlaiseEbuth: Bah non, c'est pas une vraie entreprise.

Zorg1: bah on est toujours "invalide"

Stilgart: si ça se trouve, il a demandé à CG de se faire déclasser

Zorg1: et j'ai la flemme de faire les calculs à la main

Default avatar.png JBM: si c'est ça qu'il a fait, il a pas été convainquant

CopperFr: fallait monter une entreprise

Stilgart: [CG]Thibaud: ça couterait cher de rajouter un 4e leaderboard ?

chibi: et au contraire de C++, quels sont les langages qui sont moins performants sur la plate-forme, disons parmi les plus langages utilisés (dsl pour les adeptes du D ! )

Stilgart: pour les teams improvisées ?

BlaiseEbuth: Stilgart c'est "en projet"

Stilgart: ha, cool :)

b0n5a1: lol

Stilgart: chibi: le Haskell

BlaiseEbuth: java et python chibi

**Stilgart est un déserteur :(

CopperFr: le Haskell y a qu'un seul utilisateur non ?

umarbahadoor: je savais pas, mais python est aussi tres lent ici

BlaiseEbuth: Pis il a dit "parmis les plus utilisés"

b0n5a1: 2 voire 3 CopperFr

Stilgart: ça dépend, tu me considères comme un smurf de JBM ou pas ?

Zorg1: moi je suis resté sur mon langage de niche

BlaiseEbuth: Y'a pas de ici qui tienne umarbahadoor

CopperFr: le pascal y'avait pas grand monde non plus

chibi: @Stilgart : pourtant, ce sont des langages bien représentés en légende, quand même

Stilgart: Haskell d'habitude ça va

Stilgart: mais là, JBM et moi on a craqué

umarbahadoor: BlaiseEbuth, oui, je suis daccord, j'utilise pas python, mais j'ai essayer pour ce challenge, mauvaise idee

Stilgart: et dabino a oublié de se lever ce matin

BlaiseEbuth: ^^

Bon[]Crayon: Haskell c'était pas la bonne potion.

umarbahadoor: mon version de php etais mieux :S

Default avatar.png JBM: Stilgart: euh, c'est que toi là

umarbahadoor: je viens de tester un loop de 10000000 avec python: 2100ms

umarbahadoor: le mem avec rust: 172ns

Haashi: je vais calculer la team turtle

Haashi: quand j'ai calculé hier soir on était 4eme

Stilgart: JBM: j'aurais juré te voir en C pourtant

chibi: team turtle ?

Default avatar.png JBM: ah oui pardon je laggais il me manquait une ligne

BlaiseEbuth: Pas grace à mon code clojure Haashi...

MenoIy: can you tell me when the final results will be out for the fall 2020 ?

Stilgart: chibi: l'équipe qu'on veut créer pour les habitués de ce chat

BlaiseEbuth: Toujours en français MenoIy

b0n5a1: pas grâce à moi non plus BlaiseEbuth ^^

b0n5a1: (c'est les 3 premiers non ?)

BlaiseEbuth: ouai

Stilgart: JBM: c'est Sakisan qui va être content du coup

MenoIy: :( desole j'oublie tjrs

Haashi: ah mais ils ont carrément supprimer l'entreprise

Stilgart: gg à lui pour la gold

ThomasNicoullaud: MenoIy now. Check here https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global

Haashi: donc je sais plus qui participait

MenoIy: <3

Zorg1: bah toi, Vry, b0n5a1, BlaiseEbuth, moi déjà

b0n5a1: Haashi BlaiseEbuth b0n5a1 Zorg1 leojan Vry et ...j'ai un trou de mémoire là

Haashi: et leojean

Stilgart: j'aurais rejoins si c'était une catégorie team libre

Haashi: tfacon c'st les 5 meilleurs

Zorg1: leojean890 UmeHeart s Thyl & Alshock

Stilgart: mais ma vraie team entreprise avait besoin de moi là

b0n5a1: exact Zorg1

ThomasNicoullaud: FC2020 est déjà en multi ? oO

ThomasNicoullaud: https://www.codingame.com/multiplayer/bot-programming

b0n5a1: j'avoue j'en ai eu un peu mare y'a 2 jours ^^

PhOeNyX: int inv = 0001 0010 0011 0100 int res = inv & (1111 1111 1111 1111 >> (16 - 4 * n)) inv = (((inv >> (4 * n)) + 0001) << (4 * n)) + res;

Zorg1: PhOeNyX qui balance du binaire sur le chat sans gêne

ThomasNicoullaud: https://www.codingame.com/ide/puzzle/fall-challenge-2020

ThomasNicoullaud: cool :)

Mator: Rapide.....

Bon[]Crayon: :thumbsup_tone2:

PhOeNyX: Zorg1 c'est bon ou pas ? ^^'

Stilgart: PhOeNyX: c'est quoi l'opération que tu veux au fait ?

Zorg1: chaipas j'ai fait comme eZ 5 bits par elements d'inventaire

Stilgart: (c'est pas juste +1 sur le dernier tier, j'imagine)

PhOeNyX: Là le calcul que je fais c'est ajouter +1 au tier n

Stilgart: sinon, 5 bits par éléments c'est mieux en effet

Stilgart: oui, mais le code général que tu veux c'est quoi ?

PhOeNyX: Beh la formule qui permet de mettre à jour un inventaire dont les informations seraient encodées sur un seul int

Stilgart: ok, donc tu autorises les retraits

PhOeNyX: Yep le +0001 c'était un exemple

Stilgart: et quid du cas d'une mise à jour impossible ?

PhOeNyX: Il faudrait probablement que je le détermine en amont

Default avatar.png JBM: hey, je suis quand meme passe gold avec mon haskell

PhOeNyX: On part du principe que j'ai déjà fait le check et que l'opération est valide

Default avatar.png JBM: (apres sakisan je crois ceci dit)

Default avatar.png JBM: (mais rankant mieux que lui au moment du passage)

Stilgart: dans ce cas, +

chibi: question con encore : je voulais afficher plus grand ce chat, sur discord et pas sur l'ihm coding game

Haashi: 33216 points

chibi: mais je ne trouve pas le thread

Haashi: on finit 7eme

Zorg1: nice

Stilgart: mais ça gère mal les négatifs :/

BlaiseEbuth: Complément à 2

BlaiseEbuth: chibi : normal c'est pas discord le chat

Stilgart: BlaiseEbuth: ça fait une retenue ça

chibi: ok, merci :-)

Default avatar.png JBM: et sauf erreur mon c fait rigoureusement la meme chose que le hs

CopperFr: j'aime bien le complément a2

Stilgart: faudrait plutôt biaiser, comme l'encodage des exposants dans les flottants

BlaiseEbuth: Stilgart : C'est grave ? Si on checke la validité avant ?

Stilgart: comment tu fais -1 du tier 2 ?

Stilgart: 0000 0000 1111 0000 ça va pas le faire

BlaiseEbuth: Pas sur du 16 bits c'est sur

Stilgart: (avec un 5e but c'est plus facile)

BlaiseEbuth: Mais sur du 32

Stilgart: PhOeNyX le veut sur 16, si j'ai bien compris

panoramix: ce contest était trop facile pour moi

BlaiseEbuth: Il me semble avoir vu passer un truc pour le gerer sur 16. M'fin j'sais,plus

CopperFr: oui j'imagine

CopperFr: sur 16 bits ?

BlaiseEbuth: ouai

CopperFr: après je suis même pas sur que vaille le coup avec des processeurs 64 bits

Stilgart: BlaiseEbuth: en deux temps ça le fait en fait

Default avatar.png JBM: le forum me jette, c'est que moi?

Stilgart: + pour les parties positives, puis - pour les négatives

BlaiseEbuth: Mais ça rajoute une opération du coup.

Stilgart: 429 Too Many Requests

dbdr: j'ai failli etre méchant avec JBM et puis non

Stilgart: BlaiseEbuth: c'est toujours mieux que le blob infame de PhOeNyX de tout à l'heure

leojean890: tiens le multi est sorti

BlaiseEbuth: :grin:

PhOeNyX: Quel blob

Simon21: yep mais il part en 404

Simon21: (le multi)

Default avatar.png JBM: dbdr: "c'est pas que le forum en tout cas" ? :D

CopperFr: Quel Bob ?

Haashi: hate de récupérer 10000 cg points demain

dbdr: "oui, le forum t'aime pas"

Stilgart: Phoenyx: cf 3:35

dbdr: c'est moins méchant

Haashi: bientot guru

Haashi: \o/

Haashi: c'est mon objectif du mois de décembre

Vry: Kirbiby : BB_NODE _gt_bb_node[4194304] = {};

:)

dbdr: Haashi: tu as fini 1er?

PhOeNyX: Beh il est très bien ce calcul. :innocent:

Stilgart: Haashi: tu n'as fait que 2 contests ?

Palmipedus: hey pour le there is no spoon - hard, vous utilisez quoi comme state? je pensais un int[] pour le count des node et un bitarray pour les links mais pour la validation ca me semble un peu complique

Haashi: oui

Stilgart: oulah

BlaiseEbuth: Faut que je me motive à faire des trucs aussi... Je vais finir par descendre trop bas

dbdr: 1er à son <= 3 contest, c'est beau!

dbdr: (ya le multi en plus)

Stilgart: Palmipedus: un tableau 2n x 2n de mémoire

Haashi: dbdr 1er ?

Stilgart: et je fais de la peinture dedans

dbdr: 10000 pts pour le 1er

Haashi: non mais j'ai calculé

Stilgart: mais tu as oublié le cap

Haashi: 7500 pour le contest et 3000 pour l'arene

Stilgart: *3* contests

dbdr: quel vénalité

Stilgart: tu vas perdre tes 3000 à OOC

dbdr: bon moi aussi j'ai regardé, dans les +1000 en contest

Palmipedus: Stilgart merci je vais voir comment je peux utiliser ca

leojean890: pareil en contests j'avais 2 contests récents et un qui vaut le minimum d'il y a lgtps où j'étais pas mal classé.. du coup FC va me faire grimper un peu même si je suis que 100e silver..

dbdr: vu que j'avais pas été top sur UTG

Haashi: mes 3000 de UTG

Haashi: oausi d'accord enfaite que +7000 :(

leojean890: (et faut que je passe gold dans le multi !!)

ThomasNicoullaud: Haashi mais tu vas perdre t'es point de UTG et prendre un decay sur OOC et SC2020

Stilgart: ha oui, c'est UTG ton mon bon, j'ai louché

ThomasNicoullaud: je fais -1000 en contest moi :'(

Haashi: ouais fin ca reste quand meme cool pour moi

dbdr: rip

BlaiseEbuth: Hop ! Pm posté.

dbdr: ton clojure?

mrBen: fun facts, comme le multi du contest garde nos calssement, et que je suis déjà en Gold, ça ne compte pas comme un Bronze dans ma quest map

BlaiseEbuth: Ba oui, quoi d'autre

Stilgart: tiens, moi aussi je vais perdre mon UTG

dbdr: rapide à écrire le PM

BlaiseEbuth: C'ballot mrBen

leojean890: j'avais 6088 CP pour spring challenge et 7142 pour OOC et 864 pour there is no spoon.. clairement le dernier va sauter et je vais gagner des CP

leojean890: meme étant que 664/7012

dbdr: UTG yavait pas grand monde je crois

dbdr: ça compte toujours bcp

Stilgart: c'est pas qu'une question de monde

Stilgart: à DP il y avait personne et le mien va compter encore un moment

leojean890: mrBen bah ouais ils conservent les rank;)

dbdr: c'est parce que tu es un pro des puzzles Stilgart

leojean890: bah quand y'a peu de monde ça compte moins en moyenne quoi;) ça decay plus vite;)

Stilgart: et qu'il n'y avait pas beaucoup de monde

leojean890: vaut mieux être 100/6k que 100/2k

ThomasNicoullaud: Magus t'es là ?

Vry: Ce soir légende sur Fall Challenge !!! :)

leojean890: un gold ça m'irait déjà perso :P

Vry: En attendant c'est bientôt l'heure de la sortie hebdomadaire ...

leojean890: qqn a dit qu'il y a des erreurs avec le multi là?^^

Vry: Je suis sur la page ...

leojean890: Simon21 15H46 yep mais il part en 404

(le multi)

Vry: ... y'a trois compuing en Gold

ThomasNicoullaud: \o

mrBen: ah, moi j'ai relancé

ThomasNicoullaud: un run ca dur 10min

ThomasNicoullaud: ca fait plaisir :)

Simon21: ah ça y est j'y accède aussi

mrBen: ah bah ouais, mon run est fini en fait, c'est pas moi en computing

[CG]Thibaud: il me semble que Julien l'a mal config

leojean890: ah donc il l'a rétabli ?^^

leojean890: vu que les autres disent que c'est ok

[CG]Thibaud: ah oui c'est fix

[CG]Thibaud: cool

Vry: En tout cas Link est toujours aussi méchant ...

R4N4R4M4: Ha mais le multi est déjà ouvert ?!!!

R4N4R4M4: Trop fort CG :D

Vry: GG CG

ThomasNicoullaud: c'est moi ou personne ne parle de hash pour éviter les doublons dans les PM ?

CopperFr: oui mais y a plus de ps5 à gagner par contre

mrBen: effectivement, j'ai pas encore vu de mention de hash

Vry: Certains parlent de ne pas traiter les doublons ... mais sans donner plus de détails.

Ylec: deja dispo en multi ???!

Ylec: je vais pouvoir tenter de passer gold !

CopperFr: oui incroyable

Ylec: trop rapide CG !

CopperFr: j'en déduis que c'était pas le cas avant ???

Haashi: ThomasNicoullaud j'avoue que je soupconne mon hash d'etre foireux

YannT: bon j'ai ajouté viteuf le cumulatif du parent dans l'eval, ça a pas l'air d'être la solution magique, j'ai pas un winrate grandement amélioré sur le boss :)

YannT: ça veut dire que mon eval était pas complétement naze, ça console un peu

Vry: Haashi : c'est le danger du hash c'est pour ça que je retiré le mien ...

Vry: ... en plus avec un score decay il peut te couper la mauvaise branche le hash à moins d'avoir un truc intelligent qui garde le meilleur score dans la hash table

Haashi: Vry ouais j'ai vu ce que tu dis

Haashi: du coup pour ca j'ai "orienté" ma recherche

Haashi: en commencer par générer les moves de type BREW et LEARN avant de cast

Haashi: parce que des fois ils considéraient que CAST et LEARN était équivalent que LEARN et cast

Haashi: du coup il cast, et je me fais voler

Haashi: le sort que je voulais learn

YannT: j'ai jamais su dire si le hash était foireux ou pas mais j'ai un gros doute quand même

YannT: parce qu'à nombre de states total visités, changer la fonction de hash change pas mal de nombre de states considérés comme uniques :D (pour 2 fonctions de hash prenant les mêmes inputs du state hein)

YannT: donc ça semble indiquer qu'il y a bien des collisions, mais dans quelle mesure et est-ce que c'était impactant, mystère

Default avatar.png Fabe59: Salut à tous!

ThomasNicoullaud: bon l'eval de magus ert dans les choux avec mon code

ThomasNicoullaud: l'inventaire prend trop le pas sur le score te je fais pas de potion

Magus: bah t'as pensé à rajouter un bonus pour les potions faites ?

Magus: en fait même sans ça, ton IA devrait essayer de faire les potions +1 et +3

ThomasNicoullaud: tu fais eval = parent->eval + score * decay ?

YannT: moi ça fait bien des potions et tout quand je rajoute le score du parent en plus

ThomasNicoullaud: ou eval = parent->score + score * decay

YannT: le premier

YannT: eval = parent.eval + eval*decay

Vry: Magus : le bonus qui est intégré dans le prix, tu le double au final ?

YannT: et pour moi ça semble revenir au même que juste

YannT: eval*decay

YannT: mais bon après y'a p'tet d'autres truc à adapter

YannT: je voulais juste voir si en une ligne ça change tout pour savoir jusqu'à quel point je devais me détester

Magus: ThomasNicoullaud: child.eval = parent.eval + game.eval() * patience;

YannT: là ça va c'est bon :D

ThomasNicoullaud: et bien

ThomasNicoullaud: donc je reviens a la discussion de ce matin

ThomasNicoullaud: si je prend juste le score add ca fonctionne pas du tout

Bob: c'est rigolo j'essaye de rajouter des learn et mon code s'arrete de generer des etats :D

YannT: moi ça fonctionne pareil :D

ThomasNicoullaud: le score de l'eval est trop important pour l'inventaire

Bob: generated 1 states in 0.115 ms :clap:

Vry: GG Bob

Default avatar.png JBM: tant que c'est le Bon state

CopperFr: United States

YannT: bon allez, je vous dis à Mars prochain, bisous :D

Bob: bonne hibernation

CopperFr: pourquoi Mars ?

b0n5a1: prochain contest CopperFr

CopperFr: je croyais que c'était Mai

Vry: Mai !!! YannT

ThomasNicoullaud: bon je test juste en remplaçont mon eval par celle de Magus. On va voir si c'est pas plutot tout le reste mon problème :joy:

CopperFr: bon allez je vous dis à Mai prochain, bisous :D

Default avatar.png JBM: si seulement

Default avatar.png JBM: ;p

CopperFr: :D

Magus: après l'efficacité de mon eval est peut être lié à d'autre chose. Mais je me souviens pas avoir mis d'autres astuces dans mon code que celles que j'ai mise sur le forum

OldDadou: aah, c'est pas ttrop tard pour essyer de monter de league ?

ThomasNicoullaud: bon bah c'est la loose :D

OldDadou: C'est juste of contest, c'est ca ?

ThomasNicoullaud: je vais plutot me concentrer sur transformer mon BFS en BeamSearch

CopperFr: tu peux toujours monter de league ?

leojean890: hehe OldDadou non moi je vais persévérer :P mon code se baladait entre 40 et 100 silver ça doit pas être trop loin..

dwarfie: OldDadou ... tu peut et tu devrais ... ca rapporte encore de CP et les XP

leojean890: juste des CP côté multi mais pas contest

dwarfie: leojean890 ... clairement , sur un concours de circonstance , ca passe ...

**dwarfie se demande encore comment ca a marché :D

OldDadou: C'est plustot par curiosité

leojean890: ouais gg encore:P je voyais que les mecs baissaient le boss et que t'allais passer^^

OldDadou: mon algo pue, faut que je comprenne pourquoi

leojean890: bah faut que je tune mieux mon beam..

leojean890: et mon éval..

leojean890: et encore des possibles improvements sur les perfs..

leojean890: ça fait bcp xD

OldDadou: Je plafonne a 8k noeuds, c'est ptète ca ...

dwarfie: OldDadou ... des fois , quand ca pue , la solution c'est de tout jeter dans les chiottes ... perso , c'est ce que j'ai fait samedi midi

dwarfie: tu precalcules ?

OldDadou: précalcule

OldDadou: non, je crois pas

OldDadou: Je fait rien de spécial au tour 0

leojean890: pareil entre 7 et 10k noeuds ;)

dwarfie: moi je faits le plus de truc possible au depart ... ca aide beaucoup de pas avoir a verifier 50000 fois que telle recette avec tel inventaire ca marche ou pas...

leojean890: parole de Zorg1, ça peut monter à 50k, donc c pas prêt xD

leojean890: (en go)

leojean890: mon tour premier programme go.. mais ma concl c'est que j'aime bien ce langage ;)

OldDadou: Mais je suis pas certain que les perfs soit mon vrais souci

dwarfie: leojean890 possible , j'en fait deja beaucoup et j'ai eu (enfin) l'idée qui devrait me doubler mes noeuds

OldDadou: L'heuristique de mon beam doit être pourrave

leojean890: dwarfie, quel genre d'idée ?:P

OldDadou: et j'ai pas modélisé ma jumelles

**dwarfie aura pas le temps de le coder avant un bon moment ... interet a noter ...

leojean890: t'as pas tout en bitset ?

dwarfie: j'ai rien en bitset ... tout en table de hash

leojean890: moi en vrai j'ai à moitié un bitset et à moitié encore des maps etc dans mon state.. donc normal que ça rame :P

OldDadou: et moi je clone (et hash) des tableaux dyn comme un gros cochon

Default avatar.png JBM: et tes strings, leojean890

Default avatar.png JBM: on est encore sous le choc

dwarfie: genre , j'ai une table avec tout les inventaire , une avec tous les spells et une table avec [spell][inv] => inv

dwarfie: du coup , j'ai juste a stocker les index et ils sont pas bien gros

leojean890: JBM ah oui pour ce que je send ?^^ garder la liste des actions ?;)

leojean890: j'ai pas de lien vers le parent actuellement ^^

OldDadou: La table tu la récup d'internet ?

Magus: perso pour pas m'emmerder avec les perfs, je précalcul tout au premier tour pour les inventaires/spells. J'ai pas réussi a avoir plus rapide que ça. Je dois faire des caches miss dans tous les sens

leojean890: dwarfie ah ouais ça peut accélerer ^^

dwarfie: leojean890 ... clairement c'est ce que j'ai fait pour utt aussi :p

Magus: mais comme j'arrive à faire 300k visites (sans éval), ça me paraissait suffisant

dwarfie: uttt

leojean890: Magus ah ouais j'avoue que avec 20*plus de temps qu'aux autres tours tu peux avoir pas mal d'info qui ressert :)

leojean890: même si des choses changent à cause de l'adv

Magus: ah bah quand je dis que précalcul c'est que je précalcul tout

Magus: je fais les 1001 inventaires possibles

leojean890: dwarfie j'ai encore une heuristique qui est bloquée tpp silver dans UTTT donc pas encore pris le temps de bosser les perfs^^

Kirbiby: franchement je faisais 80k eval avec un State de 3 bitset et 20 autres ints

Magus: je précalcules tous les casts de spells (avec le nombre), et les achats de potions

leojean890: je peux utiliser ce que j'ai appris ici dans UTTT^^

Kirbiby: donc tout ce boulot pour gratter du bit c'était trop en 1 semane

leojean890: Magus ah ouais j'avoue comme ça tu peux récup des infos direct quoi que fasse l'adv c une bonne idée:)

OldDadou: Magus, tu veux dire que pour chaque inv/spell/brew tu a la recette associé ?

CopperFr: pas trop envie de gratter du bit non plus

Kirbiby: par contre effectivement des tables de inv -> cast -> inv et inv -> brew -> inv ,et inv -> tax -> inv

Magus: OldDadou: pour chaque inventaire possible, j'ai l'inventaire que ça va donner si je cast telle spell ou si j'achète telle potion

dwarfie: leojean890 clair .. et dans le cas de la table que j'ai indiqué , inventaire -1 donne directement le coup invalide ca aide aussi

UmeHearts: Ha cool les succes sont tombé

Magus: au final, mon code pour caster un spell c'est juste inventory = inventory->casts[spell.id]

Magus: ah non y'a le how

Magus: inventory = inventory->casts[spell.id][how]

leojean890: dwarfie ah tu stock ces infos aussi ? coup invalide ?

Magus: je suis sur qu'on peut faire plus rapide que ça, peut être avec que 16 bits pour l'inventaire. Mais j'ai pas pris le temps de chercher.

leojean890: j'ai pas ça moi je fais un if à chaque fois

leojean890: si c invalide je "continue"

POLOB: Bon, j'ai encore bcp à apprendre moi :)

OldDadou: C'est quoi le how ?

POLOB: j'ai pas du tout pensé à ce type d'optims

Kirbiby: repeat

dwarfie: leojean890 ... ben si je passe par spell + inv donne tel inventaire , autant s'en sevir pour dire que c'est pas valide au meme endroit , ca aide :D

leojean890: POLOB pareil surtout en optim de perfs :P

OldDadou: ok magus, je vois

OldDadou: Perso je pense que mon pb de perfs vient des clone de tableau de spell justement.

POLOB: Petites questions : comment ça se fait que je continue à monter dans le classement ?

POLOB: Les tournois continuent je suppose, mais ils ne prennent plus les nouveaux submit, si ?

Default avatar.png JBM: y'a le classement contest et y'a le classement multi

Bob: le multi, si

leojean890: POLOB dans le multi ton classement varie au gré des submits

AdrDer: Si si, tu peux resubmit, mais le jeu est passé en multi. Le challenge lui est terminé.

Kirbiby: dans le multi c'est le même bot qu'hier ?

Kirbiby: le multi a été smurfé ou pas ?

Stilgart: POLOB: c'est à dire ?

leojean890: ouais c'est le même bot qu'hier

Vry: Mais c'est de la sorcellerie ...

Vry: 2 1 0 0 = 3

31  31   0   0 =  30
 1   0   0   0 =   1


Vry: Faut juste voir comment on s'assure qu'on ne fait pas n'importe quoi

Default avatar.png Just_a_Mango: Hé je fais comment pour transformer du texte en acii art ?

b0n5a1: en suivant l'énoncé

Vry: Bon ... ben ça a l'air robuste la magouille des cinq int sur un int ...

Traquila: c quoi le 5eme int ?

Traquila: le score ?

Kirbiby: la somme

Traquila: J'ai fait ca pour le hash:

Traquila: inline uint32_t hash() const {

           return ((ingr0 & 7) << 9 | (ingr2 & 7) << 6 | (ingr1 & 7) << 3 | (ingr0 & 7) | (recipes & 0xF) << 12);
       }

Traquila: Mais il me manque un bit

Traquila: On peut récupérer un demi bit pas ingredients mais bon

Stilgart: yeah, it's back

Stilgart: question de nain : ça existe les pipes en powershell ?

dwarfie: vu qu'il y en a en batch , j'espere que oui

Stilgart: on va dire oui alors

CopperFr: je pense que oui

CopperFr: https://docs.microsoft.com/fr-fr/powershell/scripting/learn/ps101/04-pipelines?view=powershell-7.1#the-pipeline

CopperFr: Vous préférez le Power Metal ou le powershell ?

TidyMaze: powerline

Zorg1: pauvre point

dwarfie: powermonger

Zorg1: vry : tu m'étonnes que c'est robuste ;-)

CopperFr: powermonger c'est vieux

Zorg1: j'aimais bien

Zorg1: même si j'y jouais comme une savate

CopperFr: ca m'étonnes pas

CopperFr: (que c'était bien)

Stilgart: (n'essaie pas de te rattraper :p )

CopperFr: je connais pas le jeu j'ai seulement joué à populous II sur amiga

Vry: Zorg1 ... autant sur un petit programme de test c'était robuste autant implanté dans mon bot ça part en sucette ...

Vry: Arnaque !!!

Vry: ... ou bug lors de la MEP :upside_down:

Zorg1: ah bon ?

BlaiseEbuth: Wé ! Sépukacé !

CopperFr: sépukacé cépulafécé

Vry: juste avant le brew > 1 2 1 0 [3]

Vry: Il teste BREW 48 (0 -2 -2 0)

Vry: Après 1 0 0 0 [31]

Zorg1: c'est vachement important de nettoyer le bit d'overflow entre chaque addition

Zorg1: * les bits

CopperFr: avec un and ?

Zorg1: bah oui

CopperFr: tu peux faire un xor

Traquila: le shérif ?

Zorg1: de l'espace

CopperFr: y'en a pas à chaque fois :(

BlaiseEbuth: Mon pm a du succès... C'est bô. :cry:

Vry: Ah Ok !

CopperFr: c'est succès fou ?

dbdr: BlaiseEbuth, auteur à succès

dwarfie: allez , petite modif faite en 10min ... ca se teste ....

Vry: Oui mais si tu nettoies ton opération sera toujours valide ?

Zorg1: oui ce sont les bits d'overflow, ils ne sont là que pour récuperer la carry qui déborde

Zorg1: *la retenue

Zorg1: donc ils doivent être à zéro sinon l'addition va déborder sur le nombre à gauche

CopperFr: si ca déborde t'as pas de problème après ?

b0n5a1: carrie...et le bal de l'horreur

Zorg1: carrie dans terre ?

**Zorg1 sort

CopperFr: y carry warrior

Vry: Dans ce cas un truc m'échappes ... comment tu testes qu'une brew est jouable ?

Zorg1: t'as un nombre sur 5 birs

Zorg1: signé

Vry: Moi je pensais : player->inventaire + brew->delta

CopperFr: 5 birs ?

Zorg1: oui et tu vérifie le bits de signe

Vry: et si valide (cf post forum) alors c'est dans la poche

Zorg1: pour voir s'il y a pas un de négatif

Zorg1: mais il faut effacer les bits d'overflow qui sont entre chacun de tes nombres 5 bits

Vry: le bit de signe c'est le 5eme et l'overflow le 6eme ... ok je regarde ça

Zorg1: voilà

CopperFr: si tu as un overflow t'as pas un problème après ?

Zorg1: t1 j'explique à des gars comment battre mon bot :(

Vry: Pourtant j'ai bien le bon masque ... 0x0410410

Vry: Enfin je crois ...

Zorg1: euh

Vry: Ah non ...

CopperFr: non pas le bon

Stilgart: Zorg1: go soumettre l'anti-anti-bot

Vry: Merci mes canaris

Zorg1: attend je rédige mon PM en anglais c'est pas gagné

CopperFr: %011111011111011111011111011111

Vry: J'ai voulu faire le malin et l'écrire en hexa et j'ai glissé ...

CopperFr: tu va pouvoir faire des routines d'affichages de sprites software :D

CopperFr: par contre pour les multiplication on fait comment ?

Zorg1: si t'en as pas besoin tu codes pas

Zorg1: #payForWhatYouUse

Zorg1: :sunglasses: j'ai ressorti un slogan de C/C++

Vry: Ouais c'est bon, c'était mes masques qui étaient un peu foireux ...

domak: o/

Zorg1: \o

b0n5a1: o/

Stilgart: \o

b0n5a1: rt un 4 barré, un

Zorg1: gné ?

domak: Je survole les PM et je vois celui d'Euler... je m'apperçois que je me suis planté sur mon encoding d'inventory...

b0n5a1: 4 barré aviron Zorg1

domak: tu m'étonnes que mes vieilles strats qui utilisaient un array marchaient mieux...

b0n5a1: une rame chacun

Zorg1: ha

Vry: Donc juste un truc que je n'ai pas compris dans le post d'euler : en fait il vire aussi le signe dans sa fonction applyDelta mais ça n'a pas de sens car il a dû valider avant que son opération était valide ?

Zorg1: oui je le fais pas ça

Zorg1: je vérifie juste qu'il n'y a pas de negatif

Zorg1: et je rince les bits d'overflow

Vry: Ok

Zorg1: u = u + sp.delta for (u&DETECT_NEGATIVES ==0 && u&31<=10) { u=u &^ CLEAN_OFBITS

Zorg1: ah oui ça rend dégueu

Zorg1: u = u + sp.delta for (u&DETECT_NEGATIVES ==0 && u&31<=10) { u=u &^ CLEAN_OFBITS

Zorg1: c'est plus propre

Zorg1: &^ en go ça fait un 'AND NOT'

Zorg1: (et j'ai placé mes nombres à l'envers d'euler)

Vry: Pourquoi un for ?

Zorg1: c'est le code de mon repeat speel ;-)

Zorg1: *spell

Vry: Ah Ok

Vry: Celui_là en fait :

Vry: http://chat.codingame.com/pastebin/af332294-66f5-4475-b536-3a5363141e48

domak: BlaiseEbuth elle est magnifique la conclusion de ton PM

Zorg1: c'est ça vry

Vry: Par contre son test sur la quantié est bizarre ...

Vry: if (inv > (Player.INVENTORY_SIZE + 1) << 24)

Vry: *quantité

Zorg1: <<24 ? tu t'es pas gouré

Vry: à moins que inventory size soit 9 ?

Zorg1: >>24 plutôt

Zorg1: ah non ok

Vry: En fait Euler fait dans l'autre sens ... mais c'est perturbant je trouve

Zorg1: oui je met la somme dans les poids faibles

[CG]SaiksyApo: Mais c'est degueu de faire du bitwise sur des méthodes qui s'execute que T1

Vry: Je vais faire (inv >>24) > 10

[CG]SaiksyApo: ça sacrifie la relecture pour pas grand chose quand même

Vry: C'est exécuté tout le temps

Zorg1: on voit bien que t'as pas la foi Apo ..

Zorg1: et honnêtement je trouve mon code assez clair

CopperFr: tu verras dans 10 ans

[CG]SaiksyApo: Les states les spells et les inventaires sont connus T1

dbdr: paf, #11 à 50% :D

dbdr: (le meme code a fini #37 juste avant)

dbdr: #9

Vry: Oui c'est vrai [CG]SaiksyApo mais vu que la fonction de vérification travaille aussi en bitwise c'est pas mal que la fonction d'initialisation soit codée de la même manière

Vry: Gain de perf. non négligeable : 4 190 003 node en 72ms au lieu de 98ms

[CG]SaiksyApo: Tu verifies quoi?

Zorg1: oui le bitwise m'a fait énormément gagné

Vry: Il faut vérifier que ça ne déborde pas, tu as 4 bits par valeurs

Vry: Tu additionnes bêtement et si ça déborde c'est que ce n'est pas compatible

Vry: C'est la "magie" du truc

[CG]SaiksyApo: Yup

[CG]SaiksyApo: Mais du coup, j'ai fais ça que t1

[CG]SaiksyApo: Du coup c'est pas les 1001*46*6 ope qui te font gagner des trucs en passant en bitwize

Zorg1: ?

Vry: Autre avantage [CG]SaiksyApo : tu n'utilise plus les tables [1001]

Zorg1: ah tu précalcules

Vry: Du coup j'ai viré mon state compressé !

[CG]SaiksyApo: Bah ouais, T1 il faut build les tables de transitions, les sorts que qu'on peut lancer par inventaire, les learn possibles etc

Zorg1: m'ouais

[CG]SaiksyApo: Et apres c'est de l'acces direct

Vry: J'ai inventory sur 32, brewed sur 8 et castable sur 64 (c'est la fête)

Vry: Ok [CG]SaiksyApo je n'y avait pas pensé

dbdr: [CG]SaiksyApo tu fais ça pour tous les sorts, y compris ceux qui sont pas (encore) dispo?

[CG]SaiksyApo: Oui

dbdr: ok

Stilgart: tu fais pas ça pour tous les sorts ?

[CG]SaiksyApo: Ceux que je peux lancer c'est Valid & Learn

Zorg1: tu construit une machine à état en fait dans ton précalcul

Stilgart: c'est plus ce que c'était la légende :o)

dbdr: ?

dwarfie: :popcorn:

Default avatar.png JBM: comment es ta re

dbdr: ya plus Stilgart dedans?

dbdr: désolé

Stilgart: je l'ai pas volée :)

Vry: Honnêtement, il faudrait tester pour voir ce qui marche le mieux.

dbdr: :D

Default avatar.png JBM: true

Stilgart: par contre, j'ai vraiment du merder un truc dans ma fonction d'éval

Default avatar.png JBM: tiens tvc a passé les 250 upvotes pendant le contest

Default avatar.png JBM: plus d'excuse, il va falloir que j'en fasse un contest off

Zorg1: 2500 points, c'est comme si t'avais créé un CC quoi

Default avatar.png JBM: exactement

Default avatar.png JBM: d'où la suite logique

Zorg1: c'est beau la vie d'artiste

dbdr: bon, ben mon sub a fini #9 :O

Zorg1: c'est marrant le précalcul me serait pas venu à l'idée.

Traquila: pareil

Default avatar.png JBM: faut voir lequel

dwarfie: en meme temps ... vu que les upvotes ( comme les approve ) sont random ... merci la quet map ...

Stilgart: dwarfie, briseur de rêves

dbdr: franchement, je suis pas sur que les perfs soient determinantes, à partir d'un certain niveau

Default avatar.png JBM: tant qu'ils sont random sur *mes* contribs

dwarfie: Zorg1 ... heureuement ... moi j'y ai pensé sinon je serais encore silver :D

sanpas83: en silver le leaderboard super instable avec le meme code 2 submit différent la place au final n'est plus du tout la meme :weary:

Default avatar.png JBM: dbdr et réciproquement, pour des opérations trop simples, tu perds à accéder à la RAM

dbdr: oui

CopperFr: surtout de nos jours

Traquila: à la fin peut-être mais au début je terminais toujours pareil à 5 place près

Zorg1: en plus ça peut être la fête au cache cette table monstrueuse

dbdr: elle est si monstrueuse que ça?

Default avatar.png JBM: 1001×actions

Default avatar.png JBM: si on parle des mêmes classiques

CopperFr: qq ko

Traquila: c'est quoi 1001 ?

Zorg1: bah 1001 * nb de potion * nb de spell * 2

Zorg1: je dirais

Default avatar.png JBM: Traquila: le nb d'inventaires possibles

Zorg1: 7*11*13

Traquila: ok le truc sur 11 bits :)

Default avatar.png JBM: ca tient en 10

dbdr: 1001 c'est 9 en binaire

door:

Zorg1: oui mais tu met un bit en plus au cas om

Default avatar.png JBM: ah ben oui

dbdr: le bit d'ammarage

CopperFr: ca tiens dans le cache ?

dbdr: lequel?

CopperFr: en même temps on sait même pas sur quel proc ca tourne :D

Default avatar.png JBM: celui des autres

Traquila: demande le dans ton programme

Default avatar.png JBM: le plus rentable des procs

Zorg1: bah tu fais un cat /proc/cpuinfo tu vas vite le savoir ;-)

dbdr: CODE[cpuid()]()

Default avatar.png JBM: bon, si j'écrivais un PM moi

Default avatar.png JBM: pour une fois que j'ai des choses à raconter sur un contest de contest

dbdr: en supposant que mon code vaut vraiment son rang là, je suis un peu deg' :D

Default avatar.png JBM: c'est toujours comme ça

Default avatar.png JBM: vois les choses du bon côté

CopperFr: c'est quoi du coup comme proc ?

Default avatar.png JBM: ce contest aura fait beaucoup pour rust sur cg

Kirbiby: mais comment je suis deg

dbdr: pas vraiment deg en fait, c'est plutot rigolo

Kirbiby: une nuit blanche hier pour rien

Default avatar.png JBM: vivement que ca arrive pour haskell

Zorg1: bah je sais pas CopperFr prend toi en main

Kirbiby: et aujd LEgend en 25 minutes

Default avatar.png JBM: Kirbiby: pouruqoi?

Kirbiby: 24h trop tard sa m********

dbdr: premier boss rust?

CopperFr: c'est ton destin ?

Default avatar.png JBM: surtout le release

Default avatar.png JBM: mais le boss aussi

dbdr: oui

dbdr: c'est lié

Default avatar.png JBM: c'est limite une conséquence logique

Default avatar.png JBM: voilà

dbdr: et de plus en plus dans le top

dbdr: enfin bon emil...

Default avatar.png JBM: oui, qlors quoi emil?

dbdr: c'était un leure je suppose

Default avatar.png JBM: ?

Zorg1: petit ange parti trop tôt ?

dbdr: emil était en rust, mais c'était un wrapper je suppose

CopperFr: un leure ?

Default avatar.png JBM: de qui?

dbdr: du #3

Default avatar.png JBM: ah

dbdr: non?

Default avatar.png JBM: ça m'avait été présenté, comme idée

Zorg1: ah t'as la même théorie que moi

Default avatar.png JBM: ben c'est possile, c'est sur

Zorg1: bah il apparaît au top et comme par hasard l'autre fini lobotomisé

dbdr: reCurse tu as confirmé?

dbdr: ou no comment? :)

CopperFr: il a fait quoi emil ?

Default avatar.png JBM: je suis tellement pas dans cette mentalité que j'essaie même pas d'évaluer les probas

reCurse: Y'a encore des doutes?

dbdr: plus maintenant :)

dbdr: rust c'était du trolling? :)

Zorg1: on aime bien parler à vide, ça chauffe le chat ;-)

reCurse: Pour mieux hide

reCurse: Et ça a permis de débloquer le sujet de release IDE

dbdr: pro move

reCurse: En fait je dis hide, c'est plutôt smurf

dbdr: de fait si c'est un wrapper ça change rien

reCurse: J'ai rien caché à part l'identité

dbdr: oui

Zorg1: c'est vrai il était au top

dbdr: tu en as parlé à qqn de CG?

Zorg1: on pouvait seulement pas s'entrainer contre lui dans l'IDE :D

reCurse: Oui

dbdr: ok

dbdr: sage :)

reCurse: J'ai mis pression à l'interne pour qu'ils fixent

reCurse: Ça a du aider

Default avatar.png JBM: si c'était du wrapping, ça aurait pas du changer les perfs pourtant, si?

reCurse: J'ai simulé un mode debug

dbdr: lol

reCurse: Si CG fixait pas j'aurais enlevé en milieu de semaine

dbdr: vicieux :D

Zorg1: :D

reCurse: Les batchs on s'en fout avant ça

dbdr: ah lol, j'ai revert mon changement, avant de resub sur un coup de tete et de finir #9

Vry: Bon, je confirme, la performance c'est rigolo mais ça ne sert à rien :grin:

CopperFr: ca sert en go c'est tout

Zorg1: bah oui

Zorg1: j'ai pas un million de noeud par tour moi de base

dwarfie: en meme temps vry ... te base pas sur ton run ... je viens d'en faire un ou je decolle pas de la fin de ligue alors que j'etais mid avec le meme code ...

Vry: 2057886 nodes en 45ms ça fait un gros nombre uand même

Vry: J'ai vu un seul timeout dwarfie

Zorg1: on dirait les nombres de simus balancé quand on parle d'UTTT ou de CSB

dwarfie: j'ai pas de timeout ... juste ca monte pas suite au victoire ...

Zorg1: (calculé avec des défintions à géométrie variable)

Vry: Moi j'ai 4 victoires sur 47 ... donc ça va pas monter !!!

Zorg1: bon je cale dans la rédaction de mon PM

dwarfie: 14vistoire sur les 16 derniers matchs et je passe de 460 a 457 ... ouah la progression ...

Vry: Je suis le dernier (avec un score positif) ! :p

Vry: Et toi, tu es #10 ... en partant de la ifn

OldDadou: ah, le chat est revenu

dwarfie: alors qu'a part le ten de depart , je perd pas trop ... et meme je t'assassine a chaque fois mais bon ....

**dwarfie va se dire que quoi qu'il fasse il pourra pas chuter de trop :D

Zorg1: (ensuite je trouve ça plus marrant de faire des astuces en bitwise que de tricoter une table de plusieurs mégas)

CopperFr: chacun ca passion

CopperFr: sa

dbdr: tiens errichto est gold

dbdr: et Zorg1 #26 :)

Zorg1: il est pas si pourri ce code finalement ^^

dbdr: yen a qui vont avoir un boot au général demain ;)

Zorg1: même si c'est un bazar bitwise et pas un superbe automate et sa table de transition de 20 Mo

dbdr: fignolé à la main, à l'ancienne

Zorg1: avec de veritables bugs traditionnels

dbdr: c'est plein de proteines

Zorg1: (après je crois que mon vice c'est d'essayer d'avoir des perfs avec go)

Zorg1: (voire lua quand je suis en forme)

dbdr: prochaine étape, perfs en bash

Zorg1: avec des vrais morceaux de awk roulés sous les aisselles

Vry: Je crois que je vais galérer avec l'éval. ...

Zorg1: fait simple

Vry: Bizarrement la même éval que mon bot du contest ne donne pas de résultat ...

dbdr: tu as tout changé?

Vry: Non juste passer sur un invetaire avec 5*4bits sur un int

Stilgart: dbdr: cat | gcc - ;)

Vry: *inventaire

dbdr: ah ok, plus de perfs

dbdr: oh le tricher Stilgart ;)

dbdr: +u

Vry: Ah ... le code du contest obtient des victoires ... à creuser !

dbdr: [CG]SaiksyApo #21 :+1:

[CG]SaiksyApo: J'ai refix mes "timeouts" comme vous dites

dbdr: t'aurais pu l'avoir ce tshirt!

[CG]SaiksyApo: ;)

Zorg1: ça se trouve il a pompé mes magics number, cette triche :p

Zorg1: bon ils sont bien planqué dans mes << >> & | ^

dbdr: déjà qu'il a regardé plein de codes pour les bosses...

Zorg1: ouaip

[CG]SaiksyApo: Tkt que j'ai moi aussi des >> << & | ^ juste pas pour les trucs qu'on peut calculer T1 :D

dbdr: heureusement que mon bundler ote les commentaires

[CG]SaiksyApo: D'ailleurs j'aimerai bien savoir comme vous avez gerer le shift d'un spell dans le tome

[CG]SaiksyApo: Tome = ((current.Tome & (SpellMask << ((learnIdx + 1) * 7))) >> 7) +

                                      (current.Tome & (((SpellMask << (learnIdx * 7)) & SpellMask) ^ SpellMask)) +
                                      (0b1111111L << (5 * 7)), // LEFT + RIGHT + MASK

Zorg1: j'ai pas fait en fait

[CG]SaiksyApo: Zut il me l'a pas pastebin

Zorg1: je m'en suis apperçu plus tard que j'avais pas ça

dbdr: je shifte rien, je skip juste les spells deja appris

Zorg1: sinon je pense que j'aurais utilisé une table sur ce coup là ^^

Zorg1: (sérieux en plus)

[CG]SaiksyApo: Hum je pense que l'on a pas la même logique pour les spells du coup, moi c'est juste Learn 0-6

dbdr: eh ben, si tout le code CG est comme ça, je comprends mieux certaines choses... ;)

Zorg1: ah j'ai un flag pour les sort appris (de 6 bits)

Vry: Moi j'ai un champ de bit donc si 1 c'est déjà fait > suivant

Zorg1: et un flag pour les castables (connus + ceux du tome)

Vry: J'ai toujours la même boucle de 0 à 5

Stilgart: [CG]SaiksyApo: fallait coder ça sur 5 lignes si tu voulais du pastebin :)

Traquila: lol

Zorg1: et j'affecte un masque à chaque spell à la lecture

Traquila: castable sur 16 bits, learned sur 8 bits et LearnedCastable sdur 8 bits

Traquila: Après si j'ai plus de 16 sorts je crash

[CG]SaiksyApo: :joy:

Zorg1: ah oui c'est fragile ton truc

Stilgart: suffit de jamais apprendre plus de 16 sorts

Traquila: 16 sorts ca fait bcp

Stilgart: ce qui est un cut raisonnable

Zorg1: bah quand t'es bloqué avec des ingrédient tout autour du bide parceque on t'as piqué ta potion, tu n'as comme solution que de récupérer des spells dans l'espoir d'un avoir un qui fait le ménage

Traquila: pas faux

Traquila: Pour la phase de learn je n'ai pas vu de truc très poussé je trouve

dbdr: Zorg1 si t'en est là, t'as perdu à 98%

Zorg1: oui mais mon bot n'abandonne jamais, un timeout de l'adversaire est toujours possible ^^

dbdr: et apprendre bcp peut aider ça

Zorg1: c'est pas faux

Traquila: ce que j'allais dire, tu fais des wait en espérant un timeout de 404 :)

dbdr: genre si l'adversaire est Traquila

Zorg1: et tu regardes si tu peux lancer une fork bomb juste avant de filer la main au referee ?

Stilgart: dbdr: comment tu fais pour pas te faire piquer tes potions ?

dbdr: pas bete ça

Traquila: J'ai regardé si on pouvait tuer le pid du voisin, mais on tourne dans une box :)

dbdr: Stilgart je les fais le plus tot possible, mais je m'autorise à repousser si l'opposant peut pas la faire dans les 2 tours suivants

Stilgart: hum...

Stilgart: sauf que tu peux pas forcément repousser

dbdr: c'est pour ça que j'autorise, juste

Zorg1: oui mais moi j'ai positionné le flag FoW à true, j'ai un ingrédient caché :p

dbdr: plus précisement, je fais pas de decay dans ce cas, j'en fais meme un leger à l'envers

Stilgart: ok, ça veut dire que tu gardes plusieurs chemins vers la potion dans ton bfs et que tu choisis après coup ?

dbdr: pour preferer repousser, si ça change pas le reste

Stilgart: ou tu as réussi à mixer le tout dans le meme algo ?

dbdr: genre rest - brew plutot que brew - rest

dbdr: j'ai un beam

dbdr: donc oui les 2 sont dans le beam

Stilgart: pareil que c'est pareil modulo sort (:

Stilgart: parait que*

**Stilgart manque de sommeil

dbdr: j'ai juste des etats dans mon beam

dbdr: donc oui pleins d'etats peuvent faire le meme brew de facons differentes

Stilgart: mon erreur était donc d'essayer de gérer ça après coup...

dbdr: j'avais pensé faire ça en post process

dbdr: mais je me suis rendu compte que ça se fait en tweakant le decay

dbdr: et c'est plus flexible

dbdr: la recherche choisit

Stilgart: j'ai pas pensé à en amener assez en process pour faire le post process correspondant à ce que tu décris

Stilgart: c'est mieux en process sur un beam

dbdr: deja il faudrait la liste d'actions

Stilgart: (enfin, mon intuition me dit que)

dbdr: ce qui coute en perfs

dbdr: la je garde que la 1ere action

Stilgart: en vrai, au lieu de retourner un seul path vers la potion, j'aurais déjà pu en remonter 3

dbdr: (j'ai une option de compil pour avoir la trace complete, pour debugger)

Stilgart: un à depth min, un à min+1, et un à min+2

Stilgart: ça devrait suffire pour faire ce que tu décris

dbdr: tu cherches vers des potions particulieres?

Stilgart: non, vers toute combi

dbdr: moi je parcours juste des etats

Stilgart: mais je gardais en gros que le meilleur chemin (en depth)

Stilgart: vers chaque combinaison

Stilgart: précison, ma fonction retournait juste des noeuds

Stilgart: et main remontait pour afficher le chemin sur stderr

dbdr: ok, avec liens vers le parent

Traquila: pourquoi besoin du chemin complet et non juste l'index du premier ?

Stilgart: parce que va analyser ce que fait le bot sans le chemin complet :)

Traquila: ok

Stilgart: et au final, ça coutait pas tellement plus cher

NicolasH_42: bah enplus tu le compute le path

Stilgart: c'est juste (index,action) au lieu de index

Stilgart: à stocker

NicolasH_42: moi c'etait des pointeur vers parent

dbdr: bon, fuat que je dorme moi :) bn

Stilgart: bonne nuit dbdr

NicolasH_42: vu que tes certain que ya qu'un parent

Stilgart: tu l'as mérité

Traquila: du coup a chaque création d'un node tu as une copie de pointeur ?

Traquila: pour le parent

dbdr: :blush:

NicolasH_42: ouais

Stilgart: Traquila; hein ?

dbdr: surtout que je suis allé courir cet aprèm :)

Stilgart: je fais un memset du parent vers le fils si c'est la question

Traquila: j'ai juste 2 entier à copier pour creer un fils

Stilgart: puis j'update ce qu'il faut dans le fils

NicolasH_42: dbdr pas mal moi j'ai pas bcp bouger pdt ce challenge

Stilgart: j'ai un peu plus que ça dans mes noeuds

NicolasH_42: dbdr tu as fait du bitwise ?

NicolasH_42: pour les 2 entiers ?

Stilgart: enfin...

Stilgart: ça dépend ce qu'on compte

Traquila: 96 bits sans bitwise

Traquila: un 64 un 32

NicolasH_42: what comment ducoup ?

Traquila: http://chat.codingame.com/pastebin/7eaf7d99-797a-4284-9829-e1baf13f80a1

NicolasH_42: ca fait 96 octet pas bit ca ?non ?

Traquila: lol non

Traquila: 64+32

NicolasH_42: et ta struct elle est free ?

Traquila: pour creer un node ensuite il suffit de : pSubNode->U1 = pCurNode->U1;

           pSubNode->U2 = pCurNode->U2;

NicolasH_42: mais ton U1 c'est quoi ?

Traquila: c'est juste pour copier facilement

Stilgart: Traquila: j'ai juste l'index du parent, l'action depuis le parent, et la profondeur en plus

Traquila: stilgart, si ca rentre sur 128 bits ca fait les même perfs

Traquila: 2 copie d'entier

Traquila: sur un proc 64

Stilgart: (donc une copie si je force)

Traquila: J'avais aucune idée de quoi faire sur les 32bits restants

Stilgart: taxes, bonuses

Stilgart: (ha oui, j'ai les bonuses aussi)

Traquila: pas besoin de l'avoir dans le node

Stilgart: si, parce que je vais pas la recalculer alors qu'il me reste de la place

NicolasH_42: comment tu gere si les actions on ete consume si tu as juste l'index

NicolasH_42: mon etat c'est ca perso https://pastebin.com/Zc7At6FY

NicolasH_42: en rust

Traquila: non action c'est juste pour savoir quoi faire. à la fin du tour. Les spells utilisé c'est le masque castable

Traquila: Tu as le book dans ton node ?

Stilgart: ça pour le coup ça se stocke en dehors

Stilgart: vu que c'est le même pour tous les noeuds

NicolasH_42: une ref mais ouais pas faux

NicolasH_42: votre graph est genere au tour 1 ? ou a chaque tour ?

Traquila: a chaque tour

Stilgart: à chaque tour

Stilgart: vu que le book change

Stilgart: et les potions à faire aussi

Traquila: trop complexe à inserer en cas de learn en effet

Stilgart: j'ai pas trop eu d'idée pour recycler, et de toute façon mon code perf pareil sur 30ms

Stilgart: (donc pas la peine de gratter plus en perf)

NicolasH_42: est ce que vous cree tout les etats pour invalider les impossibles ou direct test et ensuite creation si possible ?

Stilgart: test puis création

Stilgart: sinon ça ferait trop d'états

NicolasH_42: ok ok et dans les 30 ms vous arriviez a cb de node ? et depth ?

Traquila: avec ou sans hash ?

NicolasH_42: heeu le meilleur des deux :)

Traquila: Avec hash et donc sans doublon, autour 125K nodes

Stilgart: **** 61440 / 114470 / 572831 nodes visited, up to depth 14

Stilgart: à gauche c'est les noeuds qui ont fils

Stilgart: au milieu c'est ceux sans doublon, et à droite avec doublon

Stilgart: en 35ms sur un state mid

Stilgart: game après un rest (donc un state difficile)

Traquila: Même perf mais seulement depth 8-9 car j'ai raté ma fonction d'éval.

Stilgart: non, tout est dans le "up to"

Stilgart: je fais pas tout à fait un bfs

Stilgart: à mon avis, à partir de depth 10-11 il y a des trous

NicolasH_42: [D6|Solutions 4637 Visited: 27537]

NicolasH_42: bon faut que je revois comment opti des graphs ><

Traquila: je n'ai pas su couper les branches et je trouvais rarement 2 potions. C'est la ou j'ai foiré

Traquila: Tu alloue tout à l'avance NicolasH_42 ?

NicolasH_42: nah

Traquila: malloc = très couteux

Traquila: Tu te fais un tableau d'un million d'léments et au lieu d'utiliser un pointeur tu utilise un index

NicolasH_42: je suis en rust donc je sais pas encore trop les truc bete a eviter

NicolasH_42: ouuuh c'est smart ca

Traquila: l'allocation tu la fais au démarage, tu as une sec pour ca

NicolasH_42: j'y ai pas pensee

NicolasH_42: damn

NicolasH_42: et tu reset tes truc en place

Traquila: pas besoin puisque je n'ai que 2 entier que j'écrase

Traquila: car un memset à chaque tour c'est pas recommandé

NicolasH_42: premier challenge pour moi alors j'ai pas les tricks de mere grand

Traquila: pareil :p

NicolasH_42: mais ducoup dans ton tab[1M] tu mes tes etats soit 2 int ?

Traquila: exact

Traquila: tu peux mettre plus si tu veux

NicolasH_42: et tes nodes sont juste des indexs

Traquila: j'ai 1M de fois la classe que je t'ai link

Traquila: tu mets le minimum dans le node juste pour limiter les copies

NicolasH_42: cool cool perso j'ai fais des mask binaire du futur et j'ai pas penser a alloc un gros tab au debut

Vry: Ah voilà, j'ai retrouvé les mêmes arbres BFS mais avec juste plus de perf.

NicolasH_42: Traquila comment tu evite d'ecraser des noeuds ?

NicolasH_42: quand tu les crees

Traquila: mon index augmente tout le temps

Traquila: le problème n'est pas déviter de les écraser mais déviter d'avoir des doublons

Traquila: pour les doublons tu peux voir dans un deuxième temps

NicolasH_42: tu as des doublons si tu fais 0->A ->B er 0 -> B -> A par exple ?

Traquila: voila

Traquila: Exemple pour creer le node fils pour un rest :

Traquila: http://chat.codingame.com/pastebin/63e90d7f-a5a7-48fa-b54c-c2a465e670e8

NicolasH_42: et vu que a chaque tour tu ecrase tu as meme pas besoin de bzero

Traquila: Le nombre d'instruction est assez limité

Traquila: oui exact

NicolasH_42: ducoup pour voir si tes sorts dispo tu re-parcours tes actions ?

Traquila: c'est le masque castable

NicolasH_42: ooh ok

Traquila: je te donne la classe

Traquila: http://chat.codingame.com/pastebin/d487b9c2-2d37-4249-b564-d619f7cf7b4a

BlaiseEbuth: La classe on l'a ou on l'a pas, ça ne se donne pas... :sunglasses:

Traquila: :D

Stilgart: BlaiseEbuth: :)

NicolasH_42: ahhahaa

NicolasH_42: j'utilise jamais d'union mais c'est pratique

Vry: J'ai pas la class ... saperlipopette !

Zorg1: C n'a pas la class

Vry: Bon demain je fais une éval. digne de ce nom !

Vry: Tu gères le learn Zorg1 dans ton BFS ?

Zorg1: oui

Zorg1: tu me fais pensé qu'il faut que je finisse ce PM ^^

Zorg1: ça va devenir l'arlésienne sinon

Traquila: c'est obligatoire le PM quand tu es legende ?

Zorg1: no,

NicolasH_42: PM ?

Zorg1: non

Zorg1: Post Mortem

**Stilgart a tellement pas le courage de faire des PMs

Zorg1: en gros un feedback/strategie sur le contest

Stilgart: je vous donne mon PM de DP si vous voulez : "Bref, j'ai pas ouvert le chat pour une fois."

Traquila: avec 250 gold, je ne me sent pas légitime pour en faire un :)

Zorg1: https://www.codingame.com/forum/t/fall-challenge-2020-feedbacks-strategies

Stilgart: Traquila: tu l'es complètement

NicolasH_42: oui moi 400 du gold alors :)

Stilgart: surtout vu ce que tu as raconté ce soir

Zorg1: Traquila : tout le monde peut en faire un, t'as des silvers, des bronze ...

BlaiseEbuth: Des rainbows

Zorg1: ^^

Stilgart: ça pourra toujours aider les gens du cran d'en dessous

Zorg1: j'ai vu un gars qui postait en com du PM de magus "on peut avoir le code" ^^

BlaiseEbuth: Bawi

NicolasH_42: Stilgart aie

Stilgart: BlaiseEbuth: tu as obtenu ton reclassement en rainbow à cause des pbs de clojure ? :D

Zorg1: bah oui mon garçon

dwarfie: au bucher

BlaiseEbuth: Stilgart : c'est la ligue des codes morts nés...

Zorg1: encore une conspiration pour empecher un bot clojure en légende

Stilgart: Automaton2000: c'est pour toi !

Automaton2000: (et tout le monde et Stilgart

Zorg1: je ne vois que ça comme explicatiob

Traquila: J'ai encore du mal avec la fonction d'éval, pour un node donné vous ne gardait que la branche qui a la meilleure note ?

Stilgart: pour un objectif donné, je garde le meilleur node qui remplit cet objectif

Traquila: j'essai de comprende l'eval de magus mais je ne vois pas comment couper en fonction du résultat. PEut-etre que cela ne fonctionne qu'en Beam search ?

OldDadou: pour moi le score de magu maximise le nombre d'ingrédien

OldDadou: et mon ia ne fait jms de potions :/

BigUP: tiens, je suis passé silver sur Crystal Rush ! ;) GG me ! ;)

Zorg1: gg toi

BigUP: je ne l'ai meme pas resubmit celui la ! ;)

BigUP: merci aux pousseurs !

leojean890: bon je fais que 40% contre le boss silver :s

leojean890: (fall challenge)

leojean890: ralalala

leojean890: submit, 13 vict d'affilée..

leojean890: mais il lutte dans les 1XX..

leojean890: 50%, je ne suis que #100 silver :s

Stilgart: Subject: [Spring Challenge 2020] The end 👋


Stilgart: [CG]Thibaud made my day

leojean890: ah oui le fameux mail;)

Stilgart: n'empêche que ça m'aurait bien arrangé que le SC durent 6 mois

Stilgart: j'ai pas pu le faire à cause du timing malheureux (et du retard accumulé coté pro à cause de OOC)

leojean890: ah ouais t'étais trop en tryhard sur OOC ?:)

leojean890: oauis parfois ça tombe au mauvais moment^^

leojean890: R4N4R4M4 m'a parlé du RAIC sinon là^^

Stilgart: objectivement, OoC était beaucoup intéressant (selon mes critères)

leojean890: ça semble largement plus dur au vu des sujets des années précédentes

Stilgart: raic c'est trop la mort

leojean890: que CG

Stilgart: laisse moi avec une vie :D

leojean890: on dirait des jeux vidéos

Stilgart: avoir*

leojean890: parait que Illedan est super bon là bas aussi:)

leojean890: R4 le fait souvent aussi

Stilgart: et oui, ça a l'air de demander un investissement de fou les raics

leojean890: je vais ptet tester mais je sens que c'est chaud

Stilgart: ça doit être sacrément cool à faire, cela dit

leojean890: OOCje suis d'accord

leojean890: je m'étais bien investi

Stilgart: (mais bon, il faut que je me fixe des limites, je peux pas tout faire)

Zorg1: raic c'est franchement too much à mon avis

leojean890: j'aimais bien^^

leojean890: RAIC un des jeux on dirait league of legends (plus dur que BOTG)

Zorg1: CG ça reste manageable

leojean890: un autre on dirait un des jeux de switch dont j'ai oublié le nom avec du foot avec des voitures

Stilgart: surtout c'est très limité en temps et fixé bien à l'avance

Zorg1: ah oui celui avec des wizards et des équipes

Stilgart: ça aide à s'organiser un minimum

Stilgart: (bon ok;.. OOC c'était 1 mois :D )

leojean890: mais ouais IAs plus compliquées que BOTG et CSB on dirait

leojean890: OOC c'était un mois effectivement

Zorg1: après CG ils s'inspirent de jeux de plateaux populaires et bien testé, ça limite les surprises

leojean890: RIC aussi

leojean890: RAIC

leojean890: mais eux on dirait également qu'ils s'inspirent de jeux vidéos populaires

Zorg1: mmm RAIC c'est franchement "je vois grand"

Stilgart: faudrait que j'en fasse un une fois

leojean890: jeux vidéos populaires et très complexes

Stilgart: mais je vois pas comment libérer assez de temps pour le faire vraiment

leojean890: juste tester au moins:)

leojean890: pas forcément le tryhard

Zorg1: c'est sûr RAIC c'est nettement plus sexy que les jeux de plateaux de CG mais y a du boulot

leojean890: enfin ça dure un mois..

leojean890: 2h par ci par là:)

Stilgart: leojean890: sauf que si c'est juste pour tester, ça va me laisser un gout amer

leojean890: ouais c'est impressionnant on dirait qu'il faut pa^sser 100-200h en 1 mois dessus pour gérer quoi :s

leojean890: Stilgart je sais c'est plus sympa d'approfondir

Stilgart: j'ai déjà l'impression d'avoir raté FC, donc je te laisse imaginer :)

leojean890: Stilgart et moi donc.. je suis même pas gold;)

Stilgart: après, c'est de ma faute... faudrait que je pense sérieusement à :

leojean890: Zorg1 gagne 10 places au rank général avec son FC;)

Stilgart: 1. utiliser cgbenchmark

leojean890: je survole son image car vu son rank je me doutais que ça allait monter^^

leojean890: #43

Stilgart: 2. coder des libs réutilisables pour pas tout refaire quasi from scratch

Stilgart: et me prendre les pieds dans le tapis de bugs

leojean890: moi #93 ça bouge pas^^

leojean890: ouais je réutilise les codes des anciens sujets :)

leojean890: souvent

Stilgart: moi assez peu

leojean890: enfin quand je me souviens d'un truc un peu similaire

Stilgart: à part le floyd warshall, j'ai pas grand chose qui soit générique

leojean890: les templates minmax, beam search, bfs

leojean890: quoi que souvent je recode from scratch

leojean890: tellement le template est tjr pareil ça devient automatique

Stilgart: et je sais toujours pas faire un beam search aussi :)

leojean890: bah moi j'en fais mais il roxx pas quoi

Stilgart: je comprends pas les détails :(

leojean890: je le fais "à ma façon" et manifestement ça réussit pas comme certains :P

leojean890: CF mon 2048, mon FC, et mon hypersonic:)

Stilgart: dans ma vision, si ça va mal, tous tes rayons partent avec la même action et ça sert plus à rien

leojean890: (enfin 2/3 sont en python donc ça justifie direct le pbm^^)

leojean890: le 3eme en go..bon:)

Zorg1: beam search faudrait que je regarde, c'est le sort qui me fait un peu peur

Zorg1: quoi qu'avec un heap ça devrait aller

Stilgart: mais si je fais à ma façon, je sens que ça va faire comme toi leojean890

leojean890: ouais faut que j'essaye de faire mieux

leojean890: là j'ai tenté des trucs mais c'est as encore fameux

leojean890: pas*

Stilgart: Zorg1: sort sur 1000 éléments c'est pas la mort

leojean890: mais déjà le problème de fond : mon nb de simus

Stilgart: (ou alors j'ai mal compris les "1000" dans les PM)

**Stilgart tend masse précalcul à leojean890

boumagik: tu sort pas sur 1000

Stilgart: un truc que je devrais faire, c'est porté mon C++ en Haskell pour voir ce que j'obtiens comme perfs

leojean890: ouais Magus a expliqué avoir fait ça

boumagik: tu étagues pour garder 1000

leojean890: masse précalcul

Stilgart: bah moi aussi

boumagik: ensuite, au rank K+1 tes 1000 noeuds vont générer N* K noeuds

leojean890: mais t'as pas que 7-10k simus pas turn toi:)

boumagik: N*1000- pardon

Stilgart: ok, donc c'est 1000 après élagage, pas ava,t

leojean890: 16 victoires d'affilée dans FC silver sympa

**Stilgart avait un doute

leojean890: ptet qu'un jour ça vodura passer gold xD

Magus: le beamsize ça fait pas un sort sur 1000 éléments

boumagik: j'ai un beam search

boumagik: tout pareil que magus

Magus: c'est juste que tu vas conserver les 1000 meilleurs

boumagik: tel que décrit dans le forum

boumagik: mais je crois que des connards de coefficients m'ont plombé

Magus: si tu as 50000 enfants dans une profondeur, tu vas sort les 50000

Stilgart: Magus: il faut quand même avoir les 1000 meilleurs parmi les 50k

Stilgart: oui, voilà

Stilgart: enfin note que c'est pas un sort non plus

Stilgart: Magus: mais ça t'arrive jamais d'avoir une convergence malsaine avec un beamsearch ?

Magus: c'est à dire ?

Stilgart: de tomber sur un maximum local à depth 3 qui te fait compléter rater un win à depth 5

Magus: depth t'as moins de 1000 noeuds

Magus: *

Magus: *depth 3

Stilgart: ma crainte avec cet algo, c'est d'avoir que des rayons très similaires et qui commencent pareil

Magus: donc si t'as un maximum local il sera après

Magus: j'ai justement choisi 1000 pour me dire qu'au moins je bruteforce jusqu'à depth 3

Stilgart: ok

Magus: enfin après quand je vois mazel qui fait un beamsize à 150 :D

Magus: je suis peut être pas le meilleur exemple à suivre

leojean890: j'ai essayé 400 et 200 moi;)

Stilgart: j'imagine qu'il a l'éval qui va avec

Magus: (vu qu'il est top 10 est pas moi)

Magus: *et

boumagik: y'a une myriade d'élagages possibles

Stilgart: au moins, je comprends la motivation derrière le 1000

boumagik: genre pas de BREW après un REST

YannT: comment tu fais ton beamsearch sans sort tous les éléments d'une depth avant de passer à la suivante?

boumagik: pcke cest forcément sous optimal

boumagik: partant de là tu peux avoir peu de noeuds générés

boumagik: j'pense

leojean890: #15 silver en cours de submit..

leojean890: bon..

Stilgart: go go go leojean890

leojean890: #14 et ça redescend :s

Stilgart: YannT: Magus a dit qu'il sortait... mais si tu veux que les N meilleurs, il y a peut-être un peu à gratter

Stilgart: c'est plus facile qu'un sort complet a priori

leojean890: #10 ah non mieux

YannT: y'a p'tet un truc en mettant les éléments dans une priority queue remarque

Magus: j'ai pas vraiment cherché à optimiser le sort vu qu'on au final tu le fais que une fois par depth

Magus: même si t'arrives à faire depth 30, tu vas faire 30 sorts

Magus: ça te prendra même pas 1ms

Stilgart: j'imagine que tu sortes un tableau d'index ?

Stilgart: (auquel cas c'est vrai que ça coute rien)

Magus: un tableau de pointeur

Magus: mais oui je sorts pas les noeuds eux même, ce serait plus lent de bouger tout le monde

Magus: mais même si tu sorts tes noeuds directement, ça prendra pas longtemps

Stilgart: bon, reste plus qu'à trouver le puzzle le plus simple sur CG pour tester ce beamsearch

YannT: une PriorityQueue ça peut etre cool non?

leojean890: tu peux le faire sur hypersonic et 2048 par ex^^

Magus: c'est quand même le sort de C++, même sur des objets assez gros il va y arriver en moins de 1 ms si tu le fais 30 fois

Zorg1: "Beamsearch Simple Exercice" d'unChat ?

Stilgart: leojean890: ha... 2018

Stilgart: +30

Stilgart: bien _a

Zorg1: ah il n'existe pas encore ^^

leojean890: je note vos conseils^^ faudra que j'essaye

leojean890: d'améliorer mes beam

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

Stilgart: interface chaise-clavier boguée

leojean890: 2048 pas trop dur à simuler

Stilgart: bien ça*, c'est un solo donc c'est plus simple

Zorg1: (sinon il ,n'y a pas 2048 d'eZ pour le beamsearch)

Zorg1: ah grillé

leojean890: dur d'optim le beam

leojean890: Neumann a passé du temps dessus^^

leojean890: #12 à 96%:(:(

leojean890: ça va pas encore apsser gold:(

Zorg1: ah oui il rageait jusqu'à arriver à 50 000 000 je crois

Stilgart: non, la phrase magique c'est pas ça

Stilgart: c'est "pan le boss"

Stilgart: 50M ?!

leojean890: #13 à 100% dommage (poussé comme dwarfie ??)

leojean890: ouais 50M à 2048

leojean890: les 10 meilleurs ont ça

Stilgart: bon, ça calme :)

leojean890: moi j'ai 3.5M en python en comparaison

leojean890: c'est dans ma todo de passage C++ ou go

leojean890: à déterminer

Stilgart: je me rends pas compte, j'ai pas essayé

Zorg1: t'as la fonction de random et le seed

YannT: https://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html

YannT: me demande si se serait pas mieux que de blinder une array (même d'index) et de la sort

leojean890: avec un langage rapide tu devrais faire mieux que mes 3.5M de python sans numpy^^

YannT: du moins en JVM

Stilgart: c'est évalué comment 2048 ?

Stilgart: avec des seeds au hasard tirées par le referee ?

leojean890: par ex "avoir plein de 0"

leojean890: ou "le gros dans un coin"

Stilgart: je parlais du jeu sur CG :)

leojean890: je parlais des fcts d'éval connues :P

Stilgart: (mais c'est vrai que dans le contexte c'était pas clair)

leojean890: mais ouais le jeu

leojean890: il te donne la seed

leojean890: euler te met un lien dans le statement

leojean890: vers sa simu

Stilgart: mais c'est la même seed pour tout le monde en arène ?

leojean890: qui génère des 2 ou 4 pseudo random

leojean890: t'as une seed par valideur

leojean890: si tu le lances tu pourras voir ça

leojean890: du coup tu peux tout calculer d'avance

Zorg1: voilà un jeu de test = un seed

Stilgart: la sous-question c'est : a-t-on un risque de voir des hardcoders ?

leojean890: Stilgart oui et non

leojean890: car 100ko

leojean890: et puis il faut simuler 60k coups dans une partie..

leojean890: 600 frames max

Zorg1: c'est assez énorme ce qu'il faut sortir

leojean890: et les meilleurs ont 100 coups par frame

Zorg1: à moins que tu sois le roi du zip

Zorg1: vu qu'un move c'est 2 bits

Stilgart: For technical limitations you can only output 600 commands per game. To allow for longer games, you can print multiple actions at once.

Stilgart: ha oui, ce détail là :)

leojean890: voilà

Stilgart: cool, ça me plait bien 2048 finalement

leojean890: et à hardcoder Neumann avait parlé de le faire mais ne peut pas pour ça (ou pouvait le faire pour 1 valideur max sur genre 30^^)

Stilgart: (c'est pas encore bientôt que je vais faire bender4 et space maze)

Stilgart: note que à CvZ, c'est bon avec juste un validateur :D

leojean890: bender 4 j'ai enfin 100%

leojean890: mais un score nul en optim

leojean890: donc bon

leojean890: portage C++ presque fini avec un bug

leojean890: car ma dernière version python a des TO

Zorg1: CvZ : oui ça tue un peu le validateur qui rapporte un gros paquet du score final

leojean890: CVZ y'a un valideur qui apporte masse points ?

Stilgart: oui

leojean890: j'en ai à peu près autant sur plusieurs valideurs

Stilgart: le 17 en ide, de mémoire

leojean890: ah ouais j'ai tjr un peu plus sur genre 13 17 18

Zorg1: oui avec les bonnes combos

leojean890: mais pas les combos pixel perfect^^

Zorg1: après je pense qu'il aurait fallu que chaque validateur rapporte un certain nombre de points max, mais bon ça aurait peut être un peu trop "applati" le classement

leojean890: Neumann avait parlé de combos pixel perfect d'ailleurs dans cvz

leojean890: faut avoir une bonne search

Stilgart: il a bien bourriné CvZ oui

Zorg1: bah tu faisais tourner ça en local jusqu'à trouver les bonnes coord

Zorg1: si j'ai bien compris

leojean890: ouais..

leojean890: je l'ai pas mal fait pour A*craft

leojean890: qu

leojean890: mais je suis seulement 83eme

leojean890: alors que simus locales plein pot^^

Zorg1: ah Search Race (CSB solo) je suis toujours 5e sans hardcode

leojean890: belle perf je pense^^

Zorg1: en Go ^^

leojean890: t'as reporté ça dans ton CSB au moins

Zorg1: bah oui

leojean890: vu ce que tu m'as expliqué tu sembles fort pour optim du go

leojean890: ouais tu me l'avais dit pour report CSB

Zorg1: ça m'a permis de repérer pas mal de connerie

leojean890: t'as su comment optim ton AG quoi:)

Zorg1: enfin optim du go c'est un peu vain comme boulot même si c'est marrant

Zorg1: en C/C++ le gars va m'éclater avec moins d'effort

leojean890: bah tu m'as dit que t'avais 50k nodes sur FC c'est 5* mieux que moi^^

leojean890: ouais je sais pour C/C++^^

Zorg1: 100k en fait ;-)

leojean890: j'aurais p'tet dû faire FC en C++ :)

leojean890: mais j'avais pas la foi quand j'ai commencé le portage^^

leojean890: (je venais de porter bender 4 genre 1 semaine avant et j'vais un bug que je galère tjr à trouver donc j'étais un peu saoulé du C++^^)

Zorg1: après C++ je t'avouerais pas un langage qui m'attire. plutôt le contraire

leojean890: pareil j'aime pas trpp la verbosité

leojean890: avec les map<vector<int,int>>::iterator

leojean890: les trucs comme ça

Zorg1: pas vraiment ça qui me fait peur c'est plutôt la logique "pay for that you use" qu'est vicieuse, elle nécessite que tu connaisse bien comment ça marche sous le capot pour être efficace

leojean890: map<vector<int,int>,string>::iterator

les trucs comme ça

Zorg1: en C ça va encore, mais avec les usines à gaz que sont les trucs objets ...

leojean890: mon précédent était faux^^)

leojean890: le C....

leojean890: ça me fatguerait de recoder les structures de data

leojean890: faut le préparer en amont du contest

leojean890: quoi que.. tout faire en bitset sinon:)

Zorg1: ah le C c'est "simple" mais t'as pas toutes les dernières features à la mode (quoique d'après ce que j'ai compris ...)

leojean890: j'imagine pas le temps que je mettrais à coder des trucs en C^^

leojean890: pour un contest..

leojean890: pas sûr de finir dans les temps:)

Zorg1: C'est comme go, pour moi c'est du Pascal déguisé avec une syntax à la C ;-)

leojean890: le go franchement j'ai pas été très long à migrer mon python

leojean890: alors que j'en avais jamais fait

leojean890: je pense moins long qu'en c++

leojean890: alors que j'en ai fait en entreprise (un peu)

leojean890: mais c un peu chiant par rapport au python qui est bcp plus flexible^^

leojean890: pascal j'ai jamais essayé:)

Zorg1: le C ça accuse son âge quand même

Zorg1: en fait go est assez proche du Pascal (enfin Obéron un descendant de Pascal), d'ailleurs c'est assez frappant avec les blocs const, type et var ^^

leojean890: quand j'en faisais en école.. je galérais:)

leojean890: en 1A ils nous faisaient faire bcp de C

leojean890: même coder une I de voitures en mode BFS;)

leojean890: IA*

leojean890: projet de 1A t'as 6 mois de dev dans les pattes seulement ;)

leojean890: et hop, faites une IA de voitures en C

leojean890: narmol;)

Zorg1: faut bien commencer un jour

leojean890: et en 2A des IAs en python^^

leojean890: oauis je sais

leojean890: ça nous met dans lebain:)

Zorg1: avec mon binôme on avait un macroprocesseur à coder en 1A

leojean890: pour comprendre les pointeurs etc;)

leojean890: t'étais dans une filière avec pas mal d'embarqué ?^^

Zorg1: macrocompilateur plutôt

leojean890: ah ouais on a eu un compilateur simple à faire aussi

Zorg1: bah on avait les deux, embarqué & grosse appli

leojean890: objectif comprendre lex et yacc etc^^

leojean890: on a fait un peu de PIC18 en 1A

leojean890: PIC32 en 3A

leojean890: DSP en 2A

Zorg1: 6809 pour moi

leojean890: ah d'accord je ne connais pas:)

leojean890: bcp de doc à lire en tt cas

leojean890: et de l'assembleur

Zorg1: c'est un proc plutôt facile (comparé à des horreurs comme le Z80)

leojean890: je ne connais pas^^

Zorg1: c'est un peu au musée maintenant ces trucs là

leojean890: comme le CORBA^^

leojean890: j'ai eu un cours de CORBA mais le prof a dit que ça sert plus^^

leojean890: et 'année d'après y'avait plus le cours;)

Zorg1: le CORBA quand j'ai commencé tout le monde ne jurait que par ça

Zorg1: ça allait tout révolutionné ^^

leojean890: quand j'ai bossé à thales y'avait du corba dans le projet

leojean890: mais c'était dans les meubles du projet

leojean890: plus à maintenir quoi^^

leojean890: juste pour gérer le scada

Zorg1: le truc "historique" qu'on se traine quoi

leojean890: ouais sur certains trucs anciens :)

Zorg1: avec un petit génie qui a bricolé une lib Corba/JSON :p

leojean890: ça a servi en son temps^^

Zorg1: qui marche une fois sur trois

leojean890: corba2json

Zorg1: ça existe en plus :fearful:

Zorg1: j'ai juste dis ça pour déconner

leojean890: et t'as cherché ET trouvé:)

leojean890: faut bien inventer les trucs qui peuvent potentiellement servir :P

leojean890: à certains téméraires

Zorg1: omg 2 heures du mat'

leojean890: hehe soon time to sleep:P

leojean890: pris l'habitude de dodo tard avec le contest ?:P

leojean890: weekend chargé

leojean890: pour passer légende :p

Zorg1: non pas trop on a une mise en prod le WE qui vient (enfin ça devait Samedi dernier mais ça a été repoussé, ça m'a permis de bosser mon bot ^^)

leojean890: gg pour la légende anyway^^

Zorg1: merci ^^

leojean890: alors que moi..silver :P

leojean890: #13

leojean890: c balo

leojean890: petite poussette svp:)

leojean890: pb4 sérial winner

Stilgart: wow, j'en ai une grosse vingtaine qui font moins bien que mon full random à 2048

**Stilgart va allumer un cierge à Saint Manwe