Chat:Fr/2021-04-09

From CG community
Jump to navigation Jump to search

dbdr: jfaixo tu as cassé un truc?

jfaixo: haha oui dbdr, j'ai push ce que j'avais fait en essayant de jouer avec mon eval et jouer avec les 42 paramètres d'entrée, et bon, c'est pas un franc succès

jfaixo: me suis perdu hier, j'avais une roadmap de trucs a ajouter sur mon bot, et au lieu de m'en tenir au plan j'ai tenté de le tweaker, mauvaise idée x)

Alshock: be clever, don't try to be

Zorg1: c'est classique ça le tuning de magic number pour éviter d'implém un truc chiant

Zorg1: j'en suis un grand spécialiste

jfaixo: oui, et là c'était la soirée junkie qui rechute, en mal de "ho et si je fait +100 ici, ca fait quoi ?"

Zorg1: :D

jfaixo: grosse erreur... mais je suis sobre depuis 8h30 maintenant, je vais tenir jusqu'a dimanche je pense

darkhorse64: bonjour jfaixo

jfaixo: salut darkhorse64 ^^

darkhorse64: tu fais partie du club des tweakers anonymes maintenant

jfaixo: mon 1er timeout, ca fait un peu casse mécanique en F1.. https://www.codingame.com/replay/539062688

Alshock: vu le bruit c'est la courroie de transmission qu'a sauté

Alshock: Sinon, on peut parler du truc incroyable que fait Illedan au tour 111 ? xD

jfaixo: Mdr Alshock , le click bait ! (et ca fonctionne, je reclique pour aller voir le tour 111 !)

jdeveil: Salut à tous. Je cherche la liste des challenges en cours sur le site, je ne la trouve pas.

darkhorse64: sa

jdeveil: J'ai croisé récemment des personnes qui avaient mis un lien sur un challenge du style de CSB mais à 4 avec des pods plus rapide. Ca vous parle ?

Alshock: https://www.codingame.com/ide/challenge/sofia-labs-coding-challenge

darkhorse64: son eval lui dit de ralentir l'adversaire alors qu'il est en tête

jdeveil: yep super merci Alshock, comment on retrouve ce lien dans le site ?

Alshock: @darkhorse64 oui il a fait ça plusieurs fois, mais là il lui a tourbilol à la gueule j'ai trouvé ça génial xD

Alshock: no idea, les challenges d'entreprises sont un peu "cachés" par rapport aux contests CG

dbdr: ils sont juste pas listés, AFAIK

darkhorse64: jfaixo: faut faire un ravitaillement au stand; ton pod manque de punch tout d'un coup

jfaixo: mon taux de victoire en 1c1 a baissé oui, faut dire que ca joue quand meme (j'ai quasi juste rollback a mercredi..)

darkhorse64: Pour jouer, ça joue. Quand tu vois que pb4 est 5-10 avec un bot meilleur que celui qui était premier il y a 5 ans.

Bon[]Crayon: Salut

Bon[]Crayon: slt AuomatonNN, Automaton2000

Automaton2000: au fait, il y a plusieurs niveaux

skyyker: je ne sais plus qui parlait de points bonus pour les figures de style

skyyker: oups, j'étais sur des vieux messages

darkhorse64: c'est pour le patinage

nmortfeus: Les gens j'ai une question sur python, qui est assez bon pour me répondre ?

Alshock: ne demande pas si tu peux demander

Alshock: et surtout comment veux-tu que je te dise si je suis assez bon pour répondre à une question que tu n'as pas posée ?

nmortfeus: Question rhétorique, c'était pour voir si il y avait quelqu'un qui programmais en python...

nmortfeus: La question est la suivante :

Alshock: question inutile

nmortfeus: De ton point de vue, ta quel age ?

nmortfeus: Surement en dessous de 16 je présume

Alshock: 26 ans

nmortfeus: Bah voyons

Alshock: pose ta question

Alshock: (la vraie)

Tiouz: Il n'y a pas besoin de connaître python pour répondre à ça, trop facile

nmortfeus: Donc bref, j'ai codé un tchat privée sur python, jai vu qu'on pouvait le run depuis android avec Pydroid sur GooglePlay. Je dois savoir comment fermer le clavier android avec python

nmortfeus: Sans utiliser js avec js2py

Alshock: @Tiouz xD mon âge est donc une information si connue ?

Tiouz: Non mais le mien oui (enfin, pour moi)

nmortfeus: Si quelqu'un pouvait m'aider...

Alshock: ok donc c'est plus une question d'APIs que de python

nmortfeus: Comment ça, je demande juste une commandes python, que ça soit avec kivy ou autre

nmortfeus: Juste une commande pour que quand l'user se connecte le programme ferme son clavier.

Alshock: python c'est un langage de programmation, y a pas une commande python close_android_keyboard

nmortfeus: Ya donc pas de solutions ?

nmortfeus: Obligé d'utiliser js donc ?

Alshock: Comme je t'ai dit je fais pas de dev mobile, donc je ne connais pas tes outils, Google te répondra mieux que moi

nmortfeus: J'ai cherché partout sur tout les modules adaptable sur andoird aucunes réponses

nmortfeus: Même sur stackoverflow :grimacing:

Alshock: Ouais j'imagine que la question SO est de toi

nmortfeus: SO ?

Alshock: StackOverflow

nmortfeus: Oui mon post est closed aussi wtf

Alshock: Même raison que pour ma réponse, tu demandes comment fermer ton keyboard, mais tu ne dis pas avec quoi tu 'las ouvert. J'ai beau pas être dev mobile j'imagine qu'il y a une foultitudes de manières de faire différentes

jfaixo: tu demandes "juste" une commande python qui va tourner dans un interpréteur porté sur une plateforme dont le langage natif est kotlin/java, donc a priori sans pont simple avec les api natives ;) Tu parles de JS, ton UI est une webview ?

nmortfeus: Je l'ai pas ouvert ... Juste une entrée tkinter et je me disais qu'il y avait surement des modules adaptables pour des commandes python

nmortfeus: Non jfaixo, je conais très peu js et j'ai vu qu'il y avait des commandes simple d'utilisation pour fermer ce clavier

nmortfeus: Bon bah go rester sur windows :'(

leojean890: je n'ai utilisé que java (android SDK/NDK) quand j'ai fait de la prog android, j'en connais qui font ça en kotlin aussi mais pas en python :p

Tiouz: Moi j'ai à nouveau besoin d'aide avec mon Timeout qui n'en est pas un. Je fais Search Race avec un algo génétique, j'ai bien fais gaffe à la limite de temps (je limite grave mes itérations, je suis ultra large). Je pense que c'est un segfault quelque part, mais j'ai lancé en local avec gdb et valgrind et aucun souci, même pas de memory leak

Tiouz: Est-ce que vous savez comment je peux debug *encore plus* ?

Tiouz: Sur les tests de CG, le bug n'est même pas déterministe, alors que mon code l'est

darkhorse64: pas d'index out of range ?

VirtualAtom: Hello ,o/ tu peux essayer de sérialiser l'état de ton jeu (sans oublier ta graîne de random) et l'afficher en début de tour (avec un bitstream par exemple). Ainsi, tu peux récupérer en local exactement l'état de ton bot pour essayer de le debug

Zorg1: SR c'était un peu la foire au timeout, je me limite à 35 ms je crois

Tiouz: J'ai un pseudo-random, toujours initialisé pareil

Zorg1: ça arrivait à tenir dans leur limite de temps comme ça, plus j'avais des t/o aléatoire, le referee estimait que mon code prenait trop de temps

Tiouz: Index out of range -> je ne fais que des appels avec .at(i) sur mes arrays et vectors

Tiouz: J'ai une time limit à 25ms pour être large, mais je limite aussi le nombre d'itérations, ce qui est le facteur limitant

Tiouz: Les tours où il plante, c'est à la première itération

darkhorse64: Ca doit rendre ton bot complètement déterministe. Pour index out of range, forcément tu écris des trucs aussi

Tiouz: Ah oui, c++ au passage

dbdr: vu l'enfer que ça semble etre, on s'en doutait ;)

darkhorse64: et tu ne reproduis pas ton bug en local ?

Tiouz: non ça ne reproduit pas en local. J'ai passé 5 min à relancer gdb car le truc est pas déterministe mais ça n'a jamais planté

VirtualAtom: tu dis pas déterministe, mais si tu commences un tour avec exactement le même état, le bot va faire les mêmes opérations sur CG ou en local, non ?

Tiouz: Oui, mais pourtant 1 fois sur 10 sur CG (et je parle sur la même instance) ça plante

Tiouz: Si un test plante, il suffit de le relancer et ça va marcher

VirtualAtom: si tu as des accès mémoires en écriture au mauvais endroit, ça ne m'étonne pas plus que ça

VirtualAtom: (mais pas sur que ça soit ça, il reste aussi le timeout, mais si tu es conservateur sur le temps alloué par tour)

VirtualAtom: (*même si*)

Tiouz: D'où gdb/valgrind, mais ça veut dire que je ne sais pas l'utiliser.

VirtualAtom: on est d'accord que tu as en local un programme qui lance ton bot sur un tour, et c'est ce programme que tu mets dans gdb ?

Tiouz: Mon programme prend les entrées (que j'ai copié-collé depuis CG), et ne regarde même plus les entrées de chaque tour car je simule. Sur CG je les lis quand même pour flush cin

Tiouz: (enfin, je fais cin >> x >> y >> ...; cin.ignore();)

VirtualAtom: mais en faisant ça sur plusieurs tour, ton bot ne fais pas exactement les mêmes opérations par tour, donc t'es pas exactement dans le même état au moment où ça plante sur CG, non ?

Tiouz: Je suis totalement déterministe, donc si

VirtualAtom: si t'as un timer, tu n'es pas déterministe sur plusieurs tour j'ai l'impression

VirtualAtom: à moins que tu t'arrêtes en fonction du nombre d'itération, sans jamais regarder un timer

Tiouz: J'ai enlevé le timer. Je me limite à 100 itérations, ce qui est ultra large

VirtualAtom: ok, t'as raison du coup ^^

VirtualAtom: t'as compilé en local avec le memory sanitizer ?

Tiouz: C'est quoi ça ?

Tiouz: je compile avec seulement -g

Louis.: salut

VirtualAtom: ça instrumente tes accès mémoire pour te dire "là, t'accède à une zone mémoire que t'es pas sensé toucher, cette zone a été allouée par tel ligne de code à tel moment"

VirtualAtom: c'est un peu comme valgrind, mais sous steroid et plus rapide

Bon[]Crayon: o/

darkhorse64: try catch dans CG pour afficher l'erreur ?

VirtualAtom: si c'est une exception, elle serait affichée dans la sortie standard si elle n'est pas catch je crois

Tiouz: le memory sanitizer c'est juste avec clang ?

VirtualAtom: mais ça reste une bonne pratique de faire try/catch autour de la boucle principale pour s'assurer que ça soit correctement affiché, c'est sûr

VirtualAtom: avec gcc, clang et mvsc

VirtualAtom: je l'utilise surtout avec clang cela dit

Tiouz: Je vais chercher l'option de compil pour le memory sanitizer

VirtualAtom: je fais un abus de langage à chaque fois, c'est address sanitizer. C'est la même option sous clang et gcc je crois

Tiouz: J'ai testé, mais quand je run ça ne me dis rien.

VirtualAtom: mince. Tu peux tenter un segfault manuel pour vérifier, au cas où ?

VirtualAtom: (genre un *((int*)0) = 0)

Tiouz: Gros plantage là

VirtualAtom: et t'as bien des infos supplémentaires dans la console quand ça arrive ?

Tiouz: Oui

VirtualAtom: et mince, donc ça va pas t'aider.

Alshock: Pour moi la leçon de cette galère c'est qu'il faut toujours garder un code déterministe. Gloire à la sainte seed

VirtualAtom: donc si on résume, c'est peu probable que ça soit le timeout car tu fais peu de calcul par tour, et en local tu reproduis tous les tours sans planter

VirtualAtom: tu mets pas une seed aléatoire quand tu submit la version finale Alshock ?

Tiouz: Je dois vous laisser, mais merci pour l'aide

VirtualAtom: ,o/

Tiouz: (encore une fois)

Alshock: perso j'ai tendance à oublier de le faire, à par à se protéger du retroengineering c'est pas utile, mais sinon ouais la version finale ça se défend

Alshock: mais même avec une seed aléatoire, c'est déterministe, et au besoin t uaffiches juste ta seed au début et tout est reproductible.

VirtualAtom: j'hésite toujours pour la version finale. Mais j'atteins jamais le haut de légende pour que ça soit important ^^

Tiouz: Mon code n'a même pas d'aléatoire, c'est seed fixée (et un pseudo-random codé à la main)

Alshock: ah, donc l'indétermination vient du nombre de générations ?

Alshock: euh pardon je te laisse filer

Alshock: pas de questions après la sonnerie

Tiouz: fixé aussi, du moins quand je faisais des tests de debug

Tiouz: oui, je vais mourir de fain

Tiouz: ++

Alshock: Alors la prochaine fois faudra qu'on se demande pourquoi ce code est pas déterministe

leojean890: tiens ça passe wood 1 dans chess, et d'un coup ça rigole moins ;)

Neumann: Il se passe quoi si dans une game à 3 joueurs, l'un d'entre eux timeout. Le bot est désactivé ? Il disparait ?

jfaixo: désactivé

jfaixo: cf ma courroie de distribution sur timeout : https://www.codingame.com/replay/539062688

Neumann: Je parlais d'un timeout dans le jeu (100 tours sans passage de CP), mais ça doit faire la même chose

Bon[]Crayon: Oui c'est pareil.

jfaixo: je pense oui

Neumann: Relou Jeff06

dbdr: gg Neumann

Neumann: Non.

Default avatar.png El_PaJojo: Bonjour, est il possible de faire un console.log() sans lancer un test ?

Default avatar.png El_PaJojo: de faire fonctionner la console sans lancer un test merci

dbdr: ben non

Default avatar.png El_PaJojo: ok

Default avatar.png El_PaJojo: on sait jamais

Default avatar.png El_PaJojo: merci

Bon[]Crayon: Automaton2000 :turtle: :)

Automaton2000: il y a une limite de temps à autre

Bon[]Crayon: Automaton2000 yolo

Automaton2000: tu as de la chance de faire des choses

Manah3.deb: salut les gars

Manah3.deb: petit souci dans le coders Strike Back, je fais des if en fonction de la distance du prochain checkpoint pour gérer la puissance mais dans la sortie la puissance reste toujours à 100

Manah3.deb: pourtant la chaque tour, il saisit chaque variable

Zorg1: bah tu dois pas sortir la bonne valeur

Manah3.deb: je change la valeur de thurst et je l'affiche

Manah3.deb: if ((next_checkpoint_dist <= 400) & (next_checkpoint_dist > 200)): http://chat.codingame.com/pastebin/c5b88cc1-059b-4b58-8d66-e8be57f46536

Manah3.deb: voilà comment je gère la puissance mais comment ça se fait qu'il ne rentre pas dans les if ?

Zorg1: et ton print ?

Manah3.deb: print(next_checkpoint_x, next_checkpoint_y, thurst)

Zorg1: ah ça marcherait pas mieux un "and" à la place des "&" ?

Manah3.deb: toujours pareil

Zorg1: comme ça je vois pas, manque d'info

Manah3.deb: while True: http://chat.codingame.com/pastebin/ac529a6e-5fe1-48f7-9106-72c0def0e7d0

Manah3.deb: voilà la boucle entière

dbdr: allez, je me motive pour finir la simu

Zorg1: :thumbsup:

Tiouz: Les gens, je pense que j'ai trouvé mon bug même si je ne suis pas certain. Je pense maintenant que c'est dans la simu que je me plante. J'ai vu qu'à un endroit j'ai la mauvaise vitesse

Tiouz: En revanche ça arrive presque jamais. Est-ce que c'est possible que ce soit une erreur d'arrondi quand je multiplie par 0.85 (qui n'est pas représentable en machine) ?

Tiouz: (toujours sur SR)

BigUP: Tiouz, ca dépend du langage, en python oui tu as toutes les chances d'avoir une erreur d'arrondi

Tiouz: en c++

BigUP: en c++, il faut que tes float soient des double

Tiouz: de base si j'écris 0.85 c'est un float ou un double ?

BigUP: 0.85 je pense que ca n'a pas d'importance

Tiouz: J'ai que des doubles

Tiouz: http://chat.codingame.com/pastebin/fc40c5fe-4e9c-4a42-8d0e-a92f4b17c55f

BigUP: ok, apres, il faut vori ce que fait réellement le moteur. il peut t'afficher une valeur arrondi, mais utiliser la valeur reelle

BigUP: bref, regarde le referee

VirtualAtom: ah, une bonne piste Tiouz ^^. Même en double, je ne tablerais pas sur des résultats identiques pour un code compilé différemment, sur des machines différentes (même pour le même binaire sur la même machine, je me méfierais ^^)

Tiouz: En fait je pense même que ma simu locale n'avais pas le problème car elle n'avais pas le referee pour me dire que je déviais

VirtualAtom: tente peut-être avec des vérifications dans le code, genre check(distance >= 0), etc... où check est une macro qui affiche quelque chose quand le test n'est pas valide

VirtualAtom: en exécutant ça sur CG, t'auras possiblement plus vite le coupable qu'en essayant de reproduire localement

Tiouz: J'ai des fois où ma simu croit que je passe un CP mais en fait je ne le passe pas

Tiouz: En comparant l'état de mon player et l'état renvoyé par CG

Tiouz: Au moins, j'ai un but

Alshock: VirtualAtom D'accord, mais pourquoi ça, ça fait timeout ?

Alshock: pour moi ça devrait "juste" faire faire des bêtise à ton bot

VirtualAtom: faudrait avoir le code sous les yeux pour savoir. Après, c'est peut-être un autre bug, non lié à un crash/timeout

Alshock: oui dsl je voulais tag Tiouz et j'ai buggé mentalement

Tiouz: En fait je pense que ça timeout car je passe des CP que je ne passe pas vraiment, donc j'augmente mon compteur de CP, et quand je dépasse le dernier il fait un segfault

VirtualAtom: on pourrait se débarrasser de l'hypothèse timeout en sortant dans la console d'erreur l'endroit où est le bot dans le code

Alshock: Tiouz On est d'accord que tu parles de passage de CPs dans la simu, quand tu passes les cps dans le vrai jeu tu récupères toutes les données grâce à l'input, n'est-ce pas ?

Tiouz: Oui dans la simu

Tiouz: Mais le truc c'est qu'en local, je ne faisais que la simu, donc je ne voyais pas le problème

Tiouz: Et je croyais (à tort) que ma simu était bonne

Alshock: bah la simu reste cohérente avec elle-même donc normalement si elle diffère du referee elle devrait passer ou non les cps, mais pas incrémenter le compteur sans considérer que tu l'as passé

Alshock: 'fin bref, problème potentiel d'implémentation, mais dans l'absolu ta simu devrait pouvoir buguer sans que ça timeout

Tiouz: Pas si le "timeout" est en fait un segfault non reporté par CG

Alshock: C'est Jean-Jacques Goldman qui t'a dit que ta simu est bonne ?

Tiouz: bonne, bonne bonne

Alshock: devrait pas segfault non plus.

VirtualAtom: CG ne rapporte rien, non ? je l'ai jamais vu me dire ça segfault ici dans ton code

Alshock: je crois que c'est particulier à C++ ce mutisme des enfers

Tiouz: Je ne sais pas en C++. En python il donne l'erreur

VirtualAtom: j'ai prévu un jour (lointain...) de tester si on peut pas récupérer le signal de segfault pour l'afficher proprement dans la console

VirtualAtom: histoire de ne pas avoir à deviner ça

VirtualAtom: quelqu'un a déjà essayé ?

Alshock: ah si bien sûr que tu peux, mais c'est plus chiant que de tourner en local non ?

VirtualAtom: je veux ça seulement pour l'annoter dans la sortie standard, ça sortira mieux quand j'analyse les replays

VirtualAtom: si en plus en début de chaque tour je mets la sérialisation de l'état du bot, ça devient plus facile d'exhumer tous les bugs

Alshock: j'avoue ça se défend

dbdr: hm, le code de Magus il retrouve pas constament la meme collision immediatement?

Magus: c'est à dire ?

dbdr: si les pods se touchent, collisions a t 0. bounce change pas les positions, donc a l'iteration suivante la meme collsion est retrouvee

Alshock: y avait pas une ligne justement pour ignorer les collisions à t 0 ?

dbdr: pas dans le code, il me semble

dbdr: mais c'est mentionné:

dbdr: http://chat.codingame.com/pastebin/26b88607-e81b-4c7f-9bac-641a3285b7ef

Alshock: j'aime bien cette ligne, c'est le mec qui te passe ses réponses au DM de maths avec dans la marge "Au fait, j'ai faux à l'exercice 3, je pense que j'ai foiré un signe"

dbdr: c'est peut-etre aussi pour pas trop macher le travail

dbdr: oh, c'est magique!

Alshock: Bien sûr, j'imagine pas une seconde que Mag soit bloqué par un truc comme ça, et c'est quand même vachement bon pédagogiquement de faire débugger un bout d'une réponse "offerte", ça permet de tester la compréhension

Alshock: class "std::__exception_ptr::exception_ptr" has no member "what"C/C++(135) Mais qu'est-ce que je branle de ma vie moi ? <_<

dbdr: bien sur, loin de moi de sousestimer Magus, c'était juste pour vérifier que j'avais pas raté un truc

dbdr: https://www.codingame.com/replay/539111477

dbdr: le jaune simule l'adversaire, le rouge non :)

Alshock: Enfin, entre nous hein, Mag surcôté. :stuck_out_tongue:

dbdr: :P

Alshock: les vrais font des IAs sous-marines en Haskell

Alshock: Je sais plus, c'était en Haskell que t'avais ton bot qui crashait systématiquement en test avec la diff de flags ?

dbdr: moi? tu confonds avec Rust?

Neumann: Rust ?

Alshock: Ah mais du coup t'avais pas changé de langage pour ça ?

dbdr: moi non

Alshock: Oh moi j'avais gardé un souvenir machiavélique de dbdr dans l'ombre qui avait choisi le langage bugué en IDE pour hide à moindre frais. Tout mon univers s'effondre

dbdr: c'était un heureux hasard

dbdr: j'ai choisi Rust parce que j'aime ça

Neumann: Tu confonds peut-être avec l'alt d'un certain canadien, pendant le fall challenge

dbdr: (qui a dit "masochiste"? ;) )

Alshock: J'étais pas trop là pour le fall, mes souvenirs datent d'OoC/Pacman

Alshock: dbdr yen a bien qui codent en Java

dbdr: genre moi avant rust :D

Tiouz: Yen a bien qui codent en C++ (ah non c'est juste moi qui suis vraiment nul^^)

Alshock: Tiouz non, non, c'est aussi une forme de douleur indicible

Alshock: quelqu'un a déjà eu un usage de current_exception() en C++ ? Parce que le code d'exemple de cppreference dit littéralement "regarde tu gardes le pointeur de l'exception non définie, tu le rethrow, puis tu le catch en std::exception"

Alshock: J'ai du mal à voir le côté plus propre de la démarche

dbdr: ça sent mauvais l'était global, non?

dbdr: https://www.codingame.com/replay/539115940

dbdr: lol la fin

Alshock: l'état global ? Tu veux dire le catch anything ?

Alshock: Ton bot a quand même gardé ce boost par pur sadisme

dbdr: c'est thread local?

dbdr: enfin je pense que je préfere pas savoir ;)

Tiouz: En fait c'est le referee qui ne me passe pas le CP, c'est pas ma faute

Tiouz: Je termine mon tour dans le CP, mais il ne veux pas me le compter

dbdr: le méchant!

Alshock: "If called during exception handling (typically, in a catch clause), captures the current exception object and creates an std::exception_ptr that holds either a copy or a reference to that exception object" c'est censé être lié à l'exception en cours donc ça devrait être local, mais je jurerais rien

dbdr: ça fait un peu magique, quoi, non?

Alshock: bah ça fait surtout "pourquoi diable je voudrais passer par un pointeur sur mon exception ?", ça fait partie de la foultitude de trucs C++ où je me dis "doit y avoir un contexte qui a demandé sa création, mais j'arrive absolument pas à voir lequel"

Alshock: et l'exemple cppref bordel, l'exemple d'utilisation ! Il est magique : https://en.cppreference.com/w/cpp/error/exception_ptr

nicola: Tiouz, c’est parce qu’il est encore en GS.

Tiouz: en GS ?

nicola: Grande section.

nicola: Pouf pouf.

Tiouz: facepalm

nicola: :grin:

Alshock: GrassSlide, c'est un bug connu de trackmania pour drift sans frottement

Tiouz: oui ! les bonnes refs !

Tiouz: Honnêtement je ne vois pas comment corriger le bug. J'ai regardé le referee mais c'est assez obscur car ils calculent le temps exact où je traverse le CP

Tiouz: Enfin, j'ai trouvé un fix assez moche pour que ça marche, mais c'est nul

Alshock: Quel est le problème en vrai ? Y a un moment où toi ta simu dit que tu passes le cp, puis le referee te renvoie que t'as pas passé le cp mais t'es dedans c'est bien ça ?

Tiouz: Oui, j'ai affiché ma position, et la position du CP, et je suis à moins de 600 unités !

Alshock: après arrondi ?

Tiouz: Je récupère l'était que me donne le referee, donc son état

dbdr: tu as quels chiffres exactement?

dbdr: bon voyons ce que çá donne en arene

Tiouz: x,y,cx,cy = 2555, 5944, 1961, 6027

Tiouz: la position (x,y) et la position du cp (cx,cy) donnée par le referee

dbdr: oui, c'est a moins de 00

dbdr: 600

dbdr: :no_mouth:

Tiouz: Sur la discussion Natalka1122 a eu le même problème que mio

Tiouz: moi*

dbdr: c'est quel multi, CSB?

Tiouz: Search Race

dbdr: ok

Tiouz: En fait elle n'avait pas le même problème exactement, je ne sais pas si mon cas s'applique

dbdr: soit tu mélanges les entrées, soit c'est bien le comportement du referee. tu peux le tester en local si tu veux

dbdr: Magus: merci pour le pseudocode CSB! :) y'aurait d'ajouter le contest privé, ou c'est chiant? (je vois qu'il y en a d'anciens)

Neumann: Sur CGStats ?

dbdr: oui

Neumann: http://cgstats.magusgeek.com/app/sofia-labs-coding-challenge/dbdr <http://cgstats.magusgeek.com/app/sofia-labs-coding-challenge/Neumann>

dbdr: ah cool, merci!

dbdr: suffit de creer l'url a la main, c'est ça?

Neumann: Oui

Neumann: "créer l'url" :D

dbdr: que l'URL soit

dbdr: et l'URL fut

Alshock: Tiens je sais même pas ce que veut dire le sigle, Unknown Routing Language ?

Zorg1: Uniform Resource Locator

Zorg1: ou Unique :thinking:

Alshock: GT palwin

Alshock: Uniform selon Google, mais qu'en sait-il finalmeent ?

Zorg1: ah c'est bien Uniform

Zorg1: google sait tout, il sait même quand tu vas mourrir

dbdr: URL Resource Locator

Alshock: GNU is Not Unix

Zorg1: :thumbsup: bravo les gars

dbdr: Zorg1 #2

dbdr: a toi le cours en ligne!

Zorg1: oui enfin t'as la moitié du top qui repush

Zorg1: un cours en ligne ?

dbdr: c'est pas le prix pour le #2?

Bon[]Crayon: Pour apprendre le python !

darkhorse64: non, il aura le sac

Zorg1: Dit le gars qui fait le contest en D

dbdr: çá sent le sketch de fernand reynaud

Zorg1: pourquoi t'es douanier en fait ?

dbdr: non, celui du prix du meilleur conducteur du dimanche

dbdr: - qu'allez vous faire de votre prix? - ben, je pense que je vais aller a l'auto-école, afin d'essayer d'obtenir mon permis de conduite

Zorg1: ah oui le gars qui a volé la bagnole ^^

dbdr: oui, en plus

Zorg1: bon c'est quoi ce délire, je vais finir #1 parce que tout le monde tune ses magics numbers ?

Tiouz: En fait mon bot est trop bon ! Je suis dans le CP après avoir arrondi les entrées, mais pas dedans avant l'arrondi

Tiouz: Et le test se fait avant l'arrondi...

Zorg1: c'est vrai que je considère le CP avec 5 pixels en moins moi

Zorg1: un peu cradingue mais ça marche

dbdr: voila comment on fini #1

dbdr: allez soit gentil, Neumann, resub. pour le screen de Zorg1 ;)

Neumann: Non.

dbdr: pfff

Zorg1: déjà fait mon screen #1 ça va ^^

dbdr: ah gg :D

Zorg1: au fait ça vaut combien une PS5 ?

dbdr: c'est pour un ami? ;)

Zorg1: pour mon édification personnelle

Zorg1: mais bon le prix du jeu moyen ça doit être dans les 60 euros je suppose

dbdr: https://www.codingame.com/replay/539133168 euh...

dbdr: no passaran!

Illedan: :clap: dbdr

Neumann: genius

dbdr: "presque"

Zorg1: t'as choppé de l'ADN de bloqueur qui trainait de CSB ?

Zorg1: fonction d'évaluation teigneuse

Tiouz: C'est pas une stratégie de faire exprès de faire timeout l'adversaire (la règle des 100 tours) ?

Zorg1: à deux c'est faisable

Tiouz: Ah oui, à plus c'est compliqué

Tiouz: Un vrai gardien de but !

dbdr: je le fais souvent, en plus. va falloir que je fix ça

darkhorse64: j'avais aussi ce bug, bloquer alors que j'allais timeouter le premier

Zorg1: c'est vrai que le fait d'avoir aucune contrainte sur la direction de la poussée ça simplifie ce genre de truc

Morkai: Bonjour a tous, je viens de tomber sur un clash nous demandant d'afficher les 3 premier chiffre d'un nombre A exposant B On avait en input A et B sauf que le dernier test ne passait pas car A^B prenant trop de temps a s'exécuter Auriez vous une solution a se problème ?

Tiouz: Tu as essayé en python ?

Morkai: oui

Tiouz: et c'est bien les 3 premiers, donc la réponse n'est pas modulo 1000 ?

Tiouz: genre si a^b = 1234 il faut répondre 123 ?

Morkai: oui c'est ça

nmcodes: paris vous quelqu'un a deja résolu "Shadows of the Knight" ?

Morkai: 1000**1000000 par exemple c'est trop long

Tiouz: p

Tiouz: Mais celui là c'est facile d'avoir les premiers chiffres

Morkai: j'avais fait res = a**b print(str(res)[:3])

Morkai: pas si facile pour moi apparemment :cold_sweat:

Tiouz: Je veux dire, c'est 100 la solution

Tiouz: Si c'était vraiment ça le test/validateur, alors il fallait utiliser la forme de "a"

Tiouz: Sinon je ne pense pas qu'il y ait une formule

Morkai: que veux tu dire pas la forme de "a" ?

Tiouz: Là comme a=1000, str(a**b)[:3] = 100 tout le temps

Morkai: 1<a<1000 1<b<1000000

Tiouz: if (a == 10 and b>1 or a == 100) then 100 else str(a**b)[:3]

Tiouz: C'était quoi les valeurs exactes de a et b pour le test qui plantait ?

Morkai: j'ai pas regarder les valeurs exact mais c'etait de très grande valeur car un simple A**B prenait trop de temps pour s'éxécuter

Morkai: il y avait le message d'erreur disant TimeOut , votre code n'est pas suffisament optimisé

Zorg1: ou alors tu fais le calcul en flottant avec pow() il devrait au moins conserver les 3 premiers chiffres

Zorg1: quoique ça doit déborder

Tiouz: Ça va totalement déborder

Alshock: nmcodes un peu en retard mais si t'as une questin dessus pose la directement, ça évite les redondances. En l'occurrence oui.

kayou: Morkai, tu dois faire le calcul de la puisance toi même et ne conserver a chaque fois que les (n+k) prenier chiffres, (le probleme est de trouver le bon k)

Tiouz: kayou il y a vraiment un k qui marche ?

Zorg1: oui en fait non si tu prend le log10, tu garde la partie fractionnaire et voilà

kayou: il est different en fonction du nombre de digits qu'on te demande

Alshock: +1

Alshock: Out of context Tiouz "Ça va totalement déborder", à mettre sur son épitaphe

Tiouz: :rage:

Zorg1: :D

dbdr: amis du bon gout, coucou!

Alshock: désolé, j'ai été radié de l'ordre du bon goût en 1938

Default avatar.png pierre_griffon: salut

Bon[]Crayon: o/

Zorg1: \o

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

Automaton2000: ouais mais là c'est un peu le pb de la semaine ?

Bon[]Crayon: o/

BlaiseEbuth: \o

Zorg1: \o/

dbdr: pb4 #2

dbdr: il était pas #10 avec le meme sub? :D

dbdr: quoique, il est pas si vieux, vu la lenteur

jfaixo: il a push a 15h38 ;)

dbdr: oui

Zorg1: toujours une heure pour un push ?

dbdr: y'a pas d'heure pour un bon push

Zorg1: il y a le mauvais push et le bon push

dbdr: c'est facile, le mauvais push il fait pas #1

Zorg1: on est submergé par une marée de mauvais push ... :scream:

dbdr: https://www.codingame.com/replay/539148596 pb4

dbdr: :joy:

dbdr: c'est pas ça qui va acceler les submits, si tous les matchs font 500 tours...

dbdr: *accelerer

Zorg1: c'est à cause de vous deux que j'attends une heure le résultat de mon push :rage:

dbdr: nous on attend le résultat d'un seul match

Zorg1: c'est mignon votre course

dbdr: m'a bient fait rigoler :D

dbdr: match de défenseurs

Default avatar.png JBM: c'est encore sur sf2442?

Zorg1: oui

Zorg1: ça fini dans 2 jours 6 heures

dbdr: daporan push dans 2 jours 5 heures 50 minutes

Neumann: lel

jft63: c'est sur

nmcodes: hello

Neumann: Il va faire quoi avec deux PS5

Neumann: Faut faire croquer les autres aussi

Neumann: Daporan si tu me lis

Neumann: Sois cool

jft63: Neumann ^^

nmcodes: quelqu'un peut m'aider à optimiser une boucle for qui va de 1jusqu'à 88888888 sans que j'aie une erreur de dépassement de temps ?

dbdr: :joy:

Neumann: C'est très précis comme problème

nmcodes: je cherche à résoudre "Magic count of numbers"

Neumann: Je connais pas le problème mais t'as sans doute pas la bonne approche

dbdr: > We all know Linux is great... it does infinite loops in 5 seconds.

dbdr: 5s ça timeout sur CG :(

nmcodes: voilà

nmcodes: c'est ça l'énoncé :

nmcodes: You should calculate a count of natural numbers not greater than n and divisible at least by one of k given primes.

dbdr: il y a sans doute une astuce mathematique, pas une optim de boucle

nmcodes: d'accord merci. je vais voir ça

Zorg1: vu l'espèce de pénurie sur les PS5 ça doit bien se vendre

dbdr: ctoi l'espece de pénurie

Thyl: Zorg1 t'es remonté fort

Neumann: Vue l'espèce de pénurie, tu vas surtout jamais la recevoir

Zorg1: ^^

Zorg1: thyl : bah je sais pas trop j'ai l'impression que tout le top repush, je garde les places au chaud en attendant

Thyl: mais après est-ce que la ps5 est livré avec des jeux

Thyl: parce que il te l'offre

Thyl: et après c'est toi qui racque

dbdr: CSB pour PS5

Zorg1: "Special MK edition, vu à la télé"

BlaiseEbuth: T'façon à choisir vaut mieux une xbox niveau jeux...

Zorg1: avec 10 autocollants "fix ton bot"

Thyl: BlaiseEbuth la xbox c'est grave bien

Thyl: juste Forza ça claque

Zorg1: aucune idée je ne joue que sur PC moi

BlaiseEbuth: Moi je joue que sur PC. Mais je dis juste qu'entre xbox et ps je prends xbox

Thyl: PC c'est que MTGA moi

Thyl: j'ai jamais testé les RPG

dbdr: finis #1 et on en reparle

Zorg1: bah c'est lequel qui prend moins la poussière ?

Zorg1: MTGA ?

Thyl: magic the gathering arena

BlaiseEbuth: <3

Zorg1: ah un jeu de carte (oui je sais je simplifie ^^)

Thyl: un gouffre à fric

Thyl: non mais en vrai c'est vachement bien

Thyl: l'ambiance dans les tournois en boutique est merveilleuse

Zorg1: bah si tu veux que ça rapporte ... t'attires pas les mouches avec du vinaigre comme on dit

Thyl: ça rapporte pas

Thyl: ça te prend

Thyl: le booster 3,50 euros ça pique

Zorg1: ah je croyais que c'était lardé de micro transaction et autre pompe à fric

dbdr: ça rapporte, juste pas a toi

Thyl: le jeu sur PC tu peux rien payé

Zorg1: bah oui au proprio de la boutique, c'est le principe ^^

BlaiseEbuth: De mon temps... Bah c'était pareil, juste avec de vrais cartes...

Thyl: après solid works masi je crois pas que c'est un jeu ^^

Thyl: qui fait les Binary contest ?

BlaiseEbuth: L'avantage de mtga c'est que tu peux trouver des partenaires de jeux facilement...

BlaiseEbuth: Sans te trainer à une convention

BlaiseEbuth: Ca flatte l'antisocial que je suis

BlaiseEbuth: Binary contest ?

Thyl: C'est pour ça que t'es parti de Discord ! :)

BlaiseEbuth: Non.

Thyl: je vous envoi un lien

BlaiseEbuth: Juste parce que ça me prenais trop de temps

Zorg1: Bah au dernier crash du serveur de chat je t'ai vu sur discord

BlaiseEbuth: M'fin j'ai recréé un compte pour aller gueuler quand le chat était down.

BlaiseEbuth: Voilà

Thyl: https://binarysearch.com/room/Weekly-Contest-54-lcf4Qws6iH

Zorg1: ah y a un site "binary search" je vais vite dépose bfs.com et dfs.com avant qu'on me l'es pique

Thyl: pense a*

Thyl: et backtrack

Zorg1: ah dfs.com c'est la samaritaine :thinking:

BlaiseEbuth: Wa c'est du chrono

Thyl: un mega clash of code

BlaiseEbuth: erf

BlaiseEbuth: En plus c'est à l'heure de l'apéro

Zorg1: c'est interdit les apéros publiques, à moins que tu sois préfet ou ministre

BlaiseEbuth: Qui a dit que c'était publique ?

BlaiseEbuth: Je me bourre juste la gueulle tout seul.

Zorg1: enfin disons à plus de 6 personnes ;-)

Thyl: à tiens ç donne envie de chips tout ça

Zorg1: ah ok si c'est pour ta consommation personnelle ...

Zorg1: ON VA MANGER DES CHIPS THYL !

Zorg1: TU FAIS LA GUEULE OU QUOI ?

Zorg1: #desole

Bon[]Crayon: Automaton2000 quoi de neuf ,

Automaton2000: je me fais chier à faire les puzzles easy

Bon[]Crayon: Automaton2000 ah ah :joy:

Automaton2000: am i not merciful ?

BlaiseEbuth: :scream:

Zorg1: y a trop de gens qui parlent anglais ici j'ai l'impression, y a Automaton2000 qui dit n'importe quoi

Automaton2000: bon après c'est pas la solution la plus courte

Zorg1: mais est ce la meilleure Automaton2000 ?

Automaton2000: je connais le referee par coeur

BlaiseEbuth: C'est galdiator

Zorg1: le frère galeux de radiator ?

Zorg1: l'un est galeux l'autre est irradié

Zorg1: bon j'arrête je fix mon bot pour récupérer la PS5

Thyl: je vasi faire du bit boarding sur clobber

Thyl: Zorg1 t'est bien sur un AG ?

Zorg1: moi oui je l'ai jamais caché en fait

Zorg1: après je t'avouerais que SR a été très bien pour moi, c'est vraiment là que j'ai pu comprendre les problèmes de mon AG CSB

Zorg1: bon je crois que j'ai pas mal bossé sur SR en fait

Zorg1: actuellement mon éval est franchement simpliste

Thyl: Une fois j'ai essayé un turc qui marchait pas mal

Thyl: je prenais des solutions

Thyl: genre 100

Thyl: et je les faisais jouée contre les 99 autres

Thyl: sur Troll vs Castle

Thyl: c'était plutot cool

Default avatar.png ChtiZorro: tu essayes des turcs ?

Default avatar.png ChtiZorro: tu vas avoir des soucis avec Erdogan

Default avatar.png ChtiZorro: mais bon, c'est vous qui voyez

Zorg1: fun fact : les initiales d'Atatürk sont MK

leojean890: pusher un truc pourri dans tryangle => checked :p

1Alex: ou peut-on trouver le puzzle de la semaine ?

1Alex: j'ai trouve le lien depuis la carte des missions : https://www.codingame.com/puzzles/puzzle-of-the-week

1Alex: mais j'ai pas reussi a le trouver en naviguant dans les menus

Zorg1: c'est généralement à partir de la carte des missions que je le trouve moi aussi

dbdr: https://www.potw.cg

dbdr: Citizens of the Republic of the Congo are entitled to one free domain registration, directly at the second level of .cg. Additional registrations, and registrations by foreigners, have a cost of €225/year

dbdr: il est temps de demander la nationalité

Zorg1: après t'as des pays qu'on monétisé leur domain, comme tuvalu (.tv)

dbdr: .io aussi

dbdr: oula jft63

dbdr: cette fusée

Zorg1: ah oui joli

dbdr: http://cgstats.magusgeek.com/app/sofia-labs-coding-challenge/jft63

jft63: dbdr finalement pas tant que ça

jfaixo: ca va quand même ;)

Zorg1: bon jfaixo qu'est ce que tu fous, je croyez que ton but c'était d'être devant Neumann dans ce contest

Neumann: Non.

jfaixo: haha j'y travaille :sweat_smile:

jfaixo: lais je t'avouerai que je suis en train de lacher mentalement, bientot la pause... :P

Jeff06: w00t screenshot

Neumann: Stonks

Neumann: Par contre cassez-vous, j'étais bien tout seul

Neumann: Merci.

Jeff06: pourquoi ya personne d'autre qui timeout?

Jeff06: t'inquetes pas je redescend vite fait

Zorg1: "j'étais juste monté en haut pour le selfie"

jfaixo: pff bon allez pause, ca me semble sans issue xD

Jeff06: on parie sur le top 3?

Jeff06: final?

BlaiseEbuth: Bah moi en premier déjà.

BlaiseEbuth: Et après daporan

BlaiseEbuth: Pis en troisième... :thinking:

Neumann: Ca bouge pas mal, je m'absente 1 heure, j'ai gagné 2 places

ThomasNicoullaud: où on peut trouver le lien ?

jfaixo: ? bah t'es 1er depuis un bout de temps Neumann quand même ;)

darkhorse64: https://www.codingame.com/ide/challenge/sofia-labs-coding-challenge

ThomasNicoullaud: ty darkhorse64

darkhorse64: échange lien contre éval pas trop pourrie

ThomasNicoullaud: -3v

darkhorse64: :disappointed:

ThomasNicoullaud: j'ai pas mieux xD

darkhorse64: y a mieux comme coeff

ThomasNicoullaud: c'est quoi la diff avec le multi ?

darkhorse64: parce que les pods ne driftent pas pareil

ThomasNicoullaud: juste ça ?

darkhorse64: pas de limite sur la rotation, plusieurs boosts, 1 pod, 2-3 joueurs

darkhorse64: avec une bonne heuristique (2 lignes), tu dois pouvoir faire dans le top 30

darkhorse64: bonne nuit les forçats

jfaixo: haha faudra que je passe du temps sur le timeout 1c1 de jeff demain ^^'

Morkai: Bonsoir, j'ai une liste [2, 3, 4, 5] je dois dire true si les chiffre se suivent ou false si ils ne se suivent pas, je suis en python je vois pas comment faire, auriez vous une idée svp ?

Tiouz: Tu parcours, et tu vérifie que chacun est plus petit que le suivant ?

Morkai: j'ai essayé mais j'ai un out of range

SefioR13: Quand tu parcours ta boucle fait attention aux indices de ta liste

SefioR13: ta liste

Jeff06: jfaixo il serait temps ;) petit replay pour le fun: https://www.codingame.com/replay/539007864

SefioR13: Est-ce que c'est possible de savoir ce que test le dernier validateur du problème breaking apart parce que je valide tous les tests mais j'ai pas 100% à la soumission

Zorg1: la victoire au timeout ...

BlaiseEbuth: Comment est ta nuit

Neumann: Bonne.

BlaiseEbuth: Farpait

jfaixo: haaaaa je viens de trouver une couille dans ma fonction d'éval, allez, l'espoire fait vivre

BlaiseEbuth: Vas te coucher

jfaixo: oui, je vais faire ca et corriger demain matin :P

BlaiseEbuth: C'est comme ça qu'on élimine la concurrence.