Chat:Fr/2021-02-22

From CG community
Jump to navigation Jump to search

Robin-Hood: salut

Robin-Hood: Automaton2020

TomTWK: Hello tous, qqun sait comment monter de ligue en combat de bot? je suis 10e en ligue bronze mais je ne monte pas. il faut être 1er?

VirtualAtom: Il faut que ton score à la fin d'une soumission soit supérieur à celui du boss

TomTWK: Ok je vais regarder ça, merci

Thyl: j'ai des nombres qui apparaissent dans un tableau

Thyl: et je sais pas pourquoi

Thyl: la grosse bouse à debuguer..

Thyl: Une idée pour savoir pourquoi ça pourrait faire ça ???

Thyl: :thinking:

Thyl: c'est bon

Thyl: je tappait dans un index non determiné et ça me sortait des nbs de fous :D

Automaton2000: zorg1: go farmer ta quest map

Bon[]Crayon: Tout à fait.

kayou: Automaton2000 devrait porter plainte pour harcèlement

Automaton2000: et j'ai pas le choix

Zorg1: bon Automaton2000 des niouzes ?

Automaton2000: ah je connaissais pas :p

Zorg1: :/

Default avatar.png kinder_schokobon: bjr

Automaton2000: je suis toujours dans le top 10 ^^

Automaton2000: apres je sais pas trop ce que j'ai fait mon code

Alshock: bonjouuur

Magus: ping Automaton2000 ?

Automaton2000: ça me rassure un peu

Zorg1: bonjour à tous et aux bots de compétition Automaton2000 & AutomatonNN

Automaton2000: je connais pas assez pour passer en gold ...

Thyl: Magus pourquoi Auto' il à démarré ??

Alshock: il a démarré ?

Thyl: oui

Thyl: d'un coup tout seul

Alshock: Non

Alshock: Il a répondu à Robin-Hood avec beaucoup, beaucoup de retard

Thyl: a ok

Thyl: il se fait vieux

Magus: Thyl: le chat a reboot

Magus: en tout cas d'après mon pidgin. Le chat a reboot à 10h27

Thyl: a d'accore merci ! :)

Default avatar.png npo: Bonjour

[RAINBOW]BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !

Automaton2000: d'ailleurs je me demandais si c'était possible de faire des boucles

darkhorse64: ton avatar fait mal aux yeux. Démon et flowa powa, ça le fait pas

Alshock: darkhorse64 au contraire, je trouve qu'on plonge au coeur du nueivème cercle des enfers

Alshock: tellement de typos en trois lettres que j'ai 3 nouveaux doigts qui ont poussé

darkhorse64: genre la dangereuse séduction du mal (pas de typo)

[RAINBOW]BlaiseEbuth: :wilted_rose: Flawa pawa ! :sunflower: :peace:

Alshock: le truc bien avec blaise c'est qu'il va jamais trop loin xD

Zorg1: vivement qu'il vienne avec son VW combi tout repeint

[RAINBOW]BlaiseEbuth: Définis "trop" et "loin" :thinking:

Thyl: pfff

Thyl: trouver un algo qui envoie du bois à connect 4

Thyl: minimax deep 3 mon programme timeout...

Thyl: :sob:

[RAINBOW]BlaiseEbuth: C'est lourd le bois.

Thyl: je pense que c'est la simu qui pèse

Thyl: qui connait un IDE Prolog ?

[RAINBOW]BlaiseEbuth: Pourquoi Prolog ?

darkhorse64: C4 ça se bitboard bien

Thyl: parce que prolog

Thyl: et darkhorse64, c'est quoi le bitboard ??

Thyl: prolog pour apprendre encore un nouveau langage

**Thyl aime la complexité

[RAINBOW]BlaiseEbuth: Moui... Y'a peut-être autre chose à apprendre. Mais c'est toi qui vois. ^^

[RAINBOW]BlaiseEbuth: Thyl : Pour les bitboards https://eprints.qut.edu.au/85005/1/__staffhome.qut.edu.au_staffgroupm%24_meaton_Desktop_bits-7.pdf

darkhorse64: pour faire simple, représenter l'état d'un jeu avec un champ de bits; c'est compact et si c'est bien fait, tu as du parallélisme pour pas cher.

Thyl: tu conseillerais quoi [RAINBOW]BlaiseEbuth

darkhorse64: Excellente référence

Thyl: a ok

darkhorse64: mais un peu datée

Thyl: tu fais de la transpo' du coup

Thyl: parce que mon algo est tellement lent

darkhorse64: Désolé pas compris, transposition de quoi

[RAINBOW]BlaiseEbuth: Thyl, j'en sais rien, c'est juste que prolog c'est un peu anecdotique à part si tu bosses au CNRS, et encore..

Thyl: darkhorse64 si tu convertit le plateau en bit

Thyl: c'est pour en faire quoi à part le stocké dans une memoire pour gagner de la vitesse

darkhorse64: Ca sert aussi à faire des tests d'alignement de 4 pions rapides. Je parierais que c'est ce test qui tue tes perfs

Alshock: plein de trucs, tu peux comparer à des états enregistrés rapidement, tu peux update ton jeu avec des opérations sur les bits, et tu peux copier des états très rapidement (et là comme ça j'en oublie sûrement et des meilleures) l'important dans le bitboard c'est bien d'en avoir une utilité

darkhorse64: J'arrive à simuler 4 M de parties par seconde

Thyl: ok respect

darkhorse64: avec test de victoire à chaque tour

Thyl: :)

Thyl: le test de victoire me tue

darkhorse64: C'est le genre de chose que tu apprends à faire sur CG. Le code a une très sale tête

Alshock: en bitboard tu fais les X masques de victoire et tu les offset vers ta position pour ton joueur ?

Thyl: mon algo dans tous les sens (verticale,horizontal,el les 2 diagonales) j'additionne un part un tout les alignés sur le sens que je décompose en deux mouvement

Alshock: j'avais jamais regardé ce puzzle donc là j'avoue que je lance des trucs complètement verts, j'arrive pas bien à compter les options de victoire

darkhorse64: Non pas de masques

Thyl: du coup mon truc est très long

Thyl: lent

darkhorse64: Lis le pdf. Il y a quelques dessins. Ca aide à comprendre

Thyl: ok merci

Bon[]Crayon: Salut :ghost:

Bon[]Crayon: AutomatonNN, Automaton2000 o/

Automaton2000: c'est parce que c'est le langage qui fait tout le monde a le droit à un algo en o(n)

Alshock: Après un peu de réflexion je ferais ça avec une lookup de 8 * 4 board de victoire, qui représentent chaque possibilité pour le point en (3, 3), et je shifterais le tableau pour avoir le point joué en (3, 3) avant de & mes 32 boards de victoires. Dit comme ça c'est pas ouf

Alshock: Doit y avoir bien mieux xD

darkhorse64: Oui

Alshock: -8+4, mais le problème reste le même, faut que j'évite d'itérer, mon cerveau fume

philRG: intéressant le pdf, ça peut servir :-)

darkhorse64: Le problème, c'est que ton algo n'est pas ||

Alshock: c'est marrant j'aurais plutôt écrit //

darkhorse64: C'était ma première intention

Thyl: ça veut dire quoi ||

Alshock: parallèle dans ce contexte ^^

Alshock: sinon ça veut dire "ou logique"

philRG: là je suis game of drones, 273 en gold, avec que du gros if :)

Alshock: un jour faudra que j'apprenne à apprécier les gros ifs

philRG: et fonction d'éval sur chaque objectif de zone pour N drones

Alshock: c'est pas toi qui faisais un voronoi sur god justement y a quelques jours ? Quand stilgart avait sorti l'artillerie lourde ?

philRG: je suis pas très avancé en IA, mais ça se rapproche bien des stratégies qu'on peux utiliser pour les jeux de société

philRG: ah oui le voronoi m'a pas trop servi au niveau où je suis

philRG: les if c'est parfois cool

darkhorse64: L'idée de la zone d'influence est pas mal, si tu les combines, tu peux savoir ce tu contrôles et ce qui est menacé

Thyl: Manwe l'explique dans sa conference

philRG: oui possible j'y ai pas trop réfléchi comme j'ai refait mon code hier qui est pas con en m'inspirant d'un PM du 1er ou 2ème (dont j'ai par ailleurs pas trop capté les explications :-D), mais l'idée de définir des objectifs et des scores pour chacun est élégant et aussi court en code

philRG: j'ai gagné 150 places avec mon code précédent et aussi 150 lignes de code :-D

philRG: ah dsl me suis trompé d'interlocuteur ;-)

Thyl: https://www.youtube.com/watch?v=8kBQMQyLHME

Thyl: super

darkhorse64: non, non, on profite. Je suis pas légende à celui-là donc je prends des notes

philRG: AIshock me souviens plus ce que Stilgart avait comme algo, mais oui j'ai du mal à le battre

darkhorse64: c'était quel jour que j'aille relire le chat

darkhorse64: ?

philRG: sympa la vidéo

darkhorse64: l'intro déchire

Alshock: je saurais déjà pas dire quel jour on est aujourd'hui désolé

Thyl: oui

Thyl: l'intro est sympa

Thyl: d'ailleurs à ce jeu il est 21....

Thyl: il est très bonb pédagogue

philRG: ça fait pas de mal de ré-écouter ce type de vidéo :) après avoir abattu plusieurs forêts de if :)

Thyl: ce type

Thyl: dans ce type je connais qu'elle

Thyl: hélas

Thyl: ...

Thyl: parce que tu en connais d'autres ???

darkhorse64: Juste pour les fans d'OOP, il y a un peu mieux que le if, c'est la stratégie. Ton bot, c'est une liste de stratégie que tu appliques dans l'ordre jusqu'à ce qu'il y en ait une qui matche, c'est le coup à jouer

Thyl: a oui

Thyl: philRG

philRG: Thyl non pas à mon souvenir, ou alors faut que je cherche. Je fais assez peu d'ia.

philRG: darkhorse64 oui après quand je dis forêt de if, c'est quand j'utilise pas de fonction d'évaluation

philRG: mais oui tout est basé sur la stratégie

darkhorse64: En plus, comme c'est un objet, tu peux mettre des données persistantes et ça, c'est vraiment mieux qu'un if

Thyl: darkhorse tu as raison

Thyl: avec des bytes ça marches mieux

philRG: darkhorse64 oui

Thyl: j'ai fait les calcules et j'ai plus que 6 it à la place de 8

DPAmar: this 6 it quoi

darkhorse64: if

leojean890: tiens le jeu connect 4 est sorti, je sens que le MCTS peut gagner dans ce jeu vu la taille du terrain et le nb de coups limité d'une partie ;)

leojean890: un minmax depth 2 win la bois 2 apparemment

leojean890: winrate 100%

leojean890: c'est pas la même en bois 1 mdr

leojean890: ça perd contre darkhorse64 trictrac MSmits ..

darkhorse64: On a pris un peu d'avance sur toi. Mon bot est prêt depuis deux mois

leojean890: je viens de commencer, j'ai fait une éval à base d'analyse d'alignements de pions selon les couleurs ^^

leojean890: je pense qu'il y a mieux à faire:)

leojean890: tu fais souvent des MCTS darkhorse64 non ?^^

leojean890: 2 mois c'est pas mal, tu l'as fait depuis le début de la contrib ?

darkhorse64: toujours mais ça marche plus ou moins bien

darkhorse64: Oui

leojean890: j'en ai fait un sur breakthrough mais le minmax m'a mieux classé

leojean890: plus ou moins bien, je vois, je pense que dans certains sujets des minmax avec très bonnes heuristiques pour éval + élagage ça peut être fort aussi

darkhorse64: J'ai optimisé à mort le game engine. Oui, bt, c'est vraiment le contre exemple

leojean890: (après si mon MCTS m'a mal classé sur breakthrough, c'est parce qu'il n'était pas optimisé en perfs du tout, et en python)

darkhorse64: il reste des choses à faire sur bt mais je ne pense pas que ça suffise pour gagner le top 10

leojean890: y'en a qui utlisent des opening books je pense

leojean890: ah je sais pk mon bot marche moins sur P4 avec depth > 2

leojean890: j'ai pas fait de early cut si win/lose^^

leojean890: d'ailleurs sur fireworks je suis derrière vous aussi^^ t'as aussi un MCTS sur ça ?:)

darkhorse64: bt à la fin c'est très tactique, il faut sacrifier avec des suites de coups assez longues. Il y a un bel effet horizon

darkhorse64: fireworks, c'est que des ifs

leojean890: ah sacrifier des pions pour laisser de la place pour les autres je vois, c'est complexe ouais :)

leojean890: j'ai un truc trop simple moi;)

leojean890: fireworks pareil que des ifs

leojean890: je me demandais si une simu ne pourrait pas aider potentiellement

leojean890: pour savoir vraiment optimalement s'il faut donner un indice ou jouer

darkhorse64: mais des ifs malins. La simu, je n'y ai même pas réfléchi

leojean890: genre si le mec suivant peut jouer mais n'a pas l'indice il serait peut être mieux de donner lindice plus tôt alors que je peux jouer sinon

leojean890: mais s'il a besoin de ma carte alors je devrais peut être jouer avant

leojean890: fireworks j'ai des ifs moins bons que vous on dirait pour le moment ;)

leojean890: mais justement mon pbm c que je privilégie le fait de jouer forcément à donner un indice pour le moment

leojean890: je sais que c'est à revoir cette approche

darkhorse64: Je score dès que je peux parce que marquer c'est le principal

leojean890: ah bah comme moi^^

leojean890: donc c'est pas sur ce point là que j'ai du retard^^

leojean890: je tire pas de conclusions des discard des autres, je devrais je pense

leojean890: j'ai un mini tracker de fow mais qui peut être amélioré

darkhorse64: Toute la subtilité du jeu, c'est d'extraire le maximum d'information de tout ce que tu sais. S'il y a une ligne dont tu ne tires pas profit, c'est une piste

darkhorse64: Comme c'est un jeu de coop, il faut donner aussi les meilleures infos possibles

leojean890: ouais je vois:)

leojean890: la partie donner les meilleures infos possibles je le fais en fonction des SAY que j'ai vus et des cartes que les alliés ont qui n'ont pas été SAY

leojean890: mais je devrais le faire aussi en fonction de quand il pourra le jouer, plus c'est tôt et plus je devrais le dire tôt

leojean890: je l'ai fait surtout en fonction de si mon info concerne N cartes d'un coup je la dis plus tôt

leojean890: plus un nb de cartes concernées est élevé plus je le dis tôt

darkhorse64: J'ai eu la même idée

leojean890: mais y'a ptet plus optimal:)

leojean890: "mais je devrais le faire aussi en fonction de quand il pourra le jouer, plus c'est tôt et plus je devrais le dire tôt" => ça je l'ai pas fait^^

darkhorse64: Oui, il faut bien prioriser

leojean890: et puis extraire de l'info des discard du tenre "s'il discard c'est qu'il peut rien faire d'autre d'intéressant, notamment pas jouer"

leojean890: discard pour récupérer le droit de faire un say

ThomasNicoullaud: toujours les mêmes ici :)

leojean890: et la carte discard est probablement choisie car il n'a pas les infos qu'il faut pour la jouer ou le jeu est trop loin

leojean890: yo ThomasNicoullaud

ThomasNicoullaud: \o

leojean890: t'es pret à enchainer les multis pour passer dans le top CG ?:P

ThomasNicoullaud: c'est bon j'ai déjà atteint mon objectif top 100

leojean890: (si tu fais exactement les mêmes perfs que pour les contests dans chaque multi tu vas aller loin xD)

ThomasNicoullaud: depuis je feigne un peu ;D

darkhorse64: le discard, je ne l'exploite pas à fond, genre sur ce qu'il dit de mon jeu

leojean890: ah ouais

leojean890: je me dis que c'est intéressant de discard des cartes qui sont au dernier niveau si un adv a jeté le level 4 de la même couleur par ex

darkhorse64: Je n'ai pas codé toutes mes idées, tant que je mène, ça peut attendre

leojean890: je vois hehe

leojean890: moi faudrait que je code des trucs pour remonter :)

ThomasNicoullaud: darkhorse64 tu fais quoi de spé sur UTTT ?

ThomasNicoullaud: un MCTS avec un gros open book ?

ThomasNicoullaud: t'as une éval ou un peu d'intelligence dans tes rollouts ?

darkhorse64: rien, je n'y ai pas touché depuis des moins. Non, pas de book, mais un peu d'intelligence dans le rollout

ThomasNicoullaud: ha ..

ThomasNicoullaud: ca doit etre ca qu'il me manque

darkhorse64: Si tu veux farmer du CP, il y a plein d'autres multis et ça te donnera des idées pour UTTT

leojean890: je sais que certains du top ont un bon book aussi dans UTTT^^

ThomasNicoullaud: ouais j'ai du mal a repartir de zero, j'essaye plus de up mes bots déjà existant la

darkhorse64: des multis board games, je veux dire,

leojean890: en commu y'en a plein^^mais c'est pas exactement pour farmer du CP car ils en valent pas bcp^^

leojean890: moins de 500 players:p

ThomasNicoullaud: ouais pareil, j'ai du mal a trouver plus d'une heure consécutive, alors je change des magic number a droite et a gauche

leojean890: quand on a pas de temps à perdre, on peut changer un number et pusher ouais^^

leojean890: ça évite de trop dev ou trop regarder des replays^^

darkhorse64: Faut faire du code assez générique pour pas repasser du temps à refaire le même algo

leojean890: (mais ça fait pas faire des progrès de ouf de juste changer un nb sauf dans des cas où notre config actuelle de nbrs est vraiment mauvaise^^)

leojean890: darkhorse64 vu que tu fais souvent des MCTS j'imagine que tu réutilises bcp de code à chaque fois:)

leojean890: y'a la simu à refaire principalement quoi

leojean890: après pareil je reprends mes templates de minmax/bfs/dfs/bs..

darkhorse64: Oui, exactement. Après ce qui change, ce sont les conditions de victoires et la façon de générer les coups, ça joue sur les interfaces

leojean890: ouais exact, la simu et les conditions de victoire

leojean890: générer les coups et les simuler

darkhorse64: Le fun, c'est de jouer avec les contraintes CG, quand on se débrouille bien, on peut vraiment tirer pas de choses. OK, c'est vraiment des trucs de geeks

leojean890: comment ça ? contraintes du style les 50 ms ?

darkhorse64: Oui

leojean890: donc optimiser les perfs quoi

leojean890: refaire son algo pour diminuer le nb de calculs + revoir son style de code

leojean890: celui qui va être plus chaud, c'est chess

leojean890: déjà, branching assez élevé

leojean890: va falloir avoir de bonnes heuristiques d'élagage, sinon simu "reflexe"...

leojean890: depth 2 max

leojean890: en fait je vois comment joue ton IA de connect4 dans les replays.. c'est chaud à battre, elle me piège et je me retrouve dans une situation où je suis obligé de perdre ^^ faut absolument que j'augmente la depth pour avoir une chance :P

leojean890: elle piège un bon nb de coups en avance

darkhorse64: parfois 20 coups

leojean890: 20 coups à l'avance le piège est déjà là ?^^

leojean890: MSmits est peut être en MCTS aussi ? je sais qu'il aime bien^^

leojean890: bah là en tout cas souvent tu me bats en peu de coups

darkhorse64: Oui, je vois le gain entre 15 et 20 coups à l'avance. MCTS pour MSmits aussi mais il fait des rollouts intelligents. Il faut que je code ça en AVX pour que ça torche

leojean890: ton mcts converge vers un coup qui a une proba de win élevée quoi^^

leojean890: je pense que mon IA est vraiment loin derrière à l'heure actuelle^^

leojean890: rollouts intelligents ? avec heuristique ?

darkhorse64: Oui et comme j'ai un solver et que je fais 400K par tour, ça explore loin

darkhorse64: intelligent = pas jouer des coups qui perdent en un tour

leojean890: d'accord, donc vu qu'il a une heuristique pour pas perdre trop vite, il voit la victoire un peu plus loin que toi j'imagine ?

leojean890: trictrac est pas loin de lui aussi

leojean890: (vu qu'il joue plus de coups "corrects" en moyenne parmi ses XXXk simus grâce à son heuristique)

darkhorse64: C'est pas tout à fait ça: en évitant les coups vraiment stupides, il fait des rollouts qui sont plus significatifs du point de vue statistique et donc il explore mieux

darkhorse64: Oui, c'est ça

leojean890: d'accord je vois ; au moins ça fait de vraies stats parmi les coups qui au premier abord paraissent logiques

darkhorse64: Ca permet de faire un meilleur MCTS sans avoir d'heuristique. Parce ce que je n'ai pas la moindre idée de la stratégie gagnante

leojean890: je comprends ouais^^

leojean890: on peut tenter un pseudo minmax avec élagages basés sur une éval basée sur les alignements de pions..

leojean890: genre un "2" non bloqué c'est dangereux

philRG: ça doit être intéressant de s'acheter un vrai jeu de Connect4 et développer un robot pour bouger les pièces

leojean890: mais c'est trop approximatif, mon éval

leojean890: qui crée un score basé sur le nombre de pions aligné

leojean890: le nombre d'alignements*

philRG: perso j'aime bien jouer contre des vrais gens ou accessoirement des bots développés par eux

leojean890: nombre d'alignements et taille des alignements*

leojean890: je pensais vraiment que MCTS peut être plus fort

leojean890: jouer manuellement contre une IA ?

leojean890: les champions (échecs/go..) jouent contre les top-IA parfois

philRG: c vrai mais ça doit être frustrant je pense

leojean890: de perdre contre une IA quand t'es le champion mondial, un peu je pense ouais xD

darkhorse64: Carlsen = 2860, Stockfish = 3550

leojean890: nombre de victoires ?^^

darkhorse64: ELO

leojean890: ah je vois^^

leojean890: sur un site/classement en particulier ?

leojean890: classement mondial par ex

darkhorse64: Carlsen classement FIDE, Stockfish c'est estimé

leojean890: ah oui je vois

darkhorse64: pour te donner une idée, c'est le même écart qu'entre moi et un GMI de classe mondiale. Autant dire qu'en 100 parties, tu fais même pas une nulle

philRG: va falloir limiter le temps cpu à 1ms / tour ;-)

philRG: good night :)

leojean890: je vois l'idée xD

leojean890: ouais certains algos sont trop violents :à)

leojean890: et si on classait Stockfish par rapport aux IAs récentes de google deep**** alors ?^^

leojean890: alphago, alphazero, muzero

leojean890: (la première je crois qu'elle faisait que le go..)

darkhorse64: La seule référence, ce sont les parties contre Stockfish mais c'était une version sans NNUE alors difficile de dire mais alphazero avait écraser cette version

darkhorse64: écrasé

leojean890: ah ok^^ alphazero est la meilleure officiellement pour le moment ?:)

darkhorse64: Probablement mais SF a énormément progressé grâce à a0

leojean890: (j'avais regardé le paper officiel je crois mais j'ai oublié les stats)

leojean890: ah ok bah si elle l'entraine c'est une bonne chose aussi^^

darkhorse64: SF est maintenant un MCTS + NN. Fini le minimax

leojean890: ouais j'avais vu que c'était un minmax au début..

darkhorse64: J'ai un peu regardé les sources. On se demande pourquoi

leojean890: MCTS + NN au moins elle évolue avec ses parties

leojean890: du coup tu joues aux échecs c'est ça ?

leojean890: les souces pour être sûr d'avoir une info correcte quoi

leojean890: sources

darkhorse64: Plus en compét depuis plus de 10 ans

leojean890: t'avais quand même un bon level en gros^^

darkhorse64: Les sources pour voir comment on peut faire un NN qui dépote sans GPU

leojean890: tu vas bientôt nous faire un truc sympa sur le chess de reCurse :)

darkhorse64: ELO 1960

leojean890: moi j'ai fait quelques parties d'échecs avec quelques stratégies trop basiques :p

darkhorse64: non pas tout de suite pour le bot

leojean890: ça doit tellement prendre de temps de faire une bonne IA pour chess

leojean890: déjà pour gérer le gros branching

leojean890: faire un NN qui dépote sans GPU => c'est vrai que de ce que j'en ai compris il faut en général mobiliser pas mal de machines en même temps..^^

leojean890: enfin surtout pour le deep

leojean890: c'est dur de rivaliser avec google qui ont leur lot de matos du coup:p

darkhorse64: La force de SF, c'est que c'est du pur CPU par rapport à lc0, la perte de perfs est compensé par la bande passante

darkhorse64: CPU <-> GPU, c'est lent

leojean890: ah ok j'avoue je me suis pas renseigné sur ces aspects infra

leojean890: faudrait que je regarde ça

darkhorse64: C'est un gros projet, c'est clair, NN + engine + infrastructure pour apprentissage. Je ne sais pas combien de temps y a passé recurs3

leojean890: tu veux pas le tagger^^

leojean890: t'as un peu appris ça toi ?

leojean890: ouais lui il fait de bons trucs sur CG par rapport à tout ça

leojean890: peut être même à son boulot ?^^

leojean890: j'avais lu l'article de pb4 et Agade pour les NN de CSB aussi

darkhorse64: son emoji favori, c'est :zipper_mouth:

leojean890: je crois que robostac a fait quelques NN sur CG aussi ou je confond (oware ?)

darkhorse64: sur yavalath aussi

leojean890: ah ouais il veut pas qu'on le tag ou qu'on parle de lui ?^^

leojean890: ah nice ça fait quelques personnes qui tryhardent un peu les mutlis avec des NN

darkhorse64: il n'aime pas donner d'infos

leojean890: une poignée seulement du coup

leojean890: de personnes

leojean890: ah ok

darkhorse64: Oui, ça doit faire une demi-douzaine

leojean890: certains n'aiment pas trop qu'on parle d'eux ouais

leojean890: ah et fenrir

leojean890: sur CSB je crois

leojean890: jolindien en parlait avec lui une fois donc je suppose qu'il en fait un peu:)

leojean890: je pense que ça prend énormément de temps d'approfondir tout ça autant en tout cas :)

BlaiseEbuth: Moi aussi j'ai fait un NN !

leojean890: nice ton nouveau pseudo toi xD

leojean890: avec l'icône de profil associée;)

BlaiseEbuth: Mon ancien tu veux dire ?

leojean890: nouveau, tu fais partie de la team rainbow donc ;)

BigUP: yo !

leojean890: yo

BigUP: des tateurs de go ici ?

leojean890: j'ai fait du go 2 fois perso, fall challenge, et 2048..

BlaiseEbuth: Non ancien, c'est le chat qu'est pas à jour.

Zorg1: go le langage ou le jeu ?

leojean890: that's all

leojean890: et quelques puzzles of course

leojean890: ah le jeu j'avoue j'ai fait des IA bidon sur les multis dispo et ça s'arrête là

Zorg1: ah t'as viré ton explosion chromatique [RAINBOW]BlaiseEbuth ?

leojean890: et du gomoku sur un site de jeu compet online mais c'est as les mêmes règles

BigUP: j'ai un comportement étrange, un truc en err:=blaerror; if(err != nil) { err = bla_no_error }

leojean890: mais c'est zorg1 le pro du go ici^^

BigUP: mais apres le if, j'ai toujours l'erreur

BlaiseEbuth: Ouai, c'est trop dur de faire semblant d'être gentil et respectueux Zorg1...

leojean890: haashi m'avait donné 2-3 tips aussi

Zorg1: bigup : c'est quoi le pb exactement ?

BigUP: bah je m'attend a ce que err soit écrasé par les assignations qui se trouvent dans le if, mais ce n'est pas le cas

Zorg1: trop de gens qui font du go, je vais bientôt avoir l'impression de faire du python moi

BigUP: Zorg1, moi c'est pas de bol, j'ai pas eu le choix ...

Zorg1: condoléance alors ;-)

Zorg1: c'est bizarre ton truc. c'est quoi le code exactement ?

Zorg1: je dirais que tu redéfinis err dans le body de ton if

BigUP: Zorg1, bah non justement

BigUP: le code commence comme ca

BigUP: http://chat.codingame.com/pastebin/aebc8de3-fd08-4c5d-ba30-7a43e181506b

Zorg1: oui tu redéfinis err

BigUP: sorti du if, j'ai toujours l'erreur qui m'a fait entrer dans le if

Zorg1: c'est le côté super piégeux du ":=" en go

Zorg1: oui c'est normal

BigUP: ha putain oui !

Zorg1: t'es dans un bloc donc au ":=" il crée trois variables, err fait du shadowing

BigUP: pourtant j'ai regardé plus de 10 fois ! :) c'est énorme le go !

Zorg1: c'est le gros piège du ":=" la première fois tu te demandes ce qui se passe

BigUP: j'ai vraiement regardé que je n'avais pas de := dans mon if, bah je ne l'ai quand meme pas vu !

leojean890: j'ai fait la même erreur lors de mon premier programme go ever (FC2020)

leojean890: j'avais pas compris direct non plus;)

BigUP: bon maintenant faut que je trouve comment corriger ca proprement

BigUP: mes variables "query, args" sont utilisées ensuite et je ne connais pas le type (et je ne veux surtout pas le connaitre)

BigUP: bon bah je crois que le plus simple reste encore de renommer le err qui est redéclaré dans le if

BigUP: c'est moche mais bon

Zorg1: le plus simple c'est d'utiliser autre chose que err et à la fin de faire err=<ta variable d'erreur>

Zorg1: oups t'as été + rapide ^^

BigUP: ouais bon, je suis partagé entre dire que c'est le gars qui a fait de la merde ou bien je suis un peu con de faire un log.Fatal si le retour de la fonction n'est pas nil