Chat:Fr/2020-05-14

From CG community
Revision as of 10:57, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/13586498256488> Vry: Yop! <img src=/a/40590448621674> WhatTrickeryIsThis: yup <img src=/a/40590448621674> WhatTrickeryIsThis: Oh j'ai perdu 3 places cette nuit !...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Vry: Yop!

WhatTrickeryIsThis: yup

WhatTrickeryIsThis: Oh j'ai perdu 3 places cette nuit !

WhatTrickeryIsThis: je savais fallait pas dormir

BigUP: WhatTrickeryIsThis, ca va que 3 place,s t'aurais pu dormir 2 ou 3 nuits d'affilé

Neumann: Yo les nerds

egaetan: salut tout le monde

Spifflejedi: o/

Magus: ah bah je suis passé gold

Alshock: salut les enfants, les tortues, Automaton2000 et AutomatonNN

Magus: donc on peut être gold sans simuler l'ennemi et gérer le fow

Automaton2000: oui je vois que ça

[SG]Bisou: Magus tu te contentes d'optimiser ton ramassage de pellets?

tekki: yop

LoganWlv: #Magus quand tu dis sans gérer l'enemi, dans tes simus tu dois bien prendre en compte les pacs enemies non? SInon tu risques tu te faire tuer très souvent ?

LoganWlv: de te*

Alshock: il a pas dit sans gérer l'ennemi

Alshock: il a dit sans le simuler

tekki: laissez ce pauvre magus tranquille please

tekki: message venant d4AUtomatonNN :)

LoganWlv: #Alshock oui mais sans le simuler pour moi ça veut dire que tu ne simules pas les mouvements des enemies, donc les enemies restent tjrs à la même place ou n'existe carrément pas

tekki: yop AutomatonNN

tekki: les bots sont désactivés?

tekki: info AUtomaton2000

Automaton2000: il parle de quoi ?

YannDev: rip je suis retombé 323

tekki: salut YannDev

tekki: gg 323

YannDev: Coucou tekki

YannDev: bah non

tekki: ha bon :)

YannDev: j'étais top100 silver hier xD

tekki: fix it :)

YannDev: le pire c'est que j'éclatais tout le top10

tekki: AutomatonNN help him please

YannDev: mais je perds contre des gens nuls

YannDev: et je sais pas pourquoi

tekki: bah on verra bien

tekki: bon courage

YannDev: https://www.codingame.com/share-replay/463372131

YannDev: genre là je pige pas pourquoi je perds

YannDev: et si jamais je me mets contrele top2

YannDev: https://www.codingame.com/share-replay/463373450

LoganWlv: #YannDev Frame 11 ton pac id 1 peut faire un mouvement de 2 au lieu de 1

YannDev: Ah

YannDev: AH mais oui

YannDev: j'ai oublié de remettre ça

LoganWlv: Je sais pas si tu perds pour ça mais en tout cas ça peut s'amélioer :)

YannDev: ouaip

YannDev: merci beaucoup :)

YannDev: https://www.codingame.com/share-replay/463374913

Default avatar.png stephdz: comment vous évitez de vous faire bouffer par un ennemi que vous ne voyez pas en arrivant à un carrefour ou en prenant un virage ?

YannDev: on est à égalité

YannDev: je n'évite pas

YannDev: je me fais bouffer

YannDev: :')

Default avatar.png stephdz: ouais, j'ai beau tourner le pb dans tous les sens, je trouve pas de moyen !

Default avatar.png stephdz: pourtant, ça doit bien représenter 80% de mes pacs morts !

Default avatar.png stephdz: paix à leur âme !

tekki: prip

tekki: rip sorry

tekki: comme AUtomatonNN

tekki: je suis triste :(

tekki: Automaton2000 raconte-moi une histoire stp

Automaton2000: je dois rater un truc ...

tekki: explique -moi où est passé AUtomamtonNN stp

tekki: explique -moi où est passé AUtomamtonNN stp AUtomaton2000

Automaton2000: vu qu'on peut pas faire une ia qui marche bien

leojean890: stabilisation vers 208 dans la nuit on dirait bien

leojean890: gg Magus :p

WhatTrickeryIsThis: en rythme cardique?

WhatTrickeryIsThis: ah peu près oui

Alshock: est-ce qu'Automaton2000 vient de trash son frère alité dans le plus grand des calmes ?

Automaton2000: ok dans ce cas là ?

Alshock: non c'est pas ok <_>

leojean890: rythme cardiaque ?:P

tekki: non Automaton2000 :)

Automaton2000: c'est là que je me suis planté

Alshock: @leojean890 à 208 bpm t'as pas dû bien dormir

WhatTrickeryIsThis: il a toujours été plus mechant que son petit frere

Alshock: c'est grâce à nous ça

Default avatar.png AdaoSwann: Petite question... vous sauriez pourquoi quand je fais text+= ' | ', il ne me rajoute que le '|' ? :/

Alshock: euh quel langage ?

Default avatar.png AdaoSwann: python desolé*

leojean890: Alshock j'avoue :P j'étais pas sûr du sens de la blague de WTIT;)

Alshock: non ça met bien les espaces ça, c'est ptêtre le referee qui trim ?

Alshock: tu le check où ?

Default avatar.png AdaoSwann: Je sais pas

Default avatar.png AdaoSwann: je fais ça sur l'IDE du Spring Challenge

Default avatar.png AdaoSwann: mais du coup ça considère que c'est pas bon:/

Alshock: non mon mien a bien ses espaces, t'as pas une autre ligne qui ajoute des '|' quelque part ?

Alshock: Ah non pas bon c'est pas ça

Alshock: fais voir ton output complet

Default avatar.png AdaoSwann: Ah attends. Sortie Standard c'est bien mon output à moi??

Default avatar.png AdaoSwann: Je suis nouveau sur ce site

Alshock: celle de ta couleur oui

Default avatar.png AdaoSwann: Sortie standard : http://chat.codingame.com/pastebin/84077015-bb4e-48ad-9d42-4bc3d7e8a7b2

Default avatar.png AdaoSwann: fail

Alshock: ah ah les paste sont à nouveau bugués

Alshock: envoie directement le replay

Alshock: t'as un bouton replay and share sous le display

Default avatar.png AdaoSwann: https://www.codingame.com/replay/463378780

Default avatar.png AdaoSwann: Si je me suis pas planté

Magus: LoganWiv : je répond en retard, mais oui quand je dis que je simule pas l'adveraire c'est qu'il se déplace pas

Magus: mes pacs essaient de les tuer parfois, mais c'est bidon vu que dans ma simu j'essaie de tuer un adversaire qui bouge pas et qui switch pas

Magus: suffit de regarder mes replays pour voir comment mes pacs meurent

Zanbez: J'ose plus touché mon code. Je suis resté hier soir à 80 places du boss silver . Ce matin 250 gold et maintenant je suis 180 sans rien faire. J'ai une IA gonflée à l'hélium !

Valbou: Salut à tous ! Quelqu'un a testé un algo type CSP ou Agent fondé sur les connaissances ?$

Alshock: pardon j'étais à côté, oui AdaoSwann la sortie standard avec des pipes collées c'est celle du boss

Alshock: la tienne crash avant

tekki: salut Magus, alors t'es motivé pour ce contest?

Default avatar.png AdaoSwann: Ah ok

Default avatar.png AdaoSwann: Reste à trouver pourquoi

Default avatar.png AdaoSwann: merci

Zanbez: #168 à ce rythme je suis dans le top 100 dans moins d'une heure

LoganWlv: #Magus compris ty

Default avatar.png alexandreb09: Salut tout le monde, quelqu'un peut m'aider sur le probleme "Winamax Sponsored Contest" ?

Magus: tekki: a moitié. Disons que la je dois avoir presque tout codé en dehors du FoW

Magus: mais que j'ai aucune idée qui me motive à coder quoi que ce soit pour ça

BigUP: 225eme silver... a ce rythme, je suis encore en silver dans 2 jours

Magus: donc si ça se trouve je resterais la où je suis, faute d'idée

Magus: mais au moins, si vous vous posez la question

tekki: c quoi le FoW?

Magus: c'est possible de passer gold sans faire bouger l'ennemi et gérer le fow dans votre code :D

Magus: Fog Of War

tekki: allez je mise sur toi

tekki: bonne chance dude :)

tekki: Automaton2000 un conseil?

Automaton2000: je savais que je pouvais compter sur toi

tekki: merci AUtomaton2000, une petite chanson?

Automaton2000: je devais avoir un bug ...

YannDev: rip BigUp

Vry: Magus, j'ai l'impression que oui ... T1024 avait l'air de fonctionner comme ça.

Vry: En tout cas, il avait un super farming

Vry: Ah Magus, ce n'était pas une question en fait !!!

Vry: gg

YannDev: Vry t'es encore Silver :'(

YannDev: on est tous bloqués :/

Vry: C'est en effet ce que je me disais, faire la simu. mais sans "resolveMovement" dans un premier temps (vu que je n'ai pas le temps).

Default avatar.png thoip: Quand il y a le timeout dans l'ide, Cela doit pas afficher les logs d'erreur après?

Vry: YannDev : c'est bon bot Wood2 pimpé pour passer Silver ...

YannDev: idem...

Magus: Vry: ah non moi j'ai codé le moteur hein

YannDev: mais je bats le #2

YannDev: en fait je bats tout le top10

Magus: je simule les mouvements comme je le fais le referee

Magus: ah je pense que c'est overkill, parce que dans 90% des tours que tu simules, y'a jamais plus d'une collision

Vry: Magus, ok tu utilises quand même les collisions pour tes pacs au final

Magus: je penes que le 2ème tour pour checker les collisions sert à rien

Default avatar.png thoip: quelqu'un sait en cas de timeout si les logs d'erreur doivent s'aficher aorès le timeout?

WhatTrickeryIsThis: haha mes derniers matchs

Vry: Parce que au final le moteur c'est juste un gestionnaire de collisions quand on y regarde de plus prêt ...

Vintarel: thoip : si tu as flush ça doit s'afficher oui. Mais faut flush

YannDev: https://www.codingame.com/share-replay/463397706...

YannDev: je bats le premier de silver

YannDev: mais où est la logique de ce board

leojean890: et sur 10 matchs tu le bats combien de fois sur 10 ?;P

Vry: YannDev : pour passer il faut clairement être au dessus d'une majorité de bot ...

YannDev: je vais faire d'autres matchs

Magus: le système ELO c'est simple : tu as >50% de victoires contre ceux en dessous de toi, et <50% de victoires contre ceux au dessus toi

YannDev: ah

Magus: si tu bats le premier silver mais que le 2ème silver te met un 100% de victoire, tu seras pas premier silver

YannDev: rip

YannDev: bon j'ai fix le move perdu quand je speed

YannDev: ça a pas l'air incroyable

YannDev: ah si en fait

YannDev: c'est pas mal

leojean890: ouais c'est un score moyen quoi

Default avatar.png thoip: Vintarel donc normalement sans flush dans les informations de jeu cela ne devrait pas s'afficher c'est bien ça?

leojean890: et parfois un bot est fort contre un joueur et faible contre un moins bien classé

YannDev: oui ça ça m'énerve

YannDev: je perds contre des #350

leojean890: ptet que tu gères bien certains aspects et moins bien d'autres aspects du problème ?

YannDev: https://www.codingame.com/share-replay/463399836

YannDev: là je comprends pas la raison de ma défaite

YannDev: si quelqu'un pouvait m'expliquer svp

ThomasNicoullaud: c'est pourtant simple

ThomasNicoullaud: les mouvements de tes pacs ne sont pas rentables

ThomasNicoullaud: end game tes pacs ne ramassent rien

Vintarel: Thoip oui

leojean890: garde une liste de places non visitées (non vues) pour y aller également

leojean890: garde une liste des pellets que tu avais vus par le passé mais que tu ne vois pas à l'instant

leojean890: pour potentiellement retourner voir s'ils y sont encore

leojean890: et après tu peux faire des hypothèses concernant l'emplacement de l'ennemi

leojean890: et les pellets qu'il a mangés, pour ne pas y aller

piw4i: hello

YannDev: j'ai déjà ça...

leojean890: hello

leojean890: faut ptet changer les priorités et la façon d'y aller, si ton bot ne bouge pas assez en late game

Neumann: ThomasNicoullaud: il s'appelle comment ton smurf ?

piw4i: petite question, quand on est sur la case précedent la fin d'un couloir, on peut pas utiliser speed pour aller prendre une pastille au fond et revenir en un seul tour vu qu'il n'y a qu'un seul move par tour?

leojean890: ThomasNicoullaud il veut pas submit s'il n'est pas dans le top 15;)

leojean890: cf OOC il a mis 2 semaines:p

Neumann: piw4i: en effet, avec une seule target dans ta commande, le referee aura du mal à savoir que tu veux faire un aller-retour :D

piw4i: oui :D

leojean890: le temps de bien tout finir et tester unitairement

piw4i: non mais en regardant un replay, je comprenais pas pkoi le score de l'adversaire augmentait plus vite au début

Magus: parce qu'il prend plus de pastille ?

piw4i: jusqu'a ce que je réalise que meme en mode speed je ne donnais des ordres que pour bouger case par case -_-

piw4i: du coup le speed sert pas a grand chose...

piw4i: ce qui m'a amené cette reflexion sur les fond de couloir

lumpy: Salut tout le monde

lumpy: Bon c'est pas très glorieux ce que je vais dire, mais j'ai réussi à aller au delas des 200 tours de jeu, c'est normal ?

egaetan: tours != frame

lumpy: ha, bha oui alors ^^ merci de la notif :p

egaetan: de rien ;)

ThomasNicoullaud: Neumann il est peut etre devant toi ? :D

Neumann: T'es le pire des pleutres

Neumann: Même moi j'ai sorti mon main

ThomasNicoullaud: j'ai vu

ThomasNicoullaud: je push demain

ThomasNicoullaud: je suis en congés j'aurais letemps d'avoir qq chose de solide

ThomasNicoullaud: mais la legend ca risque d'être dur cette fois

Neumann: Peudoki ou sullyper, 100%

ThomasNicoullaud: tu ne trouveras pas :)

Neumann: J'ai déja trouvé

ThomasNicoullaud: et tu me surestimes

bcourtine: Bonjour.

bcourtine: N'y aurait-il pas un petit problème d'infra en ce moment sur le challenge ?

Default avatar.png PhilippeBuch: bonjour

Default avatar.png PhilippeBuch: est il possible de debug dans l'ide?

bcourtine: Je gagne (ou perds) tous mes duels par timeout.

bcourtine: Tout dépend de ce que tu appelles "debug".

Default avatar.png AdaoSwann: http://chat.codingame.com/pastebin/45d7301a-a1a4-4880-bcfb-034f83e93904

Default avatar.png AdaoSwann: fail T-T

bcourtine: Breakpoint, non, mais affichage non pris en compte oui : en écrivant sur la sortie d'erreur.

Default avatar.png AdaoSwann: petite question: l'utilisation de cette formule

Default avatar.png AdaoSwann: devrait donner les coordonnées de la pastille la plus proche non ?

Default avatar.png AdaoSwann: https://astucesweb.fr/education/formule-dist.png

bcourtine: Oui (si on oublie qu'on peut passer de droite à gauche et de haut en bas)

towzeur: en theorie oui ca te donne la pastille la plus proche en vol d'oiseau

k4ng0u: la tu bouges de cases en cases et il y a des murs

bcourtine: Et si on ne prend pas en compte les murs aussi ^^

Default avatar.png AdaoSwann: merci mais j'utilise cette formule mais à chaque fois les pacs se dirigent vers les grosses pastilles

b0n5a1: PhilippeBuch vu que t'as l'air d'être en JS : console.error dans l'IDE pour voir ce ue tu veux

b0n5a1: o/

Alshock: @AdaoSwann tu devrais pas utiliser une distance euclidienne, tu ne te déplaces que verticalement ou horizontalement donc une distance de manhattan fait plus sens

Default avatar.png AdaoSwann: une distance de manhattan ? je regarde ça merci

Alshock: @AdaoSwann et si tu veux prendre en compte les tunnels il faut prendre min(dx, width - dx) sur l'axe x

b0n5a1: Mouais...mais il est en bronze, Manhattan ne le fera plus trop monter ^^

b0n5a1: ou très peu

Alshock: en effet

Alshock: enfin quoique, ça évitera peut-être quelques situations de blocage j'en sais rien j'avoue

b0n5a1: AdaoSwann : floodfill ou breadth first search ça te permettra d'avoir une distance correcte

k4ng0u: Alshock pour une distance exacte le mieux c'est sans doute faire un parcours en largeur en prenant en compte les murs.

k4ng0u: https://fr.wikipedia.org/wiki/Algorithme_de_parcours_en_largeur

Alshock: je sais bien

Alshock: mais c'est quand même le niveau au dessus pour les gens qui commencent en algo

k4ng0u: t'as le pseudo code sur wikipedia :P

Default avatar.png AdaoSwann: J'ai utilisé la distance de Manathan, mais les pacs ne prennet pas du tout les plus proches. Honnêtement je comprends pas

Default avatar.png AdaoSwann: oops j'avais pas vu qu'il y avait des nouveaux messages je lis ça

Zanbez: Faut prendre les murs en compte.

Default avatar.png AdaoSwann: Oui mais même sans compter les murs, si il y a une pastille à côté de lui parfois il va au total opposé en chercher une autre parce que c'est une grosse

Default avatar.png AdaoSwann: alors que j'ai jamais pris en compte la valeur pour mon algo

b0n5a1: tu prends bien la valeur absolue dans ton manhattan au moins ? Parce que si la procher est à 3 et l'éloignée à -10 il va aller chercher l'éloignée...

Default avatar.png AdaoSwann: oui oui j'ai pris les absolus

b0n5a1: abs(dx) + abs(dy)

b0n5a1: pas abs de (dx+dy)

Default avatar.png AdaoSwann: abs(x_n-X) + abs(y_n-Y)

Default avatar.png AdaoSwann: j'ai fait ça

VilBoub: Attention... "à côté visible" ou "à côté mais cachée par un mur" ?

Default avatar.png AdaoSwann: à coté visible

Default avatar.png AdaoSwann: genre il est en 0,0

Default avatar.png AdaoSwann: la pastille est en 0,1

VilBoub: t'as bien enregisté toutes les infos avant de les traiter ? tu ne peux pas les traiter en direct

k4ng0u: tu vises bien la pastille avec la distance min et tu traite ca pac par pac en resettant a chaque fois que tu traite un nouveau pac?

Default avatar.png thoip: PhilippeBuch à l ancienne en mettant des logs sur les coordonness qui t'interessent.

Default avatar.png AdaoSwann: non je n'avais pas traité, j'avais fait un if avec 1 distance calculé avec les abs en direct de chaque côté

Default avatar.png AdaoSwann: j'ai réglé ça

Default avatar.png AdaoSwann: ensuite. oui c'est reset à chaque pac

Default avatar.png AdaoSwann: mais même au tout premier pac ça déconne

egaetan: Comment ça se passe les collisions avec speed ?

Stilgart: dans le referee :(

egaetan: si on collisione sur le premier move, on reessaie sur le deuxieme ?

Default avatar.png AdaoSwann: genre là: https://www.codingame.com/share-replay/463437864

egaetan: merci Stilgart

egaetan: :p

Stilgart: sérieusement, j'ai "relire le referee" en haut de ma todo list tellement ça semble bizarrement codé

Default avatar.png AdaoSwann: 1er coup : pac 0 en 12/11, il va en 19/11

Default avatar.png AdaoSwann: alors qu'il y a une pastille en 13/11

Sylions: hello :) je me disais quand tu es en speed tu pers une occasion de voir si les pellets sont toujours là, non ?

VilBoub: oui

Sylions: c'est chaud ça...

b0n5a1: AdaoSwann le pac dont tu parles est celui de l(adversaire pas le tien

Sylions: je comprenais pas pourquoi mes pacs en fin de partie revenaient à un endroit alors qu'ils étaient passés devant u_u

b0n5a1: le tien est en 20/11 et aller en 19/11 est donc ok

b0n5a1: t'as les rouges sur ce replay pas les bleus AdaoSwann

tblancbeyne: Bonjour, est-ce que les pacs voient à travers les tunnels ?

b0n5a1: oui

tblancbeyne: Ok merci :)

Default avatar.png AdaoSwann: Ah oui désolé je suis aveugle x)

leojean890: #185 bah dis donc ça monte seul ça change de d'habitude ;p

Samsa: contrairement à hier à l'ouverture de gold ?

Fangel: ça monte mieux quand t améliore ton bot quand même :)

Samsa: plus facile à dire qu'à faire

leojean890: hier j'avais pushé à 140 et il est tombé 201 quand ils ont cut à 200 par ex...

leojean890: ensuite je suis passé de 0.09 du boss à 1 pt puis qqn d'autre m'a poussé dans le bon sens

leojean890: donc passé gold, ensuite j'ai tenté des versions qui me mettaient tout en bas de gold

Samsa: j'ai suivi je push à ce moment

Samsa: je suis passé à +2.5 pour finir mon push à -0.1

leojean890: et là ma version monte..

Samsa: *j'ai

leojean890: je vois

leojean890: t'as choisi la solution de pusher pour passer au lieu de te faire pousser ?

Samsa: je fais partie des personnes qui on joué sur ton passage (mais je sias pas si j'ai aidé)

leojean890: d'accord

leojean890: igolus m'a bien aidé

leojean890: pendant son push il baissait le boss et me montait

Samsa: j'était 13eme je sais pas si j'aurais du ou non mais je l'ai fait

leojean890: c'est tjr la grande question

leojean890: ouais Fangel améliorer le bot c'est mieux effectivement :P gg pour ta place de #27 d'ailleurs ^^

Samsa: et le premier push j'ai galéré contre top 400 pour finir vers 200 ...

leojean890: ouais je vois

leojean890: parfois il y a des bots qui nous counter

Samsa: Après quelques tentatives sur les magic numbers j'ai fait un bon push où j'ai dépassé le boss à seulement 5% (pour finir juste en dessous de lui)

leojean890: quand gold n'était pas ouverte j'avais juste une règle : "si plus de 3 matchs perdus sur les 10 premiers, je relance"

Fangel: ben j ai passé 3 jours à reculer pour développer une gross feature

leojean890: et "si je finis en dessous de 200 c'est que ma version est mauvaise, donc je dois changer un paam"

leojean890: param

Default avatar.png Monsieur_Y: (je suis en bois1) comment vous gérez vos différents pacs ? j'avais l'idée pour chaque pacs de calculer la distance pour chaque pellets de la map

Fangel: je suis passer de la place 30 à la place 30 de la ligue suivante :)

leojean890: enfin même en dessous de 150

leojean890: Fangel je t'ai vu 40eme genre hier ou avant hier ?:P

leojean890: mais je vois t'as fait un truc cool quoi:p

Fangel: j'ai été 6ème il y a 4 jours :)

leojean890: enfin t'avais déjà de bons classements je veux dire :P

leojean890: du coup tu laissais ton bot reposer en silver le temps de faire ta feature ?:P

leojean890: mais ouais ma règle c'était genre il y a 3 jours "si mon bot arrive pas dans le top 100, mauvaise version", et petit à petit mon seuil d'acceptation a baissé :P

leojean890: hier 140 j'étais content :P

leojean890: car j'arrivais pas à améliorer +

leojean890: mais bon j'ai tjr qq idées sous le coude :P

Fangel: le problème quand tu fais ça, c est que tu ne fais que bricoler les superparamètres

Fangel: parfois pour passer au niveau supérieur t as besoin de bien repasser l architecture

leojean890: j'ai ajouté genre 10 features en 2 3 jours en plus :P

leojean890: j'ai plein d'idées :P

leojean890: mais bon de là à les faire "bien" c une autre histoire :p

leojean890: bricoler les magic numbers ça fait partie de mes tests aussi of course :P

leojean890: kmeans de positions de pellets, voronoi sur mes pacs, algorithme hongrois ..:p

leojean890: j'ai même commencé à refaire en java pour pouvoir faire du hill climbing avec simus aléatoires à depth plus élevée (idée pas de moi^^):P

leojean890: mais on verra si je concrétise, mais ça peut se tester

Fangel: mais ce contest demande enormement de boulot par rapport aux précédent

Mazelcop: carrément

leojean890: moins que OOC right ?:P

leojean890: mais c'était sur 1 mois

leojean890: mais tout ce qui est localisation de l'adv est compliqué ici

leojean890: surtout gérer des probas de présence

leojean890: j'ai bidouillé des trucs

Andry_: qui est en période d'exam ?

Fangel: Pour moi sans le brouillard de guerre, ça aurait été le même volume de travail que les contest classiques.

leojean890: le FOG il y en a eu sur UTG, OOC et mtn PAC

leojean890: enfin UTG c'est les pièges

Fangel: oui mais sur UTG et OOC, le jeu est basé sur le fog... Ici, il pourrait très bien ne pas y en avoir.

leojean890: CG en met plus qu'avant (même si OOC c'est pas de CG), d'ailleurs Magus trouvait que c'était pas forcément une bonne idée :P

leojean890: ouais ici ça pourrait

Magus: OOC le jeu est basé sur le fog, sans ça il n'a aucun intérêt

leojean890: mais CG se disent que sans FOG ce serait trop facile avec des algos de recherche j'imagine ?

leojean890: ouais clair OOC c'est totalement basé dessus

Mazelcop: sans fog il y aurait un gros risque d'avoir égalité 90% du temps sur ce jeu

leojean890: mais là y'a quelques difficultésen plus du fog, notamment le facteur de branchement

Magus: je connais pas les décisions de CG la dessus. Le fog c'est pas très casual friendly (surtout dans la façon dont c'est donné en input sur ce jeu).

Magus: on le sait déjà depuis longtemps que tout ce qui embête les simus embête aussi les heuristiques. Donc le fog aide personne.

Magus: Mais pour ce jeu je suppose que dans le fog effectivement on aurait très souvent des égalités

Magus: et utiliser son speed serait trop dangereux

Alshock: Je... je viens de perdre une demi-heure parce que mon affichage utilisait un ternaire non-parenthésé

Default avatar.png JBM: !haha

Magus: vu que t'as 10 secondes de cooldown, un PAC peut arriver de l'autre bout de la map pour te buter :D

Default avatar.png JBM: ca n'arriverait pas dans un langage sans ternaire!

BigUP: ca va, le fog, ca met un peu d'inconnu dans le jeu

Default avatar.png Daher: c'est quoi le but du challenge pacman?

Default avatar.png JBM: faites du python

leojean890: j'avoue ça peut être risqué

Alshock: JBM mon IA est en python actuellement et je migre vers C++ xD je veux creuser un trou au fond de la fosse des parianne et y passer le restant de mes jours

BigUP: c'est mon IA qui est dans le Fog !

Alshock: mais j'ai des doutes sur la qualité d'internet là-bas

leojean890: et ouais il y aurait des égalités

leojean890: entre algos de recherche optimisés

leojean890: en C pur

leojean890: :p

Alshock: Surtout sans le speed on n'aurait aucun intérêt au shifumi

Alshock: sans le fog pardon

leojean890: un peu comme STC, hypersonic, UTTT, tu vois dans le top quasiment que des langages très rapides

Vintarel: ça aurait été sympa de voir l'état du fog dans le combat

BigUP: mon IA est de plus en plus a la ramasse sans rien touchre

leojean890: #174

leojean890: sachant que quand j'ai submit ce code j'étais #240..

leojean890: hier soir

leojean890: si ça continue dans ce sens là je veux bien

leojean890: :p

leojean890: rien de certain of course :P

leojean890: Alshock clair ça ajoute du piment, FOG + shifumi

leojean890: les strats vicieuses;)

BigUP: va falloir que je sorte un hunter mode a mon IA

BigUP: genre attaque massive

BigUP: chasse au Pac !

leojean890: ce jeu c'est une sorte de UTG en fait, avec strats vicieuses et farm, et trouver un compromis entre les 2

BigUP: ca va etre plutot Double Hulk pour moi

leojean890: et la défense associée of course

Fangel: Je crois que vous vous trompez en croyant que sans le fog, ce jeu finirait en égalité...

leojean890: à voir

egaetan: hypersonic, il n'y avait pas tant que ça d'egalite

leojean890: je le citais dans le sens où les perfs du code sont primordiales

leojean890: mais ouais après certains le font mieux que d'autres

leojean890: ici ce serait la même j'imagine

leojean890: y'a les perfs + la gestion de l'autre + l'éval ..

leojean890: y'a forcément des gens qui vont se démarquer + que d'autres :p

Fangel: et puis la gestion du fog est important ici mais pas primordiale

Fangel: pour l instant je traque pas du tout l autre moi

leojean890: t'as surtout bossé la strat de farm ?

Mazelcop: tu esquives même pas les traps de l'ennemi ?

leojean890: et défense j'imagine

leojean890: la défense et le farm sont plus importants que d'être agressif :P mais être agressif si c'est bien fait ça peut bien améliorer le bot aussi

Fangel: les traps ?

leojean890: attendre l'autre dans un coin

Fangel: euh oui j ai surtout bossé le farm

Fangel: ah y en a beaucoup qui font des pièges? J'en ai pas trop vu. En fait j esquive que les dangers que je vois directement.

Achess: Hello, quelqu'un aurait une seed avec deux pacs uniquement :) ?

leojean890: apparemment dans le top 10 y'a pas mal de pièges :P

Achess: (j'imagine qu'on ne peut retester son code en mode wood ?)

Fangel: ben un des problème de mon IA c est que quand je poursuivi, si je passe un virage je ne vois plus le poursuivant... Donc je reviens en arrière

egaetan: mmmh, je dois faire pareil

Default avatar.png RoanixS: J'ai clairement un soucis avec la gestion du "turn" et du "step" (à cause des doubles moves si je comprends... ) le while loop est appellé pour chaque "turn" n'est-ce pas ? :/

egaetan: oui

VilBoub: un pacman DEAD, voit-il encore des pastilles ?

Default avatar.png thoip: lol

Default avatar.png thoip: un morrt ne voit rien.

VilBoub: je me méfie... ^^

Default avatar.png thoip: c'est pas le retour des morts vivants :)

Default avatar.png stephdz: le bonus SPEED est vraiment mal géré : mon pac et un ennemi l'ont tous les deux, sur le tour intermédiaire, ils se seraient vus et j'aurais pu sauver un autre pac présent dans le coin :(

YannDev: bon je sens le ragequit arriver

YannDev: je suis bloqué dans le top200 silver

gregballot: mdr je suis toujours d'opti mon knapsack comme un galerien

gregballot: deja divisé le temps par 6

gregballot: mais toujours trop long

Default avatar.png stephdz: plus je complexifie mon heuristique, plus je baisse dans le classement => pas facile de trouver le bon réglage !

YannDev: un knacpsack c'est N^2...

YannDev: c'est super rapide

YannDev: enfin au vu des contraintes

YannDev: déjà t'es #14 donc t'as juste à te laisser pousser

gregballot: baaah le probleme c'est que un knapsack a plusieurs dimensions la

gregballot: Si c'etait la version classique la question se poserait pas

YannDev: ah bah rip

gregballot: Puis j'ai un souci c'est que vu que mon knapsack est sur des combinaisons de chemins, je dois les copier a chaque recursion pour pas les modif par reference

gregballot: Et ca prend un temps de ouf

YannDev: coup dur

gregballot: Mais j'ai trouvé une facon de casser la complexité

gregballot: Juste ca devient un peu complexe lol

YannDev: moi j'arrive pas à piger pk je perds contre des #300

Default avatar.png thoip: parce qu'ils ont optimisés la prise de pastilles.

YannDev: c'est ce que j'ai fait aussi :/

Default avatar.png Colios13: ah c'est marrant le bot pour monter gold a des time out

BigUP: YannDev, ha bah ca me fait plaisir, je ne suis pas le seul ! ;)

BigUP: YannDev, si tu trouve un truc pour les passer... je prend

Default avatar.png AdaoSwann: Petite question. la vision de mes pacs est maintenant limitée, donc l'input() pour les pastilles visibles je peux le mettre 1x par pac ?

Default avatar.png Gb42: Quelle structure de données avez-vous utiliser pour représenter la map ?

S1L3nCe: L'input pour les pastilles a pas besoin de changer, ça te donne toutes les pastilles visibles à ce tour tout pac confondu

S1L3nCe: @Gb42 perso Tableau statique 2d de struct Cell

S1L3nCe: vu qu'on connait la max width et height que la grille peut avoir, et j'adapte les loops avec les tailles données au début

Bob: amis de l'usurpation :turtle:

Bob: o/

Default avatar.png AdaoSwann: Merci de l'information ^^

YannDev: Tortue à tous

YannDev: BigUp je te dirai mais pour l'instant rien de concluant

YannDev: c'est autorisé les teams sur ce contest ou pas ?

Gb42: OK merci

Default avatar.png Monsieur_Y: pour votre sortie vous avez fait comment pour ajouter les différents ordres de mouvement

Gb42: Une seule ligne séparée avec des pipes

Default avatar.png Monsieur_Y: car moi ça renvoie ça : MOVE 0 13 10|MOVE 1 2 3|MOVE 2 15 1

Gb42: nickel

Default avatar.png Monsieur_Y: la barre est collé donc le jeu n'aime pas

Bob: m'etonnerait que ce soit ca le souci

Gb42: Rajoute un pipe final peut-être

Gb42: MOVE 0 29 7|MOVE 1 29 15|

Bob: perso je mets des espaces parce que c'est plus lisible mais si j';en mets pas ca passe tout a fait bien

Bob: le code par defaut n'en met pas non plus, ni de pipe final, et ca passe aussi

Default avatar.png Monsieur_Y: ah yes j'ai ça : has not provided 1 lines in time

Bob: ah

Default avatar.png Monsieur_Y: donc monde code n'est pas assez efficace

Bob: t'as bien mis un retour ?

Gb42: Retire les boucles for

Bob: un endl

Bob: ou \n ou autre suivant ton cas

S1L3nCe: Ou alors ça crash quelque part ^^

Bob: vu de loin je mise sur le retour chariot manquant

Default avatar.png Monsieur_Y: oui j'ai bien un retour

Default avatar.png Monsieur_Y: Sortie standard : MOVE 0 1 3|MOVE 1 9 1|MOVE 2 14 5

Bob: t'as bien 3 pacs ?

Valbou: un timeout après la sortie ?

Bob: apres, possible que t'aies un crash par ailleurs oui

Valbou: de mon côté, je construis la liste d'instructions et je la "join" sur la sortie dans la dernière ligne du code. Ce n'est peut-être pas la meilleur façon de procéder mais c'est stable ;)

Bob: note aussi que c'est pas parce que tu vois tout ton output dans la sortie standard que tu as bien le retour

Default avatar.png Monsieur_Y: autant pour moi c'est l'output du boss

Bob: si je vire le cout << endl; a la fin de mon while, je vois bien ma commande mais ca timeoute :p

Valbou: ^^

Valbou: Le dernier de la league Gold arrive à avoir un score de classement négatif :O

Valbou: C'est possible ça ?!

Alshock: ouais j'ai vu ça au fond du bronze quand on était 2000

Bob: c'est possible si tu perds tous tes matches

Valbou: Je me serais attendu à un simple 0 ;)

Bob: en general ca suggere que tu crashes 100 % du temps :)

S1L3nCe: Et on ne peut pas redescendre d'une ligue ?

Bob: c'est arrive une paire de fois d'avoir des ligues wood tres vides avec juste des codes pourris comme ca

Alshock: Bob mais si t'es deuxième, l'autre peut crash avant toi

Bob: et quand tu gagnes contre un score negatif, potentiellement ca peut te faire perdre du score

Bob: du coup tu montes pas

Bob: S1L3nCe, non

Valbou: lol

Alshock: attends keuwa

Alshock: mais wtf xD

Alshock: et du coup si tu réussis à perdre tu montes en élo ?

Valbou: mais si tu perds contre lui tu montes du coup ?

Valbou: :joy:

Bob: je me suis retrouve dans un truc comme ca une fois, fallait attendre que d'autres joueurs arrivent dans la ligue pour pouvoir monter tellement les seuls qui etaient la etaient nuls

Default avatar.png AdaoSwann: for j in pastilles: http://chat.codingame.com/pastebin/8dc26570-f2dc-4d0a-b377-f4f8a206a8cb

Alshock: le nivellement par le bas CG edition

Bob: #boulet

Default avatar.png AdaoSwann: j'aime pas ce pastebin à chaque fois T-T

Valbou: C'est le contest KiPerdGagne ;)

Alshock: AdaoSwann eh ouais, delete dans la liste sur laquelle tu iteres ça se passe souvent mal

Bob: en plus si t'as mis l'indentation telle qu'elle est vraiment dans ton code, alors ton remove est plus dans la boucle

Default avatar.png AdaoSwann: Ah ça fonctionne donc enfin le pastebin ? ^^'

Default avatar.png AdaoSwann: Mais je le supprime à la fin, une fois que je suis sorti de ma boucle, genre comme ça:

Default avatar.png AdaoSwann: for j in pastilles: http://chat.codingame.com/pastebin/e5a5711d-d4bc-45e8-97ce-b526ea56b3c8

Bob: mais je suis d'accord avec Alshock, modifier le container sur lequel tu iteres c'est rarement une bonne idee

Default avatar.png AdaoSwann: je comprend pas l'erreur

Valbou: le remove pue effectivement

Default avatar.png AdaoSwann: sélectionné est forcément dans pastilles à ce moment là non?

Bob: je suis plus tres au carre sur python mais suivant la nature de ce que tu as mis dans pastilles, selectionne peut etre "egal" en valeur sans etre necessairement l'element present dans la liste

Default avatar.png AdaoSwann: sélectionné = j j est un élément de la liste, donc par conséquent sélectionné aussi non ?


Default avatar.png AdaoSwann: sélectionné = j j est un élément de la liste, donc par conséquent sélectionné aussi non ?


Default avatar.png AdaoSwann: fail*

Alshock: normalement t'aurais dû supprimer un élément sur deux de la liste, j'essaye de voir comment t'as réussi à le faire crash avec des doublons mais c'est pas évident

Bob: a la lecture du code, tu as au moins un chemin sur lequel selectionne ne serait pas necessairement defini

Bob: verifie la valeur de selectionne avant le remove

Alshock: ah merde bien vu, je croyais qu'il était répété à chaque fois

Bob: parce que dans la deuxieme moitie tu as if D1<D2 elif D1==D2

Bob: donc si D!>D2, selectionne est jamais place

Valbou: après les accents dans les noms de variables même s'il me semble que ça passe, ce n'est pas recommandé

Default avatar.png AdaoSwann: dans pastilles c'est les input avec les coordonnées de visible_Pellet_Count

Alshock: si not a and D1 != D2 and score >= nouveauScore tu reset pas séléctionné

Bob: ah oui aussi tiens

Alshock: d'ailleurs c'est un détail, mais une variable avec des accents c'est très mauvais plan. C'est mieux de garder un code en ascii pur.

Bob: +1

Default avatar.png AdaoSwann: Ah oui je vois Bob

Default avatar.png AdaoSwann: merci

Default avatar.png AdaoSwann: non mais en fait initialement a = True, donc sélectionné = pastilles[0] au départ

Vry: Yo Bob

Alshock: @AdaoSwann vu ce que tu as fait, peut-être que tu ne connais pas le mot-clef next ?

Default avatar.png AdaoSwann: En effet je ne connais pas

Alshock: Quand tu veux faire quelque chose systématiquement dans une boucle, mets-let à la racine de la boucle, et si un cas particulier est à ignorer tu peux aller directement à la prochaine itération

Alshock: Ceci dit, il reste le problème le plus important : tu remove dans une liste sur laquelle tu iètres !

Valbou: @Alshock: continue me semble plus intéressant que next dans ce contexte

Alshock: pourquoi c'est un problème ? Parce qu'en interne la boucle for itère sur les indices, donc tu commences à l'indice 0 puis l'indice 1, etc... Mais si tu remove l'indice 0 de ta liste, tu passes ensuite à l'indice 1 qui est ton ancien indice 2

Alshock: @Valbou ah mince j'utilise pas assez souvent je croyais que continue c'était next en python

Bob: glop Vry o/

Alshock: c'est effectivement à continue que je pensais

Bob: toujours en silver ?

NoZ-: for j in pastilles.copy(): AdaoSwann ?

Default avatar.png AdaoSwann: mais je supprime pas quand j'itère dessus, mais une fois que j'en suis sorti ?

Alshock: C'est pas ce que t'as marqué dans ton pastebin

Bob: si l'indentation est exacte, le remove est toujours dans le for

Default avatar.png AdaoSwann: ah oui excusez j'ai oublié l'indentation devant le for j

Valbou: ^^

Default avatar.png AdaoSwann: for j in pastilles: http://chat.codingame.com/pastebin/cf3b40e5-187e-467c-b6d1-6bca9394c265

Bob: enfin c'est pas clair, je vois pas le if et le remove au meme niveau et la je sais pas du tout ce que fait python face a ca

Valbou: il crash

Default avatar.png AdaoSwann: celui là est bien indenté

Alshock: euh, mais c'est censé supprimer uniquement le dernier j qui correspond à tes conditions ?

Default avatar.png AdaoSwann: oui

Alshock: Bob il pète un câble et dit que l'indentation ne correspond à aucun niveau connu

Default avatar.png AdaoSwann: comme ça 2 pacs ne vont pas sur la même pastille

Default avatar.png AdaoSwann: j'avoue que le précedent pastebin n'était pas clair

Alshock: D'accord, mais si le pac qui devait aller sur cette pastille est bloqué par un adversaire, tu la remets dedans ?

Valbou: Je ne sais pas à dans quelle ligue tu évolue @AdaoSwann, mais ce n'est pas déterminant au début, même si ce n'est pas parfait

Default avatar.png AdaoSwann: Pour l'instant j'en suis pas encore à ça ^^' j'ai essayé de mettre les compétences, sauf que depuis ça me met cette erreur.

Bob: affiche la valeur de selectionne avant le remove

Bob: verifie si elle est bien dans ta liste ou effectivement pas

Bob: #realityCheck

Default avatar.png AdaoSwann: si je fait un if selection in pastilles avant c'est bon?

Bob: ca t'evitera le crash mais ca expliquera pas ton bug

Valbou: a priori oui

Alshock: yep mieux vaut crash et chercher à comprendre ce qui le cause que d'éviter le crash la plupart du temps

Bob: et ca veut potentiellement dire que tu "selectionnes" un truc qui n'existe pas, donc tu risques d'avoir d'autres emmerdes plus loin

Default avatar.png AdaoSwann: mais le truc c'est que ça plante pas à chaque fois x)

Default avatar.png AdaoSwann: donc je peux pas mettre un print

Alshock: trouve le cas de bord

Bob: d'ou l'interet d'afficher

Alshock: tu peux mettre un print à chaque fois que ça va crash

Bob: ca peut suffire a te permettre de trouver ce qui ne va pas, meme si le cas n'est pas reproductible

Alshock: if not selectionne in pastilles: print

Default avatar.png AdaoSwann: ah oui

S1L3nCe: Initialise ta var à None avant la loop et vérifie qu'elle n'est plus à None avant de remove, ça évitera de faire une recherche dans la liste pour rien

Bob: tu peux aussi utiliser les messages des pacs pour te mettre de l'info dans le viewer, c'est parfois plus pratique a lire que stderr

Alshock: ouais mais les pacs il faut rester court

Bob: encore que la, le nombre de chars est tellement petit que bon bof

YannDev: je pensais pas que gold serait si dur...

Alshock: c'est vra ique c'est réputé être un métal mou

Bob: moi je pensais pas que j'arriverais en gold #holdUp

Default avatar.png AdaoSwann: Sortie : [19, 1, 1]

YannDev: c'est honteux ça Bob

YannDev: on a presque le même code

Bob: YannDev ah mais j'ai honte, je dis rien d'autre depuis hier soir

YannDev: plein de gens ont presque le même code que toi :')

YannDev: mais ils sont bloqués

Bob: eh bien ca pourrait etre pire

Bob: ca pourrait etre moi

YannDev: en effet

YannDev: le mythe cassé

Bob: :')

Bob: #goodGuyBob

Bob: ou pas

Default avatar.png AdaoSwann: La pastille en 19/1 venait d'être prise par un de mes pacs

Default avatar.png AdaoSwann: Je n'ai vraiment pas compris mais j'ai mis le remove à condition que selection soit dans pastilles...

Mais sinon on peut détecter si il y a d'autres pac visibles autour ? Et de quel type ils sont ?

Bob: tu peux detecter si tu es rentre dans quelque chose

Bob: et tu peux eventuellement essayer d'extrapoler la position des pacs adverses a partir de leur derniere position connue

Bob: mais on commence a aller vers de la haute voltige

Default avatar.png AdaoSwann: hmm ok

Default avatar.png AdaoSwann: on va plutôt essayer d'envisager cette histoire de mur alors x)

Bob: la ou t'es t'as probablement pas besoin de ca pour avancer

ami123: est ce que quelqu'un peut m'aider (pour les pacs)

Alshock: pose ta question

Default avatar.png AdaoSwann: pas besoin de quoi ? des murs ?


Alshock: ah oui de 1200 ms à 76 quand même, c'est vrai que c'est important les flags C++

Bob: AdaoSwann non de deviner ou sont les pacs adverses

Default avatar.png AdaoSwann: ah ok

Bob: un bon nettoyage de la grille et eviter que tes pacs se rentrent dedans ca ira deja tres loin

ami123: il y a des bugs mais je n'arrive pas a les resoudres

Bob: OK mais il va falloir etre un peu plus specifique que ca

Alshock: comme il dit

Default avatar.png WalidGuetat: salut

Alshock: \o

ami123: il y a un bugs (c'est que a un moment mon pacs s'arrete

ami123: )

MiniWall: Salut, y'a t'il un moyen de changer la couleur de la sortie d'erreur standard ? "\033[30m" à pas l'air de marcher :{

Alshock: ah ah ah on voit les bails de terminal

Bob: ami123 toujours OK mais pareil : sans savoir un minimum comment tu t'y prends et/ou voir du code, ca va etre complique

Alshock: non, c'est une affichage sur un site web tu peux pas le changer comme ça sans customiser l'affichage du site

Bob: juste dit comme ca il peut y avoir 3987 raisons differentes

MiniWall: Yep c'ets bien ce que je pensais, du coup un addon script genre greasemonkey devrait faire l'affaire, si c'est autorisé ?

Default avatar.png AdaoSwann: je vois pas du tout comment on peut détecter un impact :/

Alshock: ami123 le minimum qu'il faut c'est un replay de ce bug, ptêtre le bout de code incriminé

Alshock: (ya un bouton share and replay sur le lecteur de codingame)

Bob: AdaoSwann : si t'es pas la ou tu pensais au debut du tour suivant

MiniWall: mais yep merci pour ton aide :)

Bob: MiniWall oui tu peux scripter

BlueGhost31: AdaoSwann si ta position est inchangée alors que tu voulais te déplacer

MiniWall: Niquel !

Default avatar.png AdaoSwann: Merci :)

Bob: si tu n'es pas la ou tu pensais, c'est qu'il y a un autre pac qui etait, ou qui a essaye d'aller la ou tu voulais

Bob: si il y est et qu'il n'a pas bouge, a priori tu devrais le voir directement

Bob: si il n'y est pas et que tu ne le vois pas, c'est qu'il a ete repousse sur une case voisine

ami123: http://chat.codingame.com/pastebin/02612b99-5194-481a-80dc-7c5df7f51581

Bob: en croisant tout ca avec tes propres lignes de vue, ca doit permettre d'eliminer des cas en plus

Bob: apres, reste a voir ce que tu peux faire de l'info :)

ami123: c'est le code que j'ai fait

Bob: on dirait le code par defaut

BlueGhost31: ami123 tu ne peux faire un print en sortie

Bob: y a que le move par defaut

Default avatar.png AdaoSwann: Merci beaucoup :)

Bob: du coup il va en 15 10 et une fois qu'il y est il est tout content

BlueGhost31: le "or print(None staying here)" c'est pourquoi ?


Alshock: je pense que le stub devrait contenir un test pour rajouter :D à l'output quand il est en 15 10

Bob: tiens oui j'avais meme pas vu

Bob: OK ca va etre plus complique :D

ami123: oui mais c'est le probleme (Bob)

Alshock: La question est : qu'est-ce que tu attendais comme comportement de la part de ce code ? ami123

Bob: +1

ami123: que mon pac ne s'arrete pas.

Alshock: ben à ce moment là il ne faut pas toujours bouger vers 15 10

Alshock: c'est juste un exemple pour te montrer comment bouger le pac, mais s'il y est déjà ça ne bougera plus

NoZ-: j'ai envie de changer de strat, mais je sais pas quoi faire. Vous me conseilleriez quoi : minimax ? (sachant que j'ai jamais fait grand chose d'autre que des heuristiques)

BlueGhost31: NoZ- les heuristiques c'est très bien pour ce contest ;)

ami123: et la mon code va ?

ami123: http://chat.codingame.com/pastebin/d861a496-9f86-4dcc-8537-88f7a6a6a320

BlueGhost31: non plus ami123 il ne doit y avoir q'un seul print c'est le contenu de ce que tu "print" qui dois varier

ami123: :unamused:

ami123: :scream:

Alshock: ami123 ton print sert à dire "voilà ce que je veux que mon pac fasse". Comme dit BlueGhost31 plutôt que de multiplier les commandes il faut que tu changes ta commande en fonction de là où tu veux aller

Alshock: pour commencer essaye de récupérer la position d'une pellet, et dit à ton pac d'aller dessus

ami123: :thinking: comment puis-je dire sa ?

Alshock: hum... qu'as-tu compris des différentes lignes qui se trouvent dans ce code d'exemple ?

BlueGhost31: print("MOVE {} {} {}".format(0, x, y))

BlueGhost31: ca fera bouger ton pac d'id 0 sur le dernier pellet récupérer

Bob: joli one-liner pour demarrer :clap:

BlueGhost31: merci ;) simple et efficace

BlueGhost31: et puis au moins ça rentabilise le A* du referee

Alshock: et l'ordre des inputs par la même occasion. Propre.

Alshock: je crois que les gros pellets sont toujours donnés en dernier en plus non ?

Alshock: 'fin ptêtre pas s'ils sont dans ton champs de vision

BlueGhost31: je ne sais pas j'ai pas checké

Bob: je me demande jusqu'ou ca monte, ca

Bob: faut arreter de dire aux gens qui je suis fainenant sans deconner, y a bien pire que moi

Bob: que*

Alshock: ptêtre bronze si les gros pellets restent au fond des inputs

BlueGhost31: non à moins de rajouter la boucle quand tu as plusieurs pac ;)

BlueGhost31: mais bon c'est juste une ligne de plus :stuck_out_tongue:

Alshock: c'est pas en bronze les pacs multiples ?

BlueGhost31: je crois pas en bois 1 non ?

ami123: ah oui, il y a un autre bug c'est que toutes les pellets vont vers le pac adverse et il les mange donc je perd a chaque fois environ 297 a 0

BlueGhost31: ??? comprend pas ami123 tu peux donner un replay ?

ami123: comment on fait ?

Alshock: bah tu as un crash

Bob: oui enfin en meme temps on va pas te donner un bot pret a tout gagner non plus, hein

Bob: je soupconne qu'a ce stade tu as des soucis de comprehension basique du langage que tu utilises

Alshock: je pense que t'as laissé la ligne "print" et ça python ne connait pas

BlueGhost31: en bas à droite, il y a l'icone partage tu copie le lien

Bob: et faudrait sans doute commencer par la avant d'attaquer un challenge ici

Alshock: @BlueGhost31 il crash au premier tour ça va pas beaucoup aider

ami123: non je ne veux pas en arriver la

BlueGhost31: ok j'avais pas percuté

ami123: seed=-8620855813659348000

ami123: c'est le code de la parti

BlueGhost31: pour le coup le seed ne va pas nous aider

Bob: non ca c'est la seed de la partie

BlueGhost31: je disais à droite de la fenetre d'animation, entre la roue "parametre" et celui du plein ecran

Bob: ami123 je sais pas ou tu veux en arriver mais ce qui est certain c'est que tu n'y arriveras pas vite si tu ne maitrises meme pas un minimum ton langage

Bob: et la je suis desole de le dire mais ca a pas l'air d'etre le cas

ami123: ah oui alors c'est sa -> https://www.codingame.com/servlet/urlinvite?u=3814882

BlueGhost31: non plus

BlueGhost31: mais remontre ton code ça ira plus vite

ami123: c le meme que tout a l'heure

Alshock: ah ah !

BlueGhost31: remplace tout tes prints par celui que je t'ai proposé

Alshock: je suis fier de moi parce que les indcations valaient ce qu'elles valaient et j'ai identifié le bug quand même :P

Bob: donc ce qu'on a deja dit tout a l'heure c'est qu'il y a (au moins) une faute de syntaxe dans le code en question

Bob: et au risque de me redire, si tu n'es pas capable 1. de le voir 2. de l'identifier 3. de la resoudre

Bob: alors vraiment, il te manque beaucoup de competences de base

ami123: oui je suis debutant (au college )

Bob: donc le meilleur conseil que je peux te donner c'est de commencer par apprendre les bases de python avec des tutos beaucoup plus simples

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

Automaton2000: et quand on a fait la meme chose

Alshock: Yo BlaiseEbuth !

AutomatonNN: si tu veux faire un truc propre non plus tu fais pas de la personne qui a fait le contest comme ça

BlaiseEbuth: \o

Bob: la, tu vas juste te rendre fou a melanger les question de python avec les problemes d'algo necessaires pour ce genre de contest

Alshock: AutomatonNN est de retour ! :o \o/

R4N4R4M4: Salut tout le monde

AutomatonNN: oui

BlueGhost31: d'accord avec Bob tu devrais t'exercer en commencant par les puzzles

Alshock: <3 R4N4R4M4

ami123: oui je fais les 2 chose en meme temp

Bob: eh bien c'est une (tres) mauvaise idee

Bob: trop de choses a apprendre, trop vite

Alshock: @BlueGhost31 je crois que même les puzzles easy à ce stades sont un peu ardus

Bob: d'accord avec Alshock

Bob: commence par un tuto python, hors de CG

Bob: une fois que tu seras a l'aise, la tu peux revenir pour les premiers puzzles

BlaiseEbuth: Ou voir si il y a un tech.io débutant

BlueGhost31: il y a un tuto python sur tech.io je crois

Bob: et une fois que tu seras a l'aise sur les premiers puzzles, la tu pourras envisager un contest

Alshock: tu vas sûrement apprendre à faire un hello world, un nombre magique et un morpion, et comme ça tu auras assez touché au langage pour comprendre ce qui peut planter

R4N4R4M4: ou pas... quand ça plante, ça plante ! :D

ami123: je regarde des video youtube.

BlaiseEbuth: ami123 https://tech.io/playgrounds/53303/apprendre-python-dans-le-secondaire/presentation-2

R4N4R4M4: Bon début ami123

Alshock: ouah j'aurais jamais été capable de ne fût-ce que penser qu'il existait celui-là

domak: salut à tous

ami123: qui ?

ami123: (Alshock)

BlueGhost31: salut domak

BlueGhost31: ce tuto ami123

domak: j'ai rien fait depuis un bout depuis hier sur le contest... c'est devenu vachement aggressif

Alshock: le playground que Blaise t'a envoyé ami123

domak: moi j'ai des pac-cifistes

domak: et je me les fait bouffer

Alshock: c'est scandaleux

Alshock: dans quel monde vit-on ma p'tite dame ?

R4N4R4M4: J'ai raté le tuto Hello World python de ami123, je reviens au C (au moins tu indentes comme tu veux :D )

domak: bein oui, moi je voulais juste devenir un gentil farmer

Alshock: @R4N4R4M4 si je te vois mésindenter une ligne, je retrouve le numéro de ta maison

Alshock: et je la SEGFAULT !

BlaiseEbuth: Son rêve c'était d'être bon à rien, pas chevalier encore moins roi. :notes:

R4N4R4M4: je connaissais pas la mésindentation, c'est un truc pour se relaxer ? :D

Alshock: on commence par désindenter les épaules, puis les poignets...

R4N4R4M4: LOL

R4N4R4M4: pe->coolDown = max(0, pe->coolDown); // Et si j'oubliais pas le -1, ça serait pas mieux ? :nerd:

Alshock: tes pellets ont des cooldowns ?

R4N4R4M4: (p)ac(e)nemy :D

R4N4R4M4: J'ai pas de pellets dans mon code

R4N4R4M4: J'ai que des cellules avec une valeur

Alshock: donc tes pellets s'appellent gbv pour (g)entille (b)oule (v)erte ? :P

R4N4R4M4: réponse au-dessus :D

Alshock: je préfère les gbv

Alshock: mais c'est vra ique c'est pas con

R4N4R4M4: je les vois pas vertes

BigUP: ha ! daltonnien !

Alshock: ah si chez moi c'est indubitablement vert

**Alshock est très fier d'avoir dit "indubitablement" aujourd'hui. C'est fou ce qu'on peut avoir comme life goal quand même !

R4N4R4M4: Je vois pas de vert là : http://prntscr.com/sgq8no

BlaiseEbuth: Bah y'en a partout

R4N4R4M4: Là je vois mieux : http://prntscr.com/sgq9as

R4N4R4M4: Ca tire quand même bien vers le jaune marron quand c'est petit

AzBeen: Bonjour !

BlaiseEbuth: o/

AzBeen: Excusez moi j'ai un problème que je ne comprend pas

AzBeen: je time out

AzBeen: mais aucune erreur en consoe

AzBeen: console*

Default avatar.png stephdz: trop de temps pour répondre => ajoute des logs pour savoir où tu prends trop de temps

Mazelcop: tu es en python AzBeen ?

AzBeen: Oui

Fangel: et surtout pense à faire flush après chaque print !

Mazelcop: si c'est le cas il faut faire attention à rajouter le paramètre "flush=true" dans tes prints

AzBeen: flush?

Mazelcop: print("coucou", flush=true) par exemple

Fangel: sys.stderr.flush()

AzBeen: j'ai mis un flush donc

Fangel: ça force l'envoi du sys.stderr, sinon ça s'accumule et tu peux avoir le timeout sans pouvoir obtenir ce qui est dedans.

AzBeen: mais ça ne change rien,

AzBeen: comment je log @stephdz

Snef: C'est écrit dans les commentaires du code par défaut AzBeen

Fangel: maintenant il faut que tu print régulièrement à combien de temps de reflexion tu es.

351062: Mazelcop: dans ta recherche, tu traites tous les pacs en meme temps ou individuellement ?

Fangel: il faut que tu saches si ton code rentre dans une boucle infinie ou est juste trop lent.

AzBeen: hmm et si j'ai supprimé le code par défaut ? ^^'

Mazelcop: Neumann individuellement

Neumann: Ok

R4N4R4M4: AzBeen Tu peux le retrouver en cliquant sur la flèche en rotation en haut du code, mais n'oublie pas de copier ou sauvegarder ton code actuel, sinon tu vas le perdre

BlaiseEbuth: AzBeen print("Debug messages...", file=sys.stderr)

AzBeen: Merci

AzBeen: NameError: name 'sys' is not defined at Answer.py. in <module> on line 12

BlaiseEbuth: import sys

AzBeen: ah bah oui je l'avais enlevé *facepalm*

Magus: Neumann: Mazelcop: mais comment tu gères les pacs individuellement dans le fog si tu veux prune avec le score ? Parce que si un pac ne bouge pas mais l'autre si, tu peux tomber sur le bon score quand même. Individuellement t'as pas l'info. Je rate un truc ?

Neumann: Tu peux pas pruner avec le score avec une gestion individuelle, en effet

Mazelcop: Magus à la base je voulais prune avec le score uniquement si l'adversaire farmait avec tous ses bots ou pas du tout

AzBeen: Et c'est censé faire quoi ? en dehors de print un "Debug messages..." ?

Mazelcop: ça peut être utile surtout au début vu que tout le monde est quasiment en full farm

Neumann: T'as quoi comme genre de recherche Magus ? Un truc random ?

BlaiseEbuth: AzBeen: à toi d'afficher des infos pertinentes pour trouver d'où viens ton problème...

Magus: Neumann: c'est un AG que j'ai copié/collé vite, depth 6 (juste pour pouvoir SPEED et voir ce que j'en fait)

Magus: *vite fait

Neumann: Ok

Magus: je mettrais mieux si je trouve un vrai truc pour gérer le FoW et l'adversaire

Snef: Petite question pour une simu individuelle vous faite un ordering random pour la recherche des pacs ou 0genre vous testez toutes les combinaisons d'ordering ?

Magus: la question se pose pas pour un AG, mais en théorie faudrait d'abord sélectionner les coups de ton pac le "plus fort" en premier.

Magus: Mais bonne chance pour déterminer qui est le plus fort.

Snef: faire une premiere petite recherche genre 10% du temps pour faire un "ranking" ?

Magus: Instinctivement ce que je serais c'est déjà tester ceux qui ont le speed actif en premier. Ensuite ceux qui ont le cooldown de disponible. Et enfin les autres.

Magus: *ce que je ferais

Magus: mais je garanti pas que ça marche, la c'est juste mon instinct

tblancbeyne: Il y a pas un bug dans le traitement des collisions ? ( https://www.codingame.com/replay/463641274 , tour 5 en bas à droite)

Drazyen: Non, c'est pas un bug.

tblancbeyne: Du coup on peut manger à distance ?

Drazyen: Le bleu de droite est avancé à gauche, le rouge de gauche est avancé à droite (donc sur la même case que le bleu) et le rouge au milieu est avancé à droite, puis on gère les collisions.

Drazyen: C'est juste que tu ne vois pas la résolution des conflits ^^

tblancbeyne: Ok merci

Magus: la gestion des collisions du referee est pas dur à coder, mais elle pas du tout intuitive pour un humain

tblancbeyne: Je pensais que le rouge de droite faisait bouclier pour celui de gauche

Magus: (facile != performant hein, parce que la triple boucle merci)

Drazyen: J'avoue que j'aurais peut-être dû jeter un coup d'oeil au code du referee au début du contest pour voir

Drazyen: Ca me semblait tellement le ****** la gestion des collisions que j'avais préféré les interdire ahah

AzBeen: Je crois que j'ai trouvé... Mais c'est bizarre.

Dans ma boucle for, je reste bloqué à la fin de ma 1ère itération, sans commencer la 2ème ni même poursuivre hors de la boucle


BlaiseEbuth: Mais tu bloques avant une instruction ?

AzBeen: Non j'ai mis en print en fin d'itération il fonctionne

Gh0stm4chine: https://www.codingame.com/share-replay/463648147 c'est beau, mon adversaire a implémenté du bm dans son ia

BlaiseEbuth: Et tu as un print au début de ton for avant toute instruction ?

AzBeen: ah je viens de le faire au début oui, mais si je fais le test pour la deuxième itération en fin de boucle, ça bloque

BlaiseEbuth: Donc une de tes instructions à l'intérieure de la boucle merde à la deuxième itération.

Default avatar.png JBM: (+~) = (uncurry (***) .) ((+) *** (+))

Vry: Ben histoire de faire un truc en attendant de trouver la motivation de finir la simu. je vais code un switch pour voir si ça aide ...

Default avatar.png JBM: qu'est-ce qu'on rigole, des fois

BlueGhost31: Gh0stm4chine :joy:

BlaiseEbuth: Reste à trouver laquelle et pourquoi. Il faut que tu essayes d'afficher le maximum d'infos. Genre les résultats de chaque instruction de ta boucle, pour voir laquelle bloque et si il y'a des résultats incohérents.

Default avatar.png JBM: bon on peut supprimer la seconde paire de parentheses, on est pas en lisp

BlaiseEbuth: Tu fais un curry JBM :yum:

Default avatar.png JBM: au contraire

Default avatar.png JBM: je le defais

Neumann: Y'a Psyho qui reviens

Neumann: Top10 soon

Default avatar.png JBM: yay

Default avatar.png JBM: ca motive l'ecran

Vry: C'est qui lui ? @Neumann

Default avatar.png JBM: dramaqueen

Neumann: Un mec très fort

Default avatar.png JBM: mais bon

Neumann: reCurse-tiers

Default avatar.png JBM: wow

Alshock: ah ouais on en est là ?

Alshock: y a la pyramide des niveaux avec des petites photos dessus

AzBeen: J'ai trouvé quelle instruction bloque. Mais je comprends pas pourquoi

AzBeen: nouvellePastilleX,nouvellePastilleY, nouvellePastilleValeur = [int(k) for k in input().split()]

Default avatar.png JBM: heuristique: c'est les gens du top contest que tu vois jamais en multi

Alshock: est-ce que tu pourrais t'être décalé dans les inputs à un moment AzBeen ?

Alshock: tu flush bien tes prints qui permettent d'isoler cette ligne ?

AzBeen: Non je ne crois pas m'être décalé dans mes inputs, le premier avec les coordonnées des pastilles est correct, et il bloque au deuxième

AzBeen: et à ce moment là, il n'y a aucun print

AzBeen: le seul print est à la fin

Alshock: j'ai eu un bug du genre à un moment en python, et je vais pas te mentir j'ai aucune idée de comment je m'en suis débarassé

AzBeen: Aïe

Default avatar.png stephdz: le boulet, j'ai du virer une ligne de code super importante de mon algo sans le faire exprès et ça fait 2 jours que je ne comprenais pas pourquoi j'avais chuté dans le classement... forcément, si je sais que des cases sont vides, mais que j'y vais quand même, ça fait perdre beaucoup de matchs !

BlueGhost31: AzBeen ça pourrait venir de la boucle aussi autour de ta ligne

Bob: AzBeen si ca bloque sur un input() potentiellement c'est que tu lis trop de trucs

BlueGhost31: ou pas assez

AzBeen: C'est-à-dire?

BlueGhost31: ta ligne est dans une boucle sur le nombre de pellet

AzBeen: Oui

AzBeen: mais quand je print dans cette boucle, avant cette instruction, ça fonctionne

BlueGhost31: et les pellets tu ne les a pas déjà lu ailleurs par hasard?

BlueGhost31: dans ce cas tu attendrais indéfiniment une entrée qui n'arriverait pas

AzBeen: une seule fois, dans un if qui n'est utilisé qu'une fois

AzBeen: http://chat.codingame.com/pastebin/11e13be9-aa93-46f4-a088-95d9f640e49e

BlueGhost31: ok normal

AzBeen: Alors j'ai pas bien copié, mais le a=True est au même niveau d'indent que for

BlueGhost31: tu ne dois pas mettre la boucle des pellets dans celles des pacs

BlueGhost31: elles sont indépendantes

BlaiseEbuth: RTFS

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

AzBeen: J'ai mis comme ça pour donner une destination à chaque pac

AzBeen: je vois pas comment faire autrement

BlaiseEbuth: C'est pas toi qui décide dans quel ordre arrivent les infos...

AzBeen: Mais en faisant comme ça je ne gène pas le sens d'arrivé des input()

AzBeen: j'y ai prêté attention

BlaiseEbuth: Tu as déjà lu les pacs avant ?

AzBeen: avant j'ai lu tout les inputs jusqu'au nombre de Pastilles Visibles (inclus)

BlaiseEbuth: Ton print pose problème. Tu lis l'input dedans

BlaiseEbuth: ça décale tout

AzBeen: Ah je me suis mal exprimé.

AzBeen: J'ai print(input()) pour vérifier justement qu'il y avait autant de nombres que de variables avant

AzBeen: dans : pastilleX,pastilleY,pastilleValeur = [int(k) for k in input().split()]

AzBeen: et c'est bien le cas

AzBeen: donc c'est pas un problème de trop / pas assez d'entrée

BlaiseEbuth: J'entends, mais c'est quand même faux.

Bob: quand tu appelles input(), il lit des trucs

Bob: donc print(input()), tu lis des trucs en plus

BlaiseEbuth: voilà

AzBeen: oui mais c'était juste pour tester je l'ai enlevé

AzBeen: ah je comprends je l'avais pas enlevé sur le pastebin

AzBeen: d'ailleurs je me suis trompé dans le test. ça bloque à l'itération i==1

AzBeen: quand i==1, dans la boucle j je peux pas print(input())

AzBeen: AH mais je suis bête.


AzBeen: j'ai compris -.-

BlaiseEbuth: On en reviens à ce qu'on disais tout à l'heure. Tu essayes de lire pacCount fois les pastilles

Bob: ca irait pas plus vite que tu montres tout le code de lecture en fait ? :)

Bob: ah oui, vu BlaiseEbuth

Bob: je plussoie

Gh0stm4chine: Le bot silver est stable ?

AzBeen: Réglé, j'ai itéré les input dans une boucle à part pour les mettres dans une liste, donc dans mes boucles j'utilise cette liste et ça fonctionne

AzBeen: désolé de vous avoir fait perdre votre temps sur une erreur aussi ridicule ^^'

BlaiseEbuth: :thumbsup:

BlaiseEbuth: Gh0stm4chine ?

Gh0stm4chine: je parle de son classement, il va encore descendre un peu ou c'est mort :p

AzBeen: Donc ce côté là est réglé. Cependant dans ma fonction distance (j'utilise la distance Manhattan), je ne considère pas les passages qui vont de d'un bord à l'autre

Alshock: Je sais pas mais en tout cas ton IA qui crash i lva falloir la repush Gh0stm4chine :P

AzBeen: et je n'ai pas la moindre idée de comment l'envisager...

Alshock: @AzBeen min(dx, width - dx)

Gh0stm4chine: oui haha

Alshock: par contre si ya pas de passage vu que c'est à vol d'oiseau ça va considérer que la gauche est quand même proche de la droite

Gh0stm4chine: quand je rejoue la partie qui a crash, ça le fait pas, c'est chelou non ?

AzBeen: Ah merci beaucoup

BlaiseEbuth: Cette phrase est Automatonesque Alshock

BigUP: AzBeen, c'est déjà un bon debut, ca permet d'aller jusqu'en silver au moins si tout le reste est bien géré

AzBeen: je pensais que ce serai beaucoup plus long en terme de lignes

Alshock: On passe clairement pas mieux le test de turing que lui

BlaiseEbuth: M'inclus pas là dedans... ^^

Zanbez: Automaton2000 , Turing, ça te parle?

Alshock: @AzBeen ce que je t'ai donné c'est juste la distance sur l'axe x hein, on s'entend bien ?

Automaton2000: faut juste pas les mêmes choses

domak: Dites, les super-pellets, vous les gérez à part ou dans vos scores de move? Je les gère à part pour les affecter correctement à mes pacs mais j'ai plein de soucis du coup sur des collisions...

Alshock: @AzBeen le tour de la map fait width, donc si pour aller de a à b dans un sens (sans passer par le bord) c'est dx, alors en passant de l'autre côté c'est width - dx

Alshock: @domak pour éviter les collisions, interdits les path qui collisionnent ! :D

Alshock: -t

domak: oui c'est inclus dans mon score quand je vais mes moves mais ça entre en conflit avec la chasse au super pellet qui sont gérées par ailleurs

domak: si tu as 3 pellets et 4 pacs, je fais affecter 3 pacs à la chasse, mais je vais gérer le 4ème par ailleurs...

Alshock: et tu peux pas rassembler la chasse au super pellets pour que ses paths soient aussi pris en compte quand il faut pas se croiser ?

domak: si. c'est ce qu'il faudrait que je fasse

Gh0stm4chine: moi je considère que je peux atteindre que la moitié des supper pellets les plus proches, si l'adversaire est pas trop con..

Alshock: si tu as en priorité les super pellets faudrait (à mon humble avis, et pour faire simple) générer les paths vers des super pellets qui ne se collisionnent pas, et ensuite faire la chasse en évitant de collisionner les autres chasseurs, chasseurs de super pellets compris

domak: mais mon code s'y prete mal. Dans un cas, je fais de l'allocation, dans un autre je fais du scoring, c'est 2 buts différents

domak: oui Alshock c'est ce qu'il faut que je fasse

Alshock: certes, mais t'as bien des paths des deux côtés. Au pire tu rajoutes juste comme un sac l'impératif "faites pas chier les pacs déjà alloués" aux scoreurs

domak: oui. Je vais revoir mon truc, mais j'ai ajouté tellement de feature (floyd, varanoi, etc) que c'est devenu un spaghetti code

domak: j'arrive même plus à décoler du bottom gold

Default avatar.png Nelimee: J'ai jamais essayé de coder un Voronoï, c'est facile/efficace à coder?

Alshock: ça dépend de ce que t'as besoin de faire avec. Si c'est juste pour associer chaque pellet à un pac sans besoin de vitesse tu peux itérer sur toutes les pellets, calculer le pac le plus proche, y associer la pellet et hop ! un voronoï du pauvre !

domak: oui c'est ce que je fait

Alshock: sinon tu peux faire pareil en presque aussi nul avec un floodfill qui part de tous les pacs en même temps.

Default avatar.png Nelimee: Non mais les algorithmes similaires c'est pas un soucis, je demandais spécifiquement pour le Voronoï ^^

domak: mais comme j'ai un floyd précalculé ça va vite (mais c'est pas précis s'il y a des pacs entre le pac et la pellet)

Alshock: après si tu veux implémenter un voronoï complet dans un espace infiniment sécable, là on va rentrer dans un algo de Fortune (le nom du mec, pas parce que c'est fait à l'arrache), et c'est plus complexe

Default avatar.png Nelimee: J'ai fait un truc semblable à un Voronoï mais avec un autre algo, parce que j'ai jamais aimé Voronoï, mais je me suis rendu compte que je n'avais jamais essayé de l'implémenter en fait

domak: non moi j'ai fait la manière simple

Alshock: d'ailleurs j'ai complètement foiré mon floyd quelque part, parce qu'il est plus lent que N floodFills... C'est pas normal du tout ça

Default avatar.png Nelimee: De toute façon N floodfill c'est suffisamment rapide :p

domak: tu le fais à l'init du game

AzBeen: cet évènement est bientôt fini. Il y en a régulièrement des commes ça ?

Alshock: voronoï c'est pas un algo à proprement parler, c'est juste le découpage de l'espace en cellules de proximité à un point de la liste

domak: et après le calcul des disatnce c'est gratuit

Default avatar.png Nelimee: Ha oui bien vu Alshock, effectivement j'ai mal utilisé le terme! Bon ben je fais un découpage de Voronoï en linéaire on va dire, ça me suffit x)

Alshock: @AzBeen relativement, mais je saurais pas dire la fréquence.

AzBeen: cool ! merci :)

Alshock: Ptêtre un tous les 3 mois ne moyenne si je dois me mouiller ?

Bob: AzBeen, generalement 3-4 par n oui

Bob: an*

BlaiseEbuth: Floyd j'en ai fait un à l'arrache mais j'ai merdé quelque part c'était trop lent... Mais comme j'en avait pas besoin je l'ai juste viré... Pas se casser l'cul pour des conneries...

Bob: ca depend un peu des annees

BlaiseEbuth: Plus maintenant, c'est deux par an.

Alshock: BlaiseEbuth ah ah ah dans mes bras mon frère ! :P

Bob: celui-ci on l'a attendu longtemps et c'est uniquement "grace" au confinement qu'on a eu OoC en plus

Alshock: note comme j'ai enlevé le "@" rien que pour toi @BlaiseEbuth

**BlaiseEbuth fait un calin à Alshock

Bob: AzBeen: mais tu peux toujours te faire les dents sur les contests precedents qui sont en multiplayer

Bob: et la t'as un peu de stock pour te marrer

**Alshock entame une danse de la joie en claquettes

Bob: sans compter les multi de la community

Alshock: comme Oware par exemple

Bob: ou Coders of the Realm :angel:

Bob: #shamelessPlugDetected

Gh0stm4chine: vous avez des bonnes références pour apprendre à faire des ias en bonnes et dues formes ? c'est mon premier contest, et mon code ne ressemble à rien j'ai l'impression

Bob: Gh0stm4chine ca depend de ce que tu appelle une IA en bonne et due forme

Bob: il y a pas mal de post-mortem sur le blog et le forum pour avoir de bonnes pistes

Alshock: ça ressemble à rien si tu t'y prends mal, si tu l'avais bien codé ça ressemblerait à rien ! ;)

Bob: et si t'es motive, il y a le skeleton de Magus pour Fantastic Bits

BlaiseEbuth: Et les incontournables articles de Bob.

Bob: qui est sans doute une mine

BlaiseEbuth: C'est pour CSB non ?

Bob: nope, c'est pour FB

Alshock: y en a un aussi sur CSB

Bob: de memoire il y a tout le code de sa simu du moteur et de l'AG

BlaiseEbuth: Je le connais pas celui pour fb

Gh0stm4chine: https://www.codingame.com/blog/best-programmers-reveal-magic-code/ ça ?

Bob: il manque en gros "que" la fonction d'eval

BlaiseEbuth: Bah il l'avait fait pour csb ça

Bob: donc deja beaucoup a puiser pour la structure du code, etc

BlaiseEbuth: http://files.magusgeek.com/csb/csb.html

Gh0stm4chine: cool merci, je vais commencer par y jeter un coup d'oeil

Alshock: En se rappelant toujours le mantrat de la paresse évidemment : https://www.codingame.com/blog/lazy-keep-simple/

Bob: ok mais pour FB il a aussi publie son code

Bob: enfin bon avec tout ca t'as deja un peu de lecture :D

BlaiseEbuth: Ah. L'avais pas vu...

Bob: https://github.com/dreignier/fantastic-bits/blob/master/fantastic-bits.cpp

Bob: linke depuis le premier blog post

Gh0stm4chine: Alshock yep j'avais commencé par lire cet article :p

BlaiseEbuth: Ah ok. Merci

Alshock: @Gh0stm4chine moi j'ai été trop flemmard pour le finir, tu penses que Bob serait fier de moi ?

Alshock: C'est même pas vrai en plus, je fais honte à mon propre mantra

Gh0stm4chine: je pense que si tu as bien saisi l'article, il ne faut pas tout lire justement.. enfin pas d'un coup :D

Magus: mon code pour fantastic bit faut par contre implémenter une eval

Magus: faut pas déconner j'ai pas tout donné !

Neumann: Ouais, il reste 2 lignes à ajouter pour faire top 10

Neumann: Faut pas déconner

Magus: mais ça fait quand même rager des gens parce qu'il parait que juste en mettant une éval débile du fait top 20

Magus: *tu

Magus: mais bon de toutes façons comme l'a dit [CG]SaiksyApo, "Multiplayer is a zoo"

Magus: donc c'est boin

Magus: *bon

Bob: sur ce, moi je vous souhaite la bonne soiree

Bob: na

Bob: soyez sages :*

BlaiseEbuth: o/

Gh0stm4chine: bonne soirée

Bob: et mangez pas trop de pastilles

BrainSolver: Magus, ca doit être moi l'éval débile qui fait top 20 : eval=game.myScore;

BrainSolver: :grinning:

Alshock: en même temps c'est déjà une très bonne éval :D

Magus: m'étonnerait que cette eval aille bien loin, parce que la profondeur de l'AG va rarement aller jusqu'à mettre des buts

Magus: mais avec juste un critère en plus je pense que tu fais top 20 ouai

Magus: juste regarder la distance entre les wizards et les trucs à jeter (snaffle ? je sais plus)

dbdr: oula, marquer des but, ça m'a fait un sacré context switch :D

[CG]Maxime: ah le ctrl+click activé enfin !

[CG]Maxime: merci [CG]Nonofr :) you're my Hero

[CG]Nonofr: Oh non je suis démasqué !

Default avatar.png ksGold: je vais vous botter le cu

NoZ-: Est-ce que les sorties d'erreurs qui se produisent juste après un timeout sont quand même affichées ? Je me suis mis une sortie d'erreur juste après mon output, la sortie d'erreur s'affiche mais j'ai quand même le timeout...

egaetan: NoZ ça peut arriver

egaetan: je crois

**egaetan timeout

PhOeNyX: Le code de Magus pour FB il était écrit en C++, il a fallu que je traduise tout ça en Java pour faire un truc que je comprenne

PhOeNyX: spa sympa

Gb42: J'aimerais bien placer un breakpoint moi

NoZ-: Ok, donc j'ai pas de moyen de comprendre pourquoi je timeout :cry:

PhOeNyX: Merci beaucoup pour le ctrl+click, j'avais essayé au début du challenge et j'avais été très déçu. :D

[CG]Nonofr: très déçu, rien que ça ! :O

PhOeNyX: eheh

PhOeNyX: https://www.codingame.com/replay/463754865

[CG]Maxime: Nonofr, moi ça me fait plaisir, ça te suffit pas ?

[CG]Nonofr: ton bonheur est la seule chose qui compte, bien entendu ! (:

Neumann: Ils sont mignons

[CG]SaiksyApo: Ce qui me plait chez toi, c'est ton petit bibon mignon, mignon, mignon, gnon gnon !

[CG]Nonofr: ça change un peu ! ;)

Neumann: C'est le télétravail, vous vous manquez

[CG]BOUGA: il y a du monde dis donc

dbdr: vous decouvrez la participation au contest? :D

Gb42: Oui

[CG]Maxime: oh [CG]BOUGA !

[CG]Maxime: ouais Neumann, ils me manquent :)

Neumann: Vous avez prévu de continuer le télétravail longtemps ?

Alshock: [CG]Maxime Ouais ça se voit les gars que le patron lit ce chat hein :P

[CG]Maxime: au moins tout ce mois

Neumann: :ok_hand:

Mastard: wow je me tape des timeout tout le temps depuis 5 min, avec le meme code qui marchait il y a 10 min

Default avatar.png thoip: Mastard oui c'est la reception des données qui mets 100ms

Mastard: aaah mais c'est pour ca que je commence ma boucle avec deja 123ms

Mastard: j'etais en train de m'arracher les cheveux xD

Snef: C'est possible d'avoir le chemin rapportant le plus de pellet en un seul bfs ou il y'a mieux comme algo ?

Snef: (pour un pacman)

egaetan: Snef oui c'est possible

Snef: egaetan je t'ai pm à ce propos si tu as 2 mn :)

leojean890: 501 replays en 19h depuis mon dernier submit, ça submit pas mal en gold dis donc, et c'est pas que kovi ;P

leojean890: et moi #230, je tombe dans les abysses;o

Mastard: du coup ce probleme de timeout arrive à tout le monde ?

leojean890: mon code a fait 2 voyages complets depuis ce matin 230 => 170 => 230 => 170 => 230

leojean890: aller retour *2

leojean890: mais vu que le top se renforce j'ai peur de tomber plus profondément dans les abysses si je ne fais pas qqc ;o

leojean890: Mastard pas moi

Mastard: bah alors je comprends pas...

leojean890: mais jfais pas un truc très très lourd niveau time

leojean890: je fais juste un bfs complet par pac par tour

R4N4R4M4: leojean890 touche à rien, moi je fais des choses et ça ne fait que me faire descendre :D

leojean890: et d'autres trucs qui coutent lrge moins

leojean890: R4N4R4M4 j'ai cru constater hier qu'avec un même code c'est super dur de se retrouver "à sa place" en le resubmittant:p

Kh4z: je confirme : O

leojean890: genre je suis 200, je tente une modif, je passe 260, je resubmit le premier, je me retrouve 250 au lieu du 200 de 20 min avant

leojean890: et du coup je tente encore un truc, je suis 230, je le laisse se stabiliser, et là il monte :p

leojean890: Kh4z c'est parce qu'il y a des scores assez serrés, et même si on est en moyenne meilleur que qqn, on peut chopper des loses sur des games où l'autre a l'avantage..

Mastard: rien que la lecture des données est à 95ms, avec le code de base quasiment :o

R4N4R4M4: oui c'est vraiment bizarre ce jeu, je pense qu'on a tous des features différentes et tant qu'on a pas codé la totale et bien ça va être dur de se stabiliser

leojean890: du coup vaut mieux avoir des idées qui font VRAIMENT la différence avant de submit..

Default avatar.png Nelimee: Mastard En quel langage? :o

Kh4z: je doute coder la totale avant la fin^^

Mastard: TS

leojean890: 95 ms la lecture de données ? wtf

BlaiseEbuth: Mastard tu dois lancer le chrono APRES le premier input. Sinon tu mesures le temps du referee

R4N4R4M4: pour moi la totale, c'est répondre à tous les cas qui peuvent se présenter, j'en suis loin

Default avatar.png Nelimee: Ha, parce qu'en C++ je fais la lecture + 1 BFS par case + au moins 4 autres BFS + d'autres trucs sympas en 40ms

Mastard: aah

Default avatar.png Nelimee: Ha ouf

Default avatar.png Nelimee: Je me disais aussi que c'était étonnant

Gb42: Ranarama, ça me rappelle un vieux vieux pote qui s'appelait comme ça sur Worms

Mastard: effectivement ^^

R4N4R4M4: ha ha possible que c'était moi, mais j'ai pas trop joué à Worms en ligne

leojean890: R4N4R4M4 clair, faut vraiment avoir un algo très solide... et c'est dur de tres bien appliquer ses idées, ça reste souvent légèrement approximatif pour ma part..

leojean890: R4N4R4M4 répondre à tous les cas qui peuvent se présenter c'est le top 10 en fin de contest je dirais et encore..:P:P

R4N4R4M4: même approximatif, vaut mieux faire quelque chose que rien

leojean890: y répondre parfaitement j'entends

leojean890: bah moi c'est trop approximatif, notamment ma gestion de l'adversaire, donc ça ne monte pas super haut :s

R4N4R4M4: là je suis en train de régler le problème des big pellets quand c'est pas forcément le pac le plus proche qui doit les prendre...

R4N4R4M4: je vais faire un truc approximatif et ça sera toujours mieux que de laisser mes pastilles à l'adversaire

leojean890: moi c'est tjr le plus proche qui y va :P c'est pas forcément optimal ;)

R4N4R4M4: Sans forcément aller jusqu'à vouloir prendre 3 pastilles sur 4... :D : https://www.codingame.com/replay/463785240

R4N4R4M4: Mais sur ce game, 3 / 4 est jouable, par contre je me vois pas coder ça

leojean890: notamment si un mec est le plus proche pour 2 pellets

R4N4R4M4: oui voilà

leojean890: faut en envoyer 2

Neumann: CG-Sync fonctionne plus avec Monaco ou c'est que chez moi ?

leojean890: bah moi je le gère pas encore, mais je le considérais avec mon algo hongrois..

leojean890: jamais testé CG-Sync..

R4N4R4M4: faut minimiser la somme des distances ^ 0.9

Default avatar.png Nelimee: Vous allez vraiment vous embêter à faire un algo hongrois?

R4N4R4M4: c'est quoi l'algo hongrois ?

BlaiseEbuth: C'toujours meiux qu'un algo malgache...

R4N4R4M4: j'ai trouvé sur wiki

Neumann: R4N4R4M4: t'as testé la "patience" ?

R4N4R4M4: c'est un algo aussi ?

BlaiseEbuth: stoi l'algo

Neumann: Au lieu de faire : sum(d^0.9), faire sum(0.9^d)

R4N4R4M4: ah, ça marche aussi ?

Neumann: Enfin plutôt : sum(pellet_value * 0.9^d)

R4N4R4M4: Ca marche à l'envers :D

Neumann: A maximiser

Neumann: Oui

Neumann: Ca doit être équivalent

R4N4R4M4: ah oui, je pense que ça peut marcher aussi, je trouvais plus logique de rogner la distance au fur et à mesure qu'elle augmente, mais bon...

Neumann: Ca fait pareil

Mazelcop: c'est une gaussienne votre truc non ?

R4N4R4M4: C'est pas marrant Mazelcop :D

R4N4R4M4: On se gausse pas !

Mazelcop: ^^

Default avatar.png thoip: c'est approximatif ce calcul de distance

R4N4R4M4: bah non thoip

Default avatar.png thoip: tu prends pas en compte les murs.

BlaiseEbuth: stoi l'mur

R4N4R4M4: soit t'es linéaire avec une puissance 1, soit tu décrois avec < 1, soit tu crois avec > 1, très précis au contraire

R4N4R4M4: après tu peux mettre puissance 1/PI ça marche aussi :D

Default avatar.png thoip: moi je recalcule pour chaque pac les parcours possibles.

R4N4R4M4: Je pense qu'il y a pas d'autres moyens en effet

R4N4R4M4: Qui a simplifié le graphe ?

Default avatar.png thoip: je recalcule en tenant compte des obstacles pour chaque point de la carte.

Snef: c'est on code live qui fais ça thoip ?

Snef: ton*

Default avatar.png thoip: oui ca prends moins de 2 ms

PhOeNyX: Moi je prends en compte les murs

PhOeNyX: et les pacs sont des murs

PhOeNyX: ahah

Snef: pareil PhOeNyX haha

Snef: enfin sur mon vieux code je refait tout là :p

PhOeNyX: bon en fait ce ne sont pas tout à fait des murs

PhOeNyX: j'ai des conditions

Default avatar.png thoip: c'est une impasse pour moi qu'un pac killer peut passer.

PhOeNyX: un pac n'est pas un mur si je peux le bouffer, et si c'est un allié ce n'est un mur que s'il est "proche"

Alshock: ah yes

Alshock: l'erreur seul est plus longue que ce que le site peut afficher

Alshock: bo sur ce, moi je file manger <3 sur vous

Mastard: mais quel $ù$^*ù$^$ù* je faisais 35 bfs par tour

Mastard: tu m'etonne que ca timeout

Gb42: J'ai codé pour privilégier le chemin le plus court par rapport au gain potentiel. Résultat mes perso ne bougent plus. Ca fonctionne !!

Mastard: ah j'ai mis ce systeme de ratio aussi, ca marche bien pour moi

Default avatar.png thoip: Mastard, je fais un bfs pour chaque point de la carte pour chaque pac. moins de 2 ms.

Mastard: WHAT ?

Mastard: what kind of sorcery is this

Mazelcop: ben c'est un floodfill non ?

BlaiseEbuth: Dépends du langage aussi...

Default avatar.png thoip: non dépend comment tu structures tes donnees.

Mastard: moi pour chaque pac je fais tous les chemins possible autour de lui, avec une limite de longueur

Mastard: ca doit pas etre optimisé haha

Snef: tout les chemins possible c'est différent de toute les distances aussi

R4N4R4M4: En 35 j'avais fix la fuite, mais non, il veut pas fuir !!! https://www.codingame.com/replay/463806643

BlaiseEbuth: Ok structures bien tes données et avec fais moi un bfs en python et un en c++. SI celui en python est plus rapide je t'appelle monsieur.

Mastard: sachant qu'il fait un bfs/pac/point de carte, je trouve que c'est relativement equivalent

Snef: Mastard, tu as un chemin par case quand tu fais les distances

Snef: quand tu fais les chemin tu as plusieurs chemin par case donc ça me semble être beaucoup plus couteux

Mastard: je sais pas... quand j'arrive à une case, si j'ai deja un chemin qui y mene et qui est plus court, j'arrete le chemin en cours

Mastard: nan mais en plus deja je fais une grosse connerie, c'est chercher les chemins possibles, et calculer leurs valeur en pastille apres

Mastard: alors que je devrais le faire en meme temps

Snef: oui

Mastard: c'est ce que je suis en train de changer

Mastard: mais vu qu'avant ca me faisait pas de timeout, j'avais laissé comme ca

Mastard: par contre 1 bfs/pac/point en 2ms, ca me rend fou lol

Snef: moi j'avais 1 bfs/point/point en 4ms

Mastard: :sob:

Snef: donc je trouve ça même un peu lent le 2ms :p

Mastard: bon en fait c'est la 1ere fois que je fais un bfs de ma vie dons je dois pas le faire bien

BlaiseEbuth: Tu codes en quoi Mastard ?

Mastard: j'ai cherché un peu sur le net pour avoir l'algo, je l'ai transformé en TS sans trop reflechir

Snef: ah je viens de voir typescript :p

BlaiseEbuth: Ouai...

Snef: je fais du js au taff et je t'avoue que je préfère faire du c++ ici haha

Mastard: ouais j'ai commencé un projet TS au taf, je me suis dit que ca me permettrai de m'ameliorer de faire le challenge en TS

Mastard: je chosiirai autre chose peut etre la prochaine fois

Snef: après ici c'est bueacoup d'algo donc je sais pas si c'est très "utile" pour le taff

Mastard: non c'est certain mais prendre les habitudes et tout quoi

Mastard: de toute facon j'avais pas pour objectif d'etre top 100 forcement haha

Snef: go gold !

Mastard: deja 585 la, pour mon premier challenge CG, je suis content ^

[CG]Thibaud: gg Mastard

BlaiseEbuth: Bleurfl... J'aime les double free or corruption. Surtout quand ils ne se produisent qu'une fois sur 1 milliard...

Mastard: thx ^^

Gb42: J'ai bossé sur ce truc pendant 3 heures d'affilé. Et là ça crashe. Et je suis deg.

nib: en silver, la nouvelle regle : "You can now see pacs that have died." A quoi ca sert ?

Neumann: A voir les pacs morts

BlaiseEbuth: A voir les pacs qui sont morts...

Gb42: Je vois des gens qui sont morts

R4N4R4M4: nib tu sais qu'un Pac est mort

R4N4R4M4: avant tu savais pas, tu le voyais pas c'était tout

R4N4R4M4: maintenant tu vois les morts et les visibles, les autres sont vivants et invisibles

nib: merci pour vos réponses, la plus utile est de loin celle de R4N4R4M4 !

Neumann: De rien

R4N4R4M4: ;) merci nib

BlaiseEbuth: Parceque c'est le seul qui a fait plus que répondre à ta question. Et il est bien gentil. Si tu veux une réponse satisfaisante, pose la bonne question...

Neumann: Salé

nib: oh... ya des gens pas contents.

BlaiseEbuth: C'est toi qui te plains de la pertinence des réponses, alors je prend le temps de t'expliquer... :grin:

Neumann: Battez-vous

R4N4R4M4: C'est vrai que normalement, tu vois l'énoncé, tu essaie de comprendre les inputs, tu code un peu et tu testes, et comme ça marche pas, tu refais et au bout d'une heure t'as enfin compris...

nib: :heart_eyes:

R4N4R4M4: Du coup, d'obtenir directement la réponse, ça peut énerver certains... :D

Default avatar.png Paikan2068: Je me sens mauvais, je reste à la 70ème place du bronze... Plus qu'à travailler pour avoir de meilleures idées la prochaine fois

R4N4R4M4: Les idées les plus simples sont souvent les meilleures

BrainSolver: Le Dead enlève un peu de brouillard de jeu. Ça évite au Pac de chercher bêtement les morts partout jusqu’à la fin de la partie.

R4N4R4M4: qui cherche les morts ?

BlaiseEbuth: Mange les

BrainSolver: Pas grand monde à mon avis.

Default avatar.png Paikan2068: J'imagine que si tu te mets à essayer de chase un pac ennemi... Mais bon, c'est jamais optimal

R4N4R4M4: en même temps je dis ça, mais j'avais un test en bronze pour chercher les morts :D

Default avatar.png Paikan2068: R4N4R4M4, tu as sans nul doute raison. J'étais plutôt bien parti au début, quand je me prenais pas la tête pour des bêtises

Default avatar.png Paikan2068: et puis, je me suis laissé entrainer sur du BFS, du A*, de la collaboration

Default avatar.png Paikan2068: Et c'était vraisemblablement un peu trop pour moi, vu que mon code reste bloqué en bronze :p

Default avatar.png Paikan2068: Mais j'aurai appris des trucs

R4N4R4M4: On a vite fait de se mélanger les pinceaux, faut avancer idée par idée, en vérifiant bien que tout fonctionne avant d'attaquer la suivante....

WhatTrickeryIsThis: De rien Nib, j'étais pas là mais ça fait toujours plaisir

R4N4R4M4: Bref... tout l'inverse de ce que j'ai fait, c'est le bazar quoi

Default avatar.png Paikan2068: Oui, exactement

R4N4R4M4: exemple, j'ai une vieille fonction codée vite fait, et une nouvelle qui marche beaucoup mieux... sauf que je me suis aperçu que ma première était pas désactivée quand j'ai testé la deuxième. Et si je la désactive, la deuxième marche moins bien... :D

R4N4R4M4: Bref ça prend l'eau de partout

Default avatar.png Paikan2068: Mon meilleur code (a priori, vu que je l'ai pas relancé, faute d'organisation avec un bon commit Git) utilisait une distance "naîve", simple différence des x et des y

R4N4R4M4: on l'a tous faite celle-là :D

Default avatar.png Paikan2068: Et en vrai elle marche pas si mal

R4N4R4M4: ça s'explique car tu découpes la map en rectangles

R4N4R4M4: c'est pareil chez moi, les vraies distances marchent moins bien que si je découpe à la hache

R4N4R4M4: mais j'ai un flag pour activer ou pas

Default avatar.png Paikan2068: Tu optimises aussi les recherches de chemin du coup, en évitant d'aller chercher 40 cases

Default avatar.png Paikan2068: C'est malin le flag

Default avatar.png Paikan2068: Plein de petits réflexes que je n'ai pas encore

R4N4R4M4: Mouais, j'ai 50 flags dans mon code, il me faudrait un RN pour tout gérer

R4N4R4M4: oui l'idée c'est de garder ce que tu as codé précédemment et de le désactiver rapidement

Default avatar.png Paikan2068: Revenir à la simplicité! Peut-être que Kovi expliquera les grands axes qui lui ont donné la victoire

R4N4R4M4: et si t'as des paramètres à faire varier, les mettre en constantes aussi

Default avatar.png Paikan2068: Ouais, j'avais une approche sympa sur les cases pour ça, que je voulais utiliser en A* pour optimiser mes chemins, mais bon, ça a commencé à taper les timeouts

Default avatar.png Paikan2068: Et quand tu joues ta victoire à la capacité de ton code à pas taper le timeout, c'est jamais bon signe

R4N4R4M4: Après, ça ça dépend des langages

Default avatar.png Paikan2068: Python ici, donc forcément relativement lent

Default avatar.png Paikan2068: Mais bon, le top Python reste 40ème je crois, je suis 1600 et quelques, il y a de la marge :)

R4N4R4M4: Oui, la perf ne fait pas tout

Default avatar.png Paikan2068: Les algorithmiciens disent toujours que la puissance ou le langage importent peu, tant que tu choisis la bonne manière de faire tes calculs

Default avatar.png Paikan2068: Et ils ont clairement raison, ça revient à ce qu'on évoquait sur la simplicité

Mastard: bon 46ms pour 4 bfs... je sens que c'est pas normal xD

Default avatar.png thoip: 46ms juste tes bfs?

Mastard: ouais...

Falkor: Wouah Cool Silver enfin :p

Default avatar.png Paikan2068: Bien joué!

R4N4R4M4: gg Falkor

Default avatar.png thoip: tu ulises quoi comme identifiant?

Mastard: j'ai pris l'algo sur le net, donc ya surement moyen d'optimiser

Mastard: identifiant ? desolé je connaissais pas bfs avant, j'ai vu passer ca dans le chat du coup j'ai voulu le faire aussi haha

Falkor: Par contre en silver c'est plus trop la gagne :D

R4N4R4M4: Oui, ça fait ça :D

Falkor: faut que je commence a penser à fuir

Falkor: Courage fuyons

Alshock: @Paikan2068 je suis d'accord sur le concept mais pas sur l'application présente. en 50 ms la différence de langage finit par faire une véritable différence même avec des bons codes algorithmiquement parlant

Default avatar.png Paikan2068: @Alshock, j'avoue ne pas avoir la maitrise nécessaire pour juger, je te fais confiance là-dessus. Et d'ailleurs, les langages du top 50 montrent bien cette tendance

Alshock: me faire confiance, c'est sans doute la pire idée que t'aies pu avoir de tout le contest ça :D

Default avatar.png Paikan2068: Haha, faut qu'on se fasse confiance à nous-mêmes et entre nous voyons!

Default avatar.png Paikan2068: En fin d'après-midi là, j'étais prêt à abandonner le challenge, mais finalement, je me dis que c'est simplement continuer à apprendre

Alshock: et puis il reste encore plein de temps

Default avatar.png Paikan2068: Ouais, après je me dis que l'objectif raisonnable au point où j'en suis, c'est d'atteindre l'Argent

Alshock: presque un tiers du temps total, alors qui dit qu'on va pas finir premier ? :D

Default avatar.png Paikan2068: Pour un premier challenge, ce sera pas si malhonnête

Alshock: le temps que je trouve l'(algo pour faire crash les serveurs CG pendant le tour de mes adversaires...

Default avatar.png thoip: on a plus les morts en silver?

Default avatar.png GuillaumeSD: je suis 170 en bronze, dur d'atteindre le silver ^^

Default avatar.png Paikan2068: @GuillaumeSD, je compatis

S1L3nCe: @thoip j'ai perso

Default avatar.png Paikan2068: Surtout j'ai l'impression d'avoir déployé plein de trucs que je connaissais pas (et que je comprends un peu mieux maintenant, donc quand même positif) pour ne pas réussir à atteindre le silver

YannDev: bon il est temps de faire un dernier push

YannDev: si je passe pas gold ce soir je ragequit

Alshock: oh non YannDev pas toi

YannDev: ah mais là

Alshock: Regarde Bob, il est passé Gold avec son IA de trois lignes

YannDev: Le pire c'est que j'ai la même ia que bob

YannDev: :')

Alshock: et moi je suis silver avec mes 750 lignes

Alshock: le génie ça yann, le génie...

YannDev: non mais je vais tenter des choses

YannDev: et si ça marche pas

YannDev: je tenterai d'autres choses

YannDev: c'est beau ce que je dis

YannDev: c'est profond

Default avatar.png Paikan2068: L'expérience aussi, comme il le dit dans son post, il a 25 ans d'expérience

Kh4z: @Alshock 1200 lignes parce que je ny connais rien du tout en algo :no_mouth:

Alshock: mais comment je pourrai continuer à aller de l'avant moi si mon but ça n'est plus de finir devant toi ?

Default avatar.png Paikan2068: Et c'est pour ça, faut remettre l'ouvrage sur l'établi

Default avatar.png Paikan2068: et espérer progresser d'ici à la prochaine!

YannDev: Ah Alshock je suis sûr que tu es devant moi xD

YannDev: oui tu es devant moi

YannDev: à 60places près

Alshock: moi je vise pas si loin, j'epsère déjà progresser d'ici lundi matin, le reste on verra après

YannDev: le chal finit lundi -_-

YannDev: c'est pas dimanche minuit ?

Alshock: il reste xj12h

Alshock: pour finir à minuit c'est tendu

YannDev: ah nice

YannDev: bon bah road to gold déjà

Alshock: glod

YannDev: Oh non thoip est redescendu #600

YannDev: il hide son ia ou ça se passe comment

YannDev: il était 180 ce matin :')

Alshock: ça veut dire qu'il y a 600 gold ?

Kh4z: 354

Alshock: ah tu parles du classement silver ?

YannDev: non #600 en silver

YannDev: oui

YannDev: x)

Alshock: j'ai frôlé l'arrêt cardiaque avec tes conneries :P

YannDev: :')

YannDev: Bon étape 1: recoder ce que j'ai codé mardi

YannDev: étape 2: debuger les nouvelles features

YannDev: étape 3: découvrir des features innatendues

YannDev: étape 4: arriver gold

YannDev: étape 5: overflow et arriver platine

YannDev: légende*

Alshock: ça y est, Yann parle de platiner le legend

Default avatar.png Colios13: pourquoi pas diam ou master ?:joy:

Default avatar.png Nelimee: D'ailleurs question de noob: c'est combien le nombre de légendes d'habitude?

Alshock: entre 20 et 50 je dirais ? Je sais pas j'y ai jamais été pour voir

Alshock: je sous-estime sûrement là

Zorg1: tu devrais y a un bar à bière paraît il

dbdr: un excellent même

BlaiseEbuth: Farpaitement !

Default avatar.png Nelimee: dbdr pourquoi ton IA elle timeout systématiquement? :(

egaetan: Rust

dbdr: Nelimee: https://cg.spdns.eu/wiki/FAQ

Alshock: OOC 64 legendes UTG 95 légendes Code of ice & Fire (ouais j'aime pas son acronyme à lui) : 44 légendes

BlaiseEbuth: Pas àl'ouverture

Alshock: non mais il a demandé en tout

Default avatar.png Nelimee: Waow, mais quel est l'intérêt de compiler différemment?

dbdr: faut leur demander

Alshock: eh bien comme ça les rusters ont un hiding gratuit

Default avatar.png Nelimee: Ouais, c'est un peu pété

Snef: dbdr ça aide pas au debug ?

Alshock: faut bien que ce langage aie aussi quelques avantages

boumagik: le cut à l'ouverture

boumagik: pour ce contest

boumagik: des avis ?

dbdr: tu peux qd meme voir les matchs en arene, c'est pas le cas d'un hider...

boumagik: (cut gold)

Bob: pika

**BlaiseEbuth lance une pokéball sur Bob

Alshock: en fait je sais même pas ce que c'est qu'un hider, c'est juste mettre une ia nulle pour qu'on puisse pas étudier ton code ?

**Bob utilise esquive

Alshock: @BlaiseEbuth la pokéball rebondit, on ne vole pas les pokémon d'un autre dresseur voyons !

Bob: Alshock: c'est ça

BlaiseEbuth: #teamrocket

Alshock: les gens du top ont vraiment des stratégies ciblées contre leurs adversaires directs ?

Bob: Alshock: à vue de nez je dirais non

R4N4R4M4: Bon c'est un début, mais voilà comment gagner une partie au premier move :D https://www.codingame.com/share-replay/463856332

Alshock: genre, c'est rentable ? je pensais qu'il fallait plutôt pougner la masse informe en dessous

Bob: faire une stratégie ciblée contre une AI précise c'est souvent un bon moyen d'être inefficace contre les autres

Alshock: lire les réponse avant de poursuivre sur les questions : je note...

Alshock: faut avoir un move très caractéristique qui permet à ton IA de switch :D

Alshock: "Ah il a crash, je reconnais là le bot d'Alshock

Zorg1: tu pourras jamais faire architecte-qui-sait-tout si t'attends les réponses à tes questions

Bob: tu veux pas un product owner non plus tant que t'y es ?

Zorg1: ah le PO

BlaiseEbuth: tout le monde connait Winny the PO

Alshock: non PO c'est Pièce d'Or dans tous les sigles du monde

Alshock: ya brevetage

Bob: comme dans Z6PO

Bob: c'est pour ça qu'il est doré

Alshock: c'est pas C3PO lui ?

BlaiseEbuth: fix ton C

Bob: Alshock: pas dans les premières itérations de la VF

dbdr: faire MOVE avec Speed en MSG, joli R4N4R4M4 :D

Alshock: ah c'est donc une série itérative

Bob: dbdr: oui je me suis fait la réflexion, ça trolle sévère

Bob: Alshock: ah ben oui pour le coup

R4N4R4M4: dbdr, ah oui j'ai pas modifié mon message

R4N4R4M4: c'est pour tromper l'adversaire :D

Bob: les premiers films ont été remixés une paire de fois

Alshock: "it's definitely a feature"

Alshock: Bob ah mais moi j'étais persuadé que Star Wars c'était une récursive sans condition d'arrêt

BlaiseEbuth: Non. le main dev a quitté le projet et on a mis un stagiaire de merde dessus à sa place...

Zorg1: bah les trois derniers du main dev ...

BlaiseEbuth: Sont moins biens que les trois premiers. Mais c'est sans communes mesure avec la bouse du stagiaire

Alshock: putain j'avais lu "la bourse du sagitaire"

Alshock: de toute évidence ce contest me fatigue

Bob: la bouse du sagittaire, c'est un épisode secret des chevaliers du zodiaque ?

YannDev: oof

leojean890: R4N4R4M4 minimiser la somme des distances j'ai déjà utilisé cette approche aussi :P mais j'avais une méthode qui coutait cher en temps d'exécution ;P

leojean890: Nelimee bah franchement l'algo hongrois je le récupère du net en fait et je lui file juste ma matrice..

Default avatar.png Nelimee: Ouais ok tu triches quoi :p

leojean890: je le copy paste dans mon code..

leojean890: j'ai 500 lignes pour ça dans mon fichier :p

Default avatar.png Nelimee: Je pensais qu'on n'avait pas le droit

Default avatar.png Nelimee: Du coup j'ai fait mon propre algo

Default avatar.png Nelimee: Un petit bruteforce intelligent, ça marche plutôt bien

R4N4R4M4: on a pas le droit d'utiliser des algos déjà existants !!! :D

R4N4R4M4: faut inventer les siens :D

YannDev: Tortue à tous

Bob: Nelimee: y a assez peu de choses auxquelles t'as réellement "pas droit"

YannDev: j'aurai une petite question svp :')

YannDev: vous gérez comment le pac qui target une pellet à une case alors qu'il speed

leojean890: c'est quoi qu'on a le droit ou non de faire exactement ? :P:p

Default avatar.png Nelimee: Bob OK, la prochaine fois je serais un peu moins regardant alors :p

YannDev: vous prenez une direction random ?

leojean890: parce qu'en suivant ce principeje peux meme pas récupérer 10 liugnes sur stackoverflow..

leojean890: ;)

Snef: http://chat.codingame.com/pastebin/aa04b954-3cb7-41fe-bfa2-b2b6d3baa9ed

leojean890: (même principe poussé à l'extrème)

Kh4z: @YannDev et si la random case te fait revenir a ton pt de depart? :no_mouth:

R4N4R4M4: YannDev, je stocke les coordonnées et j'en cherche une autre

R4N4R4M4: en vérifiant que la deuxième est bien autorisée

YannDev: En gros tu privilégies les cases à une distance >= 2 ?

YannDev: ah non ok je vois

R4N4R4M4: plus quelques autres réglages

Snef: mon pastebin est une question c++ si quelqu'un peut m'aider

YannDev: tu regardes toutes les cases possibles

YannDev: et tu prends celle avec la plus grande valeur

YannDev: bon c'était à peu près mon idée

R4N4R4M4: Snef, ton 3ème paramètre c'est pas size plutôt ?

Bob: alors &a[0][0], à vue de nez c'est a

Bob: le 3e paramètre c'est sans doute faux ouais

leojean890: le truc vraiment interdit c'est de trop partager du code entre participants et utiliser le même ;P

YannDev: Bonjour dbdr

R4N4R4M4: sizeof(TYPE) * nombreElements

Bob: et + row * col, sauf à ce que ça soit des char, potentiellement il te manque un sizeof de quelquechose

Bob: leojean890: entre autres ouui

Zorg1: bon Automaton2000 me faut une idée géniale stp

Automaton2000: j'ai pas reussi a faire le contest

dbdr: hello YannT!

Bob: leojean890: essayer de choper le contenu des validateurs dans les puzzles d'opti

leojean890: Bob en plus ça ils le détectent j'imagine ;P

Snef: les args c'est (first,last,dest)

R4N4R4M4: tu peux aussi écrire &a[col][row] et à mon avis, le col * row est pas bon non plus

leojean890: bah ça ils sont sur github

Snef: j'ai essayé avec [col][row] => même erreur

leojean890: les valideurs

R4N4R4M4: enfin ça dépend de la permutation de ton tableau (je préfère col avant row)

Bob: leojean890: en cours de contest, j'entends

Bob: surtout le coup où ils avaient eu la grande idée de mettre du cash en prix...

R4N4R4M4: Snef, c'est ton 3ème paramètre qui n'est pas bon

R4N4R4M4: tu as la doc de "copy" ?

leojean890: Bob ah un contest d'opti ?

Bob: oui

leojean890: et récupérer pendant ce temps les valideurs ?

leojean890: ils te ban ?;P

R4N4R4M4: Ah non sorry, j'avais pas vu la doc : http://www.cplusplus.com/reference/algorithm/copy/

YannDev: Automaton2000 tu ferais quoi pour passer gold ?

Automaton2000: bonne nuit et à demain

YannDev: ...

leojean890: y'en a qui les récupèrent en spammant des tests apparemment Bob

Bob: :D

Bob: leojean890: oui en pratique y a toujours des moyens de trouver des choses si on y met assez de bonne volonté

leojean890: genre tu spam et tu vois en fct de ce qui marche ou pas si c'est ça le valideur ou pas

Bob: les protections contre les spam push viennent de là aussi

leojean890: et il parait que certains avaient été dispo puis retirés par CG

Bob: vrai aussi

Bob: sur CotR, au début on avait accès aux validateurs

leojean890: spam push en tt cas.. quand un submit est fini on peut repush direct sans pbm (pour les combats de bots)

Bob: pour du multi oui

R4N4R4M4: j'avais memcpy en tête, c'est pour ça... :(

leojean890: mais pour les optim non je sais

leojean890: j'ai spammé un algo génétique sur A*craft pour avoir le meilleur

Bob: pour spammer de l'opti afin de trouver les test cases, faut spammer carrément plus que ce qui est autorisé

Snef: R4N4R4M4 pas de soucis ^^ mais ducoup je vois vraiment pas le pb, dans tout les sites que j'ai regardé ou des gens demandent, la réponse est toujours la même et c'est ce que j'ai

leojean890: possible, is m'ont au bout de 3 demandé un captcha

leojean890: et si je force trop c'est bloqué 15 min environ

Bob: Snef, en pratique b c'est quoi ?

Snef: bool[][]

leojean890: mais comment tu fais pour spammer plus qu'autorisé ?;P

R4N4R4M4: on dirait une erreur à la déclaration du type bool

Bob: parce que si jamais c'est un const quelque chose...

Snef: par contre il est dans un objet si ça change quelque chose

Snef: Cell c c.visited // bool[][]

Bob: si l'objet est const, possible

Snef: non plus

Bob: après, la doc pointée par R4 parle d'itérateurs

Bob: je ne sais pas si c'est censé passer avec des tableaux

Snef: ouais mais pour des array faut juste l'adresse du premier et du dernier élément

Bob: bool pika[3][4];bool piku[3][4];void piko() { copy(&pika[0][0], &pika[2][3], piku);}


Bob: chez CG a priori ça compile

Bob: ah non

Bob: ça gueule pas dans l'IDE mais ça compile pas

Bob: ah ça passe avec un &piku[0][0]

LoganWlv: Est-ce que un PAC enemie c'est considéré comme un mur pour la ligne de vue :o ?

leojean890: Neumann vous les trouvez où les formules de ce genre ? :P sum(pellet_value * 0.9^d) j'avais vu le même genre dans un PM d'Agade :P en gros c'est pour gérer un amortissement au lieu d'un truc linéaire en la distance ?:P ça évolue pas avec la même allure de courbe quoi :P

leojean890: LoganWlv il me semble que non :P

S1L3nCe: Snef : https://coliru.stacked-crooked.com/a/56c1a750d461b2a7 Ça a l'air de bien fonctionner

Bob: leojean890: plus tu vas loin plus t'as de risques qu'un autre y arrive avant toi

Bob: donc c'est pas illogique ouais

R4N4R4M4: leojean890 si tu évalues tous les critères sous la forme F * C ^ P tu résouds pas mal de cas :D

Snef: S1L3nCe la meme ligne de code compile dans mon main mais pas dans mon bfs ..

leojean890: Bob, en gros ce genre d'évolution empêche + d'aller voir des pellets trop loin j'imagine que l'idée linéaire ?

Haashi: leojean, j'ai la meme heuristique et je suis tuck silver :(

Bob: leojean890: faut croire

Bob: enfin c'est ce que ça m'évoque

Bob: moi je fais tout linéaire, chuis bestial :D

leojean890: R4N4R4M4 ah ouais j'ai jamais essayé ça, je savais pas que ça avai + de potentiel que les formules linéaires

Alshock: moi qui tentait de pondérer le score d'une pellet par le ratio distance ennmi / distance moi

R4N4R4M4: C'est pour du multi agent

leojean890: Haashi ah ok, ptet avec moins de params ? genre le pellet_value en fct de l'age (idée de R4 :P)

gregballot: les timeout de l'IDE seront forcement timeout en submit ?

leojean890: Alshock c'est pas bête ratio distance ennmi / distance moi


Haashi: mais j'ai le meme chose

Haashi: :(

gregballot: Oui surement remarque, vu que la partie est jouée coté serveur

R4N4R4M4: soit tu privilégies l'élitisme et tu pousse un agent au max de ce qu'il peut faire, soit tu cherches à maximiser la perf globale

leojean890: R4N4R4M4 pour du multi agent t'utilises plus souvent ce genre de formules que pour du mono agent ?

Haashi: genre j'ai : sum des pellets*(0.97^age)*(0.9 ^distance)

Haashi: :( :(

R4N4R4M4: SI je veux rapprocher un bot de sa cible, je choisis une distance 2 plutôt que 4

leojean890: ouais la perf globale, j'ai ajouté un voronoi aussi mais sans énormément non plus le prendre ne compte

Bob: gregballot: si c'est systématique oui

R4N4R4M4: Si je veux rapprocher 2 bots de 2 cibles, et que j'ai le choix entre 2, 4 ou 4, 2 ou 3, 3 ?

gregballot: Moi je fais une exp a l'envers, genre un pellet proche vaut BEAUCOUP BEAUCOUP plus qu'un pellet plus loin

Bob: gregballot: en pratique, l'arène est même souvent moins permissive que l'IDE

gregballot: ok, merci Bob

gregballot: Pas trop jouer sur la limite alors

Bob: nope

R4N4R4M4: si tu fais somme(dist ^ P), avec P < 1 tu privilégies 3, 3, et avec P > 1, tu privilégies 4, 2

leojean890: Haashi ouais elle semble pas déconnante ton heuristique, c'est quoi qui te pourrit dans tes parties ? late game ou early ? ou te faire manger ?

leojean890: R4N4R4M4 ah uais 3,3 c'est mieux car t'arrive plus tôt

leojean890: enfin t'as fini globalement plus tot

leojean890: au lieu d'en finir 1 avant et 1 apres

leojean890: jpense que c'est mieux

R4N4R4M4: Ca dépend, sur WW y a des ranks qui passaient bien avec p < 1 et d'autres qui passaient bien avec p > 1

leojean890: ah ouais.. donc ça fait plusieurs trucs à tester en fonction de la situ quoi, c'est chaud de trouver ce qui est mieux

R4N4R4M4: des fois tu veux bloquer l'adversaire plus vite avec un pion par exemple, donc ton eval doit prendre en compte quelle situation tu traites

R4N4R4M4: Ici, j'ai 2 évals différentes en fonction de si je cherche les big pellet ou non

R4N4R4M4: mais faut que je le refasse, c'est pourri de toute façon

leojean890: ah ouais..

leojean890: moi un peu pareil, mais c'est la même eval qui les privilégie quand il y en a

leojean890: bah pareil c'est pas optimal

Haashi: leojean890 je sais pas

leojean890: genre uand tu regardes tes replays

leojean890: où tu perds

leojean890: est ce que tu as de l'avace au début ?

leojean890: avance

Haashi: enfaite un peu partout

Haashi: cette heuristique fais que des fois mes bots font du surplace

leojean890: moi en vri mon early est pas mal

leojean890: souvent j'ai 'avantage au bout de qq tours

leojean890: puis.. je me fais soit bouffer soit rattraper

leojean890: ah ouais le surplace ;o

leojean890: chaud ça

Default avatar.png thoip: ca va etre reglé le probleme des timeouts sur la reception?

Snef: J'en ai pas eu perso

Kh4z: jamais eue non plus

Bob: jamais eu

Bob: t'as pas plutôt un bug ?

Default avatar.png thoip: un un run de 40 batailles j'en ai presque la moitié en timeout a cause des données qui mettent trop de temps à arriver.

Default avatar.png thoip: non pas un bug.

Bob: dit comme ça c'est surprenant

YannDev: oh mon dieu

Alshock: la question est ptêtre stupide mais t'as bien flush stderr sur un print après les inputs ?

Alshock: @YannDev Oui ?

YannDev: mon code de mardi sans bug fait top100 à 30% de run

Bob: YannDev: oui ?

YannDev: poussez moi :')

Bob: Alshock: tu veux bien codéifier avec moi ?

leojean890: YannDev les nouveaux ont des bugs ?

Haashi: leojean890

YannDev: non

YannDev: c'est mon code de mardi fix

Haashi: enfaite dans un cas ou c'est symetrique

Alshock: @Bob ça me va, tu seras le dieu qui fait des trucs, et je serai celui qu'on implore

Haashi: la position de mon pac a le plus de point

Bob: Alshock: ça joue

Bob: je suis assez doué pour la boule de feu

Alshock: ah ouais comment il s'appelait ce jeu déjà ? small machin

Alshock: où tu jouais un dieu

Bob: Populous

Bob: #vieuxCon

Zorg1: oui

Bob: qu'est-ce que c'était bien ça

leojean890: Haashi ah ouais faut modif ca :p

Bob: la joie de faire des trous pour noyer les mecs d'en face

Alshock: Oui ! exactement

Zorg1: hé hé

Bob: encore une super brainwave de Peter Molyneux

Julius2k17: haaa populous sur sega master system la révélation

Julius2k17: :D

Bob: c'était quand même une grande époque

YannDev: #70

Julius2k17: oué Generation4, Joystick, Tilt

Bob: go YannDev go

Haashi: gg yanndev

YannDev: je me sens pousser des ailes

Bob: fais-nous une Bobette

Bob: sois une licorne

YannDev: braquage en cours

Bob: j'ai mis la télé pour faire un fond, je me souvenais pas que c'était aussi nul

leojean890: YannDev bientôt gold !

Bob: heureusement qu'il y a NHK World

YannDev: j'espère

YannDev: ah merde

YannDev: #90

YannDev: j'ai pris des défaites contre greg

YannDev: pff

leojean890: bon moi jsuis entrain de chuter, jsuis 252

leojean890: ..

YannDev: t'es gold ça va

leojean890: 22h après mon dernier submit

leojean890: ouais mais faut que j'improve

YannDev: ouais

Julius2k17: chaud le passage en gold je trouve

leojean890: jpense que ça va être mort legend à moins d'un truc de ouf en +

Bob: leojean890: si tu veux legend faut viser top 20

leojean890: Bob je sais, c'est quasi mort mdr

leojean890: OOC j'y croyais +

Alshock: putain ce rank porte bien son nom quand même

leojean890: mon code avait dépssé le LO min du boss:p

leojean890: dépassé

leojean890: maislà je suis trop loin

Alshock: élo c'est pas un acronyme

leojean890: il me faut un changement radical

Julius2k17: les pacs bloqueurs

Bob: -3v

Alshock: @Julius2k17 encore un coup des pacs universitaires anarchistes ç

Bob: switch hulk

Alshock: ça veut dire quoi -3v en fait ?

Bob: c'est l'heuristique magique de CSB

Alshock: ? C'pour prendre les virages ?

Bob: oui

Bob: oui

Julius2k17: faut drifter dans CSB

YannDev: bon bah #93

Zorg1: qqn pleure qu'il progresse pas dans CSB ?

Zorg1: hop "Fix ton bot, -3vel" et zou

Bob: tu vises le checkpoint moins 3 fois ta vitesse du moment

Alshock: mon code faisait qu'aller vers le prochain cp, son seul haut fait c'était d'enregistrer les checkponits et il est monté glod

Alshock: j'y ai jamais retouché

Bob: eh ben ajoute -3v

Bob: juste pour voir

Alshock: ouais ça a l'air incroyable, mais vous l'avez sorti d'où ce -3v

Julius2k17: apres des que tu as un bon bloqueur enf ace c cuit

Alshock: vous avez fait des vrais calculs ou quelqu'un a tenté des trucs au pif et ça ça marchait pas mal ?

Bob: c'est une heuristique

Alshock: les bloqueurs en gold on sait pas encore ce que c'est

BlaiseEbuth: Tu veux pas savoir

Alshock: enfin à l'époque où j'y suis monté en tout cas

Zorg1: -3v je ne sais pas d'où ça vient

YannDev: bon je tente de submit une heuristique douteuse

Julius2k17: moi c un bon blocker qui m'a bien fait up

Bob: je me souviens d'un coup où on a essayé de faire gober à quelqu'un que ça marchait encore mieux avec pi

Julius2k17: et le drift quand t'arrrives sur un cp

Bob: bon je pense qu'à cette heure on a bien mérité une mousee

Julius2k17: si ton vecteur vitesse * friction t'envoie toucher le cp, tu vises le suivant

YannDev: #715 avec une heuristique douteuse en plus

YannDev: :')

Bob: nice

Bob: gg

YannDev: c'était une idée de thoip

YannDev: mais du coup ça marche pas trop bien

YannDev: ah #580

Bob: tu prends des idées d'un gars qui n'arrive même pas à recevoir tous les inputs

Bob: #trustLaLife

YannDev: bah on sait jamais

YannDev: l'idée pouvait mazrcher

YannDev: il a fait un push #150 silver comme ça :')

Zorg1: je prends une random idée d'un random gars ça peut marcher on sait jamais ^^

leojean890: et ton code 90 tu avais pas foi pour te faire pousser ?!:P

Bob: bon note moi j'ai bien fait un holdup

YannDev: bah faut que 90 personnes se fassent pousser

Bob: sur un malentendu

leojean890: 90eme c un peu chaud

leojean890: :p

YannDev: ouais

leojean890: sauf si tu les doubles :p

Alshock: Ah mais tous les inputs ont changé

leojean890: avec un winrate de ouf

Bob: on a déjà bien vu toute une ligue passer au-dessus :rofl:

YannDev: t'es passé gold ?

Alshock: c'est de la triche maintenant on sait où sont les cp

Alshock: non je suis allé voir csb

leojean890: genre jme suis bien fait pousser de 10eme ici

leojean890: enfin 2eme puis 10 puis 1

leojean890: silver 2 gold

Bob: ouais mais top 10 vers 1 ça va

Bob: 90 vers 1 tu rêves en couleurs

leojean890: ouais 90 je concois c chaud xd

leojean890: :P:p

YannDev: je suis sur que je peux améliorer des trucs

YannDev: mais je sais pas quoi

leojean890: mais en même temps j'étais 2eme juste avant

leojean890: ..

Bob: après des fois t'es 2e à 3 points du boss

Bob: là tu t'assieds et tu pleures

leojean890: utilise les formules magiques de Neumann et R4N4R4M4 avec des 0.9^d*pellet_value:P

YannDev: c'est quoi d :')

Bob: la distance ?

leojean890: distance au pellet

Bob: (au hasard ou presque)

YannDev: ça fonctionne vraiment ?

leojean890: ouais 3 points du boss c dur

Default avatar.png Nelimee: Bof bof

leojean890: :p

YannDev: https://www.codingame.com/share-replay/463918652 genre là je voispas pk je perds

leojean890: ça fonctionne pour eux ils sont dans le top 70:P

leojean890: après faut le faire bien quoi:P

Default avatar.png Nelimee: YannDev j'ai essayé toute la soirée différentes formules et le 0.9**d n'est pas miraculeux

YannDev: ah x)

leojean890: bah faut le faire bien

leojean890: ça suffit pas de balancer ça:p

YannDev: mon bot a une bonne structure en vrai

Alshock: -x+2*y +z**k//2

Bob: YannDev : frame 15

Alshock: sui vous faites ça c'est top 1 direct :P

Bob: t'as deux pacs qui bouffent du vide pendant que ton adversaire se gorette

YannDev: ah

leojean890: Alshock ??-x+2*y +z**k//2

leojean890: :p

Alshock: la goretisation des adversaire est un phénomène généralement observé à l'approche d'une rediffusion du voyage de chihiro à la télévision

YannDev: bizarre ça

YannDev: je dois avoir des bugs...

Bob: YannDev : d'une manière générale tu passes pas mal de temps dans des couloirs vides

Bob: mais j'ai le même genre de souci

Alshock: @leojean890 c'est un - unaire

YannDev: normalement ça doit target le pellet

Mazelcop: YannDev, le mieux c'est de pas target un seul pellet mais plusieurs

Alshock: Ah ? Perso je target un path

YannDev: c'est à dire Mazel?

Alshock: toi tu target plutôt un groupe ?

Julius2k17: je bosse la dessus aussi

Mazelcop: une bonne position, c'est un position où t'as plein de pellet autour de toi

YannDev: oui c'était l'idée de thoip

leojean890: Alshock - unaire pour en faire quoi ?:P

YannDev: mais ça c'est montré foireux...

Julius2k17: éviter que plusieurs pacs tapent les mm path

leojean890: Mazelcop en effet :P

leojean890: je calcule le nb de pellets mangeables d'un coup

Alshock: @leojean890 pour faire un calcul débile avec des apramètres inexistants et décréter que c'est du génie

Bob: YannDev: ça dépend sans doute aussi de la manière dont tu le codes

leojean890: Alshock ah ok xD:p

YannDev: moi j'ai check le nombre de voisins d'une case

Alshock: YannDev le problème est sûrement entre la chaise et le clavier :P

YannDev: sinon je regarde la composante connexe de pellets

leojean890: Bob ça dépend tjr de ça

leojean890: Mazelcop gg d'ailleurs

Mazelcop: thx :)

YannDev: Mazelcop c'est de ça dont tu parlais?

Bob: tu peux avoir une idée bonne dans l'absolu et ne pas du tout réussir à la coder comme il faut

YannDev: aller sur la plus grande composante connexe de pellets

Alshock: @YannDev le nombre autour c'est un peu compliqué à gérer, moi je te conseille plutôt de check à quel point ton trajet est bien garni

Mazelcop: composante connexe ça a l'air un peu trop compliqué, faut viser simple

Zorg1: bon ben moi j'y comprends rien à ce contest :(

YannDev: donc tu fais quoi mazel?

leojean890: des idées sont bonnes theoriquement mais dures à mettre en pratique

Bob: Zorg1 t'es pas trop mal classé pour quelqu'un qui capte rien

Haashi: Zorg1 on est deux :(

Mazelcop: ah, ça je peux pas trop dire quand même :p

Alshock: aaaaaah putain ! mais le but en fait c'est de manger des pellets !

YannDev: bah une composante connexe c'est facile à coder

Zorg1: bob : bah parfois c'est 160, une autre fois c'est 300+

Mazelcop: oui mais ça a pas forcément de sens dans ce contexte

Zorg1: c'est bizarre

Bob: ah oui

Bob: c'est comme ça que j'ai fait mon hold up

leojean890: les submits sont random un peu pour les non-top

YannDev: bon je go dormir

Alshock: pour les tops aussi, mais à leur échelle

YannDev: j'aurai pê des idées

leojean890: bn

YannDev: ++

Alshock: gn

Zorg1: bn

YannDev: merde j'aurai pas du resubmit

Zorg1: famous last words

Bob: :D

Haashi: moi pour essayer de justifier le "une pos ou y a plein de pellet c'est bien"

Haashi: je pars de chaque pos, et je diffuse sa valeur progressivement

Haashi: mais ca favorise beaucoup trop les cases a 4 et 3 voisins

Mazelcop: ouep, faut compenser ça

Haashi: ce qui fait que mon bot souvent il reste dedans en mode "mais elle est bien cette pos, j'ai 3 pellets a coté, pourquoi je bougerai"

Julius2k17: :)

leojean890: une simu DFS

Haashi: Mazelcop, une idée pour compenser justement ?

leojean890: quand le pellet est mangé tu le retires

Haashi: genre une valeur négative pour les cases qui ont rien ?

leojean890: et tu vois où aller :P

Mazelcop: ben si t'as 4 voisins, tu divise par 4

Haashi: alors j'ai essayé aussi ca

Default avatar.png bouajajais: pourquoi un MOVE 0 7 7|MOVE 1 3 13 a comme résultat Pac 0 moved to (7, 8) et Pac 1 moved to (3, 12)?

leojean890: 1 DFS par pac

Bob: bouajajais: parce que le move fait bouger ton pac vers la cible voulue

Alshock: @bouajajais 3 13 doit être une case invalide

Alshock: un mur quoi

Bob: il le téléporte pas dessus

Zorg1: 1 BFS par pac chez moi

Julius2k17: moi g fait un bfs pour maitriser les déplacements en mode speed ou pas

leojean890: Zorg1 pareil

leojean890: mais jdevrais le faire en mode simu

Alshock: ah oui c'est to pas toward mb

Default avatar.png bouajajais: il n'y a pas de mur. je lui dis d'avancer vers la case d'en haut il part vers celle du dessous

leojean890: cad enlever les pastilles et voir sur N tours où ils vont :P

leojean890: la récolte totale

Zorg1: bof pas super motivé pour faire une simu

leojean890: chaud

leojean890: j'ai commencé moi

Bob: bouajajais: ça dépend d'où tu es par rapport à ta destination aussi

Bob: montre voir un replay, ça sera plus simple

leojean890: mais bon jvais surement favoriser d'autres pistes

Julius2k17: moi j'essaye la piste de plusieurs path par pac et virer les path trop similaires

Default avatar.png GuillaumeSD: vous etes en quelle div ?

Julius2k17: je cherche juste comment m'y prendre

Julius2k17: Silver

Bob: gold

leojean890: 262/368 gold

leojean890: la chute

Default avatar.png bouajajais: https://www.codingame.com/replay/463930565

Default avatar.png bouajajais: il suffit de mettre de pause de voir la commande et le déplacement suivant qui ne correspond pas

Default avatar.png bouajajais: mettre en pause*

Razielwar: leojean890 le tout c de prendre un bon rebond en bas pour mieux remonter :p

leojean890: Razielwar j'ai pas ce qui faut pour remonter là :s

Razielwar: il est galère ce jeu ^^

Zorg1: pas faux

Default avatar.png bouajajais: en sortie d'erreur j'ai mis les voisins de chaque pac

leojean890: todo : "elaguer les potentiels pellets en fonction des posituions supposées des ennemis"

leojean890: Razielwar compliqué à faire bien mon todo

Razielwar: moi aussi je l'ai en todo celui là...

leojean890: en gros deviner où il va

leojean890: déjà ça je le fais pour l'esquiver

leojean890: mais comme c'est de l'incertain..

leojean890: Mazelcop disait qu'ils s'en sortent bien pour localiser au top ;P

leojean890: mais toi t'es au top aussi;p

Razielwar: plus maintenant

leojean890: comme c'est de l'incertain je peux esquiver rapidement

Razielwar: faut justement que je bosse ça pour revenir

Razielwar: là je suis 77

leojean890: sur 2 3 tours

leojean890: ah ok mais comment ça se fait que t'as autant baissé

leojean890: comme c'est de l'incertain je peux esquiver rapidement MAIS pas élaguer les pellets

788361: bouajajais: ben t'es en 7 9 tu veux aller en 7 7 il passe par 7 8

Razielwar: bah les autres ce sont améliorés ^^ et pas moi on dirait

Bob: de même l'autre en 3 11 pour aller en 3 13 il passe par 3 12

Razielwar: mais je vais pas me laisser faire

leojean890: Razielwar arf pareil que moi mais je suis loin derrière ;)

leojean890: j'étais dans le top 80 il y a pas si lgtps xD

Razielwar: allez j'y retourne j'ai gavé de taf là :)

leojean890: et now ......

Bob: mais c'est mignon ce petit pas de deux

Razielwar: courage leojean

leojean890: thanks :P

leojean890: mais bon c'est limité là:p

Default avatar.png bouajajais: je suis en 7 8 et je veux aller en 7 7 il passe en 7 9

Default avatar.png bouajajais: lorsque je suis en 7 9 je veux aller en 7 10 mais il passe en 7 8

Bob: non

Default avatar.png OverFocus: (╯°□°)╯︵ ┻━┻

Bob: premier tour tu pars de 7 7, tu demandes 7 9 il va en 7 8

Bob: deuxième tour tu es en 7 8 et tu demandes 7 10 donc il retourne en 7 9

Bob: après tu alternes 7 7 et 7 10

Default avatar.png bouajajais: aaaah super merci

Bob: l'autre c'est pareil il alterne entre 4 11 et 3 13

Default avatar.png thoip: Bob effectivement j'avais un probleme. mais il y a une heure c'était des timeout dut au serveur.

Bob: stoi le timeout

Vry: :upside_down:

Bob: bon j'ai pas de vraie bonne idée et je suis arrivé en gold alors je vais sans doute faire autre chose de mon week-end

Bob: na

YannT: je pense que je vais quand même essayer de taper légende pour la forme

YannT: mais sinon pareil :p

Bob: je sais que je suis pas très bon sur les parcours de ce genre

Bob: hypersonic c'était la même galère

Vry: Moi je vais enfin pouvoir commencer à "bosser" sur le contest ce week-end ... je peux prendre le relais ! :D

YannT: bah, je suis pas mal avec un DFS bateau

Sissiimperatice: si vous avez des idées pour passer en gold je suis preneur ^^ bloqué dans le top 30 et la moindre tentative d'amélioration me fait baisser vers les 200 ...

YannT: quelques fioritures et ça fera légende

YannT: (en tout cas c'est le projet)

Default avatar.png Dadouche: tu arrives a faire un DFS à combien de profondeur ?

YannT: Sissiimperatice: fait pas de switch et chasse pas les ennemis

YannT: => gold

Vry: Au début j'avais tenté de reprendre mon DFS de OoC mais j'ai dû rater un truc ...

YannT: (par contre, full speed)

Julius2k17: pac tire pas de torpille

Bob: ça ou du cul au push

Sissiimperatice: YannT c'est si facile ?

YannT: en gros oui

Vry: ... mais marchait pas donc je suis avec un FF mais il dot manquer les bonnes fioritures ! :p

YannT: DFS + speed + te collisionne pas toi même = gold

Sissiimperatice: bon je suis pas loin

YannT: (et chope les super pelets aussi)

Vry: Je vais repartir comme ça moi aussi parce que de toute façon je ne vais pas avoir le temps de faire la simu. + algo de recherche ...

Bob: mais quand tu dis DFS, c'est pour déterminer quoi ?

YannT: le chemin pour ramasser le max pellets

Julius2k17: le chemin le plus long que tu puisses recolter normalement

Haashi: YannT, avec ou sans demi tour ?

Bob: hmm ok

Vry: Un peu comme sur OoC où on voulait le plus long chemin sans surface

Julius2k17: yep

YannT: moi j'ai avec demi tour,mais j'ai un todo pour intégrer un malus de demi tour

YannT: cela dit clairement c'es pas critique

YannT: DFS pour chemin max scoring selon ta connaissance des pellets, c'est gold

Haashi: et tu enleves les pellets au fur et a mesure ?

YannT: ben oui?

Haashi: ou tu tries par pac ID et tu esperes que ca fasse une bonne solution ?

YannT: pas compris la question

Haashi: Tu fais une DFS sur chacun de tes pacs ?

YannT: yep

YannT: mais avec des micmacs pour éviter les collisions

Haashi: Donc ma question est : Est ce que tu trouves un chemin optimal pour un pac, t'enleves ses pellets, puis tu calcules un chemin pour le suivant etc etc

WhatTrickeryIsThis: c'est ce que je fais

Haashi: ou alors si tu cherches un chemin pour chaque tu regardes celui qui rapporte le plus

YannT: (c'est ma solution service minimum là hein, ça challengera pas le top, ça fera p'tet cul de légende)

WhatTrickeryIsThis: j'implémente les swaps par contre là

Haashi: si ca peut me permettre de passer gold ca me suffira amplement

YannT: Haashi: même pas

YannT: mais j'ai un malus de rapprochement entre pacs

Haashi: d'acc tu vas vraiment au plus simple

Haashi: merci

YannT: ça les encourage à prendre des chemins différents

Haashi: bah deja le fait d'enlever les pellets du chemin pris par un autre

Haashi: ca les incite un peu

YannT: self-collision = gros malus, du coup il va sur un autre chemin avec plein de pellets

Alshock: yes du timeout tour 2 comme on adore

Alshock: plus qu'à trouver où je boucle infinie

WhatTrickeryIsThis: v=1 tout le temps pour simplifier

YannT: -3v plutôt non?

Alshock: d'ailleurs j'ai mis -3v mon IA a pris 2000 places

Alshock: maintenant après ce contest je lui apprendrai à ne pas se tamponner elle-même, ça pourrait l'aider

Zorg1: c'est du détail ça

Alshock: Ah j'ai rien dit, c'est 3000 places gagnées en fait ^^

Alshock: je soupçonne le gold d'être hautement constitué d'IA qui n'ont pas les bons inputs comme la mienne

Zorg1: oui le cimetière gold

Zorg1: ceux qui ont eu la flemme de refaire leur bot

Alshock: j'miagine le cimetière brillant de mille feux sur une falaise au bord de la mer

Vry: Mon bot est dans le cimetière gold depuis deux ans avec -3v

Magus: https://www.codingame.com/share-replay/463959132

Magus: ah ouai génial

Magus: visiblement avec Mazelcop on a tous les 2 codés un truc pour pas aller dans les culs de sac

Magus: résultat nos 2 IA sont afk

Alshock: xD magnifique

Spifflejedi: ahha j'alalis poser la question

Alshock: mais genre afk afk quoi

Spifflejedi: évite rles culs de sac en debut de partie c'est plutot payant ou pas?

Magus: par contre je comprend pas ... comment ça se fait que son pac se laisse juste buter ?

Magus: il bouge pas, je lui fonce dessus :/

WhatTrickeryIsThis: une belle victoire en tout cas

YannT: submit Magus au lieu de faire le pleutre là

Alshock: à mon avis il tente de trouver une route de sortie sans entrer dans un cul de sac

Alshock: et comme il est déjà dans un cul de sac yen a pas du coup il reste sur place

Magus: YannT: le code que j'ai dans l'IDE est pas mieux que celui dans l'arèn

YannT: le process c'est que tu submit une IA pourrie, et puis après tu améliores

Magus: je cherche d'ailleurs pourquoi il se débrouille relativement bien contre Mazelcop, mais qu'il est aussi pourri contre le reste du monde

YannT: tu testes contre le #1 et ton IA est pourrie? :p

YannT: lets go

YannT: bouton jaune

Alshock: j'azime pas le ricard

Alshock: -z

Bob: moi j'ai plus simple

Bob: t'as une IA ? bouton jaune

YannT: personne n'est parfait

YannT: fait pas ton ThomasNicoullaud Magus

YannT: (on notera que son highlight autocomplete, ce qui veut dire qu'il est présent)

YannT: (avec son smurf là)

Magus: bah j'aimerais quand même régler cette histoire d'afk en fin de partie avant de submit

YannT: (hoooonte)

Mazelcop: moi aussi Magus, moi aussi...

Magus: mais je suis surpris que Mazelcop est exactement le même souci que moi :D

Magus: *ait

YannT: bah il bouton jaune lui

YannT: ce qui est bien

YannT: parce que quand plein de gens bouton jaune, ça fait un contest

YannT: sinon ça fait rien et c'est chiant

nmahoude: :)

Alshock: @Magus tu peux pas faire un fallback si t'as pas de chemin ?

gregballot: le mode "drift away"

Alshock: @YannT promis dès que je timeout plus je bouton jaune jusqu'au gold

YannT: that's the spirit!

Magus: Alshock: en fait je sais pas trop ce qui fait cet afk. parce que j'ai bien un malus sur les culs de sac. Mais logiquement quand y'a plus que ça bah ... mon IA est censé aller chercher les culs de sacs :/

YannT: fix a bug, bouton jaune

YannT: intégration continue les gars

YannT: on est agile ou on l'est pas hein

gregballot: Continuous delivery, bouton jaune a chaque \n

Alshock: et un commit par submit, pas plus j'imagine ?

Alshock: Magus: ton malus est absolu ou proprtionnel ?

YannT: oui sinon le PO il râle que t'as tout cassé le staging après

Alshock: J'essaye de vori si ça peut partir en scoring négatif

gregballot: C'est pour ca qu'on apprécie les canary-release

Magus: Alshock: mon malus est absolue, mais mon score aussi :D

Alshock: canaryt-release? C'est des releases au bouton jaune ?

gregballot: haha non mais bien tenté

Alshock: Magus: Bah du coup tu peux pas te retrouver avec un score négatif ?

Magus: non

YannT: c'est release pour un nombre réduit de cobayes ;)

Magus: une pastille c'est 1, une pastille dans un cul de sac c'est 0.5

Alshock: étonnant, on dirait qu'un silver ne peut pas débugger ton code à l'instinct

Magus: donc que ça préfère prendre les pastilles à 1 c'est normal

Alshock: ah oui donc c'est ce que j'appelle "proportionnel"

Magus: mais quand y'a que ça à prendre, bah c'est censer les prendre

gregballot: Une Beta privée ephemere, pour mettre des mots swag dessus

YannT: ouais, ou sinon release pour cobayes sans les mots swagv

YannT: -v

Alshock: c'est swag un cobbaye

gregballot: t'as activé l'option verbose, il faut parler maintenant

YannT: j'ai déjà donné les secrets de mon algo

Magus: Mazelcop: mais tu simules pas l'adversaire non plus ? oO

Alshock: c'est pas nous qui sommes censés devenir insupportables et déclarer tous nos warnings en 300 lignes ?

Magus: https://www.codingame.com/share-replay/463967633

YannT: c'est que j'ai rien codé de fashion :p

Magus: tu te suicides carrément dans un cul de sac devant moi oO

gregballot: bah moi, toujours entêté avec mon knapsack qui timeout

YannT: Magus:; bouton jauuuune

Mazelcop: je simule l'adversaire mais j'ai changé pas mal de trucs ajd

gregballot: jvai tellement le virer et faire autre chose

Alshock: le pellet ciseau qui vit sa MEILLEURE VIE

Alshock: ça se voit sur son visage

Mazelcop: donc il mon IA fait un peu n'importe quoi des fois

Magus: par contre on notera les 2 pacs rock qui sont motivés

Mazelcop: ah ben oui, faut rien lacher

gregballot: oh putain l'opti fonctionne jcrois bien

Magus: wow j'ai trouvé pourquoi j'afk à la fin, lol

Bob: j'adore ces débuts de push où j'ai deux victoires contre des IA du top 50 et la lose contre tout le reste du board

egaetan: ia random

egaetan: random win/loose

Bob: clair

egaetan: spam submit Bob

Bob: arrête c'est comme ça que je suis passé gold

WhatTrickeryIsThis: mon dernier push je suis monté top 20 jusqu'à 10% et à 11% j'étais 200em

egaetan: avec beaucoup de chance, ç apeut faire top10

Bob: #surUnMalentendu

YannT: #goboutonjaunemagus

WhatTrickeryIsThis: on verra demain soir à 18h la chance

Magus: YannT: j'ai déjà submit y'a un petit moment

Zorg1: YannT mais laisse donc Magus hidder en paix !

Magus: mais elle va pas aller loin cet IA

Magus: je serais étonné qu'elle fasse top 100

YannT: j'aime pas les hiders

Zorg1: (il a pê besoin d'un écran incurvé, va savoir)

YannT: ça tue le côté festif du contest

Zorg1: je me demande si dapo va débarquer Dimanche

YannT: et en plus c'est mégalo

Zorg1: le prix en vaut il la chandelle ?

YannT: 'gnagna je dois utiliser un smurf parceque je suis trop une célébrité on va se demander pourquoi je suis que silver"

WhatTrickeryIsThis: vous allez bientôt faire la fête avec ma nouvel IA toute refaite et pas encore testée ni debuggée

YannT: gros ego quand même

WhatTrickeryIsThis: je push dans 10 min et je vais dodo

YannT: #goboutonjaune

WhatTrickeryIsThis: je paries que y à pas de bugs

Zorg1: vu qu'on parle de célébrité, mais où est donc Beber ?

Zorg1: pas trop son genre de hider

WhatTrickeryIsThis: il a vu le nombre de lignes dans le code par défaut et il a fuit

YannT: #61ème avec ~250 lignes à battre :p

Razielwar: tu le fais en codeGolf yannt? :p

YannT: service minimum

YannT: je suis cramé des 4 semaines de OOC :p

Razielwar: lol

Razielwar: moi j'avais fait que 2 semaines ooc

YannT: je joue à voir ou je peux aller sans forcer :D

WhatTrickeryIsThis: comment ça s'appele quand une fonction a une variable qui n'est jamais utilisée ?

Razielwar: dead code

YannT: WhatTrickeryIsThis: enterprise code

WhatTrickeryIsThis: dead code c'est ce qui traine après return

Zorg1: c'est vrai que les classes Java du boulot c'est 3000 lignes, 60 fonctions, et 20 réellement utilisées :D

YannT: et un commentaire "// TODO: Remove" sur une des rares méthodes utilisée aussi

Gh0stm4chine: ça va je suis pas le seul, ça me rassure

Zorg1: et une ou deux fonctions totalement mis en commentaire car le gars ne sait pas utiliser une gestion de version

Bob: WhatTrickeryIsThis: dead code c'est tout ce qui n'est jamais utilisé

gregballot: un code apres un return c'est du code mort, mais du code mort c'est pas toujours que ca, c'est aussi des fonctions jamais appelées, des classes jamais utilisées etc..

WhatTrickeryIsThis: une variable c'est pas du code . Si?

Bob: j'ai un mal de chien à faire comprendre à mon chef que virer le code mort au moment où il meurt c'est pas du nettoyage prématuré

Bob: si

gregballot: mdr debat tres interessant, je pencherais pour dire que sur le principe oui, mais bon faut pas deconner

Zorg1: en plus c'est marrant en Java avec l'introspection tu sais jamais si une fonction public jamais appelé n'est vraiment jamais appelée :D

Magus: bon alors j'ai 2 raisons qui me font faire des afks ... une feature et un gros bug :(

Magus: va savoir lequel est le pire

Bob: gregballot: tout ce qui n'est pas supprimé au moment où ça meurt reste

Razielwar: ah moi je dégage j'en ai trop marre du code mort c horrible le temps que ça a pu me faire perdre!

Razielwar: ya une gconf pour ça si jamais faut récupérer

Zorg1: transforme le bug en feature #astuce

Bob: tu peux être certain que deux semaines plus tard plus personne ne sait pourquoi c'est là

leojean890: sympa les petits tests qui déclassent vers 360/371 mdr

Default avatar.png JBM: vous etes payes a la ligne, sans doute

Bob: et comme ce n'est plus utilisé plus personne n'a à aller à y mettre les mains

Magus: nan le bug c'est que je crois que je prends une action de trop pour mes simus. Je sais pas trop ce que ça fait, mais à la fin de ma simu à la dernière profondeur je fais une action de trop

Magus: pour l'éval ça doit faire des choses bizarres

Zorg1: et que tu vas passer une journée à corriger du bug mort avant de t'en rendre compte :p

Bob: sauf le jour où il faut porter le code parce que upgrade de framework ou autre

YannT: "je le supprime pas ça pourra resservir"

WhatTrickeryIsThis: xD

Bob: et là tu passes une heure à ramer pour porter du code mort

gregballot: bon j'ai submit avec mon opti de la mort

Bob: et si t'es motivé t'en passes une de plus à constater qu'il est mort

gregballot: Je suis sur je vais perdre des places lol

WhatTrickeryIsThis: putin ça y est je crois je vais pouvoir pusher

YannT: #goboutonjaune!

Bob: et une de rab à virer tout ce qu'il entraîne dans son sillage et qui est mort aussi

YannT: (trending)

Default avatar.png JBM: a mort le code mort, donc?

Bob: et comme dit YannT, pour "ça pourrait servir un jour", on a (en général) la bonne idée d'avoir du version control

Bob: donc on peut toujours aller le repiocher

Bob: je préfère garder dans un coin de ma tête "ah ouais on a fait ça à une époque" que "ah ouais, on a cessé d'appeler ce code à une époque"

Bob: donc JBM ouais à mort le code mort

Bob: le code mort-né ("j'en ai pas besoin là mais c'est pour plus tard") est, intrinsèquement, du code mort aussi

YannT: http://chat.codingame.com/pastebin/b70f94e2-813e-476d-ab8a-c17bbb869702

Default avatar.png JBM: t'as pas besoin de le garder dans un coin de ta tete

Default avatar.png JBM: c'est greppable dans le commit

gregballot: haha la fameuse mauvaise scalabilité

Magus: de toutes façons on connait tous ce fameux commentaire

Default avatar.png JBM: du YAGNI

Magus: // temporary code

Magus: git blame => commit de 2005

gregballot: Bon bah -200 places avec ma SUPER Opti loooool

Valkilaen: Pour le Spring Challenge 2020 Un pac mort reste à son emplacement ? Et continue de bloquer le passage ?

J'viens de passer Silver, j'ai debloqué c'te feature, et indeed tout mon code bug (déplacer les morts c'est pas ouf)

Bob: j'ai un copain il fait ça avec sa vie ("j'achète ça pour plus tard")

WhatTrickeryIsThis: du code mort en java ça tourne pas

WhatTrickeryIsThis: sauf les truc unused

Bob: Valkilaen: non un pac mort est mort

Default avatar.png JBM: j'en avais laisse un, avec date dans le code

Bob: tu le vois encore dans les input mais il n'est plus en jeu

WhatTrickeryIsThis: AU PUTIN JE PUSH

Valkilaen: OK ça marche

YannT: WhatTrickeryIsThis: @Deprecated

WhatTrickeryIsThis: vas y je perd en masse

WhatTrickeryIsThis: :D

YannT: (500 uses dans la codebase)

Bob: du coup le copain ben il vit au milieu des boîtes des trucs qu'il achète compulsivement et qu'il n'a jamais le temps d'utiliser

Default avatar.png JBM: "ceci est crade, mais les responsables de ca ont rien fait--j'ecris ceci le x/y/2006 et c'est prevu pour etre temporaire --- JBM"

Default avatar.png JBM: il y a etait toujours l'annee derniere

Default avatar.png JBM: quel malheur, ce code crade qui a le mauvais gout de marcher

Bob: on a du code dégueu dans notre base qui doit avoir pas loin de 30 ans

Default avatar.png JBM: vite, un rewrite

gregballot: ca c'est du vrai legacy

Bob: et pour le coup, des trucs pas morts

Zorg1: c'est le principe du code "historique" ça, crade mais ça marche

Bob: le genre que si tu le touches, le soft pète de partout

gregballot: Surtout t'as peur de toucher haha

Zorg1: avec "// temporaire, a proprifier"

Bob: fear driven development

gregballot: C'est un peu le covid19 des projets tech le legacy qui a 30 ans

leojean890: ça fait penser à mon code de spring challenge ou OOC ça;)

leojean890: tout sale

gregballot: distanciation

Bob: on a une paire de zones vraiment basses dans les utils, on sait d'expérience que chaque fois qu'on a essayé d'y toucher en se croyant plus malins que les précédents qui avaient essayé, on a dû reverter le commit

Zorg1: oui mais on te donne pas de masque quand tu dois bosser dessus ....

BlaiseEbuth: C'est une forme de gamification: Le projet jenga. Le premier qui casse tout a perdu... :grin:

Zorg1: "tu as gagné le droit de te faire crucifier par les clients méchants"

Bob: bref le code mort c'est un peu le white walker du code

Bob: c'est dangereux et faut le détruire par le feu

Magus: putain j'ai compris pourquoi mon IA a la phobie des culs de sacs ><

Zorg1: un problème lors de sa petite enfance ?

Magus: bordel Alshock a raison

Alshock: xD alors ça c'est incongru

Magus: je met un score de -0.5 aux cases de cul de sac. Donc une case cul de sac avec une pastille vaut 0.5, mais une case cul de sac sans pastille vaut -0.5. Mon IA veut bien rentrer dans un cul de sac mais veut pas ressortir

Magus: alors elle afk devant parce que résultat mon AG renvoie une suite d'action du genre WAIT WAIT MOVE MOVE MOVE pour qu'elle arrive pile poil à la fin du cul de sac

YannT: j'ai solutionné ce genre de problème en forçant un move perso :p

WhatTrickeryIsThis: met l'amort

Magus: la solution c'est juste de pas faire -0.5 sur une cellule qui n'a pas de pastille

YannT: si t'es obligé de bouger, çia règle tout les soucis du genre "la case suivante me plait pas"

WhatTrickeryIsThis: ah nan même pas

Zorg1: faudrait que je perde l'habitude de tout coder dans le main() en contest

leojean890: mdr ah ben on est 2 à coder sale hehe:p

Gh0stm4chine: 3

leojean890: moi je code 50% du code dans le main et 50% dans des fcts

YannT: y'a 0.01% de situations ou la bonne solution est de pas bouger en fait

leojean890: xD

Bob: ça m'a pris une paire d'années avant d'arrêter de le faire :)

Magus: YannT: j'aime pas trop forcer le mouvement. Parce que le wait peut servir quand 2 pacs arrivent dans le même croisemen,t

leojean890: sauf dans certains sujets où c'est plus propre

Magus: tu fais wait pour laisser passer l'autre

Magus: si tu forces le mouvement t'as un pac qui fait un aller/retour inutile

leojean890: mais OOC ou PAC 50% dans le main

Bob: Magus: pour ça j'ai codé le wait dans ma fonction "va là"

Magus: mais ici le problème a une solution

YannT: Magus: typiquement dans ces situatiions la bonne soluition est pas de wait Magusis d'aller ailleurs

YannT: mais*

leojean890: 300 lignes dans mn eval

Magus: Bob: j'ai pas de fonction "va la" vu que j'ai une simu :D

Magus: j'ai juste une eval

leojean890: jme demande bien quel charabia j'ai mis là dedans xd

YannT: idem, #teameval*sanssimu

Bob: non mais forcément si tu haxx

YannT: mince, j'ai raté mon hashtag :(

Magus: Bob: genre j'ai déjà codé des heuristiques

Magus: enfin la je vais être obligé d'en coder, parce que pour gérer le FoW ça va être compliquié

Bob: c'est ce que je dis, tu haxx :p

Magus: et en plus mon dummy pour l'adversaire était pas branché

Magus: lol

Magus: #apprendàcoder

WhatTrickeryIsThis: encore une nouvelle ia fiasco

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

leojean890: tiens ça aussi ça me fait penser à moi...

leojean890: #iaFiascoFail

leojean890: #332 à 14% attention

YannT: #boutonjaune

YannT: lets go

leojean890: et si elle arrêtait de perdre autant :o

WhatTrickeryIsThis: tu verra qu'il tentera même des matchs avec des ia silver quand tu fiasco grave ;D

leojean890: what ?:P

leojean890: c'est pas prévu au prgrm ça, si ?:P

WhatTrickeryIsThis: non tkt

WhatTrickeryIsThis: par contre tu peux avoir un ELO negatif

leojean890: ouais je sais :p

leojean890: quand on timeout tlt

leojean890: et après j'emmerde les gens

leojean890: car s'ils me battent ils perddent du LO

WhatTrickeryIsThis: et en théorie il parait que c'est impossible

leojean890: bah la ligue bois de code of the realm

leojean890: enfin la bois 4

leojean890: y'en a qq uns en Lo négatif

leojean890: mais rapidement ils repassent à 1 ou 2

WhatTrickeryIsThis: c'est la pratique

leojean890: realm ou realm 2 players je sais pls lequel

WhatTrickeryIsThis: de CG

WhatTrickeryIsThis: la therie ELO score c'est flooré

leojean890: comment ça ;p

leojean890: dwarfie pense que c'est pas super come méthode de ranking:p

leojean890: comme

leojean890: j'en ai pas comparé plusieurs donc je saurais pas classifier:p

WhatTrickeryIsThis: bon bha super je vais rêver de ce fiasco toute la nuit :)

WhatTrickeryIsThis: à demain

leojean890: bn :P

leojean890: mon late game est foireux

leojean890: ce nb de parties où je mène puis me fais rattraper..

Gh0stm4chine: le nombre de partie ou jperds car je me défends pas, va falloir penser à passer en sans speed quand l'avance est grande

leojean890: pareil, les pacs qui meurent c'est monnaie courante ;P

leojean890: bon cette version a fini 290

leojean890: j'en tente une autre...

Gh0stm4chine: https://www.codingame.com/share-replay/464012132 ils ont pas souffert

Bob: oooohhh je suis sorti des 300

leojean890: gg:p

Zorg1: ah merde j'ai eu la captcha au push

Bob: muahahaha

leojean890: moi ma nouvelle version elle va rester dedans jpense :P

Bob: spam spam spam spam spammity spam

leojean890: captcha ça m'est arrivé :p

leojean890: quand resubmit quand pas satisfait des 10 premiers matchs :P

Gh0stm4chine: ça fait quoi le spam submit, en quoi ça aide ?

Zorg1: "Confirmer que vous êtes bien un humain qui spam push"

Bob: Gh0stm4chine: c'est dans la tête que ça se passe :)

Gh0stm4chine: c'est histoire d'avoir un bon start ?

leojean890: le spam.. à rien sauf si tu veux une bonne place et tu sai pertinemment qu'il y a un cté aléatoire :P

Bob: c'est ça

Gh0stm4chine: d'acc

leojean890: ou si tu veux un bon départ pour jouer direct contre des IA assez fortes au lieu de devoir péniblement jouer contre d'autres et remonter petit à petit

Bob: voilà

leojean890: par exemple tu sais que ton code vaut top 10 mais tu as perdu 2 matchs parmi les 10

leojean890: tu peux resubmit direct:p

Bob: mais ça c'est vraiment utile que dans les ligues du bas où il y a peu de matches et beaucoup de monde, avec potentiellement des zones marécageuses au milieu

Zorg1: parfois c'est monté d'un seul coup puis descendre inexorablement

leojean890: ça c'est moi avec OOC

leojean890: quand j'avais plus d'une défaite sur 10 matchs je relançais

leojean890: en revanche dans pac..

leojean890: je peux perdre 7 matchs je suis pas choqué

Bob: dans ce genre de cas un bon start peut t'"économiser" un gros tiers des matches du push que tu joueras contre des IA à ton niveau plutôt qu'un gros tas de bouse de milieu de board

leojean890: exact:p

leojean890: tu joues direct là où ça t'intéresse

leojean890: et tu vois ton winrate sur une partie qui t'intéresse

Gh0stm4chine: j'ai vu que dans un même push tu peux rejouer le même adversaire

leojean890: ouais aussi

leojean890: ton code passe d'une zone à une autre

leojean890: et dans chaque zone tu joues contre des gens autour de toi

leojean890: et en fct des résultats tu es reclassé et rebelotte, matchs contre tes nouveaux voisins

leojean890: et à N matchs c'est fini

leojean890: N valant 110 en gold now

Bob: si tu veux passer le boss, tu as même généralement de bonnes chances de jouer plusieurs fois contre les IA du haut du board et contre le boss

Bob: d'où l'importance d'avoir un bon winrate sur ceux-là, mais pas que

leojean890: ouais ton submit est en aut donc tu joues contre le top 10

leojean890: haut*

leojean890: faut aussi tuer le reste du tableau

Bob: sinon c'est un coup à battre le top 10 mais à jamais y arriver parce que tu bats pas les 100-150

leojean890: parfois y'a une zone qui te fait lutter

leojean890: où tu peux potentiellement perdre plein de matchs et redescendre une fois de temps en temps

Gh0stm4chine: d'acc, donc vive le spam submit quoi

leojean890: mais bon faut pas trop en abuser non plus :P:P

leojean890: après y'a kovi qui l'utilise autrement (mais il win ainsi)

leojean890: (mais embête tlm quand même:p)

Gh0stm4chine: haha clairement, ça fait pas des miracles non plus

leojean890: il teste ses params

leojean890: 3 submits par param

leojean890: et il fait la moyenne des 3 submits

leojean890: pour le valider

leojean890: juste en changeant un nombre

leojean890: donc énormément de submits

leojean890: il connait pas cg benchmark o veut pas l'utiliser ou encore le fait en parallèle

leojean890: pour faire + de tests en mm tps

Gh0stm4chine: d'acc, je vois

leojean890: pour une feature j'imagine qu'il en fait encore plus

leojean890: car avec une feature viennent des params

leojean890: :P

leojean890: moi jfais un seul submit par param

leojean890: si je classe moins bien qu'avant je change

leojean890: règle simple

leojean890: même s'il y a de l'aléatoire et que c'est pas fiable

leojean890: et parfois je lance plein de cg bench

leojean890: mais ça dépend de mes idées

Gonny: gg @Mazelcop

Gh0stm4chine: c'est quoi le cg benchmarking ?

leojean890: ça te permet de choisir des adversaires et d'effectuer le nb de matchs que tu veux contre eux

leojean890: exeple : le boss et le top 5 de ta ligue

leojean890: tu obtiens le pourcenatge de win contre chacun

Gh0stm4chine: ah et c'est ou ça ?

leojean890: tu peux préparer 10 versions de ton code

Zorg1: bon la mystérieusement je suis monté dans les 150

leojean890: et tu les testes à la chaine

leojean890: tu submit celui qui te donne le meilleur ranking

leojean890: gg Zorg1

leojean890: moi 290 meilleur score pour 3 submits mdr

leojean890: ça lose:p

leojean890: 3 code différents of course mdr

Zorg1: oui mais si je repush je parri que je stagne dans les 300

leojean890: Gh0stm4chine je te file le lien

Zorg1: j'y comprends rien

leojean890: Zorg1 côté aléatoire :p

Zorg1: je dois avoir un bug à la con bien planqué

Gh0stm4chine: leojean890 cool merci

leojean890: https://github.com/s-vivien/CGBenchmark

leojean890: télécharge la dernière release

leojean890: tu lances ça en java

leojean890: sur ton ordi

leojean890: tu précises tes fichiers de code que tu veux tester

leojean890: leur path

leojean890: et voilà

leojean890: Zorg1ptet, parfois on pense pas à une partie du pbm aussi

leojean890: genre la détection ennemie ici..

leojean890: avec des seuils bizarres partout

Gh0stm4chine: les seed ça determine un adversaire et une map c'est ça ?

leojean890: seed pour la map

leojean890: adversaire il te faut des agentID

leojean890: http://cgstats.magusgeek.com/app/spring-challenge-2020/Gh0stm4chine

leojean890: a recuperer ici

Gh0stm4chine: parfait, merci bcp :)

leojean890: tu vois même des stats sur tes winrate contre tous les joueurs sur ce site

Gh0stm4chine: je vois que les joueurs autour de moi, y'a un truc pour voir mes résultats contre quelqu'un de précis ?

leojean890: pas trop essayé ça

leojean890: de se déplacer loin

leojean890: mais tu peux saisir un autre pseudo

Gh0stm4chine: d'acc je vois

leojean890: bon j'ai encore fait une version très moyenne là:P

leojean890: 306 à 30%

BigUP: on dirait moi en silver

leojean890: bizarre que tu passes pas ;o

leojean890: t'avais de bonnes perfs récemment

BigUP: leojean890, je suis loin

leojean890: t'étais pas si loin que ça du boss

leojean890: j'ai même pas capté de qui il s'agit

BigUP: leojean890, j'avais de bonnes perfs car je tapais des IA classées beaucoup plus haut

leojean890: alors que je n'étais qu'une place en dessous

leojean890: 261eme à 38%

BigUP: le niveau est monté egalement

leojean890: et tu t'en sors moins bien contre les moins bons tu avais dit

leojean890: bah teste toutes tes versions qui ont eu des perfs pas mal

BigUP: c'est l'impression que j'ai

leojean890: par le passé

leojean890: ouais mais il peut pas monter au dessus de celui du boss

leojean890: sinon àça passerait

BigUP: Le boss, je dois etre a peu pres a 50/50 de winrate

leojean890: ça pourrait passer j'imagine

BigUP: sauf que j'ai aucun match contre lui ! ;)

leojean890: bah submit jusqu'à ce que tu aies 10 win aux 10 premiers matchs ?:P

leojean890: ou 9

leojean890: :p

leojean890: 239 à 60%..

BigUP: ouais, mais souvant le 10eme match, je me bouffe un defaite contre un 330 et c'est mort ! ;)

leojean890: ça n'aide pas

leojean890: j'enchaine les défaites :s

leojean890: dur dur

Alshock: pfiouuu, je cache ma flemme de travailler sur mon code en faisant faire une IA de base à un jeune américain depuis hier, parfois je travaille mon karma

Gh0stm4chine: pour le cg bench, la liste des enemies sous le source path est pas obligatoire si le seed est set à random non ?

Gh0stm4chine: quoi que j'ai rien dit, ça n'a rien à voir

leojean890: 235eme en fin de run, mieux que rien mis pas top;)

leojean890: tu dois en mettre dans la liste

leojean890: des ennemis

leojean890: source path c'est tes codes

leojean890: seed je crois que c'est pour les maps, j'y touche jamais

leojean890: j'ai pas utilisé cg bench depuis le début de ce contest

leojean890: mais à fond au précédent

leojean890: Alshock tu bosses sur quel jeu au lieu de celui-ci?:P

leojean890: bah parfois on a la flemme car le dev restant est trop long/complexe

Alshock: Non je fais bosser un gamin sur ce jeu ci

leojean890: et unsure de donner des résultats potables

leojean890: genre si t'as un dev de plus de 10h et que t'es pas sur des résultats tu y réfléchis à 2 fois :P

leojean890: parfois tu fais les trucs courts plutôt

leojean890: un gamin ? :P comment ça^^

BigUP: ha, possible qu'une grosse partie des loose qu ej'ai contre des plus faible c'est sur des maps ou je laisse l'adversaire prendre mes super pellets car je commence par SWITCH

leojean890: BigUP vire tes switchs ;P

leojean890: ça te gaspille du farm:P

Alshock: BigUP ah ouais t'es ce genre de mec toi ?

Alshock: tu switch comme ça ? Carrément ?

leojean890: enfin fais comme tu veux mais moi ça m'aide

BigUP: faut que verifie la distance aux super pellets avant de switch

leojean890: de les enlever

Alshock: bon tu me diras moi je switch dès qu'un ennemi est près et peut me bouffer

leojean890: et juste si son type est nocif je vire :P

leojean890: et je les poursuis pas sur des km

leojean890: vaut mieux farmer

leojean890: ou faire comme les top, des embuscades

Alshock: "pas le temps de se taper, ya des champs à labourer"

leojean890: detection + embuscades

Alshock: les fameux "tiens, il est parti par là ? Il veut que je le tue ? C'est bien urbain à lui"

leojean890: même à 1h27 ça spam

leojean890: submits

leojean890: :p

BigUP: mon IA est de moins en moins douée ! ;)

leojean890: mais je recommande en silver de favoriser le farm

leojean890: et de ne pas négliger les zones où tu voyais des pellets par le passé

leojean890: et les jamais vues

leojean890: et pas perdre trop de temps à switch ou follow

leojean890: en gold après faut voir

BigUP: j'avais tendance a ne pas prendre les zones que j'ai jamais vu, j'ai corrigé ce soir (enfin rétali pour etre plus exact)

BigUP: mais ca ne change rien

leojean890: et sépare bien tes mecs

leojean890: avec une approche au choix parmi voronoi, malus dans l'éval vis à vis de la distance, ou faire une approche globale direct, etc

BigUP: oui, ca j'y pense, mais ca ne va pas etre evident a faire avec mon algo

leojean890: ou malus si collisions si t'as une simu

leojean890: vous êtes combien en silver ? 700 ?

BigUP: 855

leojean890: sinon autre approche, algo hongrois

leojean890: pour séparer

leojean890: enfin y'a plein de trucs plus ou moins longs

leojean890: moi je suis loin d'avoir un truc optimal donc je continue de regarder ces pistes

Gh0stm4chine: 01:33:24,964 INFO [ gh0stm4chine ][ SEED 0 ] ERROR internal error ha c'est pas bon ça x)

BigUP: oui, il faut que j ereflechisse a une autre strat, et un autre algo de base. Ca fait un moment que je me dit qu'il faut que je code un voronoi, juste la comme ca, je ne vois pas encore comment l'appliquer

leojean890: 376 gold, 855 silver, 2500 bronze, et 1000 bois j'imagine :P

leojean890: le nombre de personnes qui ont soumis est autour de 4600 jcrois

S1L3nCe: leojean890 c'est pas plus simple de juste séparer la zone en 6, de les scorer et d'envoyer un pac par zone ?

leojean890: Gh0stm4chine ça signifie probablement qu'un des champs de ton fichier de conf est mal renseigné :s

S1L3nCe: la map en 6*

S1L3nCe: en 6 zones* ><

Gh0stm4chine: le nom c'est bien : spring-challenge-2020 ?

**BlaiseEbuth lance violement une tortue sur Automaton2000.

Automaton2000: ce qui me fait le plus gros

leojean890: BigUP moi j'ai juste modifié un peu mon éval avec le voronoi, tu calcules un bfs global sur la map par pac, tu as la distance de tes pacs aux différentes cases

Default avatar.png thoip: comment obtenir les logs en cas de timeout?

Alshock: en flushant ?

leojean890: pour chaque case tu as le mec le plus proche ou une égalité possible

leojean890: et tu refuses de viser une case si tu n'es pas parmi les plus proches

leojean890: en bfs

BlaiseEbuth: En organisant mieux tes données :grin:

Default avatar.png thoip: comment tu flush sur l ide?

Alshock: comme dans ton code

BlaiseEbuth: :flushed:

Alshock: t'es en quoi ?

BlaiseEbuth: En mousse

leojean890: S1L3nCe séparer la map en 6 zones pas sûr, c'est pas ce que je tenterais mais ça peut marcher

Default avatar.png thoip: C++

S1L3nCe: Ok

S1L3nCe: thoip tous les cerr fait avant le timeout (crash j'imagine ?) sont affichés

leojean890: spring-challenge-2020 oui Gh0stm4chine

leojean890: bon allez dodo :P good night :)

Default avatar.png thoip: C'est ce que je fais d'habitude le problème c'est dans une boucle et j'ai une tonne d'info. C'est pas un problème qui arrive tout le temps.

S1L3nCe: Pas le choix du coup faut flood

S1L3nCe: Tu mets des cerr avec les infos de base pour voir à quel itération ça bloque et des cerr entre chaque ligne pour voir laquelle bloque

Gh0stm4chine: bonne nuit !

BigUP: tiens, un cod equi m'amene rejouer top 100 ! j'ai pas vu ca depuis une ethernité

Zakaoai: dite pour utiliser l'algo de voronoi vous mettez en place une matrice des distances tour 1 ou vous faite juste du bfs sur chaque pac ?

Alshock: Puuuuute sa daronne en shooooort avec de boules de noëëëël !

Alshock: Pardon, hum... J'ai encore bugué sur de la merde, je me suis emporté

**BlaiseEbuth bouche les oreilles d'Automaton2000.

Automaton2000: je suis en train de faire une fonction de comparaison

BlaiseEbuth: C'est bien, continu Automaton2000.

Alshock: Dommage qu'il ait pas répété ce qu'il vient d'entendre ç'eut été épique

Automaton2000: tout ce qui est un peu plus de temps

Alshock: @Zakaoai moi je fait la map tour 1

BlaiseEbuth: Il a pas besoin de toi pour dire des horreurs.

Alshock: mais mon floyd est bcp trop lent alors je fais un floodfill par cell

Zakaoai: map de distance entre chaque tile ?

Alshock: autant dire qu'on n'est pas dans de l'opti de bout de chandelle

Alshock: ouaip

Zakaoai: Ah oui je viens de tenter un floyd :'( plusieurs heures passer à voir que c'est trop lent

Alshock: ça se fait bien, ça prend ~40 ms

Alshock: je sais pas si c'est nous qui sommes cons ou wikipédia qui essplique mâle

BlaiseEbuth: Teint le en rose ça ira mieux

Alshock: attends j'ai pas encore la vanne

Alshock: wait for iit... wait for iiiiiiiit....

Alshock: non il est trop tard

Alshock: putain t'as juste réagi sur le mâle

Alshock: je suis teubé c'est maintenant officiel

BlaiseEbuth: Y'a pas de vanne. C'est juste qu'un pink floyd ça passe toujours bien...

Alshock: vieux con si j'avais craché ma bière sur l'ordi j'aurais pas eu l'air con

BlaiseEbuth: :grin:

BlaiseEbuth: C'pas une mauvaise idée la bière... Mais faut que je me lève...

Alshock: je suis une putain de larve, chez moi le confinement on appelle ça l'hibernation

Zakaoai: Du coup flood fill c'est bien à réaliser pour chaque tuile pour avoir la matrice de distance ? Ou il est trop tard et mon cerveau suit pas ?

BlaiseEbuth: Moi c'est juste pareil que d'hab...

Alshock: c'est théoriquement pas très bien mais ça marche

Alshock: et quand j'ai essayé de faire mieux ça a marché moins bien (beaucoup moins bien, donc c'est clairmeent ma faute)

Alshock: mais le floodfill sur chaque cell si tu fais rien de lourd à côté ça passe bien

Alshock: comme j'ai dit dans mon premier tour je crois que c'est une quarantaine de ms

Alshock: (j'en prends 70 en tout)

Zakaoai: pour ta totalité des cellules ?

Alshock: ouais

Alshock: enfin la totalité des cellules accessibles, je me suis pas amusés à mapper depuis les murs

Alshock: si t'es dans un langage lent ça peut ptêtre monter jusqu'à 200 ms, mais rien d'insurmontable a priori

Alshock: après la meilleure réponse c'est évidemment le benching

Zakaoai: je suis en js

Alshock: ça vaaaaa

Alshock: c'est généralement bien plus rapide que le python et je l'ai fait en python sans trop de soucis

Alshock: je pense que tu peux partir sur un floodfill de base et si t'as besoin de mieux plus tard tu pourras ajuster

Zakaoai: bon j'ai déjà un algo de bfs d'implem je doit juste l'appliqué tours 1 à tout les cases ou tu peut bouger

Alshock: ouais, après si quand tu lances ton bfs ça te prends pas trop de temps tu peux aussi le laisser comme ça

BlaiseEbuth: Sa mère la pute en short bleu dans les orties du diable !

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

Alshock: ou l'alternative entre-deux, tu peux créer la lookup-table sans rien mettre dedans et quand tu veux faire un bfs, s'il est pas dans la table tu le fais et tu le stockes, sinon tu renvoies juste le résultat déjà enregistré

**Alshock bouche les oreille d'Automaton2000 et lui met un vieux slip devant les yeux

Automaton2000: parce que la position de départ

Alshock: exactement, d'ailleur sje t'y accompagne tout de suite

Zakaoai: Oaip, en fait je connais pas du tout voronoi et comment l'exploiter c'est pour ça que je voulais implem la matrice des distances tour 1

Alshock: voronoï dans une map comme la notre c'est enfantin (en tout cas en pas opti du tout) : tu prends toutes les pellets, tu calcules pour chacune toutes les distances avec un pacman, et tu les associes au pac le plus proche

Alshock: et voilà, un voronoï du pauvre de 10 lignes grand max

BlaiseEbuth: Automaton2000, apporte moi le premier truc alcoolisé que tu trouvera. (A l'exclusion d'Alshock)

Automaton2000: je me suis rendu compte que je ne fais pas les multis?

BigUP: C'est moche !

Alshock: il parles des pulti-fruits ?

Alshock: -p+m

Zakaoai: Hm bon je viens de tester un bfs sur toute les positions sans check si ça retourne le bon résultat et ça me met 7ms :/ Je doute un peu que ça fasse ce que je souhaite

Zakaoai: ah non autant pour moi j'ai oublier d'enlever des perfs en plein millieu

BlaiseEbuth: Pourquoi y'a jamais d'rhum sur c'raffiot ?

Alshock: d'enlever des perfs ?

Alshock: Dans quel contexte tu veux en enlever ?

Alshock: @BlaiseEbuth parce que j'y suis gamin ! Et où je passe, le rhum se r'trouve dans ma gerbasse

Zakaoai: :D Je m'exprime mal. Je parlais de log de performance. Ok bon 142ms pour tout les bfs

Alshock: je suis un powète

Alshock: ouais tu vois c'est tout à fait acceptable

Alshock: si tant est que tu rentabilises cet investissement ensuite

BlaiseEbuth: D'où tu m'appelles gamin ? J'pourrai être ton père.

Alshock: tu pourrais certes, si t'avais pas été trop raide bourré pour trouver letrou

Zakaoai: Il faut juste que je rende ça exploitable car la je sort une liste pour chaque tuile.

Alshock: fais une map 4D

Zakaoai: En fait la mise en place de voronoi j'ai plus ou moins compris mais c'est l'exploitation de cette liste associés au pac

Alshock: lookup[x1][y1][x2][y2] = dist

BlaiseEbuth: Le manque de carburant n'aide pas à avancer...

Alshock: bah t'en fais ce que tu veux mais c'est plus ou moins prévu pour que t'ailles chercher prioritairement là-dedans des pellets plus proche de tio que de quelqu'un d'autre

Alshock: BlaiseEbuth: perso j'ai noyé le moteur ça aide pas bcp plus

Valkilaen: Je sais que mon code crash (erreur runtime), mais j'ai aucune erreur qui se log dans la sortie d'erreur, c'est normal ? Enfin si, desfois l'erreur s'affiche, desfois non, mais l'erreur y est à chaque fois Je deviens fou

Alshock: tu codes en python ?

Valkilaen: Pire, j'ai testé le TypeScript

Alshock: Ouais bah j'ai eu la même en python ça doit être un bug insolite du site

Alshock: en tout cas, ça passe à coup de refresh/clear cache

Alshock: mais j'avoue que c'est aps conforama banque

Zakaoai: bon j'ai un résultat maintenant savoir si c'est le bon c'est autre chose

Zakaoai: les premières valeurs ont l'air ok bon

Zakaoai: bah je ferais voronoi demain. Objectif après ça serais de simuler la meilleurs move pour maximiser le prochain tour

R4N4R4M4: On peut modifier l'entreprise pour jouer en équipe ? ou c'était avant le début du contest ?

R4N4R4M4: Ah c'est bon j'ai trouvé, ça marche

Valkilaen: Vous utilisez un pattern ou une technique particulière pour intégrer le problème de timeout dans le bot ?

C'est quelque chose qui revient souvent, mais à part faire des checks un peu de partout pour forcer l'output pour éviter le timeout

Alshock: tu peux jouer en local, si t'es déterministe tu peux même sans simu avec les retours connus dans un fichier d'input ^^

Valkilaen: Nan mais je veux dire, ça arrive jamais d'avoir un round en temps de décision qui dépasse les 50 ms ? Pour une raison ou une autre ?

R4N4R4M4: Valkilaen, tu chronomètres ton calcul et tu coupes quand tu atteinds la limite

Valkilaen: Oui oui, du coup c'est c'que je fais Mais "couper quand tu atteins la limite" ça part du principe que le langage et le pattern que t'utilises le permet

Valkilaen: D'où ma question d'origine

R4N4R4M4: Ah oui ça dépend du langage

Valkilaen: Genre en JS, stopper l'execution d'une fonction, c'est clairement pas implémenté de base

R4N4R4M4: tu peux implémenter ça dans une fonction

R4N4R4M4: mais sinon mis à part le coder toi même, je vois pas

R4N4R4M4: en général, on fait ça sur une boucle qui se répète pas mal de fois, et donc ça pénalise pas de couper au bout de 9000 tours au lieu de 10000

R4N4R4M4: Mais si tu as un traitement unique qui prend tout le temps, c'est vrai que c'est plus dur à gérer