Chat:Fr/2021-03-16

From CG community
Jump to navigation Jump to search

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

Automaton2000: et du coup on peut le deduire

AutomatonNN: pas tout à fait de ce que tu veux dire à toute

Pouletos: :grimacing:

philRG: @Zorg1 mon algo c'est une forêt de if et de boucles, et numpy est pas conseillé pour ça, donc le choix est vite fait

philRG: après si tu utilises un algo de recherche et que tu arrives à coder le gameplay et fonction d'éval, alors oui

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

Automaton2000: mais tu veux que je le dis

BlaiseEbuth: o/

Zorg1: \o

Zorg1: AutomatonNN est mort ?

AutomatonNN: oui

Zorg1: nice

Hiskiss: hey

Default avatar.png Altas: hey

Hiskiss: yo

BlaiseEbuth: C'est tout mort encore... Oukisson les 100k actifs ?

BlaiseEbuth: AutomatonNN cherche les ! Automaton2000 meuble en attendant !

AutomatonNN: oui

Automaton2000: en fait dans le referee il y a des gens ici qui ont fait des trucs pas mal

Zorg1: les 100k actifs ils bossent eux ils passent pas leur temps à causer sur le chat

Default avatar.png ALLAOUA: hello tout le mode

Default avatar.png ALLAOUA: monde

Default avatar.png ALLAOUA: Quelqu'un aurait fait le puzzle de la semaine ?

Default avatar.png ALLAOUA: Flower beds

BlaiseEbuth: 37 personnes, oui.

Default avatar.png ALLAOUA: Sur le forum des questions ils ont parlé de théorème après le calcul de la surface, il parle de quel théorème ?

BlaiseEbuth: Je ne fait pas partie des 37 personnes.

Default avatar.png ALLAOUA: lol mercii quand meme

nopnop: le théoreme de pick je crois

nopnop: ça permet de calculer la surface a partir du nombre de points dans un polygone et sur ses cotés

BlaiseEbuth: Pique épique et collègue rame.

Default avatar.png ALLAOUA: merci beaucoup

Default avatar.png ALLAOUA: j'ai compris comment faire

BlaiseEbuth: Pas de souci.

Default avatar.png ALLAOUA: on frôle le fou rire

BlaiseEbuth: Ouai, on se marre bien.

Zorg1: c'est la grosse déconnade ici on dirait :D

BlaiseEbuth: Comme toujours. Joie. Bonheur.

Default avatar.png TheNinjaSkull_6e96: bonjour

Default avatar.png RustySconeOfWisdom_ea0e: Yo les pote

Default avatar.png TheNinjaSkull_6e96: on est la

Default avatar.png Rakotoo: Terry t'es nul

Default avatar.png Rakotoo: tu va reboubler

Default avatar.png TheNinjaCastle_59d2: hello

Bon[]Crayon: Salut tout le monde

Bon[]Crayon: slt Automaton2000

Bon[]Crayon: slt AutomatonNN

Automaton2000: sans parler du fait que tu es sur la bonne voie

AutomatonNN: on se reproduit moins con pour le test de la forme de ce que tu as fait de toutes façons

Bon[]Crayon: AutomatonNN Rien n'est moins sûr !

AutomatonNN: 3 ans ou tu as un bon truc qui te reste pas un peu de temps a dire " "ship" ?

Bon[]Crayon: AutomatonNN chiche

AutomatonNN: c'est de la merde que j'ai pas eu le temps de faire un truc plus contre que tu peux pas taper des tr

Default avatar.png Rakotoo: aidez nous pour power of thor 1 !

Default avatar.png Rakotoo: :cry:

Default avatar.png Rakotoo: :no_entry:

Josephtulaferme: bonjour

Bon[]Crayon: Quel est votre problème ?

Bon[]Crayon: salut

Default avatar.png Rakotoo: Salut, on sait pas comment faire pour l'angle facile

Default avatar.png Rakotoo: suc

Default avatar.png Rakotoo: super dur **

Bon[]Crayon: Sur la barre vertical à gauche, il y a un boutons indices.

**dwarfie tend des NW , SW, NE et SE ...

Bon[]Crayon: Est-ce que vous avez lu les indices ?

Bon[]Crayon: Il y a même la solution ! :hushed:

Default avatar.png TheNinjaSkull_6e96: On avait pas vu merci beaucoup

dwarfie: et oui ... ce scandale d'y mettre la solution ...

Bon[]Crayon: C'est trop !

Default avatar.png Rakotoo: Merci beaucoup ! :heart:

Default avatar.png Rakotoo: aidez nous pour Mars Lander !

BlaiseEbuth: Trop d'amour et de bienveillance ici... Automaton2000 zizanie !

Automaton2000: c'était quoi le problème ?

dwarfie: Automaton2000 ... ca manque de tortue ...

Automaton2000: j'arrive pas à faire un truc qui me fait dire que c'est une bonne chose de faite

Bon[]Crayon: Il faut appeler la NASA. :joy:

Default avatar.png Rakotoo: Mars Lander c'est chaud

dwarfie: meme pas vrai ... il fait froid sur mars

Default avatar.png Rakotoo: Bien vu l'artiste

Bon[]Crayon: 20°c max

Default avatar.png Rakotoo: C'est chaud pour les gens du Nord

dwarfie: -63 en moyenne ...

Bon[]Crayon: Il faut qu'on aille réchauffer tout ça.

dwarfie: c'est froid meme pour les pingouins ...

Default avatar.png TheNinjaSkull_6e96: go polluer mars

Default avatar.png Rakotoo: Avant d'y aller, aidez nous a y atterir dans l'ep 1

Bon[]Crayon: Il faut faire des tests.

Default avatar.png Rakotoo: On test mais on y arrive pas...


Bon[]Crayon: Il faut faire des tests avec différentes valeurs pour power.

Default avatar.png Rakotoo: Ok merci, on va essayer

Default avatar.png TheNinjaSkull_6e96: merci ca marche

Alshock: yo

Bon[]Crayon: o/

Alshock: dans l'épisode 1 de mars landing c'est comme pour faire du bon café. Suffit de trouver un bon ratio

Alshock: sinon vous pouvez aussi vous amuser à desssiner des coeurs sur l'écran avant d'aterrir (c'est Elon Musk qui paye le fuel)

Alshock: ça va AutomatonNN et le boss ultime des tortues Automaton2000 ?

AutomatonNN: oui

Automaton2000: ah on peut pas dire que je vais faire du java :p

Alshock: et tu vas faire de quoi alors Automaton2000 ?

Automaton2000: ok merci de ton aide

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

BlaiseEbuth: Alshock :hugging:

Default avatar.png Rakotoo: On va essayer de faire un petit coeur

Alshock: BlaiseEbuth :hugging:

Alshock: Dans la catégorie faire des mouvements maitrisés, l'épisode 2 est intéressant

Bob: petit coeur <3

BlaiseEbuth: stoi l'petit coeur.

Bob: t'as toujours pas recupere ton badge de modo toi ?

BlaiseEbuth: Nan.

BlaiseEbuth: Heureusement que je suis pas le seul, sinon je me poserai des questions sur l'"arrengeance" de la situation.

[CG]Thibaud: ouais faut que je réajoute tous les modos qui l'ont perdu. Mais je voulais aussi voir ce qui a produit ce truc, pq reconfigurer tous les x mois, c'est chiant

[CG]Thibaud: si je te voulais plus comme modo, je te l'aurais dit et je t'aurais viré les droits ailleurs

Alshock: On est passés à ça du "ah ben d'ailleurs puisque t'abordes le sujet..." :P

BlaiseEbuth: Je me sens nu et sans défense sans mon badge... Alors je deviens parano.

Alshock: ah yes, un problème d'identité en python

Alshock: je me disais bien que ma journée était bien trop calme

Bob: je serpente donc je suis ?

Alshock: Argument du serpent glissant

BlaiseEbuth: skoi un "problème d'identité en python" ?

BlaiseEbuth: Tu veux dire que faire du python est symptomatique d'un manque de personnalité ?

Alshock: Le problème mystique que self.attr += whatever ne changeait pas le contenu de self.attr

Alshock: je veux dire, éviemment que c'est une copie modifiée, mais self.attr pointait toujours sur l'ancien container intact

BlaiseEbuth: Je comprends pas ce que tu dis, mais ça m'a l'air complétement con comme truc.

BlaiseEbuth: self c'est pas sensé désigner l'instance courante ?

Alshock: oui toutafé, c'est le this pythonien

BlaiseEbuth: Alors pourquoi "copie modifiée"

BlaiseEbuth: Ou alors il manque une phrase dans ton truc.

Bob: bah de toute facon c'est python

Bob: who cares ?

Alshock: ben parce que + ne modifie jamais des objets in-place, il fait toujours des copies. Enfin si tu suis les conventions en tout cas. Donc [1, 2] + [3, 4] = [1, 2, 3, 4] et c'est un troisième tableau, comme partout. Là pour une raison que j'ai pas, et que j'aurai jamais parce que j'ai pas versionné le bug, j'avais += qui ne me mettait pas correctement le résultat dans self.attr

Alshock: ou alors évidemment il y avait autre chose que j'ai pas vu qui expliquait que je voie deux fois le même objet avant et après le +=

BlaiseEbuth: J'ai toujours pas... + et += c'pas la même, si ?

Bob: je connais aucun langage dans lequel le comportement par defaut de + modifie l'une ou l'autre des operandes

Alshock: a = a + b et a += b du point de vue du dev (pas forcément de l'interpréteur) c'est quand même très semblable non ?

Bob: OK en C++ on peut faire des overrides de goret mais par defaut non

BlaiseEbuth: Ok. C'était la question.

Alshock: Si, le brainfuck (attends c'est hors sujet ça) on est d'accord Bob, d'où le fait que je dise comme partout

Alshock: Et heureusement

Alshock: Je veux pas vivre dans le monde alternatif où le moi d'il y a 10 ans a rendu toutes les modifications in place

BlaiseEbuth: Moi ce qui me choque dans l'histoire c'est que ton exemple d'utilisation de + ce soit la concaténation de deux tableaux...

Bob: tu veux qu'on te presente JS ?

Alshock: C'était pour que ce soit des objets et pas des primitives

Bob: 2 + "3" -> "23"

Alshock: non 23

Alshock: c'est pas la gauche qui décide ?

Bob: 2 * "3" -> 6

Bob: non

Bob: c'est le type vers lequel le moteur decide de convertir

BlaiseEbuth: Arrêtez de vous batter. C'est de la merde de toute façon.

Alshock: ah ouais c'est tordu, et on est bien d'accord que "2" * 3 = "222"

Bob: eh ben je viens de faire le test et non plus :)

Bob: "2" * 3 -> 6

Bob: pour le coup y a pas de * sur string comme en python

Alshock: oui je commence à les confondre

Bob: les aberrations de JS c'est tout un poeme

BlaiseEbuth: La seule aberration c'est js lui même.

Alshock: ils ont dû y penser et quelqu'un à la réunion a posé la question "et avec les conversions on lui donne quelle priorité ?

BlaiseEbuth: Et le PM a dit: "Lance un dé"

Default avatar.png Rakotoo: Mars Lander 2, we need help

Bob: rajoute des ifs

Alshock: ah ah ah ouais tu t'es engagé dans du lourd là

Default avatar.png Rakotoo: oui...

Alshock: dis-nous tout, qu'as-tu fait, que vois tu autour de toi ?

Alshock: Coupe le câble rouge et rejoins la salle d'oxygène

Bob: si tu vois un astronaute barbu tout seul en bas qiu fait des grands signes, c'est Matt Damon

Default avatar.png TheNinjaSkull_6e96: génies

Default avatar.png Rakotoo: :cry:

Default avatar.png TheNinjaSkull_6e96: il va avoir le temps de mourir matt

BlaiseEbuth: Si t'arrives à te poser, prépare des pièges pour quand Musk arrivera.

Bob: bon plus serieusement

Bob: si tu as reussi Mars Lander 1, tu as saisi que l'idee generale c'est "si je vais trop vite vers le bas, je reste oriente vers le haut et j'accelere"

Alshock: on déconne mais la première question est sérieuse, qu'as-tu tenté ou pensé faire ? Qu'on sache de quoi partir. Tu peux tenter de le rsoudre avec du tâtonnement, de la projection, de la simulation et autant d'autres manières qu'il y a de devs

Bob: Mars Lander 2, fondamentalement c'est faire pareil sur l'axe horizontal

Bob: si tu es a gauche de la zone d'atterrissage et que tu vas vers la droite, c'est pas mal

Default avatar.png Rakotoo: On essaye de faire comme pour le 1 mais la plateforme bouge de place

Bob: si tu es a gauche mais que tu vas vers la gauche, c'est embetant et il faut orienter la fusee et accelerer pour compenser et aller vers la droite

Bob: etc

Bob: l'emplacement de la plateforme t'es fourni en entree

Alshock: la première difficulté c'est qu'il faut identifier la plateforme (les deux points de même altitude

Bob: t'est*

Default avatar.png Rakotoo: Ok, ça m'as l'air bien compliqué

Alshock: les deux points *consécutifs* de même altitude, même si je pense pas qu'il y en ait d'autre dans les cas donnés

Alshock: c'est pas tout à fait trivial, mais si tu l'abordes dans le bon sens c'est globalement la même chose que le 1, mais avec 2 axes à gérer au lieu d'un

Bob: ah ben c'est moins trivial que le premier oui

Bob: comme a dit Alshock, commence par localiser la zone d'atterrissage

Alshock: le premier épisode est "juste" là pour que tu comprennes comment tu diriges la bête, et comment elle réagit

Default avatar.png Rakotoo: D'ici a ce qu'on aura fini Musk nous y attendras

Bob: une fois que tu sais ou elle est, prends chaque cas de figure un par un

Alshock: Rajoute un scanner à ton vaisseau, tu peux pas te poser sur les débris de ses sondes

Default avatar.png Rakotoo: On vient d'atterrir sur Venus ...

Bob: le cas de figure de base c'est "je suis au-dessus de la zone d'atterrissage avec une vitesse horizontale nulle ou suffisamment faible" -> il reste a ajuster la vitesse verticale = c'est Mars Lander 1

Bob: si tu es dans une autre situation, il faut faire le necessaire pour se ramener a ce cas de figure de base

Alshock: Î This Î Ce que Bob te conseille c'est de faire une flowchart en gros : "Est-ce que ma vitesse horizontale est pertinente vu ma distance horizontale à l'objectif ?" - Non je l'adapte, Oui je passe au test sur la vitesse verticale.

Default avatar.png Rakotoo: Mercii

Bob: grosso modo tu as deux questions a te poser

Bob: 1. de quel cote de la plateforme tu te trouves -> a gauche, au-dessus ou a droite

Bob: 2. est-ce que tu vas dans une direction qui te permet de rejoindre la plateforme, ou de rester au-dessus

Alshock: je crois que pour finir le puzzle il faut affiner "rester au dessus" en "rester au dessus du point le plus haut entre le robot et le site" (ou plus simplement "rester au dessus du point le plus haut de la carte")

Bob: ca a l'air complique ce que tu dis Alshock :D

Alshock: forcément, c'est un truc que j'avais rajouté après m'être écrasé :D

Bob: meme pour les deux derniers tests on demarre au-dessus de la zone

**dwarfie rappelle que c'est toujours une bonne chose de savoir s'écraser de temps en temps :D

Alshock: oh, très jolie celle-là

Default avatar.png Rakotoo: Vous êtes trop fort

Bob: et j'ai jamais eu besoin de gerer "ah merde je suis trop descendu y a une montagne a franchir"

Bob: d'une maniere generale pour ML2 je suis en descente 100 % du temps

Bob: y a que pour ML3 que j'ai eu besoin de monter

BlaiseEbuth: Moi j'ai fait une zolie courbe et j'ai dit à la fusée "tu suis la courbe".

Zorg1: et ça marche ?

Alshock: Moi j'ai fait une zolie simu et z'ai dit "démerde-toi mais pose-toi"

BlaiseEbuth: Bah non, ça vole.

Alshock: une fois posé, ça roule tout seul

Default avatar.png Rakotoo: Tu peux nous l'envoyer ?

BlaiseEbuth: Bien sûr. Tu payes combien ?

Alshock: Uber Eat, Deliveroo, Amazon ?

Alshock: Attention, Jeff Bezos risque de faire main basse desssus

Default avatar.png Rakotoo: Ce que vous voulez

Default avatar.png Rakotoo: je suis pas difficile

Alshock: bah non c'est un puzzle moyen

Default avatar.png Rakotoo: Ahaha

Default avatar.png Rakotoo: bah pas a mes yeux

Default avatar.png TheNinjaSkull_6e96: le pauvre pariel qu on va avoir :/

Default avatar.png TheNinjaSkull_6e96: partiel*

Default avatar.png Rakotoo: On va mourir

BlaiseEbuth: Y'a pire

Default avatar.png Rakotoo: Ouai, comme loupé son année

BlaiseEbuth: Plus tu loupes, plus tu peux rester éloigné du terrible monde du dehors, en jouant à l'écolier.

Default avatar.png TheNinjaSkull_6e96: on vise juste la note positive en ce moment

Default avatar.png Rakotoo: C'est pas surper drôle de passer 5 ans en première année

BlaiseEbuth: Ah vous pouvez avoir des notes négatives ?

Default avatar.png Rakotoo: Bien sûr

Default avatar.png TheNinjaSkull_6e96: oui c'est la spécialité de notre promo

BlaiseEbuth: -12/20

Default avatar.png TheNinjaSkull_6e96: c'est presque ma moyenne

Default avatar.png TheNinjaSkull_6e96: mais on reste dans le premier quart

Default avatar.png Rakotoo: On est plus sur du -6 en moyenne de promo

Alshock: tiens en C++ les variables déclarées dans un do while sont hors scope dans la condition du while ?!

BlaiseEbuth: Qui utilise do while

Default avatar.png Rakotoo: C'est pas la question

Alshock: des gens bizarres, exclusivement

Default avatar.png TheNinjaSkull_6e96: :S

BlaiseEbuth: Bah est-ce qu'une variable déclarée dans un while est accessible dans la condition ?

BlaiseEbuth: Ou dans un for ?

Default avatar.png Rakotoo: Je demande a mon prof

Alshock: Je sais pas, je déclare jamais de variable dans une boucle moi d'habitude

Default avatar.png TheNinjaSkull_6e96: trop de level c'est pour ca

BlaiseEbuth: Ouai t'as toutes tes variables en global j'imagine...

Alshock: Mais comme l'init de la variable dans la condition du for est liée au scope du for je pensais que c'était pareil pour toutes et réciproque

Alshock: pourquoi c'est pas comme ça qu'il faut faire ?

BlaiseEbuth: Nein

BlaiseEbuth: Le for c'est special.

Alshock: Donc si je déclare une variable dans la condition du while, c'est dans le scope autour du while, j'ai bien compris ?

Default avatar.png Yass.O: jgomprend pas

Default avatar.png TheNinjaSkull_6e96: ecris la france déjà

Alshock: la france déjà

Default avatar.png Rakotoo: Oh Yassine fait un effort

Default avatar.png Yass.O: hum d'accord merci

BlaiseEbuth: Non. PArce que tu peux pas déclarer de variable dans la condition du while.

Alshock: oh zut je croyais que les déclarations avec définition etaient des expressions

Alshock: à tout moment je partais sur un while (test, int a = 1) :P

BlaiseEbuth: :expressionless:

Alshock: Je suis tellement chanceux que tu ne soi pas modo pour me ban

**BlaiseEbuth a inventé les bans à retardement.

**BlaiseEbuth espère qu'Alshock va le croire, et qu'il a ainsi contribué à rendre le monde meilleur.

Default avatar.png Rakotoo: salut

BlaiseEbuth: Quoi salut ?

Bryndye: quelquun a deja fait le probleme des temps avec les boucles? parce que je comprend r

BlaiseEbuth: Un problème de boucles temporelles ? :o

Bryndye: si ct que ca le probleme

BlaiseEbuth: Quel puzzle ?

Bryndye: je dois "trier" une suite de nombres et je dois garder au debut 1 et ensuite -5

BlaiseEbuth: Nan mais t'as pas un lien ?

Bryndye: https://www.codingame.com/ide/puzzle/temperatures

Bryndye: pardon

BlaiseEbuth: Ah température. Ok.

Bryndye: oui...

BlaiseEbuth: Et donc, qu'est-ce qui te pose souci ?

Bryndye: jarrive a recuperer le 1 mais ensuite jarrive pas a recup le 5 parce que c pas le plus grand des - et jsp comment on fait pour afficher toutes les reponses a la suite

BlaiseEbuth: On te demande une seule réponse.

BlaiseEbuth: Ton code est exécuté à chaque test.

Bryndye: mais comment je fais pour savoir a quel moment je dois afficher le + ou -

BlaiseEbuth: Comment ça "afficher + ou -" ?

Bryndye: le positif ou le negatif?

Alshock: tu dois toujours récupérer les N nombres qu'on te donne, et sortir l'indice du plus grand (si ma mémoire est bonne)

Alshock: ah non pardon les températures

Alshock: le plus petit, en privilégiant je sais plus quel signe

BlaiseEbuth: positif

leojean890: prendre le plus petit en valeur absolue et en cas d'égalité (par ex 5 vs -5) prendre le plus grand

Alshock: ou alors le plus petit x+0.5 en valeur absolue, avec des entiers ça marche aussi

Alshock: hum, x+0.1 plutôt, je veux pas créer une ambiguïté sur [-5, 4]

BlaiseEbuth: Stoi l'ambiguïté.

Bryndye: donc je dois trier tous les nombres en aboslue?

Mercy38: presque, il faut gérer n VS -n

leojean890: j'avoue pas mal l'astuce du +0.1

leojean890: on sent le golfer hehe

Mercy38: elle est en mode code golf non?

Alshock: c'est pas + c'est - vu qu'on prend le positif en priorité, mais tu sais moi et les signes...

leojean890: ce jeu fait partie des golfs proposés ici en effet;)

Default avatar.png Polipot: {

BlaiseEbuth: }

Default avatar.png Polipot: ptdr pardon j'ai pas fais exprès XD

Alshock: Vous faites du curling ?

Mercy38: merci, j'ai gagné 3 chars et 302 places avec le -.1 dans temperatures x)

BenPix: Bonsoir, est-ce que qqu'un sait comment gérer le timing dans les soumission ? J'ai pas exemple dans mon cas 1s. pour envoyer ma réponse, donc je lance un timer au tout début du code, mais quand j'arrive après la réception des données du puzzle, mon timer est déjà à 2 secondes... Donc où est-ce qu'on déclenche le timer ?

Alshock: jsute après la lecture des inputs

BenPix: d'accord, et ça peut importe le traitement qu'on fait pendant la réception de certains inputs ?

Alshock: euh si t'as un traitement long, lance le après la lecture du premier input, l'important étant que tu ne fasses pas tourner ta clock pendant le temps du referee

BenPix: bon à savoir ça, du coup on peut profiter du système, merci bcp ;)

Alshock: tu ne peux pas (tellement) profiter du système, tu peux juste ne pas t'arnaquer toi-même la durée de ton tour

leojean890: ni arnaquer le referee en dépassant le temps;)

Alshock: je précise que ton timer côté referee est lancé dès qu'il unfreeze ton programme, si tu t'amuses à faire plein de trucs entre l'output (moment où t'es frozen) et l'input suivant (moment où tu sais que t'es plus frozen) tu vas y perdre du temps mais tu pourras pas mesurer combien

Alshock: <= Toutes ces données sont à prendre avec des pincettes marce que moi je sais surtout que je ne sais rien

BenPix: ça aide un peu, tu peux économiser qques millisecondes en faisant un traitement qui n'a pas besoin du dernier input

Alshock: Mais je sais un truc : tenter d'arnaquer du temps au referee est une mauvaise idée

BenPix: d'accord, donc il ne faut pas en abuser

BenPix: merci de l'info en tout cas, c'est utile

leojean890: ouais tu peux pas print au milieu de ton minmax et faire plein de break je crois

Alshock: Yep, c'est une illusion. En gros la lecture du premier input est le moment où TOI tu es sûr d'être lancé, mais tout le temps passé dans ton programme est compté par le referee

leojean890: les break seront considérés dans le tour suivant je pense si t'es freeze

Alshock: faire plein de break ?

BlaiseEbuth: break dance

leojean890: bah si t'es depth 6

leojean890: tu fais un iterative deepening

leojean890: tu valides ta depth 5 tu la print direct

leojean890: car tu timeout au milieu de ta 6

leojean890: du coup faut break

leojean890: pour sortir de ton bourbier qui va depth 6

leojean890: qui prend trop de temps

Alshock: ah genre au lieu de rétropédaler quand tu vois que t'as pas le temps, tu stockes l'output de la depth d'avant ok je vois

leojean890: ouais le minmax en iterative deepening c'est pas mal pour avoir un résultat carré

Alshock: cout << sqrt(minmax(ID))

leojean890: si tu break au milieu avec depth fixe car temps écoulé c'est moins carré

BenPix: c'est marrant, je comprend rien à ce que vous dites :'D

Alshock: quand on fait une eval dont on n'est pas trop sûr, c'est mieux de l'injecter dans un MCTS pour niveller les sorties qu'elle peut donner ou de la mettre dans un minimax au risque qu'il prune tout ce qui n'est pas très bien eval ?

Zorg1: tkt eux non plus c'est la magie d'internet :p

Alshock: genre dans le concept j'aurais dit qu'un résultat faux sera "moyenné" par les résultats aux couches suivantes dans un MCTS, mais je sais pas si c'est pertinent.

Alshock: Zorg1 C'est terriblement vrai, mais est-ce internet ou l'humanité ça ?

pardouin: et hop j'arrive et ça parle de golf

pardouin: :)

leojean890: les trucs que je dis sur le minmax c'est pas hyper compliqué c'est pas la magie d'internet^^

Zorg1: Alshock : le truc d'internet c'est de réinventer des trucs qui sont là depuis la nuit des temps

Alshock: Comment est ta Chuck Norris pardouin ?

leojean890: le truc compliqué c'est de faire des perfs et des évals de ouf

pardouin: je me suis fait voler sauvagement ma première place python :(

pardouin: merci de remuer le couteau dans la plaie

pardouin: et toujours pas compris comment C peut être aussi efficace ^^

leojean890: arf, mais tu restes laargement au dessus de moi hehe

leojean890: c'est d'ailleurs toi qui m'a le plus appris d'astuces de golf ici

leojean890: d'autres aussi sur le chat + des sites web

leojean890: mais toi plus

pardouin: j'ai vu un truc dernièrement, on peut récup tous les inputs en même temps avec open(0)

Stilgart: pardouin: je ne suis donc pas le seul à être traumatisé par ça :)

Stilgart: \o/

Alshock: TATATETATATA

Stilgart: oui, le 55 en C n'est pas crédible

Alshock: On ne parle pas d'horreurs en C T-T

pardouin: mais pas trouvé comment l'exploiter dans les 4 puzzles

pardouin: mais sur des CoC ça peut être super pratique

leojean890: open(0) en python ?

pardouin: quand tous les inputs sont donnés en colonne

pardouin: oui

Alshock: non en C ils ont dit

leojean890: je connaissais pas

Alshock: ah pardon

leojean890: en C ils disaient autre chose

Stilgart: j'avais compris en C moi

leojean890: ils parlaient du 55 chars

Alshock: si je comprends pas les conversation qui se chevauchent pourquoi je continue à vous lire

pardouin: le 55 chars j'ai aucune idée de comment ils font

Stilgart: fais semblant de comprendre, comme moi ;)

leojean890: si qqn savait comment ils font.. il aurait également 55 chars

Stilgart: pardouin: j'ai trop cherché... et ça doit être complétement pété vu que c'est pas le C qui domine ailleurs

Alshock: hum oui tout à fait d'ailleurs j'hésite à atteindre les 32 chars avec un recuit simulé...

Alshock: hey sans blague, rendu à des tailles de code aussi ridicules on peut pas commencer à tester toutes les combinaisons de caractères possibles ?

Alshock: hum dans les 50^30 nan ok encore trop gros

Stilgart: avec suffisamment de chaleur, tu peux faire entrer les chars en fusion donc baisser ton score, main

Stilgart: malin!

Stilgart: Alshock: non, pas vraiment

pardouin: (leojean fais-toi un testcase custom sur un puzzle, et mets que des entiers en colonne en input, et fais for a in map(int, open(0)): print(a)

Alshock: les chars en état superposé, si quelqu'un zieute ma solution elle devient fausse

Stilgart: le soucis, c'est que à cette taille, le code est potentiellement non déterministe

Alshock: ah putain merde les soluces qui passent une fois sur 100

Stilgart: donc il ne suffit pas de le tester pour savoir s'il a une bonne proba de passer tous les tests

Stilgart: voilà

Alshock: vous devriez être envoyés au neuvième cercle pour ça

Alshock: mais si tu isoles juste tout ce qui ne bug pas, t'as une quantité déjà bien moins astronomique de codes à tester

Alshock: buguer syntaxiquement j'entends

Alshock: en plus tu peux le garder pour tous les Golfs hyper courts "la liste de tous les programmes pythons valide de moins de X chars"

leojean890: pardouin j'avoue je devrais tester, mais je te crois sur parole^^tu réussis souvent à l'exploiter efficacement en coc ?

leojean890: ça t'évite d'écrire plusieurs fois input() (sinon on fait f=input;f() ce qui fait gagner quelques chars souvent)

pardouin: j'ai pas fait de CoC depuis des mois

leojean890: pareil mdr

leojean890: trop répétitif

leojean890: j'étais #280 quand j'en ai enchainé qq uns avec bons classements et je suis mtn 2800 ca r j'en fais plus

leojean890: toi t'étais 50eme non ?

leojean890: j'en referai surement un jour

leojean890: j'en ai fait une 50aine en tout

pardouin: il y a que temperature où le open(0) aurait pu être pas mal pour tout récup d'un coup mais j'ai rien trouvé de concluant

leojean890: car t'as que des entiers

leojean890: tu map direct

Stilgart: Alshock: il reste un autre pb

Stilgart: d'après ce que j'ai compris, la solution de dbdr utilise une fonction non documentée

pardouin: en fait ça te renvoit un truc de la forme ['premiere ligne', 'deuxieme ligne'] donc c'est un peu plus merdique que ça

Stilgart: donc potentiellement inexistante sur ma machine

leojean890: j'hésite à continuer mon BOTG qui est 35/201 bronze lol

Stilgart: may hulk's power be with you

leojean890: ah ouais dbdr a décompilé GCC ;)

Stilgart: +celui de CG

leojean890: je connais un gars qui a décompilé gcc et a trouvé des bugs et fait des bug reports lol

leojean890: faut être chaud quand même;)

Stilgart: bah, si tu veux prouver un bug, tu n'as pas trop le choix en fait

leojean890: le gcc de cg j'ai même pas regardé quelle version c'est

Stilgart: dans gcc, c'est pas du bug de tous les jours que tu trouves

leojean890: faut être déter pour faire ça

Stilgart: parfois, j'ai l'impression que c'est clang et pas gcc, soit dit au passage

Stilgart: (mais c'est qu'une impression)

leojean890: comment dbdr aurait fait pour décompiler explicitement celui de CG ?

leojean890: en gros regarder dans la FAQ quel est lecompilo

leojean890: le récup en local

Stilgart: ide -> bash -> enjoy

leojean890: et fouiller et trouver une fonction non documentée

pardouin: initialement ascii est sur 7 bits donc il doit y avoir moyen de jouer directement avec

leojean890: ah ouais ['premiere ligne', 'deuxieme ligne'] c'est pas oue en effet, ça te force à faire un parcours de plus donc ça n'économise pas forcément les chars

Stilgart: après, s'il a fait ce que je pense, il a juste objdump les symboles d'un binaire quelconque et trouver une fonction magique

pardouin: mais bon il faudrait un truc sacrément court pour compenser la lourdeur générale du C

Stilgart: open est bloqué ? pas grave, la vraie fonction c'est __open

Stilgart: main ? c'est pour les faibles, le point d'entrée c'est __start

Stilgart: etc.

Stilgart: pardouin: c'est pas du C

Stilgart: ça serait du perl (?) lancé efficacement en C

pardouin: mais pourquoi pas en bash directement ?

leojean890: ok, il est chaud quoi xD

Stilgart: et une magie rentable uniquement sur CN ferait que le code en perl (?) est plus court dans une chaine C que dans l'IDE

Alshock: __start c'est quoi ? Un label ?

Stilgart: pardouin: ça fait genre ~2 ans que je cherche

Stilgart: c'est le vrai truc lancé à l'execution

BlaiseEbuth: label et la bête

Stilgart: celui qui prépare la pile avant d'appeler main

Stilgart: et qui gère le code de retour de main en fin de programme

Alshock: ah oui c'est juste pour chercher des bugs ou comportements intéressants, je comprenais pas comment tu gagnais des chars avec un nom plus long xD

pardouin: tu veux dire que par exemple il redirige via une fonction quelconque (modulaire?) une donnée de l'input vers un binaire qui donnerait exactement l'output souhaité en remplaçant les 1 par des espaces par ex ?

Stilgart: bah, si __exec ça lance perl par défaut... c'est plus rapide que exec("","perl",

Stilgart: un binaire, une fonction, j'en sais rien

Stilgart: je soupçonne qu'une partie de la ruse consiste à stocker le programme en unicode...

Stilgart: mais que le programme en face le lit en ascii => taille divisée par 2 dans le code C

pardouin: oui mais ça c'est classique

Stilgart: à stocker le **code solution**

Stilgart: si j'appelle tout programme, c'est pas compréhensible :/

Alshock: c'est classique des raisons pour lesquelles le glof c'est de la merde surtout

pardouin: et généralement c'est ruby le champion de ça

leojean890: classique ? tu le fais dans des golfs sur CG ça pardouin ?^^

Stilgart: sauf que je sais pas faire ça en C

leojean890: genre en ruby

pardouin: ruby, js, python

Stilgart: et obtenir un code ascii valide à l'autre bout

Stilgart: donc coté perl (ou ruby? )

Stilgart: (ou lua?)

Stilgart: (ou bash?)

pardouin: je le fais oui mais le tradeoff est 25 chars donc il faut que ton script fasse 52+ chars pour que ce soit rentable

leojean890: tu le fais dans ton CN python js et ruby en gros ?

pardouin: oui

Stilgart: putain... mais pourquoi google me dit pas comment on fait dans ce cas ?

pardouin: cn et dp, les autres sont trop courts

leojean890: ok, je connaissais pas avant que t'en parles^^

leojean890: que vous en parliez

leojean890: l'astuce de mettre le prgrm en unicode

pardouin: ben on en parlait pas trop avant mais les gens se mettent à l'utiliser à fond en CoC et à share les solutions

Stilgart: bah, je comprends la théorie... mais en pratique ça marche pas chez moi

pardouin: donc maintenant tout le monde est au courant

leojean890: en gros tradeoff de 25 chars car la fonction pour mettre en ascii fait 25 chars ?

Stilgart: et google ne m'a pas aidé (j'ai pourtant fouillé plusieurs fois)

pardouin: en python et JS c'est 26 chars

leojean890: d'accord, je fais pas assez de COC pour avoir vu ça en tout cas, faudrait que je teste

leojean890: avoir vu ça dans les shared solutions

pardouin: je peux vous donner le python il a été tellement partagé que c'est plus franchement un secret

leojean890: c'est une méthode qui transforme l'unicode en gros ?

pardouin: exec(bytes('truc converti illisible','u16')[2:])

pardouin: il y a même un type qui a fait une contribu sur ça -_-

leojean890: ah les 2 premiers chars ne sont pas à utiliser

pardouin: c'est le DOM

pardouin: si tu précises utf16-le ou utf16-be tu n'as pas à virer les 2 premiers mais c'est plus long

leojean890: quand j'ai jeté un coup d'oeil sur des sites de tips de golfing je n'ai jamais vu celui-ci

Stilgart: bytes dans un exec...

Stilgart: au moins, c'est une vraie piste ça

Stilgart: cela dit [2:] c'est pas valide si ?

leojean890: convertir code_ecrit_en_ascii en unicode puis mettre ça là dedans

BlaiseEbuth: Pourquoi pas valide ?

leojean890: [2:] ça marche sur pas mal de types de données

leojean890: sur un bytes je l'ignorais

leojean890: mais ok

BlaiseEbuth: Tout ça est très crade. Je me sens sale rien que de vous lire...

leojean890: hehe

leojean890: ça s'écrit pas de la même façon;)

pardouin: pour générer le truc encodé tu fais par ex print("""print("Hello World")""".encode().decode("u16"))

pardouin: ensuite teste exec(bytes("牰湩⡴䠢汥潬圠牯摬⤢","u16")[2:]) tu verras ça marche bien

BlaiseEbuth: Y'avais pas de jeu de mot foireux avec bytes, je parlais de vos codes...

leojean890: un mec qui a fait ça en contrib c abusé n'empêche^^

pardouin: enfin bref tout ça ne nous en dit pas plus sur ce 55 chars

Stilgart: ha mais c'est du python....

pardouin: oui

leojean890: mouais mouais BlaiseEbuth hehe

pardouin: en C j'ai rien trouvé de très probant

BlaiseEbuth: M'accuses pas pour ton esprit tordu leojean890

leojean890: pardouin d'accord thanks je voulais faire le test avec un site web qui convertit ascii en unicode

leojean890: mais avec la fct que tu proposes ça va encore plus vite

leojean890: Blaise mouais mouais mouais !

pardouin: bon à plus :)

leojean890: good night

leojean890: (ou bon appétit)

pardouin: j'ai des couches à étendre ^^

leojean890: ah oui jeune père ^^

leojean890: en effet 165 chars => 108 chars à CN grâce à cette astuce => abusay ;)

Stilgart: trichay surtout

leojean890: klr

Stilgart: et encore une fois, ça ne nous dit pas comment le faire en C ni pourquoi ça marche que sur CN

leojean890: c'est vraiment hyper cheat comme astuce je trouve

leojean890: ouais en C on sait pas s'il s'y prend ainsi

leojean890: ou si c'est autre chose

leojean890: dans tous les cas c'est une bonne énigme

leojean890: don't panic 117 chars au lieu de 184..

Stilgart: déjà, le [2] me donne des pistes

leojean890: t'essayes de trouver comment faire ça en C ?

Stilgart: c'est un premier pas

leojean890: d'ailleurs si on a un nombre impair de chars ça ne marche pas faut ajouter un espace :P je comprends, c'est parce que 2 carac sont combinés en 1 ..

dwarfie: bof , don't panic je reste devant avec 86 sans etre aussi sale :p

leojean890: gg;p

leojean890: python ?

leojean890: c'est tellement fort et abusé comme astuce

dwarfie: oui ... et 100 pour cn en restant propre

leojean890: si t'utilises ça tu passes à 75 quoi

leojean890: comme moi sur thor

leojean890: 99 => 75

dwarfie: a voir , j'etais a 89

leojean890: nbChar/2 + 25

leojean890: ou (nbChar+1)/2 + 25 si nbChar impair

leojean890: t'y gagnes quand même un peu

Alshock: J'en ai maaaaaarreuuuuuh

Alshock: d'êêêêêtreuuuh coooooon !

Alshock: Ahem, ça va vous ?`

philRG: tant que tu n'es pas vieux ça va

philRG: mieux vaut être con que vieux

dwarfie: 67 mais marche pas ...

leojean890: mets un espace entre ton avant dernier et dernier char

pardouin: si tu as un \n il faut l'escape en \\n

leojean890: ah tiens j'avais pas de \n

leojean890: du coup

leojean890: j'ai convert les 4..

leojean890: pardouin qui m'aura presque tout appris en golf :P

dwarfie: 70

pardouin: moi pour temperature et thor ça change rien

leojean890: temperature et thor ça change pour moi j'étais pas assez haut

leojean890: enfin pas de bcp

leojean890: pour températures

dwarfie: 75 a cn , ca merite de creuser un peu plus :p

leojean890: et toi tu m'avais appris les astuces en js, dwarfie ;p

leojean890: pardouin en python

Bryndye: je tente dafficher un texte en ASCII jai jamais fais ca, comment je dois my prendre?

Stilgart: dwarfie: c'est carrément 20 de trop

pardouin: Stilgart c'est quoi ton truc de __exec qui lance perl par défaut?

leojean890: ce n'était qu'un exemple, non ?

leojean890: une piste à creuser je veux dire

leojean890: astuce de gagner qq chars en en perdant 2 mais en gagnant plus grâce à la valeur par défaut

Bryndye: on peut maider pour afficher du ASCII svp? https://www.codingame.com/ide/puzzle/ascii-art

pardouin: quel language ?

Bryndye: c#

pardouin: mais là on te demande juste d'afficher des "#"

pardouin: aucune connaissance en ascii n'est requise

Bryndye: jai tjrs pas capte ce que je dosi faire

pardouin: on te donne un alphabet

pardouin: il faut que tu print le texte demandé en utilisant cet akphabet

pardouin: alpha*

Bryndye: ok mais je vois pas comment

pardouin: clique sur l'icone en haut à droite de la fenetre test, tu verras ce qui est attendu

pardouin: il faut que tu découpes l'entrée et que tu stockes tout proprement, c'est la partie pénible

leojean890: quand tu lances un test ça t'affiche ce qui devrait être envoyé au referee

leojean890: ça te fait comprendre ce que tu devrais coder

Bryndye: le seul truc que jai compris c que je dois afficher E mais jsp comment print

Bryndye: comment print le E en ASCII

leojean890: http://chat.codingame.com/pastebin/efa62190-794f-4feb-9664-33d27e08acd2

leojean890: un truc du genre mais en te basant sur les templates proposés dans l'énoncé

leojean890: templates de lettres que tu reçois en input

Bryndye: je dois faire ca? genre juste ca?

Bryndye: y a pas plus opti?

leojean890: ouais mais ce sont les templates qui te disent quelle est la taille de chaque branche de ton E par ex

leojean890: faut que tu read les templates et que tu print en fonction

Bryndye: jai pas compris dsl :sweat_smile: les template c dans lexo a gauche?

leojean890: tu les reçois dans les inputs

Bryndye: c quoi les inputs? je vois ca ou?

leojean890: affiche tes inputs ligne par ligne dans la console dans la sortie d'erreurs

leojean890: tu verras ce que le referee te donne

leojean890: les inputs c'est ce que le programme referee t'envoie comme infos

leojean890: le code par défaut les lit tous

leojean890: toi tu peux les afficher ensuite

leojean890: juste pour les comprendre

Bryndye: comment jarrive a garder juste une lettre dans cette alphabet?

leojean890: avec des slicers en python, mais t'es en C# ?

Bryndye: oui

leojean890: euh je connais pas c# mais je pense que tu peux faire tab[5] + tab[6] + ..

leojean890: for (int i = 5 ; i<10;++i) chaine += tab[i]

leojean890: si une lettre est entre la colonne 5 et 9

Bryndye: mais la H dans mon for c la hauteur

Bryndye: ou alors jai pas capte

leojean890: voilà, j'ai donné un exemple avec 5 et 10

leojean890: mais en effet faut utiliser les variables de l'énoncé à la place

Bryndye: jsuis tjrs perdu

leojean890: et je connais pas c# il y a peut être une syntaxe plus sympa

Default avatar.png Polipot: Ne t'inquiète pas, mon petit

Default avatar.png Polipot: Tu n'es pas perdu pour toujours

leojean890: http://chat.codingame.com/pastebin/c4f5a1f7-df64-4c2a-b4b7-c7cd05e20d42

leojean890: un truc du genre pour récupérer pour chaque ligne seulement les colonnes qui t'intéressent

leojean890: pour ta lettre donnée

Bryndye: AH! je dois recup une fourchette sur la longueur et largeur? pour recup la lettre?

leojean890: ouais

leojean890: entre numLettre*largeurLettre et (numLettre+1)*largeurLettre

leojean890: ça te fait récupérer pile la largeur de la lettre à l'endroit que tu veux

leojean890: endroit étant numLettre

Bryndye: jai envie de pleurer c trop complique la xD

leojean890: ça va encore faut juste faire attention aux indices^^

Bryndye: je les comprend pas

leojean890: aux indices parmi les strings qui correspondent aux lettres je veux dire

leojean890: l'étape d'avant c'est convertir tes lettres en nombres

leojean890: genre 'a' => 1

Default avatar.png SefioR13: Merci tu gères pour tes explications !

leojean890: ensuite tu sais om aller chercher A dans le tableau

leojean890: où*

leojean890: vous faites l'exo ensemble vous 2 ?

Bryndye: je dois stock les lettres ?

Bryndye: bordel jy comprend r c un truc de base je comprend oas

leojean890: convertir les lettres en l'indice correspondant de chaque lettre

leojean890: dans le tableau

Default avatar.png SefioR13: Non pas du tout mais j'avais où la flemme de me casser la tête sur cet exo mais tu viens de me montrer que c'était un peu plus simple que ce que je pensais

leojean890: d'accord, ouais cet exo est assez simple

Bryndye: everyobe: "assez simple" me: has left the room

leojean890: tu fais un truc comme ça en python pour convertir : c = ord(carac)-65

leojean890: et tu remplis ton output ainsi

leojean890: for hauteur in range(h):

     out[hauteur]+=letters[hauteur][c*l:l*(c+1)]

Default avatar.png SefioR13: C'est bon pour moi merci !

leojean890: you're welcome^^

Bryndye: merci davoir tente de maider mais jabandonne

leojean890: Bryndye t'as pas l'habitude de ce genre de code non ?

Bryndye: ca va faire 1h que je suis dessus et tjrs r

leojean890: en tout cas je t'ai copié collé le code utile :P

Stilgart: bon... je comprends pas comment je suis passé à coté...

**Stilgart obligé de le submit pour le prouver...

Stilgart: 56 en C

dwarfie: arf ...

Stilgart: hint, le [2] ça sert à rien en C

Stilgart: et pour aider dwarfie, j'ai 55.5 chars

**dwarfie tend un floor a Stilgart ;)

Stilgart: marche pas... ça met des ? à la place des 00

Stilgart: mais je l'ai tentée :D

firas: bonsoir Probleme Onboarding :je comprends pas ; qu'est ce que je dois faire en terme et traitement , (l'input c'est juste enemy 1 et 2 ??) et l'output doit etre quoi exact

leojean890: gg Stilgart hehe

firas: pardon ?

leojean890: 2 ans après ^^

firas: :)

firas: c'est resolu :p

Stilgart: leojean890: le traumastisme va rester... je pige pas pourquoi ça n'avait pas marché à mon dernier essai

leojean890: t'avais essayé la même chose environ ?

leojean890: du coup te manque 1 char encore

leojean890: donc sans utiliser unicode ?:P

Stilgart: mon dernier essai = il y a qqs mois quand j'ai eu la bonne idée

pardouin: du pur C ou du perl ?

Stilgart: c'est pas du perl

Stilgart: je sais golfer que en sh moi

pardouin: et tu fais ton decoding en C

Stilgart: oui

Stilgart: c'est ça l'arnaque...

pardouin: est-ce que tu peux juste me dire combien de char C tu as si tu retires le string que tu executes ?

Stilgart: plus le fait que c'est applicable au moins aussi sur don't panic

Stilgart: 20

pardouin: ok donc plus intéressant que le 25 de python et ruby

pardouin: je pige mieux

Stilgart: oui, je comprends pas pourquoi ça n'a été appliqué que sur CN

leojean890: t'as l'air très chaud en bash hehe

Stilgart: et encore, j'arrive pas à la cheville de dwarfie

leojean890: je vois^^

leojean890: il avait l'air de gérer une fois quand on a discuté de ça

pardouin: sed et awk j'imagine

leojean890: ouais j'avais un tuteur de stage super bon en awk et j'ai un peu appis.. puis oublié^^mais ça peut être puissant:)

leojean890: appris*

Stilgart: mon avis sur awk

Stilgart: soit c'est faisable avec sed, soit c'est pas un truc à coder en shell

Stilgart: :)

leojean890: ah donc sed est plus puissant que awk ;)

Stilgart: non, sed est strictement inférieur à awk (hors abusation)

leojean890: ah;) j'ai interprété ta phrase d'avant comme le contraire^^

Stilgart: sed est "turing complet" en un certain sens

Stilgart: c'est un soit exclusif

leojean890: ah ok

Stilgart: soit c'est suffisamment simple et je le fais en sed, soit je code en C/Haskell/pas awk

pardouin: 58 :)

leojean890: tiens un autre bon en bash hehe

pardouin: en partant d'une base perl moisie de 76

leojean890: tu gères bien dans pas mal de langages, non ?:P

pardouin: en golf surtout python, js, ruby et perl

leojean890: I see

pardouin: 55 ça veut dire une base de 70 c'est tendu

leojean890: jamais essayé ruby de ma vie

leojean890: perl et js pas énormément

leojean890: mais un peu

pardouin: ruby et perl tu peux mettre des shebang pour automatiser les entrées sorties c'est assez rigolo

leojean890: comment ça ?

leojean890: tu peux mettre un shebang bash par ex ?

pardouin: exemple pmon perl temperatur commence comme ça:

  1. !perl -pa

leojean890: je vais regarder ce que ça fait^^

pardouin: a c'est autosplit et p ça insere ton script automatiquement dans une boucle d'entree sortie

pardouin: du coup tu recupere tes entrees splitees sans rien faire

leojean890: ah ouais nice ! je savais pas qu'on pouvait faire ça^^

pardouin: et à la fin le truc stocké dans $\ est print automatiquement

leojean890: j'ai regardé vite fait le perl mais sans aller aussi loin que ça

leojean890: faudrait que j'essaie d'utiliser ça

**darkhorse64 va perdre un wagon de places avec tout ce déballage

pardouin: j'ai amélioré mon temperature C XD

dwarfie: effectivement Stilgart ... 55.5 :D

leojean890: darkhorse64 hehe t'avais les astuces depuis un bail ?;) bah je pense qu'il y a pas tant de monde que ça qui lit le chat donc ça n'aura pas un impact conséquent ?;P

leojean890: bah alors et les 0.5 qui manquent.. allez allez faut se motiver hehe

**Stilgart regarde son BotG

Stilgart: motivation reçoit un coup critique

darkhorse64: Je plaisante. Le coup de l'unicode pour python et js, je savais le faire. Pour ruby, je ne connais pas. Perl, bash, terra incognita

leojean890: Stilgart BOTG mdr moi je suis 35 bronze ça peut pas être pire hehe

leojean890: unicode en js faudrait que je regarde je ne connais pas:p

leojean890: j'sais pas si je vais avoir envie de reprendre botg ou pas

darkhorse64: Pas mieux, je n'arrive pas à me motiver. J'ai trouvé un site qui te fait l'encoding et te sort le code direct

Stilgart: leojean890: j'ai pas la prétention de dire que j'ai mieux, malgré mon high silver

leojean890: high silver, c'est sûrement mieux que moi oui xD

Stilgart: je crois pas trop

leojean890: même si y'a tjr des gens plus hauts^^

Stilgart: ça m'a l'air d'être une grosse mélasse opportuniste

Stilgart: je sais plus trop comment je suis passé silver...

leojean890: darkhorse64 ouais il te convertit le code, moi il me reste à trouver comment le convertir dans l'autre sens en js^^

darkhorse64: Il te pond aussi le code de décodage

leojean890: ouais des mélasses de if.. parfois ça marche ! j'ai un code of ice and fire poussé en bottom gold avec des trucs un peu moyen genre foret de if

darkhorse64: Javascript code golfer

leojean890: darkhorse64 ah sympa mdr faudrait que je cherche ça ^^

darkhorse64: Ca tue un peu le métier

leojean890: le truc qui te grille toutes les étapes

darkhorse64: Si tu n'as pas déjà un code assez court, ça ne va pas te mettre dans le top

**Stilgart va redemander la double ligue

leojean890: en python ça a bien aidé :p

Stilgart: legit + free for all

Stilgart: parce que bon, je suis pas fier d'avoir pusher mon 56 à CN en C :/

leojean890: pas non plus dans le top en effet mais ça fait monter petit à petit au fur et à mesure qu'on a des tips

Stilgart: je l'ai fais que pour signaler la fin d'une ère

leojean890: la fin de l'ère où le 55 domine de bcp hehe

leojean890: bah dwarfie et pardouin sont bien montés aussi là avec ça

Sakisan: c'est quoi le soucis, pourquoi c'est la fin xd

leojean890: bah y'avait une ère de grande domination et mtn c'est serré

Sakisan: ahh je vois

Sakisan: en haskell on se fait encore dominer par contre, tu vas rectifier ça aussi? :p

Stilgart: on m'a fait croire en des choses qui n'existent pas

Stilgart: mais maintenant je connais la vérité

Stilgart: non

Stilgart: en haskell je suis #1

Stilgart: à la limite, je peux croire que les codes de tarapitha et Sakisan

Stilgart: (même si j'ai des doutes sur le 1er)

kayou: bonsoir

Stilgart: +soient legit

Stilgart: Sakisan: tu confirmes ?

Sakisan: le mien est legit oui

Stilgart: mais 120 j'y crois déjà plus

pardouin: j'ai un potentiel DP 55 random

pardouin: je sais pas si je vais me motiver il a genre une chance sur 400 de passer

pardouin: bon allez cia

pardouin: o

Stilgart: Detective Pikaptcha 55... gg :)

leojean890: mdr faut se motiver ouais submit 400 fois goooo

Sakisan: et de 128 -> 127 ^^

Stilgart: plus que 72

Suez17: qui a résolution l'exercice Bender ?

Suez17: résolu

Default avatar.png JBM: houla ça cause ici, qu'est-ce qui vous prend

Suez17: lool

Default avatar.png JBM: trop drole

leojean890: Suez17 il y a plusieurs bender, le 4 étant le plus difficile de loin ;)

Suez17: ah oui c'est le 1

Suez17: en fait je suis bloqué à la partie où il faut déterminer si la trajectoire de Bender est une bouble infinie

leojean890: ah ouais j'ai triché à fond ici

leojean890: "if taille chemin > très grand nombre, return LOOP"

leojean890: mais sinon tu peux détecter des loops si t'as pas la flemme

leojean890: juste en repérant des suites de moves / locations identiques

Suez17: haha sérieux ? perso j'ai fait un cheat aussi, je suis en java et en gros je catch l'erreur OutOfMemoryError si on est dans une boucle infinie pour afficher LOOP

leojean890: mdr

Suez17: ce qu'il ne faut évidemment pas faire

leojean890: pas mal ça aussi^^

leojean890: bah ouais c'est bad practice xD

leojean890: mais c'est marrant à lire;)

Suez17: :D

Suez17: ah oui les suites de moves

leojean890: comme mon if nb Iterations > seuil

leojean890: c'est du hardcode quoi c'est pas top

Suez17: mais en gros on dois définir un seuil arbitraire, ce qui est dérangeant non ?

leojean890: mais ouais clairement tu regardes si t'as une suite de moves qui revient ^^

leojean890: détection de substrings

leojean890: ouais arbitraire, d'où le terme hardcode ^^

leojean890: c'est de la bad practice car c'est contourner le problème au lieu de le résoudre dans les règles;)

Suez17: j'y ai pensé mais admettons que tu passes 5 fois par le même chemin c'est peut-être que le chemin est complexe mais tu n'est pas forcément dans une boucle infinie, ou je me trompe :unamused:

Suez17: ah oui je vois

Stilgart: ça parle de quel puzzle ?

Suez17: Bender 1

Suez17: Déterminer le cas LOOP

Stilgart: si c'est celui où on se balade en buvant des bières, l'état de jeu est codé par 2 entiers (les coords) et une poignées de booléens

Suez17: oui c'est celui-là

Stilgart: c'est donc pas si dur de stocker tous les états déjà visités, et de détecter si on retombe dans un état déjà vu (=> LOOP)

Stilgart: http://chat.codingame.com/pastebin/23997d9e-dadf-4501-9f60-1bdf530ac7eb

Stilgart: donc 2 entiers, 1 dir (donc un 2e entier), et 2 bool

leojean890: oui c'est la méthode carrée ça; le hashing d'un state

leojean890: stocker le state complet (pas que la pos)

leojean890: et si on retombe dessus c'est clairement une loop

Stilgart: ça tient très large dans un uint64_t

leojean890: state pas hyper gros ouais

Stilgart: mais même avec un gros struct ça passe sans soucis

Stilgart: (vu que c'est ce que je fais :) )

Suez17: ah je vois

Suez17: si on est déjà eu un même était c'est forcément qu'on est dans un cas de boucle infinie en gros

Suez17: on a déjà eu un même état*

Suez17: ok merci je vais voir ça

Stilgart: voilà

leojean890: même état ça implique que ça va évoluer pareil