Chat:Fr/2021-05-20

From CG community
Jump to navigation Jump to search

Default avatar.png ClementGuidoRocolle: Salut :)

Julius2k17: salut

Bon[]Crayon: Bonjour o/

Bon[]Crayon: [*-*] [Automaton2000]

Automaton2000: aucun problème avec le puzzle de la semaine ... zorg1

**Bon[]Crayon demande de l'aide à [Automaton2000]

Automaton2000: ma fonction de calcul de densité d'arbres)

Julius2k17: ya du monde pour parler MCTS ?

Julius2k17: à part Automaton2000

Automaton2000: ah oui pour le coup

Alshock: Oui, y a aussi du monde pour rappeler le "don't ask to ask, just ask"

Default avatar.png BabelO: salut

Alshock: et que penses-tu du recuit simulé Automaton2000, fast-food ou mets délicieux ?

Automaton2000: ça te le fait pas

Alshock: coucou BabelO

Julius2k17: hello BabelO

Julius2k17: Ok Alshock, est-ce qu'un noeud représente une action seed, grow, complete ou un ensemble d'actions sur un tour ?

Default avatar.png BabelO: bon hier soir j'ai gagné 300 place en silver 120 eme ! je vais ya ariver a passer en gold avec le javascript !

Alshock: Les PMs semblent opter pour des tours complets, adversaires compris

Alshock: mais d'un point de vue théorique, tu peux diviser ta donnée comme tu veux. En fait le problème derrière ce découpage c'est le pruning

Default avatar.png BabelO: https://graphics.stanford.edu/~seander/bithacks.html

Julius2k17: la suppression des noeuds inutiles c ca ?

Default avatar.png BabelO: je suis sur un noeud par tour joueur là

Alshock: oui, le dernier contest a un gros branchnig factor (perso j'ai pas eu le temps de revenir le faire, donc je ne fais que te répéter de seconde main)

philRG: BabelO: je comprends pourquoi ton bot passe pas Gold :-D

Alshock: donc un MCTS sans pruning devient vite un "simple" MC (sans mémoïsation)

Julius2k17: je pensais éléiminer les seed et juste mcts sur grow /c complete

philRG: à mon avis tu as un bug dans ton code

Default avatar.png BabelO: philRG oui possible

Alshock: regarde les post mortems, y a beaucoup d'idées intéressantes qui peuvent t'inspirer

philRG: le code wood du boss est dans le Top10 en silver

Julius2k17: oui j'en ai lu pas mal, je pars de loin niveau algo, j'ai du mal à assimiler la logique du mcts mais ca va venir :D

philRG: https://github.com/CodinGame/SpringChallenge2021/blob/main/config/level2/Boss.py

philRG: si tu remplaces: print(moves[1%len(moves)]) par print(moves[0%len(moves)])

Alshock: 0%len(moves), phil quand même

philRG: BabelO faire ça en bitboard, c'est bugs assurés

Alshock: assurés non, mais le terrain est miné, j'imagine des datasheets de 3km qui traînent dans la chambre

philRG: AIshock ouais j'abuse un peu mais ç'est le code du boss en bronze, et Top 10 en silver

philRG: je l'ai testé hier

Alshock: je comprends pas comment le boss bronze peut être plus que dernier silver ? Les changements de codes ?

philRG: terrain miné oui pas bug assuré assurément

Alshock: tu me vois rassuré de ton assurance susurrée

philRG: AIshock nan les bots dans l'arène et le fait que la silver actuelle n'est pas celle de la silver du début

Alshock: ouais enfin ça n'empêche que ttous ceux en silver même avec un coup de chance ont bien dû passer devant ce boss

philRG: assurément :) ceci dit je débugge toujours mes fonctions d'ombre lol faut que je demande à Automaton2000 son code

GeoBlack: @Julius2k17 : https://www.youtube.com/watch?v=UXW2yZndl7U

Automaton2000: quelqu'un a fait le puzzle du jour

Julius2k17: merci GeoBlack

GeoBlack: je trouve l'explication très claire ensuite à toi de trouver le bon scoring

philRG: pas évident de différencier les ombres adverses des miennes, après si je seed pas dans l'alignement de mes arbres, je devrais pas avoir besoin de les séparer

philRG: pour les grow

philRG: GeoBlack: sympa la vidéo :-) bien expliquée

Default avatar.png BigBadSpoon_7dba: hello les gars

Default avatar.png BigBadSpoon_7dba: Créez maintenant une fonction nommée myFct qui :

prend 2 arguments (arg1 et arg2) renvoie comme résultat : arg1.arg2 + arg1 + arg2

Default avatar.png BigBadSpoon_7dba: petite question

Default avatar.png BigBadSpoon_7dba: comment on resout ça svp

Default avatar.png BigBadSpoon_7dba: http://chat.codingame.com/pastebin/975d1fbb-e9f8-41e7-8301-1784663e1ffa

Default avatar.png BigBadSpoon_7dba: function myFct(arg1,arg2){ total = arg1.arg2 + arg1+arg2; return total }

Default avatar.png BigBadSpoon_7dba: j'ai fait il ne fontionne pas

philRG: f = lambda a, b: a+b

philRG: f(1,2) Out[3]: 3

Default avatar.png BigBadSpoon_7dba: ?

philRG: ah pardon: f = lambda a, b: a*b + a + b

philRG: déjà le '.' n'est pas un opérateur

Default avatar.png BigBadSpoon_7dba: ah d'accord

Default avatar.png BigBadSpoon_7dba: c'est a cause de ça

Default avatar.png BigBadSpoon_7dba: j'ai changé par *

Default avatar.png BigBadSpoon_7dba: ca fonctionne

Default avatar.png BigBadSpoon_7dba: je comprennais pas

philRG: sauf si ce sont des strings en PHP

Default avatar.png BigBadSpoon_7dba: ah d'accord

Default avatar.png BigBadSpoon_7dba: j'avais compris comme un point

Default avatar.png BigBadSpoon_7dba: merci

philRG: de rien,

philRG: .

Default avatar.png ThanhTrungNguyen: git

Default avatar.png BigBadSpoon_7dba: function isTooLong (str){ var str = "je m'appelle sala" if(str.length > 10 ){ return true } else { return false } }

Default avatar.png BigBadSpoon_7dba: Ecrivez une fonction nommée isTooLong qui : http://chat.codingame.com/pastebin/97f3dd21-fb92-4709-b318-d765374580fb

Default avatar.png BigBadSpoon_7dba: Ecrivez une fonction nommée isTooLong qui : prend une chaîne de caractères comme argument renvoie vrai si la longueur de la chaîne dépasse 10 caractères renvoie faux dans les autres cas 💡 Utilisez str.length pour connaitre la taille chaîne de caractères str

Default avatar.png BigBadSpoon_7dba: Il y' a une erreur

Default avatar.png BigBadSpoon_7dba: j'ai bien fait

nicola: Des ; qui manquent ?

nicola: Une paire de parenthèses après length ?

Default avatar.png BigBadSpoon_7dba: c'est fait

Default avatar.png BigBadSpoon_7dba: toujours

Default avatar.png BigBadSpoon_7dba: erreur

nicola: str.length() ?

Default avatar.png BigBadSpoon_7dba: function isTooLong (str){ var str = "je m'appelle sala" if(str.length() > 10 ){ return true; } else { return false; } }

nicola: Tu es obligé de l’écrire en une seule ligne ?

Default avatar.png BigBadSpoon_7dba: http://chat.codingame.com/pastebin/ecd1bacf-1642-4792-9b55-96ed2b268546

Default avatar.png BigBadSpoon_7dba: non

Default avatar.png BigBadSpoon_7dba: ``

nicola: J’aurais plutôt placé un ; entre " et if.

Default avatar.png BigBadSpoon_7dba: function isTooLong (str){ var str = "je m'appelle sala"; if(str.length() > 10 ){ return true; } else { return false; } }

Default avatar.png BigBadSpoon_7dba: je sais pas pourquoi il ne fonctionne pas

Default avatar.png BigBadSpoon_7dba: tout est bon normalement

nicola: f=lambda chaine:len(chaine)>10

nicola: En Python.

Default avatar.png BigBadSpoon_7dba: je suis en javascript

nicola: Manifestement, non.

nicola: Et il ne te renvoie pas le type d’erreur ?

Default avatar.png BigBadSpoon_7dba: non

nicola: Oo

ShaxoLudo: Le but de ton exercice c'est quoi, il te faut une sortie ?

Default avatar.png BigBadSpoon_7dba: isTooLong doit dire si la chaîne dépasse 10 caractères: http://chat.codingame.com/pastebin/f1038a90-4fb4-40dd-955a-766474d6ce4c

Default avatar.png BigBadSpoon_7dba: http://chat.codingame.com/pastebin/d2c88ce4-6aac-4741-8c78-7b58e5d63314

kzntz: en enlevant les parenthese a .length() ?

Default avatar.png BigBadSpoon_7dba: ça fonctionne pas

ShaxoLudo: t'es censé [OUTPUT] le résultat ?

Default avatar.png BigBadSpoon_7dba: oui

Default avatar.png BigBadSpoon_7dba: j'ai rien

Default avatar.png BigBadSpoon_7dba: comme résultat

ShaxoLudo: en jscript bonne habitude, débarasse toi des var, préfère les let

Default avatar.png BigBadSpoon_7dba: c'est bizarre

Default avatar.png BigBadSpoon_7dba: ok

ShaxoLudo: dans les fonctions, je sais que depuis récemment, tu peux avoir des problemes avec les déclarations var

Default avatar.png BigBadSpoon_7dba: https://www.codingame.com/playgrounds/3777/exercices-de-javascript-pour-debutants-en-informatique/javascript---les-tests-conditionnels

Default avatar.png BigBadSpoon_7dba: tu peux essayer

Default avatar.png BigBadSpoon_7dba: l'exo via ce lien

kzntz: le pb vient du fait que tu redefinisse str

kzntz: function isTooLong (str){ if(str.length > 10 ){ return true; } else { return false; } }


kzntz: fonctionne

ShaxoLudo: pour ma part ça fonctionne

ShaxoLudo: kzntz a raison, le but de l'exercice c'est de ne pas déclarer de variable

Default avatar.png BigBadSpoon_7dba: ah ok

dbdr: ça se simplifie pas en:

function isTooLong (str){ return str.length > 10; } }

?

Default avatar.png BigBadSpoon_7dba: ça fonctionne

Default avatar.png BigBadSpoon_7dba: on sait pas

Default avatar.png BigBadSpoon_7dba: quand il depasse les 10 caractere

ShaxoLudo: si dbdr, mais c'est peut être moins simple à comprendre

Default avatar.png BigBadSpoon_7dba: ils sont pas tres clair

Default avatar.png BigBadSpoon_7dba: en énoncé

Default avatar.png BigBadSpoon_7dba: merci

dbdr: if (a) return true else return false => return a

Default avatar.png conadal: ah non print(moves[0%len(possible_actions)]) où possible actions tri par ordre COMPLETE/GROW/SEED/WAIT et range croissant ça fait Top 50 en Bronze, soit devant 3000 bots

Default avatar.png conadal: j'avais dit Silver

Default avatar.png conadal: s/range/cell_id/g

philRG: ah non Top 7

philRG: ptêt pas suffisant comme fonction d'éval pour un mtcs

philRG: pourquoi le referee du contest affiche la nouvelle taille d'un arbre au tour n +2 ?

philRG: et pas au tour suivant d'un grow

Default avatar.png BigBadSpoon_7dba: Créez une fonction puissance qui : http://chat.codingame.com/pastebin/b5755463-fbd8-40e9-9af8-974c28014009

Default avatar.png BigBadSpoon_7dba: function puissance(number, power){ let total = 1; for (let i = 1; i <= power; i++) { total = total * number; } return total; }

Default avatar.png BigBadSpoon_7dba: aider moi please

ShaxoLudo: tu peux envoyer le lien de ton exercice pour faciliter la compréhension

ShaxoLudo: A quoi sert ton total

philRG: def p(x, n): http://chat.codingame.com/pastebin/222c9742-4c65-42ee-bcad-8622a4d2c3aa

Default avatar.png BigBadSpoon_7dba: le total

Default avatar.png BigBadSpoon_7dba: https://www.codingame.com/playgrounds/3777/exercices-de-javascript-pour-debutants-en-informatique/javascript---les-boucles

Default avatar.png BigBadSpoon_7dba: voici le lien

Default avatar.png BigBadSpoon_7dba: https://www.codingame.com/playgrounds/3777/exercices-de-javascript-pour-debutants-en-informatique/javascript---les-boucles

Default avatar.png BigBadSpoon_7dba: de l'exo

philRG: ou aussi:

philRG: def q(x, n): http://chat.codingame.com/pastebin/792d1f14-8eef-43dc-89cc-e9f93fec04bb

ShaxoLudo: l'idée c'est dans ta boucle for (si tu veux utiliser cette méthode) tu dis faire number*number....n fois

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

Automaton2000: bah non tu peux pas les mettre dans le four

ShaxoLudo: c'est pas ce que tu fais dans ton algo

Default avatar.png BigBadSpoon_7dba: il faut faire dans une boucle for

ShaxoLudo: t'as pas besoin de ton total

ShaxoLudo: pour cet algo

Default avatar.png BigBadSpoon_7dba: pour calculer la puissa,ce

Default avatar.png BigBadSpoon_7dba: ok

Default avatar.png BigBadSpoon_7dba: pour calculer la puiisance

Default avatar.png BigBadSpoon_7dba: on fait comment

philRG: ah c'est un playground cg

Default avatar.png BigBadSpoon_7dba: il faut obligatoirement definir une varibale

Default avatar.png BigBadSpoon_7dba: variable

Default avatar.png BigBadSpoon_7dba: pour calculer

Default avatar.png BigBadSpoon_7dba: la puissance

philRG: faut bien initialiser ta variable pour la première multiplication...

philRG: par défaut elle est à 0

philRG: ah non undefined, c bien JS

philRG: ReferenceError: result is not defined

Default avatar.png BigBadSpoon_7dba: no

Default avatar.png BigBadSpoon_7dba: ça fonctionne pas

Default avatar.png BigBadSpoon_7dba: https://www.codingame.com/playgrounds/3777/exercices-de-javascript-pour-debutants-en-informatique/javascript---les-boucles

BlaiseEbuth: Tu postes le lien une troisième fois parce que ça porte chance ? :thinking:

Default avatar.png hanamost: je comprends rien à ce site :///

Default avatar.png hanamost: De l'aide ?

Default avatar.png BigBadSpoon_7dba: non mdrr

Default avatar.png BigBadSpoon_7dba: je n'arrive

Default avatar.png BigBadSpoon_7dba: c'est juste j'ai besoin d'aide

Default avatar.png hanamost: moi aussi lol

Default avatar.png hanamost: t'as trouvé quoi pour l'instant ?

Default avatar.png BigBadSpoon_7dba: tu es sur quoi ?

Default avatar.png BigBadSpoon_7dba: sur quelle chapitre

Default avatar.png hanamost: Shadows of the Knight ep1 et toi ?

Default avatar.png hanamost: Déjà tu programme sen quoi ?

Default avatar.png BigBadSpoon_7dba: moi javascript

Default avatar.png BigBadSpoon_7dba: je suis dans les bases

Default avatar.png BigBadSpoon_7dba: parce que c'est trop compliqué

Default avatar.png BigBadSpoon_7dba: poru l'instant

Default avatar.png hanamost: ah.. moi en C au pire dis moi t'es ou et on essaye

Default avatar.png hanamost: ah merde

Default avatar.png BigBadSpoon_7dba: regarde sur youtube il y'a de l'aide

Default avatar.png BigBadSpoon_7dba: tu connais js ?

Default avatar.png hanamost: ouais masi je comprends juste pas les fonctions qu'on me demande

Default avatar.png hanamost: en viite fait je m'y étais intéréssé

Default avatar.png hanamost: mais tu cherches a fazire quoi toi ?

Default avatar.png BigBadSpoon_7dba: moi je veux augmenter

b0n5a1: o/

Default avatar.png BigBadSpoon_7dba: le niveau

Default avatar.png BigBadSpoon_7dba: je susi pas tres doué

Default avatar.png BigBadSpoon_7dba: je fais plus copié

Default avatar.png BigBadSpoon_7dba: coller internet

Default avatar.png BigBadSpoon_7dba: c'est pas bien

Default avatar.png BigBadSpoon_7dba: quand je suis tout seul sans internet

ShaxoLudo: je peux bien te proposer une solution "friendly" mais jpense que c'est dommage de passer ces tests avec la solution des autres

Default avatar.png BigBadSpoon_7dba: perdu

Default avatar.png BigBadSpoon_7dba: oui

Default avatar.png hanamost: c'est pas bien

ShaxoLudo: déjà tu geres pas le cas où "power" est à 0

Default avatar.png hanamost: ouais de ouf c'est dommage

b0n5a1: heu...on va se calmer sur le spam multiligne là, c'est chiant

ShaxoLudo: par exemple nombre^0

ShaxoLudo: tu dois gérer ce cas

Default avatar.png BigBadSpoon_7dba: ah bon

ShaxoLudo: bah oui

Default avatar.png hanamost: mais sinon vous programmez sur quoi ??

ShaxoLudo: si tu fais puissance(100,0)

ShaxoLudo: il faut qu'il te sorte le bon résultat

Default avatar.png hanamost: Parce que bon j'aime bien ce site mais c'est limite des énigmes et ça me perd un pei

Default avatar.png BigBadSpoon_7dba: function puissance(number, n ){ let result=1 for (let i = 1; i <= n; i++) { result = result * number } }

Default avatar.png BigBadSpoon_7dba: j'ai mis ça

ShaxoLudo: tu ne gères pas le cas où n est à 0

Default avatar.png BigBadSpoon_7dba: ah ok

Default avatar.png BigBadSpoon_7dba: je met n=1

ShaxoLudo: ?

Default avatar.png BigBadSpoon_7dba: ça fonctionne pas

Default avatar.png BigBadSpoon_7dba: function puissance(number, n ){ n=1 let result=1 for (let i = 1; i <= n; i++) { result = result * number } }

ShaxoLudo: attends je te l'écris rapidement, mais c'est dommage

ShaxoLudo: http://chat.codingame.com/pastebin/d9e1bb1d-9166-4d62-bb1a-581d49b52d16

ShaxoLudo: solution sans la Math lib et sans l'utilisation du *, essaye de l'adapter

3141948: Ben c pas n qu'il faut mettre à 1

3141948: Gros malin

ShaxoLudo: tu peux faire mieux que ce que je t'ai envoyé avec une seule boucle for

Default avatar.png BigBadSpoon_7dba: une je regarde juste ton code

Default avatar.png BigBadSpoon_7dba: j'essaie de faire tout seul

3141948: Let sert pour définir des constantes

Default avatar.png BigBadSpoon_7dba: comme ça je comprend la logique

Default avatar.png BigBadSpoon_7dba: merci

3141948: Var pour déclarer des variables (facultatif/implicite en JS)

Default avatar.png BigBadSpoon_7dba: ok

ShaxoLudo: @philRG je voulais qu'il joue un peu avec le code

Default avatar.png BabelO: let / const avant c'etait var

ShaxoLudo: Var on l'utilise quasiment plus

Default avatar.png BabelO: oui il vaut mieux preferer let ou const ca evite les erreurs

philRG: Vous devez utiliser let pour déclarer une variable.

Vous devez utiliser const pour déclarer une constante.

ShaxoLudo: oui

Default avatar.png BabelO: moi j'utilise const sur les array en js pour eviter de les ecraser sans faire expres ca n'emepeche pas de manipuler la donnée dedans

Default avatar.png hanamost: ouais c'est let

philRG: let a remplacé var pour éviter les redéclarations dans des codes spaghettis

philRG: avant fallait faire: "use strict; var a = 12" pour éviter les redéclarations

philRG: je pratique plus JS, j'ai oublié. Ici, il faut mieux maîtriser les bases du langage et être familier avec sinon, c'est pas intéressant

3141948: Ou faire les puzzles easy cela permet de voir les solutions des autres pour le langage utilisé et d'apprendre

3141948: Pas besoin d'être un kador d'un langage donné ceci dit

jdeveil: salut tout le monde

3141948: BabelO: Oui let et const doivent servir à éviter d'écraser une variable existante

3141948: Coder rapidement oui, mais pas n'importe comment

3141948: Et certains langages sont trop permissifs

Alshock: le problème de var c'est toute la notion du scope qui est foireuse, pas seulement l'écrasement.

Alshock: si je ne m'abuse pour var seules les fonctions sont des scopes. Les blocs n'en sont pas.

ShaxoLudo: Je ne suis même pas sur que ça a toujours été le cas, je crois que pendant un moment, les fonctions n'étaient même pas des scopes, je me trompe peut être

philRG: faut plutôt pointer sur la doc officielle du créateur de JS, qui était le collègue de mon frère chez Netscape dans les années 1995-2000

philRG: il fallait mieux toujours utiliser var toto dans une fonction dans le cas où la variable ait été déclarée à un autre endroit du code (ça s'appelle le hoisting): https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/var

philRG: toutes les variables déclarées sans var sont en effet considérées comme des variables globales

b0n5a1: :nauseated_face:

BlaiseEbuth: Mon frère aurait un lien avec un criminel je m'en venterait pas...

philRG: hehe

b0n5a1: :joy:

Zorg1: ça devient un peu PhilRG_fr ...

philRG: ouais pardon je sors :)

BlaiseEbuth: La mutation a commencé ! :scream:

BlaiseEbuth: Bon. On m'a dit que "A Man With A Plan" était "une gemme", "intéressant", "utile", et qu"il n'oubliera pas de sitôt"... :3 Maintenant je le veux puzzle de la semaine !

Zorg1: t'as de l'argent ?

BlaiseEbuth: J'ai une gemme.

[CG]Thibaud: je l'ai pas dans l'"admin" que j'ai pour choisir le puzzle of the week. Il a pas déjà été potw ?

[CG]Thibaud: en plus, à 4.8 il serait direct en haut de la liste :thinking_face:

BlaiseEbuth: Bah pas que je sache...

Thyl: :large_blue_diamond:

Thyl: :large_blue_diamond:

[CG]Thibaud: je vais aller regarder en DB direct

b0n5a1: haha t'étais potw et tu l'as jamais vu BlaiseEbuth, voilà :stuck_out_tongue_closed_eyes:

BlaiseEbuth: Avec 20 personnes ayant commencé le puzzle ? (moi, les validateurs, et les personnes que j'ai forcé inclus ?)

BlaiseEbuth: Sépeu

b0n5a1: je te donne juste la réponse officielle avant l'heure :grinning:

BlaiseEbuth: Médisant.

philRG: je l'ai vu potw y a un moment

b0n5a1: voilà ^^

philRG: bien 2 mois

BlaiseEbuth: Tu bluffes.

b0n5a1: ça intéresse personne c'est tout, tout s'explique.

darkhorse64: Ca trolle, c'est du violent. A mon avis, c'est à cause du statement

darkhorse64: :grinning:

BlaiseEbuth: Tiens, youtube est tombé

WhatTrickeryIsThis: [CG]Thibaud s'es trompé de DB, il a pété youtube

b0n5a1: Déja dès le départ t'insultes le lecteur en le traitant de paysan, ça aide pas...

WhatTrickeryIsThis: youtube sera remplacé par CG

philRG: :joy: il a du trop faire la fête hier en terrasse

philRG: :thumbsup:

BlaiseEbuth: Paysan c'est pas une insulte. José Bové désaprouve

[CG]Thibaud: non, je ne l'ai pas trouvé dans l'historique

BlaiseEbuth: Ah. C'est juste la sénilité de philRG.

philRG: j'avais cru pourtant bon tant pis

Zorg1: je me suis bien vu #1 d'un contest moi

BlaiseEbuth: :no_mouth:

philRG: je fais plus les Potw, car je vois tous mes follow à 100% quand je clique dessus ça me motive pas

philRG: Zorg1: ah lequel?

Bon[]Crayon: reTortue Automaton2000 :turtle:

Automaton2000: il y a plusieurs années

philRG: sinon challenge de bots sympa en potw

Zorg1: bah le truc pseudo CSB, j'ai du être #1 6 heures avant que pb4 pushe son truc :(

Zorg1: quand j'avais pushé mon bot SR adapté

philRG: sur quels critères les puzzles deviennent-ils POTW?

b0n5a1: avec un dé 100

b0n5a1: BlaiseEbuth est à la place 101...

Bon[]Crayon: Automaton2000 Avant l'an 2000, il n'y avait aucun bug informatique.

Automaton2000: et moi je ne peux pas avoir la même chose que les autres :d

BlaiseEbuth: Tu veux pas sortir propager le virus au lieu de troller inutilement sur le chat b0n5a1 ?

Zorg1: ça existe ça le "troll utile"

Zorg1: ?

BlaiseEbuth: Oui. Quand c'est moi qui le fait.

Zorg1: ok

Zorg1: Automaton2000 tu l'as déjà vu "a Man with a plan" en PotW ?

Automaton2000: salut, quelqu'un a déjà fait ?

Zorg1: bien ce que je me disais :thinking:

philRG: j'ai regardé le puzzle de nicola sur les permutations, il est pas mal au niveau de l'énoncé aussi, je sais pas lequel je préfère

b0n5a1: Je peux pas, je fais pas partie des mongoliens propagateurs.

philRG: le sien est toujours en wip

dwarfie: tu bluffes martoni ... ton arme n'est pas chargé ...

dwarfie: arf foutu scrol ...

Zorg1: non ça va c'est adapté à tous les contextes ça

dwarfie: Automaton2000 ... prepare moi un burger de tortue pour la peine

Automaton2000: c'est quoi le mieux pour toi

dwarfie: Automaton2000 ... saignant bien sur

Automaton2000: bon j'ai un peu de chance que je passe mon temps à faire une fois

BlaiseEbuth: fix ton belge

dwarfie: Automaton2000 , t'es devenu belge ?

Automaton2000: pourtant j'ai fait un match contre le boss

nicola: philRG, il est prévu que le sien change vers autre chose.

philRG: nicola remarque je suis médisant, il est pas si longg

nicola: Je lui ai proposé une modification vers le calcul du cardinal du sous-groupe engendré par plusieurs permutations.

philRG: sur ring the bells?

nicola: Du genre <(1 2),(1 3),(4 5)> est le sixième groupe diédral de cardinal 12.

nicola: Non, sur celui de davilla.

nicola: Donc la réponse est 12.

nicola: Un prolongement du mien.

philRG: ah ouais non l'énoncé est bien, mais ce sont les noms des tests hehe, ça fait visiter ;-)

philRG: ça me rappelle des quadrilatères

philRG: tes

nicola: :)

nicola: D’ailleurs, D6 est le groupe de l’hexagone régulier.

nicola: Je pense lui filer un coup de main.

philRG: oui, bonne idée, il en a pas mal en wip sur des sujets similaires

Default avatar.png IvanLendl: je peine un peu en algèbre et probas

BlaiseEbuth: Ca arrive

Thyl: est-ce que Bob est là ???

Vry: o/

b0n5a1: o/ Vry

b0n5a1: Vry sur CG t'as déjà utilisé __uint128_t pour du bitboard ?

b0n5a1: .

darkhorse64: c'est implementé comme 2 x 64 bits, si je me souviens bien de ce que j'ai vu avec gobolt

b0n5a1: ouais je me doute un peu, je me demande juste si il vaut mieux que je prenne __uint128_t ou 2 x uin64_t et gérer moi même

darkhorse64: faut regarder l'asm pour savoir

jdeveil: bon c'est pas tout ça, mais il faut aller bosser... l'argent ne tombe pas des arbres...

jdeveil: ++

OldJohn: @darkhorse6' pour les compilos Intel __uint128_t a parfois été plus rapide que mon asm perso... J'étais plus rapide que gcc et llvm

OldJohn: Heureusement pour moi, la nouvelle mouture des compiles est équivalente à gcc et llvm

OldJohn: Compilateur icx Intel...

OldJohn: A propos, les nouveaux compilateurs INTEL sont gratuits pour tous et viennent avec des outils sympa comme vtune :-)

BlaiseEbuth: Reuh

Julius2k17: soir tlm

Stilgart: soir Julius2k17

Stilgart: tortue Automaton2000

Automaton2000: au final je pense que la plupart des langages

Stilgart: fait pas semblant d'être Automaton2000

Automaton2000: pour les cartes en main

Stilgart: sinon, pourquoi j'ai gagné 100 places à SC21 sans rien faire ?!

BlaiseEbuth: :shrug:

Zorg1: les mouvements de convection. Doit y avoir une plaque chauffante en bas du classement

Zorg1: ah tiens une contrib de CoC avec "ROT13" dans le titre

BlaiseEbuth: -_-

Stilgart: BlaiseEbuth: Zorg1 voit des CoC qui sont morts :/

BlaiseEbuth: :scream:

Stilgart: faut faire quelque chose !

BlaiseEbuth: Faut appeller Bruce Willis.

leojean890: Stilgart pareil j'ai gagné 50 places sur le rank général S2021 (pas juste ligue) depuis la fin du contest ^^#logique ;)

leojean890: en vrai y'a un côté où un ensemble d'IA ont un niveau proche et donc ça se balade

leojean890: pendant le contest j'avais remarque que mon code se baladait entre 200 et 270 gold, et là c'est exactement pareil

leojean890: sans repush of course

philRG: j'étais monté 170 pendant 80% du submit mais ça a pas tenu

philRG: à mon avis empilage de stratégies trop spécialisées, et pas assez de tests dans arène

Zorg1: Stilgart : bah vu que toutes les semaines t'as une contrib ROT13 les zombies se portent bien :p

b0n5a1: Vous avez une taille de combien pour un node sur UTTT ?

pardouin: j'ai bidouillé 2-3 heuristiques je suis bien remonté, j'étais 135 tout à l'heure

pardouin: je bats le boss fréquemment maintenany

BlaiseEbuth: C'est pas la taille qui compte b0n5a1.

b0n5a1: si si

pardouin: mais difficile d'y accéder, trop de monde de niveau similaire autour du boss

b0n5a1: plus c'est petit mieux c'est

Stilgart: Zorg1: dis pas ça, on a perdu NN :/

philRG: ah t'as trouvé la stratégie du boss

Zorg1: b0n5a1 : 80 octets chez moi

Zorg1: mais je pense que je peux encore réduire

b0n5a1: ok merci

Zorg1: http://chat.codingame.com/pastebin/836f78a8-1c2a-4652-a675-78df0a92c932

Zorg1: J'avais utilisé un arbre "old school" ^^

Zorg1: et mis les calculs des stats en cache dans le noeud

b0n5a1: hmmm...je pense descendre à 48 (20 si je garde pas sous le coude des bits d'actions possibles)

b0n5a1: oups 36 (ou 20)

**Stilgart se sent obèse avec ses 88 octets

b0n5a1: non mais ce sera peut être plus j'ai pas encore regardé en détail si il me manque un truc ou pas

b0n5a1: t'as forcé un pragma pack Stilgart ?

Stilgart: non

Stilgart: mais ça ferait 86 donc osef

Stilgart: mes actions sont codées avec les pieds... et en plus j'en stocke deux pour le BS

Stilgart: je dois pouvoir gagner 18 rien qu'avec ça

Stilgart: mais vu mon classement, c'est pas la priorité :/

Zorg1: moi faudrait que je fasse de la refacto pour tester des trucs mais bon

b0n5a1: de toute façon dans un premier temps je vais pas jouer avec un packing

Zorg1: t'es pas si mal classé que ça Stilgart

Zorg1: dans UTTT j'entends

BlaiseEbuth: Moi faudrait que je le fasse UTTT...

Default avatar.png JBM: il parait qu'un minmax c'est pas mal

b0n5a1: je suis au fond de gold avec un mini max brutal sur chaque sous grille en cours, sans prendre en compte l'existence du TTT global

b0n5a1: 488/700

Default avatar.png JBM: ah y'a pas plus de monde que ça?

b0n5a1: non 700 gold

Zorg1: 194 en légende

b0n5a1: le temps alloué suffit pour faire du min max de brutosaure jusqu'à fin de partie (sur une sous grille)

b0n5a1: sans élaguer

Zorg1: bah dbdr avait un minmax en Java il est #40

Default avatar.png JBM: «avait» vs «est»

Zorg1: enfin avait il a toujours ^^

Zorg1: c'est un peu de l'histoire ancienne UTTT

Zorg1: je vous raconte mes souvenirs d'anciens combattants là

Default avatar.png JBM: blessures de guerre

Zorg1: halala je m'emmerdais pas avec des pragmas, j'allais chercher les match au Lebel moi

Zorg1: d'un autre côté j'ai pas de pragma en go non plus :(

Default avatar.png JBM: haha y'a meme pas ls pragmas en go

Zorg1: #pragma "aFondLesBallons"

BlaiseEbuth: C'est un peu violent le fusil pour une partie de morpion...

Zorg1: Et encore j'ai pas parlé de la bayonnette

Rajh: Hello ! Qqun peut m'aider pour mon MCTS springchallenge2021 svp ? :D

Default avatar.png JBM: augmente l'exploration factor

BlaiseEbuth: fix it

Rajh: ah combien ?

Rajh: :D

Default avatar.png JBM: plus

pardouin: GIT GUD

Rajh: Jtente 10

Default avatar.png JBM: over 11

Rajh: over 9000 ?

Default avatar.png JBM: ça se tente

Rajh: Marche pas

Rajh: Non par contre j'ai une vrai question sur la théorie

Rajh: sur la formule que j'ai trouver sur wikipedia c'est "tauxDeWin + c * sqrt(log(n)/n2)"

Rajh: mais dans les postmortem les joueurs utilisent des score entre -1 et 1

Rajh: ca marche comment après dans la formule ?

WhatTrickeryIsThis: rien à voir

WhatTrickeryIsThis: formule = select

WhatTrickeryIsThis: score = score du roollout

Rajh: mais le score tu l'utilise dans ta formule non ?

WhatTrickeryIsThis: oui c'est le tx de win

Rajh: voila

Default avatar.png JBM: ben le score il te dit si t'as gagné

Rajh: bah entre -1 et 1 c'est pas un taux

Rajh: entre 0 et 1 je veux bien

WhatTrickeryIsThis: le tx de win = vi/ni

BlaiseEbuth: vid

BlaiseEbuth: vic

WhatTrickeryIsThis: = le total de score remonté / le nombre de passage

Rajh: Oui mais si le total est négatif

Zorg1: Rajh : oui normalement c'est entre 0 et 1

Rajh: Ah

Rajh: AH !

Zorg1: mais après avec d'autre intervalle ça marche aussi

Rajh: Ahhh

Zorg1: donc chacun bricole un peu à sa sauce en tunant les diverses constantes

Rajh: Tout marche c'est magique

Zorg1: en gros ouais, je bouge les potars et quand l'aiguille est bien à droite c'est good

WhatTrickeryIsThis: ça change rien que ce soit <0

WhatTrickeryIsThis: le select cherche un max

WhatTrickeryIsThis: ucb1 truc chouette

Rajh: ouai c'est pas faux, mais comme je trouve pas le problème de mon algo j'essaye de comprendre pourquoi chez les autres ca marche :D

Zorg1: oui c'est juste un changement de repère en fait ^^

WhatTrickeryIsThis: ça marche parcequ'on cut comme des porcs et qu'on est bon

BlaiseEbuth: stoi l'problème de ton algo.

Rajh: Vous faites comment pour le tuné l'algo ? Vous regarder les games ?

Rajh: Et vaux mieux aller profond ? Avoir des rollouts de qualités ? Ca dépends des phases de jeu ?

BlaiseEbuth: :thinking:

BlaiseEbuth: Oui.

WhatTrickeryIsThis: :thinking:

WhatTrickeryIsThis: Non.

Default avatar.png JBM: ah je vais te spoiler un truc alors

Default avatar.png JBM: il vaut *toujours* mieux aller profond

WhatTrickeryIsThis: ah...

Default avatar.png JBM: t'as qu'à faire ça

WhatTrickeryIsThis: ou pas?

Rajh: Pfiou

Default avatar.png JBM: quand tu y arriveras pas

Default avatar.png JBM: tu auras la révélation

WhatTrickeryIsThis: j'avais fait une video tuto la derniere fois que j'ai fait mon mcts pour passer legende

WhatTrickeryIsThis: https://www.youtube.com/watch?v=xwycTWc7dpo&t=70s

WhatTrickeryIsThis: si avec ça tu te demerde pas

Zorg1: ouaip en général les magic number c'est plus de l'essai et de l'erreur qu'autre chose

Rajh: Ca va l'aide des singes je vais m'en passer merci :)

WhatTrickeryIsThis: :hear_no_evil:

WhatTrickeryIsThis: le magic trick sur utt, c'est de scorer 0.1 le match nul je crois, pour assurer au moins un peu de robustesse

Zorg1: ça dépend je l'ai pas mal fait varier

Zorg1: la valeur du match nul

b0n5a1: tu devrais pas ignorer l'aide des singe Rajh : https://www.youtube.com/watch?v=OIzijKXUO_0

b0n5a1: ça va booster ton process

Rajh: Non vraiment c'est pas la peine n'insistez pas. Restez entre vous :)

pardouin: la situation de départ a quand même un impact énorme, en général quand je rejoue les matchs où je perds contre le boss dans l'autre sens, je le bats

pardouin: il faudrait peut-être que j'adapte ma stratégie en fonction de si je commence en situation défavorable ou pas

pardouin: NW, N, NE c'est souvent bon par ex

b0n5a1: Sur Power of Thor ouais...

b0n5a1: ^^

WhatTrickeryIsThis: :D

Stilgart: Zorg1: mon bs de SC21 a besoin d'être fix par contre

philRG: pardouin: sur SC? C'est du ouf, çà. Comment tu sais si tu es en position favorable au début?

pardouin: ben en théorie c'est symétrique mais comme le soleil commence toujours à gauche il y a des coins où tu te prends pas mal d'aombre en début de partie, et c'est souvent là que se fait la différence

philRG: des coins? tu veux dire quels coins?

philRG: coin coin 31?

philRG: enfin plutôt 22

philRG: j'ai du mal à voir

philRG: je suis Top 5 sur UTTT depuis 3 semaines, doit y avoir un truc

philRG: en bronze

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

dwarfie: ce moment ou je vois que depuis le milieu du contest j'envoyais pas le jour pour la generation des ombre mais le bitboard des seed ...

dwarfie: instantanement , ca marche tellement mieux ...

dwarfie: Automaton2000 ... encore ta faute ca ...

Automaton2000: va falloir que je me demande est ce que le referee ne fait pas de tour

dwarfie: Automaton2000 ... c'est pas de la magie tu sais ...

Automaton2000: bah moi non plus je sais pas trop comment ca marche ?

Vry: gg dwarfie ! :p

philRG: ah oui çà monte

dwarfie: ah ouais , tu peut le dire , j'ai fait fort dans la bouletterie sur ce coup ...

philRG: mais ça timeout

BlaiseEbuth: On est le "tu peux seed en 31 et en 22" mai 2021.

philRG: ah non pas de timeout, ou alors peu

dwarfie: pas forcement des timeout ... moi quand j'en ai , c'est clairement pas des tmeout meme si c'est ce qui est ecrit ;)

philRG: j'en ai vu un çà devait être un bug

philRG: c'est un mtcs?

dwarfie: oui ... en general , c'est juste parce que j'ai explosé la memoire :D

philRG: il monte à grand coup de hache de random

philRG: car je suis à 10/2 de win et même ranking

philRG: mon bot heuristique est trop spécialisé c le pb

philRG: j'ai lu un PM qu'en dessous de 500, le cpu humain peinait

philRG: au profit des simus

philRG: le cerveau humain moyen j'entends

dwarfie: bon sang , je peut m'en vouloir ... si j'avais trouvé cette erreur , j'aurais fini bien mieux le contest ... mais jamais j'aurais cherché dans cette partie du code ...

philRG: c gâché les cp

dbdr: dwarfie tu nommes tes variables v1 v2 ... pour faire ce genre de boulette? ;)

dwarfie: c'est ce qui arrive quand la fonction est nickel ... mais qu'on appelle avec les mauvaises valeurs ... et que ca rale pas alors que 15751548 c'est largement superieur a 24 jours ;)

dbdr: ah, si seulement on avait des ... types

dwarfie: dbdr non ... juste une fonction avec (day,tree1,tree2,tree3) au milieu des autres qui sont toutes (seed,tree1,tree2,tree3) ... et frappes reflexes ...

philRG: ah oui il y a un replay où pas un seul complete dans la partie...

dwarfie: les completes , c'est pour les faibles ... bon , je vais voir pourquoi parce que c'est bizarre cette partie ...

dwarfie: et evidemment , dans l'ide , ca jour normalement ...

philRG: ah non ça se reproduit pas zarbi, c'est arrivé qu'un fois

philRG: marrant on est au même rang, et j'ai 90% de win

philRG: il doit toucher plus de cas que le mien

philRG: 91 points de complete et 130 points de sun

philRG: https://www.codingame.com/share-replay/558816736

philRG: mon late game et magic numbers ont pris un coup dans l'aile à force de modifs

dwarfie: ah ouais ... je la vole clairement au sun celle la :D

philRG: ah voilà là il complete pas

philRG: https://www.codingame.com/share-replay/558817420

b0n5a1: Zorg1 toi aussi t'as un twitch en fond sans regarder pour farmer de quoi custom un singe ? :grinning:

philRG: mieux vaut complete à partir du tour 12 de façon régulière

pardouin: 206ème à 22%, il commence bien ce run :)

philRG: :-)

pardouin: juste une légère modif sur mon ordre de grow 2, 1, 0, on verra ce que ça donne

pardouin: bon c'est pas ouf je zigzag autour de 200

dwarfie: 46,88% 53,13% ... en changeant une valeur ... va falloir que j'affine encore un peu et lance 1000 parties pour que ca soit confirmé ...

pardouin: :)

pardouin: moi j'avais viré toute la simu mais je pense que je vais remettre le MC sur les derniers tours, ou un minimax

pardouin: c'est dommage de pas simuler la fin quand on voit vite le résultat

pardouin: bon je finis à 164 mais ça a l'air bien aléatoire, j'étais 159 avec l'heuristique précédente et les résultats étaient moins irréguliers, là je me suis pris des tolles en milieu de run

philRG: en général, plus tu rajoutes de paramètres, plus ça devient random

pardouin: le random peut avoir du bond tu me diras, si tu es très proche du boss et que tes résultats sont plus aléatoires tu as plus de chances de le passer sur une bonne série

pardouin: du bon*

philRG: tu es collé à ton heuristique qui couvre pas tous les cas

pardouin: j'avais mis un mauvais bot, je viens de changer

Zorg1: b0n5a1 : comment t'as deviné ? ^^

b0n5a1: héhé

pardouin: celui que j'ai là dans l'arène c'est mon meilleur pour l'instant

philRG: ah t'es sûr?

b0n5a1: le mien est bleu avec une crête jaune, des night goggle, une faux, une tasse de café, un mini singe bleu et R2D2 ^^

b0n5a1: et une veste jaune

pardouin: (ça veut pas dire qu'il est très bon pour autant hein ^^)

Zorg1: j'ai encore mon singe de base orange

philRG: ah j'avais gagné que d'1pt chance du noob

pardouin: ce qui me plombe le plus je pense c'est que j'ai fixé mon ordre de G2, G1, G0, S

pardouin: je fais quelques changement localement quand je constate qu'il y a une meilleure option

pardouin: mais ma base est toujours la même

pardouin: je voulais la changer, c'était pas censé rester comme ça, mais à chaque fois que j'y touche c'est pire :/

pardouin: et du coup je garde la même liste depuis une semaine

philRG: je sais pas dans quel ordre je grow, enfin théoriquement idem si j'ai assez de sun

philRG: j'ai des fonctions d'évals à la con

philRG: score = tree.size * cell.richness * (bonus + 1) / (malus + 1) / (ring_num + 1)

philRG: je sais même plus ce que j'ai voulu faire

philRG: ça c'était pour le grow, et j'en ai une pour les seed:

philRG: score = (sum_distances + 1) * tree.size * seed_range * dest_cell.richness * (bonus + 1) / (malus + 1) ** 2 * (action.gain + 1) / (action.cost + 1) / (ring_num + 1) * (ring_origin_num + 1) / (neighbors_seeds_count + 1) ** 2


philRG: faudra que j'en vire

philRG: ça doit expliquer mon phénomène de yoyo dans l'arène :-D

pardouin: dans le même genre à force d'empiler les tie breaker ça sert plus à rien

pardouin: tout à l'heure j'ai viré tous mes tie breakers partout où il y en avait pour voir

pardouin: j'ai constaté quasi aucun changement

pardouin: je les ai remis pour la forme mais ça rend le code illisible pour pas grand chose

philRG: je rajoute des facteurs comme mon prof de physique de prépa, au flair

philRG: voir je vais mettre des puissances 3/2

pardouin: 167 dernier run

pardouin: bon c'est à peu près stable quand même

pardouin: à demain

philRG: bonne nuit

philRG: à demain

codeing: #Fr

Stilgart: huhu

Stilgart: (cherchez pas, ELAG)

b0n5a1: bonne nuit

Zorg1: bonne nuit