Chat:Fr/2021-05-17

From CG community
Jump to navigation Jump to search

Default avatar.png Troph: Pink idem :(

[SG]Bisou: Je suis le seul qui des gros problèmes de time out depuis hier soir? Je suis obligé de me limiter à 45ms et je ne peux même pas tester face à mon ancienne IA (elle time out aussi dans l'IDE) :(

-Cile-: Houuuuuu mais il y a eu beaucoup de passages en Legend cette nuit !

-Cile-: o/

Mazelcop: yo o/

-Cile-: dormir me réussi vraiment pas mal

Mazelcop: #55 en python, gg -Cile- !

-Cile-: après pour une heuristique le langage n'est pas si important ;)

Mazelcop: c'est sûr :)

-Cile-: mais oui terminer probablement dans le top #100 pour mon 1er projet en python je suis plus que contente

YannT: oh j'ai pris cher dans la nuit

YannT: resubmit

-Cile-: je pense savoir pourquoi ma gestion des ombres est foireuse, mais il faudrait que j'aie le temps de modifier et tester... :/

YannT: houlà touche pas malheureuse :D

-Cile-: c'est ce que je me dis, mais je vais quand même tester (dans l'ide) une version "allégée" (je n'aurais pas le temps de faire plus de toutes façons)

jdeveil: je serai intéressé par ton post mortem une fois le challenge terminé ;)

-Cile-: jdeveil qui moi ? :o

jdeveil: oui

-Cile-: il va falloir que j'aille voir à quoi ça ressemble

jdeveil: je pense avoir déconné sur la gestion des ombres (géré uniquement pour le tour en cours)

dbdr: ah #54, gg -Cile-

jdeveil: et dans la définition de la structure de données de la forêt

jdeveil: j'aimerai voir comment les autres ont géré ça

jdeveil: toi incluse

-Cile-: je tenterai :) merci dbdr

Default avatar.png Troph: bon j'abandonne, j'admets ma défaite

Julius2k17: salut tlm

-Cile-: o/

Kafeine: Plus je supprime des lignes de code et plus je gagnes de places

Default avatar.png JBM: allez, j'ai «bien» dormi, 90min pour améliorer un peu le sac de ifs

SefioR13: Je me réveille et je vois que j'ai perdu 60 places comme ça dans la nuit

Default avatar.png JBM: c'est pas beaucoup

SefioR13: C'est suffisant pour me mettre le seum

Zorg1: salut tout le monde et Automaton2000

Automaton2000: la première fois que je vais commencer par remanier mon sommeil (si j'y arrive)

Zorg1: bon je suis passé légende cette nuit nice ^^

Default avatar.png JBM: gg

Zorg1: merci :)

Default avatar.png JBM: du coup t'as le droit de continuer à bidouiller

Default avatar.png JBM: ah merde je viens de push un crashbot

Zorg1: non je touche plus à rien là ^^

Default avatar.png JBM: ah lol

Zorg1: 223 en légende :astonished:

-Cile-: oui, beaucoup de personnes ont profité de la nuit

dbdr: pour une ouverture à combien, 100? c'est pas énorme

Zorg1: oui de 100 à 223 c'est moins que de 15 à 60 ^^

dbdr: voila

dbdr: apres le jeu est peu random

dbdr: plus dur de passer sur un malentendu ;)

Default avatar.png JBM: et voilà, déjà 10 places de gagnées à 15% de run en reformulant sans changer la logique

Default avatar.png JBM: le code propre, ça paie!

Default avatar.png JBM: (et ça fait ramer CG)

dbdr: le referee il privilégie le code propre? :D

Default avatar.png JBM: la preuve!

dbdr: mesure de complexité de code

dbdr: quantité de commentaires

Default avatar.png JBM: ah pour le coup la complexite (cyclomatique) a empire)

dbdr: relegation en silver!

Default avatar.png JBM: c'est contraire a la beaute de l'abstraction

dbdr: ah, pardouin cheat l'achivement langage? moche, moche

dbdr: tiens, je remartque que D, ça fait note US c'est approprié je trouve

Default avatar.png JBM: ça trolle

dbdr: à quand le D+?

Default avatar.png JBM: et le E♭

dbdr: :D

Zorg1: ah zut y a un gars en D au dessus de moi :(

Default avatar.png JBM: du D en legende?

Default avatar.png JBM: c'était pas interdit?

Zorg1: et j'suis même pas #1 en go, la honte

dbdr: si en base #0

Default avatar.png JBM: ça marche comment la base #0?

dbdr: ah mais t'es passé quand Zorg1? gg

dbdr: longue nuit?

dbdr: ben le premier il est #0, et ansi de suite ;)

Zorg1: à 2 heure j'étais en dessous du boss en train de push, je suis parti me coucher

dbdr: pauvre bot laissé tout seul

Zorg1: soit je suis passé à la fin de mon push, soit on m'a poussé

dbdr: et hop mid legend

dbdr: arf, 53/46% en local, c'est juste à la limite de ce qui se tente

dbdr: mais à ce stade, ça vaut pas le coup je pense

Julius2k17: bravo Zorg1

-Cile-: dbdr : j'en suis à peu près au même stade, j'ai relancé une série de tests pour me décider (ou pas)

dbdr: tu fais combien de matchs? et en symmetrique?

YannT: non toi touche -Cile- tu vas regretter :D

YannT: +pas

-Cile-: je suis dans l'ide (donc peu de matchs) et je teste contre des ai déterministes 2 fois la même partie

Zorg1: merci Julius2k17

R4N4R4M4: Salut tout le mond

R4N4R4M4: *e

Zakaoai: Hello les gens

Julius2k17: salut

pb4: ping CharlesBesson

CharlesBesson: Hello pb4

pb4: --> MP

Zorg1: o/

jdeveil: Ce qui me dégouterai, c'est qu'en lisant les post mortem, je trouve la solution qui me fasse passer legend sans refactor de mon code (qui fait aucune simu, même pas du tour suivant)

Default avatar.png JBM: évite de lire les PM alors

jdeveil: ba oui mais je veux m'améliorer :)

Default avatar.png JBM: bon, mon amélioration me fait perdre 200 places

Zakaoai: Bon bah pour l'investissement que j'ai mit sur ce challenge c'est plus propre que le FC2020. Mais déçu de pas avoir put faire mieux...

Default avatar.png JBM: pour un code qui avait pas été soumis en 4j, c'est pas trop mal non?

Zakaoai: Pas mal oui

Default avatar.png JBM: je vais quand meme faire un retest-run avec le vieux

Zorg1: vazy t'as encore une heure, le temps d'un demi-push

Zakaoai: Bah il te reste 1h profite en

Default avatar.png JBM: je vais des cinquièmes de push

Default avatar.png JBM: houla non

Default avatar.png JBM: je vais consommer 30 min pour déterminer si j'envoie la version vieille ou la version improved

Default avatar.png JBM: et je retourne dormir

Default avatar.png JBM: (ou faire autre chose)

-Cile-: dormir ça marche

Zorg1: :thinking:

-Cile-: (j'ai été poussée en legende)

Julius2k17: modeste avec ça

Zakaoai: PM ou pas PM après ce challenge tel est la question que je me pose en ce moment.

jdeveil: y aura-t'il une section spéciale sur le forum pour les post mortem ?

Julius2k17: oui

jdeveil: argl je vois pas où sont les post mortem des challenges précédents, c'est mal parti :p

Zakaoai: Les gens se sont bien dépassé quand même 5 JS en légende

Zakaoai: Pour une fois que les heuristiques peuvent passer légende.

-Cile-: bon, après quelques tests supplémentaires, mon amélioration du matin (sur les ombres) donne le même résultat que celle d'hier soir : 0% de victoires en plus. Les ombres ne m'aiment décidément pas.

jfaixo: bravo a tous en tout cas, pas eu le temps (et surtout le skill !) de faire mieux, me tarde les PM, et rdv à l'automne, d'ici là j'espère être meilleur mouaha ! ;)

Neumann: :clap:

-Cile-: jdeveil je pense que les PM vont être dans cette catégorie, dans un nouveau topic qui s'appellera "Feedbock & Strategy" https://www.codingame.com/forum/c/contests/9

-Cile-: feeback...

-Cile-: rhaaaa !!!

Default avatar.png JBM: allez hop, dernier submit en introduisant un vague coeff, non testé en IDE

Julius2k17: ^^

philRG: o/

egaetan: bravo à tous et toutes ! merci pour l'ambiance, je vais acheter du désherbant avant le rerun

Default avatar.png JBM: et je passe à autre chose

Default avatar.png JBM: ah oui tiens faudrait que je tonde la pelouse

Default avatar.png JBM: mais y'a trop de soleil dehors

philRG: Si tu soumets avant 10h, ça passe?

Julius2k17: j'avoue g abattu 2 arbres ce we mais j'ai pas fait gaffe aux ombres

Default avatar.png JBM: si elles étaient spooky?

Default avatar.png JBM: c pas très spooky chez moi

Zorg1: philRG : oui

philRG: :-D

Default avatar.png JBM: faudra que je rajoute de la toile d'araignée pour allo win

philRG: ok merci Zorg1 et bravo c'était cool de te voir monter légende :-)

Julius2k17: ct les arbres qui étaient menaçants, genre ca bouge à l'épaule..

Zorg1: ^^

OldJohn: Moi les arbres qui devaient tombés sont tombés cet hiver chez le voisin :-(

Julius2k17: j'y ai eu droit également il y a qq années

-Cile-: merci beaucoup pour l'ambiance

Julius2k17: le truc c'est qu'il faut faire gaffe quand tu veux abattre des arbres c'est que les autres ont poussé en conséquence

Julius2k17: donc en enlevant certains tu casses l'équilibre

Zakaoai: J'ai pas été ultra présent ce challenge mais c'est cool de voir plus de gens dans le tchat

Julius2k17: oué très sympa comme d'hab

Anone13: 37 min pour faire la différence

Zorg1: le dernier push ...

Zakaoai: FC2020 558em / 537em sur celui la

jdeveil: merci -Cile-, j'ai mis ton lien en bookmark pour voir dans la semaine

OldJohn: Hum, j'avais pas vu que cela finissait si tôt :-)

jdeveil: merci à tous pour ces bons moments, c'était cool :)

Zakaoai: seul difference c'est le nombre de gold et legend

OldJohn: Mon j'arrête mes essais alors !

Zakaoai: Bon nous sommes 3 pour le prochain challenge :D

jdeveil: ah ben ça y est le topic pour les post mortem est déjà lancé :)

jdeveil: allez les gars, go go go (il me reste 33 minutes pour les lire et modifier :p )

Anone13: Le dernier rush

philRG: OldJohn légende gg

OldJohn: @philRG thanks

philRG: ah oui y a du niveau ;-)

philRG: Programming computer board games since 1976

OldJohn: bref un ancien !

Zakaoai: D'ou OldJohn comme pseudo :D

OldJohn: @Zakaoai Yep !

OldJohn: @philRG mais j'ai commencé jeune :-)

OldJohn: @philRG mon premier programme d'Othello, j'avais 10 ans

philRG: ah ok je crois quand on commence jeune, c'est plus facile après

philRG: :thumbsup:

OldJohn: Dommage qu'il y ait pas Microsoft Basic 0.9 dans CG... Je pourrais recoder mon programme...

Vry: o/ les gens

philRG: hehe, moi c'était sur mac version 1.0 je crois

Default avatar.png JBM: \o Vry

philRG: o/

egaetan: salut vry

-Cile-: Oldjohn : moi c'était un jeu de cartes à 11ans (et demi, ça compte à cet âge) avec un mode de jeu contre l'ordi, en Qbasic

philRG: donc je suis plus vieux car je devais avoir 18 ans

Zorg1: \o vry

-Cile-: o/ vry

Magus: bon, on va espérer que je reste dans le top 10 pour la fin quand même :D

philRG: purée je me souviens plus

philRG: https://en.wikipedia.org/wiki/Applesoft_BASIC

philRG: j'ai débuté par çà et ensuite Pascal, puis C

Julius2k17: 76 oldjohn ?

philRG: mais j'étais déjà vieux 18 ans environ

OldJohn: C'est un Basic récent celui la !

Vry: On a exactement le même classement egaetan :sunglasses:

philRG: après y a pas d'âge pour coder, faut seulement pas avoir mal au dos et au cou

Julius2k17: M07 ou TO5 ?

Zorg1: pas l'inverse les chiffres ?

Zorg1: TO7 MO5

Julius2k17: je crois pas

OldJohn: @julius2k17 avant le TO7 j'ai eu le proto Thomson...


OldJohn: @julius2k17 mais j'ai commencé sur DTC Mk2....

Default avatar.png D--K: cc

Julius2k17: @Oldjohn t'as commencé de bonne heure, moi g pris plus de temps

-Cile-: Oldjohn : évidemment qu'il est récent, comme moi :p

Julius2k17: Allez Jolindien, donne tout

Default avatar.png BabelO: bah le Z80 vous l'avez zappé ?

Zorg1: ZX80/ZX81 non ?

OldJohn: Non j'en ai eu aussi...

Julius2k17: je préférais les playmobil dsl

OldJohn: Je vendais des programmes pour ZX80

Default avatar.png BabelO: oui ZX80

Julius2k17: je pensais être dans les doyens mais je crois que t'as une longueur d'avance Johnny

Vry: Le rerun, c'est toute la ligue Légende ?

Vry: gg Zorg1 au fait !

Zorg1: merci vry :)

Zorg1: pour le rerun j'ai un peu peur qu'ils ne prennent que les 100 premiers comme ils avaient fait pour BotG ...

Vry: Tu es passé pas trop tard ?

Zorg1: vers 2:00 apparement, j'étais en train de pusher et juste en dessous du boss

-Cile-: un dernier match contre l'AI de base. 218-1 Jamais vu un score pareil

Vry: lol ... cest dommage que le boss du niveau précédent ne soit pas repris comme IA de base

Vry: *c'est

Default avatar.png JBM: tiens c'est pas con ça

Default avatar.png JBM: fais-en une vraie propale

SefioR13: Vous pensez que ça vaut le coup que je fasse un dernier submit j'ai fait quelques modifs de dernière minute ?

Default avatar.png JBM: ça dépend

Julius2k17: tu vas le regretter

WhatTrickeryIsThis: bien, c'est maintenant que Agade il submit?

GeoBlack: c'est jamais bon

Julius2k17: le mieux est l'ennemi du bien ^^

Zorg1: ha Agade il hide finalemetn ,

Default avatar.png JBM: ah?

SefioR13: Ca marche

Vry: Ça a coupé ... :p

SefioR13: gg à tous

YannT: bravo tout le monde!

-Cile-: GG ! :)

TylerDurden: gg :)

egaetan: gg

Julius2k17: gg

BlitzProg: gg

nicolasD: C'était fun ^^

Skygge: gg

GTS: gg

VilBoub: \o/

Julius2k17: le site CG a pas supporté le cut

BlitzProg: les serveurs qui semblent bien prendrent

philRG: y a déjà le lien pour s'inscrire au prochain challenge :-)

Julius2k17: ils ont cut les runners et le web

Zakaoai: gg

BlitzProg: j'ai fait un envoi de dernière seconde... ça devrait faire 250 gold en étant optimiste

BlitzProg: un rattrapage modeste

Default avatar.png BabelO: tu as utilisé quelle methode au final ?

BlitzProg: Le tout premier bot, avec quelques modifs triviales

BlitzProg: genre pas dépenser pour un grow tour 23

BlitzProg: et une autre moins triviale qui détecte une forte différence d'économie sur le sun, suggérant que l'adversaire a sorti la tondeuse

Julius2k17: tu peux cut que des size 1 avec une tondeuse

WhatTrickeryIsThis: gg!

WhatTrickeryIsThis: <3

BlitzProg: du coup je flex l'économie et attend la fin pour tout raser pour grab quelques points de plus avec les suns

WhatTrickeryIsThis: pas de summer challenge ?

Zorg1: ça doit pas être compatible avec les congés d'Apo

Zorg1: :p

philRG: BlitzProg: pas eu le temps de tester la différence entre cut et pas cut dans mon algo

philRG: % à la gestion du sun

philRG: je cut seulement sur une prévision à 6j du nombre d'ombres et aussi en fin de partie

philRG: il me reste souvent du sun pas consommé

-Cile-: 6 jours de prévision d'ombre.... soupir...

Zakaoai: j'ai fait pareil -Cile-

Zorg1: les premiers PM sont sortis

-Cile-: Zakaoai pour les 6 jours ou pour le soupir ?

philRG: Zorg1: pas le temps de se reposer :-D

philRG: dormir c'est pour les faibles ou les vieux :-D

Julius2k17: un peu de respect stp

Julius2k17: ^^

GuillaumeBardy: le classement est figé à quel moment ?

Zakaoai: les 2 -Cile-

Zorg1: fin des push en cours + rerun éventuel

GuillaumeBardy: ok :)

-Cile-: rerun... avec le code soumis ou celui dans l'IDE ? :o

Zorg1: en gros vers midi ça devrait être stabilisé

Zorg1: le code soumis

-Cile-: OUUUUFF !!!

Julius2k17: ^^

Julius2k17: rerun avec un random sur l'historique à 5j et prise en compte du spookiest code

Vry: Tu as le lien Zorg1, vers les PM, je suis paresseux ... :D

Zorg1: https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies/190849/4

Zorg1: ah ok c'est une règle connue ça le "pas de seed juste à côté de tes arbres"

Zorg1: c'est BigUp qui m'en a parlé hier, j'avais pas impacté

dbdr: Zorg1 sauf recurse...

Julius2k17: oué mais ça m'a pas sauvé

Vry: Ce qui m'a fait passer Légende c'est pas de seed sur les arbre de taille 1 !

Vry: Ce qui m'a fait passer Gold c'est un MCTS sans bug + pas de seed dans les 6 directions (tout en gradant les seed des arbre de taille 1)

-Cile-: bon, comme je n'aurais pas le temps aujourd'hui pour le PM, je le mets ici pour ceux qui se demandent ce que je fichais avec l'ombre : http://chat.codingame.com/pastebin/49f1314d-9114-4fe9-8b9e-3faaaae5e0b4

GeoBlack: pas de seed dans les 6 directions ?

-Cile-: qu'est-ce que c'est que ce lien ?

Vry: http://chat.codingame.com/pastebin/f4815ffb-417b-4f11-aa4f-32ed10b99bb4

Zorg1: quand tu copie/paste un gros morceau de texte, CG te crée un pastebin

Vry: Pour un taille 3 je ne teste que certaines cases

-Cile-: j'ai pas copy-paste mais c'était un gros morceau

Zorg1: ah ok t'évites de planter à l'ombre de l'arbre qui envoie la graine

Vry: -Cil-, j'avais code une fonction comme ça pour mon dummy mais je ne l'ai pas utilisé (mon dummy)

Zorg1: *ombre potentielle

Vry: Oui Zorg1

Vry: Et une seule seed à la fois

Vry: Sinon c'est un MCTS classique

Zorg1: oui ça le une seule seed à la fois j'avais ça depuis le début ^^

-Cile-: pour moi le seed c'était distance de 2 minimum de tout autre de mes arbres (donc les size1 ne seed pas) et je comptais le nombre de fois où ma graine allait se trouver sur un même axe et à moins de 3 cases qu'un autre de mes arbres. Tri d'abord sur les "axes" puis sur la distance minimale.

Kirbiby: C'est quoi le raisonnement derrière une seule seed à al fois ?

-Cile-: c'est gratuit

Tiouz: Kirbiby C'est moins cher, et ça ne sert à rien d'avoir plein de seeds si tu ne les fait pas grossir

Anone13: On fait comment pour refaire le sping challenge ?

bananaMixer: C'est gratuit. Et ça réduit la taille de la recherche.

Zorg1: par contre j'ai pas trop compris leur truc séquentiel pour leur MCTS, je jouais seulement le coup un noeud sur deux en prenant le coup dans le noeud parent et le noeud en courd

-Cile-: et ça t'évite d'avoir à payer quand plus tard tu as un super emplacement pour planter

dbdr: Zorg1 c'est ça séquentiel Zorg1

Kirbiby: okay

Zorg1: dbdr : bah Magus dit "l'adversaire connait mon coup"

dbdr: oui, parce qu'il est dans une branche du parent

dbdr: ses stats vont le refleter

Zorg1: ah ok

dbdr: dans cette branche tu fais toujours le meme coup, donc il le "sait"

SeebOmega: Anone13 il va etre remis dans la categorie competition bot programming sans limite de temps fau tattendre el classement definitif

Zorg1: oui oui je vois l'idée

jonenst: on peut plus accéder à son code quand c'est terminé ?

SeebOmega: si dans report

Default avatar.png JBM: y'a déjà les reports?

SeebOmega: ils sont dispo sur le site ils arriveront par mail plus tard

SeebOmega: quand le compute final sera fini

OldJohn: En fait il faut raisonner avec un problème du type chifoumi (pierre papier ciseau) itéré. un mcts classique ou un alpha beta ne convient pas car l'adversaire "connaît" le coup du premier joueur.

Default avatar.png JBM: ou juste réaliser que mcts tend vers minmax

jonenst: Ah j'ai pu effectivement accéder à mon code dans le rapport merci

OldJohn: Mais dans mon cas, l'alpha beta classique à mieux fonctionné que celui adapté. (Je le rententerai plus tard)

Magus: "ne convient pas", en fait ça convient, c'est juste en théorie moins bien

Magus: mais après il y a la pratique

Magus: et jouer en simultané coute en performances, et ça devient parfois moins bien que de juste laisser ton adversaire connaitre ton coup

Mazelcop: le resubmit global est lancé ?

OldJohn: @Magus oui cela fonctionnait plutôt pas trop mal mais le résultat est un programme très prudent car il pense que l'adversaire connaît son coup

Magus: mon IA est pas spécialement prudente

-Cile-: Mazelcop je ne pense pas. Peut-être qu'ils attendent la fin des stabilisations en or (des fois qu'il y en ai un qui passe)

Mazelcop: ok merci

dbdr: OldJohn c'est quoi l'alphabeta adapté?

Magus: ils attendent que tous les submits soient finies avant de rerun

Cendretoundra: @Magus, sur ton post mortem tu mets que tu ne copie jamais l'état du jeu, ducoup comment fait tu pour le mcts , tu store juste les modifications ?

Cendretoundra: Merci pour le PM détaillé d'ailleurs !

OldJohn: @dbdr en gros, tu fait de la recherche alterné, joueur A, joueur B, joueur B, joueur A, ....

Magus: j'ai une fonction save, et une fonction load

Magus: et c'est tout

Magus: au début je fais un game.save();

Magus: et quand j'ai besoin, je fais un game.load()

Magus: après c'est optimisé pour ne remettre à jour que ce qui a changé

Magus: (j'ai une liste des cellules qui ont changés)

dbdr: OldJohn ok. c'est toujours pas simultanné donc, mais ça évite un trop grand bias pour un joueur, c'est ça?

OldJohn: @dbdr C'est de mémoire un papier sur une adaptation d'alpha beta aux jeux simultanés. (Adaptation simple sans Nash...)

OldJohn: @dbdr oui c'est cela.

dbdr: ok, merci~

Cendretoundra: ok merci !

dbdr: Magus pourquoi ton DUCT était tellement plus lent, c'est la taille des noeuds?

Magus: non, c'était ça cause de l'exploration

Magus: enfin en fait j'ai essayé les 2

philRG: mon PM, c'est pas d'algo de recherche, uniquement des conditions de tests manuelles qui font entre 50 et 100 lignes sur quel type d'action je vais/peux faire (à partir de l'analyse poussée du jeu, streams et replays), et des prises en compte de paramètres pour choisir quelle est la meilleure action pour un type donné.

Magus: soit je stockais le score des actions dans le parent, et la les noeuds étaient plus gros et il fallait gérer un vector par parent. Donc ça ralentissait beaucoup la création de nouveaux noeuds

Magus: soit je stockais pas le score des actions, et je devais le calculer pendant l'exploration en parcourant tous les enfants

Magus: et la, l'exploration devenait très lente

philRG: je divise quand c'est un malus, et je multiplie mon score quand c'est un bonus

Magus: j'ai pas trouvé de moyen rapide de faire le DUCT

dbdr: ah oui, recalculer çá doit piquer!

philRG: exemple pour le seed: score = tree.size * seed_range * dest_cell.richness * (6 - dest_cell.week_shadow()) \

                       * (bonus + 1) / (malus + 1) ** 2 * (action.gain + 1) / (action.cost + 1) / (ring_num + 1) * (ring_origin_num + 1) / (neighbors_seeds_count + 1) ** 2

philRG: je me suis pas compliqué la vie lol

OldJohn: Mon MCTS était gouverné par mon générateur de coup légaux donc j'ai repris l'alpha bêta à la fin

leojean890: mdr sympa ton truc philRG ^^

leojean890: du bricolage de magic numbers, on dirait mon truc hehe

philRG: la simulation et les rollouts, ça aurait été cool pour gérer tout ça en un

WhatTrickeryIsThis: toutes ces variables avec des underscores

philRG: leojean890 ben si tu remplaces * par + et / par -, ça devrait marcher aussi

philRG: je pense?

philRG: WhatTrickeryIsThis: c'est la convention PEP Python

WhatTrickeryIsThis: oui, on devine bien :p

philRG: en dehors des fonctions de score, j'ai peu de _

philRG: là j'ai fait rush dernier we pour rajouter des params, mais sinon, si pas de simu, je modélise mes données dans des classes (pas de _

philRG: leojean890 c intuitif codé comme ça ouais et rapide

philRG: pour Grow, j'ai ça aussi:

philRG: bonus = cell.week_shadow_player(False)

               malus = cell.week_shadow_player(True)
               score = tree.size * cell.richness * (6 - cell.week_shadow()) * (bonus + 1) / (malus + 1) / (ring_num + 1)

GTS: Premier MCTS "qui marche" sur ce challenge pour moi (même si je reste coincé 476e) Mon eval est un peu moisie je pense, pas eu le temps de peaufiner, je vais lire les postmortem avec attention

philRG: après j'ai pas la simulation exacte, ça reste empirique

philRG: j'ai pas le cerveau d'un CPU qui va tester toutes les combinaisons possibles

Stilgart: tortue à tous

Stilgart: et surtout à Automaton2000

Automaton2000: oui je me doute bien.

philRG: ou la formule magique genre -3v qui va tout résoudre :-D

Stilgart: :)

Vry: o/ Stilgart

Zorg1: \o

OldJohn: \o/

Default avatar.png JBM: tortue

WhatTrickeryIsThis: t'as submit une daube r4 ?

Magus: bon, maintenant que le contest est fini, on fait quoi ?

Magus: ah oui c'est vrai j'ai un boulot

VilBoub: ^^

jdeveil: vous trouvez où les rapports du contest ?

Stilgart: gg Vry

jdeveil: sur le site ?

Stilgart: belle perf

Stilgart: gg JBM, belle tortue

Magus: jdeveil: tu recevras un email

Vry: Merci Stilgart !

Vry: Je remercie mon MCTS UTTT ... :)

jolindien: o/

Zorg1: \o

Magus: ah ouai je suis 16ème, avec un code qui était 6ème samedi soir :D

Magus: ça a beaucoup changé le dernierj our

Magus: *jour

Zorg1: ah tiens BrainSolver a eu l'idée du mapping que j'ai eu seulement hier soir :(

Zorg1: (pour le bitboarding)

dbdr: ça donne quoi bitBoard << 1, une rotation?

OldJohn: une multiplication par 2, non ?

Zorg1: non un déplacement suivant une direction de l'hexagone

Stilgart: ça marche avec un hexagone ?

Zorg1: si tu positionne bien tes cells oui

Zorg1: il dessine un hexagone dans 8x8

Stilgart: avec un rectangle je vois assez bien.... mais azvec un hexagone ça parait pas trivial de bien positionner ses bits

dbdr: http://chat.codingame.com/pastebin/fbd6488a-482c-4d37-8a0c-3bc8e00e3415

Zorg1: bah si c'est la représentation des cells hexagonales dans une grille rectangle, t'as seulement six directions à utiliser

Zorg1: https://forum.codingame.com/t/spring-challenge-2021-feedbacks-strategies/190849/13?u=zorg1

Stilgart: dbdr: sauf que 31 il finit en ** dans ton mapping

Zorg1: merci dbdr tu m'as devancé

dbdr: donc pour l'ombre de T tu fais T | T << 1 | T << 2 etc Zorg1?

Zorg1: si j'ai bien compris oui

BrainSolver: L'avantage de ce bitboard se ressent vachement dès qu'il y a beaucoup d'arbres.

dbdr: moi j'ai juste precalc tout ça, bourrin :D

Zorg1: pareil un gros precalcul mais je suis obligé de tester les bits pour appliquer les ombres et les zones de graines

Default avatar.png JBM: moi je refaisais un bfs a chaque fois

dbdr: tranquille

Default avatar.png JBM: l'avantage des IA en temps constant

Stilgart: O(1) :)

dbdr: BrainSolver tu es en temps constant indépendamment du nombre d'arbres?

Stilgart: BrainSolver: merci, j'essayerais d'adapter ça pour mon CotC à l'occasion

BrainSolver: oui, presque.

dbdr: ah oui, trees[3] | trees[3] << 1, ...

dbdr: la solution de miklla en DP c'est original!

OldJohn: J'ai vu ce site trop tard : https://www.redblobgames.com/grids/hexagons

Vry: Pas mal BrainSolver ... j'idée m'a traversé l'esprit deux secondes et pis je me suis dit que je n'avais pas le temps pour le faire ! :p

Vry: Mais je vais tester sur le multi

Vry: Mon code ressemble à ça pour les arbres de taill1 :

Vry: http://chat.codingame.com/pastebin/44868784-86da-455c-bede-2bd018ee786b

Vry: *taille 1

Vry: Suivi de la même chose pour taille 2 et de la même chose pour taille 3

Vry: Le cache est bien rangé, du coup je le parcours séquentiellement [direction][size][cell]

-Cile-: Oldjohn : joli site merci :) j'ai fait des coordonnées cubiques

Zorg1: ah le site du red blob ^^

Vry: On l'avait eu pour CotC je crois

ThomasNicoullaud: reCurse il a encore activé son cheat ? :D

Zorg1: ah ok vry, pas mal, j'ai fait un truc moins efficace

Vry: Oh un ThomasNicoullaud ! Salut !

ThomasNicoullaud: \o

Zorg1: o/

Zorg1: oui ils avaient mis le site en lien dans CotC

Vry: Il est venu nous montrer qu'on avait encore des progès à faire !

ThomasNicoullaud: dur l'écart là, la dernière fois que je suis venu voir c'était dbdr et jolindien devant

dbdr: le bon vieux temps :)

dbdr: fallait un contest de 5 jours cette fois

ThomasNicoullaud: et je crois que tu disais "c'est dur d'améliorer maintenant ca manque de profondeur"

dbdr: :sweat_smile:

dbdr: "j;ai peut que, c'est pas pareil"

dbdr: *peur

OldJohn: @dbdr te laisse pas faire :-)

ThomasNicoullaud: il a fait quoi de plus au final reCurse vous savez ?

Vry: J'ai pas vu passer l'information ...

OldJohn: Il nous fera peut être une analyse post-morterm peut être ?

OldJohn: Sinon, je peux envoyer un de mes fils lui demander en personne :-)

R4N4R4M4: Bah, j'aurais pas dû resubmit ce matin

WhatTrickeryIsThis: oui on dirait un loupé de derniere minute

-Cile-: On a un nouveau en Legend

dbdr: faut une extension navigateur pour bloquer le bouton submit le lundi matin

R4N4R4M4: Ca m'arrive à chaque contest, je sais qu'il faut jamais resubmit, mais c'est plus fort que moi :D

-Cile-: il y en a qui passent en dernière minute

OldJohn: Où voyez vous cela ?

OldJohn: Ben moi j'avais une dernière idée que devait être pas mal d'ailleurs :-)

Syj: le classement a été recalculé ?

Syj: ou pas encore ?

-Cile-: pas encore stabilisé

ThomasNicoullaud: ha y a pas eu le rerun encore ?

mapapin: Vous avez un lien pour voir le rerun?

-Cile-: pas encore le rerun

R4N4R4M4: https://www.codingame.com/contests/spring-challenge-2021/leaderboard

GTS: faut attendre déjà que tous les matchs en gold soient finis

mapapin: Merci :)

OldJohn: Many thanks

Gilde: Pourquoi juste les matchs gold ?

-Cile-: tous en fait

-Cile-: il y en a encore 200 en cours

GTS: oui tous Mais avant le rerun légende faut que tous ceux qui étaient censés monter légende y soient parvenus... Donc que or ait fini (et ceux qui rejoignent le gold etc)

Default avatar.png JBM: pas que or

Default avatar.png JBM: que toutes les ligues inférieures aient fini

Default avatar.png JBM: enfin oui c'est ton "etc"

Gilde: D'acc merci

Default avatar.png JBM: laisser leur chance aux hiders

WhatTrickeryIsThis: y à encore un gugus qui vient de passé légende :)

b0n5a1: o/

philRG: java or not Java :-D

philRG: https://www.oracle.com/java/technologies/

philRG: finalement la techno CG a du bon :-)

philRG: ça repose

R4N4R4M4: On a un lien vers le forum ? je l'ai perdu

jdeveil: dans le menu: Communauté/Forum

jdeveil: Tu trouveras le topic dans la catégorie 'contests'

WhatTrickeryIsThis: https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies/190849/3

-Cile-: on attend le petit malin qui est passé or il y a quelques minutes et qui va peut-être tenter un passage en légende...

WhatTrickeryIsThis: ça va il est rapide

WhatTrickeryIsThis: enfin c'est relatif

WhatTrickeryIsThis: les submits sont super longs

Vry: Plus qu'un en effet !

R4N4R4M4: Merci pour le lien, j'avais pas vu qu'ils ont déménagé le menu

Stilgart: on a déjà vu CG lancer le rerun alors qu'il y avait vraiment un run en gold qui pouvait être promu

Vry: On va bientôt savoir si tout le monde en Légende est relancé ... ou pas

dwarfie: bon ... Vry... on (je) attend ton PM ;)

Stilgart: Vry: tout est dans ton eval, je présume

Vry: Ok dwarfie : MCTS séquentiel avec prunage des seed

Stilgart: tu faisais combien de simu (ply) ?

Vry: Aucune éval.

Stilgart: ou combien de rollouts ?

Vry: environ 10k simu sur 95ms

Stilgart: tu jouais les parties jusqu'au bout ?

Vry: Oui

Stilgart: contre un dummy du coup ?

dwarfie: pff ... j'avais 15k en mc et seulement 2k en mcts ...

**dwarfie comprend pas cette difference ...

Vry: Non, pas de dummy

Stilgart: 10ksans dummy ça parait léger vu le branching

Stilgart: tu jouais au tour ou au day ?

Vry: Au tour

Zorg1: enfin si par "dummy" tu appelles filtrer les coups joués dans ton rollout

Stilgart: même question pour le BS de dbdr du we dernier ?

Vry: Ah, pour dummy c'est une heuristique qui choisi un coup

GTS: sans eval ? Donc tu faisais les rollout jusqu'à la fin ?

Zorg1: ça j'ai l'impression que tous ceux qui ont fait un MCTS ont été obligé de le faire

Zorg1: et même avec 4k rollout jusqu'à la fin tu te débrouilles

Stilgart: le filtre c'est orthogonal au dummy

Stilgart: il s'applique à la fois à toi et à l'adversaire a priori

OldJohn: C'est plutôt dual ?

Vry: Moi rollout complet pour deux joueurs qui utilise la même méthode pour générer la liste de coups

Stilgart: (tu peux en coder 2 différents, même)

Stilgart: OldJohn: j'aime pas le mot dual

dbdr: Stilgart je fais un double beam comme euler

dbdr: pour comparer des choses comparables

Stilgart: c'est tellement utilisé hors contexte il faut dire

WhatTrickeryIsThis: un bang bang?

WhatTrickeryIsThis: bang bang search

Stilgart: double beam ?

**dwarfie lance un recording du chat ... il commence a avoir fin mais veut pas rater le debrief ... non , finalement trop faineant il lira l'hitorique du chat demain :D

WhatTrickeryIsThis: nice

OldJohn: @stilgart mais orthogonal suppose que tu as un produit scalaire

Stilgart: what trickery is this ?

WhatTrickeryIsThis: si un beam c'est pas assez, c'est le double beam :strong:

dbdr: je fais tous les suivants du beam courant, et je met de cotés ceux qui passent au jour suivant

Stilgart: :muscle:

dbdr: donc je fais pas tour, mais en gardant les jours synchro

dbdr: *par tour

Stilgart: ha, tu filtrais au tour

Stilgart: j'avais peur d'exploser la mémoire avec ça

dbdr: oui

Stilgart: du coup, j'ai du hacker pour pouvoir comparer les beams

dbdr: au contraire

dbdr: BS c'est en mémoire constante

Stilgart: (à coup de malus si je fais wait trop tôt)

Stilgart: on a vu l'efficacité du truc :p

Stilgart: oui et non

dbdr: WIDTH * MAX_ACTIONS

Stilgart: faire tous les successeurs sur la journée complète ça peut être gros

Stilgart: c'est quoi MAX_ACTION ici ?

Kirbiby: je dis comme Stilgart

dbdr: mais je fais pas tous les successeurs de la journee, je filtre par tour

Stilgart: parce que tu peux en faire plusieurs dans un jour

Stilgart: ha... donc tu as deux filtres, d'où double beam

dbdr: mais oui, je garde tout ce qui passe le jour a partir d'un tour filtré

Kirbiby: tu cut à beam_size qu'après avoir fait les children non ? donc c'est pas mémoire constante non ?

jdeveil: les scores sont stables...

jdeveil: a quand le rerun ;)

dbdr: d'ou le MAX_ACTIONS Kirbiby

Kirbiby: ah okay

dbdr: :)

Kirbiby: c'était ça

Kirbiby: je fais vector<> :p

Stilgart: le MAX_ACTION n'est pas tout à fait constant

Stilgart: JBM fait remarquer qu'osef vu que c'est O(1)

Zorg1: en fait moi j'avais 37 actions maximales, pour le SEED j'avais une heuristique qui attribuait l'arbre qui donnait la graine

dbdr: pas constant mais borné

Kirbiby: oui il est borné donc c pareil

dbdr: enfin la constante c'est le max sur tous les états possibles

dbdr: j'ai un sale const MAX_ACTIONS: usize = 24; augmenté jusqu'a ce que ça crashe pas

dbdr: ça dépend du pruning aussi :)

jdeveil: Zorg1j'ai utilisé que 6 actions dans la prise de décision. Si l'action était un GROW de telle taille, je cherchais après quel arbre était le plus indiqué

dbdr: mais c'est pour mon MCTS, pas mon beam

WhatTrickeryIsThis: rerun full legende :D

VirtualAtom: résultats dans la soirée ? ̂ ̂

**dbdr se note: commencé le recalc #14

-Cile-: VirtualAtom je suis curieuse de voir si ça fait une grosse différence

dbdr: ça peut surout pour les bots qui étaient frais

WhatTrickeryIsThis: y à un peu de suspens pour les places podium mine de rien

GuillaumeBardy: rerun full que pour legende et les autres sont figées ?

dbdr: oui

WhatTrickeryIsThis: y

VilBoub: oui

jdeveil: ils font les autres après peut être ?

dbdr: non

jdeveil: ah ok.

dbdr: deja avant c'était que le top 100

VirtualAtom: y a-t-il vraiment du suspense pour la première place ? :-}

Zorg1: bah vu qu'il a un winrate de 100% contre tout le monde je pense pas :p

dbdr: attention à l'overflow qd meme

VirtualAtom: son écart en score est impressionnant

Vry: Oui, mon IA hiddait jusqu'à 12h45 ... :p

Zorg1: if (time>12:45) algo_elite(); else algo_standard();

dbdr: * plot twist, reCurse finit dernier, CG stockait les victoires sur 16 bit signés

fenrir: est-ce que reCurse a un peu expliqué ce qu'il fait ?

b0n5a1: laissez le respirer ^^

jdeveil: il a l'air adepte des NN sur-entrainé

Lassanasakho213: Bonjour tout le monde comment on peut retrouver le challenge qui est fini ce matin merci

WhatTrickeryIsThis: ce qu'il fait c'et qu'il gagne

Alshock: Il faut attendre un petit temps avant qu'il sorte en multi

Zorg1: ça pas été très rapide pour le FC ?

Alshock: Automaton2000 un mot sur la suprématie de l'IA contre l'humain sur codingame ?

Automaton2000: il est vraiment pas mal

Alshock: Ah ouais moi il m'insulte et reC*rse il l'encense /flip

dbdr: Zorg1 si il me semble

Alshock: @Zorg1 ça n'empêche que là maintenant tout de suite il ne peut pas le farie donc il doit atttendre un 'tit peu

Zorg1: ^^

jdeveil: c'est reC*rse qui a codé Automaton2000 ?

Automaton2000: est ce que je voulais dire c'est que si je veux en faire quoi ?

Alshock: le farine* voulais-je écrire

Zorg1: non c'est Magus

Alshock: non c'est magugus

Magus: (Automaton2000 n'est pas un NN)

Automaton2000: ca va etre un peu serieux ...

jdeveil: et reC*rse ne fait que du NN... ok

Alshock: Tiens c'est ça qu'il faut faire maintenant, forcer reC*rse à réparer automatonNN d'Agade :P

Zorg1: t'as raison Automaton2000 les NN c'est pour les noob les pros ils font des chaînes de Markov :p

Automaton2000: quand tu commences à faire de la merde à la fin du tour

Alshock: il ne fait pas que du NN, d'où te vient cette idée saugrenue ?

Zorg1: bah ça avait l'air d'être sa marotte ces derniers temps

jdeveil: deux pauv contests, je généralise mais ça me fait rire de voir à quel point il maîtrise

jdeveil: je reste sur le cul devant ce spectacle :p

Zorg1: je crois qu'il en avait fait un pour SR aussi

jdeveil: en fait j'aimerai bien le voir faire un contest une fois... pour voir comment il entraine son code, etc...

jdeveil: son code python sur CSB me laisse rêveur

dbdr: c'est pas du python

jdeveil: ?

dbdr: c'est du python qui appelle un executable compilé. enfin je pense

Zorg1: oui c'est ce qu'avait expliqué Pb4

jdeveil: c'est quel type d'algo derrière ?

Zorg1: il paraît que c'est plus simple à faire en python, c'est pas uniquement pour la beauté du troll

Zorg1: NN

jdeveil: NN, génétique, autre ?

jdeveil: ok

Stilgart: wow, joli matelat pour reCurse

dbdr: bof, j'en ai fait en rust, quand rust était compilé ed debug

Zorg1: après c'est sûr faut pas négliger la dimension trollesque d'avoir un bot python #1 :p

jdeveil: c'est clair ça claque

Zorg1: 5 bot Go en legend !!

dbdr: jolindien, deux arbres, c'est pas smitsimax?

jolindien: si tu veux l'appeler comme ça, oui

Saelyos: J'aurais parié que t'étais en DUCT

jolindien: je pense que c'est trop couteux DUCT

Zorg1: c'est quoi la diff entre DUCT et smitsimax ?

jolindien: t'as fait quoi toi ?

Saelyos: C'est ce que fais :)

Saelyos: j'ai*

jolindien: ahh

jolindien: gg

jolindien: je pensais pas que le simultané était si important que ça

CharlesBesson: bonjour à tous

CharlesBesson: c'est quoi smitsimax ?

Saelyos: Je sais pas si c'est important mais j'avais pas envie de me prendre les galères d'actions invalides

jolindien: Zorg1, le DUCT c'est un seul arbre qui se calque vraiment au jeu (coups simultané)

Zorg1: ah ok

Saelyos: CharlesBesson https://www.tech.io/playgrounds/36476/smitsimax

CharlesBesson: cool de la lecture !

CharlesBesson: merci

jolindien: t'as fait quoi CharlesBesson ?

CharlesBesson: un bête beamsearch

CharlesBesson: en faisant varier la largeur en fonction de la profondeur atteinte au tour d'avant de sorte d'élargir sur la fin car ça calcule plus vite

CharlesBesson: mais là je flippe de perdre ma 7ème place avec le recalcule qu'ils ont lancé

Stilgart: CharlesBesson: tu risques pas grand chose

jolindien: pas si bête je pense... tu dois avoir une super fonction d'évaluation

Stilgart: trop loin de 3e et de &&e

Stilgart: 11e*

dbdr: oui, #11 c'est la lose ;)

Stilgart: go go go bouter kovi :)

Stilgart: nmahoude: idem

Stilgart: Magus: idem

dbdr: qu'est-ce qu'il t'a fait kovi?

CharlesBesson: pourtant plutôt simple ma fonction d'éval : le score, les sunpoints, une proba de vendre mes arbres (fct du jour et de la taille) et avec quel nutriments, et une simulation du nbre de points de soleil que je vais capter d'ici la fin de la partie

CharlesBesson: @Stilgart, en effet je risque pas grand chose, le t shirt est dans la poche et la toile hors de portée :smiley:

Zorg1: la toile ?

dbdr: top 3

Zorg1: ah ok je lis même pas la liste des prix ^^

dbdr: c'est pour ça que t'étais pas motivé!

Zorg1: :D

CharlesBesson: c'est un copain qui m'a dit que si j'étais top 3, j'aurais des draps codingame

CharlesBesson: il avait sans doute mal lu ...

Bon[]Crayon: Salut tout le monde.

dbdr: lol

-Cile-: o/

jdeveil: lu

dbdr: mauvais traduction peut-etre

Bon[]Crayon: Automaton2000 slt

Automaton2000: comment on sait si on peut faire un peu de simu pour toi car au lieu de 5

GTS: reCurse parait tellement loin devant :o

CharlesBesson: il a fait un réseau de neurone, c'est ça ?

Luksis: Hello tous le monde

Magus: des draps codingame ?

Luksis: une petite question : les challenge généralement

Magus: wtf

Luksis: ils mettent combien e temps avant de sortir en combat de bot ?

Luksis: une semaine, non ? plus , moins ?

GTS: sur les précédents challenge ça avait été super vite, dès le lendemain

Luksis: Ah ouais ?! nice

Luksis: merci GTS

GTS: bof ça fait déjà 10 jours qu'on dort plus, faut se reposer un peu :p

Stilgart: Luksis: ça devrait être dipso demain

psychedelic68: hello ! Pourquoi sur l'erreur 404 de Codingame c'est écrit "vous aimez le crabe" ? Il y a une ref que j'ai pas ? merci :)

Stilgart: depuis qu'ils replaquent le contest, ça va vite

dbdr: euler a dit un truc sur #world, que son chat l'avait reveillé pendant la nuit, et sa première pensée, c'était d'attendre que la recherche continue, le chat doit dormir à une profondeur plus grande

dbdr: il doit avoir les draps CG

OldJohn: J'ai eu un polo ce matin signé EPI (European Processor Initiative), c'est autrement plus classe :-)

Luksis: merci Stilgart

Luksis: ouais donc demain

Luksis: ouais c'est clair GTS :P

AzerBenAzzouz: hi

-Cile-: Mon bot en chute libre :sob: Bon, je vais dormir... ah non c'est vrai c'est la fin de la pause repas je dois bosser...

AzerBenAzzouz: :flag_tn:

Bon[]Crayon: :peace:

dwarfie: la pause quoi ... :D

dwarfie: ah ... ca rerun maintenant ?

Zorg1: depuis 12:45 en fait

Zorg1: avec un peu de chance ça sera fini à 18:00 :(

dwarfie: de toutes facons , a la fin , ca sera reCurse avec 6 points d'avance ... :D

OldJohn: Yep ! Comme quoi la poutine cela a du bon !

Zorg1: bah il les a quasiment déjà ses 6 points d'avance ...

jolindien: aura-t-on droit à son PM ?

OldJohn: Quand tu auras mis le tien @jolindien

Zorg1: bah ...

jolindien: c'est fait

jolindien: (le mien)

OldJohn: ok cool !

philRG: Zorg1: dimension trollesque du #1 en python :-D

pardouin: o/

pardouin: gg zorg1

Bon[]Crayon: \o

philRG: si on cut le contest sur une fonction random.randint(1, 10), ça peut le faire :)

Zorg1: merci pardouin

Zorg1: o/

b0n5a1: t'as raté ton ascension quand t'es parti Zorg1

pardouin: hâte de recevoir mon tee-shirt

philRG: moi je suis resté pour le voir gravir

philRG: de 600ème à légende en un jour bravo Zorg1

philRG: 600ème en gold je crois

Zorg1: 900e ^^

philRG: ça c'est du tryhard :thumbsup:

Zorg1: bon j'ai mis trois jours à mettre au point mon MCTS suite à bug idiot et dév à l'arrache :D

Zorg1: perso Dimanche j'allais abandonné quand j'ai deviné le bug

dbdr: ct quoi le bug?

YannT: je suis deg' en lisant les PMs, j'avais tellement de moyens de faire mieux en prunant mieux les actions possibles... :( j'explorait vraiment trop de trucs

Zorg1: très con : en adaptant mon code MCTS d'UTTT j'avais viré l'update des stats sur le noeud racine

dbdr: ouch. t'avais pas 0 visites du coup?

pardouin: moi j'ai sacrifié quelques CP pour submit un clojure dégueulasse à la place de mon Python, je perds 1000 places mais normalement je suis 1er clojure XD

Zorg1: sur le noeud du haut, les autres était bien adaptés

dbdr: mais du coup la selection du 1er coup?...

Zorg1: évidement je cherchais un problème dans la simu, j'ai trouvé un bug dans la gestion des ombres mais c'était pas ça ^^

YannT: pardouin: je sais pas si ça marche ça, de mémoires ils ont fait un truc pour éviter les gens qui switch de language dans leur league pour choper l'achievement

Zorg1: bah il privilégiait le premier fils de la racine

Default avatar.png JBM: ils ont fait ça comment?

pardouin: on verra bien, au pire quelques cp c'est pas la mort

pardouin: j'ai pas utilisé system ni rien

Default avatar.png JBM: et: il reste un achievement pour ça?

YannT: achievement oui

YannT: pour la filouterie je sais pas, peut être ça marche

Default avatar.png JBM: ah ok

Default avatar.png JBM: bah pardouin nous dira

dbdr: ban le compte

pardouin: lol

pardouin: je vous dirai avec un autre compte <3

pardouin: vous viendrez me donner des oranges en prison

YannT: j'aime ce rerun

philRG: pourquoi supprimer les CP, tu peux pas switcher de langage si tu en as envie?

Zorg1: z'êtes des agressifs du ban ...

pardouin: non mais c'est juste qu'en passant de 600ème gold à ~bottom gold je perds forcément des CP

dbdr: /ban Zor61

Default avatar.png JBM: 91 plutot non?

Zorg1: /ban et ban encore

philRG: t'as pas eu le temps de remettre ta version précédente?

pardouin: mais on peut très bien switcher de language hein, cf zorg1 avec lua et go

pardouin: ben ça prend en compte la denrière version

pardouin: dernière*

Zorg1: bah ouais j'ai pas l'impression d'avoir trop gruger sur ce coup là

philRG: finalement cg brutal tester m'a bien soulagé au niveau fatigue, dommage que j'ai pas pu l'utiliser avant hier soir minuit...

Default avatar.png JBM: ton impression nous importe peu

Zorg1: pfff

Default avatar.png JBM: ce qui compte c'est qu'on te banne que 5k gus gagnent une place

Default avatar.png JBM: c'est pas personnel, c'est pour les CP

dbdr: il faut switch de langage toutes les minutes, puis 30 secondes, puis 15, etc. ` à la fin tu as une submission dans chaque langage

pardouin: tu aurais été premier lua en plus zorg1

Vry: Je pouvais switcher sur Objective-C pour l'achivment ...

philRG: j'ai gagné environ 100 places grâce à brutal tester je pense en optimisant mes magic number

pardouin: t'azs vraiment mal géré

Zorg1: bah j'ai déjà été premier dans un langage

Zorg1: t'as pas un achievement par langage

pardouin: t'as vraiment bien géré alors :)

Zorg1: (ce qui vaut pê mieux vu les zozos)

pardouin: XD

pardouin: <- zozo

Default avatar.png JBM: lesquels zozos?

Default avatar.png JBM: la bande D?

dbdr: faut deja faire 30 contests...

dbdr: a deux par an...

pardouin: le sars 4 nous aura emporté d'ici là

pardouin: oulha

philRG: Vry: Premier objective-C en Silver. 5 swift en gold

philRG: j'ai failli me mettre au swift sinon

philRG: je sais pas quel autre langage choisir en fait autre que python :sob:

YannT: it's est très très bien ce rerun

YannT: j'ai comencé à 180 je crois :o

Gilde: Est-ce qu'ils vont rerun les autres ligues ?

dbdr: on l'appelle comment ce challenge? [sc]2[1-9] ça va vite devenir confus

dbdr: [sf]c

Default avatar.png JBM: photosynthesis?

dbdr: ah oui pas mal

Default avatar.png JBM: comment on appelle les sorcieres deja?

Default avatar.png JBM: century spice?

dbdr: boszorkányok

dbdr: mais c'est en hongrie uniquement ;)

YannT: "seed the world"

pardouin: totoro ?

Default avatar.png JBM: ah oui totoro, c'est comme ça que je l'appelle dans mon code

dbdr: SGCW

pardouin: TTR pour les flemmards

dbdr: totoro il apparait pas bcp dans le jeu

dbdr: pas comme pacman

dbdr: photosynthesis je comprendrai

bananaMixer: mon dépôt git s'appelle « wood spirit »

dbdr: avec espace?

YannT: mais il faut faire un jeu de mots avec genre "code" dedans pour respecter le thème

Default avatar.png JBM: botoro

dbdr: coders in the woods

Default avatar.png JBM: photogitosis

bananaMixer: dbdr : il y a un tiret

YannT: je vote botoro :grin:

dbdr: Devint Scie Code

Default avatar.png JBM: warg

dbdr: merci Renaud

Vry: Moi aussi je monte doucement ... plus que 21 points et je passe premier ! :p

pardouin: MononoCode Princess

jdeveil: le rerun n'est pas encore fini ? ça va durer tout l'après-midi :p

pardouin: plutôt: Princess MononoCode

pardouin: (je viens de check le titre anglais)

OldJohn: totoru semble adapté finalement

Stilgart: go go go Vry

**Stilgart tend ses points à Vry

Zorg1: je regarde le classement de Yannt, Vry et le mien on est tous dans un point d'ELO

YannT: mon bot était top100 hier soir, j'espère qu'il va remonter dedans ça me ferait plaisir :D

YannT: mais il stagne un peu là

Stilgart: Zorg1: sur combien de places ?

Stilgart: une trentaine

Zorg1: une quinzaine

Default avatar.png Rakotoo: salut

Zorg1: hello

Neige: @YannT moi ça me va d'être top 1 kotlin :D

Vry: Je redescends un peu pour retrouver YannT

Vry: Zorg1 est 10 places devant

Vry: C'est mort pour le top 100

Zorg1: oui je pense aussi et je serais au mieux #2 go

Zorg1: au moins c'est moi qui commande les rôdeurs

Vry: Vu sur le chat World : https://core.ac.uk/download/pdf/33500946.pdf

Vry: Pour les bitboard

Neige: > Hexagonal boards can be staggered to pack into a square array BrainSolver explique ça dans son PM.

BigUP: tin, les feedback sur Spring challenge. le gars 144eme en python avec 40 lignes de code.... je suis vraiement passé à coté de quelquechose

BigUP: 144eme gold

Stilgart: ça parait peu, surtout en python

Stilgart: mon code low golden Haskell faisait déjà 80-100 lignes

Zorg1: bah l'heuristique j'ai l'impression que parfois faut pas grand chose pour gagner 500 places

Zorg1: le problème c'est trouver ce "pas grand chose" :D

Stilgart: perso, j'ai ressenti un scaré paquet de murs en gold

BigUP: Zorg1, moi j'ai secoué mes magic keys dans tous les sens pendant un moment, ca ne changeait pas grand chose.

Stilgart: BigUP a bien résumé

Stilgart: après, faudra que je tete mon moteur un jour

Stilgart: si ça se trouve, elle est là la différence :D

BigUP: bon apres effectivement le gars à simplément fait ce que j'envisageais un moment. juste scorer les différentes actions possibles

Zorg1: après ce genre de jeu j'ai l'impression que ça fini par de la compta et de la prévision budgetaire

Default avatar.png JBM: oui c'est ce qui m'a repoussé

BigUP: Zorg1, si seulement j'avais bossé ma compta à l'école !

Default avatar.png JBM: j'avais vraiment l'impression de me remonter un budget, avec le besoin en fonds de roulement et les amortissements

Stilgart: JBM: tu as pu te complete deux fois, du coup :)

Default avatar.png JBM: mm?

Default avatar.png JBM: ah

Default avatar.png JBM: «lol»

Stilgart: :o)

WhatTrickeryIsThis: faut être classé combien pour gagner le slip CG ?

Default avatar.png JBM: 10

WhatTrickeryIsThis: mon dieu j'espere qu'ils restent des XXXL pour ma grosse B...


WhatTrickeryIsThis: :banana:

BigUP: WhatTrickeryIsThis: de cette taille la, c'est plus une courgette (mince il n'y a que des :cucumber: )

WhatTrickeryIsThis: WTIT ez top 100

WhatTrickeryIsThis: trop facil le contest, vous avez rien dans le froc

Vry: Je suis curieux de voir combien je peux gagner en passant de bitboard 0..36 à ceux utilisés par BrainSolver

WhatTrickeryIsThis: vivement le multi <3

Magus: ah cool, je suis revenu top 10

Vry: Oui, finalement "relativement" simple avec un MCTS.

Magus: ça aurait quand même été la honte (en espérant ne pas parler trop vite :D )

Magus: bah vous avez mon PM, y'a rien de transcendant dans mon MCTS

Vry: Le tout c'est d'avoir du temps à y consacrer

Magus: j'ai pas de trick magique

WhatTrickeryIsThis: y à une tortue qui te poursuit attention

Magus: enfin après le reste c'est juste comment j'ai fait mes objets pour avoir de la perf

WhatTrickeryIsThis: y à des tricks sur les cuts quand mepem

Magus: ouai je pense que c'est le même genre de trick que tout le monde dans le top 20

Magus: pour les seed tout le monde faisait pareil

WhatTrickeryIsThis: gérer le simultanné j'ai pas compris

Magus: mon mcts fait les coups l'un après l'autre

Magus: comme un minmax classique

Vry: En gros, il fallait un MCTS "sans gros bug" et filtrer les seed à mort

Magus: donc l'adversaire "connait" ton coup dans tes simulations si tu fais ça

Magus: parce qu'il va sélectionner son coup en connaissance du tiens

Default avatar.png BabelO: oui la perf avec les byte & mask :) je note ca pour le prochain cg ! un trre au final c'est que 4 byte dans un unit8array pour du javascript

WhatTrickeryIsThis: les complete et grow on pouvait cut aussi apparemment

Magus: BabelO: j'ai aucun mask ou bitboard :D

Default avatar.png BabelO: tu es en c++ ?

Magus: oui

Vry: Magus, tu verux dire que tu mets à jour le state à chaque coup ? Moi, je ne mets à jour le state qu'une fois le coup de l'adversaire coonu.

Default avatar.png BabelO: ok :( avec juste la logique de base on doit pouvoir parcourir tres rapide je pense

Magus: Vry: je met à jour le state qu'une fois sur deux, quand j'ai les 2 actions

Magus: ce qui empêche pas l'adversaire de connaitre ton coup quand même

Magus: vu que t'es dans la branche

WhatTrickeryIsThis: je run des dummies// ou du random en parralelle dans mes rollouts

WhatTrickeryIsThis: mon arbre il va qu'au niveau 1 ^^

Vry: Ok, on a le même mode. Oui, il joue son coup dans la même branche.

WhatTrickeryIsThis: j'ai pas étudier jusqu'où développer mon arbre de select

WhatTrickeryIsThis: juste 10 tours random+rollout dummy

Vry: Mais c'est le mot "connaître" qui me gêne un peu car la fonction de génération des moves s'en fou en réalité de ce que l'autre joueur à fait. Mais c'est bien évalué dans la même branche !

WhatTrickeryIsThis: parceque ça donne nimp quand je suis waiting afk et je dois developper les noueds ia adverse

WhatTrickeryIsThis: il doit connaitre sans savoir en fait, si il connait vraiment il echapperait au double seed

Strawbot: Dans combien de temps le spring challenge sera dispo en tant que jeu?

Zorg1: demain je crois

Zorg1: tiens il est pas là pour s'énerver Blaise ?

Vry: Il a kické tellement de monde BlaiseEbuth ... il est épuisé !

WhatTrickeryIsThis: il dors à cette heure là

Littleyounes: MDR

Littleyounes: J'ai failli écoper d'un ban hier

Stilgart: Vry: il s'est passé quoi ?

Vry: Ou ça Stilgart ?

Vry: *Où

Stilgart: avec Blaise

Vry: Je ne sais pas ... pourquoi il boude ?

Stilgart: ça j'ai mes idées sur la question :)

Stilgart: (j'en déduis qu'il a pas vraiment kické son monde hier)

Vry: Je sais qu'à un moment j'ai tendu une perche et il m'a kické ... mais sans plus

philRG: le MTCS de Blaise faisait bcp de WAIT j'ai vu

philRG: du coup l'esprit se repose :)

Stilgart: wait c'est fort

Stilgart: ça coûte rien et ça rapporte du sun

WhatTrickeryIsThis: wait c'est le best pour day>=19

Stilgart: j'avais le même soucis avec mon BS

WhatTrickeryIsThis: souvent

philRG: même pas qu'hier j'ai codé une fonction de stats pour savoir combien je faisais de wait parano

Stilgart: encore 143 runs

Vry: Il me reste 34% ...

Stilgart: #6 il en est à 46% seulement

Vry: Zorg1 et YannT en sont au même point

philRG: Stilgart en fait oui un wait c fort lol

Kris117: Il me reste 7%. On voit sans doute la différence avec ceux qui ont une simu et ceux qui n'en ont pas

philRG: en fin de contest, tu veux amélioré ton score donc faire des actions

Stilgart: si tu vas pas assez profond, c'est même ULTRA fort

Stilgart: j'ai mis explicitement un score /= 10 en cas de double wait

philRG: mais wait c une action lol donc ouais je vais aller agir dans mon canapé :-D

Zorg1: R4 a déjà fini son rerun, on voit les gars en heuristique ...

Stilgart: philRG: echo wait c'est déjà agir ;)

philRG: je me suis rajouter des seeds additionnels, heureusement cg brutal tester m'a fait redevenir raisonnable

philRG: j'ai fait toute une batterie de magic numbers pour me canaliser

philRG: en fait le gros du boulot c l'analyse et conception

philRG: le tuning c bien pour valider

Default avatar.png BabelO: @magus tu as vu comment a fait kodle ?

Zorg1: c'est vrai que mon tuning c'était quelque match contre moi et le boss dans l'IDE puis un push ...

philRG: Stilgart: on a pas fait mieux que la command line pour les outils

philRG: si tu as déjà ta stratégie ouais pas besoin du tuning

philRG: les heuristiques, y a des limites

jdeveil: philRG: comment tu utilise brutaltester pour jouer sur les magic numbers ?

Vry: J'ai pas fait de tuning pour le coup ... j'ai juste codé un min/max histoire de voir ce qui ne fonctionnait pas dans mon MCTS.

philRG: actuellement j'ai un fichier csv par set de magic

Zorg1: mais tu testes contre toi même ?

philRG: mais faudrait le mettre en json et les générer en python selon des ranges

philRG: je teste mes itérations

philRG: et mes magic

philRG: pour les magic, oui c le même code

philRG: Mais faut coder ton code pour pouvoir définir des magic

philRG: s/coder/organiser

jdeveil: tu parle bien de ce brutaltester : https://github.com/dreignier/cg-brutaltester

Zorg1: après le risque de ce genre de truc c'est de sur spécialiser ton bot à se battre contre des bots similaires

philRG: j'ai regardé les streams de R4 pour chiper tes idées d'organisation de code pour des heuristiques car jusque là c'était du bricolage

philRG: des

philRG: oui le risque justement c'est de sur spécialiser

Default avatar.png JBM: Stilgart: je ne sais pas si tu as vu passer, on a l'attention de CG pour monter une propale Haskell

philRG: en fait c'est pratique car c'est: plus rapide que l'IDE, et pas de message spam submit de CG

Default avatar.png JBM: Stilgart: je vais monter genre un discord avec freex42bidule qui s'était montré intéressé

Zorg1: t'es sur discord toi ?

Default avatar.png JBM: s'il faut pourquoi?

Default avatar.png JBM: mais pas celui de CG

Default avatar.png JBM: ils veulent pas de moi

philRG: le soucis c'est tester des heuristiques sur l'IDE CG ou arène qui met des heures

philRG: sur un algo de recherche, à mon avis, ça doit être plus rentable qu'un algo orienté heuristique

philRG: d'utiliser brutal tester

philRG: #noob

Zorg1: bah on a le même problème, on a plein d'heuristique pour pruner parmi les coups possibles afin de réduire le branchinf

Zorg1: mon avant dernier push il marchait très bien contre mon ancien bot et le boss mais le top 30 n'était pas au courant que mon bot batait le #1 et le #7 :(

philRG: après pas besoin de brutal tester pour exécuter le referee en local

philRG: en command line

jdeveil: je me renseigne sur brutal tester pour lancer plusieurs games pour du training ou de la recherche de magic numbers

philRG: oui c'est pas la solution idéale

jdeveil: tu me conseille quoi alors ?

philRG: ah je répondais à Zorg1

Default avatar.png Zesam: Comment vous faites marcher brutaltester ? J'ai une erreur niveau reflexivité :(

Default avatar.png JBM: c'est qu'un warning non?

philRG: oui je crois

Default avatar.png **JBM <- a jamais lancé BT

Default avatar.png Zesam: il me dit "ERROR DURING GAME 1" etc

Default avatar.png Zesam: et c'est flaggué comme une erreur

philRG: voilà la syntaxe pour lancer 2 versions de codes python

philRG: java -jar cg-brutaltester.jar -r "java -jar -Dleague.level=3 spring-2021.jar" -p1 « /usr/local/bin/python3.8 totorosimuv62.py » -p2 « /usr/local/bin/python3.8 totorosimuv61.py » -s -l "." -n 100

Vestiaz: j'ai pas le -Dleague.level

jdeveil: pareil j'ai pas du trouver la même version :p

philRG: le jar du referee doit être compilé à partir des sources du referee et de la classe additionnel CommandLineInterface

philRG: le -Dleague.level c'est pour dire quel ligue ton bot va concourir

Default avatar.png Zesam: j'ai pris le referee linké dans le github, il doit marcher directement non ?

philRG: si tu fait SEED en Wood 2, ça plante

Strawbot: Pourquoi les français sont aussi chauds sur codingame? C'est un site français?

Default avatar.png Zesam: yes c'est de Montpellier je crois a la base

Strawbot: ah ok

philRG: tout est là: https://github.com/LSmith-Zenoscave/SpringChallenge2021/tree/main/src/main/resources

francois: Oui, et les français sont chauds pour les compètes en général

philRG: et tu peux changer les paramètres de timeout en local aussi sympa

philRG: https://github.com/LSmith-Zenoscave/SpringChallenge2021/blob/main/src/main/resources/log4j2.xml

philRG: ça du tuning :-)

Default avatar.png Zesam: c'est bien ce referee que j'ai. Mais ca plante a l'exécution

philRG: ouais c'est pas plug and play

Default avatar.png Zesam: :( je pige pas ce que je loupe alors

philRG: faut une classe additionnelle et modifier le fichier pom.xml d'après les instructions pour regénérer l'archive .jar

philRG: sinon prendre une archive déjà compilée par un utilisateur cg

Default avatar.png Zesam: ok, mais la classe elle est présente dans ce referee. Faut la dupliquer ? Et la doc dit qu'il faut modifier le pom, mais ça raconte pas vraiment ce qu'il faut y changer... C'est pas tres pratique quand on débute

philRG: ben pas très pratique mais certains l'ont fait chez eux, par exemple ici: https://github.com/LSmith-Zenoscave/SpringChallenge2021/releases/tag/v2

philRG: après modifier le code source des classes java additionnelles ou fichiers de config, j'suis pas spécialiste

philRG: je fais que du python

philRG: déjà avec cette archive, tu le lances en command line

philRG: quoique non il fonctionne qu'avec brutal tester

Rajh: C'est quoi le soucis avec le Referee ?

philRG: enfin si il fonctionne mais le résultat de la partie est dans un fichier json

philRG: brutal tester est seulement pour automatiser et donner le résultat final sur 100 runs

Rajh: Si vous êtes pas réfractaire à un peu de java. Vous importer le projet dans votre IDE et dans src/test/java/Spring2021.java

philRG: en parsant les données du fichier

Default avatar.png Zesam: je l'ai bien lancé avec Brutal tester, mais meme avec cette archive, j'ai toujours l'erreur

Rajh: vous pouvez modifier un peu pour lancer vos simu

philRG: je l'ai fait dans mon IDE IntelliJ

Rajh: et faire des boucles et des stats comme vous voulez

philRG: Zesam c'est pas une erreur mais un warning

philRG: les erreurs sont dans le fichier json si tu as redirigé la sortie vers un fichier. Le run donne seulement le n° de seed: 8781465982878176474

philRG: par exemple

philRG: l'identifiant de partie

philRG: mais ça doit pas servir en local

Default avatar.png Zesam: http://chat.codingame.com/pastebin/0d57ed92-3d83-4ed4-8c5b-f903aaf4f522

Default avatar.png Zesam: j'ai quelque chose comme ca, ça parait plutot grave quand meme. C'est grave doc ?

philRG: ça ressemble à une erreur

Default avatar.png Zesam: et nada dans le dossier de log :'(

Rajh: T'as eu ça en faisant quoi ?

philRG: après bon, tu prends le jar du referee modifié: https://github.com/LSmith-Zenoscave/SpringChallenge2021/releases/tag/v2

philRG: une des version modifiée de l'outil brutal tester: https://github.com/LSmith-Zenoscave/cg-brutaltester/releases/tag/1.0.0-zenoscave

philRG: et tu lances cette commande:

philRG: java -jar cg-brutaltester.jar -r "java -jar -Dleague.level=3 spring-2021.jar" -p1 "/usr/local/bin/python3.8 totorosimuv62.py" -p2 "/usr/local/bin/python3.8 totorosimuv61.py" -s -l "." -n 100

philRG: pas de quoi fouetter un chat

philRG: ou pour des bots dans d'autres langages:

philRG: java -jar cg-brutaltester.jar -r "java -jar cg-referee-ghost-in-the-cell.jar" -p1 "./myCode.exe" -p2 "php myCode.php" -t 2 -n 100 -l "./logs/"


philRG: suffit d'avoir un runtime java (v 1.8 préférable)

philRG: et lire/comprendre l'architecture des referees CG accessoirement si tu veux modifier des paramètres de config de run du referee en local

philRG: voilà l'architecture Java permettant de développer des puzzles: https://github.com/CodinGame/codingame-game-engine

philRG: avec des documentations détaillées pour créer ses propres contributions communautaires de puzzles

philRG: ie le SDK: https://www.codingame.com/playgrounds/25775/codingame-sdk-documentation/introduction

Default avatar.png Zesam: alors ca a l'air de marcher :) j'ai que des 0% partout alors que mon code aurait du gagner au moins une fois.. :/ Mais c'est un bon début. Merci beaucoup ! :)

philRG: yess!!

philRG: j'avais des 0% / 0% parfois mais c pas valide

philRG: vérifier que ton bot soit bien exécutable dans le chemin

Default avatar.png Zesam: c'est à dire ?

philRG: parce que brutal tester te le dit pas

philRG: il fait comme si ton bot avait gagné

philRG: mais en fait:

philRG: iMacDisplay:spring-challenge-2021 display$ /usr/local/bin/python3.8 sc_202.py /usr/local/bin/python3.8: can't open file 'sc_202.py': [Errno 2] No such file or directory

philRG: lol

philRG: c'est qu'un outil maison d'encapsulation de run du referee

philRG: et analyse des données de match

philRG: pas un outil fourni par CG

philRG: j'avais eu ces erreurs cette nuit lol

philRG: faut vérifier que ton code est exécutable sur ta plateforme

philRG: par exemple, j'ai du mettre le chemin complet car mon IDE utilisait une version différente de celle définie par défaut sur mon OS

philRG: iMacDisplay:spring-challenge-2021 display$ python --version Python 2.7.16

philRG: j'ai codé mon bot en version 3.8 de Python

philRG: sur CG, suite à maj avant contest, on est en version 3.9.2, faudra que je mette à jour ma version locale

philRG: https://www.codingame.com/faq

Arnaud.Net: si yavait une option display score sur brutal tester...:heart_eyes:

Arnaud.Net: (je fais pas de java)

philRG: ben c'est l'option par défaut

philRG: http://chat.codingame.com/pastebin/7b90ae26-a870-4521-8ca3-09ca2298d8c4

philRG: c'est codé dans la classe PlayerStats

philRG: affiché pardon

philRG: le Main est ici: https://github.com/dreignier/cg-brutaltester/blob/master/src/main/java/com/magusgeek/brutaltester/Main.java

philRG: et le README expliquant les options: https://github.com/dreignier/cg-brutaltester

CharlesBesson: Petite question : comment vous faites pour faire jouer une version d'un de vos programmes contre une autre version ?

philRG: bon je vais laisser le chat FR se reposer

CharlesBesson: Il y a des outils pour ça ?

philRG: très simple:

philRG: java -jar cg-brutaltester.jar -r "java -jar cg-referee-ghost-in-the-cell.jar" -p1 "./myCode.exe" -p2 "php myCode.php" -t 2 -n 100

philRG: n'importe quel langage convient tant que le code est exécutable sur la machine

philRG: donc faut compiler le code avant ou avoir un interpréteur compatible avec le code

CharlesBesson: excellent merci. Je ferai mieux la prochaine fois du coup :wink:

philRG: très simple, mais faut recompiler le code du referee pour qu'il puisse s'exécuter sur votre machine, ou utiliser l'outil déjà recompilé par quelqu'un d'autre

philRG: y a des liens sur les outils pour chaque referee de contest: https://github.com/dreignier/cg-brutaltester

philRG: en bas

Vry: Ça va se terminer !

Vry: Plus que 4 computing

philRG: ah vous avez le lien, je l'ai perdu à cause de mes spams

-Cile-: https://www.codingame.com/contests/spring-challenge-2021/leaderboard

Zorg1: on attend encore deux japonais et c'est bon

Rajh: Si jeune et déja poney

WhatTrickeryIsThis: :clap:

-Cile-: on pariait sur 6 points d'avance, c'est presque 7...

jdeveil: c'est impressionnant l'avance qu'il a

Vry: Bon, si j'ai bien suivi avec MCTS on est sur la bonne voie ... mais il va faloir se mettre aux NN pour l'éval. ! :p

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

Automaton2000: mais au lieu de la valeur de la carte

Zorg1: surtout avoir de la perf

Zorg1: o/

Vry: Ça peut faire un challenge dans le challenge pour le prochain challenge ...

Zorg1: AUtomatonNN sort de Vry !

Rajh: Tu trouves qu'il part en vrille ?

Zorg1: plutôt les imbrication de contest de contest

BlaiseEbuth: C'est pas encore fini ? Ils ont rendu le serveur de prêt avant le rerun ?

Zorg1: y en a encore un qui finit son run ...

-Cile-: ça ne va plus bouger maintenant

-Cile-: avec un peu de chance Magus peut encore passer 9e (enfin de la chance, ça dépend de quel côté on se place)

Julius2k17: quelqu'un aurait des ressources à recommander sur MCTS ?

dbdr: https://int8.io/monte-carlo-tree-search-beginners-guide/

Julius2k17: merci @dbdr

jbl: merci @dbdr

Rajh: FIN

Magus: et beh, heureusement que tout à l'heure j'ai dit que finir en dehors du top 10 ce serait trop la honte7

Rajh: reCurse lui il plante des seeds a côté de ses arbres !

Magus: vu qu'il a un NN il fait ce qu'il veut

Magus: quand tu fais un algo de recherche, t'es obligé de prune

Rajh: C'est sur qu'il a un NN ?

Magus: oui

Julius2k17: reCurse a l'air de planter des arbres pour faire de l'ombre à ses adversaires et le priver de Sun

Stilgart: Magus: belle remontée, gg

psychedelic68: salut, vous savez comment on peut passer outre l'erreur 407 "You reached the limit of plays for a period of time" svp ? je suis pas un bot promis :p

Stilgart: note pour CG, ajouter une ligue recurse :D

Stilgart: psychedelic68: en attendant que ça se calme

Stilgart: tu ne devrais pas atteindre cette limite avec un usage normal de CG

psychedelic68: ben je fais plein de tests dans tic-tac-toe ultimate vu que je me sers pas mal de l'aléatoire

Stilgart: dbdr: à tout hasard, tu n'aurais pas la version non-beginner aussi ?

dbdr: de?

Stilgart: MCTS

dbdr: ah :D

Stilgart: je sais pas passer de MCTS à alphawhatever

dbdr: alphazero?

Stilgart: ou alpha go, ou alpha xxxx

Zorg1: alphaplusplus

dbdr: j'ai pas

**Stilgart n'a pas suivi les évolutions

Stilgart: erf, merci quand même

dbdr: alpha beta a la rigueur?

Magus: bah un mcts à alpha zero c'est facile

dbdr: alpha++ c'est beta ;)

Magus: tu remplaces la fonction rollout() par magicNN()

Stilgart: dbdr: ça fait sens de mixer alpha-beta et mcts ?

Magus: et voila

Stilgart: Magus: il fautr déjà l'étape de pas faire des rollouts jusqu'au endgame

dbdr: ya mcts(max), un truc comme ça

Zorg1: pourquoi tu veux pruner dans MCTS c'est pas justement le but de calculer les probas ?

Stilgart: et ça, c'est source de pièges déjà

dbdr: la propagation c'est negamax plutot que la moyenne

Magus: Zorg1: même en MCTS tu peux prune

Stilgart: Zorg1: ça doit converger plus vite si tu sais ce que tu cut

Magus: parce que si 90% de tes rollouts ils ont testés des trucs tout pourri (genre ton IA a COMPLETE tous ses arbres au jour 13 et n'a plus de sun)

Magus: c'est pas très tile

Magus: *utile

Stilgart: mais j'avoue que c'est pas le truc que je ferai en premier

Zorg1: oui mais les prune dans MCTS tu peux pas vraiment les faire avec alpha-beta

dbdr: pq pas?

Magus: ah prune avec alpha beta

Magus: la je sais pas

Stilgart: tu peux te dire que si tu tombes dans un ratio tout pourri, tu supprimes le noeud

dbdr: delete(child)

Stilgart: dbdr: c'est vraiment utilisé ?

Zorg1: c'est justement pas le boulot d'UCB ça, de négliger les noeuds avec un ratio de pouilleux ?

dbdr: je croyais que vous parliez de prune la liste d'actions

dbdr: a priori

Stilgart: Zorg1: en fait, ça se fait dans TTT quand on force à jouer un coup qui gagne une mini-grille pour l'adversaire

dbdr: en fait, alpha beta c'est du pruning par rapport a minimax

Zorg1: Stilgart : pour moi ça c'est plutôt de l'optimisation de rollout

Stilgart: mais ça peut aussi être vu comme du simple pruning sur les actions

Zorg1: en disant "OK on fait au hasard mais on va éviter les actions compéltement débiles"

Zorg1: après je sais pas si théoriquement ça ne vicie pas le process et ça risque de ne pas converger ou converger là où il ne faut pas

IhebZaidi: hello

Julius2k17: le pruning c la suppression des actions ayant échoué ou celles infaisables ?

Dahll: Ils relancent la league gold aussi après ?

Zorg1: non c'est bon c'est fini

Dahll: ok thks !

Zorg1: Julius2k17 : non tu prunes les actions que tu juges sans intérêt

Zorg1: tout le problème est dans ce "jugement"

Zorg1: parfois tu élagues ton arbre façon "porte manteau"

Julius2k17: question à 2 balles, vous utilisiez du multithreading ou de la parallélisation pour simuler autant de traitements ?

Zorg1: je crois que ça marche pas sur les serveurs CG

BlaiseEbuth: Bah t'as un core

Zorg1: voilà ^^

BlaiseEbuth: Stilgart dirait que tu peux faire de la concurrence.

Zorg1: à la limite tu fais du concurent pour pas attendre la fin de la lecture des actions possibles pour commencer à explorer l'arbre

Julius2k17: ok donc allègement max des structures et modélisation objet modérée

Zorg1: j(avais fait ça sur UTTT mais la flemme pour le contest

dbdr: c'est si long que ça de lire les actions possibles?

Zorg1: j'avais plus fait ça pour m'amuser pas vraiment mesurer

Zorg1: bah tu peux avoir des attentes sur des I/O pour pas grand chose

Zorg1: après c'est sûr c'est un peu de la "premature optimization"

Julius2k17: vous simulez toutes les combinaisons de grow complete et seed ou sans seed ?

Zorg1: bah c'est assez bien expliqué dans le PM de Magus, ça résume bien ce que je fais dans mon MCTS

Zorg1: après moi le seed le seul paramètre de l'action seed c'est là où l'on pose la graine, j'ai une heuristique pour savoir qui l'envoie

Zorg1: ça marche pas trop mal

Zorg1: comme ça dans tous les cas, 1 move = 1 cell

dbdr: jolie simplification!

Zorg1: après faut voir ce que ça me coûte

Stilgart: BlaiseEbuth++

Zorg1: mais bon vu que je savais que j'avais un moteur de machine à coudre pour faire tourner mon truc j'ai fait avec ^^

**BlaiseEbuth is now known as Blaisebuti

IhebZaidi: salut

dbdr: ça coute quoi?

Zorg1: pas réfléchi si forcer l'arbre qui donne la graine n'empeche pas certaines combinaisons

THK2: wsh

Thyl: j'ne connais un qui va avoir un t-shirt

Thyl: son nom commence par db et fini par dr

Thyl: trop classe

dbdr: :shirt:

Julius2k17: reCurse doit changer de penderie

WhatTrickeryIsThis: il gagne quoi au fait?

Thyl: dbdr tu me donnes envies d'essayé le rust

Julius2k17: une toile personalisée de l'illustration du challenge dixit le bas de la page de détails

Thyl: On les a vu les dernièeres toiles ou pas ?

Julius2k17: je sais pas, je suis pas prêt d'en recevoir

Thyl: ma première ligue or donc moi aussi

Thyl: sur un challenge

dwarfie: non ... si meme Thyl a fini gold ou va-t-on :p ?

BlaiseEbuth: C'pas sympa ça dwarfie...

**dwarfie dit ca ... mais quand il regarde ceux qu'il suit , les seuls a pas etre passé gold sont dans son equipe :rofl:

dwarfie: tien ... t'es gold aussi toi ...je t'ai meme pas vu passé ;

BlaiseEbuth: Vite fait. J'y ai pas passé énormément de temps, et le temps que j'y ai passé je l'ai perdu sur des conneries.

Julius2k17: premier challenge Gold aussi mais sans simu, il faut que je m'y mette

dwarfie: quand je vois a quel point certains pm ressemble a ce que j'avais fait ... je pige pas ou j'ai merdé mais soit c'est un detail soit c'est enorme ...

Julius2k17: tu vas trouver sur le multi

dwarfie: bon ben ... mindgeek 57 eme en fin de compte :D

Beretta_Vexee: Je me reveille tard. Le spring challenge est terminée. Il y a certains codes de haut classé disponible ?

dwarfie: Julius2k17 ... oui ... sans doute , et ce n'en sera que plus rageant :japanese_goblin:

Julius2k17: les postmortem sur le forum

dwarfie: les codes sont pas disponibles ... dieu merci ...

Luksis: ça sort en combat e bot après

Luksis: c'est pour ça qu'il n'y a pas les codes de sorti

dwarfie: bon sang , je viens de percuter ton changement d'avatar Luksis ... je pigeais pas ce midi Stilgart qui te repondais alors que je te voyais pas :D

Luksis: Oui j'ai changé d'avatar :P

Luksis: dans le week-end

dwarfie: ca pour changer , ca change ;)

Luksis: ouais c'est clair ^^

philRG: Thyl bravo t'étais en python j'ai vu :fist:

dwarfie: bon ... serais-je encore gourou a la fin de la semaine ... pas sur ...

dwarfie: severe contre-performance quand meme sur ce contest ... et pas pres de rattraper vu qu'il va falloir poireauter 6 mois ...

Luksis: d'ailleurs la raréfaction des challenge j'espere que c'est pas mauvais signe

Luksis: (pour CG)

Luksis: parce que là j'ai l'impression qu'il va y avoir 2 challenges dans l'année

Luksis: alors qu'y a une epoque c'était 4 -5-6 meme 7 en 2018

Luksis: 6 en fait y a un doublon*

dwarfie: j'allais dire 6.5 :D

Luksis: ouais 6.5 -> 2 j'espere que c'est pas signe que CG a des problemes quoi

BlaiseEbuth: Mais non Luksis, ils se concentrent juste sur la partie importante de la commu.

dwarfie: en fait , j'ai bien aime le sprint avant de le marathon ... malgre que ca avait planté des le depart par de la saturation des runs ...

Zorg1: mais ça a permis à Beber de troller tout le monde avec son deuligne

Luksis: ok ok

dwarfie: quel noob ce beber ... il avait meme pas reussi a faire un oneline :D

jolindien: Luksis, y'a aussi des petits challenge organisé pour des entreprises

BlaiseEbuth: https://imgur.com/a/PtT6S5Q

jolindien: faut surveiller le forum, y'a pas de pub

Luksis: Ah ok ! merci jolindin

dwarfie: :rofl: BlaiseEbuth

dwarfie: mais tellement vrai :(

Luksis: Hahahaha

Zorg1: 5% des CG font les contests d'après un sondage Pifométrique (TM)

Beretta_Vexee: C'est un peu frustrant, j'ai pas eu le temps de finir ma troisième itération de mon bot et maintenant plus moyen de la tester dans l'arène...

Luksis: Excellent BlaiseEbuth

jolindien: finalement 3eme pour l'UCBL, cool

Luksis: ouais c'est pas mal !

Luksis: le podium :D

Zorg1: Beretta_Vexee : attend un peu le multi va ouvrir

pardouin: beretta_vexee dès demain sans doute

Beretta_Vexee: le multi ?.

jolindien: p'tain l'école 42 -> 300 joueurs

BlaiseEbuth: En même temps sont payés pour participer

pardouin: ils gagnent une sucette s'ils participent aussi

Zorg1: Beretta_Vexee : bah la même chose que le contest mais sans fin

leojean890: jolindien, en fait ils offrent des prix ux bien classés

Zorg1: (et sans prix non plus)

jolindien: ah ok

leojean890: des ordis pour les 3 premiers de l'école 42

leojean890: et d'autres prix ensuite

Luksis: mdr être payé pour participer à un challenge codingame, c'est le piedd quoi

Beretta_Vexee: Désolé, c'était mon premier challenge CG. Je découvre.

jolindien: forcément

pardouin: il sera là: https://www.codingame.com/multiplayer/bot-programming

leojean890: pour inciter à avoir de beaux ranks

pardouin: c'est les anciens challengs

leojean890: il est pas encore dispo en multi, non ?

pardouin: toujours jouables avec meague et tout

pardouin: ligue*

Skygge: Hello. Je ne sais pas si c'est approprié de me répondre ici (DM si ce n'est pas le cas) mais vous connaissez d'autre site de concours de programmation dans le style de CG ?

leojean890: Skygge russianaicup

leojean890: pour les IA de bots

leojean890: sinon google hashcode pour des optimisations

Zorg1: tout de suite le truc d'exaltés

Zorg1: faut être salement motivé pour Russian AI Cup ...

jolindien: qu'une fois par an RAIC ou ça reste ouvert ?

leojean890: battledev avec juste quelques puzzles et faut tracer

Skygge: Merci je vais regarder :)

leojean890: qu'une fois par an

leojean890: mais ils vont le passer en multi

leojean890: d'après amurushkin

leojean890: je ne sais pas quand

Luksis: alors c'est pas vraiment du multi

Zorg1: t'as aussi halite, je sais pas si ça existe encore

Luksis: mais tu as root.me

leojean890: ça sera du multi

Luksis: root-me*

pardouin: ben déjà tu peux faire tous les multis ici, il t'en reste un paquet à tester

Zorg1: ah si https://halite.io/

BigUP: c'est toujours en cours de calcul le challenge !?

Zorg1: non bigUP c'est fini

jolindien: topcoder.com

BlaiseEbuth: 5percent-turtle-arena.com

jolindien: troll ? pas compris

Stilgart: BlaiseEbuth: arrête d'apprendre des faux liens à Automaton2000

Automaton2000: et un beam search ?

Stilgart: Automaton2000: ça n'a pas bien marché :(

Automaton2000: il a fait une connerie?

Stilgart: Automaton2000: faut croire

Automaton2000: par rapport à la fin de ton submit

leojean890: BlaiseEbuth trolle tlt

BlaiseEbuth: C'est un faux lien pour l'instant. Mais ça va finir par arriver...

leojean890: tiens en parlant de turtle.. t'as remis turtle hehe

Zorg1: ah oui tiens

leojean890: b0n5a1 avait aussie nlevé MindGeek je crois je le voyais pas dans les scores d'équipe^^

Stilgart: Automaton2000: https://chadok.info/codingame/1.mov

Automaton2000: et je peux pas trop

BlaiseEbuth: Bah c'est fini, c'est plus la peine

leojean890: dans les résultats finaux, MindGeek 57eme mais sans b0n5a1 ;p

BlaiseEbuth: Bah ouai, il a retiré avant la fin

Stilgart: dwarfie: on a bien loosé nous ?

Stilgart: -?

leojean890: je savais pas qu'il voulait pas garder ça^^

leojean890: (jusqu'à la fin du contest)

**dwarfie se console en regardant des video de tortue ...

Stilgart: leojean890: 57e quand même

Stilgart: j'aurais du swap mon entreprise pour vous booster

leojean890: le troll aurait été plus percutant si elle avait été top 10^^

BlaiseEbuth: Ouai...

Stilgart: on peut pas tout faire

Stilgart: troller ou gagner, il faut choisir

Thyl: changer de nom et je viens avec vous

Stilgart: clairement, le 1er est plus simple

BenPix: je lis que ce contest va passer en multi, ça veut dire qu'on va pouvoir continuer de coder, et accessoirement passer en ligue sup ?

BlaiseEbuth: On aurait du demander à reC*rse, il habite au bon endroit

Zorg1: BenPix : oui

leojean890: BenPix yep:)

BenPix: avec le même niveau de difficulté ?

leojean890: exact

leojean890: mêmes IAs mêmes boss etc

Zorg1: normalement ils copient collent tous les bots

BenPix: ho top !

BenPix: avec les PM de tout le monde, ça va aider un peu :)

Zorg1: après ça risque d'être plus lent

Stilgart: j'espère bien pouvoir faire ce contest

leojean890: University of Wrocław, poland ont gagné pour es écoles

Stilgart: bien plus motivant que SC2020

leojean890: suivi de près ar école 42

leojean890: Université Claude-Bernard Lyon 1 ils ont Saelyos et jolindien pour overbooster

Julius2k17: ah ils sont fait cut dans la dernière ligne droite

Zorg1: SC2020 ? ah les pacmans shiformi avec FoG ^^

Stilgart: oui

Julius2k17: ils ont du reboucher les bouteilles de champagne

Stilgart: bon adaptation, mais il ne me motive pas du tout

leojean890: j'avoue je préfère ce sujet à pacman

Stilgart: je l'ai toujours pas fait :/

Stilgart: +ne

leojean890: mais bon pacman ça allait aussi

Oioi: où voit on les résultats ?

leojean890: je préfère OOC moi

leojean890: OOC j'ai bien tenu 1 mois je kiffais

BlaiseEbuth: 42 c'est l'équivalent des skavens, la quantité qui écrase tout

Oioi: salut au passage ^^

leojean890: salut Oioi

Stilgart: si seulement le contest de printemps c'était toujours sur 1 mois

Luksis: BlaiseEbuth ouaip' les zergs !

BlaiseEbuth: Aussi

jdeveil: https://www.codingame.com/contests/spring-challenge-2021/leaderboard

Stilgart: et le contest d'hiver tard en décembre

Oioi: merci jdeveil

leojean890: 1 mois au moins tu prends ton tps trkl

Julius2k17: 1 mois ce serait usant

Julius2k17: on serait crevés

Stilgart: tu bosses pas 1 mois

leojean890: moi je fais rarement plus e 3h de CG en un jour

jdeveil: non ça permettrait de dormir ;)

Zorg1: bah OoC et LoCaM se sont fait sur un moi

Julius2k17: et proches du divorce

Stilgart: moi je peux pas me le permettre au printemps

leojean890: donc 1 mois ça va

Zorg1: le pb c'est pas trop glander et se concentrer

Stilgart: mais je peux faire le contest si la durée est de 1 mois

leojean890: 1 mois si je fais 3h par jour j'arrive à 90h et c good

Julius2k17: oui pas faux, sur 1 mois ca laisse le temps et on se met moins la pression aussi

Zorg1: mais je trouve ça nettement plus tranquille un contest d'un mois

Julius2k17: je pourrais coder un mcts en 1 mois :D

Stilgart: et de gérer son calendrier

leojean890: je dépasse parfois 3h en un jour de weekend mais pas si souvent

jdeveil: clair...

Oioi: Heu... je comprends rien à ce classement !

Stilgart: Julius2k17: pour ça, il y a les multis

BlaiseEbuth: Nan mais on va pas vous payer des serveurs pendant un mois. Calmos

Julius2k17: Stilgart oui je vais continuer

Stilgart: Oioi: tu es 110e, gg

leojean890: je pense que je suis à 25h de CG sur ce contest environ

leojean890: Stilgart il était #1 pendant un petit moment :)

Oioi: Ok, 110eme je comprends

leojean890: après les simus ont démbarqué

Julius2k17: Stilgart j'avais repris sur fall challenge il y a qq semaines

Stilgart: leojean890: j'ai fais 1 que sur UTTT je crois

Stilgart: mais euler m'a pas laissé le temps de faire un screenshot

leojean890: Stilgart 1h seulement ?

leojean890: ah premier

leojean890: ok

Oioi: Mais en dessous, ya un classement où j'apparais 9ème Oo

Julius2k17: 1h c recurse dimanche matin

leojean890: c'était un contest ?

Stilgart: plutôt 1min :)

leojean890: ou multi

Zorg1: UTTT c'était un multi

Luksis: AH LA VACHE c'est chaud comment recurse il écrase tout le monde

leojean890: je croyais que uttt était multi d'abord

Stilgart: sur ce contest, j'ai du y passer 10h

Zorg1: jamais contest

Stilgart: mais carrément pas efficace

leojean890: Luksis vive les réseaux de neurones hehe

Luksis: il a fait un réseau de neurone ?

Stilgart: j'ai codé le moteur en heure sup faute de pouvoir tester des heuristiques :/

leojean890: moi c'est 25h par contest et presque 100 sur OOC ^^

Luksis: comment tu sais ? il y a le PM sur le forum ?

Oioi: Oh, pardon, j'ai compris, c'est les codingamers suivis, désolé

jdeveil: OOC ?

leojean890: ocean of code

Julius2k17: facile 30 h sur celui-ci

leojean890: j'y ai bien oassé 100h xD

Zorg1: il en a parlé sur le chat world, il va faire un PM si j'ai bien compris

jdeveil: merci leojean890

leojean890: 255 h par semaine 4 semaines mdr

Luksis: ok d'accord

Thyl: la il faut qu'on comprenne

Zorg1: mais y en a ils bossent à fond sur les contests

leojean890: reseau de neurones on avait deviné :)

leojean890: comme fenrir

Julius2k17: c son métier aussi à reCurse non ?

leojean890: je pensais pas qu'en aussi peu de temps ils pouvaient avoir des résultas aussi bons

leojean890: résultats

leojean890: 10j à peine

Stilgart: c'est beaucoup en vrai pour entrainer

jdeveil: si c'est bien entrainé

leojean890: 25h par semaine 4 semaines*

Stilgart: le NN n'est qu'une brique, et les jeux se ressemblent

Stilgart: leojean890: sur OoC je saurais pas estimé mon temps

Stilgart: j'ai souvenir d'avoir bien bullé au milieu

Zorg1: ouaip je note pas mes heures

Luksis: mdr je vais sur le profil de recurse : il gagne lus de points dans les challenge que la base

leojean890: je dis ça approximativement

leojean890: j'ai gardé la cadence moi^^

Luksis: genre : 9900 / 9500 :D

Luksis: il est tellement fort qu'il a cassé CG

leojean890: Luksis bah ouais il enchaine les top 3 hehe

Stilgart: Luksis: oui, c'est le rendu qui est cassé

leojean890: non mais ça c'est parce que ça a été calculé la veille

Zorg1: enfin je pense qu'il y a un sacré investissement de travail de sa part

Stilgart: il faut faire +500 partout sur le 2e nombre

leojean890: oui il y passe du temps je pense:)mais ça paye!

Stilgart: tant que SC21 n'est pas crédité

Luksis: ah oui je vois

BlaiseEbuth: C'est typiquement le mec qui a mis tout ses points de compétences sur INT et aucun sur HUM.

Luksis: je vois je vois

leojean890: OOC j'avais baissé ma quantité la dernière semaine mais ça restait pas mal

Stilgart: ça reste un bug ;)

leojean890: ils auraient pu garder /10000 jusqu'à 2h du mat

leojean890: et switcher le dénom en même temps que le numérateur

Julius2k17: moi c le multi CSB sur lequel j'ai passé le plus de temps

leojean890: mais bon ce n'est que du détail hehe

BlaiseEbuth: héhé

jdeveil: et demain tout sera rentré dans l'ordre

Zorg1: ouaip demain on sera plus que 10 à troller sur ce chat ^^

BlaiseEbuth: Enfin

Zorg1: ah oui c'est vrai t'es un modo agoraphobe ^^

Bon[]Crayon: On n'est plus chez soi !

BlaiseEbuth: Pas agoraphobe, misanthrope.

Bon[]Crayon: Automaton2000 code::++

Automaton2000: je crois pas qu'on ait su ce que c'était un problème de perf

Zorg1: bah crée toi ton chan #toutseul

philRG: Là on dirait que ça a été un peu plus long pour voir débarquer les simus

BlaiseEbuth: Non. Je préfère rester ici et exprimer mon mécontentement à ceux qui me déplaisent.

Zorg1: les heuristiques avaient leur chance

philRG: c cool ça attire de nouveaux clients ;)

leojean890: ah Agade a tenté le NN et n'a pas eu le tps dommage

leojean890: miklla de la prog dynamique wow on voit vraiment de tout:p

TidyMaze: en fait le NN c'est mainstream, on est sûr que reC*rse a pas utilisé un truc encore plus hipster et compliqué ?

philRG: j'avoue que les heuristiques, ça fait aussi suer lol

leojean890: il en a parlé sur world je crois

leojean890: j'ai pas lu encore

BlaiseEbuth: DUCT + NN en eval

jdeveil: c'est quoi DUCT ?

leojean890: ça fait le taf^^

leojean890: BrunoFelthes en GA, je pensais que c'était chaud de faire un GA sur ce sujet

k4ng0u: decoupled uct

Zorg1: DUCT : une méthode pour faire un MCTS avec des joueurs en simultané

leojean890: avec une liste de legal moves qui change tlt, comment muter ?

BlaiseEbuth: Une variation de MCTS plus adapté au jeu simultané

Zorg1: (et pas l'un après l'autre)

philRG: ah ouais du coup il a entraîné son NN pour faire ensuite un DUCT, quand le sujet s'est dégrossi après les win des pythonistes

philRG: de voir que c'était casse bonbon de faire une eval correcte

jdeveil: le NN lui permet de définir quels sont les moves à privilégier ?

leojean890: quoi que Saeylos avait fait un GA pour pacman alors que la liste de legal moves change tlt aussi

Zorg1: j'avais même capté le coup de ne pas planter à côté de ses arbres ^^

leojean890: taurais gagné en rollouts pertinents hehe

Zorg1: bah je me suis débrouillé

philRG: et en fait le MTCS se prête bien car ça me paraît difficile de définir une vraie stratégie

leojean890: skotz aussi en minmax

philRG: moi j'ai planté à côté des arbres adverses et jamais dans l'alignement des miens

leojean890: Zorg1 ouais bon classement qd même mais t'aurais ptet encore fait mieux:)

Zorg1: oui mon j'ai passé deux jours sur un bug à la con

leojean890: ouais tkt je connais ce genre de pbms^^

Zorg1: jten foutrais de dév pendant une réunion tiens

leojean890: parfois ça démotive

philRG: c rude

leojean890: mdr

jdeveil: Zorg1 faut pas se faire choper ;)

Zorg1: avec Skype ça va ^^

TidyMaze: on sait ce qui marche bien pour entrainer un NN ? Un algo genetique sur les poids du reseau + du self play entre les differents chromosomes, c'est ça ?

jdeveil: c'est plus simple déjà oui

BlaiseEbuth: C'est un sujet extrêmement complexe TidyMaze...

philRG: j'ai pas tout capté au stream de R4, mais c cool d'avoir des streams pendant le contest quand on a un petit coup de mou

Zorg1: enfin R4 il faisait plus des vidéos que des streams

TidyMaze: je me doute BlaiseEbuth ^^ quelques mots clefs a googler me suffiront

Zorg1: TidyMaze : t'as énormément de méthodes en plus j'ai l'impression

BlaiseEbuth: Différents types de NN...

-TheWalder-: Les NN c'est un monde à part mdr

Bon[]Crayon: Les NeuNeux sont l'avenir de l'humanité.

BlaiseEbuth: Commence par là TidyMaze https://www.codingame.com/forum/t/neural-network-ressources/1667

TidyMaze: merci :)

philRG: Zorg1 oui exact il a fait tryhard sur les explications et méthodologie, le C reste un langage universel

philRG: bon langage pour l'apprentissage

Zorg1: *hum* pas vraiment sûr de ça philRG ...

Zorg1: le C pour l'apprentisssage, je reste sceptique

**BlaiseEbuth attends l'alternative proposée pour doser le sel de sa réponse.

philRG: enfin pour moi, je préfère lire un stream en C qu'en C++/C#/Java avec plein de mots verbeux

philRG: je suis pas assez pratiquant

Julius2k17: le C j'arrive plus à le lire

philRG: idem

Julius2k17: le C++ non plus d'ailleurs

BlaiseEbuth: infidèle philRG

BlaiseEbuth: au bûcher

philRG: hehe

Thyl: le C c de l'entrainement

Thyl: les defines de 15 km c'est dur

Julius2k17: j'en faisais ya 20 ans et j'ai l'impression que la syntaxe a évolué en c++

BlaiseEbuth: les defines c'est pas du C

Thyl: ça en fait partie :D

BlaiseEbuth: Non

Thyl: #define SIZE 2

philRG: mon frère faisait du C à donf, me dit que le C++ il connaît pas enfin il veut pas s'y mettre ou m'expliquer lol

philRG: pour ça qu'il m'a dit de me mettre à python

BlaiseEbuth: C'est des instructions préprocesseur, ça ne fait pas partie du langage

philRG: #defin SIZE 2 c'est beau

Julius2k17: tu chipotes Blaise

philRG: e

**Thyl /slap /me

philRG: toute ma jeunesse

BlaiseEbuth: Bah non...

Thyl: le preprocesseur fait partie du langage

Zorg1: bah disons que le préprocesseur a été utilisé pour combler un manque du C ...

Thyl: un compilateur C sans preposséceur

Thyl: ...

Thyl: c'est un hamburger sans steak haché

Rip: végan ;)

Thyl: mais si tu le dis BlaiseEbuth

Zorg1: tu peux très bien utiliser un autre macroprocesseur que cpp

Zorg1: avec C

BlaiseEbuth: voilà

Zorg1: ça sera moins standard mais c'est possible

Thyl: bon

Thyl: j'ai riend dit

Zorg1: contrairement à un langage + moderne C ne sait pas ce que c'est un "import"

Thyl: Zorg1

Thyl: sur le proporcesseur

Zorg1: macroprocesseur ou préprocesseur

Vry: Pas d'import, C peut le faire tout seul ! :p

nicola: #define, ça manque en Python.

Thyl: ça existte import

Thyl: regarde dans l'ide CG

BlaiseEbuth: lel

nicola: Ce n’est pas la même chose.

Zorg1: gné ? un #include ?

nicola: :)

nicola: Des macros, quoi.

Zorg1: ouaip ^^

Thyl: import

Thyl: #import

Zorg1: c'est du C++ ça non ?

Thyl: non

nicola: import, c’est comme #include.

Bon[]Crayon: Du D

-TheWalder-: Quand est-ce qu'il est préférable d'utiliser minimax au lieu de MCTS ?

Zorg1: ça n'existe pas dans le préprocesseur standard du C, #import

Zorg1: -TheWalder- moi je vois MCTS comme une version "probabiliste" du minimax

Zorg1: et justement un MCTS converge vers un minmax dans la théorie

-TheWalder-: Ah d'accord donc autant utiliser MCTS directement

Zorg1: bah le MCTS ça t'impose d'aller jusqu'au bout, et d'explorer un peu au hasard, c'est surtout si tu veux pas faire d'éval

BlaiseEbuth: Pas forcément... J'aurais tendance à dire qu'un minmax sera moins gourmand qu'un MCTS, donc si le jeu le permet autant faire un minmax

Zorg1: Minmax il te faudra une éval, tu n'explorera jamais jusqu'à la fin du jeu

francois: bah oui si j'ai bien compris, MCTS : tu vas jusqu'à la fin de la partie, Minimax : tu t'arrêtes avant mais pour compenser il te faut une fonction d'évaluation.

francois: mais dans la pratique il y a des gens qui arrêtent leur MCTS à une profondeur max ?

Vry: MCTS a clairement ma préférence ...

Vry: ... faut juste optimiser le rollout :)

-TheWalder-: Après ça dépend peut-être de celui qu'on préfère en soi les deux fonctionnent

Thyl: c'est permis en C d'alloeur dans une fonction et de désallouer dans une autre fonction ???

BlaiseEbuth: Après c'est une question de possibilité. Perso, si je vois que le jeu se prette au minmax je me fait pas chier avec un MCTS... :3

Vry: Par contre il faut que je regarde du côté des NN, ça peut être sympa

Vry: Thyl : oui le tout c'est de ne pas perdre l'adresse mémoire

Zorg1: thyl : si tu alloues sur le tas (malloc) oui

Vry: (je ne connais que malloc ... lol ou pas ...)

francois: NN c'est sympa quand tu as une ferme de GPU pour faire 10000 parties en // ?

Zorg1: bah t'as le fameux alloc qui alloue sur la pile ...

Vry: C'est pour CG ou en général ?

GeoBlack: Le problème n'est pas MinMax, BFS ou MCTS, je trouve.

Thyl: merci

Vry: Non francois, le premier du contest l'a fait sur son PC perso (certe un gros PC) mais pas besoin de ferme

GeoBlack: Perso, mon plus gros problème c'est comment dépasser 100 noeuds à simuler en 50ms

Zorg1: un PC de gamer devrait suffire ^^

Zorg1: GeoBlack : en quel langage ?

Vry: un i7 truc muche et un 3080 je crois ...

GeoBlack: en c#

GeoBlack: je sais ce n'est pas top

Vry: On avait 100ms

francois: oui j'ai lu, un bon PC de gamer OK mais faut déjà savoir où tu vas sur ta structure.

Zorg1: bah le truc c'est déjà d'éviter d'allouer et de désallouer sans cesse de la mémoire, d'allouer un seul bloc et d'utiliser ça comme un pool de mémoire

GeoBlack: mais je devrais réussir à simuler au moins 2000 noeuds

Vry: 100 noeuds c'est peu, je pensais que c# était plus rapide que Python

GeoBlack: non c'est moi

Zorg1: vry : ça dépend comment t'utilises ta mémoire

BlaiseEbuth: C'est un vrai faux problème GeoBlack. Tu peux avoir 30k rollouts si ton algo/eval/pruning est mauvais ça n'avance à rien.

GeoBlack: on fait j'ai commencé avec un heuristic classique (ce que je sais faire)

GeoBlack: => gold mercredi

Zorg1: hé hé ça me rappelle quand je fais WAIT WAIT j'ai un nombre de rollout impressionnant ^^

Zorg1: par contre bon c'est un peu inutile

GeoBlack: mais depuis j'ai essayé d'implémenter MCTS

GeoBlack: et pas moyen

GeoBlack: BlaiseEbuth, je suis d'accord

Zorg1: bah MCTS t'as deux problèmes : la simu (pour les rollouts) et la gestion de l'arbre

Zorg1: (je vois ça comme ça)

BlaiseEbuth: L'avantage du MCTS c'est que t'as pas besoin d'optimiser la copie d'état

Vry: Pour debug mon MCTS j'ai fait un Bruteforce pour comparer les arbres ... et j'ai vu que mon MCTS partait à l'infini est au delà ...

GeoBlack: mais là en lisant les différents PM (je remercie d'ailleur ceux qui passe du temps à les rédiger) j'avais toutes les idées.

GeoBlack: sauf que mes simulations sont carrément trop lente

BlaiseEbuth: Tu fais combien de rollouts par tour GeoBlack ?

rafaelSorel: ce n'est plus possible de jouer encore sur spring chanllenge 2021 ?

francois: Tiens d'ailleurs pour les simulations, est-ce que vous visez la simu strictement exacte ou vous vous autorisez certaines approximations pour aller plus vite ?

BlaiseEbuth: rafaelSorel ça va venir (demain ?)

rafaelSorel: Ok super thx ;)

GeoBlack: allez je vais être gentil 200 rollouts

GeoBlack: bien trop peu

BlaiseEbuth: C'est pas ouf. tiouz qui a fait top legend avec un MCTS en python fait dans les 800 il me semble.

Zorg1: après il te faut une idée de savoir où tu bouffes le plus de temps

GeoBlack: et je vois peu d'astuce à part partir sur du bitwise

Zorg1: en général c'est à la génération des actions possible

BlaiseEbuth: Pas pertinent pour du MCTS GeoBlack

BlaiseEbuth: Tu n'as pas besoin de copier ton état de jeu.

BlaiseEbuth: (si tu le fais c'est LE truc à améliorer ^^)

GeoBlack: Noeud: Ombres int[37], Arbres List, quelques entiers

Zorg1: oui l'état n'a même pas à se trouver dans les noeuds de ton arbre

GeoBlack: mes actions sont précalculées

Zorg1: t'as une variable état à côté que tu mets à jour pendant que tu parcours ton arbre et fait ton rollout

Zorg1: *un objet état

BlaiseEbuth: Ou pas ?

GeoBlack: pour être honnete j'ai commencé avec un bfs

BlaiseEbuth: Ou est-ce que t'as une copie de l'état dans chaqur node ?

BlaiseEbuth: *chaque

GeoBlack: oui

BlaiseEbuth: Voilà

BlaiseEbuth: Ca ça mange tes perfs

GeoBlack: l'état : la map et la liste arbres et une map ombre

GeoBlack: effectivement

Zorg1: oui l'état représente ton board, avec éventuellement des indications 'en plus' tel le score, le jour ...

GeoBlack: il fut bien garder les etats calculé sur child par terminer pour pouvoir repartir de ces childs

GeoBlack: non ?

BlaiseEbuth: Vu qu'avec un MCTS tu joues chaque partie jusque au bout, tu copie l'état une fois au début, puis tu le modifie pour arriver à la fin de la partie, et tu refais une copie propre pour le rollout suivant.

GeoBlack: pardon ce n'est pas francais

BlaiseEbuth: Mais pas à chaque noeud

GeoBlack: pour pouvoir repartir (selection noeud) il faut garder les états des noeuds qui ne sont pas terminés

GeoBlack: pour pouvoir repartir de ces derniers au moment de la selection

BlaiseEbuth: *Je suis en train de m'emmeler les pinceaux. My bad.

GeoBlack: du coup il y a quoi dans vos noeuds ?

BlaiseEbuth: Oui il y'a des infos à copier. Mais tu en a trop.

BlaiseEbuth: La map reste la même toute la partie, pas besoin.

GeoBlack: oui on est d'accord

GeoBlack: mais l'ombre et les arbres ?

BlaiseEbuth: Et les ombres changent chaque jour, et ne servent qu'une fois au début, vaut mieux les precalc et les utiliser quand t'en a besoin que de te les coltiner partout

pardouin: bordel je lance le chat et première phrase que je lis "du coup il y a quoi dans vos noeuds ?"

pardouin: D:

pardouin: moi j'ai total échoué au mcts, faudra que je regarde ça de plus près

pardouin: je stockais bien trop de trucs dans chaque noeud

GeoBlack: l'ombre est liée aux arbres

BlaiseEbuth: Comment ça

GeoBlack: je précalcule les ombres pour chaque taille et case de la map

pardouin: j'essaierai de le refaire avec un max de modifications en place

BlaiseEbuth: Ca c'est bien, mais du coup c'est quoi l'ombre dans tes noeuds

BlaiseEbuth: ?

GeoBlack: mais ensuite par tour cela te donne une ombre que tu dois additioner entre chaque arbre

GeoBlack: ?

BlaiseEbuth: Comment ça additionner ?

BlaiseEbuth: Tu veux dire l'ombre portée ?

GeoBlack: oui

GeoBlack: avec la force de l'ombre de 1 à 3

pardouin: tu peux utiliser un bitboard avec des | je pense que c'est pas si long

BlaiseEbuth: Mais ça te sert à quoi de l'avoir dans ton état ?

BlaiseEbuth: Quand c'est un nouveau jour, les ombres changent, on calcul le sun avec, et elles servent plus jamais après.

GeoBlack: pour éviter de la recalculer quand tu en a besoin

GeoBlack: attribution des sun, savoir si tu peux couper un arbre etc ...

Magus: ah donc Saelyos était en DUCT

Magus: ah ah

Magus: ah ah ah ...

Magus: je vais insulter mon code pour me calmer

GeoBlack: oui je suis d'accord

GeoBlack: je vais revoir ma copie

Magus: Automaton2000, ta mère la mono core

Automaton2000: déjà 800 en or le 1er jour du contest

Magus: (voila, j'ai insulté mon code)

GeoBlack: mais c'est con, à chaque fois j'ai les idées mais je bloque sur de la perf et les piste d'optimisation.

GeoBlack: finalement merci à toi

BrainSolver: gg Automaon2000, l'or est déjà ouvert le 1er jour ?

BrainSolver: Automaton2000

Automaton2000: et ne pas avoir à faire de la peine

GeoBlack: je vois les erreurs que j'ai commise

BlaiseEbuth: Question de pratique et d'habitude GeoBlack. Fais des multis. ^^

GeoBlack: Par contre, on d'accord je selectionne avec un UCT, je trouve les enfants et je rollout (je vais jusque au bout) et ensuite backpropage le score

OldJohn: Y a t'il un terme français pour rollout ?

BlaiseEbuth: GeoBlack https://int8.io/monte-carlo-tree-search-beginners-guide/ si tu l'as pas déjà

GeoBlack: oui merci j'ai déjà regardé

GeoBlack: rollout = je vais jusqu'à d=24 (ou autre si on veux raccourcir)

b0n5a1: re

BlaiseEbuth: Bonne question OldJohn, déjà que personne n'est d'accord sur la définition du terme anglais... ^^

GeoBlack: en mode semi random

b0n5a1: rétropropagation (rollout)

GeoBlack: non

GeoBlack: c'est pas ça si ?

GeoBlack: ça c'est le Backpropagation

b0n5a1: sélection/expansion/simulation/rétropropagation

b0n5a1: backpropagation pareil

GeoBlack: rollout c'est simulation

GeoBlack: non

GeoBlack: ?

OldJohn: @BlaiseEbuth si je comprends bien c'est la phase 'marche aléatoire jusqu'à la fin de la partie'

GeoBlack: oui

GeoBlack: pour moi c'est cela

OldJohn: pour moi MCTS c'est selection/expansion/marche aléatoire/retropropagation

b0n5a1: oups simu rollout oui

GeoBlack: pour moi aussi

GeoBlack: ok merci

OldJohn: Attendez je regarde dans le Russel

GeoBlack: je vais retravailler mes simu car j'en ai un peu marre de faire des heuristic à chaque fois

OldJohn: OK en anglais la phase se nomme SIMULATE pour Russell et Norvig

OldJohn: Donc pas Roll-out qui est un terme anglais un peu fourre tout

OldJohn: Si finalement il y a simulation (also called a playout or rollout) Page 161

b0n5a1: simulation/playout/rollout en fonction des docs

OldJohn: Random walk till the end chez les bons auteurs...

Stilgart: il y a du MCTS dans le Russel et Narvig ?

b0n5a1: je crois ouais

OldJohn: Oui dans la dernière édition

Stilgart: faudrait peut-être que je le lise ce bouquin

Stilgart: ha... je dois avoir l'ancienne édition moi

Stilgart: et ça me dit rien

b0n5a1: bon j'ai l'édition 3 en français mais quasi sûr que c'est dedans

OldJohn: Ils ont augmenté la partie deep learning

b0n5a1: ha bin non, j'ai peut être mal cherché (vite fait) mais pas dans l'édition 3 que j'ai en fait

b0n5a1: en même temps elle est de 2010 celle là je crois

b0n5a1: ha cool la version anglaise de mai 2021 est à moins de 20 balles au format kindle

OldJohn: Oui la version papier est chère et lourde!

b0n5a1: ouais je l'ai payée 70 balles je crois l'édition 3

b0n5a1: et je confirme c'est du pavé pesant ^^

b0n5a1: ouch la dernère édition (4) de 2021 est à 230 balles en format papier

OldJohn: Ouaips c'est le boulot qui a payé (donc nos impots, désolé)

b0n5a1: le truc pas mal en version numérique c'est aussi la facilité de recherche et les mises à jour (normalement) en cas de d'erreurs à corriger

DrGrognon: @BlaiseEbuth merci pour la ref int8 j'avais pas moi ;)

4046568: https://www.pearson.com/store/p/artificial-intelligence-a-modern-approach/P100000291856?tab=table-of-contents

4046568: ca a l'air moins cher ici ;)

4046568: (enfin pour le papier)

BlaiseEbuth: 159$ C'est cher la déforestation.

BlaiseEbuth: Faudrait que je fasse un post type "community resources" pour les articles/references qui ressortent tout le temps...

Zorg1: donc en couverture : un grec, Turing, Ada Lovelace un joueur d'échec et deux robots :thinking:

Zorg1: m'ouais c'est assez bateau

OldJohn: C'est Gary le joueur d'échecs

Zorg1: sacré Gary

mapapin: Hey, il y a déjà eu des post mortem ? Si oui, vous avez les liens svp ? :)

BlaiseEbuth: Y'a un thread sur le forum mapapin

b0n5a1: par contre bizarre au format kindle y'a une version à 20 balles, l'autre à 65

BlaiseEbuth: "Y'a un forum ?! :o"

b0n5a1: celle à 20 balles mai 2021, l'autre avril 2021

mapapin: Je n'arrive pas à trouver la page, est-ce que tu pourrais me filer le lien stp ? :)

BlaiseEbuth: https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies/190849/60

mapapin: Merci !

Zorg1: ah ok la règle qu'ils implémente c'est "no wait if a seed" j'ai fait quasiment l'opposé "no wait if a grow" :D

Zorg1: c'est amusant ^^

BrainSolver: J'ai un "no wait if complete" au tour 23 :grinning:

Zorg1: oui ça aussi ^^

Zorg1: mais j'ai carrément raté les heuristiques les + communes sauf "no seed if already one"

Zorg1: ça fait un paquet de truc à essayer ^^

Default avatar.png JBM: ah je dois avoir une 3e qui traine et j'ai meme pas pensé à véëifier

Vry: Il faut que je regarde le bitboard avec padding de 3 du coup, BrainSolver valid ! :p

Vry: *valide

BrainSolver: oui, padding 3 c'est mieux

BrainSolver: le pire c'est que j'y ai pensé en rédigeant mon post-mortem :grinning:

Default avatar.png JBM: ouais alors y'a mcts, mais 1) pas sous ce nom et 2) 1 paragraphe sur un bouquin de 1100 pages

Default avatar.png JBM: (par contre y'a la meilleur explication que j'aie encore vue sur pourquoi ça s'appelle “rollout”)

Vry: Si j'ai bien compris c'est super pratique pour les shadow mais en revanche pour les seed ça n'est pas utilisable

BrainSolver: Je pense que si. Mais je ne l'ai pas fait.

BlaiseEbuth: Fait moi rêver JBM. Pourquoi rollout ?

BrainSolver: pour les seed j'ai pre-calculé.

Zorg1: ça doit être un bonhomme qui s'appelle comma ça ^^

Zorg1: disons Lord James Rollout, 4eme Comte du Softwishire

Vry: Moi aussi, mais toujours obligé de traiter les arbres un par un, niveau par niveau.

Default avatar.png JBM: BlaiseEbuth: ça vient de backgammon

**BlaiseEbuth fouille dans ses souvenirs lointains de backgamon...

Default avatar.png JBM: cherche pas ytop oin

Default avatar.png JBM: roll comme lancer un dé

Vry: Je me demande ce qui ce cache derrière _bit_scan_forward : moi j'ai un ctzll

BlaiseEbuth: Ah bah la version du dé je connaissais. Mais pourquoi backgamon spécifiquement ?

Default avatar.png JBM: parce qu'ils galéraient à évaluer les positions j'imagine

Zorg1: bah c'est pas l'un des rares jeux "nobles" avec une certain antiquité où tu fais avancer qqch avec un dé ?

Default avatar.png JBM: j'ai jamais pratiqué, je saurais pas

Zorg1: bah tu simules une course de chevaux, un peu plus sophistiqué que les petits chevaux ^^

Default avatar.png JBM: plus sophistiqué comment?

Zorg1: bah les règles de blocage

Default avatar.png JBM: (posément: en quoi le gagnant n'est pas celui qui se trouve avoir jeté le plus de points aux dés)

Default avatar.png JBM: ah je connais pas, ça

BrainSolver: http://chat.codingame.com/pastebin/1880c083-c077-4699-9bda-da4dc4c8066e

BrainSolver: Vry, je parcour les abres un par un avec __builtin_ctzll aussi.

Vry: Ok, ça pique un peu le t^1ULL<<i au début

Zorg1: << est plus prioritaire que ^ ?

Zorg1: j'aurais mis des parenthèses

BrainSolver: oui, ca l'est

Vry: Moi aussi, mais j'ai testé et ça marche, ça donne bien les positions des trois 1

Vry: Ma version :

Vry: uint64_t t = 0b10101;

Vry: while (t)

Vry: {

Vry: int i = __builtin_ctzll(t);

Syj: un jour, j'avais remarqué que les perf de ou exclusif était vraiment dégueulasse en Java

Vry: t = t & (t-1);

Vry: cerr << i << endl;

Vry: }

BlaiseEbuth: Y'a les perfs de certains trucs qui ne le sont pas en java ?

Vry: Du coup ça revient au même, sauf que j'ai une ligne de plus au final

Syj: BrainSolver , tu as comparé ta formule en remplaçant par un &

Syj: enfin pas en remplaçant mais en utilisant une loop qui valide chaque nombre avec un &

BrainSolver: non, j'ai pas comparé

BrainSolver: t &= --t; :grinning:

BrainSolver: je ne sais pas si ca marche ca..

Zorg1: b0n5a1 : là ce que montre Alexandre c'est son jeu ?

Syj: je voulais essayer dans un puzzle mais la , çà rame chez moi et je ne suis pas sous mon Linux...

b0n5a1: Zorg1 oui

Zorg1: ok merci ^^

pardouin: https://www.youtube.com/watch?v=10WoPFtKPv8

Rajh: Bonsoir, j'ai entendu dire que certains utilisaient des NN du coup sur codingame. Quelqu'un peut m'en dire plus svp ?

pardouin: (moi je jouais au backgammon avec un pote sur msn c'est trop bien en fait :D)

pardouin: c'est surtout du selfplay j'ai l'impression

pardouin: mais il y a un tuto quelque part d'Euler (je crois?) pour récupérer des données de parties directement, jamais trop regardé de près

b0n5a1: Rajh : https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies (voir Robostac par exemple)

Default avatar.png BabelO: ou comme l'a dit quelqu'un plus haut, le NN avec MCTS pour le rollout http://int8.io/monte-carlo-tree-search-beginners-guide/

Rajh: J'ai vu oui, mais j'ai plus l'habitude d'utiliser des framework. Ici ca veux dire qu'il a recoder un NN en partant de rien ? Ya des infos sur le web pour faire des NN tenant dans 36k charactères ?

Rajh: Ah je vais regarder merci BabelO

Default avatar.png BabelO: la partie lourde c'est le lerning, le plahy c'est leger

Default avatar.png BabelO: tu as des libraries comme convnetjs qui prennent a peine 33Ko en minifié

Default avatar.png BabelO: et il y a tout dedans

pardouin: https://www.codingame.com/forum/t/how-to-download-the-json-files-used-to-store-replays-on-cg/2894

Default avatar.png BabelO: c'est la partie en blouge qui parle d alpha go

Rajh: Ok intéresant

pardouin: (pour récup des données)

pardouin: mais bon tu récupèreras pas des centaines de milliers de parties :)

Default avatar.png BabelO: le mode reinforcement est interessant sans les parties joué

Rajh: Par contre ça vous gènes pas les NN dans les contest ?

Default avatar.png BabelO: j'ai vu que quelqu'un avait fait avec du qlearning ? reinforcement learning

Default avatar.png BabelO: vous avez le lien ?

pardouin: personnellement je trouve pas ça intéressant car trop boîte noire

BlaiseEbuth: raciste

pardouin: mais certains ont réussi à trouver de bonnes heuristiques en regardant des parties de recurse par ex

pardouin: donc c'est pas inintéressant dans l'absolu

Rajh: Au final si les top des contests vont se résumer a celui qui a la plus grande force de calcul ... :D

ranaili: bonsoir a tous, je viens de faire un clash mais je n'ai pas réussi a trouver la réponse .. c'est possible de la trouver quelque part ?

Default avatar.png BabelO: pareil j'utilise au travail les reseaux de neurone / CNN / RNN mais bonca reste plus interessant les algos :) puis quand je vois des personnes arriver en legende avec des language JS ou meme perl ...

pardouin: ça marche quand même rarement je pense, la perf de recurse là c'est assez rare ce genre de truc

pardouin: à part recurse les gens qui avaient un NN ont pas spécialement mieux réussi que sans, il y a de tout dans le top

Default avatar.png BabelO: tout depend comment il a fait :) un CNN est tres rapide en run, en plus si c'est codé et optimisé pour une taille specifique

Default avatar.png BabelO: il a fait un retour recurse ?

Skygge: reCurse a publié son PM à l'instant :wink:

Default avatar.png BabelO: ah benovoila

Rajh: Bah a priori c'est quand même l'état de l'art non ?

Default avatar.png BabelO: la en ce moment en recherche c'est les transformer

Rajh: Les decepticons ?

pardouin: TotoZero

jdeveil: non les autobots

BlaiseEbuth: rollout !

Default avatar.png BabelO: https://www.wikiwand.com/en/Transformer_(machine_learning_model)

pardouin: c'est bon on a trouvé le nom du contest

Default avatar.png BabelO: model d attention, .. sur le site de tensorflow il y a de bon exemple

pardouin: je vote à 100% pour TotoZero, c'est catchy et hommage à la perf de recurse

pardouin: 1.3 millions de selfplay awiquandmême

Default avatar.png BabelO: c'est beau !!

Default avatar.png BabelO: Inference was done through extensive use of C++ templates, AVX2 intrinsics, and verification through disassembly.

Default avatar.png BabelO: tout en CNN surement un CNN par type d'entree opposant / joueur / tree opp /tree joueur .

Rajh: For those concerned about the asymmetry of “AI hiding”, believe me or not I have run zero batches during this competition.

Rajh: c'est quoi ?

Default avatar.png BabelO: ben qu'il a juste soumis, il a pas masque sa vrai AI

Default avatar.png BabelO: enfin ce que j'en comprend

Rajh: Je comprends pas moi xD Masquer quoi comment ?

Zorg1: il dit qu'il n'a pas testé en douce son IA toujours chez lui avec les IA du top

Default avatar.png JBM: plutôt qu'il a pas été se mesurer avec les IA de l'arène avant d'y avoir soumis lui-même

Default avatar.png JBM: (je dis ça avant d'avoir lu)

Default avatar.png BabelO: oui ocmpris pareil

Default avatar.png BabelO: mais c'est beau !

Bon[]Crayon: Sa rame encore cg ?

Zorg1: Rajh : en gros le hiding c'est entrainé ton IA uniquement via l'IDE (ou un outil qui automatise ça) contre les IA du top et adapté ta technique sans que eux sans doute

Default avatar.png BabelO: pas trop de detail c'est tres bien !

Default avatar.png JBM: pour moi le hiding c'est juste «ne pas soumettre»

Default avatar.png JBM: c'est indépendent de «se mesurer aux autres»

Zorg1: et ensuite quelques heures avant la fin du contest tu te raménes et les autres ont à peine une heure pour s'adaper

Rajh: C'est pas un peu ce qu'il a fait ? Il a submit tard non ?

Default avatar.png JBM: là il a hidé

Default avatar.png JBM: il l'a juste fait de manière [qui lui parait] juste

Zorg1: après ça dépend de la définition de chacun

Zorg1: mais c'est vrai qu'il y a eu de long débat sur le sujet ^^

Default avatar.png BabelO: ben il a soumis depuis un momoent pas 5h avant on l'a vu apparaitre en haut samedi il me semble

Zorg1: mais c'est vrai que si tu montres pas ton IA les gens ne risque pas de s'adapter contre

Default avatar.png JBM: oui

Default avatar.png JBM: c'est l'autre côté de l'asymétrie

pardouin: oui je pense pas qu'il y ait eu de volonté de cacher plus que ça, il a juste attendu que son truc soit vraiment prêt

Rajh: Ca semble tellement inatteignable c'est déprimant par contre :s

jolindien: ok, aucun détail technique

jolindien: dommage

pardouin: rigolo que son truc performait très mal contre les trop faibles ^^

reCurse: Tu voulais savoir quoi jolindien?

jolindien: archi, algo, tout :)

Rajh: Les sources !

Rajh: lol

pardouin: ton eval :o ?

jolindien: Value / Q ?

Default avatar.png JBM: poids des nœuds (0,0) à (512,512)

jolindien: one hot encode ?

reCurse: Je crois avoir déjà donné, alphazero, convolution, etc

Skygge: Perso ça me déprime pas, ça me donne envie de me mettre aux NN :wink:

Skygge: gg

Default avatar.png JBM: convolution hexagonale ça envoie du rêve

pb4: ^

Default avatar.png JBM: mais non, dodo

Rajh: Comparé à RoboStac c'est la même approche ou c'est différent ?

Default avatar.png JBM: je serai fort, je lirai pas avant demain

Default avatar.png JBM: bn les loulous

pardouin: :hugging:

Default avatar.png JBM: :kisses:

pardouin: :blushes:

Default avatar.png BabelO: robotstac il a fait avec MCTS + NN

Default avatar.png BabelO: la c'est que du CNN il me semble

Rajh: Il parle de MC au début

Rajh: et DUCT

Gilde: C'est vraiment impressionant

Default avatar.png BabelO: pour l apprentissage et jouer des coup

Default avatar.png BabelO: il faut les trouver les parties :)

Rajh: Il a codé 2 bots ?

Rajh: Mais il est pas sensé selfplay ? la jsuis perdu

Default avatar.png BabelO: tu fais pareil pour les echecs tu en trouve des millier de partie

BrainSolver: gg reCurse, impressionnant !

Default avatar.png BabelO: moi ce qui m'impressionne c'est d arriver a tenir le code + les weight dans 70ko

reCurse: Merci

Default avatar.png BabelO: ouais c'est fort !

Default avatar.png BabelO: tu as appris super vite !

Rajh: "It all started in 2019" quand même ^^

Pedrito_B: Vive Bellmann

VincentBab: Trop bien à lire ton PM reCurse ! GG

leojean890: mdr je peux même pas aller sur le forum ;) 429 Too Many Requests

Rajh: Bon bref, Bravo reCurse c'est beaucoup de travail et c'est une écrasante victoire

leojean890: il va faire pareil pour son jeu chess et va tous nous tuer^^

Rajh: Son jeu chess ?

leojean890: il a fait une contribution sur codingame

Default avatar.png BabelO: il y a des papier sur les echecs ! http://vision.stanford.edu/teaching/cs231n/reports/2015/pdfs/ConvChess.pdf

leojean890: https://www.codingame.com/ide/puzzle/chess

leojean890: made by reCurse :)

Rajh: Oh j'ai jamais regardé je savais pas qu'il y avait des multi commu

leojean890: y'en a plein, tu peux même en créer si t'as de bonnes idées;)

Rajh: C'est plutôt le temps qui (comme souvent) pose problème :D

jdeveil: ouaip je cherche une idée sympa pour en créer un (avis à la commu ;)

leojean890: il a tjr pas submit sur son jeu mais je sens la dérouillée :)

Zorg1: "rigolo que son truc performait très mal contre les trop faibles ^^" : ça me fait penser à ces articles au sujet des "poisons des NNs" des images bricolés pour être mal interprétés par un NN (alors que toi tu vois un poisson, le NN va te dire "fer à repasser")

reCurse: Très juste

leojean890: il faut faire attention à la précision ET au rappel !

Rajh: Oui ou juste avec des lunettes tu peux te faire passer pour qqun d'autre sur les reconnaissances faciales

Default avatar.png BabelO: oui ou le tshirt que tunporte qui te masque des detecteur comme yolo

Rajh: (des lunettes truqués bien sûr)

leojean890: fauc positifs, faux négatifs, vrais positifs, vrais négatifs,

Default avatar.png BabelO: :)

leojean890: mais souvent tu tunes ton truc vers l'un ou l'autre

leojean890: selon ton objectif

b0n5a1: bah c'est comme nous Zorg1 : tu vois quelquechose que t'as jamais vu et inconnu (quand t'es tout jeune gosse par exemple) t'associe ce que tu vois à ce que tu connais pour lui attribuer un nom/catégorie ^^

b0n5a1: jusqu'à ce que t'aies appris

VincentBab: reCurse tu estimes à combien le temps que tu as passé sur ce contest ?

reCurse: 11 jours pour le contest, 2.3 années pour le reste

leojean890: l'experience paie :)

Rajh: Ya des contests anti simu ?

b0n5a1: t'as jamais vu un lapin mais que des chiens quand t'es môme tu le pointes du dou

b0n5a1: igt

b0n5a1: et dis "chien?"

VincentBab: 11 jour full time ?

leojean890: Rajh va faire ghost in the cell ou fireworks

leojean890: (sujets où le top est en full heuristique)

Rajh: leojean890 wow ca ressemble à un ordre ! lol

reCurse: Disons 90% de mon temps libre oui

leojean890: bah tu demandes des sujets anti simu

leojean890: je t'en file

leojean890: ;)

leojean890: game of drones aussi tiens

3141948: If not winning(): winning_quand_meme() :-D

Rajh: Mais full heuristique sans aucune simu ?

VincentBab: GG pour tout le boulot en tout cas c'est impressionnant ^^

reCurse: Merci

3141948: Bravo reCurse

leojean890: Rajh chaque personne est libre de faire heuristique ou simu, je te donne juste des exemples de sujets où tu affronteras des heuristiques

leojean890: reCurse en effet le diable se cache dans les détails, toujours^^^^

Zorg1: c'est vraiment si anti simu que ça Game Of Drone ?

leojean890: Zorg1 y'a de la simu partielle j'avoue :p

leojean890: mais bon légende peut se faire en heuristique je pense :)

leojean890: les gagnants du contests écrivaient des listes d'objectifs

Rajh: Game of Drones et Ghost in the Cell ça se ressemble comme jeu non ?

leojean890: pas vraiment les mêmes objectifs :)

Zorg1: pas du tout

leojean890: mais bon c'est des sujets à dominante heuristique

leojean890: GITC le gagnant du contest était en heuristique

Zorg1: oui enfin dbdr est parvenu à la légende avec un MC je crois sur Ghost in the cell

leojean890: ah oui ?:) bon bah ok:P

Zorg1: de même j'avais entendu dire qu'un MC pouvait marcher sur GoD

leojean890: après quand je dis dominante heuristique, ça n'empêche pas que certains soient en simu^^

Default avatar.png BabelO: moi le premier que j'avais adore c'est les algo genetiaue sur les drones game of drone ?

Zorg1: c'est pas CSB les algos génétiques ?

Rajh: Mais est-ce qu'une eval sur un MCTS ou un BS est considéré comme heuristique ? :D

leojean890: cultist-wars ou bottlers-of-the-galaxy y'a pas mal d'heuristiques aussi

Zorg1: Rajh : ils disent "méta heuristique" :p

Luksis: botters of the galaxy c'est full heuristique ouais

leojean890: code à la mode aussi

leojean890: cf BlaiseEbuth en légende en heuristique

Luksis: ah code à la mode c'est heuristique ?

leojean890: ouais

Luksis: j'ai jamais joué celui là

Luksis: et je suis un heuristicien

leojean890: après y'a ptet qq mecs en simu aussi

Luksis: héhé là tu me donnes la prochaine cible :D

leojean890: moi je donnais juste les exemples les plus pertinents :p

leojean890: après y'a des sujets vec bcp plus de simus

Default avatar.png BabelO: oui tu as raison ! CSB

Default avatar.png BabelO: https://www.codingame.com/blog/genetic-algorithms-coders-strike-back-game/

Zorg1: c'est nettement plus simple que BotG aussi

leojean890: avec*

leojean890: BOTG est plus dur on est d'accord

leojean890: code royale pas mal pour heuristiques je pense

Rajh: Tiens je suis persuadé avoir jouer a BOTG mais je vois aucun historique sur mon compte

Luksis: je confirme

Luksis: j'allais ire code royale

Luksis: c'est le meilleur challenge que j'ai fait jusque là

leojean890: pas simple à simuler:)

Luksis: et j'ai fait full heuri

leojean890: Luksis dommage t'as pas fait russian AI cup 2020:)

leojean890: enfin peut être l'as tu fait ?^^

Luksis: non

Luksis: je connaissais pas

leojean890: c'est un jeu style age of empires ou warcraft:p

Luksis: OOOH !!

Luksis: shit

leojean890: ils vont peut être les sortir en multis

3141948: Bon moi je vais aller reposer mon NN

3141948: Bonne nuit

leojean890: bonne nuit:)

Bon[]Crayon: Bonne Nuit

leojean890: Luksis ça m'a l'air d'être ton style de jeu^^

Luksis: bonne nuit

Luksis: si si

Luksis: ça l'est justement

Luksis: je disais mer** parce que justement j'ai loupé ça

Luksis: j'ai lu ça m'a PAS l'air *

leojean890: regarde les events passés de RAIC:)

Luksis: en fait moi aussi faut que j'aille me coucher :D

leojean890: bah si je t'en parle c'est au vu de la conv ça semblait adéquat:)

Zorg1: en fait GoD tu peux faire du smitimax ... :thinking:

leojean890: mais les events passés y'a de la simu miitaire, un truc LOL-like aussi

leojean890: BOTG en plus compliqué

leojean890: de la baston en 2D avec flingues avec sauts etc

leojean890: du rocket league

leojean890: tout ça

Luksis: ok

Rajh: C'est où tu dis ?

leojean890: reCurse pourrait faire un NN là dessus, le contest dure 1 mois, ce serait un beau challenge ^^

Luksis: faudra que je regarde russian ai cup

leojean890: sur des jeux bcp plus compliqués :)

leojean890: le site est russianaicup.ru je crcois

Rajh: Ah le site est moche, vive codingame

leojean890: c'est moins ergonomique que CG de loin^^

leojean890: et on peut moins faire de matchs

Zorg1: Da petit français, ça site russe ^^

leojean890: ça encourage l'arène localee

leojean890: t'as une grossse limite de matchs

leojean890: les jeux sont moins beaux aussi je dirais

Rajh: Et t'es limité dans ton algo en taille et temps aussi ?

leojean890: mais plus complexes

leojean890: ouais limité en durée comme ici

leojean890: taille je sais plus

leojean890: je crois qu'on peut plus de 100ko

leojean890: R4N4R4M4 avait plus de 100ko

Zorg1: bah surtout trop riche, je sais pas à quels niveaux sont les IAs

leojean890: sur RAIC y'a un bon niveau au top^^

Zorg1: genre est-ce que des heuristiques ou des trucs plus riches ?

leojean890: les mecs lachent pas pendant 1 mois

R4N4R4M4: 166ko le dernier RAIC :D

leojean890: ^^

leojean890: tu connais la limite ?

leojean890: Zorg1 au top ça simule oui^^

Rajh: Kovi a fini 2eme

leojean890: Kovi a pas lâché ouais^^

Zorg1: t'avais quoi comme genre d'algo R4N4R4M4 pour le RAIC à la fin ?

leojean890: je vais vous filer des PM de RAIC

R4N4R4M4: 4945 lignes

Luksis: bon je vous laisse

Luksis: bonne soirée :)

leojean890: https://habr.com/ru/post/345458/

leojean890: PM du premier d'un RAIC

Rajh: Euh

leojean890: à traduire en FR automatiquement

Rajh: Da

leojean890: c'est comprehensible

Rajh: Mouai je traduis jamais c'est toujours nimp

leojean890: là ça va je trouve

leojean890: http://chat.codingame.com/pastebin/6403baca-92c1-4f20-98e4-d1fdc0663fad

leojean890: tu vois ça se comprend ^^

R4N4R4M4: Zorg1 des micros simulations avec beaucoup d'heuristiques

Zorg1: merci ^^

Rajh: Bon sur ce, goodnight !

R4N4R4M4: BFS pour trouver les meilleurs chemins, simu pour éviter les tirs adverses, ...

leojean890: les PM des premiers sont assez ouf

R4N4R4M4: T'as des nouvelles des T-shirt leojean890 ?

leojean890: pas encore^^

leojean890: toi non plus du coup vu la question ?:)

R4N4R4M4: non plus, je viens de revérifier mes mails, j'y pensais plus trop

leojean890: je regarde souvent mes mails pour voir globalement ce qui y passe^^

leojean890: mais pas vu non plus:)

leojean890: toi tu vas avoir un pull:p

leojean890: et un t shirt :)

leojean890: vu que 2nd round et finale

R4N4R4M4: Oui, bon ça mettra le temps que ça faut. Le dernier, c'était 1 an après, mais on a fini par les recevoir :D

leojean890: je vois hihi

Zorg1: c'est lent la poste russe ^^

leojean890: tu reçois ça quand le suivant commence ;)

R4N4R4M4: Bah c'était le CoViD

Zorg1: bah même avant je me souviens qu'Euler avait poireauté pour recevoir son prix

Zorg1: sur le jeu avec un champs de bataille

R4N4R4M4: Voici le message reçu en avril : http://chat.codingame.com/pastebin/24eaabd6-9540-48a4-b9bf-e854910b5434

Zorg1: ou le foot en 3D

R4N4R4M4: Ah mince, ça traduit automatiquement, c'est pas rigolo :D

leojean890: tu as eu ça où ?

leojean890: mail ?

leojean890: j'ai pas eu ça moi^^

R4N4R4M4: C'était l'an dernier

leojean890: ah ok:)

leojean890: foot en 3D avec voitures ouais:p

leojean890: rocket league

leojean890: ça devait tellement être chaud:)

R4N4R4M4: C'était le CodeSide en 2019

leojean890: ceux qui recoivent de l'argent en direct l'ont probablement reçu rapidement

Zorg1: ça devait être la simu de champs de bataille alors

leojean890: 2019 c'est le jeu de tir j'avais vu des vidéos

leojean890: tir en 2D

Zorg1: un truc incompréhensible où tu pilotais des chars, des hélicos ...

Zorg1: ah oui les bonhommes qui sautaient partout et qui se tiraient dessus

leojean890: ^^

leojean890: j'aimerais bien un petit advence wars:p

Zorg1: oui Euler avait fait ça aussi

leojean890: strat en temps réel j'ai tjr été plus mauvais qu'en tour par tour:p

R4N4R4M4: Je l'ai pas fait celui-là, j'ai fait le 2018 CodeBall et le 2019 CodeSide (https://youtu.be/da6NcqUknNg)

Zorg1: advence wars ?

R4N4R4M4: et le 2020 aussi

leojean890: c'est un jeu vidéo^^

leojean890: les jeux de strat tour par tour j'aimais ça

leojean890: (advence awrs, fire emblem, final fantasy tactics, etc)

leojean890: j'ai pas encore vu de sujet d'ia du genre ici ou raic

Zorg1: bah ça peut devenir assez compliqué comme jeu si tu veux que ça soit intéressant

R4N4R4M4: Tu parles de celui-là Zorg1 ? C'est le 2017 : https://youtu.be/P-uQKVe1Svc

leojean890: oui je confirme^^

Zorg1: c'est ça R4N4R4M4 ^^

leojean890: compliqué !

Zorg1: ah j'avais oublié la zique

R4N4R4M4: Y a le PM du vainqueur ici : https://habr.com/ru/post/345458/

Zorg1: après halite essaie de faire des trucs plus abstrait mais j'ai jamais eu le courage de m'y lancer

leojean890: R4 ah oui je l'ai partagé tout à l'heure, j'ai fait fuir qqn car en russe xD

leojean890: mais la trad auto est correcte