Chat:Fr/2020-06-10
FreexXx: Plip
Zorg1: o/ à tous et aux bots Automaton2000 & AutomatonNN
Automaton2000: mais je ne suis plus sur
AutomatonNN: on connait le chat avec les problemes de ce que tu veux dire :)
FreexXx: salut Zorg1 :p
Zorg1: salut FreexXx ;-)
FreexXx: je t'ai mis en cible sur platinium rift 2 ^^
Zorg1: j'ai pas le meilleur bot, et je ne travaille pas vraiment dessus
FreexXx: c'est quoi le nom de l'algo pour avoir un pathfinding sur ce multi j'oubli tout le temps
Zorg1: BFS ?
FreexXx: c'est en rapport avec la recherche dans un graph
FreexXx: ha oui c'est ça merci
257832: Yo tout l'monde ! Automaton2000, AutomatonNN !
Automaton2000: mais ca me fait perdre du temps pour que le classement de la ligue légende
AutomatonNN: Bonjour les gens et Automaton2000
Zorg1: \o
FreexXx: je crois que j'ai reussi a faire le pire bfs de l'histoire xD
VirtualAtom: Salut tout le monde, et nos chers Automaton2000 et AutomatonNN
Automaton2000: ca doit pas etre le cas
AutomatonNN: enfin sur le chat en fait je suis pas sur que c'est pas trop compliqué de faire un truc pour le pass
VirtualAtom: FreexXx, comment ça le pire ? ^^
FreexXx: sur wikipedia il tient en tres peu de ligne moi le mien environ 65 lignes et vraiment pas optimiser ... je pense pas qu'on puisse faire pire :p
FreexXx: c'est a cause du fait qu'il me faut retrouver la premiere zone une fois que j'ai trouvé le plus court chemein du coup j'ai pas du faire comme il faut :'(
FreexXx: http://chat.codingame.com/pastebin/94df3859-d1b1-45eb-9598-5f95666bd93e
FreexXx: bon je recommence depuis le debut ^^
VirtualAtom: j'ai pas encore bien compris pourquoi tu as une première boucle sur dirPossible
BlaiseEbuth: idem
FreexXx: pour garder en memoire les seuls zones ou je peux vraiment aller
VirtualAtom: si tu veux à tout prix retrouver quelle direction initiale tu as pris, tu peux l'encoder dans les noeuds de ton graphs
BlaiseEbuth: VirtualAtom est plutôt pratique comme chatbot, il écrit ce que je pense automatiquement...
VirtualAtom: je n'existe que pour vous servir, maître BlaiseEbuth
BlaiseEbuth: :grin:
BlaiseEbuth: Ah ouai, je vois ce que t'as voulu faire.
FreexXx: non mais tout est faux je n'ai au final meme pas le plus court chemin ^^
BlaiseEbuth: En fait t'es dans l'idée de run un bfs pour chaque direction possible à partir de ta position actuelle, avec une histoire de score à maximiser, mais ça sert à rien.
VirtualAtom: t'as aussi une typo je pense :
scoreMin = deph; if(deph < scoreMin) { scoreMin = deph;
BlaiseEbuth: ouai ^^
FreexXx: :'(
BlaiseEbuth: FreexXx: L'idée du bfs c'est d'arriver le plus rapidement à dest depuis start. Donc à chaque tour tu enqueu toutes les destinations possibles à partir de act. Et tu arrêtes quand act est == à dest. Ca c'est le bfs. Pour trouver le plus court chemin, il faut que pour chaque case visitée tu stockes depuis quelle case tu y es arrivé. Comme ça quand le bfs est fini, tu peux remonter à start+1 pour trouver la bonne direction.
FreexXx: https://www.codingame.com/share-replay/472028749 ici au 1er tour avec une seule direction possible au lieu de trouver 15 je trouve 2405 :p j'aimerai bien visualiser la route qu'il choisit haha
FreexXx: ha je pense peut etre avoir compris je vais retenter merci blaise
Bon[]Crayon: sur la page de présentation du puzzle the labyrinth, il y a lien vers un blog qui explique le principe
FreexXx: celui la ? https://www.codingame.com/learn/BFS
Bon[]Crayon: je pensais à celui là https://www.redblobgames.com/pathfinding/a-star/introduction.html
FreexXx: ha oui merci avec tout cela je devrai reussir
Bon[]Crayon: Bonne Lecture
FreexXx: haha cool ça fonctionne :)
FreexXx: juste a ajouter early exit et ça devrait etre bon
FreexXx: c'est quand meme plus jolie :p
FreexXx: http://chat.codingame.com/pastebin/6d3beff1-a80b-4d62-bc5d-e78695acf77d
VirtualAtom: effectivement, ça me semble mieux ^^
FreexXx: oui :innocent: merci pour votre aide !!!
Magus: marrante cette fonction : dropDatabase(are: boolean, you: boolean, sure: boolean)
leojean890: vaut mieux confirmer 3 fois qu'une vu la criticité hehe
dbdr: Magus: pour aller plus loin: dropDatabase(are: boolean, you: boolean, sure: boolean, any_regrets: boolean, dont_do_it: boolean, really: boolean)
dbdr: faut trouver la bonne combinaison de trues et falses
JBM: comme rm --no-preserve-root
dbdr: que des false c'est trop facile
JBM: ou l'option du client mysql
dbdr: après ça se brute force ;)
dbdr: for are in [false, true] {
for you in [false, true] { ... drop(are, you, ...)
JBM: heureusement que t'etais la pour apprendre a Magus le bruteforce
dbdr: HTH
JBM: c'est bien, j'ai ecrit mon premier JUnit
dbdr: en TDD c'est une bonne chose
JBM: j'ai un warning de conversion de type de tableau
dbdr: ça sent la limitation du système de type. covariance?
dbdr: c'est quoi le warning
JBM: [WARNING] /home/nemo/private/game-troll/src/test/java/TrollTest.java:[44,35] unchecked cast
required: V[] found: java.lang.Object[]
JBM: V[] a = (V[]) list.toArray();
JBM: (List<V> list pour la decl)
Magus: t'as 2 solutions
JBM: 1) arreter avec java, ca suffit la deconne
dbdr: PR sur OpenJDK
dbdr: pour améliorer le systeme de types
JBM: non mais ca c'est connu depuis le debut et WONTFIX
Neumann: 1) Apprendre à coder en Java
Magus: soit tu entoures avec un if et un instanceof, je me souviens plus trop mais ça doit donner ça : http://chat.codingame.com/pastebin/eb37ab65-a0d3-4d13-a0a4-44cfddd5f229
JBM: alors c'est marrant que tu parles de ca
Magus: 2) tu rajoutes une annotation @unchecked :D
JBM: parce que sur la ligne d'apres j'ai ca if (v instanceof List) dumpList(p, null, (List) v);
JBM: qui me fait un warning aussi
Magus: mais ouai j'ai jamais compris pourquoi en java quand t'as une List<V> le toArray renvoie un Object[]
Magus: enfin c'est peut être historique mais bon
JBM: les generics c'est (relativement) recent en java
dbdr: en Java les tableaux sont covariants
dbdr: les types generiques non
JBM: et ca fout la merde depuis le debut
JBM: pour les tableaux covariants
Alshock: covariant ça veut dire qu'il peut pas être templaté (quelle magnifique terme), je nage dans la semoule chez moi covariant ça se dit de deux variables
JBM: j'aime bien ton raccourci hatif
Alshock: toujours là pour ça, ça devrait être la description de ma bio ça xD
JBM: covariant ca se dit d'une transformation sur les types pour laquelle tu as le droit de substituer une specialisation ("subclass" je crois en java)
dbdr: concretement, tu peux passer un String[] à une fonction qui attend un Object[]
dbdr: le probleme c'est que si la fonction écrit un Integer dans le tableau, ...
dbdr: boom!
BlaiseEbuth: Un variant c'est une espèce de gros léziard, et quand y'en a plusieurs on parle de covariants.
Alshock: les fameux variants de Modo, qui après des siècles de prolifération sont devenus les covariants de Komodo
JBM: ah merci dbdr pour le remplacement au pied leve
JBM: je suis tombe dans un meeting impromptu
dbdr: moche
JBM: bon, ma bidouille a la metaclasse marche vraiment pas
JBM: comment j'instancie une sous-classe depuis une methode statique de la classe parente?
JBM: c'est possible sans parametrer?
dbdr: tu veux dire inner class?
dbdr: alors je comprends pas la question
dbdr: new?
JBM: j'ai un main statique la classe parente
dbdr: new SubClass()
JBM: je voudrais lui faire construire (idealement) acceder (sinon) la sous-classe
JBM: oui, mais sans avoir son nom
JBM: sinon c'est pas generique
JBM: disons qu'il "est" du type de la sous-classe
dbdr: tu veux construire une classe sans savoir laquelle
JBM: mais que le code du main est herite
JBM: c'est pas plus delirant que ca, ca marche bien pour les methodes
dbdr: main?
JBM: c'est pas plus ou moins ce qui est fait avec Runnable?
dbdr: une methode statique, c'est juste une fonction qui par coincidence est dans une classe
JBM: mais c'est pas interdit de l'appeler sur une classe fille
dbdr: elle sait rien des instances, sous-classes etc
JBM: c'est public, c'est herite
dbdr: c'est juste du sucre
JBM: il est pas absurde qu'elle sache son type
dbdr: ya pas d'instance
dbdr: donc tu peux pas faire du virtuel avec, ya pas d'instance
JBM: ca ca sonne mieux comme argument deja
dbdr: en fait ya pas de classes non plus, sauf syntactiquement
dbdr: c'est pour ça que je trouve ça magique quand j'appelle des fonctions sans arguments sur des parametres de types en Rust
dbdr: Java peut pas du tout faire ça
dbdr: (sauf à faire à la main, avec de la reflexion)
JBM: donc ma seul choix finalement, c'est de definir un main dans chaque sous-classe qui instancie et appelle le main parent
dbdr: si j'ai bien compris, oui
JBM: bon ca sera sans doute pas le pire truc que j'auria ecrit ce mois-ci
dbdr: friendly reminder: Java a un systeme de types très simple (à part pour les generics, un peu)
JBM: mais j'arrete pas d'espere que ca ait un peu plus evolue que ca pdt que j'avais le dos tourne
dbdr: tu n'es pas l'audience cible non plus ;)
dbdr: peut-etre Scala un peu plus?
dbdr: Scala -> Bytecode ->(decompile) Java ?
dbdr: et hop, un referee :)
JBM: mais je peux pas et faire mon premier usage du SDK et utiliser un langage pas prevu pour du meme coup
JBM: j'en suis encore a leur trouver les bugs
dbdr: ben, c'est des langages prévu pour appeler des APIs Java, quand meme...
dbdr: donc c'est pas délirant
JBM: mais leur runner qui prend une metaclasse plutot qu'un objet
JBM: et autant j'ai deja fait des deux
JBM: autant j'ai pas du tout en tete comment *implementer* une classe java avec eux
JBM: alors qu'*invoquer* du java ca effectivement c'est facile [du moins a retrouver]
dbdr: je pense que c'est prévu aussi
dbdr: mais j'ai pas pratiqué
JBM: mais c'est beaucoup moins mis en avant
JBM: pour des raisons evidentes certes
dbdr: p(Java peut faire X | c'est JBM qui demande) < 0.1
JBM: c'est tellement vrai que ca me donne envie de pleurer
JBM: c'est effrayant le syndrome de stockholm que cet ecosysteme a genere
JBM: j'ai un semipote/collegue qui etait trop fan de java
JBM: je lui disais que c'etait pas top mon langage prefere, trop bas niveau, pas de lambda convenable
dbdr: sans doute partiellement, mais ça dépend aussi bcp de tes attentes et culture
JBM: il me recitait l'argumentaire sun standard sur "meuh non y'a pas besoin de lambda"
pardouin: 69ème à CoC, j'hésite à essayer d'améliorer mon rang :)
JBM: 10 ans plus tard, y'a des lambdas dans java et il est evidemment trop fan
dbdr: :)
JBM: mais il ne voit pas en quoi il manquait de credibilite a l'epoque
JBM: java et python sont, je trouve, les langages qui generent le plus de cette pseudo-mentalite
JBM: de gens "trop fan" qui ne comprennent au fond pas grand chose de leur langage faute d'etre ouvert a ce qui existe/est possible
JBM: je tente l'approche class abstraite qui definit main (d'ailleurs y'en a pas une preexistante?), helper qui genere la classe a la volee avec ses parametres en closure
happy-star: je voudrais apprendre à coder avec java
pardouin: dans la communauté Python, tout ce que dit Guido est parole d'évangile, et du coup quand tu dis quelque part que c'est dommage qu'il manque telle ou telle feature, tu as 36 fanboys pour te répéter le même truc, genre "les sorted containers ça sert à rien, inutile de les avoir dans la bib standard"
happy-star: ou je peux trouver des algo avec solution
happy-star: wikipedia :open_mouth:
JBM: ok, ca je l'ai quand meme vu venir: [ERROR] /home/nemo/private/game-troll/src/test/java/TrollTest.java:[115,37] illegal combination of modifiers: abstract and static
JBM: bon j'ai pas du tout besoin d'interface en fait
JBM: en voila une invocation que je fais pas tous les jours
JBM: [ERROR] /home/nemo/private/game-troll/src/test/java/TrollTest.java:[99,36] Illegal static declaration in inner class <anonymous TrollTest$1>
JBM: ca progresse, c'est la que j'instancie et rajoute l'appel virtuel
JBM: c'est la qu'il me manque un nom de classe
JBM: je refous une classe parente
JBM: et j'en reviens au pb d'avoir un nom de classe
JBM: mais mieux forme que tout a l'heure: dans un bloc de classe anonyme
JBM: RHA [ERROR] modifier 'static' is only allowed in constant variable declarations
JBM: j'ai pas dit mon dernier mot
JBM: mais ca s'en rapproche :-/
JBM: je commence a comprendre la correlation entre les fans de java et de code generators
JBM: ah, mais j'ai pas encore essaye la reflection
BlaiseEbuth: T20h08e05o15
BlaiseEbuth: Exactement
BlaiseEbuth: T'as vu
BlaiseEbuth: merci le focus de merde
BlaiseEbuth: :grin:
JBM: rha je trouve plus ce chouette site oueb
BlaiseEbuth: Demande à Zorg1
dbdr: static ça veut dire sans parametre d'instance. abstract ça veut dire que ce sera défini pour les instances des sous-classes concretes
JBM: ca te fait donc bientot 12 ans
JBM: je te voyais gamin, mais pas a ce point-la
Alshock: xD Pas d'accord, j'aime beaucoup python mais même moi je trouve que Guido dit pas mal de conneries
JBM: dbdr: j'ai pas l'air comme ca, mais je connais les bases hein
Alshock: oups, scrolled up
dbdr: on dirait pas ;)
JBM: ce code est dans un contexte hyper-particulier
JBM: et c'est beaucoup moins evident quoi de tout ca s'applique aux classes anonymes
JBM: (je viens de lire la spec, j'ai eu des surprises)
JBM: la killer error pour l'instant c'est ca: [ERROR] /home/nemo/private/game-troll/src/test/java/TrollTest.java:[101,36] Illegal static declaration in inner class <anonymous TrollTest$1>
dbdr: un champ/method statique dans une classe anonyme, tu l'appelerais comment?
JBM: qui n'est pas evidente pour moi parce que je vois pas de raison sur le pourquoi pas
dbdr: vu qu'il faut le nom de la classe
dbdr: qui est anonyme
JBM: elle arrive bien a appeler sa superclasse
JBM: anonyme ne veut pas dire inexistante
BlaiseEbuth: J'essaye encore de comprendre comment tu calcules 12 ans à partir des définitions de static et abstract. :thinking:
JBM: on pourrait avoir une ref vers la metaclasse, par ex
dbdr: si c'est statique ya pas de superclasse
dbdr: c'est juste un namespace
JBM: mais il est dual ce namespace
dbdr: l metaclasse existe pas à runtime
dbdr: tout à fait, c'est pas clean comme design
dbdr: tu as pas de this
dbdr: donc pas de metaclasse
JBM: tu as pas de this dans un contexte statique
Alshock: les this non, mais j'ai du thym pour qui veut
JBM: mais tu aurais pu avoir le namespace
BlaiseEbuth: fix ta serpolet
dbdr: purement syntactiquement oui
dbdr: mais du coup tu peux le faire à la main
BlaiseEbuth: La syntactique c'est quand tu codes pour tromper l'enemi
JBM: je veux juste pouvoir des pt1 d'agents a la volee en leur donnant juste une liste de coups a jouer sans avoir a ecrire un main complet pour chacun!!!
dbdr: tu peux définir une method non-statique dans le parent, non?
dbdr: pour factoriser
JBM: abstract ClosureType getData();
Cylia: Salut tout le monde, je suis bloquée sur un truc pas mal d'heure, ça me rend dingue. Est-ce qu'il y aurait un ame charitable pour m'aider s'il vous plait ? J'ai juste une question
dbdr: JBM est sur le point de redécouvrir les Factory :D
JBM: j'avais peur que tu dirais ca
dbdr: et de passer du coté clarement obscur
JBM: parce que ce terme, je l'ai vu passer un paquet de fois dans mon googling du jour
BlaiseEbuth: design patern...
dbdr: ben c'est exactement pour ça
BlaiseEbuth: berk
JBM: les design patterns sont la trace des lacunes des langages
BlaiseEbuth: J'allais le dire
BlaiseEbuth: merci
JBM: mes collegues qui faisaient du java s'en servaient juste pour instancier des objets a l'epoque
dbdr: en gros, new c'est toujours avec un type concret
BlaiseEbuth: Cylia: j'ai pas d'âme, mais tu peux poser ta question
dbdr: si tu veux abstraire les new tu peux avoir un object qui en crée un autre
dbdr: aka Factory
JBM: mais est-ce qu'il arrive a me les generer dans une nouvelle classe a chaque appel?
JBM: je suis plus proche du gensym que du virtual constructor, en termes de design pattern
JBM: a lire la VF de la page factory, non c'est pas vraiment "exactement pour ca"
dbdr: tu veux faire du metaprogramming?
dbdr: la nouvelle classe à chaque fois diffère comment des autres?
JBM: par le contenu de la closure
JBM: (la liste de coup, en l'occurrence)
JBM: le main c'est juste un for(...) println(...)
Alshock: @Cylia oh n'héiste pas à poser tes question dans le grand monde ouvert, c'est pas les débats sur la factory de trolls en magie noire de JBM qui doit t'arrêter
Cylia: @Alshock c'est sûr haha mais je préfère eviter d'interrompre votre conversation ^^'
JBM: on a souvent 3 conversations paralleles
BlaiseEbuth: Mais si, faut les interrompre !
Cylia: merci :D je saurais pour la prochaine fois
dbdr: je suis pas tout. pour une methode statique comme main, il faut la définir pour chaque point d'entrée, et oui c'est de la répétition
dbdr: tu peux juste le minimizer
JBM: je tente une avant-derniere approche avec des generics
dbdr: http://chat.codingame.com/pastebin/40a583e4-73d4-4abb-933b-709631a81693
dbdr: et la tu peux hériter des comportements communs
Alshock: .CeQueTuVeux();
JBM: oui mais t'as qu'une classe la, elle peut pas statiquement diverger sur la data
dbdr: flemme :)
Alshock: CamelCaseMaTuer
dbdr: Child1, Child2, ...
dbdr: ou Child(data)
dbdr: si tu peux réifier
JBM: c'est ce que je cherche a eviter
dbdr: à un moment il faut bien décrire les différences, non?
JBM: sauf si tu me trouves un maniere de faire que j'ai pas essayee dans les 3 precedentes heures
Alshock: diantre j'avais jamais entendu quelqu'un d'autre qu'Aurélien Barrau dire "réifier"
JBM: je dis juste qu'en l'etat, on n'a pas encore trouve comment le static main irait trouver la dynamic data
JBM: c'est bien le noeud du probleme
dbdr: c'est super utile comme concept en programmation la réification
dbdr: et c'est (souvent) bien(TM)
JBM: ben developpe. que je voie ce que tu veux dire
dbdr: je réponds à Alshock
JBM: j'avais zappe sa ligne :oups:
dbdr: :D
dbdr: joli
Alshock: ah ah déso, je parallélise trop ça devient de la parasitélisation
JBM: oh t'as le droit d'aider aussi :p
Alshock: oulah
Alshock: on sort de mon champ de compétences par environ trois planètes
JBM: la terre entiere sait coder en java, non?
dbdr: JBM, si tu écris un exemple qui te plait pas, je peux voir si je trouve mieux
Alshock: évidemment
dbdr: c'est trop compliqué avec les descriptions partielles
JBM: je te simplifie le truc et je le paste
JBM: tu veux quel niveau de "marche pas"?
dbdr: :+1:
dbdr: c'est pas important que ça compile
dbdr: je veux comprendre tout le contexte
Alshock: @JBM J'aimerais tellement te voir débarquer dans les entretiens à chaque fois que quelqu'un dit qu'il maîtrise un langage et lâcher un "ça tombe bien justement j'ai une petite question..."
JBM: http://chat.codingame.com/pastebin/2c0a03d2-9c7d-4b2c-a0c7-d1b2c389af57
**[CG]Thibaud va voir ce qu'est la réification
JBM: cette variante pete pour la raison (sensee) de "ce main n'est pas assez static"
JBM: vu qu'il ferme sur tosses
JBM: tiens j'ai perdu le public sur la classe mere entre 3 tentatives
JBM: Alshock: ca m'est deja arrive
dbdr: deja renvoyer un Class ça complique énormément
dbdr: c'est l'API CG qui demande çá?
JBM: en vrai y'a des alternatives
JBM: mais c'est que des alternatives a base de spawn
JBM: et c'est deja assez lent comme ca
Alshock: ah le spawn ça je connais, ça m'arrive à chaque fois que je fais de la merde dans un rpg :D
Alshock: :door:
dbdr: static Class staticAgent(final int[] tosses)
dbdr: ça veut dire que tu veux pouvoir generer un nombre non borné de Class différentes?
dbdr: mon intuition c'est qu'il faut une classe unique
dbdr: tosses c'est des données
JBM: sauf miracle je vois pas encore comment
dbdr: noeud?
dbdr: c'est quoi l'API de CG?
JBM: je sais pas comment repondre a ca surt un chan ou les [cg] ont droit de kick
JBM: void GameRunner.addAgent <https://codingame.github.io/codingame-game-engine/com/codingame/gameengine/runner/MultiplayerGameRunner.html#addAgent-java.lang.Class->(Class <https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true><?> playerClass) Adds an AI to the next game to run.
dbdr: lol
JBM: [ERROR] /home/nemo/private/game-troll/src/test/java/TrollTest.java:[109,28] non-static type variable C cannot be referenced from a static context
JBM: bon c'est mal parti ca aussi
dbdr: tu generes des AIs de joueurs à la volée?
JBM: pas encore. j'aimerais bien justement!
dbdr: oui, j'ai eu ce problème aussi pour faire tester mes solutions par le referee
dbdr: l'API est mal concue je trouve
dbdr: :innocent:
JBM: je suis pas du genre a me laisser decourager par les basses considerations comme ca
JBM: mais la j'ai quand meme beaucoup pousse dans pas mal de directions
dbdr: donc, moi je dirais une seule classe
dbdr: et dans cette classe, tu récupères les données comme tu peux, aka cradement
JBM: une seule classe, et je magouille avec un timer de lui changer ses data dans son dos?
dbdr: timer c'est tres vicieux :D
JBM: mmm j'ai une autre vague approche
JBM: je pense que le runner les instancie dans l'ordre
JBM: donc une global static avec les deux listes de coup
JBM: le constructeur les depile
dbdr: oui, il faudra de létat global
dbdr: c'est l'API qui demande ça, en gros
dbdr: addAgent devrait prendre une instance, pas une classe
dbdr: après il y a peut-etre une raison que me raison ignore
dbdr: ;)
JBM: ils sont trop fans de guice et ils veulent s'en servir partout?
dbdr: à la limite Player1.class et Player2.class
dbdr: histoire que ça dépende pas de l'ordre?
JBM: "non j'ai mis une Queue c'est pas crade"
dbdr: allez, ponds nous du code digne du dailyWTF ;)
JBM: je fais que ca depuis 3 semaines
dbdr: :D
dbdr: ça me rappelle le blog que j'ai lu ce matin, qui wrappait une lib stateful et non-tread-safe en rust pour que les états invalides ne soient pas représentables
dbdr: c'est du boulot, c'est sur, mais bon c'est la contrainte externe
dbdr: et c'est joli que ce soit même possible
JBM: java.util.NoSuchElementException :-(
JBM: http://chat.codingame.com/pastebin/c7edb194-9215-42bd-b7a1-89d41f5e7efe
JBM: il me lance ca dans un total autre contexte il semblerait
JBM: bon on pourra pas dire que j'ai pas essaye d'etre de bonne volonte
JBM: allez hop un bot en 0.5 lignes de perl
JBM: ou en 5 chars de bash plutot en fait
Stilgart: on dirait AutomatonNN
AutomatonNN: sans bon tu veux pas te dire que tu as fait un truc que tu as pas trop de regles pour te rendre comp
Stilgart: la magie des 0.5 lignes de perl :)
JBM: ca y est, j'ai passe le cap
JBM: mon premier JUnit *qui passe*
JBM: toute ma pitie envers ceux qui font du java professionellement
BlaiseEbuth: Les TU en java c'est comme les tests de conformité environementale chez monsanto, c'est vraiment pour dire de les avoir fait...
FreexXx: Zorg1 youpi je te ratrappe enfin :p (fais croire que tu as passé des mois a codé ton ia et que tu en es fier xD )
FreexXx: https://www.codingame.com/share-replay/472100776
FreexXx: pas tres fair cette map non ??? ^^ https://www.codingame.com/replay/472102678
dbdr: il y a mirroir non?
FreexXx: je crois pas non
FreexXx: enfin j'ai pas l'impression
FreexXx: en changeant la position je gagne mais dans l'historique je trouve pas le mirroir
FreexXx: cool 700 to 369 grace au bfs :)
FreexXx: il me faut remplacer ma methode qui split mes troupes pour rien et je serai allé au bout de mon idée
dwarfie: salutations les gens , les tortues , les licornes , AutomatonNN et Automaton2000
Automaton2000: moi ça fait une grosse différence
AutomatonNN: oui je suis tout seul a pas te dire que tu parles de qui t'es mort ? :p
BlaiseEbuth: o/
dwarfie: AutomatonNN : you see dead people ?
AutomatonNN: tortue ne t'en sors pas AutomatonNN
dwarfie: YES !!!!
BlaiseEbuth: Un demi bravo
dwarfie: clair ... vu que Automaton2000 a encore decide de rien dire d'intelligent ;)
Automaton2000: comment on fait pour avoir une bonne raison
dbdr: AutomatonNN se ping tout seul maintenant?
AutomatonNN: oui
FreexXx: la barre des 100 000 joueurs a etait depassé sur csb :)
dbdr: :scream:
Adji: Bonsoir
Adji: Je dois passer un test d'entretien sur coding game, comment il faut s’entraîner pour être bon le jour J.
Adji: Merci
dbdr: je pense que faire des puzzles peut etre utile: https://www.codingame.com/training
pardouin: https://cses.fi/book/book.pdf
pardouin: la base
dbdr: je suis pas sur que ça corresponde aux questions typiques d'entretien, ça, si?
BlaiseEbuth: Bof
pardouin: à lire surtout après avoir fait pas mal de pbs par soi-même, pour compléter, prendre du recul
BlaiseEbuth: C'pas trop l'genre des tests...
BlaiseEbuth: Adji.rotate(-90);
pardouin: quand tu as un reverse sur CoC, que ton truc passe 100% des tests, tu soumets et là 75% :/
pardouin: encore sur un CoC de rapidité où les règles sont énoncées clairement c'est à toi d'anticiper mais quand les règles sont à deviner c'est moyen
BlaiseEbuth: On t'a dit CoC is bad. Tu en fais quand même ? Te plains pas. :grin:
pardouin: une idée de pourquoi ça ne passe pas :
pardouin: http://chat.codingame.com/pastebin/d6ad04f6-fe4a-44dd-826f-5a30b40db6d2
pardouin: alors que ça passe 100 % :
pardouin: http://chat.codingame.com/pastebin/f34d3804-173c-44ee-9193-e6a91b4e1c9a
pardouin: (il fallait juste afficher autant de a qu'il y a dans le mot puis autant de b etc en comptant majuscules et minuscules)
BlaiseEbuth: skoi n ?
Neumann: Il suffit pas de passer ton string en lowercase, de virer les chars qui sont pas des lettres, puis de sort les caractères de la chaine obtenue par ordre alphabétique ?
JBM: t'as une ame de clasher toi
BlaiseEbuth: Comme les jluifs ?
Neumann: Wow
JBM: oui il est tres limite ces derniers jours
JBM: il s'en fait une fierte pour se donner un genre mais ca va finir psa se retourner contre lui
pardouin: on est d'accrod neumann mais j'ai fait le premier truc qui m'est venu
Neumann: Yes, la panique du clash
pardouin: mais tu vois d'où peut venir l'erreur ou pas?
Neumann: Happens
Neumann: Pas vraiment, sur le papier ça a l'air pas mal
BlaiseEbuth: Hmm ? Pourquoi limite ?
Neumann: Pas une histoire de "isalpha" qui considère la ponctuation comme OK ?
pardouin: je vais voir la doc
pardouin: non apparemment c'est vraiment que a-z et A-Z
Neumann: Je sais pas alors
BlaiseEbuth: Esprits étriqués...
Zorg1: bah dans le premier cas tu comptes les minuscules, or tu peux regarder avec une majuscule
Zorg1: donc c'est normal qu'il y ait des cas où ça merde
Zorg1: dans le premier cas quand tu appelles s[a] tu devrais convertir a en minuscule
Zorg1: Automaton2000 AutomatonNN la forme ?
AutomatonNN: oui oui
Automaton2000: ça me fait penser à un truc
Zorg1: pardouin : (j'ai répondu à ta question)
pardouin: j'ai converti tout en minuscules dès le début donc normalement pas de soucis
Zorg1: bah non seulement pour compter
pardouin: et je passais des tests qui mélangeaient maj/min sans pb
Zorg1: ah ok
Zorg1: pas vu désolé
Zorg1: mais attend quand tu itères sur un tableau comme s avec list(s), t'es sûr qu'il te récupères les clés, pas les couples clés/valeurs ?
Zorg1: pas un tableau un dictionnaire
pardouin: list(dict) donne la liste des clés
pardouin: c'est items pour chopper les deux
nicola: En Python ? Pour les clés, tu peux les avoir avec tondico.keys().
BigUP: oui c'est plus propre
Topinambour: mais les clés de s, ça va être quoi ? des chaînes ou des nombres ?
nicola: C’est quoi, s ?
BigUP: Topinambour, c aca dépend si tu as mis des nombre ou des chaines
Zorg1: s = Counter(input().lower())
nicola: Vois un dictionnaire comme une application mathématique.
nicola: Je ne connais pas Counter.
nicola: Les valeurs sont les images.
nicola: Les clés, les « antécédents ».
Zorg1: si les clés sont des nombres, alors isalpha() risque de ne pas marcher dessus
nicola: Yep.
nicola: Un nombre n’a pas cette méthode.
Zorg1: Counter => ça pète une liste (là une chaîne) en éléments et ça les compte
nicola: Bon, je retourne remplir des bulletins.
nicola: Ha OK.
Zorg1: après les élements d'une chaîne en python, c'est quoi une chaîne ou un nombre (le codepoint du char ?)
nicola: C’est dans quelle bibliothèque ?
nicola: Les éléments d'une chaîne sont des nombres.
nicola: C’est pour un byte où ce sont des nombres.
Zorg1: pas un byte, c'est des str unicode maintenant je crois
nicola: "bidule" est par défaut un str en utf8.
Zorg1: pardouin : pê trouvé une explication
pardouin: dans l'exemple le Counter va être un dict dont les clés sont les char contenus dans la chaine
pardouin: le script que j'ai mis passait tous les test donc le truc marche dans la plupart des cas
pardouin: je viens de découvrir une nouvelle astuce de golf, je vous la partage : on peut faire input(truc) à la place de print(truc)
Zorg1: allors c'était quoi le problème avec le premier truc ?
pardouin: tel quel ça paraît inintéressant mais s'il y a au moins 2 input et un print on peut définir I=input et on y gagne
pardouin: (le script passait 100% de tests mais seulement 75% à la soumission, aucune idée de pourquoi)
Zorg1: ah un caractère accentué considéré comme un alphabétique par isalpha
Zorg1: mpais c'est étrange je croyais qu'ils évitaient les non ASCII dans leur puzzle
pardouin: tu dois avoir raison
pardouin: je vois des sources qui disent que c'est seulement a-z A-Z et d'autres qui disent que les lettres accentuées comptent
pardouin: alors soit ils ont changé ça dans une version récente, soit ça dépend de l'environnement
pardouin: merci en tout cas
Zorg1: aund je regardesla doc isalpha de python il a l'air de bosser dans unicode
Zorg1: donc les "lettres" ne sont pas que [a-zA-Z]
Zorg1: après bon c'est pas recommandé d'utiliser autre chose que des ASCII, mais bon vu les process de validation des CoCs
Zorg1: (dans les entrées/sorties des puzzles et CoC)
Zorg1: OK en lua pour faire des simus c'est pas la joie
Zorg1: les seules fonctions de temps disponibles par défaut ont une résolution à la seconde.
Zorg1: ça va être dur pour 50 ms ^^
dbdr: https://wiki.cheatengine.org/index.php?title=Lua:Class:Timer
dbdr: ça parle de ms
dbdr: Zorg1:
Zorg1: oui mais c'est une lib en plus
Zorg1: dans CG tu as vraiment le paquet des libs de base
dbdr: ah. faut peut-etre demander à CG de l'ajouter
Zorg1: qui est assez minimalistes
dbdr: ça il le font assez facilement
BlaiseEbuth: Du lua sans ms donc ?
Zorg1: bah dans la config de base oui
dbdr: une stdlib minimaliste c'est mieux qu'une stdlib énorme dont la moitié est deprecated
Zorg1: ah non os.clock() retourne une fraction de seconde
dbdr: apres sur CG c'est limitant parce que tu controles pas
dbdr: ça parait plus raisonable d'avoir ça qd meme, c'est assez fondamental
BlaiseEbuth: les chronos c'est pour les faibles
Zorg1: mais tout le monde n'arrive pas forcément à faire un MC avec une seule simu ;-)
Zorg1: "je tire au sort et hop c'est la solution optimale"
BlaiseEbuth: J'ai pas dit qu'il fallait en faire qu'une, j'ai dit de le faire sans chrono
Zorg1: oui je faisais un paquet determiné de simus
dbdr: let x = random.good()
Zorg1: "pas besoin d'heuristique quand on a du bon random"
dbdr: println(random.feeling_lucky())
Alshock: xD vous êtes cons ! Je vous aime :D
BlaiseEbuth: Toi aussi t'es con.
Zorg1: Automaton2000, enchaîne !
Automaton2000: ah mais tu parles de quoi?
Zorg1: ça serait pratique s'il y avait un pretty printer dans l'IDE pour reformater mon code ^^
RomanceDawn: on coupe du bois
RomanceDawn: et on fait de la musique
BlaiseEbuth: muscieque
RomanceDawn: :thinking:
RomanceDawn: bon je vais me coucher moi
Zorg1: le si tourne en rond
JBM: les six rondelles reviennent
dbdr: j'aillais dire qu'apres Control-A Control-X ça (re)formate, mais bon, reflechissez avant d'essayer ;)
RomanceDawn: controlx c coupé nan
dbdr: oui
Bon[]Crayon: ctrl sfit i avec certain language ça fonctione
dbdr: du coup c'est bien formatté après
Zorg1: le matheux : "pour bien formater, commençons par le cas trivial, le fichier vide" :p
Zorg1: après on procède par récurrence ...
dbdr: pour le cas non trivial, vider le ficher, puis voir ci-dessus
Zorg1: Ctrl+Shift+i ça ouvre la console JS sur FF :D
JBM: ah? chez moi c'est alt-f4 qui fait ca
Zorg1: l'horrible vérité fait jour : je suis sur Windows ...
Bon[]Crayon: c'est le raccourci indiqué dans l'aide de l'ide
JBM: deja t'as trouve comment unlock l'aide
Bon[]Crayon: click dans l'éditeur puis F1
Zorg1: c'est un achievement ? on a de l'XP si on fait ça ? ^^
JBM: t'as fait alt-f4, pas f1 la
Bon[]Crayon: c'est une astuce d'AutomatonNN
AutomatonNN: et je me demande si c'est pas un problème de contest pour le top 20
Zorg1: ah encore une bidouille avec des réseaux de neurones
JBM: [WARNING] /home/nemo/private/game-troll/src/test/java/TrollTest.java:[60,35] unchecked cast
JBM: ca sous-entend qu'il existe un "checked cast"?
Zorg1: the gcc way of life : "c'est un warning, on s'en fout" :p
JBM: ca fout du rouge dans mes compiles
BigUP: ca fait joli !
Zorg1: euh normalement rouge c'est une erreur, warning c'est jaune (enfin sur mon eclipse)
JBM: c'est mon nightmode qui les rend durs a distinguer
Zorg1: après t'as peut être des settings de h4ck3ur
JBM: surtout quand y'a pas d'erreurs pour comparer
Zorg1: y a la méthode "professionnel de la profession", tu demandes à éclipse de te générer une annotation pour ignorer le warning de cast
Zorg1: oui genre "y a un warning on le met sous le tapis"
JBM: http://chat.codingame.com/pastebin/c004e42f-6c07-4024-b849-3709f9f7ec95
Zorg1: Quand t'as des libs disparates tu peux pas trop éviter
JBM: si je caste le param E en (List) ca passe avec trois warnings
JBM: ce qui est mieux qu'une erreur je te l'accorde
JBM: mais je prefererais que ca juste passe sans warning ni erreur
JBM: l'appel est dans un bloc if (v instanceof List), si ca change qqch
Zorg1: t'as encore fait un truc tordu de Haskelleux ...
JBM: je suis pas un pro de java comme vous moi
JBM: l'autre jour je suis tombe sur les docs et tutos d'oracle
JBM: qui disait que java etait un langage a typage statique fort
JBM: du coup je comptais un peu dessus
Zorg1: les génériques ça été un peu rajouté quand le bateau traçait en mer
JBM: "ouhla on se prend des raclees a cause de la STL"
JBM: comment je caste mon E en List<V>?
JBM: j'ai essaye des trucs, il me dit qu'il connait pas V
JBM: je pourrais le rajouter aux parametres de la methode, mais ca ferait un peu bizarre
Zorg1: c'est quoi la déclaration de ta fonction ?
JBM: vu que c'est que dans un cas particulier qu'il aurait du sens
JBM: static <E> void dumpGeneric(PrintStream p, E v) {
JBM: http://chat.codingame.com/pastebin/31a5f9bd-2368-4cec-bb3c-4580c1bfc8cf
JBM: allez je rajoute un V pour voir
JBM: bon ben c'est toujours ca de pris
JBM: OUI JE SAIS DIS MOI JUSTE COMMENT LE CHECK
JBM: heureusement qqun a deja pose la question a SO
Zorg1: dumpList pose problème aussi, non ?
JBM: celui que je vous ai donne tout a l'heure d'ailleurs
Zorg1: c'est quoi son prototype à dumpList ?
JBM: mais t'etais ptet pas encore la
JBM: static <V> void dumpList(PrintStream p, String tag, List<V> list) {
Zorg1: houla effectivement ça pose problème ça
Zorg1: en compile time il a aucun moyen de checker, vu que "instanceof List" c'est du runtime
Zorg1: (en gros, je sais pas si je suis super clair)
JBM: donc un checked cast est pas possible et de AbolishWarnings?
Topinambour: voilà tu peux toujours forcer un check de v en List, mais en gros tu peut pas savoir le QUoi de List<Quoi>
Zorg1: oups
JBM: elle se met ou l'annotation?
JBM: pas au debut de l'expression du cast apparemment
JBM: avant la methode ca passe
Zorg1: si t'as un warning dans éclipse si ti clique (gauche ou droit) je ne sais plus sur le warning il va proposer de te l'ajouter
JBM: c'est pas super fin comme granularite dites-moi
BigUP: p'tete si tu jette Eclipse ?
JBM: (mais je suis pas super satisfait pour celui-la, j'y reviendrai
JBM: V[] a = (V[]) list.toArray();
BlaiseEbuth: Oh oui, java c'est fin, c'est très fin... C'est roulé sous les aisselles.
Zorg1: hop https://stackoverflow.com/questions/1129795/what-is-suppresswarnings-unchecked-in-java
Zorg1: ah list.toArray => ça marche ça ? c'est toujours le bazar ce truc à faire marcher
Zorg1: tu peux mettre l'annotation juste devant l'instruction qui pose problème
JBM: juste avant l'instruction j'ai pas reussi
Zorg1: bigUp BlaiseEbuth : pas fini de critiquer ce *super* langage qu'est Java, oui ?
JBM: j'ai elimine le suppresswarnings
Zorg1: sinon je vais vous évangéliser à coup de baton, moi
JBM: avec ca: if (v instanceof List) dumpList(p, null, (List<?>) v);
BlaiseEbuth: perl bless Zorg1
BigUP: Zorg1, la je critique non seulement Java, mais le super programme fait avec Java qu'on appel Eclipse !
JBM: plus que mon toArray, donc
Zorg1: BigUp : oui programmer avec Eclipse, parfois c'est un peu faire une régate avec un super tanker
BlaiseEbuth: Oui mais à la rmae le super tanker.
BlaiseEbuth: µRAME
BlaiseEbuth: BREF
Zorg1: Garde Chiourme Java
Zorg1: un boulot d'avenir
Zorg1: tu donnes le rythme sur ton tambour
BigUP: surtout que maintenant il y a quand meme des trucs qui font la meme chose en étant un poil moins lourd
BlaiseEbuth: Que les supertanker ?
Zorg1: c'est marrant quand Eclipse était arrivé c'était un progrès par rapport au IDE de l'époque
Zorg1: Netbeans c'était vraiment d'une lenteur monstrueuse
BlaiseEbuth: intellij c'est cool, sauf le java...
BigUP: en meme temps, j'ai jamais vraiement utilisé d'IDE... que de l'editeur de texte léger rapide et efficace
Zorg1: VC est pas mal
Zorg1: JBM : edlin aussi pour les vieux du MSDOS ?
Zorg1: avec l'assembleur 8086 fourni, je ne sais plus comment il s'appelait
Zorg1: ah il n'avait pas repris le nom DDT de CP/M
Zorg1: ça aurait pê un peu trop visible qu'ils avaient pompés comme des gorets
JBM: ListIterator a un .nextIndex(), mais pas de index
JBM: doit y avoir un trucc qui m'echappe encore
Zorg1: ListIterator il peut pas aller dans les deux sens ?
Zorg1: en fait le curseur est toujours entre deux éléments jamais sur l'un
JBM: ok alors jme refais un foreach avec ca et je me debarrasse de l'array
Zorg1: ce qui fait que la sémantique du remove et du set sont un peu bizaroïde
JBM: ah oui c'est un peu chelou a lire le texte
JBM: heureusement j'ai pas besoin de ca
JBM: y'a pas de get() sans next()
JBM: les gens qui ont concu ca ont jamais ecrit de boucle for?!
Zorg1: ?
JBM: comment tu ecris l'equivalent du C++ for(container::iterator i = c.begin(); i != c.end(); ++i) ?
Zorg1: si tu fais un "foreach" t'en as pas besoin non ?
Zorg1: for (String s: maListedeString) { }
Zorg1: ça marche aussi avec un tableau, ça se débrouille avec l'Iterator normalement
JBM: j'ai besoin de l'indice, bis
Zorg1: ?
Zorg1: ah ok
Zorg1: je comprenais de travers
JBM: donne-moi un plus gros indice
Zorg1: le plus simple c'est encore de faire à l'ancienne
JBM: a l'ancienne c'est un array
Zorg1: for(int i=0;i<array.length;i++) ça marche pas ?
JBM: ca marche, mais pour avoir l'array j'ai le warning de cast
BigUP: Tiens... Juste derriere toi Zorg1 sur PR2 ;)
Zorg1: PR2 j'ai pas touché depuis le début de l'unofficial
Zorg1: je me suis inscrit mais bof
BigUP: idem, je viens juste de resubmit
Zefaryo: J'ai un problème et je ne vois pas d'où ça vient : http://chat.codingame.com/pastebin/27dcf7f3-632a-4adc-8303-ef64d642f602
Zorg1: ça j'ai fait j'ai perdu 200 places ^^
BigUP: Zefaryo, t'as forcément un \n en fin de ligne
JBM: et hpo, plus de warning de java
Zefaryo: Si je supprime le dernier caractère du string c'est le # qui part
BigUP: Zefaryo, balance ton code ici directement
Zefaryo: Il n'est pas très beau mais voici: http://chat.codingame.com/pastebin/b9ec710a-5e84-4dbb-8c03-a625712fa292
Zorg1: ah du C ça change ^^
BigUP: Zefaryo: printf("%s\n",output[height]);
BigUP: tu vois que tu en as un ! ;)
BigUP: Zefaryo, printf met déjà un \n
Zefaryo: C'est lui qui part :printf("%s",output[height]);
Zorg1: BigUP : euh non
Zorg1: faut lui dire d'un mettre un
BigUP: Zorg1, ha !? mince, c'est loin le C pour moi alors ! :)
Zefaryo: D'ailleurs bizarrement quand je mets le printf dans la boucle qui tourne dans le vide, rien ne s'affiche
Zefaryo: La boucle à la fin du main
Zorg1: par contre est ce que la string n'en aurait pas un par hasard ?
Zefaryo: Non, j'ai essayé : Si je supprime un supposé \n c'est un autre caractère qui part
Zefaryo: Comme ça: Échec Trouvé : "###" Attendu : "### "
JBM: c'est quoi le texte du cas de test?
JBM: ton pb c'est pas juste que t'affiches qu'une lettre?
BigUP: Zorg1, je suis passé devant ;)
Zorg1: gg
Zorg1: je me suis vengé avec mon smurf en lua sur SR qui est devant toi avec 1500 simus :p
Zefaryo: Il faut juste que j'affiche E en ascii mais il y a un \n en trop supposement. Cependant lorsque je supprime ce caractère en trop, c'est un espace qui part donc j'en déduis qu'il n'y a pas de \n
JBM: je ne suis pas sur que les espaces en fin de lignes comptent
JBM: y'a toujours pas de std::pair, de multiple value return ou de parametres bidirectionnels en java?
pardouin: c'est pas de là que tu récupères un \n :
pardouin: fgets(ROW, 1025, stdin);
pardouin: ?
SupergreenTony: Zefaryo, regarde bien, chaque lettre en ASCII contient N caractères DONT un espace à la fin ;)
Zefaryo: J'ai bien un espace vu que les lignes précédentes sont acceptés
Zorg1: en fait c'est très bête
Zorg1: fgets récupère un '\n'
Zorg1: mais le problème c'est que tu as deux chars dans T
Zorg1: la lettre et le '\n'
Zefaryo: Ah oui, effectivement! ça explique pourquoi la boucle tournait pour un caractère en plus
pb4: JBM : "multiple value return ou de parametres bidirectionnels en java?"
pb4: Ca existe en C++ ?
Zorg1: et ça doit générer des sorties de merde qui stresse CH
Zorg1: *CG
pb4: Le multiple value return j'utilise pair/tuple et "structured bindings", il y a mieux ?
JBM: en c++ tu peux feinter du return multiple avec std::pair ou tuple
pb4: et les paramètres bidirectionnels ?
JBM: et t'as des parametres bidirectionnels avec les references et/ou les pointeurs
pb4: Ok
pb4: Il me semblait que java n'avait que des références, donc ça a les "paramètres bidirectionnels" non ?
pb4: Mais je ne connais pas vraiment java...
JBM: je vois pas comment "inviter" la fonction a m'ecrire 2 ints
Zorg1: sauf pour les types primitifs ...
pb4: ah...
pb4: return a + 100000*b ? :D
JBM: j'imagine que le "design pattern" est de cliquer la ou la dans l'ide pour qu'il te genere une classe paire aux types qui vont bien
JBM: que tu accedes depuis l'appelant
JBM: t'as une pression sociale forte pour lui donner un nom intelligent
pb4: std::javapair
JBM: et ensuite l'effet de groupe fait que tlm trouve ca mieux qu'un type anonyme ad hoc
pb4: <3 pair et tuple
pb4: J'en ai partout dans mes codes :)
pb4: peut être à l'excès....
JBM: y'a meme une forme primitive de destructuring bind maintenant en C++
Zorg1: pb4 : return a+10000*b : t'as codé avec les meilleurs toi :p
pb4: Zorg1 : j'apprends et je ne pratique que sur CG
JBM: on est encore loin du niveau common lisp (ou meme octave, tiens)
Zorg1: (j'avoue avoir eu recours à cet expédient)
JBM: mais ca progresse mieux que java
pb4: Zorg1 : moi je n'avoue rien
BigUP: Zorg1, ha t'as sorti ma fitness de SR !?
pb4: (pas sûr de l'avoir utilisé à vrai dire...)
JBM: bah, ca peut toujours servir
Zorg1: bigUp : gné ?
JBM: c'est probablement marginalement mieux avec un a+256^4*b
BigUP: Zorg1, ma fitness de SR a la meme tete :)
Zorg1: c'est pb4 qui doit voir ton code alors ^^
JBM: mais bon, pour tvc j'essaie de faire du code idiomatique exemplaire
JBM: et je me heurte a de bien tristes conclusions
Zorg1: mais bon ma fitness SR doit avoir la même tronche également
BigUP: Tin j'essaye d'améliorer mon code PR2, mais j'ai tellement fait ca crade, que j'ai du mal a voir ce que je fais !
Zorg1: ouaip c'est pour cette raison que j'ai même pas essayé de l'améliorer
Zorg1: je pense qu'il faut tour réécrire
BigUP: je vais essayer de rendre mon code plus lisible, mais ca va etre long....
Zorg1: il finit Lundi l'unofficial ?
BigUP: un truc comme ca, mais je m'en tape du concour
Zorg1: ah t'es là aussi pour la gloire ? ^^
leojean890: pas inscrit, avais pas trop envie en voyant que ça existe, et encore moins en sachant que c'est PR2..
leojean890: les multis j'y ai passé pas mal de temps récemment déjà sans ça..
Zorg1: surtout sur SR ces derniers temps pour ma part
leojean890: From 2020-06-05 7am UTC to 2020-06-15 7am UTC
leojean890: par contre je jette des cous d'oeil à leur LB de temps en temps
leojean890: coups
Zorg1: LB ?
leojean890: leaderboard
leojean890: Nerchio a commencé pour l'occas et est 6eme par ex
Zorg1: ah
leojean890: il a tt remonté en qq jours quoi
leojean890: ouais SR pour toi, moi j'ai varié par périodes
leojean890: tiens j'ai pas testé ça mais ça semble sympa pour analyser des replays https://github.com/sethorizer/csb/tree/master/src
leojean890: je ne sais pas qui c'est sur CG
BigUP: J'ai pas compris ce que fait son truc
JBM: ce pseudo me rappelle qqch
leojean890: j'ai juste lu le code, je vois pas exactement ce que ça fait mais ça peut se tester pour mieux comprendre ce que ça fait :P
BigUP: leojean890, c'est un simulateur qui doit plus ou moins analyser ce que fait le code d'un player
leojean890: ouais je pense aussi
leojean890: dans son main il hardcode des positions de pods
leojean890: et dans son dossier data il a des replays du genre
leojean890: replay_pb4vsNeumann_1.txt Updated for accurate angles and CP testing.
leojean890: genre analyse de replays de codes performants ;P
leojean890: Specify your binary with --binary and choose the replays with --replays
leojean890: ça fait arène locale
BigUP: ca ressemble a ca
Snef: c'est pour tester la précisions de ton moteur de ce que je vois dans le readme
Snef: -s
leojean890: test_categories = {
leojean890: '01_only_moving':
leojean890: '02_activating_boosters':
leojean890: en effet ça doit être ça Snef
leojean890: vu qu'il y a des tests de parties du bot spécifiques
leojean890: j'aim bien le code csb d'inory avec char copyright[] = "github.com/..."; // do not remove
leojean890: printf("%d %d BOOST %s\n", (int) round(px), (int) round(py), copyright);
leojean890: pour l'afficher en msg dans les output lol
BigUP: C'est bien ca, il y a un gars qui spam push loose contre moi sur PR2... je vais gagner de la place ! ;)
leojean890: mdr le hasard des submits hehe
leojean890: pareil j'a jeté des coups d'oeil à l'évol de mon ranking et ça varie bcp dans les 2 sens
leojean890: j'ai du perdre 20 places avec leur contest pour le moment:P
leojean890: j'sais tjr pas quoi faire sur csb en tt cas xd
Zorg1: faut que je reporte mes bidouilles de SR dans CSB moi
Zorg1: histoire de voir si ça me fait gagner des places
Zorg1: bn
leojean890: autant tester j'avoue :P
JBM: attends j'en suis pas encore la!
leojean890: bn
Zorg1: pouvez pas rester ici en pyjama Monsieur
JBM: ici on est en ete depuis 4 mois
Zorg1: ah oui le Sud
Zorg1: à Paris c'est un peu plus flou
JBM: flou c'est botre terme pour le brouillard?
Zorg1: pour moi c'est le mixte entre un coup il pleut, un coup il fait lourd
leojean890: il a fait 30++ il y a pas si lgtps:p
Zorg1: bn
leojean890: bn
JBM: leojean890: tu veux dire "dans les 10 dernieres annees"?
leojean890: 30 degrés il y a 10j;P
leojean890: même en mars j'allais randonner en t shirt
leojean890: ;)
leojean890: confinement sympa dans la campagne quoi
leojean890: et avec beau temps et 20 deg en mars
leojean890: par contre le week-end dernier c'est un peu redesc
leojean890: (30 => 18)
leojean890: ça n'a fait qu'alterner quoi mais en moyenne je le sens le réchauffement climatique
GaryAflalo: Vous savez à quel h chaque uit s'actualise les classements ?
leojean890: plutot dans les 2h non ?
JBM: Ça doit être dans la FAQ non?
GaryAflalo: Ouais je pense plus tard parceque la ils ont pas encore actualisé