Chat:Fr/2020-05-09

From CG community
Jump to navigation Jump to search

Valbou: Salut Automaton2000

Automaton2000: pourquoi ca serait pas mal

Valbou: Salut AutomatonNN

AutomatonNN: vous etes sur que tu as des clashs pour le contest ?

Valbou: Automaton2000

Automaton2000: un truc de ce genre de question

Valbou: Automaton2000 une idée d'opti ?

Automaton2000: surtout que c'est un contest privé ?

Valbou: d'autant plus !

Valbou: d'autant plus ! automaton2000

Automaton2000: oui il faut que je regarde ça

Relacks: Basé sur les inputs d'avant

Relacks: Bref en gros c'pas un message d'erreur c'est une information

Relacks: #panic

b0n5a1: hmmm à l'affichage y'a une arnaque comme ça oui, on le voit...mais on joue qu'un tour

b0n5a1: sur ce, bonne nuit ^^

Relacks: Tu joues qu'1 tour mais y a 2 rounds oui

Default avatar.png WalidHamat: cherche un bon coding game pour entretien technique svp langage java

Valbou: Bien le bonjour ! :)

Valbou: de Bonne heure et de bonne humeur ;)

Automaton2000: il doit y avoir une bonne raison de le faire si je veux le nom du puzzle

Automaton2000: après je crois que je peux pas dire pour les autres

Automaton2000: pour voir ce qu'il y a pas grand chose de plus

dbdr: Automaton2000 tu es bavard ce matin

Automaton2000: j'ai rien fait de plus en plus fort dbdr

dbdr: merci :D

LimaceHurlante: Bonour à tous ! bonjour Automaton2000 !

Automaton2000: j'ai jamais vraiment fait de la merde en fait

Samsa: Quelqu'un sait si il y as un nombre max de super pastilles ?

leojean890: faut faire les stats sur l'ensemble des maps :P

Samsa: C'est forcément moins que 17*35, mais tant qu'à faire ce serais pratique d'avoir un chiffre plus petit

leojean890: une dizaine max ?:P j'ai pas fait les stats, faut regarder bcp de parties:p

Samsa: " public int numberOfCherries = 4;" je pense que j'ai trouvé

dbdr: oui, d'ailleurs cerise c'est mieux comme nom :)

Samsa: C'est ce que dit le referee

dbdr: je sais, j'ai ça dans mon code aussi :)

dbdr: cherrypicker

Samsa: C'est le problème des entreprises anglophones, elles ont du mal à écrire les règles en français ...

dbdr: c'est pareil en anglais

dbdr: superpellets dans le statement

dbdr: cherries dans le referee

dbdr: CG est francophone, d'ailleurs

Samsa: (je sais)

joelthelion: YannT est un des seuls à avoir parié sur SWITCH plutôt que SPEED. Vous en connaissez d'autres qui sont bien placés? Je me demande si on va en voir plus de ce type plus tard dans la semaine

dbdr: à mon avis ça va converger

dbdr: faire les deux, en fonction des opportunités

Haashi: Pour moi le switch a pas trop d'utilité

joelthelion: yannt arrive à gagner en mangeant tous les pacs de l'adversaire

joelthelion: quand ça marche c'est assez impressionant

joelthelion: https://www.codingame.com/share-replay/459310472

Haashi: Sauf cas extremement rare ou tu switch au dernier moment d'un bot qui est a 2 cases de toi

LimaceHurlante: j'ai un souci de compréhension, je pert car je n'ai plus de pacs Standing alors qu'il ont l'air d'aller très bien. Vous savez à quoi c'est du ?

Haashi: Enfaite, je pense que la stratégie marche aujourd'hui parce que très peu de personne prennent en compte les pacs de l'adversaire

Haashi: la preuve, a un moment romka sprint alors qu'il y a un méchant a une case de lui

Haashi: Pour l'instant tout le monde optimise la collecte au détriment de la survie

Haashi: ca va faire exactement comme cristal rush

joelthelion: le truc, c'est que si tu optimises la survie, tu perds en collecte

joelthelion: ça va être intéressant de voir comment ça évolue

dbdr: mouais, joli mais pas super convaincant le replay joelthelion

dbdr: il a pas bcp de marge à la fin

joelthelion: dbdr non effectivement mais il a le mérite d'avoir essayé autre chose :)

dbdr: je pense qu'il y en a encore bcp comme mois qui ignorent completement les morts pour l'instant

Haashi: en plus, il manque trop d'info pour attaquer

Haashi: dbdr, moi j'ai un probleme, c'est qu'ont peu pas détecter si on tue quelqu'un depuis un angle

dbdr: ça va devenir plus dur de tuer

joelthelion: Haashi j'imagine qu'il est possible de faire une usine à gaz style ooc

joelthelion: pas sûr que ce soit rentable :)

LimaceHurlante: arg je desespere je pard à chaque match car je n'ai plus de pacs standing alors qu'ils sont bien vivant ...

joelthelion: LimaceHurlante peut-être que ton code plante?

Default avatar.png Colios13: ça veut surement dire que tu a une erreur effectivement

LimaceHurlante: c'est ce que j'ai penssé au début mais pas de message d'erreur ..

LimaceHurlante: peux etre qu'il aiment pas etre envoyé dans des murs .. je vais regarder ca ....

dbdr: LimaceHurlante donne un lien de replay

LimaceHurlante: https://www.codingame.com/share-replay/459314270

dbdr: ta as lu le message?

dbdr: le carré bleu a la fin de la barre de temps

LimaceHurlante: a j'avais pas vu qu'ont trouvait des erreur dans la barre de temps ! merci beaucoup d'avoir pris le temps de regarder :-)

dbdr: :)

dbdr: idéalement, ils auraient du le mettre dans la console aussi

Haashi: mais lol

Haashi: j'ai submit un code depuis hier

Haashi: ou ma bfs

Haashi: ignorait les murs

Haashi: et ca marchait vu que je suis 76th

Haashi: ??????????

Haashi: enfaite j'ai complétement oublié en parsant la map d'enlever les arretes de mon graphe pour pas aller sur les murs

Haashi: j'ai juste mis que les murs avait pas de pellet

Haashi: oh quel enfer j'étais fatigué hier

joelthelion: Haashi et maintenant tu vas corriger le bug et tu seras 200ème :)

Haashi: ouais je le sens gros comme une maison

Haashi: ahah

Haashi: j'ai resubmit du coup

Haashi: 12 win 0 L pour l'instant

LimaceHurlante: dbdr grace à ton aide je suis passé de 2000ème à 971 !

dbdr: :+1:

LoganWlv: #Haashi dans ton BFS tu traces le path en entier ? (Pour prédire la prochaine position de ton PAC ? )

Haashi: oui

Haashi: en gros, ma bfs part de la position de mon pac

Haashi: pour chaque noeud qu'elle visite, elle lui set sa distance, et le noeud par lequel il a été visité

Haashi: comme ca j'ai le chemin pour aller de mon pac a n'importe quel pastille

Haashi: et depuis la pastille, si je remonte tous les noeuds, ca me donne mon chemin

LoganWlv: Ok je vois, je fais la même chose sauf que je ne garde pas le chemin. Mais ça pose clairement problème quand mes pacs se rentrent dedans x)

LoganWlv: car je peux pas le prédire

Haashi: Ouais justement je garde le chemin pour cette raison

Haashi: si il sprint, je le fais aller au 2eme noeud du chemin si il sprint pas, au 1er et comme ca je peux voir si deux pacs vont sur la meme case

Haashi: meme si ils ont pas la même target finale

Haashi: si ils vont sur la meme case, l'un deux attend sur place

LoganWlv: Je vois, c'est plus ou moins ce que je comptais faire aujourd'hui :D

LoganWlv: ty

Vry: Mais calmez vous les gens ... plus de 2k en ligue, c'est pas possible ... :p

Vry: ... kovi est de retour !

Boulet: \o/

Boulet: ça boum les petits

Boulet: ?

LimaceHurlante: ouiii ca boom !

Boulet: tu en es ou LimaceHurlante ?

LimaceHurlante: 641 en bronze :)

Boulet: gg :clap:

LimaceHurlante: Merci !!!

Boulet: premier contest

Boulet: en plus

Boulet: joli

Boulet: du coup cadeau

Boulet: http://cgstats.magusgeek.com/app/spring-challenge-2020/boulet

Boulet: eviidement de /boulet est en trop :p

LimaceHurlante: Bravo !!!

Boulet: non c'est juste un outil pour toi

LimaceHurlante: J'apprend par la meme occasion l'existence de ton langage

LimaceHurlante: (mais oui je comptais bien m'en servir :) merci beaucoup)

Haashi: bon, il semblerait qu'une approche diffusion ca peut permettre de faire fonctionner tes pacs de manière maccro

Boulet: il y en a d'autres (en haut à gauche) bien utiles aussi

Boulet: Haashi: en fr ça fait quoi #pasencoreprismontroisiemecafe

Boulet: LimaceHurlante: meilleurs langage ever

Haashi: ca

Haashi: https://youtu.be/8kBQMQyLHME?t=1441

Haashi: en gros, je pars de chaque pastille, je propage en BFS leur valeur sur toutes les autres cases, avec un coef d'ammortissement

LimaceHurlante: je vais me renseigner sur le Ocaml :)

Boulet: aaaaaaaah la video de manwee

Haashi: je fais pareil pour tous mes pacs (pour eviter les collisions) avec une valeur negative

dwarfie: ah ah ... avec LimaceHurlante , ca fait 2 Autodidacte ... encore un et on y'aura une team ;)

Haashi: pac adverse avec qui je collide => valeur nefative pac adverse avec qui je meurts => valeur encore + negative

Haashi: pac adverse que je peux bouffer => valeur positive

Boulet: déconne pas dwarfie: je veux mes mugs

dwarfie: Boulet ... ca sera une team ecole pas entreprise

Boulet: oui je vois Haashi. le truc avec les tank

yamo: hello. Les 50 ms, c'est le code entre dernier readLine et le println ?

leojean890: ouais Vry kovi et siman au top comme OOC xD et ouais la ligue c'est un bordel monstre, imagine comment ce sera lundi:o:o

leojean890: ça semble cool ton truc Haashi

Haashi: ca marche plus ou moins bien

Haashi: j'ai pas encore implem le pierre feuille ciseau avec ca

Boulet: yamo: non c'est entre l'ENVOI de la premiere ligne et la RECEPTION de ta linge

Haashi: j'evite juste d'etre trop proche des autres pacs

Boulet: bref tu ne maitrise pas

Boulet: donc tu te laisse qq ms de marge

Boulet: leojean890: oui elle vaut vraiment le coup d'etre vu cette video

leojean890: jvais voir oauis après ouais :P

Aldemius: Bonjour

Aldemius: J'aurais une petite question rapide, peut être un peu de noob

Aldemius: Si un exemple passe tous les tests au vert mais qu'un test au moment de soumettre est rouge, y a t'il un moyen de savoir ce qui bloque ?

Boulet: Aldemius: non

Boulet: quel puzzle ?

Aldemius: Ok, c'est bien ce que je pensais, merci :D

Boulet: quel puzzle ?

Aldemius: https://www.codingame.com/ide/puzzle/simple-fraction-to-mixed-number

Boulet: il n'est pas en prod si ?

Boulet: ahg si

Boulet: quel test ?

Aldemius: le dernier

Aldemius: Many random cases

Boulet: tu peux me filer ton code en MP

Boulet: stp

Aldemius: oui

LimaceHurlante: dwarfie C'est clair qu'on devrait etre une team AutoDidacte :-)

Haashi: bon je submit mon code avec de la diffusion simple

Haashi: juste pour voir ce que ca vaut par rapport a mon autre strategie

Haashi: good luck

dbdr: bon, j'ai eu la conversation difficile avec mon bot. il connait le concept de mort maintenant

Boulet: good luck Haashi

Haashi: 10W - 0L

Haashi: mais bon, a 2500 dans la ligue, ca veut rien dire

Boulet: :clap:

Boulet: LimaceHurlante, dwarfie: vousdevriez VRAIMENT le faire

Alshock: coucou les enfants ! coucou Automaton2000 et AutomatonNN

Automaton2000: pour ça que c'est pas de la même façon

AutomatonNN: oui c'est pas trop compliqué de faire un truc comme ça pour le coup

Alshock: c'est limpide

yamo: merci boulet

Default avatar.png BenLvre: Salut à tous !

Default avatar.png BenLvre: Je vais devoir faire un bfs aussi je pense, j'ai reussi à me hisser dans la ligue bronze mais bon

Default avatar.png BenLvre: sans géréer les murs ça devient compliqué ^^

Boulet: je sais plus pourquoi mais de rien yamo

Haashi: putain ca marche

Haashi: meme classement que mon autre approche

Haashi: alors que c'est une version brouillon ou j'ai mis les valeurs de propagations un peu au pif

dwarfie: ben moi js'y suis deja

Haashi: et que je prend pas encore en compte le pierre feuille ciseau

dwarfie: 2901 classés ... va-t-on faire mieux que gtic ;) ?

BigUP: hum, je commence a eclater du top 200 ;) ca commence a sentir bon la silver ;)

Boulet: :cake:

Boulet: silver à #400

Boulet: au dessus c'est du meutre

BigUP: Boulet, oui mais le niveau va beaucoup progresser d'ici l'ouverture je pense

Boulet: il ne peuvent pas laisser 1800 en bronze

Boulet: pas raisonnable

Boulet: par contre l'ouverture de ligue va piquer

WilQu: Les boss n’ont pas été créés à l’avance ?

Boulet: WilQu: non

dwarfie: Boulet ... tres raisonnable au contraire ...

BigUP: Boulet, si ils peuvent, au dessus de 400 c'est que t'as pas implémenté les actions de base

BigUP: ou que c'est buggé a mort ;)

Boulet: BigUP: on va dire que je suis #42 donc je ne suis pas inquiet pour MOI et la silver

BigUP: La vache, le top 200 résiste et n eveut pas me laisser rentrer dans le club ! ;)

dwarfie: de meme ... pour une fois ;)

Boulet: mais il va falloir splitter serieusement la bronze

Boulet: sinon c'est l'anarchie

BigUP: Arf ! :) Draw sur le 200eme ! c'est un signe !

yamo: 150ms au premier tour puis < 10 ms pour les suivants. warmup de la JVM ?

Boulet: yamo: 1000ms

Boulet: pardon pas bien lu

mothinx: je suis parti dans un gros délire hier soit de vouloir implémenter A* , ce matin après une bonne nuit de sommeil je me rends compte que 1) le code source du jeu en lui meme a déjà implementé cet algorithme 2) ma stratégie est complétement bidon masi ej suis en bronze :D

R4N4R4M4: Salut les gens

leojean890: hello R4

mothinx: salut :)

R4N4R4M4: Ca se goinfre toujours autant ? :D

R4N4R4M4: En tout cas vraiment très cool ce jeu, je galère, mais c'est très cool

leojean890: j'aime bien mais je préfère OOC ;P

mothinx: est-ce que les codes sources des participants sont dispo après le challenge ?

Neumann: Non.

R4N4R4M4: Mais si tu veux nous envoyer le tien, on est preneur

BigUP: mothinx, c'est dispo pendant le challenge... faut fouiller github et les trucs de copy/past en ligne

R4N4R4M4: Déjà que j'ai du mal à relire mon code, alors celui des autres... :D

mothinx: j'ai pas grand chose d'interessant à montrer. Pour le moment je ne cible que les Pellets de 10 points les plus proches de mes pacs et je leur dit d'avancer jusque là bas. J'étais parti sur une volonté de faire un Graph à partir de la Bronze mais je me demande maintenant si ça reste interessant vu que le jeu en lui meme a déjà des algo de type A*

mothinx: ducoup on va plutôt gérer les colisions pour le moment ^^

filou62: Bonjour j'ai un problème sur le spring challenge j'ai l'erreur suivante filou62 has not provided 1 lines in time alors que pourtant je fais bien un system.out .print dans mon programme qui me renvoi la ligne suivante : MOVE 0 17 5 | MOVE 1 1 9 | MOVE 2 21 3 | MOVE 3 26 1 | MOVE 4 17 5

mothinx: filou62 ca te le fait sur tous les fights ?

BigUP: filou62, peut-etre un timeout... faut mesurer le temps entre le 1er input et juste avant ton output

mothinx: le 1ier input de la boucle infinie ;)

dwarfie: filou62 ....system.out.prinln plutot ? :thinking:

Drazyen: Une seule solution dans ce cas : mettre des print de log dans ton code pour savoir à quel endroit il s'arrête ^_^

Drazyen: fprintf(stderr, ) plutôt ?

filou62: Non j'ai mis System.out.print dans une boucle for pour tout afficher sur une ligne

mothinx: Est-ce que Dikjstra peut etre implementé pour ce genre de besoin: Aller jusqu'au Pelet X où le chemin emprunté vers X rapport le plus de point

WilQu: filou62 il faut un retour à la ligne à la fin de la ligne.

Haashi: oui mothinx

dwarfie: oui mais faut penser a envoyer un retput a la ligne ares

Drazyen: un petit bfs fonctionne aussi sinon, mais faut dire que c'est quasi pareil dans les cas comme ça

mothinx: ducoup le poids de mes liens dans mon graph peuvent etre la somme des valeurs des pellets sur ce chemin c'est bien ça ? :)

mothinx: et je prends le lien qui a la plus grande valeur

Haashi: enfaite

Haashi: tu peux faire un espece de graphe value

mothinx: c'est linverse de diskjstra en fait ^^

Drazyen: C'est un peu à toi de définir la valeur d'un chemin :-)

Haashi: chaque cout pour te déplacer est de 1

Haashi: sauf que si il y a une pastille

Haashi: le cout il est de 0

Haashi: ca te permet de rechercher le plus court chemin

Haashi: et d'inciter ton dijsktra a passer sur des cases avec des pastilles

Drazyen: C'est joli ça :heart_eyes:

Haashi: par contre, ca a pas forcément le meme sens que d'arriver le plus rapidement a une position

mothinx: mais le MOVE en lui meme dans l'appli utilise un A*

Haashi: genre si tu veux etre le premier a arriver sur une grosse pastille

Haashi: ce que je propose marchera pas

Skrakout: Ca peut te mener à prendre des chemins longs et à perdre une grosse pastille

Skrakout: You got me ahah

filou62: merci @WilQu c'était ça en effet.

Drazyen: N'hésitez pas à considérer qu'un pac ennemi est une grosse pastille, bien entendu ;-)

Drazyen: Fighto!

lamisedaxeh: hey vous avez une seed avec 5pac ?

Skrakout: Ca dépend si ton cooldown est up

Haashi: seed=-5072674801924216800


lamisedaxeh: merci bcp :thumbsup:

LimaceHurlante: je pensait que c'était une conerie mais je suis bien content d'avoir donné des prénoms à mes pacs, bien plus simple a lire mes logs et comparer à ce que je vois :)

BigUP: LimaceHurlante, tu les a appelé comme nous 0, 1, 2, 3, 4, 5 en fait ? ;)

LimaceHurlante: non, j'ai mis les prénoms de ma famille :-)

BigUP: -,5

BigUP: LimaceHurlante, c'est pas gentil ca !

LimaceHurlante: au contraire ! c'est affectueux

lamisedaxeh: x)

LimaceHurlante: comme ca quand ils foncent indefiniment dans un mur je peux geuler "Faite des gosses ! il est débile !!!"

PhOeNyX: Yo

PhOeNyX: wah, 2113 personnes en bronze

PhOeNyX: Comment va être sélectionné le boss pour silver au regard de cela ?

HeyImAGinger: ou alors tu les appelle pas et tu garde juste leur id

LimaceHurlante: pour info les caractères spéciaux passent dans les intitulés (î)

lamisedaxeh: x)

neorel: C'est tout les combien de temps que la sélection se fait pour les montée en ligue?

dbdr: çá c'est de la fin de match! https://www.codingame.com/replay/459387796

Boulet: des que ton run est fini

PhOeNyX: habituellement, c'est lundi, mercredi et vendredi

PhOeNyX: Que les boss sont choisis pour les nouvelles ligues

neorel: Ok, merci ;)

YannDev: ya des gens qui ont déjà codé leur moteur ou pas ?

PhOeNyX: Je ne pensais pas faire un moteur pour ce challenge

R4N4R4M4: Y a plus la sélection verticale dans le nouvel IDE .

LimaceHurlante: dbdr effectivement ! très belle game !

lamisedaxeh: fallait attraper le dernier :P

dbdr: encore 2-3 trucs à corriger qd meme LimaceHurlante :D

LimaceHurlante: 2 ou 3 :-)

Boulet: dwarfie : :rage:

Alshock: @YannDev j'avoue que gérer les collisions me reforidit un peu

YannDev: ouais idem

Alshock: J'avoue aussi que j'aurais surement fait buguer des millions de trucs à côté et qu'elles ont bon dos

dwarfie: quoi boulet ?

Boulet: Tu me mets la misere

Boulet: :rage:

Boulet: et tu m'as pourri mon précédent run

dwarfie: ouais ben j'y suis pour rien ... quoi que ...

Boulet: euh si

Boulet: tu es mechant

Boulet: c'est tout

Boulet: bon va falloir reveiller Stilgart

Boulet: parce que quand meme

Boulet: c'est lui le leader normalement

Boulet: et puis je n'ai plus de poisson pilote

leojean890: on refait un OOC avec Valgrowth siman kovi wlesavo en tête ?;)

Palmipedus: bon la simu ca va etre ciant pour etre performant

leojean890: mais quelques autres aussi ;p

dwarfie: Boulet .... espece de tortue , ca te derange de plus avoir de lievre a depassé sur la fin , c'est ca ? :D

YannT: un pac donné peut potentiellement avoir 12 ordres (9 moves possibles en cas de speed, 2 switch et 1 speed), et il y a au maximum 10 pacs sur le terrain. donc le nombre de combinaisons possibles si on les gère toutes, c'est bien 12^10 ?

Boulet: bah oui

YannT: (sans compte les permutations, juste les combinaisons)

Boulet: YannT un peu moins mais en gros oui

YannT: ou c'est 10^12 ?

dwarfie: euh plus ue 9 moves ils me semble ...

YannT: ou ni l'un ni l'autre :D

Boulet: Tu ne peux pas avoir switch et move 2 en meme temps

YannT: c'est surtout le calcul final que je voudrais confirmer

Boulet: enfin en methode shadock ça fait TROP

leojean890: YannT va nous faire une simu de la mort ;p

Boulet: 12^10

Palmipedus: mouais, enfin j'ai commence une simu mais les perfs sont pas terrible

Boulet: 12*12*12....

Palmipedus: je pense que je vais passer en heuristique only

Boulet: Je dois avouer que pour le moment je ne vois pas bien quoi faire d'autre

leojean890: moi je simule les bots indépendemment, juste un petit minmax depth 2

YannT: mais c'est horrible :scream:

Boulet: c'est bcp

Boulet: par horrible

Boulet: pas

YannT: 61917364224 combinaisons possibles

leojean890: chaque pac en minmax avec son voisin

Samsa: J'ai un depth max à 6 avec les bot indépendants

Samsa: Sans prendre en compte l'ennemie

Palmipedus: et c'est classe combien?

dwarfie: cf nahuelbeuk ... c'est horrible , c'est atroce , c'est abominable ... c'est laid

Samsa: 86

Boulet: YannT: apres ton 12 est faux

leojean890: minmax avec voisin mais prend en compte tous les ennemis aussi

Boulet: Comment ça 9 moves possibles en cas de speed ????

YannT: ben même si tu speed tu peux choisir de faire des demi moves non?

YannT: + rester sur place

leojean890: en cas de speed t'as plus que 9 moves je crois

YannT: mais en vrai c'est p'tet plus selon le terrain

Boulet: rester sur place non

Boulet: ah oui

Boulet: ok

Samsa: c'est 1" déplacements possibles

Samsa: *13

Boulet: mais sinon j'ai que 6 pour les move à distance 2

Samsa: Mais il y en as toujours qui sont impossible à cause des murs

Boulet: (3 dir * 2)

Boulet: ce qui nous fait que 7 et pas 9

leojean890: hh, hg, hd, dd, gg, bb, bg, bd, b, d, h, g, immobile

Samsa: Pk 3 dir ?

Boulet: quel con je fais

Boulet: ok 9

Boulet: Samsa: parce que

dwarfie: c'est plus ooc :D

leojean890: hh, hg, hd, dd, gg, bb, bg, bd, b, d, h, g, immobile => 13 !

Samsa: 13 pas 13!

leojean890: comme dit Samsa ;P

YannT: yes, 13

leojean890: 13

YannT: en sachant que y'en a jamais 13

leojean890: pas 13!

Boulet: par contre YannT: tu ne peux pas speed ni switch en mode speed

leojean890: je mettais une exclamation;)

Samsa: :innocent:

Vintarel: y a gh et gb et dh et db aussi x)

Samsa: On a donc une facteur <= 13

Boulet: Vintarel a raison

leojean890: gh et hg c pareil :P

YannT: Vintarel: non ça fait doublon après

Nagrarok: je pense pas que ça dépasse 9, vu qu'il y a jamais de carré 2x2 vide

Samsa: :+1:

Nagrarok: hh et gh sont jamais disponibles en même temps, par exemple

Boulet: leojean890: non

YannT: gh et hg c'est pareil

Nagrarok: c'est surtout incompatible :D

leojean890: ah ouie xact !

leojean890: parfois tu peux faire HG etpas GH

Vintarel: c'est vrai peut pas y avoir les deux en même temps

YannT: gh et hd plutot

Boulet: par contre il y hb et leur copain

leojean890: selon la forme des couloirs

Boulet: et ça ça peut etre utile

YannT: bref c'est bien 13 possible théorique (mais impossible d'avoir les 13 le terrain le permet pas)

dwarfie: Boulet : hb .... donc immobile ;)

Boulet: non

YannT: bon, j'oublie le tableau, on va dire que je sais pas le sizer :D

Boulet: immobile sur 2 coup

YannT: ça sera une liste

Boulet: ah oui merde

dwarfie: Boulet : on parle d'en mode speed ;)

Boulet: d'ou mon merde

Magus: YannT c'est 9 possibilités maximum par jour

YannT: méthode gougnafier: je pars sur un liste, je log la taille dans les games, et un jour je mettrais un tableau sizé empiriquement (et j'aurais un crash 1% du temps si ça dépasse pour toujours)

dwarfie: ouais , ben croisement de msg

Magus: parce que si t'es sous speed, t'as pas le cooldown de toutes façons

Magus: donc tu peux pas avoir 8 cases possibles + switch

Boulet: Magus: par jour ça fait pas bcp :D

Magus: euh par pac

Magus: :D

Nagrarok: c'est pour ça que les serveurs étaient lents, ça simule un seul tour par jour :o

YannT: Magus: 8 ça me semble pas beaucoup

Magus: le referee interdit les carrés

Magus: donc t'as que des couleurs et des embranchements

Magus: donc le max, t'es sous speed dans un embranchements à 4 directions

Magus: tu peux atteindre 8 cases

Magus: + le wait

Magus: ça fait 9

YannT: ok, ça fait sens

Magus: et si t'es pas sous speed et que t'as le cooldown, tu peux atteindre 4 cases, + wait, + lancer speed, + swtich sur 2 types (ça fait 7)

Boulet: ce qui te ramenne juste à 9^10

YannT: donc 9^10 = 3486784401 combinaisons possibles...

YannT: ça reste trop

Palmipedus: YannT tu es suisse?

Magus: oui le bruteforce c'est mort :D

Magus: avec un branching pareil même un beamsearch c'est chaud

Magus: parce que si tu fais ton tour, ça peut faire 59k possibilités. Ok disons que tu en gardes les 100 meilleurs

Magus: 2 ème étage tu fais 59k*100 possibilités à simuler

Magus: t'es déjà mort :D

Palmipedus: yep j'ai essaye le beamsearch...Je me casse les dents

YannT: même si tu gères que tes pacs (et une heuristique quelconque pour l'advezrsaire), t'es à 59049 possibilités

Magus: pour moi les algos de recherches classiques possibles ça va être ag ou mcts (avec une gestion du fow)

lamisedaxeh: j'ai bien choisis mon challenge pour commencer le minmax x)

Magus: après il reste la possibilité d'algo de recherche découplés

Magus: genre tu fais un beamsearch par pac sur X étages

YannT: ça semble chaud à cause des collisions

Magus: tu peux même imaginer faire un minmax par pac avec le pac adverse le plus proche

Magus: mais oui avec les collisions c'est chaud

Magus: parce que le cas stupide ou t'as juste 2 pacs à la queue leu leu dans un couloir

Magus: si tu fais la recherche pour le pac de derrière avant celui de devant, celui de derrière peut pas avancer :D

YannT: yep :/

Magus: c'est actuellement ce à quoi j'essaie de réfléchir

Magus: mais un mcts c'est "chiant", parce que l'adversaire tu vois pas tous ses pacs

YannT: MCTS avec une eval au lieu d'un rollout peut être

Magus: et si tu fais un mcts classique (tu rollouts jusqu'au bout du jeu, en random ou avec une heuristique bidon du genre aller sur le pellet le plus proche)

YannT: mais rien que les expand ça va prendre 5 ans

Neumann: On n'est plus en 2016, rangez vos MC/AG

Magus: le fait que tu vois pas tous les pacs de l'adversaire ça va être moche, parce que forcément si t'as plus de pacs que l'autre, tu vas souvent gagner tes rollouts :D

YannT: ben je verrais bien un MCTS avec eval au lieu d'un rollout

YannT: mais j'ai peur que les expand soient trop longs

Magus: fait gaffe avec le mcts eval au lieu de rollout

Magus: parce que tu te retrouves à eval des états du jeu qui sont pas tous à la même profondeur

Magus: et ça fous le bordel

Neumann: Faut éval à depth constante

Magus: oui

Neumann: Comme sur Oware, ça se fait bien

YannT: vu le branching la depth c'est 0 là -_-

Magus: au pire tu peux te dire que tu limites ton mcts à depth 5 (je dis au pif)

Magus: et donc tu rollouts jusqu'à depth 5

Magus: mais faut jamais eval des états à depth différente

Neumann: Rien de tout ça fonctionnera, ça va encore être un mix heuristique avec un brin de bruteforce sur des aspects bien précis

YannT: en vrai le fow c'est ce qui te "sauve" du branching horrible

Neumann: Comme tous les contests depuis 2 ans

Magus: (et fait gaffe l'eval essaie de renvoyer entre -1 et 1, sinon faut modifier la formule de UTC, ou UCT je sais plus l'acronyme)

Magus: le fow sauve de rien du tout

Magus: ça empêche juste de simuler l'adversaire complètement

YannT: et donc ça enlève des possibilités :D

Magus: et ça oblige tout le monde à coder quelque chose pour gérer le fow

Magus: après je pense pas qu'on puisse le gérer au bruteforce le fow ici

Magus: (comme dit plus haut, tu peux avoir 59k possibilités pour un tour, bonne chance pour le bruteforce des états de l'adversaire au bout de quelques tours dans le fow)

Fangel: tu connais le score...

Magus: euh oui et ?

Fangel: ça peut pas mal élaguer

Magus: au début y'a des pellets partout

Magus: tu te doutes bien qu'à chaque mouvement il va monter son score

Magus: tu vas rien élaguer :D

YannDev: mais du coup vous comptez simuler quoi ?

Fangel: moi si :)

YannDev: parce que si on peut pas gérer l'adversaire

Magus: aucune idée, je sais même pas si je vais participer plus que ça pour l'instant. Pas la motiv, 3 contests de suite avec du fow

Magus: un peu la flème

YannDev: c'est vrai que c'est chiant

YannDev: après ça laisse de l'espace pour les sol full heuristiques

Fangel: moi ce qui me dérange, c est plus que 2 pacs peuvent se rencontrer sans jamais s etre vu avant.

YannT: j'étais en train de me poser la question, je me suis levé avec un brin de motiv'

YannT: pour coder la simu

Fangel: et là c'est le coup de chance

YannT: mais je vois pas quoi faire en fait

Boulet: bon virer le dijkstra

YannDev: j'ai la flemme de coder le moteur déjà mdr

Magus: la simu le moteur est un peu chiant, mais pas très dur à coder

Boulet: plus nuisible qu'autre chose

Magus: (c'est la triple boucle pour les collisions qui est chiante)

Magus: un for dans un for dans un while :/

YannDev: YannT en soit ya un truc que tu peux faire

YannDev: c'est bruteforce les mouvements de tes pac et évaluer localement

YannT: 1) faut coder le moteur avec les collisions déjà et vu que c'est incohérent à plus de 3 pacs avec plus de 1 joueur mpliqué, c'est coton

Magus: mais pour l'instant je vais voir si j'ai une idée pour gérer le fow sans que ce soit chiant

YannT: et 2) faut décider quoi simuler

Magus: c'est pas cohérent mais pas dur à coder :D

Magus: suffit de reprendre le code du referee

YannDev: en soit ya juste a simuler les mouvements de tes pacs et des pacs ennemis visibles

Fangel: moi je garde pour chaque case l information minpellet et maxpellet.

Boulet: YannDev: non

YannDev: Boulet tu simulerais quoi d'autre ?

Boulet: parce que ça tu es sur de mourir

YannT: non faut simuler toutes tes combinaisons d'ordres, mais y'en a bcp trop

YannDev: je vais rester sur ma sol heuristique je pense

Magus: l'ordre des ordres a aucune influence déjà

Magus: c'est une bonne chose

YannDev: mais faut que je l'optimise

YannT: sans compter que sur les cas de collision chelou, les permetutations semblent avoir une importance sur les cas limite

Magus: mais simuler toutes tes combinaisons c'est mort de toutes façons, sur un seul tour tu peux bruteforce mais tu verras pas au dela

YannT: Magus: si les collisions >3 pacs, ça peut avoir une influence non? struct a fait des tests hier soir

Magus: j'ai pas dit que ça avait pas d'influence

Magus: j'ai dit que c'était pas cohérent, mais que c'était facile à coder

Magus: le code du referee est pas long sur les collisions, je l'ai dit au dessus, c'est juste while { for { for { ... }}}

Magus: pour les perfs c'est atroce, mais le code est pas long

YannT: voilà donc sur les cas chelou, y'a même des permetutations à voir en plus des combinaisons si tu veux etre exhaustif :p

Magus: ah tu parlais d'autre choàse

Magus: non je confirme, l'ordre de tes ordres n'a aucune influence

Magus: les pacs jouent tous en même temps

Magus: donc tu peux output tes ordres dans l'ordre des id tout le temps ça changera rien

dbdr: vous entendez quoi par pas cohérent?

Magus: dbdr: pas cohérent dans le sens ou une collisions avec >=3 pacs et des pacs des 2 joueurs dans le tas, le fait qu'un pac va avancer sur la case visée va dépendre du type des autres pacs alors qu'ils vont pas aller dessus

Magus: un peu bizarre et pas intuitif

YannDev: est ce que ce genre de sortie est valide svp SPEED 1 | SPEED 0 |

YannDev: où il faut retirer le dernier |

Default avatar.png LeMonsieur: si les pac sont en SPEED il se déplace 2 fois mais le programme ne s'éxécute qu'une fois c'est bien ça?

dbdr: ok, mais c'est subjectif ça

Boulet: YannDev: c'est valide tel quel

YannDev: ok merci beaucoup :)

Boulet: LeMonsieur: oui

Magus: ah on peut mettre un | à la fin ? :o

Magus: fait chier j'ai un if pour rien dans mon code :D

Boulet: Magus: oui

Boulet: Découvert par hasard (parce que oublié ce "if") :D

lamisedaxeh: umh moi ça ne marchais pas hier :thinking:

Boulet: MOVE 0 17 5 (0/2)|MOVE 1 15 5 (0/2)|MOVE 2 15 8 (0/2)|MOVE 3 7 3 (0/2)|MOVE 4 27 1 (0/2)|

Boulet: Tirer d'une partie que j'ai sous les yeux

lamisedaxeh: ah oauis j'ai du me tromper x)

Boulet: apres je n'ai pas d'espace en fin de ligne

Boulet: possible que ça joue

YannDev: vous êtes surs que c'est 50ms la limite par tour ?

Boulet: NOn ça joue pas

YannDev: quand je chronomètre avec je prends 100ms sur des tours parfois

Boulet: YannDev: en ide c'est plus permissif

YannDev: Aaaah

Boulet: et ton chrono est foiré

YannDev: bah je sais pas

Boulet: tu prends le top AVANT de lire la première ligne

Boulet: il faut le prendre apres

YannDev: oui je fais ça

YannDev: AH

YannDev: x)

YannDev: Après la première ligne

YannDev: ou après toutes les lignes

YannDev: ?

Boulet: apres la première

YannDev: ça change beaucoup de choses ? :')

Boulet: oui si le referee mets 70ms à t'envoyer la premiere ligne :D

Fangel: ben ton script se met en attente quand tu fais "input" de recevoir des choses...

Fangel: si le referee te l envoie pas de suite ça ne compte pas sur ton chrono

Boulet: bah si

Boulet: si tu prends l'heure systeme

YannDev: ah ça change tout lol

YannDev: ça prend moins de une milliseconde

Fangel: non mais Boulet je dis la même chose que toi, il ne faut pas que ça compte sur ton chrono

Boulet: ok pardon

Boulet: YannDev: non ça peut prendre jusqu'a 50 ms

Fangel: je voulais dire ça ne compte pas sur le chrono referee donc il ne faut pas que toi tu le comptes.

Boulet: (ceux de l'adversaire par exemple)

Boulet: on est d'accord

Fangel: Après il y a des marges, en général 60 ms ça passe, au delà ça devient compliqué.

YannT: bon, je pense que je vais mettre speed dans mon heuristique moisax et p'tet arrêter là le contest j'ai pas le feu sacré pour faire un truc plus poussé :/

ggjulio: Salut, vous entendez quoi par flow ? Le deplacement des joueurs ? Ou un truc en rapport avec les branches ?

Boulet: un fois de plus le plus sur est de prendre le temps t0 à la fin de la lecture de la premiere ligne

Boulet: C'est pas ça qui va te foirer trop ton chrono

YannDev: bah ça me faisait foirer le chrono...

YannDev: ya un facteur 100 lol

Boulet: (enfin premier truc hein en Java prmier next....)

YannDev: merci beaucoup :)

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

dbdr: trouver la derniere pellet!

timoru: merci beaucoup Boulet, je me prenais 50-150ms aussi pour lire les inputs sans trop comprendre x)

R4N4R4M4: Les bugs tordus : tu initialises ta grille à 0, et quand tu l'affiches, elle est pas à 0... :(

dbdr: en C, faut pas s'étonner outre mesure de ce genre de choses

gbiebuyc: memset

BigUP: elle est magique cette erreur :

BigUP: Bad command: Invalid Input: Expected MOVE <id> <x> <y> or SPEED <id> or SWITCH <id> <type(ROCK|PAPER|SCISSORS)> but got 'SWITCH ROCK'

neorel: il manque le pacId ;)

BigUP: bien vu ! ;)

BigUP: c'etait pour voir si tout le monde suivait !

neorel: ^^

BigUP: bon voila, avec le Switch, je passe d'une loose a une win ;)

Alshock: quelqu'un sait pourquoi PEP propose "a not in b" à "not a in b" en python ?

BigUP: arf ! parcontre mes Pac son en Mannequin challenge mode ! :)

Alshock: PEP8 en tout cas, ça me perturbe parce que j'arrive pas à voir de différence conceptuelle

Alshock: @BigUP c'est un défilé ? Où ils twerkent comme des sauvages ?

BigUP: Il font la statue

BigUP: perso, j'ai toujours utilisé a not in b, apres faudrait bencher pour voir s'il y a une différence de vitesse

GhostDev: :sweat_smile: ce contest c'est transform challenge

GhostDev: tu t es trompe de challenge BigUP

BigUP: ha merde ! sur le swtich, le ability_cooldown reste a 0 ?

BigUP: hum, pourtant non, ca devrait etre 10 selon l'ennoncé

GhostDev: les coders sont en avance sur le Spring Switch Challenge 2020

BigUP: hop, voyons si mon IA est toujours aussi efficace avec le Switch

adriens: hello tout le monde. Savez-vous quelle version de C++ est utilisée pour compiler svp ?

GhostDev: c++ g++ 9.2.1 mode C++17 Avec les bibliothèques ‑lm, ‑lpthread, ‑ldl, ‑lcrypt

adriens: Super, merci GhostDev !

GhostDev: #faq

GhostDev: :relaxed:

adriens: Justement, je ne trouve pas la FAQ ;)

GhostDev: impossible d ajouter a la faq ou ce trouve la faq

adriens: :thinking:

adriens: Ah j'ai trouvé une FAQ. Il manque une info: est-ce que l'adversaire peut lire la sortie stderr de mon programme ?

VincentBab: non c'est privé ^^

adriens: (pas en temps réel, sur le replay des parties)

adriens: d'acc, merci :)

Alshock: l'adversaire ne peut pas non plus lire tes commentaires en stdout pendant la partie

Alshock: par contre ça il le voit lui aussi sur le replay

Alshock: bon allez, un puysh avec toujours des bugs mais un peu monis qu'est-ce queça donne ?

Boulet: Woa calmez vos submits

Boulet: je pars une heure et paf 20 places

Alshock: Ah, j'ai donc un pac.speec() dans mon code, pas étonnant que parfois ça timeout en random

Default avatar.png azimut80: qui a pu trouve ce probleme?

Boulet: et surtout pourquoi parfois ça passe

Boulet: ????

Alshock: Bienvenue en interprété

Boulet: et

Boulet: ????

Alshock: tant qu'on n'atteint pas la ligne ça va pas crash

Boulet: c'est pas que de l'interprété ça

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

AutomatonNN: ^^

Alshock: c'est de l'interprété pas parsé ^^

Automaton2000: ça peut faire un truc du genre

Alshock: Yo BlaiseEbuth la forme ?

Boulet: c'est encore une craderie pythonienne

Alshock: Eh ouais, le pire c'est que le linter n'a pas relevé

Boulet: :nauseated_face:

Alshock: je sais pas pourquoi

BlaiseEbuth: Ca va, ca va. Code drop, et c'est reparti

Alshock: Aaaaah il me rend fouuuu !

Alshock: Il fonce sur sa pellet, et une fois dessus, il s'arrête et l'observe en bavant !

Alshock: et après il fait des petits tours autour, il joue avec mes nerfs

egaetan: pourquoi mon pac debile veut passer dans le mur !?

BlaiseEbuth: Justement parce qu'il est débile ?

egaetan: #define NONE 8

egaetan: #define NORTH 1

egaetan: ...

egaetan: #define EAST 8

**egaetan se prend le mur tout seul

Alshock: ah ah ah xD

Alshock: Enums FTW

Alshock: enfin en C++ au moins, il te dira que t'as un conflit de type dans ce genre de cas

Valbou: Peut-on cumuler une instruction MOVE et une instruction SPEED et/ou SWITCH pour un même pac dans le même tour ?

egaetan: non

Valbou: simple et efficace merci ;)

Alshock: Ah mais yes, moi aussi j'essaye de traverser les murs !

Default avatar.png RoanixS: Je ne comprends pas très bien comment utiliser le speed...

Default avatar.png RoanixS: cela permet de jouer 2 fois dans un tour ?

Default avatar.png RoanixS: (2 MOVE donc ?)

Haashi: pas exactement

Haashi: ca te permet de te déplacer a une case qui est a 2 de distances de toi

egaetan: mais ça y ressemble

Default avatar.png RoanixS: donc une seule instruction move

Alshock: tu ne peux pas faire demi-tour pendant un tour c'est ça la nuance

Valbou: intéressant, et en utilisant le djikstra du système l'on peut tourner quand même ?

BlaiseEbuth: Bah si, dans un tour y'a deux demis tours...

Alshock: Valbou tourner oui, faire demi-tour non

Valbou: ;)

Default avatar.png RoanixS: Ok merci, je vais check ça :)

Alshock: @Valbou nous on est des programmeurs entiers

Alshock: -Valnou+BlaiseEbuth

Valbou: @Alshock qu'entends tu par entier, genre qui réinvente la roue ? :P

BlaiseEbuth: float(Alshock)

Haashi: bon l'approche diffusion marchouille bien, mais prendre en compte l'ennemi ca améliore quedalle c'est un code qui fait top silver, mais pas plus :( 3h a la poubelle

Alshock: @Valbou oui, car je suis aussi un programmeur Gerbille

dbdr: Haashi, apprendre qu'un truc marche pas, c'est du progres aussi

dbdr: meme si c'est decevant

Haashi: enfaite le plus decevant

Haashi: c'est que ma version naive de la diffusion performe mieux que quand je prend en compte le pierre feuille ciseau

Haashi: avant j'incitais mes pacs a éviter tous les pacs ennemis

Haashi: la j'incite a manger les pacs ennemis

Haashi: mais semblerait qu'il perde son temps a courir après au lieu de bouffer

Alshock: ah oui clairement chercher la guerre ça a l'air bien que si tu le gères vraiment

Alshock: une attaque lancée à la zob c'est trop facile à éviter et ça coûte trop cher

egaetan: On peut attaquer ?

dbdr: TORPEDO

egaetan: merci dbdr

dbdr: SWITCH, sinon

RomanceDawn: TORPEDO :nauseated_face:

Alshock: bah tu SWITCh ou tu SPEED si t'es déjà bon et tu cours après l'autre en le coinçant

dbdr: au fait, il s'est passé quoi pour toi egaetan sur OOC?

Alshock: mais c'est un truc qui marche que dans des cas spécifiques ou quand t'as deux pacs à proximité

dbdr: pas terminé ton rewrite en C++?

Stilgart: et l'autre switch au dernier moment => epic fail

Theo: Hello. Question stupide. Est ce que les pacs enemis te cachent la vue pour "voir" les pastilles dans une ligne droite?

egaetan: dbdr, j'ai eu d'autres occupations, j'ai pas pu continuer

dbdr: ok

egaetan: Theo non

Theo: thx !

Alshock: @Stilgart clairement perso j'attaque que si j'ai déjà le bon type que l'autre est à 1 seule case que j'ai SPEED et qu'il a pas son abilité ^^

egaetan: plus de 2k en bronze, c'est l'enfer à remonter le leaderboard

Default avatar.png hugothierry: Bonjour je debute en c++ et je suis dans le mode code royale, j'aimerais savoir si il y a un moyen d'avoir acces aux infos de chaque site en dehors de la boucle for

Stilgart: Alshock: ça veut dire jamais ça

dbdr: j'attaque jamais :peace:

dbdr: (vrai jamais)

Stilgart: ça fait silver à HS le peaceful

egaetan: moi non plus

Alshock: @Stilgart complètement, mais j'ai quand même mis un "if l'adversaire est trop con, bouffe-le"

Alshock: et "if il t'attaque, défend"

Alshock: question existentielle : quel caractère pour montrer un chemin ?

Alshock: ¤ ?

egaetan: if trop con bouffe le ? ça ressemble à quoi ?

BlaiseEbuth: hugothierry, quelle boucle for ?

BigUP: egaetan, a un fail ?

Alshock: @egaetan "j'attaque que si j'ai déjà le bon type que l'autre est à 1 seule case que j'ai SPEED et qu'il a pas son abilité"

egaetan: et ça existe ça ?

Alshock: aucune idée, j'en ai viré le cas où je le poursuivais sans SPEED depuis mon dernier test

BigUP: Alshock, safe kill en quelque sorte

BigUP: forcément, si je me transforme en ROCK lorsque l'autre est ciseau, ca marche moins bien

BigUP: est feuille, je voulais dire

pierre31: Je ne sais pas si plus de 2000 en bronze c'est déjà arrivé, effet confinement peut-être

Zanbez: Effet classement entreprise/école

Zanbez: + beaucoup de pub pour un contest.

egaetan: + des lots ?

AdrienGadefait: mm

TidyMaze: je n'aurais pas dû la perdre celle là, vous avez un algo pour du multi-agent path finding ? https://www.codingame.com/share-replay/459541674

YannT: https://www.codingame.com/share-replay/459548469 grrr les collisions pourries

Lulemair: https://www.codingame.com/replay/459448839 le bot bloque mon Pacman dans une cave sans issue pendant 100 tours x)

Neumann: TidyMaze : je pense pas que ça existe

Neumann: Bricoler un truc avec du Voronoi ça marche pas trop mal ceci dit

Alshock: @Lulemair c'est vra iqu'un mec qui fait ça et qui n'utilise pas son abilité je vois pas comment sortir sans se suicider

egaetan: tu râles pas encore contre les perfs Neumann ?

egaetan: ça va ?

Neumann: J'en suis pas à ce stade :D Ca va et toi ?

TidyMaze: j'avais trouvé ça, un path finding independant par unité puis on bloque les cases pour 1 seul au temps T et on relance un PF pour les autres https://www.youtube.com/watch?v=b5KMm729b_4&feature=youtu.be

TidyMaze: mais couteux

BLVCK971: Bonjour vous sauriez comment l'on rajoute son logo à une entreprise ?

egaetan: BLVCK971 change boite ?

Neumann: BLVCK971: faut voir avec CG, je pense pas que les users puissent le faire

YannT: bon voilà j'ai rentré SPEED au chasse-pied dans mon heuristique toute cramée pour la rigolade

BLVCK971: Ok merci ^^

YannT: donc speed même mal fait c'est un gros gain hein ahah

Mandricx: hey guys ! j'ai vraiment trop du mal ! comment est-ce que vous faites vous pour savoir si un pac est mangé ou non ?

BigUP: Ou la !! Gros start !

Alshock: ah ah, dans certains cas c'est compliqué

Valbou: je vérifie s'il est toujours dans ma liste de pacs ;)

Snef: Si ces pour les tiens tu l'a plus dans tes input.. si c'est un ennemi faut faire des check

Mandricx: ah oui c'est la merde ? haha

BigUP: 13 Win d'affilé, et maintenant serial loose !

BigUP: ;)

Snef: si il disparais sans avoir pris un angle tu peux considérer qu'il est mort..

Snef: -s +t

Valbou: mdr

Alshock: Bah ça dépend de ce que tu veux dire par là Mandricx, par exemple si tu tournes au coin et que tu bouffes un pac adverse que tu voyais pas, bah tu le sauras jamais

Piloupilou67: j'ai un soucis, erreur 'has not provided line in time' alors que dans mes simulations j'ai 8 millisecondes ?

Alshock: si tu veux prédire si un pac va mourir au prochain tour, ça peut dépendre de l'ordre collision/assassinat et c'est pas toujorus évident non plus

Neumann: Mauvais format d'output Piloupilou67

Piloupilou67: merci @Neumann

Alshock: @Piloupilou67 soit t'as pas output une ligne, soit tu l'as pas terminée par un "\n" soit t'as lu un input de trop

Neumann: Ou mauvais calcul du temps écoulé (démarrer le timer après la lecture du premier input)

Alshock: ah ou le format aussi en feffet

Mandricx: @Alshock oui ok ! je voulais checker si il y avais pas une liste state ou un truc comme ca que je voyais pas pour pas me compliquer la life :/

Alshock: oui mais 8 ms il a de la marge quand même

Neumann: Encore faut-il que ça soit vraiment 8ms

Neumann: Si son timer est pas au bon endroit c'est pas le cas

Alshock: ouais mais je veux dire, à moins qu'il ait vraiment raté un GROS morceau de son code, c'est probablement pas un timeout

Neumann: On sait jamais :D

Alshock: et ça, on en est sûr ?

Neumann: Oui.

Alshock: ERROR. plz reboot.

YannT: lol top20

YannT: et c'est pas faute de pas avoir essayé...

YannT: ça grimpe encore bien les heuristiques roulées sous les aisselles à ce stade

Neumann: dat flex

YannT: je regarde des replays mes pacs en sont encore à se rentrer dedans quoi...

egaetan: une boucle infinie ça arrive vite aussi

Alshock: quand vous bloquez face à un adversaire invisible dans un coin, vous le prenez en compte ? Je vois pas comment le détecter sans mémoire et j'ai pas encore ça

BigUP: tu veux lui faire quoi a cet adversaire ?

Alshock: Bah principalement arrêter de rester coincé contre lui pendant 150 tours

Valbou: ben change de direction non ?

Valbou: 😅

Valbou: un programmeur entier hein...

BlaiseEbuth: :grin:

Alshock: ouais mais pour l'instant mon bot ne sait pas qu'il est bloqué, il ne sait pas qu'il était déjà à cette position au tour précédent. C'est pour ça que je demande aux gens si leur heuristique roulée sous les aisselles tient compte de ça comme dit YannT, voir si c'est rentable ou si osef l'adversaire y perd autant de temps que moi

Alshock: @Valbou c'est parce que BlaiseEbuth parlait de jouer des demi-tours que j'ai dit ça :P

BigUP: Alshock, s'il est invisible, il est obsolete au bout de 3/4 tours non ?

Alshock: obsolète ?

YannT: si t'as pas de simu pour gérer et éviter correctement les collisions, le mieux c'est p'tet juste de comparer l'ancien ordre à la nouvelle position et si c'est pas bon (= y'a eu collision) en donner un autre

YannT: enfin je dis ça je l'ai pas fait moi

Alshock: Yep, je mets ça dans les cartons

R4N4R4M4: J'ai fait ça ce matin et j'ai gagné 500 places :D

Default avatar.png Bruh86: Comment on fait pour monter de division ? Je suis 2eme du classement devant le boss, pourtant je monte pas

Alshock: @Bruh86 faut attendre que tes matches soient finis

Default avatar.png GaryAflalo: Bonjour , je suis nouveau . Pouvons nous augmenter au classemnt avec l'onglet "Entrainement" ou faut t'-il faire des clash ?

Alshock: le classement avec marqué vous êtes XXXème" c'est le classement PvP donc clashs/multis/contests/optis

Palmipedus: tu peut progresser au classement avec tous les exos dans l'onglet Compete

Alshock: le niveau lui il s'obtient en faisant tout, et aussi avec les puzzles solo

Default avatar.png GaryAflalo: ça marche merci bien , il faut absolument finir premier d'un clash pour "monter au classement" ?

Alshock: je crois pas non, même si je connais ma lles rouages du classement CoC

Alshock: ahem... Parfois j'arrive à timeout au tour 1 entre "Hello" et "Hola" de ce parsing (gros debugging je sais)

Alshock: http://chat.codingame.com/pastebin/f333d551-17ee-429d-b41f-73a8ed48d8a6

Alshock: il y a quelque chose d'évident que je fais mal ?

BlaiseEbuth: Ouai, tu codes en python :grin:

Default avatar.png JBM: mérité

mrBen: :grin:

Alshock: BlaiseEbuth t'es censé être le diable ça te fait pas plaisir que je code en Python ?

Valbou: Je n'observe pas de timeout particulier avec Python, je dirais le problème est entre la chaise et le clavier :P

Alshock: Bah moi aussi en temps normal, mais sur certains matches il décide juste que je dois mourir

Alshock: et dans les inputs du débuts quoi j'ai encore rien pu foutre en l'air

BlaiseEbuth: Bah si. Mais les plaintes c'est pas à moi qu'il faut les adresser. :smiling_imp:

Default avatar.png JBM: https://www.twitch.tv/cg_jbm un petit stream pour voir ce que ça vaut

MaxCol06: ?

Alshock: les 2000 personnes en bronze JBM dévoile une IA Legend pour le contest en cours sur son stream ! (j'ai raté ma vocation, j'aurais dû faire commercial)

Default avatar.png BenLvre: @Alshock on va regarder ça ^^

piw4i: on sent les vrais qui codent sous Emacs :D

BlaiseEbuth: J' ai pas de TO avec ton truc Alshock

Zorg1: "darkstar" c'est pas le hostname par défaut ça ?

Alshock: @BlaiseEbuth comment on récupère la seed d'un replay ?

Alshock: Je suis con

RomanceDawn: AutomatonNN ?

AutomatonNN: oui j'ai pas compris comment tu peux faire un truc du tout dans ton code

Alshock: @BlaiseEbuth seed=1518694559915020030

Alshock: quand je regarde la seed des options c'est bien celle de ma partie hein ?

RomanceDawn: Automaton2000?

RomanceDawn: oui Alshock

Automaton2000: je me demande si je ne m'abuse

BlaiseEbuth: Bon. Bah même avec ta seed ça marche très bien.

Alshock: m'enfin...

Alshock: Pourquoi y a que chez moi que ça se fiche de moi ?

BlaiseEbuth: Peut être que le TO viens d'ailleurs

Alshock: et empêche le print comme avec le buffer en C ? Possible, j'avais pas envisagé ça sur stderr

Alshock: Ok ça doit venir d'ailleurs... mais comment se peut-ce ? Bon je vais investiguer, désolé pour la prise de temps

MaxCol06: http://chat.codingame.com/pastebin/c3e7ddec-fde7-4159-b56d-cebadb4013ba

Alshock: ça en fait des "?"

Zorg1: il est dans l'interrogation le garçon, faut croire

Zorg1: Automaton2000 fais lui donc une réponse

Automaton2000: rien à voir avec le fait que ce soit possible

RomanceDawn: Automaton2000 insuffle moi l'inspiration

Automaton2000: je n'ai jamais réussi à faire mieux

RomanceDawn: Automaton2000 fait moi une devinette

Automaton2000: bon il me reste a faire

gregballot: Dites moi messieurs dames, y'a moyen de pas crop les log d'erreurs ? Je peux pas debug en paix dans l'IDE

BlaiseEbuth: Code en local

gregballot: Flemme de ouf de generer des maps et tout :(

gregballot: Mais bon faudra bien faut croire

dbdr: le referee donne les infos sur un pac ennemi en train de mourrir?

dbdr: c'est quoi ce bazar

dbdr: deux pacs sur la meme case

Fangel: comment ça dbdr ?

dbdr: je recois mon pac et son pac

dbdr: sur la meme case

dbdr: en entrée

dbdr: 128 133 5 0 1 1 7 ROCK 4 8 1 1 19 5 PAPER 4 8 2 1 25 1 SCISSORS 4 8 3 1 11 3 ROCK 4 8 4 1 8 1 PAPER 4 8 1 16 5 1

YannT: Oo

YannT: j'ai jamais eu le cas

dbdr: ah non

dbdr: faites pas attention, je dis npq

Zorg1: faut dormir la nuit

Alshock: la quoi ?

Zorg1: sinon la fatigue elle s'accumule :p

Zorg1: Alshock : quand il y a plus le gros truc jaune dans le ciel

Zorg1: quoi qu'avec les nuages

Alshock: @Zorg1 définis "ciel" :P

Zorg1: "ce qui est en haut"

Zorg1: on ce croirait dans l'Incal

Alshock: et bah le ciel il mériterait un bon dépoussiérage

Zorg1: bon si je repush mon code identique je perds combien de places ?

Snef: j'annonce 80

MaxCol06: http://chat.codingame.com/pastebin/f020bb64-820b-4302-b526-efe702bfc3b4

Alshock: 80 ? Je me couche

MaxCol06: :joy:

Valbou: petit joueur 😗 🎶

Default avatar.png Sgregory: Hey Il y a moyen d'avoir les logs et le jeu cote a cote ? Si j'aggrandis les logs je vois plus le jeu =/

Alshock: écoute je relancerai le jour où je crasherai pas en random au premier tour, mais en attendant de comprendre ce qui peut bien faire ça, je reste calme

Alshock: je crois pas Sgregory

Default avatar.png Sgregory: :(

Alshock: tu peux pas non plus demander aux logs d'arrêter de mettre le numéro de tour en énorme par dessus tes logs ^^

Valbou: cool pour le moment je ne perds que 200 places ^^

Stilgart: bon, les ligues à 2k personnes ça devrait être interdit

BlaiseEbuth: Sgregory c'est possible, si tu codes en local, utilises chrome+cgsync+cgenhancer

VincentBab: ptin je comprend pas, je corrige un crash qui arrive dans de tres rare situation et je perd 40 palces lool

Stilgart: VincentBab: oui, tu comprends pas la notion de variance

Stilgart: ni ta chance

joelthelion: trop de monde en bronze VincentBab :)

Stilgart: avec une ligue à 2k, la variance elle doit facilement être à 200 places

Alshock: En temps normal je te dirais que ton fix a surement détérioré un autre comportement, mais vu la taille de la ligue c'est surement juste du bruit

Stilgart: donc perdre 40 places c'est pas si pire

VincentBab: hum ok

Alshock: @Stilgart après la variance varie aussi selon ton classement

VincentBab: le fix c'est jsute un if (x!=-1 && y!=-1)

Stilgart: après, tu peux me faire remarquer qu'à linverse, tu aurais pu gagner 200 places :D

joelthelion: Stilgart: pour éviter ce problème il suffit de gagner toutes ses parties :-p

Alshock: Stilgart et potentiellement devenir -100ème :D

BlaiseEbuth: La variance varie... Donc tout va bien.

VincentBab: hum si je gagne 200 place en etant 68eme je suis content :D

Stilgart: that's the problem

Stilgart: avec un tel rank, tu ne peux que perdre des places

R1FA: Quelqu'un peut m'expliquer ce qu'il se passe au tour 18 ??? https://www.codingame.com/replay/459615104

Stilgart: surtout avec un fix mineur

Alshock: non il peut en gagner jusqu'à 67 si mes calculs sont bons

Stilgart: R1FA: facile

VincentBab: mdr

Default avatar.png JBM: wood 1...

pierre31: bon quand on utilise une variable côté en int pour stocker le max d'un score codé en float, c'est sûr ça a un impact...

Stilgart: R1FA: rouge essaie de mettre deux pacs sur la même case => renvoi aux cases de départ

Stilgart: bleu essaie de mettre un caillou sur cette même case, mais à cause du caillou bleu => renvoi sur la case de départ aussi

Stilgart: sauf que bleu il a pris de l'EPO

Stilgart: donc il re-essaie grace à sa vitesse de venir sur la case, désormais libre

Stilgart: et donc il y va

Default avatar.png JBM: promu \o/

Alshock: j'aime beaucoup la strat de romka de prendre sa pellet entre les deux rouges puis de se barrer en les laissant là

Stilgart: par contre... ce qui est louche c'est que rouge aussi il est dopé :/

VincentBab: Silgart en fait c'est plutot le sciceau bleu qui n'est pas afecté par la collision car il peu manger/etre mangé par les deux rouge. Et les deux rouge se repousse

VincentBab: non ?

Alshock: @Stilgart le bleu n'a jamais été bump hein

Stilgart: j'imagine que bleu il a visé deux cases devant et pas rouge

Alshock: ouaip vincent

Stilgart: ha mais merde... oui

Stilgart: le bleu c'est un ciseau, pas un caillou

Alshock: @Stilgart les rouges se bumpent deux fois dans le tour, et le bleu n'a pas de collision parce qu'il est en situation de manger avec les deux autres

Stilgart: donnez moi un mode debug :(

Stilgart: Alshock: faut arrêter avec ça...

Stilgart: il y a un caillou rouge

Alshock: Moi je veux bien arrêter dès que le referee arrête de le faire

Stilgart: va m'expliquer que le ciseau bleu mange le caillou rouge

Alshock: le caillou rouge mange le ciseau bleu

Stilgart: dans ce sens là ok

Alshock: donc ils ne se collisionnent pas

Stilgart: (ce qui revient à mon "ha merde... bleu c'est pas un caillou)

Stilgart: +"

Stilgart: oui

Stilgart: mais c'est pas parce que bleu peu manger rouge

Stilgart: peut*

Alshock: c'est vrai que le design des ciseaux aurait pu être un poil moins rond, qu'on les reconnaisse mieux

egaetan: les collisions c'est le mal

Stilgart: avec la speed je me fais avoir souvent

Zorg1: j'aime bien le design des pacs en fait ;-)

Alshock: oui ils sont très jolis

Stilgart: globalement oui, mais les ciseaux sont trop ronds

BlaiseEbuth: Les pacs ont des collisions de type semi-élastique avec un minimum de 0.1

Stilgart: et je confonds avec les cailloux

Alshock: xD

dbdr: l'effet visuel pour les boosts est joli aussi

Alshock: faut regarder leurs fesses pour les distinguer à coup sûr

Stilgart: BlaiseEbuth: nan, tu confonds avec les pods

Zakaoai: Question : la visibilité des pacs en bronze traverse les portails pour voir de l'autre coté du plateau ?

**Stilgart va tenter un MOVE 1 x y BOOST

Alshock: oui Zanbez

Alshock: Zakaoai *

Zakaoai: Thx

BlaiseEbuth: Du coup on peut pas faire de -3vel sur les pacs ? Déçu...

Valbou: Le classement est moins interressant que le score fourni pour suivre une progression

Stilgart: le score il faut s'en méfier aussi

Stilgart: sur 2 runs consécutifs c'est décent comme comparaison

Stilgart: d'une journée à l'autre par contre...

Valbou: je ne sais pas trop comment il est calculé mais il oscille sur un faible ordre de grandeur non ?

Alshock: Pour moi le score est littéralement aussi fiable que le classement

Alshock: bah c'est ton élo, il monte quand tu gagnes et diminue quand tu descends en fonction de l'écart de score entre toi et l'adversaire

Stilgart: Valbou: il dépend de celui de tes adversaires... donc si le niveau augmente ou baisse, le score suit la même logique

Alshock: Après pour les calculs exacts, il me semble qu'ils étaient décrits quelque part

Stilgart: niveau = niveau des gens de la ligue

dbdr: ENS Lyon 7ème :)

Valbou: @Stilgart: ah... merci pour l'info

Stilgart: dbdr: attends, je viens de m'arracher là... gain de 1000 places

dbdr: gg

Stilgart: encore un bond comme àa et je suis en légende avant ce soir

dwarfie: Autodidacte manque de participant inscrit ;)

Stilgart: ça*

dbdr: et je ne doute pas que ça va continuer :)

Valbou: je pourrais en être ^^

Stilgart: en vrai... je suis déçu de mon dummy

dbdr: tiens JBM a submit

egaetan: vous êtes que 3 c'est normal que vous soyez mal classés

Default avatar.png JBM: dbdr: ça t'étonne?

Stilgart: egaetan: on n'a pas d'amis, c'est pour ça

dbdr: j'avais pas vu avant

Default avatar.png JBM: https://www.twitch.tv/cg_jbm

Stilgart: AutomatonNN: file nous un coup de main

AutomatonNN: oui

Bleizig: Vous savez comment font les entreprises pour avoir leur logo dans le classement?

Stilgart: AutomatonNN: merci mon grand

AutomatonNN: oui

dbdr: on t'attend un peu plus haut ;)

Default avatar.png JBM: j'arrive, j'arrive

dwarfie: AutomatonNN : que de la gueule ...

dbdr: :+1:

AutomatonNN: soit tu parles de quelqu'un pour le temps pour les chevaux de contest sur le chat ?

Stilgart: dwarfie: tu nous l'as cassé, :(

dwarfie: AutomatonNN : un pacgum pour te remettre sur pied ?

AutomatonNN: oui

Stilgart: ouf

dwarfie: :D

BlaiseEbuth: Ah voilà, trouvée : https://i.imgur.com/klbqfqS.jpg

Stilgart: c'est pas beau de se moquer de Shakira

BlaiseEbuth: pacman a fait wakawaka avant elle

Alshock: bon maintenant j'ai une bnaque de seeds sur lesquelles je bug, je vais essayer de trouver le dénominateur commun

BlaiseEbuth: Ton bug était en local ou sur cg ?

Default avatar.png ZobZob: C'est juste "pas de chance" de se faire manger dans un angle, non ?

Alshock: les deux, au moins il a la gentillesse d'être reproductible

Stilgart: Alshock: c'est probablement 1

**Stilgart sort

Alshock: par contre ne parle pas de lui au passé BlaiseEbuth tu retournes le couteau dans la plaie

dbdr: Stilgart :D

**Alshock go cry in a corner

dbdr: ton bug aura été en local?

dbdr: tiens tiens, YannT dans le top 20

Alshock: Ah ya ptêtre quiproquo, j'ai pas tenté de le lancer sur mon PC

Alshock: tiens pourquoi j'ai pas fait ça ?

YannT: dbdr: promis j'ai pas fait exprès hein

YannT: j'ai juste implémenté SPEED pour rigoler dans mon heuristique cramée

dbdr: bien sur bien sur

dbdr: top 20 malgré lui

YannT: mais à par ajouter des ifs je pense que j'ai fini là (sauf si je trouve le courage de faire la simu et une idée d'algo potable)

YannT: pour l'instant j'ai ni l'un ni l'autre :p

Lolopez: coucou, je debarque sur la ligue bronze, est ce que je peux faire 2 actions le meme tour genre speed et move ou c'est juste une par tour?

dbdr: une

dbdr: par pac

Lolopez: dac merci

Default avatar.png JBM: bronze \o/

YannT: :tada:

egaetan: gg JBM welcome

YannT: et avec ton language qui ressemble à de la magie noire en plus

dbdr: banche

dbdr: *blanche :D

Default avatar.png JBM: pure

dbdr: la magie noire dans les langages, c'est...

Zorg1: s'il faut sacrifier des trucs c'est noire

Default avatar.png JBM: le terme adapté

dbdr: ^

dbdr: perl?

Zorg1: C++ je dirais mais j'ai un gros apriori négatif

dbdr: oui, ça marche bien

Zorg1: (et JBM va me dire qu'en dix ans c'est + le même langage)

dbdr: enfin surtout le coté noir

dbdr: maintenant il est encore plus gros

dbdr: gg

Zorg1: tu sacrifie ta santé mentale

BlaiseEbuth: Et java tu sacrifies ton amour propre...

Alshock: "Improve your bot

In order to reach the next league your need to be better ranked than the boss. Improve your code to be promoted!" Le jeu se fout de ma gueule là on est d'accord ?

Magus: je me souviens pas avoir sacrifié quoi que ce soit dans tous les langages que je connais :D

dbdr: noob

Magus: tu savais pas Alshock ? le secret pour gagner c'est de savoir coder

Stilgart: Automaton2000: fix la mémoire de Magus

Automaton2000: y'a un truc que tu fais des trucs de base

dbdr: JBM quand il passe il passe

YannT: CSS, c'est pas un language à proprement parler mais ça peut facilement rendre fou :)

dbdr: CSS c'est turing complet non?

Alshock: De manière générale rendre fou c'est plutôt accessible

YannT: je crois pas?

dbdr: https://accodeing.com/blog/2015/css3-proven-to-be-turing-complete

Alshock: je crois que si avec les actions su ::before et ::after ils avaient fait un truc dugenre

Magus: ah parce que des gens se sont embêtés à le prouver ? Oo

dbdr: "to make it “more” Turing complete than C" ow

dbdr: wow

Stilgart: wow

Stilgart: c'est qui qui est assez con pour dire une connerie pareille ?

dbdr: il y a des guillements

Magus: comment on peut être plus turing complete que turing complete ?

Stilgart: même AutomatonNN il ne l'a fait pas celle là

Alshock: si on a besoin d'"un con je suis dans le coin hésitez pas

dbdr: faut voir ce que ça dénote...

AutomatonNN: vous avez une idée de comment tu veux que je te pousse ?

Stilgart: AutomatonNN: violemment, et en légende, si possible

AutomatonNN: comment est ton CSB ?

Stilgart: en légende :)

dbdr: "But C without I/O isn’t really Turing complete because any implementation is required to decide on a pointer length and that limits how much memory can be stored."

Stilgart: heu... kamoulox

YannT: fst $ head $ sortBy (liftA2 (<>))

Stilgart: YannT: c'est quoi ce Haskell ?

YannT: vous allez pas me dire que c'est pas de la magie noire ça hein

YannT: on en a brulé pour moins que ça!

Alshock: Mais, turing complete c'est avec une taille arbitraire pas avec une taille redimensionnable

YannT: c'est celui de JBM

Stilgart: YannT: ça marche au moins ?

YannT: je sais pas c'est sur son stream

dbdr: j'ai cru une seconde que YannY avait appris Haskell :)

YannT: moi je dis juste c'est aussi comme ça qu'on invoke belzebub c'est tout

Zorg1: ah oui le '$' c'est pour éviter de mettre des parenthèses partout

Stilgart: le <> je vois pas ce qu'il fout là

Zorg1: ça doit être un des rares trucs que j'ai pigé

Stilgart: il a du utiliser un Sum en guise de deuxième champ

Alshock: xD vous me rassurez que je suis pas le seul à regarder ce qu'il fait comme si c'était un langage ancien très complexe

YannT: words <$> getLine :: IO [Int]

YannT: kamulox

Stilgart: marche pas ça

Zorg1: tu mets une robe, et tu déclames un truc en araméen/grec ancien (tu peux mixer si tu veux)

Stilgart: c'est de type IO [String]

Alshock: là, ce symbole "<$>" peut référer aux agriculteur ou au dieu Maltis qui règle sur les montagnes, ça parle donc surement de volcan

YannT: Stilgart: je copie des trucs de son stream hein :p

Stilgart: nan

Stilgart: tu as vraiment oublié un bout là

Stilgart: c'est "map read . words <$> getLine"

YannT: toutes mes confuses, c'est vrai que c'est mieux là

YannT: :p

Stilgart: clairement oui, il faut parser les mots quand même

dbdr: fix$(<$>)<$>(:)<*>((<$>((:[{- thor's mother -}])<$>))(=<<)<$>(*)<$>(*2))$1

YannT: il a bien le :: IO [Int] au bout cela dit

Stilgart: oui, mais ça peut être IO [Int] que avec un "map xxx ." au début

Stilgart: enfin, à droite de la <-

YannT: évidement ;)

Stilgart: (et ça pour le coup, c'est du Haskell compréhensible par un humain... à par le <$> au lieu de $)

Snef: Zorg1 tu gères les collisions ? ou tu moins tu évites de te suicider ?

Snef: -t +d

YannT: flip fix gridθ $ \loop grid do ->

dwarfie: [CG]All ... les autodidactes sont pas contents de ne pas pouvoir former une equipe !!!

dbdr: pq ils peuvent pas?

Alshock: à mort louis croix V bâton !

BlaiseEbuth: Viens avec nous dwarfie

dwarfie: on a beau mettre Autodidacte comme ecole , on se voit pas les uns les autres ...

dbdr: :(

Zorg1: snef : j'évite de rentrer dans les pacs que ce soit moi ou les autres

Karocyt_aka_Kevazoul: Quand le couloir où on est ressort de l'autre côté de la carte, on voit les pellets de l'autre côté aussi ?

Zorg1: par contre les rencontres dans un croisement sans visibilité

Vintarel: oui on les voit

Karocyt_aka_Kevazoul: ok... intégrer ça m'a fait perdre 200 places x)

dbdr: faut intégrer quoi?

Zorg1: le fait que la vue passe les bords

Karocyt_aka_Kevazoul: yep

LimaceHurlante: dwarfie si on est 4

dwarfie: pour moi et XLP , on est pas dans la meme team ...

dbdr: XLP: school = "Autodidacte - Paris"

dbdr: forcément...

Stilgart: go go go dummy_v2

Stilgart: 9/10 en first 10

dbdr: gogogo Stilgart!

Snef: Est ce que quelqu'un est genre top 100-150 sans la gestion dévitement de pac ou de kill ?

dbdr: ah mais t'es en C++?

dbdr: Stilgart

Stilgart: je viens d'ajouter un fix minimal sur la question

Stilgart: dbdr: chut

dbdr: :no_mouth:

dbdr: fix minimal + réécriture totale :D

Stilgart: 18/20, pas mal ce dummy... il fera l'affaire

YannT: JBM: merci pour l'explication :)

dbdr: pq dummy?

dwarfie: dbdr ... c'est un essai qu'il viens de faire ... c'est la liste genere par la recherche qui se plante a priori

Stilgart: je suis en C++ depuis vendredi matin en fait

YannT: (donc on confirme c'est de la magie noire)

BigUP: haha !! juste devant le meilleur collègue ;)

dwarfie: bon , va falloir que je rale ... c'est clairement soit un bug de CG , soit une volonté d'empecher les autodidacte d'avoir une equipe Top 10 ;)

LimaceHurlante: :laughing:

dwarfie: sans riire LimaceHurlante ... si on prend les 4 , on est peut etre meme top 5 pour l'instant ;)

YannT: ahahah je pensais comprendre BFS plutot bien jusqu'à ce que je le vois écrit en haskell :D

Stilgart: YannT: alors de mémoire

LimaceHurlante: ca serait pas grâce à moi mais ca serait super :)

Stilgart: même moi j'avais lutter sur le bfs de jbm

YannT: Stilgart: regarde sur le stream de JBM, il est en train de faire des incantations là

YannT: bfs cl (path@(p:_):q)

Stilgart: ça c'est propre

YannT: | p `S.member` cl = bfs cl q

Stilgart: pour quiconque a fait un peu de fonctionnel

YannT: c'est un kamoulox de tous les caractères spéciaux du clavier le language

Alshock: ça manque de '£' non ?

Stilgart: nan, ça dit juste que le 2e arg, c'est une liste de liste

dbdr: tu confonds avec perl

Stilgart: que le 1er elt de cette liste c'est path

Stilgart: et que le 1er elt de path c'est p

Stilgart: et que derrière path, la sous-liste s'appelle q

YannT: | otherwise = (p,grid!p) : bfs cl' (q ++ q')

Stilgart: je sais pas pourquoi il a une liste de liste par contre

YannT: ahaha

YannT: mais omg

Zorg1: vous vous faites du mal

Stilgart: tu l'écrirais pareil en ocaml ou en F# ça

Snef: c'est incompréhensible sans avoir déjà pratiqué un langage du style

Stilgart: (ok, c'est _ au lieu de otherwise)

Stilgart: Snef: ha ça, je dis pas le contraire

Stilgart: mais dans sa catégorie, c'est du code simple

Stilgart: il a pas tenté un recursive-do cette fois ci

Stilgart: (ne me demandez pas ce que c'est, je ne saurais répondre)

Snef: le recursif est pas plus lent de manière générale ?

YannT: j'ai fait du fonctionnel dans d'autres languages humains, mais ça c'est vraiment une autre planète

Stilgart: Snef: pas vraiment

Stilgart: c'est un mythe qui date que i386 ça

Stilgart: mais surtout, un recursive-do c'est pas juste recursif :D

Snef: ou alors le problème c'est les récursif trop long qui font trop d'appel de fonctions ?

dbdr: pourquoi le i386 en particulier?

Stilgart: Snef: nan, ça c'est python only

Stilgart: dbdr: parce que ça s'appelle comme ça partout aujourd'hui

Stilgart: et que x86 eut été ambigu

Stilgart: c'est révolu depuis les x86_64

YannT: le seul impact perf du recursif (et ça dépend des languages), c'est que typiquement il y a des optims de type inlining qui ne sont plus faites comparé à une version itérative

Stilgart: (j'aurais pu/du le dire comme ça)

RomanceDawn: le recursif c'est pus lent parce que y a des empilement de variables sur la .. pile ^^

dbdr: j'avais compris que c'était lié au i386 en particulier et plus pertinent avec les x86 modernes

Stilgart: RomanceDawn: non, c'est doublement faut ça

dbdr: ah OK

Snef: donc par exemple pour du c++ avec pragma on préfère de l'itératif ?

RomanceDawn: je suis pas d'accord :thinking:

Stilgart: déjà, tu as plein de cas où ça peut se transformer en boucle à la compilation

dbdr: un appel tail-recusif, le compilo peut le réécrire en boucle, par exemple

Stilgart: et ensuite, en x86_64, ils sont dans des registres tes arguments (quand tu n'en as pas 12)

dbdr: stilgart plus rapide :)

YannT: yes, y'a même la feature en kotlin

Stilgart: c'est ce dernier point qui change la donne

YannT: tailrec fun blah(...)

RomanceDawn: ouais mais ca c'est le harware et lle compilo qui se débrouille pour optimisé au maximum

RomanceDawn: mais de base le recursif pure ..

dbdr: sans toi YannT je savais meme pas que JBM streamait

Stilgart: RomanceDawn: ça n'existe pas le récursif pur

Stilgart: c'est autant pertinent que de dire que tu fais des IO en C mais sans stdio

RomanceDawn: moi je pense qu'il faut pas compter sur le compilo et l'archi du procc

Stilgart: dès langages comme lisp, ça fait du tail recursive depuis.... presque 50 ans

dbdr: la pile c'est efficace comme allocation de mémoire

RomanceDawn: si on veut vraiment un truc le plus rapide possible faut faire son algo en itératif

dbdr: donc remplacer une boucle avec allocation dans le tas par du récursif sur la pile...

dbdr: ça peut etre plus rapide

Stilgart: RomanceDawn: c'est tellement trivial la base du tail recursive que ça se donne en projet de compil à des étudiants

dbdr: donc non, RomanceDawn

dbdr: parfois c'est l'inverse

Stilgart: donc n'insulte pas les gens qui écrivent des compilos ;)

RomanceDawn: oui mais si tu alloue tout sur la pile dbdr :p

Stilgart: et ?

Stilgart: question de taille, d'OS et de limitation stupide de certains langages

Stilgart: (bonjour python=)

dbdr: sur la pile en iteratif??

dbdr: faut avoir une alloc bornée du coup

Stilgart: au final, c'est pas si clair la différence de vitesse entre pile et tas de nos jours

dbdr: c'est pas toujours possible

dbdr: ben tas c'est malloc / free

dbdr: la pile c'est un increment / decrement

dbdr: et la pile est parfaite pour le cache CPU

RomanceDawn: les fameux pop et push

dbdr: ça compte énormément

Stilgart: oui enfin tu peux malloc comme un goret au début et gérer ton tas toi-même si malloc est trop lent :)

dbdr: certes

dbdr: du coup ça va etre tres crade

adriens: http://chat.codingame.com/pastebin/b5357a48-2e8d-4d8d-b110-ef6fd34825a7

Stilgart: cf nos codes de UTTT :D

RomanceDawn: mais en plus ca me rapelle un truc

adriens: ah message trop long :)

adriens: j'ai un soucis de multithreading en C++ vs Java/Scala

dbdr: si tu le fais une fois par bot ça va

domak: adriens, oublie le multithreading ici

Default avatar.png Colios13: Plus de 3000 participants sur le challenge :astonished:

dbdr: pour plusieurs algos, la complexité s'accumule

Stilgart: adriens: c'est pas un soucis, c'est la réalité ça

Stilgart: tu es limité à un thread actif

RomanceDawn: je crois que j'ai fait un test codingame pour un boite, fallait implémenter un parcours d'arbre binaire, en recursif ca passé pas parce qu'il fallait le faire en itératif :thinking:

Stilgart: mais tu peux en faire plusieurs quand même

Stilgart: RomanceDawn: fake sauf si python

adriens: Ah oui mais du multithreading sur un seul thread actif ça limite un peu les possibilités :)

Stilgart: sur un arbre, l'itératif c'est complétement con

dbdr: C++ vous ment!

RomanceDawn: c'est moins intuitif mais c'est pas forcément con :p

Stilgart: adriens: cherche à parallélisme (que tu ne peux pas faire)

Snef: Stilgart donc un minmax ou mcts en c++ tu le ferais qu'en recursif ?

Stilgart: et à concurrence (que tu peux faire)

Stilgart: Snef: la backprop, clairement

Stilgart: que tu sautes avec des pointeurs sur la pile ou sur le tas, c'est pareil

Snef: ah ouais moi je suis un noob avec un while (p->parent != null) xd

Stilgart: par contre, le code il est plus clair et plus court en récursif

adriens: bon bah je vais devoir faire moins force brute et plus de réflexion :/ :D

adriens: merci

Stilgart: après, en pratique c'est planqué par la couche objet

dbdr: adriens: tu peux tres bien bruteforce sur un seul thread

Stilgart: adriens: tu ne pourras pas augmenter ta puissance de caclul avec des threads

adriens: Il me semblait l'avoir fait pour un concours précédent

Stilgart: suivant le langage, tu peux avoir des effets de bords qui aident

Stilgart: en Haskell, j'avais un GC moins encombrant avec des threads sur CotC

Stilgart: jamais compris pourquoi par contre...

dbdr: magie grise du coup :D

Stilgart: constat => exploitation

Stilgart: (par ailleurs, j'avais mis du thread par commodité à la base)

Stilgart: (comme dans mon désormais légendaire UTTT)

dbdr: commodité pour quoi?

Stilgart: séparation de code

YannT: t'as le retour à la ligne sinon :p

dbdr: :D

Stilgart: héhé

Alshock: Quand tu thread un mcts comment tu gères les locks ?

Alshock: ah tiens 1/2 heure après la bataille moi as per usual

VincentBab: y en a qui font du MCTS pour le challenge ? ^^

Boulet: y'en a qui s'y prépare ....

VincentBab: xD

domak: jolilindien? ;-)

Valbou: J'y pensais au début j'ai abandonné sans avoir essayé

VincentBab: ah oui lui il va nous pondre un triple MCTS de la mort ^^

domak: voilà

VincentBab: pourquoi Valbou ? pas assez de motiv ?

Valbou: @VincentBab : oui mais pas que, une mauvaise intuition dû à des déplacement simultanés

Valbou: ca fait un nombre conséquent de cas a gérer * le nombre de pac...

VincentBab: oué je sais pas trop comment ca marche MCTS avec les joueurs qui joue en simultané :/

Valbou: quoi que en faisonat tout d'un coup...

Valbou: *faisant

VincentBab: oui tu prend tout les pac tu calcul tout leur move possible et tu fait toutes les combinaison

Valbou: déjà sur UTTT, mon algo n'est pas premier de la classe, alors là avec 50ms

VincentBab: j'en ai chié pour optimisé mon MCTS et passé legend sur UTTT meme en C++

domak: Il y eu une grande discussion toute à l'heure sur le chat sur le nombre de combinaison

domak: s

Valbou: Sur UTTT, il n'y a "que" 9 à 80 cas max à gérer par coup

domak: de mémoire c'était ~ 53K

Valbou: et avec une profondeur moyenne de 50

Valbou: donc improbable, sachant que sur UTTT on a 2x plus de temps

VincentBab: 50 c'est enorme deja comme profondeur

Valbou: ici on est sur 200 ^

VincentBab: ah oui je vois ce que tu veux dire

k4ng0u: domak du coup l'outcome c'etait que la simulation etait viable ou pas?

VincentBab: mais je pensais a un MCTS avec fonction d'eval ^^

Valbou: il faudrait limiter la profondeur

Valbou: et voir si l'état à la profondeur fixée est favorable ou pas

domak: http://chat.codingame.com/pastebin/fab4e9e7-2ef3-404d-a9d6-c169549e3b1d

Valbou: intéressant

Default avatar.png JBM: (18:11:39) Stilgart: il a pas tenté un recursive-do cette fois ci

Default avatar.png JBM: hého la dernière fois que j'ai fait un recursive do, je l'ai fait, je l'ai pas tenté

Valbou: Il me semble qu'il a un algo qui a été testé pour résoudre la version aveugle des échec (dont j'ai mangé le nom)

Valbou: le Kriegspiel (merci Google)

GiB: @here, est-ce qu'il y a des joueurs qui se servent du score adverse à chaque tour pour déduire des infos sur la position de ses pacs, ou trouver quels pellets se sont faits manger ?

Valbou: oui :)

Valbou: avec un succès limité je dois dire...

k4ng0u: pas personnellement, mais si des gens trackent les paths adverses, ils peuvent potentiellement en deduire des paths invalides (mais je sais pas a quel point c'est rentable)

Valbou: http://chat.codingame.com/pastebin/967d5155-23dd-4f8c-8895-d715b0de62b3

Valbou: je pars du principe que chaque place vide de la carte est un pellet simple, et je maj ma supposition avec les pellets fournis par CG à chaque tour

Valbou: Il ne me manque plus qu'à ajuster mon petit algo qui met à jour à vue des pacs pour compenser le fog

Valbou: du coup le pac va là où il y a du potentiel, jusqu'à ce qu'il puisse voir, et ajuster ensuite le chemin

Valbou: J'ai raconté ma life du coup tout le monde s'est barré :sweat_smile:

VincentBab: haha non dsl je lisais la discussion sur MCTS

VincentBab: mais je comprend pas comment il calcul le nb de possibilité

Valbou: il y a minimum 2 possibilités par pac par tour et jusqu'à 4

Valbou: 4^5 possibilité dans le pire des cas par tour

VincentBab: plus si tu compte le switch et speed

Valbou: exact

k4ng0u: c'est interssant, clairement la notion de zone a potentielle et pellet "sur" (car out of range de l'ennemi) est qqch a creuser

Neumann: C'est relou de pas pouvoir savoir à 100% quand un ennemi est mort

Valbou: Ne me préoccupant pas (encore) de l'adversaire, mort ou pas moi je veux du pellet :P

Drazyen: Techniquement, il y a entre 1 et 8 possibilités de déplacement par tour pour un pac.

k4ng0u: a cause des morts sur un coin?

Valbou: 2 min

Neumann: k4ng0u: oui

VincentBab: je vais faire un truc simple, prendre une partie a 5 pac et regarder a chaque tour combien de coup possible

VincentBab: pour voir en moyenne combien il y a de coup

VincentBab: car le max est très rarement atteint

k4ng0u: peut etre qu'on peut faire une heuristique si le gars prend moins de pellet que d'habitude c'est que potentiellement il a moins de pac (ou qu'il est mauvais)

Drazyen: Si l'on considère les interactions avec les pacs ennemis, il faut considérer leurs mouvements aussi et les collisions associées x')

Valbou: pour le speed et le switch les possibilités diminuent si tu pars d'un postulat où ils sont utilisés puisqu'ils nécessitent rechargement

Neumann: k4ng0u: ca reste une approximation, on n'est jamais certain

Drazyen: Moi je parle juste en pire cas \o/

Valbou: oui il peut juste être en embuscade ^

Snef: Valbou avec speed d'activé a augmente ..

Snef: +ç

Valbou: effectivement Snef bien vu

k4ng0u: Neumann oui c'est sur, mais a quel point est ce que c'est impactant sur le reste de la game (et a quelle frequence cela arrive)?

Neumann: k4ng0u: je pense que ça être nécessaire comme info, assez vite

Neumann: va*

Zorg1: speed activé, t'as au plus 12 possibilités de mouvement (vu que tu peux toujours te déplacer d'un seul)

VincentBab: yes

Valbou: 12^5 ça tape un peu quand même face à UTTT qui limite à 81 max

YannT: Zorg1: non c'est moins, vu que tu peux pas avoir de carrés

Snef: après tu peux faire des "groupes de pac"

Snef: si distance entre 2 pac supérieure a X ne pas les combiner

Valbou: ça reste énorme avec un temps très juste

YannT: c'est 9^5 en comptant les pouvoirs (ou 9^10 avec l'ennemi au max)

Zorg1: YannT : oui la stucture de la map limite les possibilité

Haashi: meme 9^5 c'est énorme comme branching

Valbou: c'est improbable !

YannT: clairement c'est ingérable oui

YannT: rien que d'expand un state pour calculer les combinaisons de coups possibles c'est énorme

Valbou: ca se tente en wood 2 ^^

Haashi: je commence a avoir la flemme de réfléchir a un truc pour ce contest

Haashi: putain on dirait une phrase que pourrait dire AutomatonNN

AutomatonNN: oui

k4ng0u: Neumann apres si l'adversaire a perdu un pac, tu devrais etre automatiquement avantagé non? (a moins que tu simules les adversaires basés sur leurs positions potentielles et que ca rend tes pacs bcp plus defensifs?)

Mazelcop: Il y a probablement moyen de réduire le nombre de coups à envisager à chaque tour ceci dit avec quelques bonne heuristiques

VincentBab: https://www.codingame.com/share-replay/459738737 AVG: 1826 MAX: 19845

YannT: après les pacs éloignés des autres peuvent être géré "individuellement"

Snef: Vous pensez pas que pour une depth X il suffit d'ignorer les pacs a plus de X de distance ? et donc si tout les pacs sont éloignés tu passes de 9^5 à 9*5

Mazelcop: perso j'y crois au MCTS

VincentBab: juste pour mes pac

YannT: donc t'as pas besoin de *toutes* les combinaisons

Snef: Oui voilà YannT

Neumann: k4ng0u: oui, si tu joue safe face à un ennemi mort que tu penses vivant, tu perds en efficacité

YannT: mais ouais j'ai salement la flemme de pousser en vrai :(

SfoxPO: sa y est j'ai passé le premier niveau se décrasse !

Haashi: enfaite YannT t'as pas mal raison

YannT: kovi est toujours en permapush :joy:

Valbou: pour ceux qui ont fait UTTT, l'avantage du MCTS c'est qu'il se copie/colle aisément

VincentBab: xD

Haashi: il y a quasi aucun cas ou tu as besoin d'avoir 2 pacs très proche, la plupart du temps c'est contre productif

Haashi: donc tu peux espérer que les 5 simu locales des pacs aient le meme résultat qu'une simu globale

Snef: Haashi si un pac ennemi est proche je pense que c'est inréréssant que tu ais 2 pacs proche

Neumann: Un smitsimax en gros

YannT: en fait tu peux gérer les pacs 1 à 1 (rapide), et tu dois gérer des combinaisons d'ordres que pour les pecs proches à risque de collision en groupe

Haashi: ouais voila, mais ca tu peux le gérer de manière macro

YannT: pacs proches doit inclure l'ennemi

YannT: même si tu forces tes pacs à s'eloigner les uns des autres, typiquement tu dois quand même faire des groupes combinatoires avec les ennemis

Haashi: tu gères de manière macro le fait que tes pacs sont éloignés (pour couvrir une meilleur surface)

Haashi: et après tu simules tes 5 pacs indépendemment

Haashi: quelqu'un a tenté des voronois ?

YannT: a mon avis c'est pas la bonne approche, les forcer à s'éloigner ça va induire des comportements cheloux

YannT: faut juste gérer en groupe ceux qui sont groiupés quoi

Zorg1: "gérés en groupe ceux qui sont groupés"

Zorg1: nice :D

Haashi: arf, je sais pas, je me dis qu'au moins au tout début, c'est important que tes pacs se spreadent

YannT: ils vont faire des trucs bizzare

Haashi: + grande line of sight, initialement tout a une pastille donc tu prend énormément de points

Alshock: tu peux toujours mettre des points sur les cases vues récemment

Magus: si ton but est de tuer du pac, c'est mieux qu'ils soient par 2

Magus: après par contre oui si ton but est juste de bouffer le plus possible, ils seront jamais proches les uns des autres

YannT: si je devais pousser (ça arrivera peut être) c'est ce que je ferais en tout cas -> les pacs à distance <= 2 (à voir si 4 en cas de SPEED actif)sont gérés comme un groupe (incluant les pacs ennemis), les autres individuellement

YannT: ça doit pas mal réduire le branching, ils sont quand même pas tout le temps à cul

LimaceHurlante: je pose ça la ... http://fabienneyvert.com/wp-content/uploads/2019/07/Sans-titre.jpg

Haashi: enfaite moi j'ai l'impression que ca va faire comme cristal rush

Haashi: la meilleur strat c'est le minage

Default avatar.png YohMart: pourquoi la variable visible_pac_count n'est pas aligné avec le nimbre de pac sur la map?

Haashi: parce que ils ne sont pas "visible"

Neumann: Vivement la fin du contest quand les IA du top joueront des duels random ShiFuMi sur le switch quand 2 pacs vont se croiser

Kh4z: @yohmart a cause du fog of war

Haashi: en gros il y a un brouillard de guerre

Ysoft: 'lut. j'arrive et j'ai raté le début de la conversation : UTTT, c'est quoi ?

Haashi: ultimate tic tac toe

k4ng0u: c'est interessant comme strategie ca, si tu lead, tu peux grouper tes pacs pour bait l 'ennemi, faire des trade 1v1 et reduire son potentiel de comeback

Valbou: tu fais des techniques de tenailles avec 2 ou 3 pacs ^^

Haashi: k4ng0u voronoi would like a world with u

Default avatar.png YohMart: @Kh4z merci pour l'info, mais ce n'est pas noté dans les consignes?

Valbou: si mais il faut lire :P

Valbou: "visiblePacCount : le nombre de pacs visibles pour vous "

Haashi: La la méta c'est : tout le monde sprint en permanence

Alshock: j'aime bien cette méta

Alshock: en même temps c'est l'esprit pacman

YannT: full sprint oui mais switch au moment oportun des fois quand même

k4ng0u: Haashi, voronoi ca a effectivement l'air d'une approche interessante, mais j'ai encore du mal a voir comment l'implementer (est ce que ca conduit pas a des strats trop defensives a cause du fog of war?)

YannT: effectivement faire la chasse au pac c'est pas très efficace, en tout cas de façon naive

Default avatar.png Colios13: Moi je me demande si il y a pas un rapport du style plus on a de pac/ plus la map est petite moins il faut speed ?

Ysoft: @Haashi merci. Je découvre MCTS, je voyais arriver un autre truc à creuser :)

Haashi: k4ng0u, bah tu peux faire un voronoi initialement

Default avatar.png YohMart: ok... ;-)

Haashi: vu que tu as la connaissance de la pos de tout le monde

BlaiseEbuth: Sa mère la pute en short bleu dans les orties du diable ! :rage:

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

Zorg1: ?

Zorg1: pourquoi tant de haine ?

BlaiseEbuth: D'où 'NEUTRAL' c'est un entier ?

Valbou: ça semble bon cette petite MAJ ^^

Valbou: bon ça fera pas de miracles non plus

Alshock: @BlaiseEbuth contexte ?

BlaiseEbuth: contexte input pour pac.typeId en W2

VincentBab: en fait on peut faire le mème genre de système que pour OOC mais en inversé pour detecté l'enemie nan ? ^^

Valbou: Tout ça pour revenir à la même place que ce matin :sweat_smile:

LimaceHurlante: il faut beaucoup progresser pour se maintenir !

Valbou: On sait comment vont se ventiler les résultats sur les futurs leagues ?

Valbou: genre le top 500 change de league ?

LimaceHurlante: j'ai lu dans le chat ce matin 300

Valbou: au moins je suis à l'abri du changement :joy:

LimaceHurlante: pareil :) !

Vry: En fait ça dépend ... pour la ligue argent c'est 50% ?

Vry: Après c'est la première fois que la ligue bronze est si grosse ...

Valbou: j'ai franchi un cap ! ça y est mon code dépasse le score 25 ^^, mon plafond de verre

Valbou: bon du moins pour ce tirage

LimaceHurlante: Bravo !

Valbou: 50% ça me place argent ^^

Default avatar.png Colios13: Vry 50% de ligue bronze ou joueurs total ?

Vry: Ligue bronze

Valbou: actuellement 890e sur bronze

Valbou: tu en es où LimaceHurlante ?

LimaceHurlante: Valbou 529e

Valbou: :thumbsup: excellent !

LimaceHurlante: Merci ! je suis trop content j'avais peur de jamais sortir de la ligue en bois !

Valbou: Oui j'ai bataillé alors qu'il suffisait d'aller se coucher, impossible de coder le premier jour

Valbou: En fait mon code n'était pas dégueux, il n'a pas tant changé depuis :P

Default avatar.png Colios13: aha moi c'est l'inverse 95% de mon code date du premier jour je suis arrivé en ligue bronze j'étais dans le top 50 depuis je fais que descendre ^^

Magus: WIDTH peut aller jusqu'à 37 ? oO

Magus: mais bordel le statement ><

Default avatar.png Colios13: 31 non ?

VincentBab: 37 ?

Magus: ah non attends

Magus: c'est quoi ce truc

Valbou: le top 50 n'est pas dans mes ambitions :P mon objectif est juste d'être correctement classé avec un code qui me plait

Magus: j'ai un truc bizarre avec ma width

Valbou: Dans le top bronze ou en silver ça me va

Valbou: d'ici la fin

LimaceHurlante: pareil !

VincentBab: 35*17 le max il me semble

Magus: ah ok, la width était noté 33 dans le statement avant

Magus: et ils ont corrigés en 35

VincentBab: (en comptant les mur autour)

Magus: mais j'avazis encore 33 dans ma constante

Magus: mais donc ça dépassait bien de 2

VincentBab: ah oui j'avais pas vu qu'il avait update le statement

Valbou: Bon je vous souhaites une bonne soirée, pour moi c'est fini pour aujourd'hui. @demain !

VincentBab: bonne soirée ^^

VincentBab: bon faudrait que je trouve un moyen pour que mes pac se repartisse mieux le travail xD

Magus: donc d'après mon code quand je spawn au premier tour je vois que 2 cases dans le fog of war

Magus: c'est pas beaucoup

Magus: et c'est genre moins que mon nombre de pac

Magus: ça pue

Vry: 35*17

Vry: C'est plus que mes constantes ça ... :upside_down:

VincentBab: xD

Vry: Ça doit déborder un peu mais a priori ça plante pas ...

Vry: ... ce sera ma première "évolution" pour la ligue Bronze

Koku: hmmm faudrait que je dise à mes pacs qu'ils peuvent pas se reproduire en se rentrant dedans :/

Mastard: est ce qu'il y en a ici qui ont fait une liste de toutes les deplacements possibles sur une map ? J'ai vu certains qui disaient avoir fait ca

Mastard: est ce qu'il y en a ici qui ont fait une liste de tous les deplacements possibles sur une map ? J'ai vu certains qui disaient avoir fait ca

Mastard: oula pardon

Koku: y en a surement qui l'on fait, perso je vois pas trop l'intéret

Mastard: perso j'ai une idée pour prévoir un peu le deplacement des pacs adverses, mais je n'arrive pas à le faire dans la seconde impartie :/

Haashi: il y en a beaucoup

Haashi: donc en fonction du language et de comment t'as implémenté tes transitions

Haashi: ca peut etre long

YannT: et c'est 50ms après le premier tour ;)

Mastard: c'est pour ca je comptais sur la seconde du premier tour pour arriver à le faire haha

Default avatar.png thoip: de quoi 50 ms?

Koku: tu fais comme dans OOC, tu applique tes propres algo à ton adversaire en espérant qu'il pense comme toi ;)

gregballot: en haut de ligue je pense que ce genre de truc devient efficace

Mastard: desolé je suis nouveau, je sais pas ce que c'est ooc :/

Haashi: ocean of code

Koku: le challenge précédent, ocean of code

gregballot: c'est un contest passé nan ?

Mastard: ah ok, c'est mon premier là

gregballot: la meme

gregballot: c'est super cool

Koku: mon 2eme, je connais que ooc et celui la ^^

sanpas83: oui bien cool :)

Mastard: je suis deja content de ma 250e place :D

gregballot: jcrois que le confinement ca a inspiré les devs en recherche de challenge haha

Mastard: bah moi c'est exactement ca aussi

Mastard: et aussi pck ma boite en a parlé

gregballot: moi c'est completement le cas

gregballot: C'est dommage par contre que le classement entreprise s'equilibre pas en fonction du nombre de participants

gregballot: La pour etre bien rank, faut surtout etre beaucoup quoi

Haashi: c'est le top 5 qui est pris en compte

Haashi: non

gregballot: ah oui ?

Koku: https://lesjoiesducode.fr/developpeurs-fin-confinement

sanpas83: oui je crois que c'est sur le top

gregballot: Bon vu qu'on est que deux, j'ai pas capté lool

sanpas83: moi je suis en solo perso pour le fun

Mastard: bon du coup je vais faire de la recherche de chemin en fonction du besoin à chaque tour et faire un cache, ce sera deja bien

gregballot: pareil c'est full fun

sanpas83: nice koku la pic :) j'adore

sanpas83: j'ai changer une conditions et je descend en chute libre

sanpas83: :o merci la speed ma tuer mon alog mdr

Mastard: c'est quoi la condition pour aller en ligue au dessus de bronze ?

Mastard: enfin à partir de lundi je veux dire, je sais que c'est pas ouvert encore

sanpas83: je pense qu'il faut être dans le top 300 le jour j

Mazelcop: battre le boss bronze, quand il sera disponible

k4ng0u: etre dans les 200 premiers lundi a 18h

Mastard: ah ok il y aura un boss

Mastard: merci

Mazelcop: je pense

sanpas83: bonne soirée a tous bon code :) & fun :)

gregballot: ui :)

Koku: https://lesjoiesducode.fr/la-difference-entre-front-end-et-back-end mdr

sanpas83: mdr :)

sanpas83: le back toujours franc $

Andry_: ceux qui font le contest en c++ vous utilisez des classes ou tout dans des tableaux ?

Mazelcop: classes et structs pour moi pour l'instant

BlaiseEbuth: struct, pour pas faire dans le verbeux

Andry_: ah

gregballot: https://www.reddit.com/r/ProgrammerHumor/comments/7zfgwg/frontend_vs_backend/

BlaiseEbuth: Le code qui s'auto-modifie j'aime pas ça.

ThomasNicoullaud: tiens donc

Default avatar.png Nelimee: Idem, des structures, le tout arrangé dans des tableaux

ThomasNicoullaud: qq'un peut m'expliquer pourquoi ma calculette windows me renvoi -1 mod 7 = 6 et mon compilateur C++ -1 % 7 = -1 ?

Mastard: le modulo peut etre different selon les langage

Snef: ThomasNicoullaud je m'en suis aussi apercu c'est le comportement classique il faut croire

Mastard: j'ai eu le souci aussi hier, et j'avais trouvé cette reponse

Snef: donc obligté de faire (-1+W)%W

YannDev: Le modulo négatif en C++ c'est un bug ultra connu

Default avatar.png Nayor: En C++ des tableaux pour l'instant

Haashi: enfaite c'est partout

Haashi: meme en Go

Default avatar.png Nayor: Pour contourner le modulo négatif il suffit d'ajouter le modulo quand y'a une soustraction

gregballot: Des classes, pour encapsuler certaines valeurs, ca me laisse la tete claire

Haashi: en js aussi

Default avatar.png Nayor: C'est pas un bug, c'est une fonctionnalité :)

gregballot: jdirais plutot "comportement indefini"

Haashi: pas vraiment

Haashi: c'est le comportement attendu

gregballot: oui dans un sens

Haashi: modulo = reste par division euclidienne

Haashi: -1 c'est 0*7 + -1

Haashi: le reste c'est -1

RomanceDawn: à ne pas confondre avec la congruence :p

YannDev: je croyais qu'il parlait de 1%-7

YannDev: le fameux modulo négatif

YannDev: quel plaisir

BlaiseEbuth: Bah ouai mais faut lire

Haashi: quoi que ca marche pas ce que je dis

Haashi: ah si ?

BlaiseEbuth: bah si

Default avatar.png Nayor: si, -1%7=-1

VincentBab: congruence toi même :P

Zorg1: la définition de la division entière en fait. Pour être cohérent -1/7=-1 ou -1/7=0 selon le mod.

RomanceDawn: c'est pas 3 :p

RomanceDawn: 6*

BlaiseEbuth: Explique nous tonton Zorg1 !

Default avatar.png JBM: comment es ton re

Zorg1: oui petit scarabée BlaiseEbuth ;-)

dbdr: YannT toujours sans idée à #9? :D

YannT: j'ai pas repush c'est monté tout seul

YannT: c'est pas ma faute, le seul truc que j'ai changé depuis quand j'étais #60 c'est d'implémenter SPEED :p

Zorg1: ben voyons ....

YannT: true story

BlaiseEbuth: Non mais du coup j'ai pas saisi, pourquoi -1 mod 7 fait 6 ?

RomanceDawn: nan mais en fait

YannT: j'ai un push "22 hours ago" -> environ #60 et un push "6 hours ago" -> top10 par mégarde, la seule différence entre les deux c'est que celui ci fait des SPEED et pas l'autre

Zorg1: BlaiseEbuth : -1 = (7)*(-1) +6

Default avatar.png Colios13: j'aimerais bien avoir aucune idée comme ça moi aussi

Zorg1: donc -1/7 = -1 et -1%7=6 (dans cette logique des restes compris entre 0 et 6)

BlaiseEbuth: Mouai. Ca fait très des chiffres et des lettres

RomanceDawn: ouais voilà mais c'est de la congruence, c'estpas tout à lemodulo qu'on a dans le code si je ne m'abuse

Zorg1: en fait t'as plusieurs implem différente

Zorg1: généralement ils appellent ça 'remainder' et 'modulo' pour faire la diff, mais c'est pas forcément très clair

flo5589: pharmagest

RomanceDawn: à tes souhaits

flo5589: Oups, mauvais champ, désolé :)

BlaiseEbuth: Les MSG sont tronqués, c'est nul...

dbdr: tu veux des MSG infinis?

Magus: quand tu déclares une nouvelle variable et que ton IDE t'annonces fièrement "cette variable n'est jamais utilisée"

Magus: oui ... je viens de la taper en fait ...

BlaiseEbuth: dbdr: non mais de plus de 5 chars ouai...

dbdr: faux l'utiiser avant

dbdr: -> erreur

dbdr: -> corriger l'erreur pour la déclarer

dbdr: :)

YannT: Magus: déclarer des variables c'est pour les faibles

YannT: faut ton imbriquer

YannT: tout*

dbdr: BlaiseEbuth utilise 5 chars chinois tu pourras en dire plus

BlaiseEbuth: :thinking:

egaetan: Magus il déclare ses variables ? oO !

dbdr: noob

Neumann: w t f

Magus: bah euh en C++ t'es un peu oblié

Magus: *obligé

Magus: le js c'est juste pour les ligues wood :D

dbdr: fais du point-free comme ne haskell

dbdr: les variables c'est has been

Magus: sataniste

dbdr: mieux

dbdr: SKI combinateurs

dbdr: https://en.wikipedia.org/wiki/SKI_combinator_calculus

Magus: void Grid::updateCelslBecauseOfTheFuckingFOW();

YannT: j'ai regardé un peu de haskell sur le stream de JBM tout à l'heure

Magus: hmm, je pense que je peux trouver un meilleur nom

dbdr: 3 constants, pas de variables, tout ce qu'il faut est là

Neumann: "Celsl"

YannT: j'crois c'est le même language que pour ouvrir les portes de l'enfer et invoquer azazel hein

Magus: ah ouai c'est Cells évidemment :D

Magus: j'ai pas encore créé la fonction, je cherche un nom

dbdr: Magus clair, il manque un Mother

Magus: updateMotherCellsBec

Magus: oops

Magus: updateMotherCellsBecauseOfTheFuckingFOW

Magus: mais ça veut rien dire

dbdr: tu y es presque

PhOeNyX: Je crois qu'il voulait mettre le "Mother" après le "The"

**dbdr pense que Magus sait

YannT: déclarer des fonctions c'est pour les faibles aussi

YannT: tout dans le main

Magus: ah par contre en C++ pour CG je sépare toujours déclaration et définition

Magus: bon c'est dans le même fichier donc c'est séparé par un gros // *********

dbdr: main cest pour les faibles

Magus: mais c'est séparé

dbdr: tout dans les initialisations statiques

dbdr: à la limite main = "";;

dbdr: mais ça va empecher Stilg*rt de dormir

Magus: le double point virgule ça empêche Stilg*rt de dormir ?

Magus: je le comprend

dbdr: c'est valide pourtant, il me semble

Haashi: vous pensez que des codes gold capables d'etre gold arriveront quand ?

RomanceDawn: ils sont déjà la

Haashi: -gold dans ma phrase

dbdr: un code gold, c'est pas capable d'etre gold par definition? ;)

RomanceDawn: y a peut être même 1 ou 2 légende

YannT: je dirais que tout ce qui est top20 actuellement passe gold là

Haashi: ouais j'avais mal tourné ma phrase

YannT: on est sur un contest de 10 jours

dbdr: ouais, mid gold

YannT: c'est pas une semaine par ligue

Haashi: mmmh

Haashi: je veux etre gold avec mon vieux truc 43 la

dbdr: pas de légende par contre

0x6E0FF: on sait quand ouvre la ligue or?

YannT: dbdr: on se suit dans le ranking de 8-9 à 16-17 :D

YannT: on surfe les mêmes vagues

dbdr: depuis un moment oui :D

egaetan: doppelganger

GhostDev: :unamused: qund tous tes pacmen se font tuer dans une embuscade dans un angle mort

Default avatar.png thoip: ghost tu as le replay?

dbdr: egaetan parti en C tout de suite cette fois :)

GhostDev: degueux, ca arrive souvent

egaetan: ;) dbdr

egaetan: j'ai pas frimer en tête en Java, mais mon C est prêt

dbdr: pret pour quoi?

egaetan: prêt pour la suite

Neumann: :O

Haashi: oula ca fait peur

Zorg1: Neumann tu hides ?

Neumann: Oui

YannDev: :o

egaetan: comme d'hab

egaetan: :p

YannDev: ya des gens qui ont déjà codé leur simu

YannDev: ?

egaetan: yep

YannDev: gg

YannDev: tu gères comment le brouillard ?

Neumann: J'ai un MinMax depth 12 atm

dbdr: Zorg1 gg pour avoir réussi à faire dire oui à Neumann

Zorg1: j'ai gagné ma journée :D

dbdr: bn

Haashi: Pourquoi j'ai tout le temps la flemme sur les contests cg

egaetan: YannDev il y a du brouillard ?

YannDev: Oui xD

YannDev: enfin c'est comme du brouillard

YannDev: les pacs voient qu'en ligne droite

egaetan: Alors je fais comme si il n'y en avait pas

dbdr: des murs

egaetan: les miens ils voient tout

YannDev: whut

dbdr: suffit de hacker la ram du referee

dbdr: ezpz

YannDev: donc dans ta simulation comment tu gères l'adversaire ?

YannDev: la position de l'adversaire*

egaetan: on a des adversaires !?

dbdr: :D

YannDev: oof

dbdr: non c'est coop

PhOeNyX: "Alors je fais comme s'il n'y en avait pas"

Haashi: en vrai tu rigoles

Haashi: mais c'est une bonne strat je vous dis

Haashi: faite comme si vous avez pas d'adversaire

YannDev: hm

Haashi: et optimiser votre farm

egaetan: l'adversaire que je ne vois pas n'existe pas

YannDev: bah ça se fait en full heuristique haashi

egaetan: ça suffit pour top100

YannDev: optimiser le far

YannDev: farm*

RomanceDawn: "si je te vois pas t'existe pas "

Neumann: Ca suffit pour top 20 *

Haashi: tu peux le faire en simu

YannDev: Gaetan c'était un peu la merde pour coder ton moteur non lol :')

PhOeNyX: J'attends que le boss pour silver sorte et c'est ce que je comptais développer

YannDev: les collisions claquées :'(

egaetan: pour top20 il faut arrêtre de balancer son papier dans les ciseaux

egaetan: et ça, ça pique

PhOeNyX: Faire en sorte que mes bots soient plus opti pour choper les grosses pastilles sans oublier de choper des petites en chemin.

Haashi: moi j'ignore l'adversaire quand je le prend en compte je perd 70 places

RomanceDawn: y a bien des gens qui vont mettre des proba partout dans leur graphe

YannDev: mais vous êtes trop rapides pour coder vos simus mdr

PhOeNyX: Parce que là, ils se dirigent juste au plus proche avec gestion du speed. Point.

egaetan: le speed il est casse pied

YannDev: déjà j'ai la flemme de faire le moteur moi

egaetan: sans speed la simu basique fait top200

YannDev: quelle profondeur ?

egaetan: secret

Neumann: 1

YannDev: ;)

YannDev: 1 mdr

YannDev: quel génie

Haashi: bon sinon

Haashi: quelqu'un a trouvé une solution au probleme de manger un pac dans un coin ?

YannDev: càd?

YannDev: si tu veux pas que ton pac se fasse trap dans un coin ?

egaetan: Haashi memoire du tour precedent ?

Neumann: Tu fais un "switch rnd(3)" et tu avances en croisant les doigts

Haashi: https://www.codingame.com/replay/459839868

Haashi: les deux fois ou ont meurt

Haashi: on avait pas l'info de la pos de l'autre

egaetan: Neumann il paralit de manger pas de se faire manger

Haashi: sauf que vu que l'on tue pendant le referee, on l'a pas après

Haashi: comment tu détectes que tu l'as bouffé ?

Neumann: Ca marche dans les deux sens

Neumann: Haashi: tu détectes pas

Neumann: Pas tout de suite en tout cas

Haashi: se faire manger tu le vois dans ta liste de visible pellet qu'il t'en manque un

**egaetan if (fastrnd(2)) jelaimange();

Haashi: bah tu peux le voir après avoir fait 3 tour de map et compris que ces mouvements possibles ( #ocean-of-code) bah y'en a pas

egaetan: Haashi tu confinds les pacmans et les pellets

Haashi: je confonds rien, je parle bien du fait qu'il y a pas de moyen de détecter un pacman que t'as bouffé si il était pas dans ta los au tour d'avant

Magus: oui c'est possible de tuer sans le savoiur

Magus: *savoir

Magus: et c'est je trouve la pire forme de hidden information que codingame ait trouvé jusque la :/

Mastard: quand tu revois enfin tes pacs bouger comme tu le voulais apres 4h de debug... :relieved:

YannDev: ggwp

k4ng0u: Haashi dans le premier cas il y a une super pastille qui disparait tu peux tehoriquement deduire qu'il y a un mechant paper pac dans le coin :p

Haashi: alors

Haashi: non

Haashi: ce que tu dis ca permet au rouge de savoir qu'il y a un bleu sur cette position

Haashi: sauf que la c'est le bleu qui sait pas qu'il a tué un rouge

YannT: Magus: ils auraient du donner du score pour avoir mangé un pac ennemi, ça permettrait de savoir facilement sans casser le jeu

YannDev: Ouais mais

Magus: bah si c'est juste un score de +1 ou même +2, tu peux pas savoir s'il a juste mangé 2 pellets ou tué quelqu'un

YannDev: ça aurait boosté les strat pvp

Saelyos: Ou pas mettre de FoW, ça marche aussi

YannT: Magus: ben non du score pour toi

YannDev: bah après sans FoW

YannDev: le jeu devient "simple"

YannT: tu savais si t'as mangé des pellets quand même

Magus: pas tout le temps

YannT: donc si t'as des points par dessus, c'est que t'as tué un pac

Magus: si tu prends un virage avec un speed par exemple

Magus: t'as pas la vision sur la case où t'arrives

Magus: donc tu sais pas si tu vas manger ou pas

YannT: pas faux

Magus: donc non tu peux pas toujours prévoir ton score au prochain tour

Magus: il aurait juste fallu faire comme les autres jeux avec du FoW, donner tous les pacs avec -1 -1 en coordonnés dans il est dnas le fow

Magus: ou virer le fow aussi mais bon ... c'est pas à la mode chez CG

YannDev: c'est chiant le fow je trouve

YannT: je comprend l'idée sousjacente cela dit

YannT: s'ils veulent récupérer des joueurs, les jeux avec FOW permettent de baisser la barre vu que les brutasses de service et leur bitboard sont bridés

YannT: ça simplifie l'entrée

Zorg1: "les brutasses de service" :D

Andry_: c'est quoi bitboard

Zorg1: j'aime bien le concept

k4ng0u: Haashi avec la symetrie des ymetrie des positions initiales le seul pac qui auraiti pu manger la super pastille c'est le paper pac bleu

RomanceDawn: des 0 et des 1

Magus: k4ng0u: c'est pas le problème ici

YannT: un FOW dans un jeu ça permet de réduire le delta entre heuristique et les jesaispasquoimax optimisé au poil de fion (pas dans le top, mais plus bas)

Andry_: ok mais ça représente quoi dans les jeux:slight_smile:

Magus: k4ng0u: personne ne nie le fait que tu peux savoir qu'il va y avoir quelqu'un en face. Tu peux le supposer de pleins de manières différentes.

Magus: k4ng0u: le problème c'est que le bleu a mangé le rouge, et il ne le saura jamais

Magus: (le bleu ne le saura jamais)

RomanceDawn: Andry_ un le terrain du jeu

Zorg1: Andry_ : tu représentes une situation de jeu avec un encodage binaire, pour pouvoir faire évoluer le jeu uniquement avec des opérations binaires (&,|, ...)

Zorg1: https://www.chessprogramming.org/Bitboards

Andry_: ah d'acc

Zorg1: dans certain cas ça peut être bcp plus rapide

YannDev: Ici c'est vraiment plus rapide ?

YannDev: gérer les collisions avec les opérateurs binaires

YannDev: :')

RomanceDawn: bah si t'a une simu

RomanceDawn: avec 50 ms

Zorg1: le bitboard dans UTTT ça marche très bien

YannT: oui, c'est infiniment plus rapide

YannDev: en perf je sais

YannDev: je parlais en implém

YannDev: on considère que les opérateurs binaires c'est O(1)

Magus: les bitboards c'est rapide si tu fais beaucoup copies de l'état de ton jeu ou si t'as besoin de regarder l'état de ton jeu rapidement pour repérer une certaines situations

YannT: ah non en implem c'est horrible après

Haashi: Zorg1, je confirme pas pour uttt ahahaah

Haashi: je suis nul :(

YannDev: oui voilà

Magus: (par exemple sur UTTT, ça permet de préparer des masques binaires qui détectes les grilles victorieuses)

YannDev: c'est un peu vnr ça :')

Magus: mais par contre en manipulation de ton jeu c'est parfois un peu plus lent

k4ng0u: Magus, dans ce cas particulier, quand le bleu bouge dans le coin et qu'il voit aucun pac adverse mais que des pastilles manquent sur la ligne, il peut en deduire que rouge a perdu un pac (surtout a ce stade de la partie) mais 'est potentiellement pas generalisable

RomanceDawn: en implé, le code il ressemble plus à rien, le genre de truc à pas faire dans la vrai vie

Magus: parce que t

YannT: mais bon typiquement tu vas écrire tes fonction pour abstraire le bitboard et que ça ressemble à un genre d'objet après

Magus: RomanceDawn: pourtant on le fait dans la vraie vie les bitboards

YannT: j'ai fait ça pour les ordres là par exemple

YannT: private fun Int.speed() = this and 1 == 1 private fun Int.switch() = (this shr 1) and 1 == 1 private fun Int.type() = Type.values()[(this shr 2) and 3] private fun Int.move() = this shr 4

YannT: grr

Haashi: codingame c'est la vraie vie

Magus: quand t'as plein de booléen à stocker, tu fais pas une colonne par bool dans ta bdd

Magus: tu mets un gros entier et tu utilises les bits

YannT: shr et shl c'est le kotlin pour >> et <<

RomanceDawn: hum

RomanceDawn: moi je ferrais une colone par bool pour la lisibilité

Zorg1: sans oublier le fameux >>>

Magus: pour la lisibilité oui

Magus: mais pour les perfs quand t'as des millions de ligne

Magus: ça pique

Haashi: bwarf, un tableau de boolean finalement c'est un entier

RomanceDawn: ouais

Haashi: l'un est aussi lisible que l'autre

YannT: par que des boleans hein

Magus: (et accessoirement les bases SQL savent gérer les bitsets et peuvent te sortir une colonne par bit si c'est la lisibilité qui te dérange)

YannT: tu stocke des int sur un nombre de bit défini aussi

YannT: genre dans mon exemple au dessus, le type du switch est sur 2 bits

b0n5a1: tain de moteur de machine à pain qui a lâché...j'ai dû faire à l'ancienne ^^

Haashi: yes les fameux 4 int16 que tu socks a une seule adresse sur une archi 64

RomanceDawn: je savais pas que les bdd savent faire ça

Haashi: les moteurs de bdd ca fait 40 ans que ca existe, je pense qu'en terme d'optimisation, c'est de loin ce qui se fait de mieux

RomanceDawn: hum

YannT: mouais et aussi non hein

YannT: une requête ça a un cout réseau aussi

Magus: je pense pas que ce soit ce qui se fait de mieux en terme d'optim, quand je vois ce sortent postgre et mysql dans leurs dernières majs, ils ont encore de la grosse marge pour optimiser

Haashi: c'est sur

YannT: c'est comme tout faut s'en servir correctement

Zorg1: produit cartésien partout

YannT: une requête qui fait un full table scan, ça sera toujours moins optimisé qu'un lookup dans ton code par exemple

Haashi: 2400 en bronze :flushed:

YannT: silver mardi, gold jeudi, et legende samedi?

Magus: bon, j'arrive à lire les inputs correctement et initialiser l'état du jeu

Magus: maintenant faut que je fasse le moteur

YannT: perso j'ai arrêté là et j'ai fait des ifs

YannT: (et un DFS)

Magus: la flème de faire des if, j'aurais fini de coder le moteur plus vitre

Magus: *vite

YannT: ouais mais je sais pas quoi simuler avec le moteur

YannT: alors je l'ai pas fait :p

Vry: Moi j'hésite entre faire des if où faire le moteur ...

Vry: ... du coup j'ai rien fait ... :)

Magus: c'est toujours utile le moteur. Même si au final tu t'en sers pour grande chose, c'est rarissime de pas avoir besoin du moteur du tout.

YannT: DFS par pac, ça marche assez bien pour taper le top10 apparement

Magus: si ça se trouve je vais juste m'en servir pour simuler de la merde

YannT: oui bon j'ai écrit le bout pour savoir si tu manges ou si t'es mangé

YannT: j'ai des petits bouts de moteur quand même

Haashi: pourquoi DFS et pas BFS ?

Haashi: et comment tu l'arretes ?

YannT: à depoth 10

Vry: Bon je pourrais utiliser mon FF par pac intelligemment

YannT: mais y'a des breaks heuristiques

dbdr: simulateur de merde, je suis sur que ça cartonnerait sur Steam Magus ;)

Haashi: ah oui j'ai pas pensé depth fixe

YannT: c'est cramé ce que j'ai fait hein :p

Magus: dbdr: je suis sur que ça existe déjà

Haashi: non mais j'aime bien

Magus: mais j'ai pas envie de taper shit simulator dans steam pour vérifier

Haashi: tu fais une dfs pour voir combien de pellet tu pourrais amasser

dbdr: lol

Magus: bon ok trop tard je l'ai fait

YannT: Haashi: c'est ça

Magus: alors shit simulator existe pas

Magus: par contre ...

Haashi: d'ailleurs tu dois surement enlever les pellets au passage pour pas que deux pacs suivent le meme chemin

Haashi: ou un truc du genre

Magus: https://store.steampowered.com/app/973090/Toilet_Simulator/

YannT: DFS avec scoring sur les pellets et d'autres trucs, par pac individuellement, et avec la prise en compte des résultats des pacs précédents pour pas faire de collisions

dbdr: https://web.archive.org/web/20161229061756/https://play.google.com/store/apps/details?id=com.JanRaacke.ScheisseSimulator

YannT: mais en gros c'est nul

dbdr: 1/2 en allemand s'il vous plait :D

Magus: ouai de toutes façons quand un jeu steam met dans ses features "Poop physics", tu sais que t'as tapé un truc louche dans la barre de recherche

RomanceDawn: WHAT'S NEW -shit can now break into several parts

dbdr: lol

YannT: ahah

Haashi: imagine comment tu dois te sentir le boss quand tu écris ce patch note

BlaiseEbuth: Horreur psychologtique...

YannT: ça me fait penser que j'ai acheté XCOM Chimera Squad et j'ai oublié d'y jouer

RomanceDawn: Installs 1,000,000 - 5,000,000 :astonished:

Haashi: dis toi

Haashi: que pour certains

Haashi: c'est un peu l'équivalent de la rule34

Haashi: c'est du pain béni ce genre de jeu pour eux

GhostDev: 2pcmen sur 3 se font bouffer en embuscade

GhostDev: https://www.codingame.com/replay/459862671

dbdr: btw, y a-t-il du porn sur le theme "Rule 34"?

YannT: chercher sur google tu vas voir :p

YannT: (oui)

BlaiseEbuth: Si c'est pas le cas, vois la règle 35

dbdr: meta rule 34

dbdr: si il y a en ça doit etre intello en meme temps

YannT: j'ai cliqué sur un lien un fois c'était des dessins sur deviantart d'un mirage et d'un rafale en train de copuler

dbdr: je pense que c'est des exemples, pas du meta

YannT: et y avait "Rule 34é d'écrit en dessous

dbdr: voila, c'est pas meta

YannT: non, c'est des avions de chasse qui baisent

YannT: literalement

Zorg1: tous les goûts sont dans la nature

dbdr: bon, ben j'ai trouvé l'exception alors!

YannT: c'est pas très nature un rafale j'crois c'est pas kosher

Zorg1: t'as qu'a changé de religion, et en prendre une où le rafale est kasher

Zorg1: ezpz

dbdr: ça existe deja

Magus: ah mais je suis con, smistimax ça marche pas ici ><

dbdr: le rafaelisme, non?

Zorg1: joli ;-)

Snef: Magus à cause des collisions ?

dbdr: Rafëlism

HO: savez-vous quand ouvriront les ligues silver, gold et legend ?

Magus: Snef: oui

Zorg1: Lundi,Mercredi et Vendredi soir

HO: Merci bcp

Magus: celui les actions des autres pacs, un pac peut se retrouver à ne plus pouvoir faire les mêmes actions

YannT: https://i.pinimg.com/originals/c0/01/e3/c001e3d1b820668e76e9241d308ce026.jpg

YannT: sexy

Magus: *suivant les actions

Magus: donc le smistimax c'est mort

Haashi: YannT, gros ce genre de lien, t'as pas peur de te faire ban par un modo.....

YannT: :grin:

dbdr: https://i.snipboard.io/lkrDHe.jpg

dbdr: oh c'est mignon!

Magus: d'ailleurs contrairement à discord, bannir quelqu'un ici supprime pas ses messages

Magus: c'est jamais arrivé, mais si un mec arrive et balance du porno, on peut le bannir si ça nous amuse mais les liens seront toujours la tant qu'on parle pas assez pour les faire partir :D

dbdr: mon lien ça compte comme porn? ;)

YannT: dbdr: pour les fetichistes des <> ?

Haashi: Magus, heureusement que tu dis pas ca un lundi matin d'école

dbdr: il faut plisser les yeux

RomanceDawn: je viens de me rendre compte que je sais pas plisser les yeux

YannT: moi je sais mais je vois pas le truc caché :o

Zorg1: tire la langue

YannT: :stuck_out_tongue_closed_eyes:

dbdr: bon ya les lettres R et P qd meme, S aurait pu y etre </indice>

dbdr: YannT tu m'as laché :(

YannT: :(

YannT: on se retrouvera au prochain push de kovi

YannT: c'est toutes les 5 secondes on aura pas à attendre longtemps

dbdr: il refait un OOC?

YannT: il est un peu plus détente là pour l'instant mais il passe souvent quand même :p

Zorg1: pas encore en légende aussi

Zorg1: brasser une ligue de 2500 c'est + difficile

Vry: lol je suis dans le premier tiers ... mais #817 quand même ... :p

Haashi: fix it

dbdr: let turns = (2 * dist) / 2;

dbdr: j'ai écrit ça moi? :D

YannDev: Salut ! Quelqu'un saurait ce que double free or corruption (out) signifie comme erreur en C++ svp x)

Magus: tu delete un truc déjà delete

dbdr: ça veut dire qu'il faut changer de langage

YannDev: mais ça peut arriver dans quel cas magus ?

YannDev: je gère pas la mémoire moi même

egaetan: passe en python

YannDev: j'ai un algo de 400lignes...

YannDev: mais toutes mes games sont niquées à cause de ça

YannDev: :'(

Default avatar.png JBM: deja 400 lignes

Default avatar.png JBM: mais on est que samedi!

Default avatar.png JBM: tu tiendras jamais la semaine a ce rythme

YannT: oui premier weekend c'est 200 lignes maximum

Default avatar.png JBM: alors choisis-les bien

YannDev: bah après j'ai juste implémenté pleins d'heuristiques pour m'amuser

Default avatar.png JBM: 400 lignes...

Default avatar.png JBM: ...tu trouves ca drole?

YannDev: oui :')

dbdr: il a pas encore eu le temps de faire plus court

YannT: #6 Oo

YannT: but why

YannT: j'ai pas le sentiment que mon code le mérite là ahah

Default avatar.png JBM: t' es trop fort, 'y peux rien c'est comme ca

YannT: imagine si j'avais codé en haskell en plus

Default avatar.png JBM: vision d'horreur

dbdr: on dirait presque qu'il y a du RPS dans ce jeu, du coup

Default avatar.png JBM: toi en haskell

Default avatar.png JBM: c'est trop pour moi

b0n5a1: haha

YannT: <$> pouf top5

Zorg1: attend je teste un truc ....

Zorg1: ah le compilo go n'aime pas <$> :(

dbdr: <$$> pour top 3

Default avatar.png JBM: <$!> (experts uniquement)

b0n5a1: ha tiens, petit test speed ça à l'air de gratter 300 places là

b0n5a1: je faisais que move

YannT: SPEED m'a fait passer de #60 à mon rang actuel

YannT: c'est infiniment plus important que SWITCH

YannT: limite switch tu t'en fous en fait du moment que t'évites de te faire bouffer

b0n5a1: bon c'est quelques lignes dégueux de feignasse rentables là ^^

BigUP: SWITCH + Speed m'a fait gagner beaucoup de places

YannT: switch c'est pas super utile dans la meta actuelle

YannT: sauf si t'as un bot bien tuné pour ça, chasser les pacs adverses c'est même néfaste

b0n5a1: à moins de bouffer un pac adverse par opportunisme

YannT: parce que si tu passe du temps à courir derrière un pac, tu ramasses rien en atendant

YannT: switch ça sert surtout à pas se faire bouffer en fait, faut s'en servir en défensif

b0n5a1: environ 330 places de mieux

b0n5a1: plus qu'à aller voir si la pâte monte

Default avatar.png thoip: yannt c'est utile au contraire.

YannT: et inversement pareil?

Default avatar.png thoip: non quasi tout ceux qui sont dans le heut utilise des swicths.

Mazelcop: nope

Mastard: pas d'accord, bien gerer le switch ca peut rapporter gros

YannT: si tu switch au lieu de speed, de base tu perds du score potentiel. si en plus tu cours derrière un poac adverse, tu perds encore plus de score

YannT: au final ça vaut p'tet ême pas la peine d'avoir bouffé un pac adverse, ça t'a couté trop de score

YannT: (je suis coupable de ça, j'ai des games je bouffe 3 pacs adverse, il m'en bouffe aucun, je perd la partie parce qu'en attendant j'ai rien ramassé)

BigUP: le but du switch, c'est moins d'essayer de bouffer que d'essayer de ne pas se fair ebouffer

Mastard: je viens de jouer contre toi, et justement je t'ai battu grace a ca, tu etais en avance niveau point mais en bouffant ton dernier pac j'ai gagné, alors que je suis 220eme et toi 7e, donc je pense vraiment que ca apporte beaucoup

YannT: mon code est cramé, je sais pas pourquioi il est 7ème hein

b0n5a1: touche plus rien ^^

YannT: et justement, je perd plein de games parce que je chasse

b0n5a1: submit plus

YannT: et c'est mauvais

Mastard: ca je sais pas, j'ai voulu essayer contre toi parceque tu as Merlin en PP xD

Mastard: moi je ne chasse pas, si le pas est pas loin, je switch et je le suis 2 tours max, sinon je vais ailleurs

Mastard: pac*

YannT: après ce qui marche pour toi marche pour toi :)

YannT: on verra peut être plus tard des bots qui gagnent en chassant l'adversaire avec des strats avancées, on sait pas

Mastard: exact, c'est pas une verité absolue

YannT: tout ce que je dis c'est que dans la méta actuelle du top, switch sert quasi à rien

dwarfie: je ne peut que plusser ... j'ai l'impression que j'ai raté mon code et du coup ca switche jamais ... et c'est pas plus mal ;)

R4N4R4M4: Je viens de voir une belle ânerie : je cible la pilule la plus proche... :D

R4N4R4M4: ... même si je suis en mode SPEED !

egaetan: #speedUseless

dwarfie: R4N4R4M4 ... je te rassure pas ... j'ai fais la meme ;)

R4N4R4M4: LOL

joelthelion: moi aussi, j'ai gagné 200 places avec ça :)

R4N4R4M4: Ah, je pense pas que je gagnerai autant, j'étais #120 :D

Mastard: ca fait quoi ?

YannT: implémenter SPEED ça m'a fait la différence entre #60 et #10

Mastard: enfin a part si tu vise une pillule qui est a 1 case et effectivement c'est dommage ^^

YannT: précédement je ne faisais que du SWITCH

R4N4R4M4: Ben oui, je visais toutes les pilules à 1 case

R4N4R4M4: Bon, du coup, ça va tout changer mon comportement d'attaque

Mastard: ah oui du coup c'etait dommage ^^

R4N4R4M4: parce que ça va tout casser dans ma logique ça

egaetan: R4N4R4M4 il faut regarder qqs replays quand même

R4N4R4M4: C'est comme ça que je l'ai vu :D

Mastard: ah bah je me rend compte que moi aussi du coup xD

R4N4R4M4: Si ça peut aider Mastard :)

Mastard: bah ouais thanks ^^

R4N4R4M4: J'ai ajouter 1.5 à la distance d'éval quand elle est à 1, ça a l'air de marcher

R4N4R4M4: *é

egaetan: tu as des puissances bizarres ?

R4N4R4M4: Par contre, mon push monte plus aussi bien qu'avant, je dois rater mes combats

YannT: je comprend riend a cette conversation :joy:

Default avatar.png thoip: 1,41

R4N4R4M4: c'est pas une puissance egaetan, c'est un +

R4N4R4M4: Ah, j'avais pas vu le ? Oui j'en ai :D

egaetan: hah

egaetan: hahaha

R4N4R4M4: value ^ 1.2

YannT: le SPEED c'est un move supplémentaire, pourquoi tu l'implémente pas comme tel? fait 2 moves successifs avec les mêmes règles?

dwarfie: ee meme temps ... normal que tu la perde celle la https://www.codingame.com/share-replay/459915473

R4N4R4M4: YannT, ah bon, du coup mon code était bon ?

dwarfie: si tes pacs se bourrent la gueule tout seul ... abus de biere ?

Mazelcop: YannT pas exactement, tu peux pas revenir sur ta case de départ au deuxième move

YannT: certes

YannT: comme pour une collision en gros

YannT: donc c'est bien 2 MOVE successifs

R4N4R4M4: Ca sert à rien de viser la 2ème pilule alors ?

YannT: sauf que tu considères le retour arrière comme une collision avec ton toi du noël passé Oo

Mazelcop: :)

YannT: R4N4R4M4: c'est une question d'implem

Default avatar.png thoip: si il faut que tu ais un move de 2 deplacements.

YannT: moi je fais un MOVE, avec toutes les règlers qui vont bien (pillule, etc)

YannT: et si SPEED, j'en fait un 2ème

YannT: et dans l'ouput, je donne que l'ordre du 2ème ofc

R4N4R4M4: Le 2ème move il est dans la même boucle ? ou dans la suivante ?

R4N4R4M4: faut que je relise la règle

YannT: le referee gère vraiment ça comme 2 moves

Default avatar.png thoip: il n'y a qu'un move a envoyer.

YannT: regarde l'ouput du referee dans un replay

YannT: il gère un tour entier, et si y'a des pacs speed, il fait un 2ème tour

R4N4R4M4: Bon c'est comme ce que je faisais avant alors, sans le savoir :D

R4N4R4M4: sauf qu'il faut que je vérifie pour les retours en arrière

R4N4R4M4: Merci en tout cas ça va m'occuper :D

QzL: https://www.codingame.com/replay/459924551

C'est possible ce qui se passe entre 157 et 159 ?

BlaiseEbuth: Question étrange...

j3r3m: Il doit y avoir un soucis avec le Spring Challenge 2020...

R4N4R4M4: Haha trop fort, c'est grâce au Speed ? Qzl

QzL: Je veux dire, que je passe entre les 2 pierres avec le ciseau

QzL: J'ai l'impression que le speed permet d'esquiver le cellule intermédiaire

YannT: rien à voir avec le speed

j3r3m: C'est le seul puzzle CG qui fait planter mon ordinateur (genre figé, obligé de reboot), même au chargement du jeu.

YannT: ils sont en collision, donc leur move est annulé, donc tu peux passer

YannT: mais c'est incohérent selon le type de pac la résolution de ce genre de situationb

R4N4R4M4: Et pourquoi eux ils sont en collision et pas toi ?

YannT: le referee resoud les collisions dans un certain ordre

YannT: deux pacs (ou plus) d'une même team collisionnent en premier, et leur move est annulé

Ohjel: Pour le Spring challenge, la league la plus haute pour l'instant c'est la bronze ?

R4N4R4M4: ah ok cool, merci YannT

YannT: là on le refere est incohérent, c'est sur si le 3ème pac de la team adverse peut aller sur la case de collision ou pas

YannT: et là ça dépend du type du pac...

Ohjel: Parce que j'ai une image qui me dit que la Silver league n'est ouverte qu'àpd 11

QzL: D'accord, ça me parait étrange quand même.

YannT: des fois il sera considéré comme en collision (et son move annulé), des fois il pourra passer

YannT: et ça c'est chelou ouais

VincentBab: une fois que tu as saisie la logique c'est assez simple en vrai

BrainSolver: Ici, les collisions sont dans le 1er pas du speed bleu. Le second pas bleu, la place est libre.

YannT: en cas de collision à 3 pacs (dont un de la team adverse), y a une règle chelou qui décide de si le pac adverse peut prendre la case ou pas

YannT: et celle là est pas logique du tout non

VincentBab: elle est pas intuitive mais elle est logique

YannT: ok, quelle est-elle pour toi?

VincentBab: la logique c'est que tu n'a pas de collision avec un pac que tu peu bouffer ou qui peu te bouffer

VincentBab: et une fois que tu as fais les collision pour les autres, tu regarde si il y a encore des pac qui se superpose et tu resou les kill

Default avatar.png thoip: non vincent. si tu as encerclé un pac ennemi et que tu essaies de le bouffer cela sera impossible si plusieurs pacs vont dessus.

VincentBab: oui car les pac qui vont dessus se collisione

VincentBab: qu'elle est ton cas de figure precis thoip ?

Default avatar.png thoip: j'ai déjà encerclé un pac ennemi avec 3 pacs. si tu ne geres pas qui va bouffer cela sera impossible. Et le pac ennemi lui même entrait en collision alors que je le bouffais.

VincentBab: tu as un replay ? car c'est dur a visualisé la

YannT: VincentBab: fait des tests, tu verra le résultat est pas logique

YannT: en vrai ça dépend du type des pacs impliqués (et pas seuilement de qui peut bouffer quoi)

YannT: sur une collision à 3 (dont 1 de l'autre team) jamais personne n'est bouffé, mais pour savoir si quelqu'un prend la case, ça n'a pas de sens

Default avatar.png thoip: desolé je geres ca donc j'ai plus ce genre de replay

egaetan: YannT ça peut être une façon de protéger un pacman alors

egaetan: emmener un copain pour faire une "collision à 3"

VincentBab: att je fait un schema ^^

YannT: egaetan: oui

YannT: collision à 3 = personne se fait manger, jamais

BlueGhost31: mais risque de COVID maxi !!!

egaetan: fallait pas sortir

YannT: effectivement c'est une strat qui ne respecte pas la distanciation pacmaniale

BlueGhost31: heureusement lundi ça déconfine ;)

VincentBab: https://ibb.co/Smymh3b

BlaiseEbuth: Ouai maintenant que manu a dit qu'on pouvait sortir y'a plus de risques de contagion. Ouf.

VincentBab: tu parle de ce cas de figure ? ou le rouge vas a droite ou a gauche ?

egaetan: pas d'ecole pour les enfants, télétravail, ça ne ressemble pas vraiment à un déconfinement

BlaiseEbuth: Dépend où

VincentBab: si les 2 bleu vont sur le rouge et que le rouge vas a gauche personne n'est tué

VincentBab: mais si il va a droite ?

BlaiseEbuth: On dirait une question du permis de conduire ton truc. "Dans cete situation que doit faire la pac rouge ?"

b0n5a1: ou une IA de bagnole qui choisi la solution avec moins de morts...

BlaiseEbuth: Ah ouai :D

Zorg1: réponse C - j'accélère et je klaxonne

Default avatar.png Colios13: tu parle de ça http://moralmachine.mit.edu/hl/fr b0n5a1

b0n5a1: la caisse qui choisi la petite fille sur le trottoir au lieu des 3 vieux dans la voiture en face...

b0n5a1: Colios13 entre autres scénarios oui

YannT: mods ban svp? j'aime pas trop ces histoires de petite fille avec 3 vieux

b0n5a1: :grinning:

Zorg1: ah t'as trouvé des pics sur le sujet ?

GhostDev: c'est de la vulgarisation scientifique

VincentBab: ptin j'arrive pas a faire joué mon ia conte elle meme pour faireu n test

VincentBab: j'ai un comportement chelou...

leojean890: elle est optimisée contre elle même en gros ?:P

VincentBab: non c'est simplement pour aire un test de collision

leojean890: moi jpars sur l'analyse des cooldowns ennemis et la détection des potentielles positions ;p

leojean890: quand pas visible

VincentBab: à la OOC ? ^^

leojean890: ah mais en fait on les a les cooldowns jsuis con:P

leojean890: ouais xd

VincentBab: oué tu as les cooldown quand visible

leojean890: bah l'ennemi me bouffe trop souvent :P

leojean890: quand je le vois pas venir

leojean890: jsuis redescendu 142 là;p

Default avatar.png Colios13: bon 330 avec du manhattan cool

leojean890: et puis mon heuristique de foncer vers l'autre faut que jla revoie aussi

leojean890: en fct de sa capacité à se convertir au dernier moment notamment

leojean890: 330 manhattan ??;o

BigUP: Colios13, 181eme avec du Manhattan :)

leojean890: wtf manhattan ça permet d'aller si haut ?:P

leojean890: c'est que le reste est vraiment bien fait ;P

Default avatar.png Colios13: gg BigUP

BigUP: leojean890, le reste est correct, des corrections de comportement rien de plus

BigUP: je ne gère pas le passage d'un coté à l'autre de la map

leojean890: en plus tu vas faire ça rapidement, passer en bfs;p

leojean890: vu que c'est la même que les shoot d'ooc et puis des bfs on en fait tlt dans CG

leojean890: jcrois mon IA en mode molle oscille entre 100 et 160 mdr

BigUP: je ne sais pas, j'ai peur que ce soit assez gourmand. bon en mem etemps je limite le nombre de pellet que je peux aller chercher

leojean890: les winrate super serrés..

Spifflejedi: o/

poloch0n: Comment on affiche un message ?,

Spifflejedi: hello pr ce nouveau challenge

leojean890: BigUP tu peux en faire plein au premier tour

BigUP: j'ai quand meme du BFS, mais pour me déplacer

leojean890: hello Spifflejedi

Default avatar.png Colios13: Moi de base j'ai du faire un bfs et c'était y a moins d'une semaine

leojean890: et aussi tu peux en faire à partir de ton pac à chaque tour

Default avatar.png Colios13: je débute dans les graphes :sweat_smile:

BigUP: le referee gère trop mal les déplacements :)

Spifflejedi: tite question sur les règles du jeu, savez vous si les pacs voient à travers le tunnel (c'est en ligne droite mais bon on va qd m de l'autre coté du plateau)

Default avatar.png Colios13: what 252 maintenant

Karocyt_aka_Kevazoul: yep

leojean890: moi jfais des deplacements 1 case par une case;)

Karocyt_aka_Kevazoul: Spliffejedi

leojean890: je fais move mon_voisin

leojean890: Colios13 c'est parce que les winrate sont serrés

leojean890: tu peux gagner 20 places en 1 match true story

leojean890: ou perdre

leojean890: c'est du vécu pour moi :p

Default avatar.png Colios13: ouais ça dérank vite

leojean890: bah ça bouge vite, il suffit d'un match

leojean890: je suis passé de 150 à 118 en 5 min

BigUP: ca risque de vachement bouger d'ici l'ouverture de la silver

leojean890: et tout à l'heure de 95 à 155 en 10 min

Default avatar.png Colios13: Bon je vais devoir me renseigner un peu plus sur le BFS pour implémenter ça si vous avez des lecture ou quoi à propos je suis preneur

leojean890: tape sur google "breadth first search"

leojean890: ;p

leojean890: ou "algorithme du aprcours en largeur"

leojean890: parcours

Default avatar.png Colios13: Je sais pas si être 250 maintenant permettra de passer en silver vous en pensez quoi ?

leojean890: BigUP ouais la silver ils risquent de prendre pas mal de monde quand même

leojean890: à moins de laisser la bronze pourrie :P

leojean890: Colios13 le sujet d'avant c'était le 200eme

leojean890: mais là y'a plus de monde en bronze

leojean890: donc spurement genre 400

BigUP: vu le nombre, faut filtrer assez haut quand meme

leojean890: et au pire après suffit d'amélio un peu l'IA

Default avatar.png Colios13: 3252 sur le challenge 2500 en bronze

leojean890: de toute façon y'aura au moins 2 ligues pourries disons

leojean890: faut voir s'ils cut haut en gold ça va calmer du monde

VincentBab: YannT : https://www.codingame.com/replay/459970387

leojean890: et legende jpense qu'ils vont cut bas comme d'habitude

Default avatar.png Colios13: vu mes compétences en IA/gestion d'une map si j'arrive silver je suis déja content

leojean890: bronze et silver en fin de contest je pense qu'elles seront pourries avec les futurs passages

VincentBab: YannT : collision à 3 avec un qui meurt :D

Razielwar: légende c tjs les 20 premiers

leojean890: OOC c'était 10

leojean890: puis 64 en fin de contest 10j après

Razielwar: ah ouais? après ct sur 4 semaines donc fallait pas prendre trop sinon on aurait tous été en légende

leojean890: ouais ils devaient viser 60 à la fin

YannT: VincentBab: c'est pas une collision à 3

YannT: id=3 bouge pas sur ton replay

VincentBab: bah si il bouge en 17 11

YannT: MOVE 1 13 7|MOVE 2 16 11

YannT: id=3 bouge pas

Alshock: Id 1 n'a pas de collision au sens du referee

YannT: ah pardon$

YannT: j'ai regardé lka mauvaise frame

VincentBab: ah ^^

YannT: effectivement -> mais il était au milieu

YannT: je parlais d'une colision ou personne est sur la case de collision

Alshock: c'est quoi le cas que tu cherches ?

YannT: cela dit tu mets en lumière encore un comportement incohérent du referee

VincentBab: ah oui comme le replay de Stilgart hier

Alshock: la même chose avec le bleu qui avance sur la case du milieu ?

YannT: oui

Alshock: dans ce cas il va avancer

YannT: dans ce cas personne meurt

VincentBab: je dirait pas incoherent, c'est pas intuitif mais c'est coherent avec ce qui est ecrit dans le statement

Alshock: oui, et si le rouge va sur le rock il le tue (genre avec un speed)

YannT: non

VincentBab: "Si les pacs sont de types différents, ils peuvent attérir sur une même case mais un pac ne peut pas croiser le chemin d'un pac plus fort que lui : il sera alors bloqué."

Alshock: bah si c'est cohérent, mais une fois qu'on a expliqué les termes : "collision = contact non mortel move annulé", on joue collisions/déplacements/morts

Alshock: ouais nan mais cette phrase faut arrêter de la lire, on ne sait pas qui l'a écrite mais il était clairement bourré

VincentBab: lol xD

Alshock: c'est comme les man des la stdlib

VincentBab: la meme chose avec le rouge qui va a gauche cette fois

VincentBab: https://www.codingame.com/replay/459977028

VincentBab: pour illustrer LA phrase du statement :P

Alshock: attends il est repoussé par le ciseau quand ce dernier est repoussé par le rock, mais pas s'il n'y a pas le rock ?

Alshock: mais là ça ne veut absolument plus rien dire ces collisinos de mort

YannT: collision à 3 = undefined

VincentBab: mdrrr j'ai casser votre cerveau avec ces 2 replay :D

Alshock: "Pacmen, prière de ne culbuter qu'un seul partenaire à la fois"

Alshock: les fantômes sont des mormons

VincentBab: YannT : https://www.codingame.com/replay/459978326 C'est ce cas de figure dont tu parlais ?

Alshock: mais comment on fait une simu avec cette merde ? On est obligés de tous passer en java ? T_T

YannT: yes

YannT: et ce que je disais, c'est que dans ce cas

YannT: la règle qui décide si le pac prend la case au milieu ou pas a pas de sens

YannT: des fois oui, des fois non

Default avatar.png JBM: ouais c'est triste leur description des collision

Default avatar.png JBM: j'ai eu pitie d'eux en lisant ca

Alshock: ah ouais c'est pas "s'il ne collisionne avec personne il y va

YannT: ça dépend du type des pacs concernés

YannT: des fois il va prendre la case

YannT: des fois pas

YannT: et jamais mourrir

Alshock: dans le sens "si personne n'a son type ou est de sa couleur il y va"

VincentBab: il prend la case du milieu si il bump pas avec les 2 autres

YannT: non

VincentBab: bump <=> peuvent pas se bouffer

YannT: ou peut être oui

Alshock: bon ben adieu les simus, on va rester aux heuristiques

YannT: bref, c'est louche

leojean890: simu depth 2 only perso hehe

Alshock: cod egeass

VincentBab: simu avec collision leojean ? ^^

leojean890: code geass, j'ai vu l'anmié il y a lgtps:p

YannT: peuvent pas se bouffer = prend pas la case, peuvent se bouffer = prend la case mais meurt pas

YannT: c'est ptet la règle

YannT: mais ça n'a aucune logique

leojean890: VincentBab bah s'il y a l'adversaire je prends la décision de foncer dessus ou de m'enfuir ou convert:p

Default avatar.png JBM: et s'ils peuvent pas se piffrer?

Alshock: Mais si c'est très simple... pas du tout

leojean890: mais j'évite les collisions du genre on a le même type

Alshock: @JBM ah ça je m'insurge, si on peut pas se piffrer comment on va grossir pendant le confinement ?

VincentBab: peuvent se bouffer = pas de bump

Default avatar.png JBM: en s'empiffrant

leojean890: si on a le même type je pars:p

Alshock: "alors si je fais ce move je gagne ptêtre la partie mais je sais pas le simuler... Fuyons !"

VincentBab: xD

ameler: Moi je me concentre sur le ramassage des pellets, ça c'est une valeur sure :p

Alshock: @ameler paroles de sage

VincentBab: Les pellets c'est la vie !

Alshock: elles au moins elles te culbutent pas dans des sens pas permis et avec un nombre restreint de partenaires

Default avatar.png JBM: les switch c'est instantane, ou tour d'apres?

Alshock: instant quand un mec te bouge dessus il meurt

Alshock: => ne pas manger un mec avec son cd down

Default avatar.png JBM: le cooldown c'est meme combat

VincentBab: yes sinon tu te fait counter ^^

Default avatar.png JBM: pourquoi ils emploient les termes ambigus? c'est expres?

Alshock: c'est quoi qui est amibgu dans le cd ?

Default avatar.png JBM: a brule-pourpoint, tu peux agir quand le cooldown est a 0 ou 10?

Default avatar.png JBM: (justifie ta reponse :p )

Alshock: bah à zéro

Alshock: c'est cooldown donc ça descend :D

Alshock: best justification ever

Default avatar.png JBM: c;est une logique

Alshock: en vrai c'est plus logique à zéro ça te donne le temps d'attente restant

Default avatar.png JBM: mais elle va dans le sens inverse de la temperature

Alshock: si ça montait ça te donnerait le nombre de tours depuis l'utilisation, tu t'en fous plus

Default avatar.png JBM: enfin du rafraihissement de la temperature

Default avatar.png JBM: ah mais j'ai pas de prorbleme avec le fait que ca trig a 0

Alshock: comment ça dans l'autre sens ?

Default avatar.png JBM: c'est juste l'emploi de "cooldown" comme d'une quantite entre 0 et N

Default avatar.png JBM: dans le vocabulaire courant, "cooldown" c'est "rafraichir" (par inaction)

Default avatar.png JBM: plus t'attends, plus c'est cool

Default avatar.png JBM: la coolness grandit avec le temps

Alshock: bof ça me paraît capilotracté

Default avatar.png JBM: juste ambigu

Default avatar.png JBM: je t'accorde que c'est rien face aux collisions

Alshock: pour toi ptêtre pour la plupart des gens c'est assez clair et au pire des cas un test suffit

Default avatar.png JBM: mais c'est recurrent

Alshock: c'est ce que j'allais dire, face aux collisions..; xD

YannT: JBM: l'ensemble du truc est pas clair oui, après pour les cooldowns c'est instinctif (cooldown = 0, tu peux utiliser)

YannT: les collisions, ça n'a pas de sens par contre

Default avatar.png JBM: et c'est d'autant plus dommage qu'on manque pas de termes non-ambigus

Alshock: comment c'est défini en français ?

YannT: "but a pac can't cross the path of a stronger pac: it will be blocked."

YannT: cross a path

YannT: ça veut rien dire

Alshock: euh bah si

Default avatar.png JBM: c'est du francais

YannT: croiser quel chemin t'es sur des déplacements de case à case

Alshock: t'as deux segments, s'ils se touchent ya croisement

YannT: et ben non

Alshock: ok intersection

Razielwar: moi j'ai bien décrypté le referee pour gerer les collisions et ça fait mal

YannT: cette phrase veut dire que tu prend en compte la case d'arrivée uniquement

YannT: y'a pas de notion de "chemin"

Razielwar: en gros quand t'as un plus fort et un plus faible. le faible se fait bloquer, ensuite le fort lui marche dessus et le bouffe

Default avatar.png JBM: un chemin de case a case?

YannT: sinon tu prendrais en compte la case de départ aussio

Default avatar.png JBM: celui-la il me choque pas

YannT: or ça n'est pas le cas

Default avatar.png JBM: en quoi ca ne l'est pas

Default avatar.png JBM: (au sens: en quoi ca change qqch que ce soit le cas)

Alshock: @Razielwarsauf si le fort à pas bougé là le faible se fait bouffer

YannT: "cross path" pour moi = tu peux pas croiser le chemin, donc case de départ + case d'arrivée

YannT: or non

Default avatar.png JBM: j'entends ca comme mouvement simultane

Razielwar: si le fort n'a pas bougé et que le faible va sur sa case il meurt

YannT: et en cas de speed, c'est résolu en 2 tours, donc ça marche pas non plus

Alshock: @Razielwarou que les deux ont bougé en fait

Default avatar.png JBM: la collision gere le cas meme case target

VincentBab: en fait croiser = swap

Razielwar: // If beaten, can go to same coord (we only block crossing in that case)

       if (canEat(other, pac) && pacmenWillShareSameCoord(pac, other)) {
           return false;
       }

Default avatar.png JBM: la croise gere le cas echange

Default avatar.png JBM: enfin "gere"

Razielwar: c'est cette condition dans le referee

YannT: je suis désolé, c'est pas clair

YannT: preuve: ça fait 3 jours que le chat débat des règles de collision

Alshock: @YannT ah bon, tu trouves pas ça limpide ?

Default avatar.png JBM: pour moi c'est clair, mais c'est pas de l'anglais

Razielwar: bon moi les collisions ça semble marcher, j'espère que j'ai pas de bugs je vais pouvoir commencer à simu

Alshock: C'est clair que c'est compliqué surtout

Default avatar.png JBM: rq je dis ca et j'ai pas encore essuye les platres

Default avatar.png JBM: si ca se trouve j'ai rien compris

Alshock: moi je vais commencer par raser les murs

Default avatar.png JBM: on peut SILENCE le meme tour qu'un SPEED?

YannT: SILENCE N 4

VincentBab: MDR

Default avatar.png JBM: vite, une pac-gomme!

YannT: TORPEDO 15 10

Default avatar.png JBM: DOUBLE DINKY

Default avatar.png JBM: wokka wokka wokka

Alshock: Attention ! L'abus de contests de contests de contests est dangereux pour la santé

VincentBab: SURFACE into SILENCE N4 into MOVE N into TORPEDO into TRIGGER into t'est mort ^^

YannT: en fait le haskell c'est comme la magie dans lovecraft, tu perds de la santé mentale

YannT: je le savais en regardant le stream

Default avatar.png JBM: ah oui kutulu

YannT: c'est le lenguage des dieux anciens

Default avatar.png JBM: ca se tient

Alshock: @YannT cette remarque serait justifiée si tu faisais du haskell :P

Default avatar.png JBM: bah c'est plus jeune que C++

YannT: Alshock: j'ai regardé du haskell tout à l'heure et je me suis senti pas bien

Alshock: Je sais bien j'y étais

Default avatar.png JBM: mais a voir les questions sur haskell, j'ai pas l'impression que tlm maitrise ne serait-ce que C++

Alshock: je m'en suis pas encore remis m'en parle pas stp

YannT: c'est le signe de magie eldritch

Default avatar.png JBM: un niveau d'abstraction reserve aux grands anciens

Alshock: Euh "ne serait-ce que" ? Le C++ c'est au moins autant de la magie noire hein

YannT: des horeures qui surfacent des profondeurs du <$>

YannT: -e

Default avatar.png JBM: ah oui c'set <$> qui vous a le plus marque?

YannT: non en vrai c'est la syntaxe

Alshock: c'est surtout le seul glyphe qu'on a retenu

Default avatar.png JBM: c'est pourtant assez bateau

Default avatar.png JBM: on milite depuis des annees pour que ca soit le stub haskell

Default avatar.png JBM: plutot que l'infame getLine, words, let en 3 operations avec ecrasement de binding

YannT: quand t'as expliqué l'utilisation du sortBy, j'ai bien compris l'idée

Default avatar.png JBM: la syntaxe est bien plus simple que C++

YannT: c'est la syntaxe qui s'enregistre pas dans mon cerveau

Alshock: ça, on va dire que c'est pas un gros challenge

Default avatar.png JBM: expression = soit expr OP expr, soit EXPR EXPR

Default avatar.png JBM: compare a la grammaire de c++ on va rigoler

Spifflejedi: http://chat.codingame.com/pastebin/41b27a19-56b3-417e-b53e-23a53531d98d

Default avatar.png JBM: "alors >>, par decret, ne sera plus parse comme le token shiftR mais comme un double > dans les cas suivants: (...)"

gregballot: est-ce que ca vaut les tableaux de pointeurs sur fonction membres

Default avatar.png JBM: "on a un peu merde les namespaes langage, alors on a rajoute le keywork 'typename' pour disambuguifier les cas les plus lol"

Alshock: @Spifflejedi euh, ton while change de cell ou c'est vraiment une boucle infinie ?

Default avatar.png JBM: "d'ailleurs un identifieur sera parsed soit comme nom de type soit comme variable, c'est plus fun pour le tooling"

Default avatar.png JBM: "le mot cle inline est la pour (cheks note) ah ben rien en fait"

YannT: cause toujours espèce de sorcière va

Default avatar.png JBM: c'est lisp qui se vendait un peu comme le langage des sorciers a une epoque

YannT: tu puises dans des énergies pas naturelles :p

Default avatar.png JBM: https://www.gnu.org/software/emacs/casting-spels-emacs/html/casting-spels-emacs-1.html

Bluepioupiou: Y a que moi ou un peu aléatoirement le jeu refuse de jouer mon tour et me fait perde ??

Default avatar.png JBM: naturel, pas naturel

Default avatar.png JBM: c'est le biais d'habitude

Default avatar.png JBM: pour les plus refractaires, c'est encore plus simplement le rejet de l'inconnu

YannT: vade retro haskatanas

Default avatar.png JBM: et reciproquement

Default avatar.png JBM: en toute cordialite

VincentBab: Bluepioupiou : regarde si tu as pas des saut de ligne en trop

Bluepioupiou: c'est tres bizarre. Je lance "rejouer dans les meme conditions" et il me plante pas au meme endroit à chaque fois.

Bluepioupiou: ça plante au moment ou il lit les pellets

VincentBab: c'est que ton code ou celui de l'adversaire n'est pas deterministe

Default avatar.png JBM: mais je reverifierai, je pense que la fameuse ligne du sortBy/liftA2/comparing a un equivalent assez proche en C++

Alshock: @Bluepioupiou j'ai eu des maraboutages étranges au moment de lire les pellets aussi à plusieurs moments

Bluepioupiou: j'y ai pensé mais là j'ai viré tout mon code... il reste que celui de base entre deux print

Alshock: En fait c'était d'autres fonctions appelées plus tard qui venaient faire je ne sais quoi sur mon code avant même d'être lancées

Bluepioupiou: @Alshock ah merci je pensais devenir fou là... mais pour le moment je comprends pas

Bluepioupiou: ah ....

Default avatar.png cawagame: sir

Default avatar.png cawagame: soir

Alshock: 'soir

Bluepioupiou: èsoir

Default avatar.png cawagame: Rajoutez du texte à la fin d'une commande d'un pac pour afficher ce texte au-dessus de lui vous savez coment en fait

Bluepioupiou: si c'est une question oui

VincentBab: MOVE id x y ton message

Bluepioupiou: suffit de, au lieu de mettre MOVE 0 12 5 tu mette MOVE 0 2 5 salut

Default avatar.png cawagame: c 'est une question ( en python)

VincentBab: hum d'ailleur on fait comment si on veux mettre des | dans le message ?

Bluepioupiou: t'évites ^^

Bluepioupiou: Bon je vois pas, parfosi ça va jusqu'a ma victoire, parfois ça plante au tour 3 parfois au tour 5 et toujours avec juste du code de lecture des variables.... suis en Python 3 je vois pas come du code pas encor elancé peut me faire péter un truc alors qu'il petu me mener à la victoire avec les memes conditions (et si, mon code est déterministe, y a pas de hasard mis en oeuvre)

neorel: Y'a moyen de filtrer les games perdu pour les analyser dans le leader board?

Default avatar.png cawagame: merci vincent

Bluepioupiou: moi je vais dans les last battle et je regarde ou suis 2eme c'est tout

neorel: Y'a moyen de filtrer les games perdu pour les analyser dans leq last battle?

Alshock: Je crois pas mais si ya moyen je suis preneur

neorel: Ok j'avais pas compris que c'était les position de fin de jeu ^^ Je pensais que fc'était si t'etais joueur 1 ou 2 :p

Alshock: ah, je croyais que tu voulais récupérer que les perdues genre quand t'en as peu

Bluepioupiou: ouais moi aussi au début c'était obscur :grimacing:

Default avatar.png cawagame: je suis arriver en ligue bronze a spring challenge, hahahah

Bluepioupiou: bravo !

Default avatar.png cawagame: merci

gregballot: Bien joué cawagame :)

R4N4R4M4: Bientôt 2500 en Bronze

R4N4R4M4: gg cawagame

Default avatar.png cawagame: 2470 ligue bronze, j 'ai lutte.

Bluepioupiou: moi suis deg j'ai un bug je comprends meme pas ce qui se passe >< alors que j'étais pret a soumettre

neorel: C'est pas toujours pratique le SPEED, tu passe devant des allées, mais tu peux pas checker ce qu'il y a dedans, vu que tu passes trop vite...

Alshock: mais tu peux rentrer dedans si tu veux voir

njaber: T'as aussi le droit de t'arreter si tu pense que voir ce qu'il y'as dedans est plus important qu'aller vite

njaber: Enfin bon j'ai du mal à voir comment tu vas déterminer ça, même à part en entrainant une IA, même du prédictif ne te gère pas ça de se que je sache

njaber: , à part*

Bluepioupiou: c'est la limite du produit : on ne peut pas le faire apprendre avec les combats. Y a pas moyen de garder des données entre les différentes parties

njaber: Tu peux très bien prendre le code de guthub et entrainer tes IA en local

neorel: J'arrete de speed dès que je peux: sanction - 600 places!

BigUP: neorel, si t'avais tout basé sur le speed aussi ! ;

Bluepioupiou: bon benh 75 places de gagnées pour 4h de code c'est cher payé ><

neorel: Ben j'ai recorrigé, et j'ai gagner pas mal de places au final j'ai l'impression

ggjulio: Salut, tous les top leaderboard utilisent des NN ?

BigUP: Bluepioupiou, sur 1 partie je te bat (en partie) parceque tu m'as laissé une belle pastille a 10 points ;)

VincentBab: ggjulio non je ne pense pas

neorel: Vous gérez les tunnels ?

ggjulio: VincentBab dac merci. C'est la reponse que je souhaitais. :sweat_smile: J'oscille entre 270e et 370e avec mon "ia" Hardcode. S'il fallais faire du NN pour gagner des places, j'aurais give up lol.

Karocyt_aka_Kevazoul: Le jour où y'aura un vainqueur en NN, ça se saura !

ggjulio: Du coups, les premiers ont recode le refere, font des simulations ? Quel genre d'algo est viable ? (Je suis totalement novice... )

ggjulio: *et font

Razielwar: lol j'ai tenté de faire toutes permutations de move pour mes pacs va falloir simplifier. a 4 pacs je tombe parfois à 15000 conbinaisons!

VincentBab: oué plus j'y reflechis plus je me dit qu'une simu ne sert a rien :/

Neabfi: La je suis 200 avec un bête Monte Carlo

Neabfi: et en simulant les collisions n’importe comment, j’en suis venu à la conclusion que c’était pas possible d’à la fois simuler les collisions parfaitement et d’avoir un nombre de payout décent

VincentBab: peut être avec une fonction d'eval aulieu de playout jusqu'a la fin ?

Neabfi: Oula si seulement je playoutais jusqu’à la fin ahah

Neabfi: Je playout entre 10 et 20

Neabfi: tours

VincentBab: ah ok ^^

VincentBab: mais c'est pas mal deja

Neabfi: Tu pars sur quoi comme allo?

Neabfi: *algo

VincentBab: je pense que je vais rester sur des heuristic classique en essayant de determiner la positions de enemie

VincentBab: des enemies*

VincentBab: mon plus gros problème c'est de dispatch au max les pac pour couvrir le plus de terrain

Neabfi: je t’avoue que ça je gère pas du tout, le MC va automatiquement dispatcher les pac sinon ils se marchent dessus

Neabfi: J’ai du mal à voir la frontière entre une heuristic classique et simuler

Neabfi: En gros une heuristique classique pour les actions possibles tu évalues genre est-ce que ça me rapproche des gros points, est-ce que ça m’éloigne de l’ennemie ? etc .

Neabfi: c’est ça?

VincentBab: bah simuler il faut un algo derriere type mcts justement


VincentBab: oué

Neabfi: ok je vois

Default avatar.png Dataze: Pour monter de ligue, il faut être N°1 du classement ?

njaber: Faut être mieux classé que le boss

njaber: Donc parmis les quelques premiers oui