Chat:Fr/2020-11-23
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
CrazyHidenTalan: Dites, comment on peut s'améliorer?
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
R4N4R4M4: Salut tout le monde
Mazelcop: o/
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
sanpas83: jamais dire sa :)
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 .. .
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
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é
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 :(
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 :)
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
SpeedSPTest: go derniere chance
Zakaoai: bah déjà la je leur relaisse la place 1
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 ?
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?
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é ! :)
CrazyHidenTalan: Il sert à quoi le tomeindex?
R4N4R4M4: A goûter la tome :D
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
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
Mazelcop: ShinjiKun -> c'est un peu long à expliquer dans le chat, j'en parlerai dans mon postmortem
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
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
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
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)
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
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
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
JBM: c'est pas forcement "mal" ou "bien" ça, àmha ça dépend surtout de la forme de ton eval
ThomasNicoullaud: YannT si tu fais pas ca, comment tu evalues à depth N un brew X tour avant ?
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
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
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
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
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)
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
JBM: le decay est une heuristique pour contrer le fait que t'as pas l'adversaire dans ton etat
JBM: t'en aurais pas besoin si tu faisais un maxmin avec l'adversaire
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?
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 ?
JBM: ...de la maniere qui ordonne les noeuds comme tu le veux
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
JBM: je crois que ça tlm est d'accord
pb4: Ok, j'avais mal lu au dessus alors
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.
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
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
JBM: mmm, 64 les miens (mais j'ai pas effleuré l'idée de commencer à les optimiser)
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 ?
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
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
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é ?
JBM: tu me demandes parce que j'ai demandé?
OldDadou: Comment ca un brewed sur 5bits ?
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% :(
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
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
JBM: mais là c'est juste pour pinailler
Stilgart: je ne trouve pas
JBM: ça change un == en <= dans ton acceptation de solution
Stilgart: enfin, je serai content que mon code ne passe pas là
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 ?
Stilgart: mon code actuel il répond 1000, mais peut-être que la réponse attendue était 2
JBM: si ça met le statement en défaut, tu peux aller rajouter le commentaire au bon endroit
JBM: mais je me souviens assez clairement avoir posé la question
Stilgart: ok
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 ?
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 ???
JBM: en rust qui perfe autant ça sent pas un habitué d'ici
Stilgart: je te rassure CopperFr, c'est pas toi
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++
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
JBM: clairemente CG les favorise
chibi: ou pcq c'est plus rapide ?
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
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
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
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 ?
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
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
JBM: (apres sakisan je crois ceci dit)
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 :-)
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
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)
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
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
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
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
JBM: et tes strings, leojean890
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 ?
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
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: 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:
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
Stilgart: par contre, j'ai vraiment du merder un truc dans ma fonction d'éval
JBM: tiens tvc a passé les 250 upvotes pendant le contest
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
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
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
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:
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?
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
JBM: Traquila: le nb d'inventaires possibles
Zorg1: 7*11*13
Traquila: ok le truc sur 11 bits :)
dbdr: 1001 c'est 9 en binaire
- door:
Zorg1: oui mais tu met un bit en plus au cas om
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
Traquila: demande le dans ton programme
JBM: le plus rentable des procs
Zorg1: bah tu fais un cat /proc/cpuinfo tu vas vite le savoir ;-)
dbdr: CODE[cpuid()]()
JBM: bon, si j'écrivais un PM moi
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
JBM: vois les choses du bon côté
CopperFr: c'est quoi du coup comme proc ?
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
JBM: vivement que ca arrive pour haskell
Zorg1: bah je sais pas CopperFr prend toi en main
Kirbiby: et aujd LEgend en 25 minutes
Kirbiby: 24h trop tard sa m********
dbdr: premier boss rust?
CopperFr: c'est ton destin ?
dbdr: oui
dbdr: c'est lié
JBM: c'est limite une conséquence logique
dbdr: et de plus en plus dans le top
dbdr: enfin bon emil...
dbdr: c'était un leure je suppose
Zorg1: petit ange parti trop tôt ?
dbdr: emil était en rust, mais c'était un wrapper je suppose
CopperFr: un leure ?
dbdr: du #3
dbdr: non?
JBM: ça m'avait été présenté, comme idée
Zorg1: ah t'as la même théorie que moi
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 ?
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
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