Chat:Fr/2020-05-09
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
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?
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
BenLvre: Je vais devoir faire un bfs aussi je pense, j'ai reussi à me hisser dans la ligue bronze mais bon
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 |
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
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 !
RoanixS: Je ne comprends pas très bien comment utiliser le speed...
RoanixS: cela permet de jouer 2 fois dans un tour ?
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
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: ;)
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
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
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
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
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:
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:
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)
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 😗 🎶
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
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
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
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
Stilgart: egaetan: on n'a pas d'amis, c'est pour ça
dbdr: j'avais pas vu avant
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 ;)
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 ?
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
YannT: :tada:
egaetan: gg JBM welcome
YannT: et avec ton language qui ressemble à de la magie noire en plus
dbdr: banche
dbdr: *blanche :D
dbdr: la magie noire dans les langages, c'est...
Zorg1: s'il faut sacrifier des trucs c'est noire
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
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
JBM: (18:11:39) Stilgart: il a pas tenté un recursive-do cette fois ci
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
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
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
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
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 ^^
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
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 ><
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
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
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
Nayor: En C++ des tableaux pour l'instant
Haashi: enfaite c'est partout
Haashi: meme en Go
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
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
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 !
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
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
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
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: :'(
JBM: tu tiendras jamais la semaine a ce rythme
YannT: oui premier weekend c'est 200 lignes maximum
YannDev: bah après j'ai juste implémenté pleins d'heuristiques pour m'amuser
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
JBM: t' es trop fort, 'y peux rien c'est comme ca
YannT: imagine si j'avais codé en haskell en plus
dbdr: on dirait presque qu'il y a du RPS dans ce jeu, du coup
b0n5a1: haha
YannT: <$> pouf top5
Zorg1: attend je teste un truc ....
Zorg1: ah le compilo go n'aime pas <$> :(
dbdr: <$$> pour top 3
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
thoip: yannt c'est utile au contraire.
YannT: et inversement pareil?
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:
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
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
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
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 ?
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
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
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
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
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
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
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)
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
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
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
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
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
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
JBM: ouais c'est triste leur description des collision
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
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
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
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
JBM: le cooldown c'est meme combat
VincentBab: yes sinon tu te fait counter ^^
JBM: pourquoi ils emploient les termes ambigus? c'est expres?
Alshock: c'est quoi qui est amibgu dans le cd ?
JBM: a brule-pourpoint, tu peux agir quand le cooldown est a 0 ou 10?
JBM: (justifie ta reponse :p )
Alshock: bah à zéro
Alshock: c'est cooldown donc ça descend :D
Alshock: best justification ever
Alshock: en vrai c'est plus logique à zéro ça te donne le temps d'attente restant
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
JBM: enfin du rafraihissement de la temperature
JBM: ah mais j'ai pas de prorbleme avec le fait que ca trig a 0
Alshock: comment ça dans l'autre sens ?
JBM: c'est juste l'emploi de "cooldown" comme d'une quantite entre 0 et N
JBM: dans le vocabulaire courant, "cooldown" c'est "rafraichir" (par inaction)
JBM: plus t'attends, plus c'est cool
JBM: la coolness grandit avec le temps
Alshock: bof ça me paraît capilotracté
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
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
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
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
JBM: un chemin de case a case?
YannT: sinon tu prendrais en compte la case de départ aussio
JBM: celui-la il me choque pas
YannT: or ça n'est pas le cas
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
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
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;
}
JBM: la croise gere le cas echange
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 ?
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
JBM: rq je dis ca et j'ai pas encore essuye les platres
JBM: si ca se trouve j'ai rien compris
Alshock: moi je vais commencer par raser les murs
JBM: on peut SILENCE le meme tour qu'un SPEED?
YannT: SILENCE N 4
VincentBab: MDR
YannT: TORPEDO 15 10
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
YannT: c'est le lenguage des dieux anciens
Alshock: @YannT cette remarque serait justifiée si tu faisais du haskell :P
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
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
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
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
JBM: c'est pourtant assez bateau
JBM: on milite depuis des annees pour que ca soit le stub haskell
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
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
JBM: expression = soit expr OP expr, soit EXPR EXPR
JBM: compare a la grammaire de c++ on va rigoler
Spifflejedi: http://chat.codingame.com/pastebin/41b27a19-56b3-417e-b53e-23a53531d98d
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
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 ?
JBM: "d'ailleurs un identifieur sera parsed soit comme nom de type soit comme variable, c'est plus fun pour le tooling"
JBM: "le mot cle inline est la pour (cheks note) ah ben rien en fait"
YannT: cause toujours espèce de sorcière va
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
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 ??
JBM: c'est le biais d'habitude
JBM: pour les plus refractaires, c'est encore plus simplement le rejet de l'inconnu
YannT: vade retro haskatanas
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
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 ....
Alshock: 'soir
Bluepioupiou: èsoir
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
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?
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:
cawagame: je suis arriver en ligue bronze a spring challenge, hahahah
Bluepioupiou: bravo !
gregballot: Bien joué cawagame :)
R4N4R4M4: Bientôt 2500 en Bronze
R4N4R4M4: gg cawagame
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
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