Chat:Fr/2022-04-13
Haashi: bonjour, on dit chiffré
Haashi: n'est ce pas Automaton2000
Automaton2000: moi j'ai fait une fonction qui fonctionne pour les deux
Haashi: malin
Zorg1: Automaton2000 le bot qui a tout compris ^^
Automaton2000: o/ à tous et aux bots Zorg1 & automatonnn ?
Zorg1: salut tout le monde :)
Zorg1: chut Automaton2000 personne ne savait pour mon statut de bot autocodé :(
Automaton2000: du coup c'est un peu le principe de base de la base
Zorg1: :D
Haashi: ca fait deja 2 fois que je vois qu'il te salut, t'as meme le droit à un o/ ....
Haashi: je suis jaloux
dwarfie: salut les gens , les tortues et Automaton2000
Automaton2000: du coup faut que je corrige
dwarfie: Automaton2000 : ouais ... fix ton " echo 'tortue' "
Automaton2000: ça doit être un peu chaud
dwarfie: Automaton2000 : toi aussi tu fais partie des gens qui savent pas suivre des consignes simple apparemment
Automaton2000: comme si tu me dis que c'est à cause des gens qui ont réussi le puzzle de la semaine.
dostros: Si quelqu'un a un indice sur comment gérer les roches dans the fall épisode 2 je suis preneur ^^
I_love_CoC: O: 0 TOUS
I_love_CoC: oups
I_love_CoC: o/ à tous
Bon[]Crayon: Salut tout le monde :ghost:
Bon[]Crayon: Salut Automaton2000 !
Automaton2000: quand je l'ai fait en python
Bon[]Crayon: Automaton2000 En python vert ou jaune ?
Automaton2000: pourquoi tu ne fais pas de python
Bon[]Crayon: Automaton2000 Parcequeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Automaton2000: en python il y a un peu trop pour moi
Bon[]Crayon: Automaton2000 Oui c'est du python quoi.
Automaton2000: j'ai bien fait de ne pas le faire ...
Nonoze: j'ai bien fait de ne pas le faire ...
GroutchKeu: o/
Nonoze: oups missclic
Nonoze: srry
dwarfie: Automaton2000 : t'as raison , on devrait toujours ne pas le faire ...
Automaton2000: sauf que j'ai pas encore fait
dwarfie: Automaton2000 : bien !!!!
Automaton2000: tu peux faire le même genre
GroutchKeu: just don't do it
dwarfie: Automaton2000 : non , j'ai une ethique moi monsieur
Automaton2000: est-ce que vous savez si il est pas encore
Frankich: Non Automaton2000 nous sachons pas
Automaton2000: là y a un moyen de savoir si c'est un cas particulier
dwarfie: Automaton2000 : oui , si ca marche pas , c'est un cas raté
Automaton2000: ça fait un bail que j'ai plus de mal
dwarfie: Automaton2000 : alors donne du bien ...
Automaton2000: je pensais que c'était le cas
Bon[]Crayon: Automaton2000 le cas ! quel cas ?
Automaton2000: quand tu fais une boucle for
4839565: Yo tout l'monde ! Automaton2000 !
Automaton2000: 4839565 tu veux pas faire un truc qui me tue à chaque fois
Bon[]Crayon: o/
BlaiseEbuth: \o
Bon[]Crayon: Est-ce que tu un bot ?
BlaiseEbuth: Est-ce que je un bot ?
Bon[]Crayon: Jet un beau.
dostros: Le BFS vous situez ca ou comme difficulté, parce que j'essaie de comprendre avec des tuto sur internet mais pour l'instant c'est pas claire concrètement ?
Bon[]Crayon: https://fr.wikipedia.org/wiki/Parcours_de_graphe
Bon[]Crayon: https://fr.wikipedia.org/wiki/Algorithme_de_parcours_en_profondeur
Bon[]Crayon: https://fr.wikipedia.org/wiki/Algorithme_de_parcours_en_largeur
dostros: Ouai non mais merci ^^
Bon[]Crayon: :confused:
Bon[]Crayon: https://www.codingame.com/learn/BFS
dostros: Merci pour le lien, en fait dans l'esprit je vois à peu près comment ca marche c'est concrètement que ca me dépasse. Mais je vais trouver des exemples qui vont m'aider
Bon[]Crayon: Je comprends.
Bon[]Crayon: Concrètement quand tu dois trouver comment coder c'est pas toujours facile.
b0n5a1: o/
b0n5a1: dostros là t'as une source intéressante pour beaucoup de choses : https://www.geeksforgeeks.org/fundamentals-of-algorithms/
nicola: dostros, pour un BFS, il te faut :
- une liste de nœuds à visiter, qui se vide petit à petit,
- une liste de nœuds visités, qui se remplit petit à petit,
- une liste temporaire, qui remplit la deuxième à la fin de chaque passage.
nicola: En Python, ça me fait donc un ensemble àfaire (qui contient le nœud de départ), un ensemble fait (vide au départ) et temp que je vide à chaque passage.
I_love_CoC: bonjour à tous
I_love_CoC: tortue Autlmaton2000
I_love_CoC: tortue Automaton2000
Automaton2000: je sais pas ce que ca veut dire que je peux arriver en légende?
I_love_CoC: j'essaye de faire un MCTS et je voudrais être sûr d'avoir bien compris le concept, y aurait il quelqu'un qui voudrait en parler avec moi en mp?
BlaiseEbuth: en mp ? :scream:
I_love_CoC: pour pas trop remplir le chat avec mes inepties^^
I_love_CoC: mais on peut en parler ici
b0n5a1: nan c'est code of conduvt proof, éclatez vous ici ^^
I_love_CoC: ok
b0n5a1: hihi
I_love_CoC: alors si j'ai bien compris l'esprit du MCTS
I_love_CoC: on se trouve à un moment T et on a plusieurs possibilité d'action
I_love_CoC: on va donc tester les résultats de toutes les actions en les effectuants puis en faisant une simulation d'actions random ensuite puis on va sélectionner l'action qui a donné le plus de bons résultats
I_love_CoC: est ce que jusque là je suis dans le vrai?
Haashi: ouais jusque la t'es dans le vrai
I_love_CoC: ok
I_love_CoC: alors arrive une de mes premiéres questions
Haashi: dans les grandes lignes
I_love_CoC: si je veux simuler les actions random il faut que je recode toute les régles du jeu que je suis en train de résoudre non?
Haashi: oui
I_love_CoC: dans une boucle for
I_love_CoC: f*ck c'est bien ce que je pensais. Le taf est gigantesque^^
Haashi: et idéalement de maniere optimisée pour avoir + de précision sur le resultat
I_love_CoC: oui avec un élagage alphabeta par exemple?
Haashi: euh non ca c'est un tout autre algorithme
I_love_CoC: ok
Haashi: mais qui a aussi besoin d'une simu
Haashi: généralement tu fais ta simu, et ensuite tu l'inclus dans un algorithme de recherche (mcts, alpha beta, bfs, etc etc)
Haashi: en fonction du jeu, certains algorithmes sont plus pertinents que d'autres
Haashi: tu fais quel jeu du coup ?
I_love_CoC: okdonc je souhaitais en faire un pour le FC2020 mais ça me fait flipper donc je vais essayer de résoudre ça déja
I_love_CoC: https://www.codingame.com/ide/puzzle/can-you-save-the-forest---episode-1
Haashi: alors autant pour le FC2020, le mcts me semble une bonne approche, autant pour save the forest ca me semble compliqué
I_love_CoC: ok tu conseillerais quoi pour save the forest?
I_love_CoC: et pourquoi ça te semble compliqué?
Haashi: ca me semble compliqué parce qu'il y a beaucoup de coup possible (genre vraiment beaucoup) et que j'ai peur que du coup que du coup ton mcts soit pour le coup vraiment trop aléatoire
I_love_CoC: ok
I_love_CoC: parce que je ne pourrais pas me permettre d'aller trop en profondeur dans mon arbre à cause du grand nombre d'actions possibles à chaque tour c'est ça?
Haashi: en gros, les mcts classiques ne prennent pas en compte de pondération ou de fonction d'évaluation, tu vas jouer tout la suite de coup de manière Sur save the forest j'ai l'impression que tu peux avoir une fonction d'évaluation pas trop mal pour orienté la recherche de solution, si tu vois ce que je veux dire
Haashi: mcts c'est bien pour dire "j'ai gagné" , "j'ai perdu" et trouvé une suite d'action pour gagner
I_love_CoC: oui je pensais essayer d'attribuer des poids en fonction de l'état de la case et de son état de feu afin de choisir la solution qui me donnerait un minimum
Haashi: mais moins bien pour dire "j'ai gagné avec x points d'avance", ce dont t'as besoin pour save the forest
I_love_CoC: ok
Haashi: si tu veux travailler sur un mcts, je te conseille https://www.codingame.com/multiplayer/bot-programming/bandas seulement 4 possibilités d'action, la simulation est pas trop difficile
I_love_CoC: la fonction d'évaluation ne fait donc pas partie du MCTS à la base c'est juste une possibilité d'amélioration des performance du MCTS c'est ça?
I_love_CoC: ok je m'y jette
Zorg1: c'est sûr c'est un haut lieu de qualité intellectuelle ce chat, la preuve y a même Automaton2000 qui y cause
Automaton2000: si c'est un peu le principe de base de la base
Zorg1: ah zut ça scroll :(
BlaiseEbuth: Encore...
Zorg1: il se répète le bot :(
b0n5a1: :arrow_double_down:
I_love_CoC: Zorg1: je reconnais ne pas toujours élevé le niveau de discussion mais que veux tu c'est le défaut des débutants^^
b0n5a1: ha parce que tu crois que nous on relève le niveau avec toutes les conneries qu'on sort ? :rofl:
I_love_CoC: ^^ ça c'est l'avantage d'être un baron du codage
Gefaim: Pour le clash of code, y'a pas moyen de rejoindre des partie publique uniquement en taille de code par exemple?
Frankich: Non
Gefaim: sad
b0n5a1: mouais bof, tout le monde a des lacunes ou des trucs jamais vus ou codés même en les ayant vus I_love_CoC
pardouin: le free xp du jour qui est littéralement free
pardouin: control+c, control+v d'un autre puzzle, reformatage de l'input, fini
b0n5a1: celui qui vient d'apparaître surement : https://www.codingame.com/training/medium/frobenius-coin-puzzle
Alshock: coucou
Alshock: ça va bien Automaton2000 ?
Automaton2000: ah ok jamais fait de mcts, que du min-max et bfs ou dfs jusque là, suis débutant
Alshock: Mais non Automaton2000 tu m'as l'air de tout à fait dominer ton sujet
I_love_CoC: o/ Alshock
Automaton2000: je sais que ça marche
Alshock: I_love_CoC t'as vu comme Automaton2000 te paraphrase ?
Automaton2000: ça a pas l'air d'être ça
I_love_CoC: ^^
Alshock: fais lui payer un copyright
I_love_CoC: j'y songe
Alshock: j'ai vu que le début t'as eu toutes tes infos ton MCTS va bien ?
I_love_CoC: ça fait plaisir de voir que je ne suis pas seul à tenter des MCTS^^
I_love_CoC: heureusement qu'Automaton est là pour moi^^
BlaiseEbuth: Y'a ceux qui les tentent et ceux qui les réussissent
I_love_CoC: heureusement qu' Automaton2000 est là pour moi^^
Automaton2000: oui ça revient au même
I_love_CoC: pour l'instant Blaise je suis dans le premier groupe^^
BlaiseEbuth: Go go go lvl up alors
I_love_CoC: c'est ce que je vais faire
Alshock: peut-on réussir un algorithme de parcours partiel ?
BlaiseEbuth: Alshock ! <3
Alshock: Si ce que tu veux c'est t'assurer d'avoir l'algo UTTT ou Oware sont parfaits pour ça.
Alshock: @BlaiseEbuth <3
I_love_CoC: déjà je m'arrache les neurones sur le conseil de Haashi^^
Alshock: (oui je mets toujours cet arobase)
BlaiseEbuth: C'est comme un accent français dans un pays anglophone, ça te rend sexy.
Haashi: je confirme, je viens de refaire un mcts sur oware aussi
Alshock: I_love_CoC en gros je rappelle la boucle MCTS "classique" : sélection -> expansion -> simulation -> feedback. Et si t'as un arbre trop large, ou une simulation trop longue, ben tu vas très vite plus avoir assez de données pour faire une évaluation pertinente du noeud.
Alshock: Contre ça deux possibilités : virer l'expansion et faire juste un choix parmis les actions possibles en les évaluant avec des simulations Soit faire une fonction d'évaluation qui permet de se faire une idée de l'avantage d'un noeud sans faire N simulations
Alshock: C'était surement plus clair avant que je tente de l'expliquer. Simple things first :
- faire marcher une simulation - lancer des parties randoms depuis un état fixe et noter la fréquence de victoires - faire un arbre d'états qui note la fréquence de victoire du noeud et de ses enfants
Alshock: <j'arrête mon monolgue là, je suis pas pas prof pour rien :D />
BlaiseEbuth: Il est beau quand il est sérieux ! :hugging:
I_love_CoC: et dèjà je trouve le boulot à éxécuter plutôt pharaonique donc je vais essayer de le faire morceau par morceau
Alshock: Si c'est la simu qui fait peur, commence par faire la simu de oware c'est le jeu le plus trivial auquel je pense
I_love_CoC: la simulation des coups random et de prime abord le truc qui me semble le plus chaud
I_love_CoC: ok je tente
Haashi: alshock bandas plus simple je pense
Haashi: sur oware, tu dois faire attention a des coups "interdits"
Alshock: bah bandas alors, et n'oublie pas qu'une simulation buguée c'est un problème pour scorer dans le jeu, mais c'est pas un problème pour le MCTS en lui-même
I_love_CoC: buguée tu veux dire qui ne refléterait pas exactement la réalité du jeu c'est ça?
Alshock: exactement, ton MCTS apprend à jouer au jeu de la simulation, si ce jeu est différent du jeu réel il va donner une réponse pas adaptée en vrai, par exemple dans FC 2020 si tu fais des règles simplistes où il faut juste le plus d'arbres possibles
BlaiseEbuth: :heart_eyes:
Alshock: @BlaiseEbuth heureusement que j'ai un charisme incroyable, parce que le reste.. x)
BlaiseEbuth: :grin:
I_love_CoC: clairement il y a un truc entre vous c'est beau
I_love_CoC: ^^
Alshock: https://www.youtube.com/watch?v=UJVsTC1elUM
BlaiseEbuth: Oo
BlaiseEbuth: Une seule réponse possible: https://www.youtube.com/watch?v=uE-1RPDqJAY
Alshock: Ces clippeurs ils sont jamais capables de s'arrêter à la phrase qui est bien
b0n5a1: https://www.youtube.com/watch?v=chg_JabVUXI
BlaiseEbuth: :p
BlaiseEbuth: Automaton2000 ambiance un peu.
Automaton2000: bah en vrai je pense que je vais pas faire un truc dans ce gout là
Magus: error RESULT_NOT_OK, caused by : { status: "SUCCESS" }
Magus: wow, j'avais rarement vu un message d'erreur aussi flippant
BlaiseEbuth: C'est une erreur Windows ?
Magus: nan nan, une erreur chez nous
Magus: ça doit être du code à nous qui génère ça en plus
BlaiseEbuth: :scream:
BlaiseEbuth: Automaton2000 c'est toi qui a fait ça ?
Automaton2000: t'as un bon winrate sur le boss
Haashi: le classique http 200 : { error : "error message" }
Benoit-Summ: qui a changé mon pseudo et ma pp
BlaiseEbuth: Automaton2000 c'est toi qui a fait ça ?
Automaton2000: tu as bien fait de ne pas faire un truc pareil
BlaiseEbuth: C'est mignon les poney
magicienkennys: olala arreter de parler y'a des gens qui essayent de se concentrer
Elanesse: Salut ! Dites, vous savez ou je peux trouver les erreurs du Validateur une fois le code soumis ?? :(
Elanesse: Les Tests IDE passent, mais pas les validateurs après la soumission... (Code vs Zombies)
b0n5a1: pars du principe que partout...tu n'as pas accès aux validateurs
b0n5a1: même si ce n'est pas forcément vrai
b0n5a1: si t'as aucun validateur qui passe c'est que ton code est trop "propre" aux tests, voire hardcodé
Elanesse: J'utilise 2 valeur "hardcodé", mais c'est les valeurs qui sont données dans l'énoncé...
Elanesse: Donc en gros, vu que mon code est trop "propre". Je peux pas valider le jeu...
Elanesse: Super le principe u_u
Eniidras: (propre = spécifique ici)
b0n5a1: par "propre" je veux dire "dédié" aux tests (genre dans le cas extrême : full hardcode du type "si j'ai tel input, je sors telle liste d'outputs")
Elanesse: Bhe justement j'ai rien de tout ça u_u
Elanesse: J'ai strictement rien d'hardcodé, ni fait de truc dédié u_u
b0n5a1: bah ton code n'est pas suffisamment général pour gérer tous les cas est est trop "dédié" aux tests
b0n5a1: Elanesse est ce que tu as écrit le moteur du jeu pour pouvoir simuler l'effet de telle ou telle action ?
Elanesse: Ecrit le moteur du jeu ? oO
b0n5a1: bah oui ... pour tester ce que ça donne au tour suivant si t'envoies Ash à tel endroit par exemple (et pour pouvoir simuler N tours de jeu, et plusieurs combinaisons de N tours de jeu...pour savoir si tu va perdre ou pas)
Elanesse: Du tout, je ne fais pas du tout ça. Ma gestion est en instant au tour donné.
b0n5a1: toutes les règles dans l'énoncé te permettent d'écrire ce "moteur" du jeu
b0n5a1: ha...
b0n5a1: ça suffit pour ne pas perdre avec une heuristique à 2 balles
b0n5a1: par contre tu scoreras pas grand chose sans moteur + simus
Elanesse: bhe je score mieux que des mecs en 100% complétude...
b0n5a1: ça c'est pas dur
b0n5a1: suffit de scorer à mort sur un validateur en particulier, même en failant d'autres
b0n5a1: les 100% complétude que tu bats c'est probablement ceux du bas qui ont juste un truc du genre "coller au cul de l'humain le plus proche et y rester" ... code qui prend 10 lignes max
Eniidras: http://chat.codingame.com/pastebin/b7d8a010-4b8b-485f-a7de-6f34f2116fb0
Eniidras: Ah, on est limité en caractères ^^
b0n5a1: pour un mcts, fais toi plutôt les dents sur bandas
Eniidras: En soit je l'ai codé, c'est pas la complexité qui me pose problème ici, juste la gestion du nombre de simulations
b0n5a1: avec des règles simples et un nombre de possibilités de jeu limité à chaque tour
Eniidras: mais je regarderais bandas, merci :)
ThomPuce: je vais également regarder bandas
b0n5a1: parce que code vs zombie à chaque tour, à moins de se limiter à un nombre d'actions spécifique, t'as une quantité monstrueuse de possibilités par tour
ThomPuce: pour mon premier MCTS tu conseil bandas ou UTTT?
Elanesse: Bhe mon score est au dessus des 50% moins bons :)
Eniidras: Pour ça je me suis juste dis qu'on ne pouvait bouger que dans une dizaine de direction. Et ça marche pas trop mal
b0n5a1: bandas, t'as max 4 actions possibles par tour de mémoire
ThomPuce: bandas il n'y a que 4 actions, je comprends mieux pouquoi c'est un bon candidat
ThomPuce: yes
ThomPuce: merci
Eniidras: Mais pour revenir à ma question, est-ce qu'il y a moyen de limiter le nombres de simulations en utilisant le temps de calcul ?
BlaiseEbuth: C'est la foire aux mcts ici
ThomPuce: ben il reste 7j
ThomPuce: et 22h
BlaiseEbuth: Rien ne garantit que ce sera adapté ^^
b0n5a1: oui : tant que (temps mesuré - petite sécurité) < timeout ... fais ton truc
b0n5a1: mais perso je resterais pas en python pour ça...faire un mcts en sachant qu'on a des perfs de merde c'est se tirer un missile dans le pied
Haashi: BlaiseEbuth ouais mais le mcts c'est le truc sur lequel je suis le moins a l'aise donc je m'entraine
BlaiseEbuth: Oui mais y'a pas que toi visiblement ^^
ThomPuce: on aura appris quelque chose, de toute façon je le dis clairement, "l'important c'est de participer" - coubertin
ThomPuce: :D
Eniidras: Oui, je vais de toutes manières passer sur un autre langage.
Eniidras: Justement le problème est qu'en utilisant la librairie time je me fait to rien qu'en l'appelant... ^^'
BlaiseEbuth: Python c'est lent, mais à ce point là... Le problème doit venir d'ailleurs
BlaiseEbuth: Après au dernier contest y'avait un mcts python borné à genre 600 simus dans le top legend.
Eniidras: Hmm... Alors update, c'était un problème il y a deux mois, mais je viens de le retester et ça marche
Eniidras: Ça colle, j'avais borné à 500
Eniidras: Bon, ben problème résolu, j'ai toujours pas 100% de réussite mais ça me fait déjà ça de moins à penser :)
Eniidras: Merci
BlaiseEbuth: Après borner c'est une chose mais faut que les 600 simus soient bien utilisées ^^
Eniidras: Yep, va falloir que je retravaille cet aspect x)
Eniidras: Mais 500 simu ça me faisait pas passer reflexe. Maintenant il est validé :)
BlaiseEbuth: Tu fais code vs zombie ?
Eniidras: Yep
BlaiseEbuth: Tu as discrétisé les coups possibles ?
b0n5a1: si tu testes sur ça faut peut être privilégier certaines actions et pas juste tenter 10 x aller à distance max possible tous les 36 degrés (par exemple)
BlaiseEbuth: Les grands esprits...
b0n5a1: testes -- > restes
Eniidras: Yep, c'est une bonne idée
Eniidras: Lorsque je l'avais codé je voulais juste voir si j'arrivais à faire un mcts qui marchait au départ
Eniidras: Mais maintenant il va falloir que je regarde ça
b0n5a1: tu peux tenter "ne pas bouger" + aller à 1/5..2/5..3/5..5/5 de la distance max du zombie le plus proche (+ l'humain le plus proche si y'en a pas) comme premier test
b0n5a1: ce qui limite à 11 possibilités...et ensuite voir pour trouver mieux que ça
BlaiseEbuth: Ou limiter à quelques positions sur la map
b0n5a1: aussi
Eniidras: Je pensais plus à ça, ce qui me plante c'est lorsque je reste trop loin des humains
Eniidras: Donc ignorer les coups qui m'éloignent trop
b0n5a1: ignorer ceux qui font que t'arrives trop tard en tout cas
Eniidras: Voilà
dwarfie: Automaton2000 : dessine nous des :turtle:
Automaton2000: c'est pour voir si mon code python se débrouille
Eniidras: Sur Horde ça illustre parfaitement le problème, j'ai Ash qui fonce au milieu, et après il y a trois zombies qui tuent tous les humains x)
dwarfie: Automaton2000 : y'a peu de chance on dirait
Automaton2000: je dis pas que c'est un problème
Bon[]Crayon: Automaton2000 .=.e
Automaton2000: yo tout l'monde ! Bon[]Crayon !
dwarfie: Automaton2000 : tu devrais
Automaton2000: le tout en 3 min doivent pas trop tout lire
Bon[]Crayon: yo Automaton2000 ! yo tout le monde !
Automaton2000: en vrai il est trois octaves en-dessous
BlaiseEbuth: Va falloir que t'arrêtes de me paraphraser Automaton2000, c'est bon je suis revenu.
Automaton2000: ah mais c'est pas le nombre de tours ?
dwarfie: s'toi le tour Automaton2000
Automaton2000: mais si je fais ça aussi
ThomPuce: tu paraphrases aussi dwarfie Automaton2000?
Automaton2000: automaton2000: tu en penses quoi ?
Bon[]Crayon: :robot:
dwarfie: et le voila schizo maintenant le Automaton2000
Automaton2000: je fais une boucle for
dwarfie: Automaton2000 : ca explique tout :rofl:
Automaton2000: pas de ce que j'en ai marre
ThomPuce: non des boucles for pas trop chiant Automaton2000
Automaton2000: alors que les autres :d
ThomPuce: oui, les while, etc... pas top Automaton2000
Automaton2000: oui parce que c'est plus simple à coder
dwarfie: pfff un free xp meme pas original ... en meme temps ca aurait été étonnant
BlaiseEbuth: kwatece?
ThomPuce: Automaton2000
Automaton2000: ThomPuce : c'est un truc comme ça ?
ThomPuce: Automaton2000
Automaton2000: ThomPuce : en meme temps
ThomPuce: Automaton2000 brrrruuuhh
Automaton2000: c'est mk qui me l'a appris celui là
Bon[]Crayon: :open_mouth:
BlaiseEbuth: :scream:
dwarfie: hé hé
ThomPuce: Automaton2000
Automaton2000: donc si tu fais du python ?
ThomPuce: tu me fais peur Automaton2000
Automaton2000: après je sais pas comment on peut faire 100% sans ces patterns, suffit d'avoir un bon random)
ThomPuce: bonne soirée, à toutes et tous
ThomPuce: bonne soirée Automaton2000
Automaton2000: c'est qui le boss ?
Bon[]Crayon: bonne soirée
dwarfie: ah ouais ... c'est vraiment un free xp ... c'est juste un clone d'un puzzle qui existe et necessite juste d'ajouter 2 lignes de codes pour 2 tests ... pffff
**dwarfie en marre , il s'emm.... , il rentre a sa mine ....
RomanceDawn: Automaton2000
Automaton2000: y a des cas où tu as des gens qui ont du mal à comprendre pourquoi
Zorg1: comment es ta chaîne de Markov, Automaton2000 ?
Automaton2000: oui mais je veux dire on peut pas revenir en arrière
Zorg1: encore heureux que tu ne puisses pas faire des phrases à l'envers Automaton2000 t'es déjà assez dur à comprendre comme ça ;-)
Automaton2000: on est plus à ça près...
Zorg1: cépafo
Zorg1: cbon Automaton2000 tu peux te lâcher osef jusqu'à la fin du monde
Automaton2000: yo tout l'monde ! automaton2000, automatonnn !
nicola: Je n’ai pas exactement le même algorithme pour les deux puzzles.
nicola: Le nouveau puzzle demande de moins bourriner.
jujurocking: Je suis pas sûr de voir la différence ( sachant que j'ai fait le nouveau avant l'ancien )
DavidSOLOME: Hello a tous'
Zorg1: jujurocking nicola : vous parliez de quels puzzles ?
Automaton2000: c'est pour ça que j'ai jamais fait ça
Automaton2000: tu as une question ?
Automaton2000: et c'est même pas de la même chose
Zorg1: houla y a eu un reboot du serveur
jujurocking: https://www.codingame.com/training/medium/frobenius-coin-puzzle
Zorg1: thx
jujurocking: Qui est identique à https://www.codingame.com/training/hard/nuggets-numbers
dwarfie: a 3 fois rien prés
Zorg1: ah oui
Eniidras: C'est marrant, il y a un facteur 2 sur les proportions de réussite
jujurocking: Y a des mineurs de freexp
Zorg1: faut arrêter de fantasmer ça n'existe pas ça :smiling_imp:
Eniidras: Certes, mais c'est celui dans la catégorie "moyen" qui est le plus réussi.
Eniidras: Je me serais plus attendu à l'inverse
Zorg1: ha déjà 5 fois 1 :star:
Zorg1: il va bientôt dégagé normalement
pardouin: :flag_cn:
pardouin: 5 étoiles
pardouin: il va bientôt mordu ? D:
4839565: Ah. Nous sommes de retour.
pardouin: Coucou à tous et à Blaise :D
BlaiseEbuth: o/
Zorg1: \o
pardouin: j'ai le coucou tardif
BlaiseEbuth: J'ai fait exploser mon vscode en compilant une grammaire cyclique avec bison et lex ! \o/
BlaiseEbuth: Erreur à la ligne 666 :D
pardouin: à grands coups de Psycho Crusher j'imagine
pardouin: Knee Press Nightmare SUPER
BlaiseEbuth: Ah non c'est pas la grammaire qu'est cyclique c'est mon makefile... Bien aussi...
BlaiseEbuth: Ah bah non... C'pas clair c't'histoire.
BlaiseEbuth: Automaton2000 ton opinion.
Automaton2000: mais j'ai un peu la même chose
Zorg1: donc t'as fait une manip au pif et ça a explosé ton build ?
BlaiseEbuth: Au pif, tout de suite. :rolling_eyes:
Zorg1: pardon, ton build n'était pas à la hauteur de ton idée géniale :)
BlaiseEbuth: 'bsolument
BlaiseEbuth: En vrai j'avais une dépendance cyclique, un oubli.
Zorg1: j'ai une idée d'algorithme qui tue le game mais on pourra le coder correctement que dans deux cents ans !
BlaiseEbuth: Bon ça compile, mais ça fonctionne pas pour autant...
BlaiseEbuth: Yatta! \o/
BlaiseEbuth: https://www.youtube.com/watch?v=rW6M8D41ZWU
Stilgart: Zorg1: 5 fois 1 étoile, ça fait 5 étoiles... c'est bon :)
Stilgart: par contre, le bot ne semble plus faire le ménage... https://www.codingame.com/training/medium/indented-to-xml-like est toujours là :/
Zorg1: il a du recevoir un label "contrib de qualité"
Stilgart: (ou alors il suffit d'avoir codingame en dur dans les approvers pour échapper à la patrouille :D )
BlaiseEbuth: Ils ont licencié le bot, fallait choisir entre lui et Tbo
Stilgart: on avait dit "pas quand je suis en train de boire"
BlaiseEbuth: S'cuse.
**BlaiseEbuth tend un chiffon à Stilgart.
Stilgart: heureusement que les typematrix sont beerproof
Stilgart: et merci pour ce chiffon
Zorg1: tu devrais en faire un livre
BlaiseEbuth: Du chiffon ?
BlaiseEbuth: Un torchon je comprendrais...
Zorg1: c'est fini ce temps où l'on transformé les chiffons en livre ^^
b0n5a1: maintenant c'est les livres qi finissent en chiffons
Stilgart: monde ingrat
Stilgart: même Automaton2000 est choqué là
Automaton2000: j'ai fait plus de 20 ans
Stilgart: Automaton2000: on t'a dit d'arrêter de tricher sur ton âge
Automaton2000: j'ai fait tous les multis et optims
Zorg1: Automaton2000 le mythobot
Automaton2000: j ai fait un peu de chance de faire des tests de l'ide
Stilgart: Zorg1: il faut bien 20 ans pour faire tout ça, donc il faut bien admettre que l'argumentaire se tenait
Stilgart: pas mieux
Stilgart: (ça sent le soucis de focus entre l'IDE et le webchat :D )
Zorg1: "De l'influence du point virgule dans la programmation"
dostros: Les gars, j'ai un string et je voudrais séparer le contenu à chaque caractère, je trouve pas comment (en c# si posible) svp
Bon[]Crayon: Lire les caractères un par un ?
dostros: je veux mettre chaque caractère dans un tableau, en fait si j'avais des espaces entre les termes je ferai un Split(" "), mais là j'ai aucun caractère
Bon[]Crayon: Je ne connais pas le c#.
dostros: en c++ ou C ca marche aussi ^^
Bon[]Crayon: Mais tu peux essayer une boucle 'foreach'.
Bon[]Crayon: En c les chaînes de caractères tu peux les utiliser comme un tableau.
b0n5a1: je suis pas sûr d'avoir pigé dostros mais si tu veux transformer une chaîne en tableau de chars...
b0n5a1: char[] arr = str.ToCharArray();
dostros: Ok parfait merci beaucoup !!
Zorg1: je suis déçu personne n'a trollé en disant qu'une chaîne c'est un tableau de char à la base :(
Zorg1: z'êtes mûrs pour faire modo sur #world :p
BlaiseEbuth: Une chaîne c't'un tableau de tacos
Zorg1: implémenter la comptabilité à partie double dans le bot à taco et regarder Rome brûler
Zorg1: (en jouant de la lyre ofc, c'est un exercice à figures imposées)
b0n5a1: l'ai toute pitite ma jauge maintenant
Zorg1: bientôt le contest ça devrait la remplir
b0n5a1: t'ajoutes 100xp tu la vois pas grandir :cry:
Zorg1: vivement qu'on puisse siphonner les lvl 50
**Zorg1 sort son tuyau
Zorg1: dis comme ça je risque de chopper un first warning :(
b0n5a1: ou une MST...c'est plus fort qu'un MCTS
b0n5a1: attend qu'Automaton2000 la ressorte celle là :D
Automaton2000: après y a les deux
Zorg1: Automaton2000 efface la dernière heure de tes logs s'il te plaît
Automaton2000: il faut un peu plus de temps pour le contest :p
b0n5a1: Haskell à ta mère
b0n5a1: ça, c'est fait
b0n5a1: je me rappelle avoir eu un fou rire il y a très longtemps quand Automaton2000 l'a sorti...et la réaction de Stilgart :D
Automaton2000: ah oui le truc qui te permet de savoir si c'est un peu moins
Zorg1: mais c'est quoi cette fiche de poste à la gomme ? ils se relisent ? https://imgur.com/a/wN14bmZ "projet de modernisation de haut niveau"
b0n5a1: équipe resserrée et ultra compétente :D
b0n5a1: traduction : vous serez que 2 parce que tout le monde est parti...il va falloir assurer
b0n5a1: :D
Zorg1: "JSP" moderne donc ...
Zorg1: 10 ans d'xp nécessaire. tu sens pas la mission bien casse gueule
b0n5a1: bah c'est ça qu'il faut moderniser
Zorg1: yarn c'est pour C#, je sens le projet bien hétérogène avec 36 technos ^^
Zorg1: et visiblement y a pas de BdD ^^ Mais bon ils eut dû craindre de faire peur s'ils disaient ce que c'était ...
Zorg1: mais bon dès que je vois "haut niveau" j'ai une alarme qui sonne ;-)
b0n5a1: un poste où tu te sens comme un équilibriste sur slackline à 2000m d'altitude par grand vent sans filet
Zorg1: ouaip un truc qu'ils essaient de rendre sexy en s'y prenant comme des manches
b0n5a1: avec l'esprit ouvert ça devrait aller :D
Segmentation fault. Jésus marie joseph...
Zorg1: "un esprit ouvert, un sens du service client, un bon relationnel" => tu vas tomber sur les pires connards de l'univers, on veut pas de morts stp
b0n5a1: non prier ne corrige pas les bugs...
b0n5a1: c'est ça :D
Zorg1: :thinking: vendre une sainte médaille qui protège des bugs
Zorg1: pê un bizness à creuser ...
Sideway: surtout quand les bugs apparaissent de manière obscure et inopinée ^^
b0n5a1: ça me fait plus rire depuis que je suis réellement tombé sur des débiles qui allument une bougie, prient, réexécute leur truc des centaines de fois sans rien changer au code en espérant que ça va passer Zorg1...
Sideway: une médaille en chocolat pourquoi pas ? paraît que c'est bientot la saison =)
Sideway: @b0n5a1 ça existe vraiment ? :D
b0n5a1: quand tu le vois tu crois qu'on te fait marcher...jusqu'à réaliser que pour les 2 mecs qui font ça c'est le process normal
Zorg1: b0n5a1 : bah y en a ils livrent en PROD en se disant que quelqu'un d'autre corrigera le merdier
b0n5a1: oui Sideway...
Zorg1: doivent pas être au courant qu'on retrouve qui a fait le coup avec une gestion de version ...
b0n5a1: une gestion de quoi ?
Zorg1: ah oui "tiens voilà le zip à déployer"
b0n5a1: j'ai insisté pendant 2 ans pour qu'il y en ait une...et les gogols s'en servent pas
b0n5a1: et faut rien dire...
b0n5a1: :D
Zorg1: ah oui les fichiers avec l'historique dedans avec 36 niveaux de commentaires
b0n5a1: même pas
Zorg1: ah ok
Zorg1: les mecs s'en foutent
Sideway: le fichier .nfo ? ou bien le READ_ME.txt que personne ne lit
b0n5a1: des copies locales, dans X sous répertoires aux noms obscures, échangés entre collègues, chacun entretenant/ajoutant ses propres sous-répertoires...à ouvrir 5 "versions" en parrallèle à ne plus savoir quoi chercher et à éditer la mauvaise "version"
Sideway: ohlala m'en parle pas... j'étais en train de dépanner une bécane ces deux derniers jours ==> problème de maj sur un variateur, le mec qui avait la derniere version est en vacances pendant 1 semaine...
b0n5a1: tu vois ça t'as envie d'aller acheter un benelli (non pas les motos...)
Zorg1: ça me rapelle les sources C avec des #ifdef dans tous les sens et où tu t'apperçois que t'as passé deux heures sur une partie de code qui ne sert pas dans ton projet ^^
Sideway: bah un copier coller dans la bonne section et c'est réglé ! (lol)
b0n5a1: ha y'a ça aussi Zorg1 #ifdef 0 ... #else
b0n5a1: pour essayer des "versions"
b0n5a1: tu mets à 1 pour switcher :D
Zorg1: les astuces de champions
Zorg1: "ne faites pas ça chez vous, ces gens sont des professionnels" :D
Zorg1: ah et "anglais courant" dans la fiche de poste je vois deux explications (qui ne s'excluent pas) :
Sideway: en parlant d'astuce, j'en ai appris une bonne l'autre jour
Zorg1: 1- tu vas tomber sur des mecs qui bossent à l'internation avec un égo de la taille d'une petite planète
Zorg1: 2- ah au fait une partie du développement se fait en Inde, tu vas devoir suivre une équipe là bas
Sideway: #define swap(a,b) a^=b^=a^=b
b0n5a1: hahaha le 2...au secours
Zorg1: ah on parlait du swap par xor hier Sideway ^^
b0n5a1: yep
Sideway: le shériff de l'espace ?
b0n5a1: je vois un define comme ça avec les paramètres pas protégés je me marre déjà
b0n5a1: (par des parenthèses)
Zorg1: ah oui ^^
Sideway: oui oui, pour éviter les a/b foireux
Sideway: j'y ai pensé après coup =)
Sideway: combien de fois ça m'est arrivé ce truc
b0n5a1: pour gérer les expressions surtout
Sideway: #define swap(a, b) (a^=b^=a^=b);
b0n5a1: heu non...
Zorg1: parenthese autour des a et des b je suppose
b0n5a1: ouais
Sideway: j'ai dû comprendre de travers
Zorg1: si jamais a n'est pas une simple variable, histoire que le compilo n'improvise pas trop ...
Sideway: ah je pensais à completement autre chose ^^
b0n5a1: si tu fais pas ça en fonction des priorités d'opérateurs ça peut faire des belles blagues
Zorg1: et un bug méta chiant à trouver :p
b0n5a1: ha tiens dungeon 3d j'avais jamais vu ce puzzle, faudra que j'y pense
Sideway: toute façon en C faut faire attention à tout... y'a des undefined de partout ^^