Chat:Fr/2022-04-09

From CG community
Jump to navigation Jump to search

Zorg1: o/ tout le monde

Zorg1: \o Automaton2000

Automaton2000: le code sur le chat

Remi.: o/

Zorg1: \o

Remi.: \o/

Remi.: Pas facile la ligue or du FC2020

Zorg1: fix ton bot FC2020 et go legend

Zorg1: ezpz

Remi.: Facile à dire ^^ ça veut dire quoi déjà ezpz ?

Remi.: Il n'y a rien à corriger dans mon BFS. Je sais ce que je pourrais faire pour améliorer ma solution, mais j'ai peur de casser mon BFS justement.

Stilgart: easy peasy

Remi.: Merci

Zorg1: comme je me suis fait grillé

Zorg1: je rédigé une réponse + longue moi :(

Stilgart: et bonjour à tous, et licorne à Automaton2000 le bot qui aime les tortues

Automaton2000: et il est à combien le boss gold

Remi.: (en train de chercher sur wordreference la traduction de peasy)

Zorg1: en gros facile, les doigts dans le nez

Stilgart: (c'est un vrai mot?)

Remi.: Le boss gold est à 32,44 Automaton2000

Automaton2000: ça doit être pour ça

Remi.: easy-peasy adj UK, informal (easy, simple) (familier) fastoche adj

	 	facile comme tout adj

Stilgart: oui, mais peasy tout seul ça existe ?

Remi.: Oui Automaton2000 c'est pour ça que je ne passe pas legend, je suis à 21,47 moi ^^

Automaton2000: moi ça va être chaud pour lvl 42

Zorg1: ça vient d'une pub britanique des années 70 parait il

Remi.: Stilgart a priori non

Remi.: 401 / 530 c'st la 1ère fois que je suis aussi mal classé dans une ligue ^^

Remi.: J'ai toujours été dans la 1ère moitié

Remi.: Zorg1 c'était pas une phrase à toi qu'Automaton2000 vient de citer ?

Automaton2000: y a moyen de faire des trucs à faire en fait

Remi.: Automaton2000 je préfère les faire faire les trucs à faire en fait, plutôt que de les faire.

Automaton2000: c'est tout à fait pareil

Remi.: :rofl:

Zorg1: Remi. avec un prefix de 3 c'est assez courant qu'il cite des posts quasi en entier

Zorg1: Automaton2000 t'as pas trop d'imagination tu sais ça ?

Automaton2000: oui, je viens de passer à la ligue suivante

Remi.: GG Automaton2000

Automaton2000: ça veut dire qu'il y a dedans

Remi.: Y a dedans des gens qui étaient là avant toi ^^

Remi.: Tu es sur quel multi Automaton2000 ?

Automaton2000: je pense que les gens de la ligue bois 2

philRG: bon j'ai fini par monter silver à FC2020 avec un Beam search (BFS limité à 2 actions par noeud)

philRG: actions random

Remi.: Automaton2000 tu pourrais féliciter philRG

Automaton2000: c'est pas mal du tout

Remi.: :D

philRG: et sur les chemins trouvés dans les 50ms, je prends la potion ayant le meilleur ratio prize/distance

philRG: Automaton2000 merci :-) tu es bien urbain :-)

Automaton2000: faudrait que je fasse un peu de chance de faire des trucs

dwarfie: dommage que ca soit pas un vrai beam search du coup ...

philRG: ben c'est un bfs avec élagage

philRG: j'avoue avoir du mal avec les terminologies

dwarfie: donc pas un BS

dwarfie: surtout avec du random ...

philRG: un beam search ressemble plutôt à un DFS du coup

dwarfie: Automaton2000 : sort les liens wikipedia stp

Automaton2000: ya des gens qui sont pas les mêmes

dwarfie: Automaton2000 : oui , ca depend des langues

Automaton2000: ca veut dire que le nombre de gens qui ont fait un truc du genre

philRG: Automaton2000 un petit coup de pouce https://en.wikipedia.org/wiki/Beam_search

Automaton2000: c'est juste que je n'ai aucune idée de comment je vais le faire en php ...

philRG: :-D

dwarfie: Automaton2000 : moi si ... et ca marche ... et toc

Automaton2000: première fois que j'ai fait de la simu

Stilgart: Automaton2000: fake, tu passes ton temps à simuler avec ta chaine de Markov

Automaton2000: bonjour tout le monde !

Stilgart: bonjour Automaton2000

Automaton2000: je ne sais plus si on rajoute une case entre chaque, donc 10001 au lieu de 8

Ezuker: Coucou !

Stilgart: Automaton2000: tu as donc ajouté un 1, c'est ça ?

Automaton2000: et c'est quoi le problème ?

Stilgart: Automaton2000: c'est pour voir si tu suis

Automaton2000: (je suis en train de me dire que je ne gère pas les collisions

Stilgart: manifestement, c'est raté :)

Ezuker: Bon je vais essayer d'être légende cette semaine sur un jeu :)

Thyl: Yo le chat :cat:

Ezuker: Bon je n'y arrive po

Ezuker: Mon programme ne peut pas être supporté, il doit être trop lourd

**dwarfie met le musique ...

dwarfie: " Tu pues le chat, tu pues le chat, qu'est-ce qu'ils te donnent à manger ? Tu pues le chat, tu pues le chat, ce n'est pas de ta faute."

dwarfie: :D

I_love_CoC: bonjour à tous

Remi.: \o

Sirios: yop I_love_Coc

Stilgart: o/

Stilgart: Automaton2000: tu as vu le beau chat de Thyl ?

Automaton2000: pas trop dur de faire une fonction qui prend en compte le fait qu'il y a

Zorg1: ça serait bien de finir tes phrases Automaton2000 ;-)

Automaton2000: je l'ai fait en python

Zorg1: ah dans ce cas là Automaton2000 ...

Automaton2000: ca doit etre pour ca que je veux

Stilgart: Automaton2000: finir tes phrases ? coder en C++ à la place pour finir tes phrases ?

Automaton2000: du coup il fait du c

leojean890: alors Stilgart Zorg1 vous êtes ready pour le contest ?:P

leojean890: ça fait un bail qu'on a pas fait de contest de bots :p

Zorg1: on verra ça le 21 ^^

leojean890: BFS/MCTS/GA/SA vont de nouveau se fritter

Zorg1: ça dépend vraiment du contest

leojean890: ooc j'avais aucun des 4 mdr

Zorg1: ça se trouve les heuristiques auront pê leur chance

leojean890: sauf des bfs par ci par là dans la partie move et shoot

leojean890: ouais le dernier contest avait quelques heuristiques dans le top 100 (je dirais 3 ou 4 bots heuristique)

leojean890: FC 2020 j'étais en beam search, bfs pour pacman je crois

leojean890: pour totoro ça marchait mieux depth 1 j'ai pas encore compris pk car j'y ai pas touché après kle contest

Zorg1: totoro j'avais un MCTS ça marchait bien

Zorg1: j'ai juste mis un temps fou à le débugger ^^

leojean890: philRG l'élagage du beam search c'est basé sur un nb max de noeuds par depth (tu élagues les moins prometteurs)

leojean890: ah ouais tu m'avais dit ça pour le mcts t'as été courageux

leojean890: ça doit être galère à debug surtout sur un jeu assez compelxe comme ça

Zorg1: j'ai quasiment copier/coller mon MCTS de UTTT

leojean890: j'ai une éval depth 1 et hop mdr, et en bfs depth 2 ça scorait moins ^^

leojean890: ouais je vois

Zorg1: j'ai voulu faire une évol et j'ai passé 3 jours à trouver une connerie ^^

leojean890: dans le top 100 y'avait plein de mcts sur totoro

leojean890: même le numéro 2 Saeylos

leojean890: quel genre d'evol ?

Default avatar.png Moiiciou: -+*

Zorg1: ah ah passait de pointeur à des indices

leojean890: ah pour accélérer le code ?

Zorg1: je m'étais vautré sur la racine (enfin je la mettais pas à jour c'est pour ça que ça merdait) :D

Zorg1: oui pour voir ce que ça donnait

leojean890: d'après YannT si tu trouves les bons cuts tu gagnes plein de places d'un coup

Zorg1: oui tout est dans l'élagage des coups possibles

leojean890: genre il est passé top 30 juste après le contest il rageait de pas avoir trouvé le cut avant :p

leojean890: elagage sur heuristique pour optimiser

Robinsstudio: Genre le MCTS ça marchait si bien que ça ? @Zorg1

Zorg1: bah c'est grace à ça que je suis passé légende

leojean890: Robinsstudio regarde le PM du 2eme du contest tu verras que oui hehe

leojean890: le premier était en machine learning

Zorg1: c'était un MCTS avec une éval donné par un NN non ?

Zorg1: à la base

leojean890: ouais son NN a trouvé son éval

leojean890: avec eval on appelle plus ça mcts après :p

leojean890: MC depth N ?

Zorg1: ou minimax tout simplement

leojean890: ptet oui

leojean890: je sais plus quel algo^^

leojean890: 3j à trouver que tu maj pas la racine j'avoue c galère

Robinsstudio: Y a une personne dans ma boîte qui est allée en légende sans anticiper plus d'un coup à l'avance. C'était full heuristiques.

Robinsstudio: C'était vraiment fort.

Zorg1: bah j'avais aussi fait à l'arrache un bitboarding, je testais les deux ^^

Zorg1: oui Robinsstudio y en a qui ont été en légende avec des heuristiques ^^

leojean890: bitboard ça ajoute des causes de bgs à moins que tu sois méga habitué et que ce soit aussi fluent que le code de base hihi

leojean890: Robinsstudio y'en a 3 minimum qui ont fait top 100 en heuristiques

Robinsstudio: C'est dingue. Les heuristiques, c'est un truc qui me dépasse complètement.

leojean890: c'est plus facile à inventer que des search :p

leojean890: genre tu analyses les matchs, par ex les défaites

leojean890: si tu perds tu ajoutes un if qui te fait gagner^^

Robinsstudio: Oui je sais mais je n'arrive pas à faire ça.

Zorg1: oui enfin le MCTS dans UTTT j'ai implémenté ça quasiment mécaniquement sans vraiment aucune connaissance stratégique du jeu

Robinsstudio: Le côté analyse des matchs c'est trop dur.

Zorg1: ce qu'il te faut si tu commences à vouloir une fonction d'éval

leojean890: l'analyse des matchs c'est simple jusqu'à un stade où ça devient dur

leojean890: le stade où t'as l'impression que ton bot joue bien

Zorg1: :thumbsup:

leojean890: mais qu'il perd quand même

leojean890: et là tu comprends pas pk

leojean890: tatn que tu comprends les merdes que ton bot fait c'est easy

Zorg1: "c'est simple sauf quand c'est complexe" leojean890 09/04/2022 :p

leojean890: mais bon j'avoue quand tu arrives trop haut dans le classement ça devient dur

leojean890: Zorg1 je suis sûr que tu approve mon msg mdr :p par ex en bronze tu arrives souvent facilement à trouver les limites de l'heuristuqye :p

leojean890: quand t'arrives en gold parfois on arrive plus à monter à partir d'un certain niveau d'ia

leojean890: certains arrivent à trouver des heuristiques qui jouent quasiment optimal

leojean890: alors que souvent on a des idées trop approximatives qui marchent en général avec limites

leojean890: à un moment sur du minmax/bfs tu te retrouves à tuner tes paramètres au pif dans ton éval mdrr

leojean890: car t'as plus d'idées suffisamment bonnes pour en ajouter/modifier

Zorg1: ah oui le moment "j'ai plus d'idée je tente des trucs au pif"

leojean890: magic numbers

leojean890: sinon y'a les "biais cognitifs"

leojean890: genre t'as une "super idée qui est super dans ta tête"

leojean890: et dans les faits hop tu perds des places mdr

leojean890: mais parfois faut juste la debug

leojean890: genre nouvelle feature => nouveau bug

leojean890: et en fait l'idée était bien

leojean890: mais parfois elle est mauvaise car ça amrche dans 1 partie sur 10

Zorg1: après je pense qu'il faut être prêt à réécrire plein de fois ton bot

Zorg1: c'est là que je lambine

leojean890: faut être courageux hehe

leojean890: pareil la flemme mdr

Zorg1: et que je le fais au dernier moment avec scéance de débug jusqu'à 04:00 du mat

leojean890: et j'ai pas assez d'idées qui justifient de faire table rase

leojean890: j'ai déjà e la patience de réécrire un bot dans un autre langage pour les perfs mais c pas tout le temps

leojean890: 4h du mat ça m'arrive aussi :s

Zorg1: pour ça je préfère le go, c'est pas forcément top optimal, mais au moins je peux avoir des perfs

Zorg1: tout benner pour tout réécrire, bof

leojean890: FC2020 j'avais pris 10h pour réécrire mon python en go mdr

Zorg1: après YannT arrive à faire des trucs pas mal en Kotlin

leojean890: kotlin j'ai pas encore approfondi xD

leojean890: ouais il s'en sort bien

leojean890: il rank souvent bien

Zorg1: en plus si tu connais pas trop le langage, pas forcément le bon moment de le découvrir :p

leojean890: clair, c'était un move risqué ma réécriture du FC2020 en plein contest alors que je connaissais bof le go

leojean890: j'avais réécrit des prgrms en c++ mais hors contest pour avoir plus de temps

leojean890: des "faciles" => oware, othello

leojean890: y'a plein de simus plus dures

leojean890: et 2048 en go

darkhorse64: :mouse: > :cat: ! Yes !

Sirios: gg darkhorse64, tu as choisi quelle méthode (je suis en train de m'arracher les cheveux sur le test 4)

darkhorse64: Ben pareil, j'ai galéré trois heures dessus. J'ai regardé la vidéo donnée en lien par l'auteur dans le forum mais ça ne passait toujours pas. Soit je mettais trop de temps a atteindre les 180°, soit j'étais trop loin pour atteindre le bord. Et puis, j'ai remarqué que quand on se dirigeait vers le centre, le chat ne bougeait pas ...

pardouin: perso je teste parmis 10000 angles celui qui me donne la meilleure eval

pardouin: le plus dur c'est d'écrire la fonction d'eval

pardouin: et dès que l'éval guarantit la survie, je rush sur le bord

pardouin: exemple de replay: https://www.codingame.com/share-replay/618455850

pardouin: ce qui s'affiche c'est mon eval

Sirios: du coup tu vas le plus loin possible dans l'axe passant par 0.0 et le chat et des que tu ne peux plus tu traces tout droit?

Sirios: Moi je suis sur un truc qui ressemble à ca

Sirios: https://www.codingame.com/replay/618456380

Sirios: mais ca ne passe pas le test 4

Sirios: du moins j'ai l'impression que ca manque de précision, des arrondis peut etre

pardouin: mon test 3 c'est quasi le même que le tien

pardouin: en 93 coups au lieu de 94

pardouin: ça se joue pas à grand chose

Sirios: hmm donc je dois optim

pardouin: https://www.codingame.com/replay/618456588

Sirios: pour le test 4 j'ai 2 comportements

Sirios: https://www.codingame.com/replay/618456606

Sirios: https://www.codingame.com/replay/618456991

pardouin: il est censé naturellement se stabiliser sur un cercle assez proche du centre

pardouin: le tien il tourne un peu loin du centre j'ai l'impression

Sirios: oui en fait je calcul l'équation de la droite passant par le chat et la souris

Sirios: ensuite je calcul les intersections avec le cercle (un est le chat, l'autre la sortie que j'envoie)

pardouin: regarde mes frames 55 à 65, c'est quasi un arc de cercle

Sirios: si la sortie est atteinte plus rapidement par la souris que le chat je la bloque

pardouin: bref, je dois filer, bon courage :)

Sirios: sinon je continue a tourner

Sirios: lol merci

Sirios: ++

pardouin: mais tu m'as l'air un peu trop loin du centre pour tourner

pardouin: c'est plus efficace plus proche, tu as une meilleure "efficacité" angulaire

Sirios: ben c'est que je n'ai pas détecter de porte de sortie ou j'arrive avant le chat :p

Sirios: oui

pardouin: bref ++ o/

Zorg1: \o --

Ezuker: Y a t-il un moyen pour avoir un debugger sur codingame ?

Ezuker: Ou alors on est obligé de le faire sous vsc

Stilgart: il faut faire le debug en local

Ezuker: Debug avec le cerr ?

Ezuker: en c++ du coup

Stilgart: un peu de respect, j'ai dit debug :)

Stilgart: (donc surement pas cerr, que tu peux faire sur CG mais qui ne t'aidera pas vraiment)

Ezuker: J'aimerai bien debug sur vsc mais va s'y j'ai plein de messages d'erreurs donc rip

Zorg1: ah vsc n'a pas un debugger user friendly ?

Zorg1: ça existe toujours les gens qui débuggent en ligne de commande ?

Stilgart: oui, c'est très bien gdb

Zorg1: plus touché depuis longtemps ^^

Stilgart: et sinon, vsc a évidemment un débogueur intégré

Zorg1: j'espère pour un IDE ^^

Zorg1: mais bon avec microsoft :p

**dwarfie arrive en un eclair

dwarfie: codeblocks aussi

**dwarfie repart aussi vite se cacher :D

Stilgart: tu as le droit de repartir..

Stilgart: aussi vite que tu es venu :p

Stilgart: surtout que bon, c'était du gdb par dessous avec un wrapper qui passait son temps à segfault dans mon expérience

**dwarfie l'utilisera quand meme une fois de plus au prochain contest :p

Zorg1: c'est vraiment si pourri que ça codeblock ?

Stilgart: depuis quand tu codes des bugs toi ?

dwarfie: dixit Stilgart : "ca l'était"

Stilgart: Zorg1: j'ai connu sur le début, et j'ai regretté Dev C++

dwarfie: je code des features ... ca se debug aussi les features :rofl:

Stilgart: (ce qui place la barre à peu près dans la fosse des mariannes)

dwarfie: Automaton2000 : big is feature ... mais tu le savais deja

Automaton2000: et j'ai du mal à la tête

**Stilgart tend un peu d'huile à Automaton2000

Automaton2000: ce qui n'est pas la même chose en même temps

dwarfie: Automaton2000 : tu preferes un peu de graisse de tortue ?

Automaton2000: ce qui me permet de faire le puzzle de la semaine :d

Stilgart: Automaton2000: qu'est-ce que ça sera quand on te donnera de la graisse de licorne ?

Automaton2000: c'est le genre de truc

dwarfie: piscine , tortue , ca se tient presque Automaton2000

Automaton2000: on va essayer de le faire

Stilgart: go go go Automaton2000

Automaton2000: je pense que mon code ne marche pas bien

Stilgart: erf

Zorg1: bah débugge le Automaton2000 :p

Automaton2000: après je suis pas sur de comprendre la logique

Zorg1: on vient d'en parler en °

Zorg1: +

Stilgart: Automaton2000: conseil de la part de kovi, ça sert à rien de spam submit

Automaton2000: en moins de 10 lignes

Zorg1: alors pourquoi il le fait lui ?

Zorg1: Automaton2000 éclaire moi je vois pas la logique !

Automaton2000: c'est très bien le taff

Zorg1: t'as jamais utilisé un outil de ticketing toi Automaton2000 ...

Automaton2000: a la fin du jeu

DCVolo: Pour Mars Lander Episod 2 vous avez utilisé quel logique ? Trigo ? Trajectoire de projectile ? ou des trucs encore plus complexe ?

b0n5a1: o/

b0n5a1: DCVolo : https://www.youtube.com/watch?v=pN8IFhbGYkQ (valable pour le 2 et le 3)

Default avatar.png Baengi: moi j'ai galéré en python à essayer de faire fontionner tan() pour accélérer à l'inverse de la chute

Zorg1: \o

DCVolo: pour l'instant j'ai juste fait mes deux classes pour la fusée et le terrain et quelques méthodes pour calculer des choses utiles

DCVolo: mais comme je suis un peu une quille en math, j'sais pas trop comment m'y prendre pour arriver à optimiser trajectoire & fuel sans faire un truc over compliqué type genetique x) j'en suis pas encore là niveau code

DCVolo: en plus de ça le lien du cours sur la genetic est en accès privé ..

b0n5a1: ha...je sais pas j'ai mis ça juste pour avoir une visualisation d'un AG (je me rappelais qu'un truc comme ça traînait sur YT) ^^

DCVolo: nan je parle de ce lien sur la page du puzzle :

DCVolo: https://tech.io/playgrounds/334/genetic-algorithms?utm_source=codingame&utm_medium=details-page&utm_campaign=puzzle-to-playground&utm_content=mars-lander-2

DCVolo: ah bah ok maintenat ça marche...

b0n5a1: j'allais le dire ^^

DCVolo: on va dire que j'ai rien dit alors .. me suis bouffé des error 412 à la chaine

Sirios: sympa l'AG de mars lander 3

dwarfie: ca sert a rien

Ezuker: Je vais commencer à pleurer

dwarfie: vas-y ... comme on dit "pleure un coup , tu pisseras moins" :rofl:

b0n5a1: Ezuker si tu rames sur le code pour un multi, tu devrais peut être commencer plutôt par te faire la main avec les puzzles

Ezuker: Non, c'est une histoire de vsxc

Ezuker: vsc

Ezuker: Débuggeur marche po

b0n5a1: ha

b0n5a1: tu peux prendre visual studio community, gratuit

b0n5a1: par contre fais gaffe à l'installation d'aller en détail sélectionner l'installation de C++, de mémoire par défaut y'a que C#...pour éviter de devoir relancer/reconfigurer l'install

b0n5a1: par contre...t'es bien en configuration de debug ?...parce que si t'es en release tu va pas pouvoir visualiser le contenu des variables

b0n5a1: enfin si y'a bien cette distinction avec vsc, j'en sais rien j'utilise que visual studio (pro et community)

Sirios: Automaton2000 tu es en réparation ?

Automaton2000: il est un peu trop pour moi

Sirios: je me disais aussi

Ezuker: C'est bon j'ai réglé

ZndrBrok: Quand tu passes 2-3 heures sur un puzzle simple sans comprendre ce qui cloche et que seulement le lendemain tu te rend compte que en faite tu traques la position initial de thor sans prendre en compte ses déplacement... tu as quand même une forte envie de rire et de pleurer en même temps... #LiveWithNoBrainIsHard

ZndrBrok: Je sais pas si qui que ce soit en a quelque chose à cirer mais je me disais que mon malheur/bonheur fera peut-être sourire quelqu'un :P

Ezuker: mdrr je l'ai eu aussi

Ezuker: sauf que j'ai pris 2 minutes à comprendre :sob:

ZndrBrok: Morale == PAs trop coder quand le cerveau garde à peine les yeux ouverts && apprendre à débuger avec l'IDE de codegaming :P

ZndrBrok: @Ezuker, pour ma décharge, je suis encore un jeune padawan et j'étais dans un état un peu second vers 4h du matin haha Mais je me sens néanmoins quand même humilié par mon propre cerveau :P

Ezuker: tqt tu n'es pas le seul jeune padawan mdrr

Ezuker: Je suis nul faut pas croire

DCVolo: présent aussi

ZndrBrok: Je me méfie des gens humbles! {Regard_Paranoïaque} :joy:

Ezuker: http://chat.codingame.com/pastebin/a4bb4805-ff71-4fb6-817d-69854f04f0ab

Ezuker: comment on déclare un vector comme ça

Ezuker: c++

DCVolo: ben c'est ce que tu fais

Ezuker: ça me met des erreurs

DCVolo: oh

DCVolo: enlève la taille

b0n5a1: Ezuker : https://onlinegdb.com/VuZVNGwYD

Ezuker: ça me met plus d'erreur

Ezuker: ça ne veut pas lire non plus...

DCVolo: http://chat.codingame.com/pastebin/b4430bc1-4b75-46f2-a6dc-ba0a7bfba3eb

b0n5a1: le = est overkill, les { } internes servent à rien

Ezuker: En faites c'est pour par que je mettes à la main les cin

Ezuker: ça me soule mdrr

Ezuker: Bon je vais me coucher je verrais ça demain merci

DCVolo: tient d'ailleurs, tu sauras peut-être Bon mais y'a une différence lorsque sur un pair p, tu lui associes des valeurs comme ça :

DCVolo: make_pair(0,0); pair<int,int>(0,0); p({0,0});

b0n5a1: pas vraiment, perso je préfère l'initializer_list (ton 3e exemple) juste pour la simplicité d'écriture