Chat:Fr/2021-05-20
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"
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 ?
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
BabelO: https://graphics.stanford.edu/~seander/bithacks.html
Julius2k17: la suppression des noeuds inutiles c ca ?
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
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
BigBadSpoon_7dba: hello les gars
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
BigBadSpoon_7dba: petite question
BigBadSpoon_7dba: comment on resout ça svp
BigBadSpoon_7dba: http://chat.codingame.com/pastebin/975d1fbb-e9f8-41e7-8301-1784663e1ffa
BigBadSpoon_7dba: function myFct(arg1,arg2){ total = arg1.arg2 + arg1+arg2; return total }
BigBadSpoon_7dba: j'ai fait il ne fontionne pas
philRG: f = lambda a, b: a+b
philRG: f(1,2) Out[3]: 3
philRG: ah pardon: f = lambda a, b: a*b + a + b
philRG: déjà le '.' n'est pas un opérateur
BigBadSpoon_7dba: c'est a cause de ça
BigBadSpoon_7dba: j'ai changé par *
BigBadSpoon_7dba: ca fonctionne
BigBadSpoon_7dba: je comprennais pas
philRG: sauf si ce sont des strings en PHP
BigBadSpoon_7dba: j'avais compris comme un point
philRG: de rien,
philRG: .
BigBadSpoon_7dba: function isTooLong (str){ var str = "je m'appelle sala" if(str.length > 10 ){ return true } else { return false } }
BigBadSpoon_7dba: Ecrivez une fonction nommée isTooLong qui : http://chat.codingame.com/pastebin/97f3dd21-fb92-4709-b318-d765374580fb
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
BigBadSpoon_7dba: Il y' a une erreur
BigBadSpoon_7dba: j'ai bien fait
nicola: Des ; qui manquent ?
nicola: Une paire de parenthèses après length ?
nicola: str.length() ?
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 ?
BigBadSpoon_7dba: http://chat.codingame.com/pastebin/ecd1bacf-1642-4792-9b55-96ed2b268546
nicola: J’aurais plutôt placé un ; entre " et if.
BigBadSpoon_7dba: function isTooLong (str){ var str = "je m'appelle sala"; if(str.length() > 10 ){ return true; } else { return false; } }
BigBadSpoon_7dba: je sais pas pourquoi il ne fonctionne pas
BigBadSpoon_7dba: tout est bon normalement
nicola: f=lambda chaine:len(chaine)>10
nicola: En Python.
BigBadSpoon_7dba: je suis en javascript
nicola: Manifestement, non.
nicola: Et il ne te renvoie pas le type d’erreur ?
nicola: Oo
ShaxoLudo: Le but de ton exercice c'est quoi, il te faut une sortie ?
BigBadSpoon_7dba: isTooLong doit dire si la chaîne dépasse 10 caractères: http://chat.codingame.com/pastebin/f1038a90-4fb4-40dd-955a-766474d6ce4c
BigBadSpoon_7dba: http://chat.codingame.com/pastebin/d2c88ce4-6aac-4741-8c78-7b58e5d63314
kzntz: en enlevant les parenthese a .length() ?
BigBadSpoon_7dba: ça fonctionne pas
ShaxoLudo: t'es censé [OUTPUT] le résultat ?
BigBadSpoon_7dba: comme résultat
ShaxoLudo: en jscript bonne habitude, débarasse toi des var, préfère les let
BigBadSpoon_7dba: c'est bizarre
ShaxoLudo: dans les fonctions, je sais que depuis récemment, tu peux avoir des problemes avec les déclarations var
BigBadSpoon_7dba: https://www.codingame.com/playgrounds/3777/exercices-de-javascript-pour-debutants-en-informatique/javascript---les-tests-conditionnels
BigBadSpoon_7dba: tu peux essayer
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
dbdr: ça se simplifie pas en:
function isTooLong (str){ return str.length > 10; } }
?
BigBadSpoon_7dba: ça fonctionne
BigBadSpoon_7dba: quand il depasse les 10 caractere
ShaxoLudo: si dbdr, mais c'est peut être moins simple à comprendre
BigBadSpoon_7dba: ils sont pas tres clair
dbdr: if (a) return true else return false => return a
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
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
BigBadSpoon_7dba: Créez une fonction puissance qui : http://chat.codingame.com/pastebin/b5755463-fbd8-40e9-9af8-974c28014009
BigBadSpoon_7dba: function puissance(number, power){ let total = 1; for (let i = 1; i <= power; i++) { total = total * number; } return total; }
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
BigBadSpoon_7dba: https://www.codingame.com/playgrounds/3777/exercices-de-javascript-pour-debutants-en-informatique/javascript---les-boucles
BigBadSpoon_7dba: voici le lien
BigBadSpoon_7dba: https://www.codingame.com/playgrounds/3777/exercices-de-javascript-pour-debutants-en-informatique/javascript---les-boucles
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
BigBadSpoon_7dba: il faut faire dans une boucle for
ShaxoLudo: t'as pas besoin de ton total
ShaxoLudo: pour cet algo
BigBadSpoon_7dba: pour calculer la puissa,ce
BigBadSpoon_7dba: pour calculer la puiisance
BigBadSpoon_7dba: on fait comment
philRG: ah c'est un playground cg
BigBadSpoon_7dba: il faut obligatoirement definir une varibale
BigBadSpoon_7dba: pour calculer
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
BigBadSpoon_7dba: ça fonctionne pas
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:
hanamost: je comprends rien à ce site :///
BigBadSpoon_7dba: c'est juste j'ai besoin d'aide
hanamost: t'as trouvé quoi pour l'instant ?
BigBadSpoon_7dba: tu es sur quoi ?
BigBadSpoon_7dba: sur quelle chapitre
hanamost: Shadows of the Knight ep1 et toi ?
hanamost: Déjà tu programme sen quoi ?
BigBadSpoon_7dba: moi javascript
BigBadSpoon_7dba: je suis dans les bases
BigBadSpoon_7dba: parce que c'est trop compliqué
BigBadSpoon_7dba: poru l'instant
hanamost: ah.. moi en C au pire dis moi t'es ou et on essaye
BigBadSpoon_7dba: regarde sur youtube il y'a de l'aide
BigBadSpoon_7dba: tu connais js ?
hanamost: ouais masi je comprends juste pas les fonctions qu'on me demande
hanamost: en viite fait je m'y étais intéréssé
hanamost: mais tu cherches a fazire quoi toi ?
BigBadSpoon_7dba: moi je veux augmenter
b0n5a1: o/
BigBadSpoon_7dba: je susi pas tres doué
BigBadSpoon_7dba: je fais plus copié
BigBadSpoon_7dba: coller internet
BigBadSpoon_7dba: c'est pas bien
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
ShaxoLudo: déjà tu geres pas le cas où "power" est à 0
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
ShaxoLudo: bah oui
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
hanamost: Parce que bon j'aime bien ce site mais c'est limite des énigmes et ça me perd un pei
BigBadSpoon_7dba: function puissance(number, n ){ let result=1 for (let i = 1; i <= n; i++) { result = result * number } }
ShaxoLudo: tu ne gères pas le cas où n est à 0
ShaxoLudo: ?
BigBadSpoon_7dba: ça fonctionne pas
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
BigBadSpoon_7dba: une je regarde juste ton code
BigBadSpoon_7dba: j'essaie de faire tout seul
3141948: Let sert pour définir des constantes
BigBadSpoon_7dba: comme ça je comprend la logique
3141948: Var pour déclarer des variables (facultatif/implicite en JS)
ShaxoLudo: @philRG je voulais qu'il joue un peu avec le code
BabelO: let / const avant c'etait var
ShaxoLudo: Var on l'utilise quasiment plus
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
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
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
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...
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
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
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à
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 :(
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
JBM: augmente l'exploration factor
BlaiseEbuth: fix it
Rajh: ah combien ?
Rajh: :D
pardouin: GIT GUD
Rajh: Jtente 10
Rajh: over 9000 ?
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
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.
JBM: ah je vais te spoiler un truc alors
JBM: il vaut *toujours* mieux aller profond
WhatTrickeryIsThis: ah...
WhatTrickeryIsThis: ou pas?
Rajh: Pfiou
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