Chat:Fr/2021-03-16
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
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
ALLAOUA: Quelqu'un aurait fait le puzzle de la semaine ?
BlaiseEbuth: 37 personnes, oui.
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.
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.
ALLAOUA: j'ai compris comment faire
BlaiseEbuth: Pas de souci.
BlaiseEbuth: Ouai, on se marre bien.
Zorg1: c'est la grosse déconnade ici on dirait :D
BlaiseEbuth: Comme toujours. Joie. Bonheur.
RustySconeOfWisdom_ea0e: Yo les pote
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
Rakotoo: aidez nous pour power of thor 1 !
Josephtulaferme: bonjour
Bon[]Crayon: Quel est votre problème ?
Bon[]Crayon: salut
Rakotoo: Salut, on sait pas comment faire pour l'angle facile
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:
TheNinjaSkull_6e96: On avait pas vu merci beaucoup
dwarfie: et oui ... ce scandale d'y mettre la solution ...
Bon[]Crayon: C'est trop !
Rakotoo: Merci beaucoup ! :heart:
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:
Rakotoo: Mars Lander c'est chaud
dwarfie: meme pas vrai ... il fait froid sur mars
Bon[]Crayon: 20°c max
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 ...
TheNinjaSkull_6e96: go polluer mars
Rakotoo: Avant d'y aller, aidez nous a y atterir dans l'ep 1
Bon[]Crayon: Il faut faire des tests.
Rakotoo: On test mais on y arrive pas...
Bon[]Crayon: Il faut faire des tests avec différentes valeurs pour power.
Rakotoo: Ok merci, on va essayer
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:
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é"
Rakotoo: Mars Lander 2, we need help
Bob: rajoute des ifs
Alshock: ah ah ah ouais tu t'es engagé dans du lourd là
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
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
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*
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
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
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.
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à
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
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
Rakotoo: je suis pas difficile
Alshock: bah non c'est un puzzle moyen
TheNinjaSkull_6e96: le pauvre pariel qu on va avoir :/
BlaiseEbuth: Y'a pire
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.
TheNinjaSkull_6e96: on vise juste la note positive en ce moment
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 ?
TheNinjaSkull_6e96: oui c'est la spécialité de notre promo
BlaiseEbuth: -12/20
TheNinjaSkull_6e96: c'est presque ma moyenne
TheNinjaSkull_6e96: mais on reste dans le premier quart
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
Rakotoo: C'est pas la question
Alshock: des gens bizarres, exclusivement
BlaiseEbuth: Bah est-ce qu'une variable déclarée dans un while est accessible dans la condition ?
BlaiseEbuth: Ou dans un for ?
Rakotoo: Je demande a mon prof
Alshock: Je sais pas, je déclare jamais de variable dans une boucle moi d'habitude
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 ?
TheNinjaSkull_6e96: ecris la france déjà
Alshock: la france déjà
Rakotoo: Oh Yassine fait un effort
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.
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;)
BlaiseEbuth: }
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
Polipot: Ne t'inquiète pas, mon petit
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
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
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)]
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:
- !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
JBM: houla ça cause ici, qu'est-ce qui vous prend
Suez17: lool
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