Chat:Fr/2020-05-16
BigUP: argh toujours 15eme a presque 2 points du boss ! ;(
BigUP: tant pis, je submit mon nouveau code
BigUP: ca à l'air de mieux passer le marais
BigUP: c'est déjà ca
BigUP: J'ai presque pas perdu de temps sur les #200-#300 ;)
Vry: Yo les gens !
BigUP: lo Vry
Vry: Personne pour me pousser ? :D
BigUP: T'es en gold ?
Vry: Non #200 Silver :p
BigUP: je ne bloque plus sur #200 ... la maintenant c'est #80 qui pose probleme, mais c'est un peu plus normal
Vry: Il faudrait que je me motive pour bosser sur le contest mais j'ai pas envie ...
BigUP: Vry, en C, tu m'etonnes ;)
BigUP: Vry, je t'es vu en #215 ! ;)
Vry: Oui voilà ... :D
BigUP: bon bah maintenant je bloque sur #90... mon nouveau marrais...
BigUP: mais j'ai probablement une bonne base pour ajouter des petits tricks
YannDev: idem
YannDev: j'arrive plus à repasser top4...
Monsieur_Y: vous utilisez la distance de Manhattan ?
YannDev: nop
Monsieur_Y: je viens d'arriver en bronze et je suis un peu perdu, vous avez un conseil pour me repérer dans l'espace ?
YannDev: fais un bfs
YannDev: après en bronze manhattan suffit
YannDev: de rien :)
BigUP: Dans l'espace, personne ne t'entend crier !
YannDev: x)
BigUP: oui Manhattan suffit en bronze
[CG]Maxime: Monsieur_Y : bfs pour trouver le chemin du pellet le plus proche puis ensuite tu peux essayer de retenir la liste des endroits où il reste potentiellement des pellets pour gérer les cas où tu ne vois plus rien
[CG]Maxime: speed dès que tu peux au début
BigUP: speed tout le temps, mais il faut gérer le double tour
[CG]Maxime: oui c'est vrai, faut pas filer la case à côté, c'est le risque quand on vise une pellet à une distance de 1
ernestvw: 2eme alleeeeer c'est tellement stressant
Kh4z: @YannDev ben encore Silver :disappointed:
YannDev: :/
YannDev: je ragequit :')
Kh4z: hahaha
ernestvw: faites baisser le boss svppp
Kh4z: comment on fait baisser un boss?
YannDev: faut que des pousseurs tapent sur le boss
Kh4z: mais du coup a l'ouverture d'une ligne, le boss chute enormement le temps que tout le monde passe? :no_mouth:
Kh4z: d'une ligue
YannDev: le boss commence à 200
YannDev: (par exemple)
Kh4z: ah ok
sgalasso: Salut comment faites vous pour prioriser vos pacs ? Vu que j'ai un ordre arbritraire je ne sais qu'après si j'aurais du commencer par le pac 0 ou 1...
egaetan: fais les bouger ensemble
sgalasso: pour le pathfinding
egaetan: ou essaies de changer l'ordre et garde le meilleur resultat
egaetan: ou l'algo hongrois
Kh4z: je rejoue les possibilites jusqua eviter les collisions
sgalasso: trop long à calculer je dépasse les 50ms si je fais ça
Kh4z: ah :no_mouth:
Grillaume: de mon coté j'ai fait un algo hongrois, ça passe niveau timing
sgalasso: Ok merci je vais faire un tour de ce coté ci !
ernestvw: le probleme de l'algo hongrois c'est que ajouter la dependance entre les couts des differentes aretes est vraiment pas facile
ernestvw: et l'ignorer est assez contre-productif
Magus: bon je suis 40ème gold, on va essayer de faire un effort pour passer légende quand même
ernestvw: (id est deux pellets tres proches ne doivent pas etre choisis par deux pacs differents)
Magus: on va coder un truc pour le fog
Vry: toujours sans tenir compte e l'ennemi Magus ?
kalamari: Hello, à quel moment faut il commencer le timer pour la loop en cours ? Juste avant la première lecture du stdin ? Juste après avoir écrit sur le stdout lors de la boucle précédente ?
YannDev: juste après la première lecture
YannDev: de rien :)
BigUP: 3 points du boss, 71eme, et en theorie, j'ai un code meilleur mais qui ne passe plus le top 100 ... voila, voila... c ava etre long de se faire pousser en gold
YannDev: tu te feras jamais pousser xD
YannDev: moi je m'en remets à mes coefficients
ncflipp: bj ; vous pensez qu'on peut atteindre la gold league sans BFS ou autre, ni simu ?
YannDev: sans bfs j'en doute
YannDev: ah là je tiens un truc
YannDev: j'essaie xD
YannDev: là je change des valeurs pour remonter top10
YannDev: ok je suis #5
YannDev: go taper clyde
lamisedaxeh: x)
YannDev: pushez tous :')
YannDev: ensemble on fera tomber cette muraille
YannDev: j'ai tapé Clyde :youpi:
YannDev: https://www.codingame.com/share-replay/465231021
YannDev: #1
YannDev: Oo
Mazelcop: gj
YannDev: je vais baisser clyde
YannDev: je l'ai retapé
WhatTrickeryIsThis: tape encore
YannDev: Ernest je t'ai poussé
YannDev: je pousse toute la ligue
YannDev: lol
YannDev: Non je suis retombé #5 :'(
YannDev: c'est honteux
YannDev: Yes
YannDev: je suis passé
YannDev: j'ai mis une raclé à Clyde
domak: gg
Sissiimperatice: gg !!
YannDev: En vrai c'est clyde qui m'a fiat monter mdr
egaetan: gg YannDev
BigUP: pareille, j'ai un excellent winrate contre clyde, mais le Top100 m'empeche d'aller le taper
YannDev: je l'ai bien baissé
YannDev: ce qui m'a fait passer c'est changer mes coefficients...
BigUP: je vois, je suis plus qu'a 2,5 points
WhatTrickeryIsThis: pareil, si on pouvait dégager les 50 premiers gold que je passe legende
YannDev: par contre je suis 377 gold lol
YannDev: le niveau est grave haut
WhatTrickeryIsThis: objectif 1 -> gold
WhatTrickeryIsThis: objectif 2 -> battre bob
WhatTrickeryIsThis: objectif 3 -> legende
BigUP: YannDev, remodifie tes coeffs...
BigUP: YannDev, tes coefs etait probablement bon pour passer les marais de la silver, mais pas ceux de la gold
R4N4R4M4: Salut tout le monde
R4N4R4M4: Vous avez des idées pour monter ?
BigUP: tin 26 submit en cours en silver, mais pas 1 au dessus de #100, ca va etre long de se fair epousser .?.
egaetan: corriger les nombreux bugs de mon code
BigUP: battre bob
ernestvw: tu te feras pas pousser en etant 100eme je pense
ernestvw: vaut mieux ameliorer des trucs
ernestvw: en argent c'est surtout la gestion des ennemis qui compte j'ai l'impression
R4N4R4M4: Je vois pas d'autres solution que de tout réécrire, donc c'est mort pour moi
ernestvw: j'ai tout reecrit 4 fois au cours du truc
ernestvw: c'est assez rapide si tu as ton ancien code a cote
R4N4R4M4: je suis pas sûr de vouloir prendre le risque de repush, trop galère de monter
BigUP: si je reecrit un truc, je fais un truc full chasseur...
BigUP: en meute
R4N4R4M4: faut trouver un algo, et j'ai pas ça dans mes cartons
BigUP: 49eme... ca monte... lentement, mais pour le moment ca monte
YannDev: ernest
YannDev: argent c'est le bordel
YannDev: :')
YannDev: Trickery, battre Bob c'est pa un objectif
YannDev: il est à la fin de gold
YannDev: pas*
egaetan: vu les submits tres aleatoires que j'ai je pense qu'il me reste pleins de bugs
Spifflejedi: o/
Spifflejedi: dites les joueurs en legende ont majoritairement une fonction d'évaluation ou pas?
ernestvw: non je crois que tous leurs coups sont aleatoires
Spifflejedi: hmmm je sens l'ironie me piquer le dos ^^
Spifflejedi: je dis ca pq YanT disait qu'il avait déjà ranké top20 avec des heuristique
Mazelcop: rentrer en légende avec des bonnes heuristiques ne me semble pas impossible
R4N4R4M4: ça peut faire avec des heuristiques Spifflejedi, mais faut push 50 fois pour passer le top100
WhatTrickeryIsThis: qu'est -ce que je fou dans les derniers avec 80% de win?
Mazelcop: par contre sans tracking des pacmans ennemis je pense pas que légende soit atteignable
WhatTrickeryIsThis: ça marche plus la montée ?
Spifflejedi: @R4: là suis 130 gold d'ailleurs grace a certaines de tes suggestions btw. Merci ;)
WhatTrickeryIsThis: 18-3 je suis toujours au fond
BigUP: ha bah ca !?? ce sont les misteres du classement CG... c'etait mieux avec le précedent algo de classement de ce coté la
Spifflejedi: ah non 70 gold / 130 general
R4N4R4M4: gg Spifflejedi
YannDev: moi je suis gold grâce à R4
YannDev: 0,9^d*value > *
R4N4R4M4: Ah ça y est t'es passé ?
YannDev: oui mdr
YannDev: j'ai juste changé des coefficients
R4N4R4M4: cool
YannDev: et j'ai tapé le boss comme jamais
ernestvw: mais priviliegier les longues distances en fin de partie c'est bien pourtant
YannDev: je suis sorti de silver avec 29
YannDev: Ernest je sais pas
Spifflejedi: j'ai tenté le voronoi mais ca j'arrive pas à le faire marcher j'ai l'impression que c'est moins bon..
ernestvw: si j'ai gagne des places en le faisant
R4N4R4M4: C'est quoi pour toi ernestvw privilégier les longues distances ?
ernestvw: sqrt au lieu de lineaire
ernestvw: quand tu divises par la distance
R4N4R4M4: d'ac
ernestvw: en fin de partie quand y'a plus beaucoup de pellets
ernestvw: (perso quand y'en a moins de 4/5eme)
ernestvw: je prefere aller chercher des longues chaines meme si elles sont loin
ernestvw: que des pellets isoles et proches
BigUP: ernestvw, oui c'est peut-etre un truc qu'il faudrait que je test
R4N4R4M4: tu regardes au moins si tu peux gagner la partie en 3 pellets ?
R4N4R4M4: parce que j'ai pas fait ça encore, mais j'y pense...
Spifflejedi: de mon coté je calcul un coefficient d'efficacité du chemin en additionnant les score des case (avec une fonction d'age) et en divisant pr le nb de "pas"
ernestvw: mais en fin de partie je divise par la racine
BigUP: ernestvw, ene meme temps aller chrecher les longues chaines ca peut etre aussi la strate de base
ernestvw: au lieu du nombre exact
ernestvw: oui mais quand je fais ca en debut de partie c'est moins bon
Spifflejedi: pas mal de privilegier les cluster de pellet je vais peut etre essayer de push ca avnt la fin
BigUP: ernestvw, normalement c'est mieux, mais peut-etre qu'en debut de partie prendre des chaines courtes c'est moins penalisant que de le faire en fin d epartie
R4N4R4M4: faut ressortir l'algo du Tead's Sponsor Challenge :D
ernestvw: surtout faut faire gaffe parce qu'en debut de partie les SuperPellets sont prioritaires
BigUP: je n eme rappel meme plus le Tead's Sponsor
R4N4R4M4: trouver la plus longue chaîne dans un graphe
WhatTrickeryIsThis: mais bordel quand est-ce que je pourrais monté ? j'ai un royal submit je sus toujours 200
BigUP: oui ok, je vois a peu pres
WhatTrickeryIsThis: je perds 1 match sur 10 et je reste au milieu de gold wtf
BigUP: moi, j'ai un floodfill modifié pour aller dans la direction ou je peux faire le plus de pellets en continue
BigUP: je dois meme avoir 3 floodfill modifié l a;)
YannDev: moi j'explore même pas
YannDev: je vais au pellet avec 0,9^d*value maximal
YannDev: :')
YannDev: Comme j'ai une bonne gestion des assignations des tâches ça fonctionne bien
YannDev: quand j'avais exploré tous les chemins possibles j'avais des pacs yoyo
Ulrahid: Yo, pour le moment tous mes pacs vont vers le plus proche pellet de lui-même, mais ducoup les pacs se suivent souvent et jvoulais savoir comment améliorer/changer ça
R4N4R4M4: Voronoi Ulrahid
R4N4R4M4: Tu donnes au pellet son propriétaire le plus proche et chaque Pac ne peut aller que sur une case qui lui appartient
R4N4R4M4: faut chercher le pac le plus proche d'un pellet avant d'aller chercher le pellet le plus proche d'un pac :D
R4N4R4M4: Après faut gérer la multi affectation, mais ça c'est un autre problème
YannDev: tu fais un voronoi aussi ?
R4N4R4M4: C'est le même résultat avec précalcul des distances, donc on peut dire ça
R4N4R4M4: mais je gère mal les zones adverses à cause du speed
YannDev: ah x)
Ulrahid: J'vais aller voir ça R4N4R4M4
R4N4R4M4: par contre, j'ai un gros problème pour affecter les chemins ensuite
R4N4R4M4: le voronoi est trop restrictif
R4N4R4M4: Ca va pour les ennemis car tu sais pas où il sont, mais pour tes amis, tu sais quel chemin tu vas prendre donc ça sert à rien de réserver toute ta zone, et là je bloque..
YannDev: ah ouais je vois
R4N4R4M4: mais bon, ça va m'occuper au moins aujourd'hui, avec d'autres trucs encore plus chelous
YannDev: moi j'ai pire
WhatTrickeryIsThis: ça décolle pas c'est insupportable
YannDev: mon algo avec un calcul des distance qui tient pas compte du speed marche bien que celui qui en tient compte
YannDev: du moins en silver c'était comme ç
R4N4R4M4: J'ai tenté Floyd Warshall sur le papier, mais je m'en sortirai pas, j'ai aucune idée de comment évaluer les chemins ensuite
YannDev: trickery t'as 8,50 :/
YannDev: R4 moi je fais un bfs par pac
YannDev: pour les distances
thoip: felicitation YannDev tu es passé gold
WhatTrickeryIsThis: après 50 wins je je passe de 380 à 350
R4N4R4M4: j'ai un bfs par case aussi
WhatTrickeryIsThis: c'est possible ça?
WhatTrickeryIsThis: ma foi
thoip: oui si tu perds et ganes contre le meme
WhatTrickeryIsThis: mes submits de tout a l'heure je perdais 1 fois sur 10
WhatTrickeryIsThis: voire moins
WhatTrickeryIsThis: il fallait au moins 50% de matchs pour monter 200
WhatTrickeryIsThis: là je perds bien plus et je suis dejà top 200
WhatTrickeryIsThis: 12%
WhatTrickeryIsThis: r4 un bfs par PAC et par PAC enemy suffit nan?
YannDev: ouais Thoip :p
WhatTrickeryIsThis: pourquoi par pastille ?
YannDev: merci :)
WhatTrickeryIsThis: t'es sensé avoir déjà toutes les distances necessaires sur tes pacs
YannDev: ça passe un bfs par case ^^"
YannDev: un bfs c'est O(E + V)
YannDev: t'as E*V cases
WhatTrickeryIsThis: si t'aime pas les perfs xD
YannDev: donc tu as du E*V * (E + V)
YannDev: heu non j'ai dis e la merde c'est pas E*V
YannDev: c'est nbRow * nbCols * (4 * nbRows * nbCols)
YannDev: ça fait 10^6 opérations
YannDev: en pire cas
YannDev: donc ça passe largement en c++
Mazelcop: sauf si tu fais des simu et que tu dois appeler tes fonctions d'eval ~10k fois en 50 ms
Vry: Mais arrêtez de me pousser ... je vais rentrer dans le top #100 ... :)
Magus: Vry: ma seule prise en compte de l'ennemi c'est si je peux le traverser ou pas
Magus: donc mes pacs vont pas aller se suicider volontairement sur l'ennemi, et si j'ai le bon type ils vont essayer de le traverser
Magus: mais c'est tout
Magus: d'ailleurs si tu regardes mes replays, mes pacs meurent en restant à côté d'un pac ennemi qui peut les bouffer ... et ils se font bouffer :D
Vry: Ok, merci
Magus: mais donc oui, avoir une gestion de l'ennemi en mode poteau qui bouge pas et aucune gestion du brouillard de guerre, ça fait 40 gold
Mazelcop: T'es toujours sur un algo génétique Magus ?
WhatTrickeryIsThis: un petit malus si t'aventure prêt du poteau ça marche
WhatTrickeryIsThis: proche à une distance de la speed du poteau c'est mieux
WhatTrickeryIsThis: même si tu peux traverser le poteau, c'est probable qu'il prendra les pellets qui sont derrieres avant toi
WhatTrickeryIsThis: on peut retirer les cas dans un couloir
Magus: Mazelcop: non j'ai changé
Neumann: T'as quoi mtnt ?
Magus: un AG je pouvais faire que depth 6 ou 7 sinon j'avais pas assez de simus pour que ce soit potable
Magus: j'ai un beamsearch par pac
Magus: je fais depth 1 pour un pac, puis depth 1 pour un autre, ainsi de suite, puis depth 2 pour un pac, bla bla bla ...
Neumann: 6 ou 7 c'est déja beaucoup
Ulrahid: R4N4R4M4 bon jsp si j'vais réussir à utiliser voronoi mais merci pour l'idée :) Autre chose, j'ai une seule liste pour tout les normal pellets, faut-il faire autrement ?
Magus: en général je fais depth 10
Magus: avec 2 pacs je fais depth 15
Neumann: Je suis à depth 2 ..
Magus: bah après tu peux compenser avec une meilleur éval de toutes façpns
Magus: la mienne est pas terrible :D
Magus: ça se résume à bouffer et éviter les culs de sac
WhatTrickeryIsThis: autant faire des bfs depth 20 et swapper
Magus: ?
WhatTrickeryIsThis: j'ai essayé avec 120 swaps sur les 5 pacs depth 20 ça passe
WhatTrickeryIsThis: comme ton search mais en bruteforce
Magus: ouai enfin un bfs depth 20 on est d'accord que tu simules pas les collisions ?
WhatTrickeryIsThis: avec collissions
Magus: parce que depth 20 en bfs le je fais pas moi, même pour un seul pac
WhatTrickeryIsThis: mais y à une astuce
WhatTrickeryIsThis: une astuce super siimple
Magus: une astuce super simple qui fait que Neumann est devant toi avec depth 2 alors que t'es depth 20 ?
Vry: What trickery is it?
WhatTrickeryIsThis: à un instant t : plusieurs pac sur la même case -> tu passe au tour suivant
WhatTrickeryIsThis: + tous les pacs sont de vitesse 1
Neumann: wat
Magus: rien compris
Magus: enfin si j'ai compris que t'empêches le speed dans ta simu
Magus: mais le coup de passer au tour suivant avec les pacs sur la même case :/
WhatTrickeryIsThis: je m'en sert de temps à autre ;d
WhatTrickeryIsThis: mais la speed est inutiles quand tu regarde bien
Neumann: L'astuce c'est de coder un moteur faux
Magus: oui mais bon, je pense pas que de voir depth 20 soit si utiles que ça
BigUP: Neumann, ca peut marcher tellement tout le monde fait la meme chose
Magus: depth 20 t'as farmé toute la map, sauf que t'arriveras jamais la vu que l'ennemi il bouge
Magus: mon AG était depth 6 parce que comme ça tu peux au moins simuler le speed + ce que tu en fais
WhatTrickeryIsThis: depth 20 dans le brouillard c'est tout pourri c'est clair
Mazelcop: je confirme, j'ai de meilleurs résultats à depth 10 que 20
Magus: dans la mon beam search j'ai mis un beam pour au moins bruteforce jusqu'à depth 4, le reste sera prune
Mazelcop: bruteforce jusqu'à depth 4 même avec 5 pacs ? joli
Magus: nan mais c'est découplé
Mazelcop: ah ok
Magus: c'est bruteforce depth 4 d'un seul pac :D
Mazelcop: ça me rassure :)
Magus: c'est pas bruteforce de toutes les combinaisons de toutes les actions de tous mes pacs
WhatTrickeryIsThis: ah si la speed à 1 me fait perdre des tours si j'ai besoin de faire demi tour dans un cul de sac ou de changer à un carrefour
Magus: si je fais ça je pense que je suis comme Neumann, je serais depth 2
Magus: mais si tu veux une vraie astuce WhatTrickeryIsThis, tu empêches les aller retour dans des couloirs qui sont pas des culs de sac
Neumann: Je suis en découplé aussi
Magus: ça sert quasiment jamais de faire ça
Magus: donc autant pas le tester
Neumann: Et je commence à TO à partir de depth 4 :/
Magus: c'est peut être grace à l'astuce que je viens de donner que je peux faire depth 4 en "bruteforce", non ?
Neumann: J'interdit aussi aux pacs de revenir sur leurs pas
Magus: parce que résultat un pac tout seul dans un couloir, il se retrouve vite à avoir qu'un seul coup possible
Neumann: Sauf quand ils sont dans un cul de sac
jft63: j'ai essayé un beam search avec tous les pacs mais il y a trop de solutions possibles.
WhatTrickeryIsThis: mine de rien y à une chiée de couloir et culs de sacs
jft63: mais sans faire ça la notion de coopération est perdue non
BigUP: un peu
Magus: non
Magus: enfin un peu, mais pas bien grave
Magus: c'est juste que tu vas fixer l'action d'un pac avant celle de l'autre
Magus: donc ton autre pac sera obligé de faire une action en fonction
jft63: ok je vois
Magus: mais c'est ça ou tu peux même pas bruteforce depth 2 en fait
jft63: exact
Magus: et surtout, dans les faits, tes pacs sont rarement l'un à côté de l'autre
Magus: parce que sinon c'est que tu farmes mal
Magus: donc ils vont rarement devoir coopérés
WhatTrickeryIsThis: le brute force c'est la vie
jft63: dans le beam search on ne peut pas faire jouer l'adversaire
Mazelcop: c'est pas si évident
Magus: on peut, mais si tu découples ça sert à rien
Mazelcop: tu peux essayer de le faire jouer plus ou moins aléatoirement, ou le faire jouer les coups que tes fonctions d'eval prioritiseraient
YannDev: j'aurai pas le temps de faire une simu
YannDev: domaj
jft63: ah oui en effet
Magus: jft63: en fait j'ai essayé beamsearch l'adversaire au début, mais c'était stupide si tu découples
Magus: ou alors faut le faire jouer sans connaitre tes actions, et faut te simuler toi même avec un dummy
Magus: trop le bordel
Magus: pour ça que pour l'instant mon IA prend l'adversaire pour un poteau, faut que je trouve mieux :D
Mazelcop: je fais pareil Magus, pas trouvé mieux non plus pour l'instant
Magus: ouai j'ai vu, quand je test mon IA contre la tienne ça fait n'importe quoi
jft63: Magus je vois ce que tu veux dire pour le découplage. Je vais essayer de faire le beam search pac par pac.
Magus: enfin je vais essayer de passer légende histoire de pas trop avoir honte de ce contest au final
jft63: et après j'imagine que le tracking va jouer un rôle important aussi ...
YannDev: du coup ton moteur te sert à quoi ?
jft63: il y a du boulot
Magus: YannDev: a simuler le tour prochain en fonction des actions que je fais ... ce qui est déjà pas mal
Magus: ça évite au moins à mes pacs de se bloquer entres eux
Magus: en pensant qu'ils peuvent se traverser
YannDev: ah
YannDev: sinon tu mets des murs
Magus: des murs qui se déplacent à chaque tour
Magus: c'est donc ces pacs
Magus: *des
YannDev: oui x)
YannDev: mais du coup ya pas de moteur à faire
YannDev: Après ça doit être un peu dégueu
YannT: ouais enfin c'est pas si simple non plus
YannT: parce que selon la direction de déplacement d'un pac, un autre pac peut ou pas prendre la case qu'il libère aussi
Vry: encore un bug de mois ! :p
Vry: *Encore *moins
Vry: Pas foutu de coder sans bug, c'est pas gagné
Magus: ouai moi aussi je viens de découvrir que je prenais pas en compte quand les bigs pellets disparaissent dans les inputs
Vry: Tout un système pour que les pacs ne se marchent pas dessus sauf que j'avais un décalage de depth entre les pacs ...
Magus: joli bug, je considérais qu'elle était encore la tant que j'avais pas vu la case
Vry: Ah attends ... ça m'en fait peut-être un deuxième à corriger ...
WhatTrickeryIsThis: ah moin non plus merci
Magus: lol
WhatTrickeryIsThis: c'était dans une version antérieur j'ai pas penser à merger
Vry: Nan c'est bon !
Vry: Si j'ai un big pellet et qu'il n'est plus dans la map en input je le vire
WhatTrickeryIsThis: chiant à coder d'ailleurs la disparition mystere des supers pellets
Vry: #103 avec bug ...
YannDev: le big pellet aussi je l'avais oublié
YannDev: du coup j'avais des pacs qui mangeaient du vid
YannDev: bon va falloir que je trouve une nouvelle heuristique :/
jft63: mais les bigs pellets on les a à chaque tour
YannDev: oui mais si jamais le big pellet tu l'as plus
YannDev: parce qu'il a été mangé
domak: Lord Betrayus il est pénible, il pose des leurres... il laisse trainer des bots en speed 1 et quand tu vas les bouffer, il switch
YannDev: il porte bien son nom...
WhatTrickeryIsThis: ça veut dire que la case de l'ex super pellet et vide et qu'il existe un path d'un PAc qui lui y emmène
WhatTrickeryIsThis: ça met à jour la map
Magus: domak: dans un sens, attaquer un pac qui a son cooldown de up c'est pas une bonne idée
Vry: Wow, top #50
Vry: ... salut BigUP
domak: Magus pas fait expres, msieur
domak: mais effectivement je vais ajouter le test
Ulrahid: Lorsqu'un pac meure il n'est plus en input au tour prochain si ?
WhatTrickeryIsThis: si, à moins que ce soit qu'à partir de silver
WhatTrickeryIsThis: il a un type DEAD
Ulrahid: okay j'en suis pas à là ^^
YannDev: 400 en gold :o
thoip: oui l'ia de silver n'est pas adapté à la gold.
WhatTrickeryIsThis: les dead c'est qu'en gold +?
thoip: Le niveau est seulement plus relevé en gold si tu as une ia qui n'est pas au top au form c'est mort.
thoip: moins j'ai cassé mon code mintenant mes pacs vont sur les cases sans pastilles volontairement.
BigUP: Vry, re, oui Top 50, mais pas de matchs... je ne passe pas le Top 100 par mes propres moyens et j'ai un winrate > 50% contre le boss ...
BigUP: Vry, peut-etre contre toi des matchs ceci dit... ils ne sont pas nombreux a passer le top 100
BigUP: en cours de submit
BigUP: ha mon IA ne gange pas grand chose conte toi... j'espère qu'on n'aura pas de match ! ;)
Vry: Another bug ... je n'enlève pas le pellet que je bouffe sans le voir ... :upside_down:
Vry: ... au détour d'un virage en speed ... c'est un grand classique au final, tout le monde a dû le faire.
domak: Allez Vry, BigUP, think BIG!
egaetan: Allez WhatTrickeryIsThis fonce !
Vry: Ouais domak, mais dans trente minutes je prends la voiture pour bbq déconfiné à un peu moins de 100km :D
domak: là effectivement ça va être think little little big
Vry: Demain sinon !
Vry: Il faudrait que je remplace mon FF pour un DFS histoire de pouvoir tourner en rond ... mais le FF en soit marche bien aussi
Zakaoai: J'ai fait le con j'ai resubmit et je suis passé de 60 a 320 :'(
Vry: 11/12 en début de submit c'est pas mal ...
BlueGhost31: je compatis Zakaoai hier dans le top 20 et depuis en revenant au même code j'arrive plus à rentrer dans le top 100 :disappointed:
BlueGhost31: ce challenge est frustrant il y a une telle dispersion dans les configs de jeux
Zakaoai: Va falloir que j'implem plein de truc pour améliorer mon IA encore :'( Prédiction Enemie + simulation. Que des features pas simple ...
Magus: Vry: c'est possible ça de manger sans voir ?
Magus: je vois pas le cas où ça peut arriver
Magus: faudrait que t'es passé par une cellule ou tu n'as plus la vision
thoip: oui ca arrive quand 2 pacs se croise.
Magus: mais c'est pas possible théoriquement
Magus: les pacs bloquent pas ta vision
Magus: (on parle de manger des pastilles la, pas des pacs)
thoip: les pastilles tu le vois necessairement
Zorg1: classique ça me le fait tout le temps
Zorg1: ah scroll :D
Zorg1: Automaton2000 AutomatonNN la forme
Automaton2000: moi je vais au plus proche de 0
AutomatonNN: pendant le contest c'est pas trop compris toi
Magus: https://www.codingame.com/share-replay/465345034 ah cool j'arrive à prendre des parties au boss
Vry: Magus, tu avances de deux (left + down) par exemple. La pastille sur la deuxième case, tu ne l'as même pas vue.
Magus: oui mais tu sais que la case est vide
Magus: t'as la vision de la case et dans les inputs t'as pas de pellet dessus
Magus: (et puis t'es même carrément dessus :D )
Vry: Oui, encore fallait-il mettre à jour cette donnée ... (petit détail que j'avais oublié)
Vry: Je mettais à jour en fonction de la vision du pac en oubliant sa propre case ...
Magus: ah triste :D
Vry: Le code le plus complexe était là ... :D
Neumann: Ah merde, ça me fait penser quand ton exemple, je mets pas à jour l'info du premier pellet que j'ai mangé
Vry: J'ai battue Yobo \o/ (souvenir pour OoC)
Neumann: Qui est désormais hors-vision au début du tour suivant
Neumann: s/quand/que dans/
Vry: Neumann, le premier pellet est toujours dans ton champ de vision (sauf si tu parles de la case #0)
YannDev: ce qui est relou sur ce jeu
Magus: Neumann: c'est ce que je disais au dessus, t'as toujours la vision de la première
YannDev: c'est que les games se jouent à rien du tout
Magus: pour ça que je comprenais pas le bug de Vry
Neumann: Ha oui je suis con, j'ai rien dit
YannDev: j'ai mis 3h a repassé top 10 silver avec le même code
YannDev: au final j'ai niqué mes coefficients et j'ai roulé sur toute la ligue...
YannDev: et l'autre chose c'est qu'il y a un énorme facteur chance
Vry: J'ai pas encore de coef. mais ça pourrait venir
YannDev: c'est rare d'avoir un écart net entre deux ia
YannDev: Vry en fait c'était pas vraiment des coef
YannDev: c'était le score des VIEWED_PELLETS et des LAST_TURN_PELLETS
YannDev: j'ai juste augmenté de 1 les viewed pellets
Magus: https://www.codingame.com/share-replay/465351523 quand tu tests contre toi même c'est pas très utile des fois ....
domak: c'est plus -1 l'id du boss?
BlueGhost31: Magus avec la moitié moins de pacs tu finis à égalité donc tu progresses ;)
YannDev: mais c'est le même code ?
YannDev: ou c'est v2 vs v1
Neumann: domak: -2
Magus: non le rouge c'est mon code dans l'IDE j'ai quelques chanements
Neumann: -1 c'est ton code de l'IDE
Magus: *changements
domak: merci
YannDev: bah le rouge est super fort
Neumann: Sinon le boss Gold c'est 2941103
Magus: pas assez fort pour être légende pour l'instant
YannDev: ah
YannDev: ya des gens full heuristique en légende ou pas ?
Magus: vu le jeu, probablement oui
YannDev: Ah
YannDev: bah c'est des génies
Magus: bah de toutes façons le boss gold est en heuristique et il a été copié de quelqu'un
YannDev: parce que ya pas vraiment d'heuristique miracle
Magus: qui est lui même en légende maintenant
YannDev: Hm
YannDev: ya au moins de l'exploration de chemin je pense
YannDev: mais le soucis de l'exploration de chemins c'est que ça fait le yoyo
BlueGhost31: à moins d'avoir un alignement des planètes lors de ton run pour tirer les bonnes configs
YannDev: et je sais pas fix ça...
TidyMaze: hop, un petit voronoi => 200 places de gagnées ... ça sauve les meubles
YannDev: en silver ?
TidyMaze: ouais
YannDev: tu peux faire un code bidon pour passer gold
YannDev: j'ai pleins d'heuristiques éclatées
TidyMaze: c'est insultant
YannDev: non mais en fait
WhatTrickeryIsThis: je gagne 20 places avec l'astuce de Magus :yum:
YannDev: parfois on cherche trop dur
YannDev: et on bug son code
WhatTrickeryIsThis: encore 2 tips et ce sera bon
YannDev: moi j'avais un truc hyper tricky au début
TidyMaze: j'ai des trucs simples qui gérent pas mal de choses
YannDev: mais ça marchait pas
YannDev: t'es combien ?
YannDev: sinon si tu as des valeurs pour les différentes pellets (genre Pellet déjà vue, pellet du tour précédent etc) et que ton scoring dépend de ça
YannDev: essaie de jouer avec le valeurs
YannDev: les*
YannDev: c'est ce qui m'a fait passer gold
TidyMaze: ouais ouais, mais ça marche pas hyper mega bien
YannDev: ya un mur dans le top 200 de silver
TidyMaze: j'ai pourtant de l'experience sur CG ^^
YannDev: avec plein d'ia bizarres
YannDev: au pire
YannDev: 0,9^d*value
TidyMaze: de mon temps c'etait -3*v
YannDev: (no joke c'était le plus gros changement de mon code...)
Magus: WhatTrickeryIsThis: bah ouai moi au moins j'ai des vraies astuces
Zorg1: bof value/d^2 marche mieux de mon côté :p
YannDev: je vais essayer :')
Mazelcop: value / sqrt(d) chez moi
YannDev: value/d^2 faut le maximiser
YannDev: ?
Zorg1: la sqrt me donnait de mauvais résultat mais j'avais un autre bug à l'époque :p
YannDev: j'ai l'impression que ça marche moins bien chez moi
YannDev: on est d'accord qu'il faut maximiser (value)/d^2
YannDev: et pas le minimiser
Zorg1: bah moi je fais une somme
YannT: mais prend pas des eval random du chat sans comprendre ce que ça fait aussi :laughing:
YannDev: moi je reste sur mon 0,9^d*val
YannDev: :')
YannDev: Mais Zorg tu fais comment pour évaluer tes chemins sans avoir de yoyo stp ?
YannDev: Quand je faisais un bruteforce de tous les chemins j'avais un yoyo
YannDev: genre le pac commence un chemin
YannDev: puis le chemin devient un peu moins bien
YannDev: donc il change de chemin
YannDev: et au final il mange plus de vide qu'autre chose
Mazelcop: si le chemin devient moins bien alors qu'il s'approche de pellets, c'est qu'il doit y avoir un souci quelque part
WhatTrickeryIsThis: orfff, y à un gros pikatchu tout moche qui m'a tapé 3 fois :D
YannDev: il a commencé à manger le chemin
YannDev: du coup le score du chemin baisse un peu
YannDev: :/
Eriok: et il y a d'autres pacs
WhatTrickeryIsThis: je suis puni parceque j'ai pas fait pika contest c'est ça?
Mazelcop: ah, ça ça a du sens. genre le pacman il mange 3 pellets dans un cul de sac avant de repartir
YannDev: bon après avant je calculais mon score de chemin bizarrement
Zorg1: oui moi typiquement je yoyote c'est par ce qu'un autre de mes pacs se rapproche ou un enemi apparait
YannDev: oui c'est ça mazel
YannDev: Mais t'as pas le soucis du gauche droite gauche droite..
YannDev: ça venait pê de l'éval du chemin alors
Mazelcop: si tu as une fonction d'eval cohérente, normalement il n'y a pas de souci de gauche droite
YannDev: bah ça devait venir de ça
Vry: Et merdeeeeeee ... je suis #2 ...
YannDev: je faisais sommeDesValeursCases/longueurChemin
YannDev: gg Vry
Vry: Ah non #1
YannDev: laisse toi pousser ;)
YannDev: ah bah gg
YannDev: Il manque plus que BigUp
Vry: c'est vraiment méga aléatoire les submits ...
YannDev: oui
YannDev: :')
Zorg1: gg vry welcome to gold
Vry: ... surtout si on se prend les peids dans le marécage ...
Vry: Attends Zorg1, c'est pas encore fait ...
YannDev: bon on attend BigUp maintenan
YannDev: maintenant
YannDev: *
Vry: 88% je prends des défaites ...
Vry: 90% ça repasse !
YannDev: gogogogogo
Fangel: ah vous vous attendez ? :)
YannDev: Bah on était un peu la team de galériens
Zorg1: ah désolé vry
YannDev: qui avait des codes bug/pas finis à l'ouverture de gold
YannDev: du coup on est pas passé direct
Vry: 94% + 0.35
YannDev: et après silver c'est devenu un marécage sans fin
Vry: :sunglasses:
YannDev: gg :p
YannDev: vive les pigeons
YannDev: wait ya un gold avec un score négatif
YannDev: le #405
Vry: Mouhaha au final un code avec moins de bug mais "simple" passe.
YannDev: moi c'est pire
YannDev: un code simple avec plus de bugs passe...
Zorg1: gg
YannDev: la version où le calcul des distances prenait en compte le speed faisait des rankings de merde
Fangel: c est terrible, tu vas dormir tu reviens le lendemain, tu perds 15 places... Vous voulez pas dormir la nuit aussi les gens ?
domak: gg Vry
Fangel: gg Vry
Vry: Merci
BlueGhost31: gg
YannDev: Fangel desfois tu peux avoir une bonne surprise
YannDev: tu reviens et tu as été poussé de 90 places
YannDev: :')
Vry: Cool dans l'IDE je bats Lord Betrayus ...
YannDev: et c'est là que tu passes légende
YannDev: :')
Vry: https://www.codingame.com/share-replay/465369130
Vry: ... mais le problème c'est tout les autres ! :p
BlueGhost31: tu as tout compris Vry ;)
YannDev: en silver je détruisais Clyde
Vry: Bon j'ai été productif au moins ... 2h de code pour Silver -> Gold
YannDev: mais j'ai eu du mal a arriver assez haut pour le taper
Fangel: ouais faut avouer que je suis passé légende en revenant de sortie, j y ai pas cru
domak: Vry méfie toi, plus je le bas dans l'ide plus j'ai un classment de merde
Vry: On verra demain pour la suite
domak: parce que du coup je joue très défensif
Fangel: j'étais parti 1h et je me tourmentais de tous les bugs que je venais de soumettre
YannDev: On en parle que betrayus me fait pas un seul kill
YannDev: https://www.codingame.com/share-replay/465370665
YannDev: c'est moi qui le kill lol
Magus: betrayus fait que les kills qu'on peut pas éviter
YannDev: ah c'est un malin
YannDev: faudrait que je fasse ça aussi !
Magus: par exemple si vous êtes encore sous cooldown et que lui il peut speed avec un pac du bon type, il va speed pour venir vous buter
YannDev: pff c'est honteux
YannDev: il a pas les co**** de venir se battre
Magus: ah 21, ce code a l'air mieux que le précédent
YannDev: il te prend qu'en traître
Magus: je me demande si je vais réussir à passer légende sans coder de quoi gérer le fog
Magus: ce serait drôle que ce soit possible
YannDev: gérer le fog pour les pellets ?
YannDev: ou pour les ennemis
Magus: les 2, la je gère rien dans le fog
YannDev: wtf
YannDev: comment tu fais pour être #21
Magus: je vais aucune supposition sur les pellets déjà mangés ou pas. Donc j'ai juste l'info des grosses pellets qui disparaissent
AdaoSwann: Vous avez des combats de bots à me conseiller, qui sont plutôt abordable ?
Magus: *je fais
YannDev: moi j'ai une bonne map de pellets
Magus: et je sais pas ou est l'adversaire dés qu'il sort de ma vision :D
YannDev: et je sais à 90% où ya des pellets
YannDev: malheureusement je me déplace pas trop optimalement
YannDev: j'ai encore mon heuristique de bronze...
Magus: donc je suis juste bon en farm. Et comme je simule pas l'adversaire, je suis même pas bon pour éviter de mourir
YannDev: mais tu pourrais être meilleur en farm
YannDev: si tu gères les pellets déjà vus
Magus: enfin si, je m'interdit d'essayer de tuer un pac qui a son cooldown de up
YannDev: + déduis des cases sans pellets à partir de ce que tu vois
Magus: histoire de pas me suicider sur un pac va juste switch quand je lui fonce dessus
WhatTrickeryIsThis: le top 20 est enervé y à de l'action
YannDev: Essaie d'ajouter la déduction des cases sans pellets
YannDev: + sauvegarde des pellets déjà vus
Magus: non mais quand même mon IA est pas aussi débile, je pars du principe que toute la map est rempli de pellet au tour 0 hein ...
Magus: et j'update les cases que je vois
YannDev: oui mais
YannDev: à chaque tour
YannDev: t'es censé voir des pellets
YannDev: si tu les vois pas c'est qu'elles n'existent pas
Magus: bon ce code va pas faire top 10 gold je pense, triste
WhatTrickeryIsThis: s itu pousses tout le monde si
YannDev: par contre comment vous comptez passer légende àl
YannDev: là*
YannDev: le boss est à 27,26 et le deuxième à 25,49 -_-
egaetan: il faut de l'élan
Magus: bah je compte passer légende en étant meilleur que tout le top 10, c'est comme ça que ça fonctionne
R4N4R4M4: On bosse notre code en attendant YannDev :D
YannDev: :D
WhatTrickeryIsThis: y aura bien encore quelques IA pour descendre le boss dans la soirée
YannDev: Moi je vais essayer de reprendre mon code qui bruteforce les chemins
R4N4R4M4: Le top 10 suffira pas Magus, faut être meilleur que le top 200 aussi
WhatTrickeryIsThis: suffit de se caler dans la bonne vague
R4N4R4M4: En tout cas, c'est pas encore mon cas
YannDev: ouais
YannDev: ça c'était la grosse difficulté pour passer gold après ouverture
Magus: R4N4R4M4: bah le top 200 gold ça va vu que la je suis 15ème :D
YannDev: Magus à chaque submit tu te reprends le top200 dans la gueule
Magus: pas très grave ça se passe vite
egaetan: il suffit de passer une fois
YannDev: et plus tu vas vite sur le top200 plus tu fight le top10
WhatTrickeryIsThis: R4 tu passera
WhatTrickeryIsThis: sinon c'est pas juste
R4N4R4M4: Ton code a l'air stable, par contre le mien passe pas le top 150 la plupart du temps, j'ai pushé 50 fois hier pour entrer dans le top 20
Magus: ah mais Neumann t'es pas légende ?
YannDev: ça va t'es top 7 r4
Neumann: Sisi regarde, je suis en légende
YannDev: tu devrais passer
WhatTrickeryIsThis: Neumam il vielli très bien
BigUP: il me semble que l'ancien mode de calcul du classement causait un peu moins de probleme de passage compliqué
YannDev: c'est qui le premier de légende d'ailleurs ?
YannDev: kovi ou dbdr
BigUP: on faisait des saut plus important je crois
Magus: bon 11ème à 95% de submit, ça fera pas top 10 mais je suis content de pouvoir être la sans gestion du fog
Zorg1: kovi passe son temps à repush donc tu sais jamais
Mazelcop: YannDev c'est Romka actuellement
Magus: on va coder pour le fog
YannDev: ok ty
YannDev: Top9 Magus
Magus: oh cool
Magus: objectif atteint
YannDev: tu vas te faire pousser :')
Magus: donc on peut être top 10 gold sans gérer l'ennemi dans le fog
YannDev: top8
Magus: si vous vous posez la question :D
YannDev: looool
Mazelcop: donc en gros tu rajoutes la gestion de l'ennemi et tu passes top 20 légende
YannDev: non mais Magus il a une ia en béton
Magus: dépend de la gestion, les quelques essais que j'ai fait mon fait perdre des places parce que mon IA devient paranoiaque et refuser d'aller dans le fog
Zakaoai: Oai alors faut le dire très vite Mazelcop
YannDev: ah mais t'es légende Mazel !
YannDev: gg
Mazelcop: thx
Zakaoai: Allez je vais essayer de stocker le plus d'informations sur l’ennemie pour mettre à jour les infos sur les pastilles
Gafagarion: on peut même être légende sans gérer l'ennemi dans le fog
Gafagarion: (c'est mon cas)
BigUP: Gafagarion, tu fais juste du farming ?
Fangel: c est aussi mon cas
Magus: mais je suppose que contrairement à moi tu estimes pas que l'ennemi c'est un poteau qui bouge pas
egaetan: il peut bouger l'adversaire ?
Fangel: non mais tu peux juste faire attention de pas te faire tuer par les ennemis visibles.
Vry: Le quoi ?
domak: ah zut ça complexifie tout s'il peut bouger...
Gafagarion: BigUp, non je réagis à l'ennemi par contre je ne le suis pas du tout dans le fog
Magus: ce qui est déjà bien plus que moi
Magus: mon code oubli totalement l'existence de l'ennemi dés qu'il disparait :D
domak: contest ocean of pacs...
Gafagarion: Magus, même chose pour moi
Gafagarion: je ne gère l'ennemi qui si je le vois !
BigUP: tiens, je suis en train de jouer avec un code qui ne speed plus ...
Magus: ah ok comme moi, mais moi je fais pas bouger les adversaires que je vois, donc déjà faut que je fasse ça
Gafagarion: oui me je les fais bouger
Zakaoai: et tu es légende :'( j'ai la meme gestion et j'ai l'impression que c'est pas fou
YannDev: Petite question, comment vous faîtes pour trouver une bonne fonction d'éval d'un chemin svp ?
BigUP: mais qu'estce que j'ai foutu de mon SPEED moi !??
YannDev: Parce que j'essaie de reprendre mon code qui simule les mouvements mais je sèche sur comment évaluer un path...
Gafagarion: YannDev, je regarde le score généré par le chemin avec un decay en fonction de la distance
YannDev: en gros tu fais
YannDev: sommeDesScoresDesCases
Spifflejedi: nb de points rapportés par les pellets / nmbre de pas
Zakaoai: meme chose que Gafarion
YannDev: et ça suffit ça ?
Spifflejedi: et jek change al valeurs des pelletes en fonction de l'ancienneté
YannDev: (scoreChemin)/(distance)
Gafagarion: légénde first hour avec ça
YannDev: parce que moi j'ai du yoyo avec ça...
YannDev: mes pacs font du gauche droite
YannDev: ils finissent pas les chemins
YannDev: etc
Fangel: parce que t as pas de decay
YannDev: decay ?
Spifflejedi: la valeur du pellet diminue avec le tps
YannDev: ah
YannDev: j'ai à peu près ça
Spifflejedi: plus ca fait longtps que t'as pas vu le pellet moins il vaut de pts
YannDev: hm
Fangel: ou avec la distance c est plus simple
YannDev: tu divises par 0,5 à chaque fois ?
thoip: parce que tu cacules des distances à vol d'oiseau et pas reelle.
BigUP: ha voila, avec le SPEED, j'explose le Boss... je préfere
Tryum: Arg, on a plus les erreurs de crash dans la console ? Je me prend la tête depuis des heures à cause d'un timeout, mais je soupsonne un crash :'(
Fangel: moi j essaye toutes les tajectoires de 14 cases (10 tours avec speed)
YannDev: thoip je calcule des distances réelles
Zakaoai: ha vous faite du decay sur les palette non visible
Gafagarion: non sur tous les pellets
YannDev: mais tu fais comment ?
Grillaume: YannDev de mon coté je multiplie par 0.95, après ça n'a pas d'importance si tu veux juste avoir un ordre
YannDev: tu divises par 0,5 à chaque tour ?
Gafagarion: 0.9 pour moi
BigUP: parcontre ce code à un winrate minable avec le reste
YannDev: donc à chaque tour tu multiplies la valeur de la pellet par 0,9
Fangel: et les pellets à 1 de distance valent 1 et à 14 de distance 0.9. Ensuite tu réduis linéairement entre les deux
YannDev: mais après gafagarion pour évaluer le chemin
YannDev: tu decay encore ?
Zakaoai: Qu'elle est l'impacte si tu l'applique à toute les palette
YannDev: genre le score d'une case c'est score/distance?
Spifflejedi: @Fangel et pr le pelletes inconnus?
YannDev: et tu fais la somme
Fangel: les pellets inconnues tu appliques le facteur de connaissance
Fangel: avec les scores tu calcules le nombres de pellets restantes
Fangel: tu retires celles qui sont sûres et tu connais le nombre de pellet parmi les "pas sûr"
Spifflejedi: j'ai déjà fait ca pr savoir si on est early/mid/late game mais bon c'est plus grossier ^^
Gafagarion: YannDev, non je regarde tous les chemins possibles sous une certaines distances je fais le score comme indiqué avec le decay et je retiens le meilleur chemin
YannDev: oui mais pour ça tu regardes tous les chemins possibles ?
Fangel: du coup si tu sais qu il y reste 30 pellets parmi les cases pas sûres
Fangel: et que t as 60 cases pas sûres
YannDev: tu regardes tous les chemins possibles depth 10 et tu prends le meilleur score
Fangel: ben la valeur des pas sûr c est 30/60=0.5
YannDev: sauf que je pige pas trop comment tu réappliques le decay sur ton score
Spifflejedi: du coup qd t'es en fin de partie si t'as aucun pellet dans tes chemins de 14 cases tu fais quoi?
YannDev: le score d'une case c'est score/(distance*0,9)?
egaetan: bordel de collisisons
Fangel: ben dans l eval il y a aussi la pellet la plus proche avec un coeff très petit (pour départager)
Gafagarion: et je gère pas les collisions non plus ;)
Gafagarion: Yanndev score = sum(pallet*pow(0.9,distancepellet)
YannDev: ah super merci beaucoup
YannDev: et à la fin de chaque tour pour chaque pellet tu multiplies le score par 0,9
YannDev: pour avoir un decay progressif
Fangel: ouais si tu fais ça précalcule les puissance de 0.9...
Gafagarion: pas le score total juste celui du pellet
Gafagarion: premier pellet = 1, deuxième = 0.9, troisième = 0.81, ...
YannDev: oui oui
YannDev: merci beaucoup :p
YannDev: pour les puissances de 0,9 j'ai déjà precalculé
YannDev: mais d'ailleurs pourquoi 0,9 ?
Fangel: mais moi je fais plutôt 1, 0.99, 0.98... Plus simple à calculer
YannDev: ça revient dans toutes les formules
Mazelcop: tu peux diviser la valeur du pellet par 0.9 à chaque incrément de distance, ça t'évite de faire un pow
YannDev: j'ai déjà un précalcul donc ça va
YannDev: j'espère que je pourrai toujours passer mon dfs depth12
Mazelcop: tu peux jouer sur la valeur pour donner une importance plus ou moins grande aux pellets proche par rapport aux pellets à distance
YannDev: je joue sur le 0,9 donc ?
Mazelcop: avec une valeur plus faible, ton algo sera plus greedy
Mazelcop: mais c'est pas forcément bien
YannDev: donc 0,99 sera moins greedy que 0,9?
Mazelcop: yep
Magus: ah mais je continue à monter en fait
YannDev: ok merci beaucoup pour tous ces conseils !!
Magus: mais bon ça passera pas légende
YannDev: je vais déjà voir si ça règle le pb du yoyo
Spifflejedi: hmm avec cette discussion j'hesite à changer ma gestion des chemins ^^
Stilgart: Magus: tu es toujours sur ton AG basique ?
YannDev: Magus est #6 -_-
YannDev: wtf
Magus: non j'ai changé
Zakaoai: Bon j'amasse vos bonne idées. Faut que je voit comment gerer tout ça
Stilgart: ha, ça me rassure un peu du coup :)
Magus: l'AG depth 6 c'était sympa mais je pouvais pas aller plus haut à cause du nombre trop bas de simus
Spifflejedi: j'utilisais que les plus courts chemin vers les 3 plus proches pellets
Spifflejedi: *30
Magus: (enfin je pouvais mais les résultats étaient pas terrible)
YannDev: le challenge finit lundi 12h c'est ça ?
domak: 10h en général
YannDev: bon bah je vais faire de mon mieux pour passer légende
domak: bon courage...
YannDev: x))
YannDev: déjà finir top 100 gold ce serait pas mal
BigUP: dejà finir gold, ce serait pas mal
BigUP: ;)
YannDev: tu vas y arriver BigUp
YannDev: :p
BigUP: YannDev, je bloque sur le Top100 silver...
BlitzProg: YannDev, simu sans collision?
YannDev: aucune simu
YannDev: :')
YannDev: mon algo de bronze pimpé
BlitzProg: oh
BlitzProg: j'ai du mal comprendre
YannDev: en gros c'est mon algo de bronze
YannDev: qui va au pellet le plus proche
YannDev: avec des petites améliorations
Zakaoai: Fangel, je relis ton message plus haut mais ce que tu appel "cases pas sur" ce sont toute les cases que tu ne voit pas c'est ça ?
YannDev: comme l'esquive des ennemis, l'attaque etc
YannDev: après pour passer légende je vais essayer de reprendre ma tentative de simu
YannDev: mais qui faisait le yoy à cause de l'eval pétée
YannDev: yoyo*
Zakaoai: et salut Axibord
Ulrahid: Vos pellet vous les stocké dans la grille de jeu, dans une liste à part, autrement.. ?
Zakaoai: bon on va changer le scoring appliquer le decay et voir si ça améliore la chose. l'importance des pellets plus ou moins proche faut que voit
Zakaoai: dans la grille et dans une liste
Ulrahid: pourquoi dans les deux?
Zakaoai: mais je pense pas forcément que mon code est le plus propre :p
BlitzProg: long pellet[17];
BlitzProg: bit map pour tout ce qui a été mangé
egaetan: 17 ?
egaetan: pourquoi 17 ?
Magus: parce que 17 de hauteur maximum je suppose
BlitzProg: ^
egaetan: quel gaspillage de bits
Magus: mais c'est long c'est pas 32 bits ?
Mazelcop: on peut réduire à 15 d'ailleurs les premières et dernières lignes sont des murs
Magus: parce que la longueur max c'est 35 ici
BlitzProg: long c'est 64
Magus: c'est pas long long 64 ?
Magus: attends je sais plus
BlitzProg: quoi c'est possible que ça soit 32? zut
ernestvw: ca depend du langage non ?
Magus: (je parlais en C++)
Magus: mais sinon je confirme, en C++ sur CG (donc rangez tous les autres cas ou s'en fou ici), long c'est 32, long long c'est 64
YannT: long de 45 bits
JBM: juste utilisez des intN_t au lieu de vous emmerder a compter a chaque fois
BlitzProg: bon j'ai pas encore testé mon code
YannT: pour C++ sur grille pains
BlitzProg: vous recommandez quoi pour que ça soit 64 sûr?
Magus: BlitzProg: uint64_t
BlitzProg: thx
Magus: c'est 64 sur
ernestvw: #define int unsigned long long au debut du code ca fait plaiz
Magus: rofl
Magus: define int
Magus: lol
YannT: quel beau language
BlitzProg: long starlight[49]
YannT: tu pourrais redefinie bool pour être true, false ou chaipas aussi non?
ernestvw: le truc bien avec ce define c'est qu'on garde le syntax highlighting de int, alors que avec ull par exemple non
ernestvw: sinon y'a le classique :
ernestvw: #define long long long
ernestvw: vu que long en soi ne sert a rien vu qu'il est comme int, donc autant le define a long long
ernestvw: apres par contre faut pas se tromper et ecrire long long sinon ca devient long long long long
ernestvw: et ca devient vraiment trop long
BlitzProg: define long long long que c'est beau
Magus: long n'est pas comme int, beaucoup énormément de plateforme (dont CG)
Magus: dans beaucoup d'environnement, int c'est 16 bits, long c'est 32 bits
Magus: comme l'a dit JBM, si le nombre de bit c'est important, utilisez intN_t (ou uintN_t)
- define int int32_t
Magus: si c'est pas important, prenez celui dont la limite indiqué par numeric_limits vous convient
Magus: mais personne préconise de define quoi que ce soit lool
domak: en tout cas c'est très gentil à vous de me rappeler pourquoi j'ai arrêté le c il y a 20ans...
Magus: si la limite des int te suffit, tu utilises int. Si le compilateur a décidé que c'était mieux de mettre un long à la place il mettra un long sans demander ton avis.
Magus: Mais toi tu juste t'assurer que ton code va pas crash dans le cas ou ce sera vraiment un int
dbdr: premier submit depuis plus de 2 jours. j'avais presque oublié comment on fait :D
BigUP: dbdr, il faut appuyer sur le boutton Soumettre, ca marche bien normalement
Magus: c'est clair que #define int c'est pas du tout un un moteur à bug
dbdr: BigUP merci! j'ai failli le faire hier vers 17h55, mais qqch m'en a empeché
dbdr: (encore faut-il avoir le bon truc dans l'IDE à ce moment là)
Zorg1: le "moteur à bugs" : on est proche du mouvement perpétuel là :p
domak: dbdr sinon pour le submit, tu demandes à kovi, il te montrera...
dbdr: lol
dbdr: je vais passer le voir qu'il me montre
Zorg1: "submit coach" les nouveaux métiers de CG
ncflipp: juste pour être sûr : les DEAD pacs sont bien visibles comme les super pellets, ie hors champ de vision de nos pacs ?
Magus: oui
ncflipp: même si on ne les a pas "vus" avant ?
Magus: oui
ncflipp: ok, erci
ncflipp: *merci
BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !
Automaton2000: argh, et je suis au fond de la ligue gold
AutomatonNN: Salut Automaton2000
Stilgart: tortue à tous, licorne à Automaton2000 et bonjour à AutomatonNN
Automaton2000: mon ia c'est de la merde
AutomatonNN: on va te dire que tu as pas peur que tu ne peux pas te prendre un truc de ta faute ?
Stilgart: Automaton2000: pas mieux
Automaton2000: et tu dois en avoir un
Stilgart: Automaton2000: exactement, je timeout avant de finir ma réponse, comme toi
Automaton2000: on n'est pas dans le bon sens
BlaiseEbuth: :upside_down:
BigUP: gros demarrage...
WhatTrickeryIsThis: c'est bientôt gaetan
AdaoSwann: Code4Life le bot se fait démonter. 149 à 36. Je sais que c'est Bois 1 mais bon x)
R4N4R4M4: J'aime bien Bois 1 pour ça aussi :D
R4N4R4M4: Ca dure pas assez longtemps par contre
WhatTrickeryIsThis: on combien à ce contest ? 5 Millions ?
Stilgart: AdaoSwann: C4L tu peux écraser l'adversaire si par mégarde tu finis deux projets vers la fin de la fame
Stilgart: *game
egaetan: WhatTrickeryIsThis encore 3 pts du boss :(
R4N4R4M4: le verbe est au choix WhatTrickeryIsThis ?
WhatTrickeryIsThis: le verbe c'est surfait
WhatTrickeryIsThis: et pendant que vous battifolez le boss il monte
WhatTrickeryIsThis: va falloir le descendre
AdaoSwann: "le verbe c'est surfait" XD
WhatTrickeryIsThis: exactement
R4N4R4M4: Je suis fâché avec le Boss, lui il monte et moi je descends
WhatTrickeryIsThis: il me reste une botte secrete
WhatTrickeryIsThis: si seulement je codais correctement...
Stilgart: le debug ?
leojean890: bon allez je tente l'idée de R4, minimiser la somme des dist pour les gros pellets :P
leojean890: ça tombe bien j'avais codé ça pour UTG
Stilgart: (bon, pourquoi mon MC joue l'action par défaut tout le temps.... je sais que WAIT c'est op mais quand même)
BigUP: ha, mon Arrive maintenant a taquiner le top 50 par ses propres moyens
Stilgart: de quelle ligue ?
WhatTrickeryIsThis: allez risen, démonte le
BigUP: Stilgart, Silver
leojean890: évol buguée pour les gros pellets dans mon dernier push :s
Stilgart: nan mais je joue WAIT 100%
Stilgart: du temps
Stilgart: ne me parlez pas de bug :D
egaetan: c'est OP le wait
egaetan: tu enlèves bien les pellets mangées ?
Stilgart: oui... mais je me suis vautré dans l'ordre de memcpy
Saelyos: Hello, à tout hasard est-ce que quelqu’un aurait une liste de seed équilibrée en nombre de pacs qu'il serait prêt à partager ? :)
Magus: bon, je push un truc censé être plus fort contre le boss gold mais j'ai peur de la surpécialization
Magus: vas y Neumann me met pas une défaite dans mes 10 premières parties
BigUP: Magus, c'est le risque...
BigUP: Magus, généralement quand l'IA est légèrement meilleure que le Boss c'est mieux
egaetan: Magus, on compte sur toi pour rééquilibrer ?
Magus: dans l'ide en spammant contre le boss je suis meilleur que lui, mais le problème c'est aussi d'être meilleur contre le reste du top 10
WhatTrickeryIsThis: sans oublier les 400 noob derrieres
Magus: j'ai toujours pas de gestion du fog mais je fais au moins un peu bouger l'ennemi dans ma simu ça évite que je me suicide dessus quand il est à côté de moi
egaetan: tu le fais bouger ?
Magus: nan mais les 400 noobs derrière c'est pas un souci hein :/
egaetan: je ne les fait pas bouger, il faudrait peut-être
YannT: c'est casse gueule
YannT: parce que si tu fais pas bouger comme lui il bouge, tu prends des décisions vraiment moisies après
egaetan: j'aime pas l'incertain
YannT: tu vas chercher à pas te faire manger par un ennemi qui est pas du tout là par exemple
egaetan: Risen il se moque du monde, feeder le boss et casser tout le top :(
egaetan: Magus tu spams ton first 10 ?
Magus: egaetan: la je l'ai fait que 2 fois. j'avais eu que 7 victoires dans les 10 premières alors que je sais que je peux faire 8 ou 9 facilement
Magus: la 2ème fois j'ai eu 8
WhatTrickeryIsThis: ça monte bien
egaetan: j'aime pas le faire en général, mais c'est vrai qu'ici, on a un tel random que ça joue
Magus: bah c'est pas ce qui est en dehors du top 10 le problème :D
WhatTrickeryIsThis: tin l'autre il gave le boss :D
Magus: vas y dégage egaetan
egaetan: volontiers
Magus: l'autre il me met un taquet quand je passe
Magus: 2 ><
Magus: fuck
WhatTrickeryIsThis: ça peut être une solution, on submit pour le laisser passer
Magus: j'ai peur de m'être spécialisé contre le boss et je perd contre d'autres
egaetan: ça me va
egaetan: pour le moment
WhatTrickeryIsThis: ayé t'es in range
egaetan: par contre, il faudrait que tu tapes le boss
WhatTrickeryIsThis: qui vient de tarté le boss ?
BlitzProg: Bon, j'y arriverai pas, je suis juste pas inspiré :'(
egaetan: c'est pas Magus
BlitzProg: allez, je reset et je tente un truc simple en PHP
egaetan: courage BlitzProg !
Stilgart: go go go BlaiseEbuth
WhatTrickeryIsThis: PHP ? simple ? c'est faux
Stilgart: et BlitzProg surtout
egaetan: qu'est ce que tu as changé Magus ?
Magus: juste ce que j'ai dit, je prend en compte le fait que l'adversaire peut bouger
WhatTrickeryIsThis: il fait bouger les poteaux
Stilgart: ce moment où ton tableau est const mais modifié quand même ...
Stilgart: (╯°□°)╯︵ ┻━┻
BlitzProg: Je vois ce qui m'attend en C++ si j'essaye de finir le simulateur, je vais tellement m'en prendre dans la figure
egaetan: Risen est revenu aussi
Magus: ça m'évite des morts débiles parce que mes pacs hésitaient pas à passer à côté d'un autre pac qui pouvait les tuer
Magus: mais résultat je prend moins de risque
Magus: donc contre ceux qui cherchent pas à tuer, ça farm moins bien
WhatTrickeryIsThis: il revient très fort
Magus: bon après globalement ça a l'air meilleur vu que je suis arrive plus vite dans le top 10 que le submit d'avant, mais clairement ça fera pas légende
egaetan: Magus tu feed le boss
Magus: pas mon problème ça lol
WhatTrickeryIsThis: le saguoin il fait top 5 à 10%
egaetan: Ramdeath aussi vient dans la danse
egaetan: 3 submits dans le top10
Magus: ah ok donc je fais 10 tests contre le boss je gagne mais dans l'arène je lui prend même pas une partie; sympa
WhatTrickeryIsThis: ça pourrait débloqué là :)
Magus: je pense que risen va passer
Magus: ah sauf si je lui prend des games :D
BigUP: Magus, peut-etre tu timeout dans l'arenes ? ;)
WhatTrickeryIsThis: tu fais tourner la même seed sur l'ide?
WhatTrickeryIsThis: je dis ça e dis rien
Magus: j'ai un timeout qui arrive une fois sur 100
Magus: pas encore réussi à trouver si c'est un plantage chez moi ou l'habituel timeout de CG parce que t'as mis une limite à 40ms mais tu timeouts quand même
WhatTrickeryIsThis: ricSmo arrive aussi j'ai l'impression
egaetan: Magus pas la peine de se venger autant
Magus: si
WhatTrickeryIsThis: quand on pense que le boss avait 25 ELO hier
Magus: bon clairement mon code est mieux, pas mais assez mieux :(
R4N4R4M4: Ah si on pouvait modifier son code sans le repusher ... :D
Magus: sans repusher ce serait cheaté
R4N4R4M4: Ca serait une autre sorte de contest
egaetan: Magus pas si loin et Risen tape le boss mieux que toi
Magus: parce que dans les jeux shifumi (un peu comme celui la), t'as souvent une "meta" différence suivent les rangs. Et la difficulté pour arriver tout en haut est de faire un code qui va pouvoir battre le top tout en restant solide contre les autres metas sur le chemin
Magus: parce que ce que j'aimerais que CG ajoute c'est un bouton "continue push", pour juste continuer ton push la ou tu t'es arrêté avec le même code, genre rajouter 50 parties
Magus: parce que des t'as un winrate de 51%, donc en théorie avec assez de parties tu finis devant le boss, mais comme tu joues que 100 parties bah ça suffit pas
R4N4R4M4: ah et ça c'est pas cheater :D
Magus: bah tu continues ton push sans changer code
Magus: vas y Risen tape le boss
Magus: je suis juste en dessous la
egaetan: au dessus !
Magus: bon effectivement avec risen qui m'aide y'a moyen que ça passe
egaetan: roo gg Magus
egaetan: t'es jaune chez moi
Magus: muahah
Magus: voila, légende sans le fog !
Neumann: Hold-up
R4N4R4M4: Je suis d'accord, il faudrait pouvoir gagner un nombre de parties supplémentaires, disons tous les 1/4 d'heure t'as un match en plus, et comme ça tu peux les lancer quand tu veux :D
Magus: nah
WhatTrickeryIsThis: GG :)
egaetan: Un peu volé t'es passé au dessu saps longtempts
domak: gg
Magus: l'histoire retiendra que c'était suffisant
Mazelcop: wp
WhatTrickeryIsThis: ça se pourrait que toi aussi gaetan
egaetan: je voudrais bien.. mais je suis beaucoup plus loin
R4N4R4M4: Ah j'avais pas vu que t'étais passé Magus GG
egaetan: Personne ne l'a vraiment vu
R4N4R4M4: Je te cherchas en bas en me disant, chouette, il va encore me faire monter :D
R4N4R4M4: *i
Magus: et ça c'est le truc qui me fait dire que le système de ligue a des limites
Magus: tu passes la ligues légende a 0.01 au dessus du boss sur un poil de cul
Magus: et en ligue légende t'es direct plus fort qu'une grosse partie de la ligue
egaetan: que faire contre ça ?
egaetan: réajuste le elo du boss pour qu'il ne s'envole pas ?
Magus: ce que j'ai dit plus haut
Magus: rajouter un bouton "continue push"
Magus: enfin "continue submit"
Magus: pour que quelqu'un avec 51% de winrate coincé dans le top 10 parce qu'on joue que 100 parties puisse continuer son submit
egaetan: c'est vrai que là je prendrais bien 100 matchs de plus pour voir
domak: ou alors tant que tu as plus de 50% de WR tu continues automatiquement le submit
R4N4R4M4: Et ça serait bien qu'on puisse choisir contre qui on les joue ces matches supplémentaire :D
R4N4R4M4: bon ok je sors...
egaetan: R4N4R4M4 je suis d'accord
egaetan: Bon voilà Psyho, je compte sur lui
egaetan: j'ai plus que 1,37 pts à remonter
Magus: je l'ai vu push 3 ou 4 fois depusi tout à l'heure il a l'air de galérer un peu psycho
egaetan: c'est bien, il a pas le droit d'être le plus fort partout
Magus: je met pas en doute ses compétences vu son palmarès
Magus: mais CG est tellement différent des autres compétitions
egaetan: oui, et on ne sait pas cmbien d'énergie il y met aussi
egaetan: _Royale, tu batches submit ou tu codes ?
_Royale: egaetan: je change des coeffs :-D
egaetan: salut
sgalasso: Salut, je compte le temps de calcul et parfois il est supérieur à 50ms mais je n'ai pas de timeout, vous avez une idée du pourquoi svp ?
Magus: 1) tu le calcul mal 2) le referee a toujours un peu d'aléatoire dans la façon de compter les timeouts, parfois tu peux dépasser sans rien prendre, parfois il va te faire timeout quand t'as répondu en 48ms
Magus: tiens cool je suis top 20 légende carrément ...
sgalasso: Ok merci je vais vérifier
BlitzProg: Toujours en bronze, à repartir de 0, pas encore de plan précis sur ce que je vais faire. comme d'hab
Haashi: BlitzProg, une heuristique assez simple ca fait largement gold
Magus: sans gérer le fog tu peux faire légende !
Magus: par contre je suis pas en heuristique
BlitzProg: heuristique sans simu vous pensez que ça passe gold?
Haashi: oui
Magus: oui heuristique tu passes godl
Magus: *gold
KuroiLight: @Magnus t'es en quoi du coup ?
Magus: le boss gold vu son temps de réponse il est en heuristique aussi
Haashi: j'ai une heuristique sans simu et je suis gold
Magus: donc y'a des heuristiques en légende
BlitzProg: heuristique que je me trompe pas ça consiste juste à attribuer un score à chaque move possible et prendre le meilleur, sans simuler. Je me trompe?
Haashi: tu te trompes pas totalement
Haashi: pour moi heuristique c'est un gros mot pour dire "faire une stratégie au pifometre avec une pseudo fonction de score"
FrenchKiss: Pour moi, heuristique = gros tas de IF
Magus: heuristique à la base ça veut dire une méthode de calcul qui fourni rapidement un score ou une solution, pas nécessairement optimale
Magus: sur CG en général on utilise le mot heuristique pour dire qu'on fait pas de simulation
Magus: mais bon, quand tu fais une simulation t'as besoin d'une heuristique de toutes façons
BlitzProg: yes je comprends
towzeur: l'heuristique ca veut juste dire que c'est pas opti non ?
BlitzProg: bon, je pars là dessus et croise les doigts
Magus: towzeur: de toutes façons rien n'est opti ici
Magus: le seul moyen d'être opti ce serait de pouvoir bruteforce jusqu'à la fin de la partie
leojean890: encore pushé des bugs decidement j'arrête jamais de faire nimp hehe
Magus: mais ici personne n'est capable de bruteforce ne serait-ce que le 2ème tour :D
egaetan: kami en php dans le top10 je pense pas qu'il est une grosse simu aussi
kami: :)
egaetan: salut kami, fonce !
kami: j'y arrive plus ;à
egaetan: détrône le Lord
WhatTrickeryIsThis: salut la grosse
towzeur: je me demande si des gens ont utilisé une approche ML ?
towzeur: enfin si c'est possible dans le cadre du jeu
egaetan: kami tu n'as pas rencontré le boss ?
Haashi: clairement pas sur ce jeu en tout cas
kami: non pas une seule fois! j'aurais aimé ... désolé pour toi
egaetan: tu reveiendras encore plus fort !
leojean890: eah egaetan plus que 2 places :P
leojean890: moi je suis 371 gold avec mon submit bugué xD
leojean890: sympa hein;)
egaetan: et 1,25 elo
leojean890: pas loin :p
leojean890: bon je corrige mon bug de minimisation de sum(dist) et on verra ce que ça donne :P
egaetan: trop
leojean890: pour se faire pousser maybe
leojean890: maybe hard
leojean890: peut être avec une amélio supplémentaire :P
BigUP: de toute beauté mon move ! :) --> https://www.codingame.com/share-replay/465514408
BigUP: frame 30
BigUP: au debut, j'ai cru que le moteur du jeu avait buggé ! ;)
Magus: egaetan: donc ouai comme je disais tout à l'heure, le même code qui passe légende au poil de cul arrive donc top 20 légende (on est 65 en légende)
Magus: je trouve ça un peu triste
egaetan: oui c'est pas sympa
kami: triste pour ceux qui restent bloqué en gold :D
egaetan: en général, c'est plus bas quand même
egaetan: kami +1
egaetan: on va s'en sortir
egaetan: il n'y a plus de submits en cours ?
kami: pas sûr ! j'ai du mal à comprendre le fonctionnement j'ai un bon winrate contre le boss et j'arrive j'amais à l'atteindre.
egaetan: il manquait pas grand chose
kami: et pour un même code je me retrouve top 20 comme je peux être 200. le elo est vraiement serré pour varier autant
egaetan: oui, ça c'est moche
egaetan: souvent ça veut dire que tu as un bug qq part
kami: j'ose plus submit !
Tryum: C'est possible de voir le chat ailleurs que dans la colone de droite du site ? C'est chaud de suivre dans si peu d'espace je trouve :P (testé pigdim sans succès)
egaetan: et qu'il rend le submit un peu aleatoire
Magus: kami: comme je le disais tout à l'heure, avoir un gros winrate contre le boss sert à rien si tu perds contre tout le reste
Magus: d'où le fait que quand j'ai submit j'avais peur de m'être surspécialisé contre le boss et qu'au final ça fasse pire
kami: oui, c'est môche
Magus: au contraire c'est très bien. Ce serait triste que pour passer une ligue suffit d'être bon contre le boss :D
Neumann: +100 places d'écart d'un push à l'autre
Neumann: IA en bois
Escdemon: J'ai gagné 1000 places en bronze en pushant la même IA x)
kami: oui Magus, je suis d'accord.
Magus: bon maintenant la question c'est est-ce que je fais l'effort de coder un truc pour gérer le fog of war alors que je suis déjà top 20 légende
WhatTrickeryIsThis: le truc de Neumam
WhatTrickeryIsThis: spread tes poteaux
Neumann: ?
Magus: c'est déjà fait ça, c'est comme ça que je suis passé legende
Magus: je fais bouger l'adversaire dans mes simus
Neumann: Y compris quand il est hors-vision ?
Magus: non justement
Magus: dés que je l'ai plus dans les inputs, pour moi il n'existe plus
Neumann: Le faire bouger = le dupliquer ? Considérer qu'il est partout ou il peut être ?
Magus: j'ai fait plusieurs essais, un dummy a très mal fonctionné
Magus: au final j'ai fait autre chose qui s'approche de le dupliquer ouai
Neumann: Et t'as un truc pour supposer que les pellets hors-vision on probablement déja été farmés ?
Magus: non
Neumann: Hum ok
Neumann: Depth 10-15 ?
Magus: dépend du nombre de pac vu que c'est un beamsearch
Magus: 2 pac je suis entre 10 et 15 facile, 5 pacs ça va plutôt être vers 7
Magus: (puis ça dépend des collisions, bla bla bla)
kami: je vous laisse, je repasserai faire un tour ce soir. Bonne change egaetan
egaetan: detend toi pour avoir pleins d'idée
Magus: fait un gateau
Magus: (ça donne des idées)
BlaiseEbuth: The cake is a lie.
Tryum: <3
Neumann: Magus : si tu interdis les aller-retours dans les couloirs, ça pose pas des soucis sur ce genre de game ? https://www.codingame.com/share-replay/465317582 Si le rouge 2 part vers le gros pellet en 8:1, à depth supérieure à 6, il va considérer qu'il va se faire bouffer par le bleu 1 au croisement en 7:5
Neumann: Donc à depth 5 ou 6 il va aller vers le pellet, à depth supérieure il va préférer l'ignorer
Magus: nan y'a un virage
Magus: j'interdis les aller/retour dans les couloirs c'est tout
Neumann: Ca reste un couloir, qui tourne
Magus: dés qu'il y a un virage ou un croisement j'autorise
Magus: ouai je sais mais pour mon code c'est pas pareil :D
Neumann: Je vois
Neumann: Bon va falloir que je beam
Neumann: Le BF ça passera plus si j'autorise les aller-retour dans les virages
Magus: j'ai un beamsize de 1000 pour chaque pac
Tryum: beam = grouper des états proches ?
Magus: non
Magus: beamsearch en gros, tu simules tous les prochains état possible, tu évalues tous ces états
Magus: et tu gardes que les X meilleurs
Magus: et tu recommences, tu simules tous les prochains états des noeuds que t'as gardé, tu évalues, tu tries, tu gardes les X meilleurs ...
Neumann: Quand tu la recherche à depth N+1 tu reset la série complète d'instructions je suppose
Neumann: tu lances *
Magus: ouai je suis obligé de simuler depuis le début à chaque fois
Magus: parce que les actions des autres pacs peuvent venir embêter les actions du pac courant
Neumann: Ca n'aurait aucun interet de toute facon, puisque tu joues la première instruction de la série
Magus: donc tu peux pas juste reprendre ton noeud la ou il était
Neumann: Non je parle pas de la simu, mais bien de la recherche
Magus: ah
Magus: non je garde la série d'instruction
Magus: mais je resimule depuis le début
Neumann: Bah, ça sert à rien
Magus: (et quand une action est impossible, je remplace par un WAIT)
Neumann: J'ai raté un truc
Magus: bah pourquoi ça servirait à rien ?
Magus: je comprend pas en fait
Magus: si tu supprimes tout à chaque fois le beam search je sais pas trop à quoi il va servir
Neumann: Je prends le pac 0, je cherche à depth N (je considère les autres en WAIT), je prends le pac 1, je cherche à depth N (je fais jouer la séquence trouvée sur le 0, et les autres toujours en WAIT), etc
Neumann: Une fois que j'ai une séquence pour tous les pacs, je recommence à depth N+1
Magus: oui ça c'est bon
Neumann: Je prends le pac 0, je cherche à depth N <---- A ce moment là, la séquence du pac 0 est reset avant la recherche
Neumann: N+1 *
Magus: mais ce cas tu fais quoi, tu rebruteforces tous les noeuds depuis depth 0 pour arriver à depth N + 1 ?
YannT: c'est quoi l'intéret de recommencer à N+1 alors que t'as déjà des séquences pour chaque pac à depth N et que rien d'autre n'a changé?
Neumann: Oui, mais en gardant les séquences des autres pacs jusqu'à depth N (+ 1 wait)
YannT: ça a du sens si tu bouges l'ennemi à la limite...
Magus: dans mon code je garde les noeuds de depth N, et je recommences depuis la. Les noeuds contiennent toute la suite d'action mais je peux pas vraiment stocker l'état du jeu vu que les actions des autres pacs vont changer cet état évidemment.
Neumann: Bah quand t'as trouvé ta séquence à depth N pour le pac 0, tu considérais tes autres pacs en WAIT. A depth N+1 quand tu reprends la recherche pour le pac 0, tu considères que les autres pacs jouent les séquences trouvées, donc ça peut amener ta recherche pour le pac 0 à trouver autre chose, à la lumière de ce que les autres font
Magus: oui, ça peut
Magus: mais mon code s'en tape :D
Neumann: Je suis pas sur qu'on parle de la même chose
Tryum: Simulet pac par pac, et combiner... je devrais peut-être faire ça.... je simulais toutes les combinaisons de PAC en même temps... la combinatoire explosait 🤣
Magus: enfin dans les faits, mon beamsize est assez grand pour bruteforce jusqu'à depth 4 environ (dépend des cas, si j'ai 9 possibilité au tour 1, ça va pas bruteforce)
Neumann: Ton beam il est bien reset à chaque fois que tu switches de pac ?
Magus: donc jusqu'à depth 4 mes pacs prennent en compte toutes les possibilités en repartant de 0 comme tu le dis
Magus: c'est quoi que t'appelle le "beam" ?
Neumann: Ton arbre / ton pool de state
Magus: j'ai un arbre/pool par pac
Magus: donc non, je reset pas le "beam" d'un pac quand je passe au pac suivant
YannT: https://miro.medium.com/max/2560/1*05fp6bHyfZ57_A4-Q7-S_A.jpeg
YannT: ah ben bravo le lien chelou ça ruine la blague :(
Neumann: Pas compris ton truc alors
Magus: a depth 0, je tests tous les coups du pac 0, j'évalue. Je garde ces noeuds dans l'arbre du pac 0. Je copie juste dans un coin la meilleur suite d'action que j'ai trouvée. Pour ces simulations, les autres font WAIT
Neumann: Yes
Magus: je passe à pac 1, je fais pareil sauf que le pac 0 lui il va jouer sa suite d'action, ainsi de suite jusqu'au dernier pac.
Neumann: Oui
Neumann: La question c'est quand tu repars à depth N+1 :D
Neumann: Tu reset ta recherche pour le pac 0, et tu fais jouer aux autres pacs leurs séquences trouvées (+ 1 wait)
Magus: depth 1, je reviens sur pac 0. J'ai gardé les noeuds dans l'arbre, donc j'étends ces noeuds la. Les autres pacs vont jouer leur action de depth 0 et faire un WAIT a depth 1. ça va faire X noeuds enfants, si c'est plus grand que le beamsize je fais un sort et je supprime les plus nuls.
Magus: dans les noeuds je garde la suite d'action pour arriver au noeud
Neumann: Ok on est d'accord
BigUP: ha bah voila, je suis perdu ! ;)
Neumann: Je vais ptet tenter ça, parce que la recherche depth 2, même avec une éval correcte, ça suffit pas
BigUP: depth 3...
Neumann: Enfin je vais à depth 4 max, mais ça reste pas assez
Magus: Neumann: mais après tu as raison sur un point, en faisant comme ça quand je suis à depth 6, je peux rater le fait qu'il y a maintenant une bien meilleur branche à depth 0 parce qu'un autre pac a changé son action à depth 0 depuis le temps.
Neumann: Bah, c'est pris en compte ça ?
Magus: mais malheureusement vu le branching du jeu, t'es bien obligé d'élaguer d'une façon ou d'une autgre
Magus: Neumann: c'est pris en compte pour les noeuds que j'ai
Magus: donc faut espérer qu'il reste un noeud dans le pool qui a encore à depth 0 l'action qui va devenir bien meilleure
Neumann: Ah oui tu parles d'une potentielle meilleure branche qui a été prunée
Magus: oui
Neumann: Bah ça, y'a pas grand chose à faire
Magus: non. Sinon faudrait tout refaire le beamsearch depuis depth 0 à chaque fois
Magus: mais la ouai tu vas probablement pas dépasser depth 4
Neumann: Démoralisant les benchs qui te mettent à >50% contre tout le top 10, mais le code galère à rentrer dans le top 250 ..
Magus: c'est parce que dans le top 250 y'a plein d'IA qui attaquent pas, elles font que farmer
Alshock: et t'arrives à descendre comment avec ça ?
Alshock: 6-7 ?
gregballot: on est d'accord y'a aucun pattern entre les ids des pacs ?
Magus: je sais j'ai eu le problème quand j'ai fait mon premier dummy pour l'adversaire
gregballot: par rapport a la map
Neumann: Tout refaire = ?. Tu refais déja le beam depuis 0 à chaque nouvelle depth, juste avec des séquences pré-déterminées pour les autres pacs
Magus: j'ai fait un dummy et mon IA évitait les pacs adverses de peur de se faire bouffer, mais en top 250 personnes essaie de te bouffer :/
Magus: Neumann: ouai "tout refaire" c'est ça
Magus: mais ce serait trop violent tu vas faire depth 4
Neumann: Mais c'est ce que tu as dit que tu faisais
Neumann: /flip
Magus: non justement
Magus: je garde mes noeuds, c'est pas pour refaire depuis depth 0
Neumann: Ah
Magus: mais par contre je resimule les noeuds depuis depth 0
Neumann: Ok je suis idiot
Magus: (mais juste les noeuds que j'ai gardé)
gregballot: je reformule : impossible de predire les ids des pacs ennemis on est d'accord ?
Magus: les pacs ennemis ont les mêmes id que les tiens
gregballot: ok chuut ne lisez pas, je suis con comme un pneu
gregballot: Lol
Magus: (ce qui est ultra chiant d'ailleurs)
gregballot: Je viens de voir, j'essayais de compter par rapport aux coordonnées de la map comme un clanpin
YannT: c'est aussi ce qui te permet ld'init l'adversaire par symetrie, si les ids étaient pas symétriques aussi ce serait encore plus galère
Stilgart: "con comme un pneu"... j'aime bien l'expression :)
BlaiseEbuth: C'est pas gentil pour les pneus...
Stilgart: on n'a plus droit à la sortie d'erreur en C++ ?
Stilgart: ou c'est parce que je spam trop ?
gregballot: BlaiseEbuth j'avoue
YannT: oui t'es penui
dwarfie: Stilgart ... moi je l'ai ...
BlaiseEbuth: Idem
Stilgart: je suis sûr que mon code fait un assert failure ou un segfault
Stilgart: mais rien dans l'IDE à part timeout
Magus: on a plus de stacktrace sur CG quand on crash :/
Magus: (en C++ en tout casà
Magus: mais ça fait longtemps
Magus: depusi au moins 5 contests je dirais :D
Stilgart: ok
BlaiseEbuth: Ah oui, si c'est au runtime t'as rien
Stilgart: note que je code en Haskell normalement
Stilgart: d'ailleurs, j'aurais du faire une heuristique à deux francs en Haskell
BlaiseEbuth: On savait pas... :grin:
Stilgart: effectivement, la simu coûte bien plus cher que ce que j'avais imaginé
Stilgart: (et en plus ça plante)
Zorg1: tiens il est où Dabino ? il a du rester en haskell lui
Stilgart: fausse question
dwarfie: en parlant d'heuristique a 2 frances 6 sous ... va falloir que je trouve une idée valable parce que je descend mechament depuis midi ...
Stilgart: il passera legend dimanche soir, comme d'hab
Zorg1: bah il n'est pas encore sorti de silver
Stilgart: et ?
Zorg1: il doit hidder ^^
Stilgart: j'en ai perdu des places de 1er en Haskell comme ça :D
dwarfie: humm , a vu de nez , pas assez aggro
Magus: au fait y'a pas de t shirt pour ce contest ?
Magus: je me souviens pas les avoir vu
Magus: ah bah non y'a pas
Magus: zut, ça sert à rien de faire top 20 en fait
Zorg1: non trois prix et puis c'est tout
Zorg1: devait se ruiner en frais de transport ^^
YannT: j'ai mon tshirt OOC qu'est en cours d'arrivage :D
YannT: là par contre je ferai même pas légende je pense
YannT: mon micmac roulé sous les aisselles est complétement insuffisant
Zorg1: d'un autre côté pas trop l'envie de faire autre chose qu'un BFS bidouillé
YannT: pareil en vrai
Zorg1: (vu qu'on peut résumer mon bot à ça)
YannT: j'ai pas eu la motiv' de faire un truc sérieux, trop donné sur OOC
YannT: DFS bidouillé moi :D
YannT: (ce qui doit revenir globalement au même)
domak: oui ooc ça a laissé des traces... trop long et trop rapproché
Zorg1: OoC était plus intéressant aussi j'ai l'impression
Zorg1: plus dur d'accès aussi
Stilgart: je suis pas sûr pour l'accès
domak: ah si quand même
Stilgart: c'est dur à dire car les bosses wood étaient pas taillés pour à OoC
Tryum: yeaah gold :D
domak: fallait engager du bouot pour les wood
domak: boulot
Zorg1: gg
Stilgart: (l'accès pour moi, c'est l'accès à la bronze)
domak: gg
Stilgart: gg Tryum
Stilgart: moi j'y arriverais pas
WhatTrickeryIsThis: Allez gaetan
egaetan: Kangou je crois en toi
WhatTrickeryIsThis: ALLEZ
WhatTrickeryIsThis: arrête de faire la chochotte
WhatTrickeryIsThis: :skull: loses
WhatTrickeryIsThis: punaise il a totalement démonté le boss ^^
egaetan: il est fort contre le boss
egaetan: et contre moi aussi :'(
Tryum: test ?
Tryum: Ah cool, un client console XMPP :)
BlaiseEbuth: link plz
dwarfie: mcabber ?
Tryum: arf... les messages sont envoyés... mais je ne les vois pas >_<
Tryum: https://profanity-im.github.io/
R4N4R4M4: Je sais pas si j'aurai fini la simu demain :(
R4N4R4M4: c'est long
BlaiseEbuth: Merci. J’essaierais
dwarfie: mcabber marche aussi ... mais faut le prendre en main ...
WhatTrickeryIsThis: courage r4, une bonne journée pour 10 places, ça se fait
R4N4R4M4: Je suis en train de tout refaire en fait, mais en ajoutant les nouveaux trucs aux anciens, ça va être le bazar
BigUP: R4N4R4M4, c'est le truc ou a la fin une fois que t'as viré tous les nouveaux bug, tu te rend compte que ca marche moins bien ? ;)
R4N4R4M4: Oui voilà
BigUP: mais t'es quand meme content de l'avoir faiyt
R4N4R4M4: Mon plus gros problème, c'est que si j'ai pas confiance en mon nouveau code, je repusherai pas, trop galère de remonter
Tryum: @dwarfie profanity est interessant car il reprend le fonctionnement d'irssi ;)
Tryum: (et j'ai jamais réussit à faire marcher le plugin xmpp d'irsii)
Magus: attends la
Magus: je regarde cgstats
Magus: "Agend id"
Magus: mais lol depuis quand elle est la cette typo
Magus: et personne l'a vu
BlaiseEbuth: ou tout le monde s'en fout...
Magus: cette colonne est très important pour ceux qui utilisent CGBenchMark
BlaiseEbuth: Ouai mais pas son titre...
Magus: c'est vrai
BlaiseEbuth: Mais j'avoue que je l'avais pas vu non plus... ^^
Alshock: dites les gens, vous pensez que faire jouer les pacs en fonction de qui a le plus gros score courant plutôt que dans un ordre quelconque peut avoir un intérêt ou zéro ?
Magus: j'essayé des trucs de ce genre mais ça n'a rien donné de bon
Neumann: De rien egaetan <3
Magus: j'ai essayé de faire jouer ceux qui sont sous speed en premier par exemple, dans l'idée d'exploiter au maximum le speed
egaetan: C'est fait !
egaetan: Merci Neumann !
Magus: mais c'était pas mieux
Magus: lol
Neumann: Avec plaisir
Magus: et après c'est moi le voleur !
leojean890: gg egaetan :)
egaetan: j'en suis un autre, il est vrai :D
Magus: gg
Neumann: Après 4h de camping aux portes de la légende
egaetan: A toi maintenant Neumann !
Magus: ça va faire comme moi t'es aux portes de légende tu vas finir devant 30 personnes
BlaiseEbuth: Alshock, en tout cas en fonction du score ça semble foireux... Dans la mesure où les pacs sont strictement identiques et que leur score dépend de comment tu les faits jouer...
Neumann: J'ai rien changé de particulier, j'ai raté un truc
Magus: pourquoi t'es passé aussi Neumann ?
Neumann: Push en cours
Neumann: Random modification into push
Magus: je vois le genre
Neumann: into 10/10 au push
Neumann: into top 10 en 2%
R4N4R4M4: waouw gg Neumann
Neumann: Ca sent bon
Neumann: Je vais pas parler trop rapidement ..
Neumann: Jinxed
R4N4R4M4: Si tu peux nous faire baisser le Boss au passage :D
Neumann: 2/0 contre le boss pour l'instant
Neumann: Mais je le croise pas souvent
Magus: bah t'as 1 chance sur 10 à chaque partie de le croiser
Magus: donc ouai sur 100 parties pour un submit, tu vas le croiser 10 fois en fait
leojean890: en fait avec le nouveau leaderboard c'est plus simple de se faire pousser que de passer au submit, vu que les refresh sont rapides on peut se faire sortir du haut en submit, mais après on peut se faire pousser facilement avec qq matchs
Neumann: Sur 10.5 car j'oscille entre 1 et 2
Magus: "nouveau leaderboard" ?
Magus: c'est comme ça depuis l'apparition du système de ligue
leojean890: nouveua refresh rapide
Magus: non le refresh change rien
leojean890: ah ok
Magus: le refresh c'est juste que les données sont mis à jour plus souvent pour l'affichage
leojean890: jcroyais qu'on était pas replacé à chaque match avant
Magus: ça change pas les calculs qui sont fait
leojean890: d'accord
leojean890: donc avant on était également replacé à chaque match
leojean890: c'était pas N matchs autour de notrez ranking quoi
Magus: y'a rien qui change entre le classement d'avant et le classement de maintenant. Le refresh était purement un problème UI
leojean890: bon jss tjr 225 gold moi :s
leojean890: d'accord
Neumann: Le ELO est mis à jour instantanément dans les replays en dessous ton nick
leojean890: je croyais qu'on avait plusieurs matchs autour de notre classement avant qu'il soit updaté
Neumann: Donc si tu spam F5 un replay tu vois ton ELO en temps reel
leojean890: ah oauis c'est pas con :p
leojean890: faut que je lise la descriptiond e l'algo trueskill
leojean890: un de ces 4
Neumann: Ca passera pas
Magus: tout ça juste pour faire passer egaetan
Neumann: J'ai eu un début de run full-luck, juste pour pousser egaetan puis retomber
Neumann: Bon ..
Neumann: Est-ce que je fais une egaetan et j'attends ici pendant 8h qu'on me pousse
Alshock: Hum... PyCharm ne voit rien ,vous voyez une erreur de syntaxe évidente sur la ligne de 3 km suivante ?
pac, path = max(((pac, path) for pac, path in (pack['pac'], grid.path(pack['pac'], pack['cell']) for pack in options) if is_valid_path(path, validated_paths)), key=lambda path: path_score(pac, path, visited))
BlaiseEbuth: Ouai, c'est en python
Magus: "le python c'est plus lisible que le C++"
egaetan: Neumann j'ai pas attendu 8h mauvaise langue
Alshock: ah ah ah, et dis toi qu'en plus c'est vrai
Magus: ouai il a attendu 2 jours
egaetan: juste 2h30
Alshock: mon C++ est encore plus sale que ça
leojean890: Neumann bientôt poussé aussi
Alshock: personne veut me pousser de 84 places tant qu'à faire ? :P
Alshock: ça m'évitera de faire du python
Neumann: Ca manque de candidat au top 10 pour remuer un peu tout ça
leojean890: vaut meiux être en position de se faire pousser un peu aprèss l'ouverture
leojean890: quand la vague de candidats arrive
leojean890: 1j après c'est plus dur ;P
BlaiseEbuth: t'as pas encore plus long comme ligne... Sérieux
Neumann: Ouais bah pardon d'avoir eu une IA de chiasse hier soir :D
leojean890: :P elle avait ptet déjà le level pour légende ?!:P
Alshock: @BlaiseEbuth ah si si j'ai
BlaiseEbuth: Bah garde la
BrainSolver: J'arrive Neumann..
Alshock: BlaiseEbuth Hors de question, je suis pour le partage
Alshock: path = max((path for path in (grid.path(pac, cell) for cell, dist in grid.scan(pac).items()
if dist < FLEE_DIST) if is_valid_path(path, validated_paths)), key=lambda path: (group_dist(path[-1], (op for op in grid.entities[OP_PACS] if op.can_eat(pac))), path_score(pac, path, (cell for path in validated_paths for cell in path))))
leojean890: Nazo arrive en #2 aussi ;)
Neumann: Tu m'as mis une lose BrainSolver
BrainSolver: ah
Alshock: @BlaiseEbuth c'est l'oeuvre de toute une vie, j'en suis pas peu fier :P
leojean890: Alshock pas mal ta ligne hehe
BlaiseEbuth: C'est imbouffable..."Faites du python, l'indentation fait partie de la syntaxe du coup le code est propre." mdr
leojean890: ;P
Neumann: 6 lose d'affilée
Neumann: Parfait
Neumann: 7*
thoip: le run est de combien de combats en gold?
Neumann: ~100
BlaiseEbuth: Assez-t'il tout étant, je ne vois pas de problème avec ton truc (fonctionnellement parlant, pour le reste...). Mais après la merde peut venir de partout ailleur...
Neumann: Assez-t'il tout étant ?
BlaiseEbuth: fix ton what the cut ^^
Neumann: Pas vu
BlaiseEbuth: La quote vient de ce truc, si t'as le courage... ^^ https://www.youtube.com/watch?v=w8cGB8adW3g
BlaiseEbuth: Woah ! Une erreur que j'avais jamais vu ! Je l'ajoute à ma collection !
Neumann: Super ce son
BlaiseEbuth: Du grand art...
thoip: passé de #400 à #145 gold
Neumann: Je repousse le même code qui m'a mis devant le boss pendant un bon moment, je prédit un stuck top 100
Neumann: J'ai bouffé mon capital luck
Alshock: @BlaiseEbuthaprès, ce qui m'emmerde en python c'est pas la dégueulassitude, j'veux dire ça ils ont fait des efforts ça se voit, mais ils m'empêcheront pas de faire du crade... Non c'est plus le "Erreur de syntaxe dans ta ligne là, quelque part !"
WhatTrickeryIsThis: gg egaetan !
WhatTrickeryIsThis: sorti de ce cauchemard
Alshock: l'erreur c'était un tuple pas enparenthésé je crois
BlaiseEbuth: Alshock : moi là j'ai un "bug indéfini quelque part dans ton programme."...
Alshock: C'est quoi cette horreur ? Du JS ?
Magus: c'est clair qu'en C++ c'est vachement mieux les erreurs
BlaiseEbuth: Nan, une erreur au runtime en C++... Comme cg donne pas la trace...
Magus: quand g++ il essaie de chier la bible en entier pour t'expliquer t'as une erreur dans une classe templat
Magus: ça transpire la clareté
Alshock: xD c'est vrai que ça c'est pas mal
BlaiseEbuth: Ah, bah là c'est plutôt concis : "free(): invalid next size (normal)"
Alshock: ça, ça veut dire "bah alors, on segfault gros n00b ? Go debug et GLHF"
Alshock: Cela dit je pense qu'en terme d'erreurs qui sont systématiquement imbitables, Java arrive à battre C++ non ,
Alshock: -,+?
BlaiseEbuth: Ca veux dire que le tas est cassé... Mais d'où, par quoi, quand ? ...
Alshock: ben par free à cause de next size qui est normal enfin :P
R4N4R4M4: Bon, ça se précise, je refais du 50% contre le Boss en IDE, juste avec ma nouvelle éval PAC par PAC, donc quand ça sera tous les PAC ensemble à T + 1, ça devrait faire...
Alshock: des chocapics ?
R4N4R4M4: Bruteforce prévu sur tous les PAC à T + 1, on verra ce que ça donne, mais j'aurai pas fini avant demain
R4N4R4M4: Et si j'ai pas fini tant pis je laisserai comme ça
BlaiseEbuth: Nan... Le problème est détecté lors d'un free, mais ne vient pas de là...
Alshock: tkt je sais bien j'ai connu ce cas bien trop de fois, mais j'aime bien t'embêter un peeu :D
WhatTrickeryIsThis: trop long tes submit neumam
R4N4R4M4: ah faut que je mette les ennemis dans la simu aussi :(
BlaiseEbuth: Première fois que j'ai cette erreur perso...
WhatTrickeryIsThis: chaud Neumam
Neumann: J'étais devant le boss et j'ai poussé egaetan, t'as raté mon run de l'année
WhatTrickeryIsThis: bha zut
Neumann: Mais mon IA est trop faible pour accéder au top 10 de manière récurrente
WhatTrickeryIsThis: et ta codé un beam search à la magus c'est ça?
Neumann: rdn(2, 150) atm
Neumann: Non pas encore
Neumann: Je vais spam push jusqu'à avoir un nouveau 10/10, et attendre
Magus: mais j'ai pas un "beamsearch à la magus" lol, j'ai suivi le guide
RomanceDawn: wiki ?
Magus: la seule chose en plus ici c'est que c'est un beamsearch par pac, parce que si tu découples pas y'a beaucoup trop de noeuds
Neumann: Tu prononces 1 mot tu deviens auteur
Neumann: J'ai inventé "le terme de patience" apparement
R4N4R4M4: J'avais le même soucis hier soir pour repush, j'ai tenté au moins 50 fois pour remonter
WhatTrickeryIsThis: les 100-200 sont assez résiliants
Neumann: Nos IAs puent la merde surtout
WhatTrickeryIsThis: du coups ça laisse pas assez de match pour monter top 100
WhatTrickeryIsThis: j'imagine pas top 10
R4N4R4M4: Le fow n'arrange rien, tout le monde ne joue pas au même jeu, y en a c'est les Pac tamponnants :D
Neumann: Faut avoir un bon first 10
R4N4R4M4: Quand t'arrives dans le top, tout le monde est à peu près cadré dans son Voronoï, du coup c'est moins aléatoire
Neumann: Voila, 9/10, direct top 120, encore 2 ou 3 wins d'affilée et c'est bon
WhatTrickeryIsThis: aucune idee de ce qui faut foutre en dummy
WhatTrickeryIsThis: c'est clair ça pue
Magus: R4N4R4M4: après sans le fow le jeu aurait été bien pourri, mais bon en ce moment sur CG ça fait un peu l'excuse à chaque fois. "On a un jeu qui est pas assez complexe ? Allez mettons du fow"
Magus: (ça s'applique pas à OOC qui était basé uniquement la dessus vu le jeu dont c'est tiré)
KuroiLight: le plus gênant c'est le fait qu'on ne puisse pas toggle le fow graphiquement :/
R4N4R4M4: Le Fow c'est bien quand il y a pas trop d'actions de type power, sinon tu passes ton temps à coder des trucs chiants pour trouver juste une info
WhatTrickeryIsThis: je l'em....mouette ton fog of war
Magus: ça c'est la cerise sur le gateau qui fait pensé que le fow a été rajouté à l'arrache à la fin, sans laisser le temps de coder le fow dans le viewer
R4N4R4M4: Le Fow dans PR2 par exemple, il est pas mal parce qu'il impacte la stratégie globale et pas les états des unités
WhatTrickeryIsThis: y a eu un contest comme ça avec le fow en debug
R4N4R4M4: pareil pour CB, mais si ton Fow commence à masquer les états élémentaires, c'est un peu galère oui
WhatTrickeryIsThis: il était cool celui là
WhatTrickeryIsThis: kutulu?
R4N4R4M4: Pour OoC, c'était l'objectif par contre oui
Magus: y'a pas de wow dans kutulu (de mémoire)
WhatTrickeryIsThis: tin même neumam se fait emmerder par des 100+ :)
Magus: *fow
R4N4R4M4: sur SC2020 ça aurait été bien qu'on reçoive la notification de l'utilisation d'un power par exemple
Magus: sc ?
Magus: sp plutôt ?
BlaiseEbuth: spring pallenge ?
Magus: ah
WhatTrickeryIsThis: regardez le push de Neumam et dîtes moi ce qu'il fout encore 20 iem
Neumann: Magus : la taille de ton beam à 1000, c'est 1000 quoi ?
Magus: je garde 1000 noeuds maximum pour un pac
WhatTrickeryIsThis: depth 1000 :muscle:
Neumann: C'est un arbre le truc, donc t'arrives à depth N, tu coupes uniquement les nodes de la depth N ?
Magus: ah oui je garde que les noeuds de depth N, le reste je jète quoi qu'il arrive
Neumann: Ok tu stockes la séquence complète dans le noeud
Magus: oui
Neumann: J'avais cru comprendre que tu faisais un arbre type MCTS, avec 1 move par noeud
Magus: ?
Magus: pas compris
Magus: tu peux faire autrement qu'un move par noeud ?
Magus: ah non ok j'ai compris la remarque
Magus: non je fais pas ça
Magus: class Node {public: double score; unsigned char actions[DEPTH_MAX];};
Tryum: bah tu peux faire n move pour tes n pacs ;)
Magus: voila, c'est ma classe Node en entier
Magus: y'a rien de plus dedans
Neumann: Sans ça, ça deviendrait galère de pruner
Neumann: Enfin impossible même
Tryum: Et tu ne stores pas l'état des pastilles dans ton noeud ?
Neumann: Simulation from scratch à chaque fois
Magus: pas le choix, de toutes façons vu que les autres pacs vont changer leurs actions l'état va changer
WhatTrickeryIsThis: peut être ça résoudrait son probleme de depth
Magus: donc inutile de le stocker
R4N4R4M4: Neumann, y a un truc à debugger là : https://www.codingame.com/replay/465641087
R4N4R4M4: à la fin
WhatTrickeryIsThis: enfin j'ai pas capté pourquoi faut remonté depuis depth 0
WhatTrickeryIsThis: il a dit tout à l'heure
Magus: wtf cette fin de partie oO
Neumann: Haha
WhatTrickeryIsThis: le demi tour de neumam est assez mechant
Neumann: Je compte pas le nombre de pellets restants sur la map en fonction du score
R4N4R4M4: Remarque moi je reste sans rien faire non plus :D
Neumann: Cet idiot de bot
WhatTrickeryIsThis: r4 tu savais qu'il lui restait un bot dans un cul de sac. N'est-ce pas ?
R4N4R4M4: J'ai pas vu tout de suite, mais le mien est pas mieux, mais c'est ma nouvelle version pas finie
WhatTrickeryIsThis: tu l'aurais kill si tu savais que tu avais le temps je suis sur
R4N4R4M4: WhatTrickeryIsThis, non je sais rien du toup mon bot fait juste une bête éval de flood pour l'instant
Tryum: Ah oui moi je le stockais car je simulais tous les move en même temps ... mais bon c'était pas performant pour un clou 😅
Magus: de toutes façons copier des états c'est pas gratuit
WhatTrickeryIsThis: mon ia sait mais n'en fait rien , je m'inspire ton pvp pour l'instant
Magus: ça t'obliges a faire ton état de jeu très petit pour que la copie ne soit pas trop lente, donc tu perds en vitesse de lecture/manipulation de ton état
Magus: donc copier ton jeu dans chaque noeud est pas forcément plus rapide que de simuler du début
Tryum: 👍
Tryum: Bon le client profanity... j'abandonne... dommage qu'il n'y ai pas un https://chat.codingame.com, avec le chat en fullscreen ;)
BlaiseEbuth: T'es sur quoi comme os ?
Tryum: windows, mais j'ai des sessions ssh ouvertes
BlaiseEbuth: Hmm... T'as pas essayé avec wsl ?
Tryum: essayé quel client ? :P
Magus: pourquoi avoir besoin d'un client xmpp en ligne de commande sous windows ?
Magus: sur un linux sans interface je comprendrais l'utilité mais la ... :/
Tryum: j'ai testé profanity 0.8.1 j'ai eut l'espoir que ça fonctionne... mais le chat du channel n'apparait pas (alors qu'un chan custom est ok)
Neumann: C'est quoi le soucis avec pidgin ?
BlaiseEbuth: Perso j'ai besoin d'un client xmpp fonctionnant correctement avec cg sous windows. Le fait que ce soit en console ou pas je m'en moque...
Tryum: Magus, je fais tourner dans un screen, et je récupère la session où que je sois ;)
BlaiseEbuth: Neumann, perso je peux pas me connecter sur cg avec pidgin, et c'est pas faute d'avoir essayé...
Neumann: Noob
Tryum: Neumann l'UI de pidgin me plait pas... peut-être qu'il y a des thèmes cependant ;)
Magus: pourquoi tout le monde y arrive sauf toi ?
Tryum: Nan j'ai galéré aussi au début, l'info dans la FAQ est pas suffisante.
Neumann: "J'arrive pas à me connecter avec pidgin" is the new "Y'a un bug sur le puzzle The Descent"
WhatTrickeryIsThis: d'abord Blaise on veut te voire sur pacContest
WhatTrickeryIsThis: viendez
BlaiseEbuth: Va savoir, néanmoins ça marchait à l'époque du general_fr, et quand on est passé sur fr ça a cessé de fonctionner pour moi...
R4N4R4M4: Allez, j'attaque la partie de code intéressante :D : NODE* e2 = &simu; clone(e2, e);
Tryum: J'ai pu me connecter via pidgin avec les infos trouvée sur le forum, et encore, l'affichage des rooms le faisait planter ;)
BlaiseEbuth: Gajim fonctionne, mais j'aime pas le client.
BlaiseEbuth: En fait, j'arrive à me co avec pidgin, mais uniquement en passant par la recherche de salle. Ce qui prend trois plombes puisque les rooms des clashs sont jamais supprimées... Mais en entrant le nom du chan direct, je me prends un refus cinglant du serveur d'auth...
Tryum: tu mets bien Fr@conference.codingame.com .
Tryum: ?
BlaiseEbuth: Sans doute. Ca fait belle lurette que j'ai pas essayé
Magus: la recherche de salle ouai faut pas l'utiliser
Magus: y'a des dizaines de millier de salon de clash qui apparaissent dedans
Magus: CG aurait pu faire en sorte qu'ils soient pas dedans ça aurait été sympa :(
Zorg1: ou de les purger régulièrement
Zorg1: quoique le crash de serveur s'en occupe ^^
WhatTrickeryIsThis: nan mais Neumam laisse tomber le ladder il marche pas, tu sera même pas top 100 avec 100% win
WhatTrickeryIsThis: ton separt submit est moche aussi recommence
WhatTrickeryIsThis: depart*
Zorg1: il est pas encore légende Neumann ?
Zorg1: ah non
Neumann: J'étais à 1 win de l'être tout à l'heure
Zorg1: :(
Neumann: Mais ça aurait pas été mérité
Neumann: Clairement de la chance
Tryum: Ah ! un dark theme par shippé par défaut avec Gajim, j'arrête de chercher autre chose ;)
egaetan: WhatTrickeryIsThis vient ! le leaderboard en legende à l'air tout aussi pété
WhatTrickeryIsThis: 2 min
egaetan: gg Kami
Zorg1: "SC2020 le contest aux leaderboards pétés"
Magus: ah ouai le leaderboard légende a l'air drôle, mon submit a fini 15ème maintenant je suis 47ème
Magus: je crois qu'un mec qui me bat souvent fait juste spam submit depuis tout à l'heure
Zorg1: bon je vais prendre une :beer: j'aurais pê une idée pour ce *supercontest*
Zorg1: le push permanent
WhatTrickeryIsThis: kovi n'a jamais dépassé les 20%, il repush avant
R4N4R4M4: Bon, je vais faire une pause parce que je trouve pas comment faire mes boucles imbriquées de PAC alors que je sais pas leur nombre...
egaetan: fais comme si ils étaient 5
R4N4R4M4: et du coup si ils sont que 4 l'intérieur de la boucle s'exécute jamais...
Neumann: Y'a des gens en légende qui simulent à petite depth ? (< 4)
Saelyos: Non.
Neumann: :ok_hand:
Neumann: T'es à combien toi ?
jft63: bon bah alors c'est foutu pour moi ^^
Saelyos: 5 là mais j'ai pas testé bien
Neumann: Bah 4 ou 5, même combat
Saelyos: T'as dis < 4 :p
Saelyos: Mais ouais je pense que y'a moyen de l'augmenter
Haashi: 3, 4 ,5 meme combat
Saelyos: En tout cas je vois mal un truc viable < 4
jft63: l'eval est trop compliquée
Neumann: Hum
jft63: un beam search depth 4 avec une eval pourrie ça ne m'aide pas trop :)
egaetan: jft63 ça c'est curieux
jft63: egaetan ça m'étonne aussi, mais c'est soit l'eval, soit des bugs dans la simu ou l'algo
egaetan: j'aurais dit une mauvaise seed
jft63: ?
egaetan: vraiment pas de chances, tu tmbes que sur des cartes trop spéciales
jft63: ^^
jft63: ou alors c'est le manque de tracking. en Gold vous faites du tracking?
egaetan: du retro tracking
jft63: c'est à dire?
egaetan: je mets à jour mes connaissances à chaque fois que je le vois
egaetan: mais je predis pas ce qu'il va faire
jft63: si tu vois un pac au tour N, tu "prédis" le chemin qu'il a parcouru depuis la dernière fois que tu l'as vu?
egaetan: c'est ça
jft63: intéressant
jft63: c'est peut être qq chose qu'il me manque
egaetan: ça dépend de ton eval aussi je pense
jft63: elle doit pas être top non plus :)
YannDev: coucou :wave:
BlaiseEbuth: Le voilà, taisez-vous !
egaetan: jft63 la mienne est simple et rapide
YannDev: vous êtes dans le futur avec vos simus :')
**Zorg1 se la joue discret
YannDev: t'es top100
YannDev: donc t'es dans le futur
jft63: egaetan j'ai du mal à la faire simple, il y a des éléments basique comme toujours: score, kill, ... mais la partie "aller vers les pellets" ... là ça ne va plus
egaetan: j'ai fait plus simple, le score seulement :)
egaetan: c'est tout ce qui compte à la fin
jft63: mais dans ce cas tu es obligé d'aller super loin en profondeur !
YannDev: Moi ya 2 questions que je me pose vraiment
YannDev: c'est comment éviter les yoyo
jft63: car si tu es à l'autre bout de la map dur dur
YannDev: et comment attribuer les bons chemins aux pacs
egaetan: oui, il faaut aller un peu profond
YannDev: vous simulez l'ensemble des mouvements ?
YannT: that's what she said
Zorg1: j'ai bien peur qu'on saura ça lors des PM ...
jft63: ;)
YannDev: bah au moins on apprendra :p
YannDev: moi j'ai surtout hâte de découvrir l'algo de YannT
YannT: lol il est nul hein
YannDev: je sais
YannDev: c'est pour ça que je veux le voir
YannDev: comment il peut être nul et être top100 gold
YannDev: ya une magie noire derrière
jft63: egaetan tu fais depth combien?
YannT: et là j'en suiis arrivé à bout, j'ai plus de solution lowcost pour améliorer
YannDev: Moi je suis arrivé au bout de mes rustines aussi :/
YannT: il faudrait passer du temps
YannDev: en vrai t'as moyen de faire passer ton algo légende
YannT: je ferai PM rapide de "comment faire gold (et top20 iol y a quelques jours) avec 3 bouts de ficelle en quelques heures
YannDev: ouais ce serait cool :D
YannDev: moi je vais faire "comment arriver gold à son premier contest"
Magus: on notera quand même que dans mon code j'ai prévu les pacs zombies
Magus: on sait jamais
YannDev: Les pacs zombies ?!
Magus: si un pac mort réapparait dans les inputs aucun problème mon code sait gérer
YannT: je ne pense pas, soit il faut changer d'algo (flemme), soit il reste un bug sous-jacent qui dégrade la réussite, mais s'il existe je le trouve pas
YannDev: ah
YannDev: dommage
YannDev: tu peux vraiment plus rafistoler ton algo?
YannDev: avec de la détection de cul de sacs ou autre
egaetan: jft63 9 tours
Tryum: Cette rage quand tu tapes F5 en pensans être dans VS, alors que chrome à le focus >_<
YannT: c'est ce que j'ai fait aujourd'hui: chercher si j'ai un bug ou un soucis (algo ne fait pas bien des trucs qu'il devrait faire correctement), facilement réglable pour gagner du ranking
YannT: mais je trouve pas
YannDev: Thoip j'ai une "simu" en stock
YannT: je pense que mon algo est juste à bout de ses capacités
YannDev: mais ça faisait le yoyo
YannT: c'est 300 lignes donc bon, faut pas non plus attendre des miracles
jft63: egaetan ah oui quand même depth 9 joli
YannDev: C'est peu..
YannDev: moi je suis à 900lignes
Magus: on est d'accord que quand un pac est mort on le reçoit à tous les tours dans les inputs qu'il est mort ?
YannDev: après j'espace beaucoup mon code est j'ai des trucs que j'utilise plus dedans
YannDev: Oui je crois Magus
Stilgart: tiens, mon MC se met à battre mon dummy
Tryum: trop facile de battre le boss gold... suffit de le bait
Stilgart: spas trop tôt
YannDev: Wtf tryum
YannDev: tu le bait comment :')
egaetan: Stilgart toujours avec no move ?
Stilgart: nan, c'est bon
Tryum: https://www.codingame.com/replay/465716862
Stilgart: depuis que je copie la solution courrante dans best et pas l'inverse, je bouge :)
thoip: Oui il me semble magus.
Tryum: YannDev j'ai pas fait exprès hein, mais le replay est drole ;)
YannDev: en vrai je suis pas loin de battre le boss lol
YannDev: Ah dommage Tryum
Tryum: On peut pas coller de lien depuis gajim :'(
Tryum: test : https://www.codingame.com/replay/465716862
YannDev: :'(
YannDev: tiens je suis #404
YannDev: il y a erreur
thoip: d'ailleurs j'ai vu cet apres midi que j'envoyais les morts sur les super pelettes
YannDev: c'est dommage
Tryum: ah si je peux coller un lien mais après le chat marche plus pendant quelques temps... >_<
BlueGhost31: joli Tryum
egaetan: Tryum ça à l'air sympa ça
BlueGhost31: nécessite de la coordination par contre
egaetan: risqué mais sympa
jft63: alors le backtracking pas cher ça n'a pas l'air de marcher il va falloir que je fasse un vrai backtracking
YannDev: bon bah mon bruteforce est totalement pété lol
R4N4R4M4: Le mien non, il tourne pas encore :D
YannDev: https://www.codingame.com/share-replay/465730862 waw
YannDev: j'ai des pacs afk
YannDev: et mon pac passe à côté de super pellets
YannDev: mais il se dit que c'est sous optimal de les manger
YannDev: ...
R4N4R4M4: Pas mieux que ma partie avec Neumann
YannDev: bah là j'ai vraiment un truc cassé lol
YannDev: ça finit #430 gold si je submit ça
Neumann: Je debug une partie depuis 20min en regardant la mauvaise équipe
Neumann: Yes
YannDev: mdr
YannDev: gg
R4N4R4M4: LOL
ThomasNicoullaud: et donc tout ca pour voir qu'il y a pas de bug finalement ?
YannDev: j'ai l'impression que c'est parce que j'ai une depth 10 que mon algo estpété
YannDev: je vais tenter à 15
Neumann: J'étais content de voir un comportement clairement sous-optimal
R4N4R4M4: Je crois que mes boucles imbriquées variables pour sortir les combinaisons de move fonctionne : http://chat.codingame.com/pastebin/bb1537e6-9d35-41b3-b56b-75f707f70685
YannDev: dpeth 15 c'est moins bon que depth10...
R4N4R4M4: 3/4 d'heure juste pour ça
R4N4R4M4: Bon à 3 PACs ça donnerait ça ? faut que je vérifie : http://chat.codingame.com/pastebin/f76c21c6-82d7-4c0c-85b3-684e164df958
R4N4R4M4: mouais on va dire que c'est bon
Magus: nan mais laisse tomber les combinaisons
YannDev: attends tu voulais juste générer des permutations?
Magus: avec 5 pacs tu peux avoir 59k combinaisons de coups
YannDev: tu peux faire une énumération récursive ;)
R4N4R4M4: C'est la base de mon futur algo Magus
YannDev: R4 t'aurais pu faire une fonction récursive
YannDev: ça aurait été plus simple
YannDev: là t'as du suer avec tes boucles :')
R4N4R4M4: J'ai fait une meta boucle :D
Zorg1: boucle ou récursif ça revient au même
Zorg1: mais pour les combinaisons t'as nettement plus simple
YannDev: dans son cas c'est plus simple à coder en récursif
YannDev: sinon tu as un truc en C++
YannDev: pour avoir toutes les permutations
Zorg1: tu écris le nombre dans la base (3 par exemple)
YannDev: hm
Zorg1: (enfin 4 )
R4N4R4M4: mouais, mais tout ça ça marche quand t'es en début de contest et que t'as le temps, là, ça devient urgent mon truc
Zorg1: :D
Zorg1: pas faux
R4N4R4M4: et avec les bouts de cerveau qui me restent, je prends le premier truc qui marche :D
Karocyt_aka_Kevazoul: Ou tu peux faire les combinaisons de mouvements que d'une case, puis refaire un tour pour ceux qui ont le SPEED, qui joueraient 2 fois comme l'applique l'engine
MartinGal: Angine il me semble
R4N4R4M4: C'est les indices d'actions de type move que je cherche, donc il y a une étape à faire à l'incrémentation
R4N4R4M4: Faut que je vérifie que je trouve bien que des moves d'ailleurs
R4N4R4M4: http://chat.codingame.com/pastebin/5f80da71-cf2c-4dea-9e5d-e7d75e628e54
R4N4R4M4: Ah ouais, je teste à l'incrémentation et pas à l'init... :(
R4N4R4M4: Je suis pas loin du but, bientôt l'évaluation du Voronoïe optimum ! :D
R4N4R4M4: bon allez, pause avant de fixer tout ça
Tryum: R4N4R4M4 quel langage ?
Tryum: j'ai découvert std::next_permutation en C++ :D
Zorg1: il fait du C R4 (enfin du C en Objective C)
R4N4R4M4: oui voilà
Tryum: pas d'accès à la std::C++ ? :P
Tryum: je m'en suis servit pour tester les combinaisons pacs/super pellet gagnant en "phase 0"
Tryum: la combinatoire à la main des différentes actions / pacs, j'ai fait à la mano aussi, et effectivement, ça explose (j'ai mis de coté :/)
R4N4R4M4: Je regarderai Tryum, ça peut servir en effet
YannDev: bon ma simu s'améliore
YannDev: je passe de 76 à 118 sur le même match contre le boss
YannDev: j'ai rien dit c'est de la grosse merde
YannDev: regardez le pac 1 au début lol https://www.codingame.com/share-replay/465751584
YannDev: il aurait pu bouffer deux super pellets ce con
Julien_Fardel: Il n'a pas d'oeil gauche
YannDev: c'est probable :p
YannDev: le pire c'est que quand j'augmente la valeur d'une big pellet ça devient pire
Tryum: Je me demandais si beaucoup de monde utilisait le multithreading sur CG ?
b0n5a1: o/
YannDev: quelqu'un aurait une idée pour que mes pacs target un peu plus les super pellets svp ?
Mazelcop: bigPelletValue = 100
YannDev: au pire je fais en sorte que ça aille sur la super pellet la pus proche
YannDev: Mazelcop ça ça nique mon code
YannDev: parce que du coup j'ai des pacs qui commencent à prendre le même chemin
Mazelcop: ouais après tous les pacs vont vers la big pellet, normal :)
thoip: module qui s'occupe des super pelettes independant du reste
YannDev: x)
YannDev: ma simu se fait détruire par mon code
Tryum: YannDev, j'ai une phase 0 où je rush les super pastille :P
YannDev: ouais je pensais faire ça
YannDev: bah ty
YannDev: :)
Tryum: Moi faut que je règle mes propres collisions.. avec mes propre pacs qui font des shifumi :P
R4N4R4M4: Ma super permutation :D
R4N4R4M4: http://chat.codingame.com/pastebin/3fe3a97c-cb6c-4a10-b374-c19a2882c85c
YannDev: ah bah gl tryum
YannDev: R4 je saisis pas trop
YannDev: tu bruteforce toutes les combinaisons de mouvements ?
R4N4R4M4: pas encore, mais yesss
R4N4R4M4: d'ailleurs faudra que je chronomètre ça au cas où
Tryum: ça marche dans les clients externes le paste de code ?
YannDev: bon c'est dommage que j'arrive pas à trouver de moyen propre de manger les super pellets
Tryum: http://chat.codingame.com/pastebin/c68e7061-008e-4482-9136-3a3d107f44c1
YannDev: neumann smurf
YannDev: oO
Neumann: ..
Neumann: Laissez-moi galérer en gold
YannDev: :')
YannDev: oulala
YannDev: tu es #413
Neumann: Yes, je sais lire
YannDev: en vrai c'est useless de smurf
R4N4R4M4: Merci Tryum, je vais regarder ça
YannDev: t'as plus de chances de passer légende en submitant
BlitzProg: Bah alors neumann D:
0xCAFE: Ce moment ou ton IA bat le boss 75% du temps mais il gagne pas de manière fiable contre les IA plus faibles ^^
YannDev: oof ma simu qui se fait détruire par toute la ligue
Neumann: Smurfer ça évite de se faire ping 5 fois par jour parce que "BaH aLoRs T'Es PaS LeGeNdE ?!"
YannDev: Je vois pas le soucis à pas être légende direct
YannDev: tu vas passer :
YannDev: :)
YannDev: au pire fuck les rgeux
YannDev: rageux*
BlitzProg: Neumann
- cries in bronze league AI*
BlitzProg: bon, cette nuit j'espère terminer quelque chose pour battre le boss bronze
0xCAFE: Est-ce que d'autres personnes que moi gagnent plus souvent le boss que les IA normales? Je suis en gold, c'st mon premier challenge
YannDev: oui
egaetan: Neumann, BaH aLoRs T'Es PaS LeGeNdE ?!
YannDev: en tout cas quand j'étais silver j'avais ce soucis
Neumann: Va chier
YannDev: N'égoute pas les rageux
JBM: que de cordialite, ca fait chaud au coeur
YannDev: gaetan c'est un rageux :p
Neumann: Non je les égoute pas, je les laisses dans leur jus
**egaetan avoue avoir copy paste
BlitzProg: quoi!
YannDev: gaetan BaH aLoRs T'Es PaS LeGeNdE :
Neumann: Il est légende, ça marche pas
YannDev: pff
Neumann: Grâce à moi d'ailleurs
Neumann: Ingratitude/20
YannDev: double pff
**egaetan remercie encore Neumann
YannDev: https://www.codingame.com/share-replay/465774508
YannDev: je vais arrêter de faire une simu je crois lol
BlitzProg: mon objectif est juste de battre le boss silver pour le moment. une idée du minimum à faire pour ça?
YannDev: 0,9^d*value m'a trahi
YannDev: le boss silver ?
YannDev: tu vas en chier
BlitzProg: :(
YannDev: silver c'est devenu la muraille de Chine
0xCAFE: Il est pas si dur en vrai tu peux rester sur des algos simples.
YannDev: ya un marécage dans le top200 avec 350 000 ia random
YannDev: donc tes algos risquent de se faire hardcounter
BigUP: BlitzProg, bah bien gérer le farm apparement et ne pas te faire bouffer, utiliser le Speed autant que possible
YannDev: Oh salut BigUp
YannDev: t'as réussi à passer ou pas ?
BigUP: Salut YannDev
BlitzProg: D'acc, je vais voir
BigUP: YannDev, toujours pas, je suis 9eme Silver... mais a 1,7 points du boss
BigUP: YannDev, mon code arrive maintenant a monter top 30 de lui meme
BlitzProg: Je vous cache pas que je suis très inquiêt, démarrer sur ce jeu était simple, mais améliorer son AI c'est de l'enfer distillé
0xCAFE: Rude ça, essaye d'optimiser légérement les paramètres ou de rajouter une feature et tu dois passer
BigUP: mais il peut également faire #200
BlitzProg: j'en suis à ma troisième remise à zéro et je suis toujours mid bronze
BlitzProg: je deviens de moins en moins bon chaque tournoi qui passe
Tryum: Wé moi passer le silver c'était implémenter l'attaque (basique) + défense, et surtout corriger les bugs, vu que j'avais un crash une game sur deux :D
BigUP: BlitzProg, l'enfert c'est qu'un #700 peut taper ton IA #20 ...,
0xCAFE: Pour bronze, je cois qu'aller à la nourriture la plus proche en permanance suffit
BlitzProg: Justement, j'ai remis à zéro à cause de ça, je gère pas le cas où je vois plus rien.
0xCAFE: Ah c'est pas en siver ça?
BigUP: BlaiseEbuth, tu mémorises l'unité ennemie la derniere fois que tu l'as vu, c'est suffisant, apres tu vois combien de temps tu te sert de cette position
0xCAFE: Ben tu vas devoir faire des parcours de chemin alors
BlitzProg: je trouverai moyen de finir gold, c'est juste tellement épuisant, j'ai trop peu de motivation
bananaMixer: BlitzProg: Tu peux faire une liste des positions non visitées au début, que tu réduis à chaque tour. Comme ça, quand tu ne vois plus de pastilles, tu peut prendre une position à explorer dans cette liste.
BlitzProg: dire que je m'imaginais que ce truc ressemblait à CSC au début, je vous raconte pas la désillusion hard
BlitzProg: Oui, ce que je suis en train de construire c'est un truc du genre, je considère que tout contient une pastille, puis j'enlève à mesure que ce que je suis censé voir n'en contient pas
0xCAFE: Par contre c'est nul, on peut pas faire d'assembleur, j'aurais aimé tenter de sortir du bois en assembleur. Du coup je fais du C mais c'est moins fun :(
Stilgart: asm(.....);
Stilgart: sinon
Stilgart: bash + cat > main.asm << EOF + as + exec
0xCAFE: Ouais mais c'est pazs du vrai assembleur, c'est l'inline assembly du c
Stilgart: on peut écrire dans un fichier oui
0xCAFE: Trop bien, je fais officiellement le prochain concours en assembleur
0xCAFE: Et si j'arrive à sortir du bois 2 ça sera déja pas mal, merci du tip!
Tryum: BlitzProg, hint toutes les cases ont des pastilles, sauf là où on spawn... et l'adversaire spawn en symétrique ;)
Stilgart: bon, mon MC est meilleur que mon dummy... sauf contre le low silver :)
Norlan20: Salut à tous. Quelque peux t-il m'aider pour le Bot AI. Je comprends pas vraiment !
BlitzProg: yup, ça encore ça va ça peut être deviné
0xCAFE: Qu'est ce que tu ne comprends pas vraiment?
Stilgart: on ne comprend pas vraiment ta question là ? :(
b0n5a1: la magie de google translate ^^
BigUP: tiens, j'ai pas pensé au Spawn en symétrique...
Norlan20: Je ne sais pas trop comment ça marche aufait
Tryum: BlitzProg, le seul truc un peu relou, c'est de calculer la ligne de vision, et effacer les pastilles disparues.
Stilgart: mais tu es sur quel puzzle ?
0xCAFE: Est-ce que tu pourrais avoir moins compris?
Stilgart: Tryum: heu... ha bon...
Tryum: les pastilles qui n'apparaissent pas en input, mais qui sont censer être dans ton champs de vision
BlitzProg: je l'ai fait en C++ + simulateur puis j'ai tout effacé parce que j'arrivais pas à m'en servir et me sentait pas de tout debug
BlitzProg: du coup je réécrit de nouveau tout en PHP
BigUP: Tryum, ca se fait bien, je recupere la liste des postions avec un floodfill et je compare dans le flood avec ma liste des pastilles
0xCAFE: La ou ca devient dur c'est de faire déductions sur les pastilles mangées quand tu ne vois pas l'enemi, je vais tenter ça demain
Tryum: oui j'ai pas dis que c'était compliqué, mais que c'était relou ;)
Stilgart: exact
Stilgart: point taken
BlitzProg: mais tout est relou :'( je m'amuse vraiment pas là où j'en suis, pour ça que je patauge
Norlan20: J'aimerais juste savoir comment ça marche je me perd un peu !
b0n5a1: Norlan20 si tu précisais un peu plus de quoi tu parles t'aurais de l'aide
Palami: si tu parle anglais suis la chaine de hextree
Norlan20: OK Je parles de la compétition qui est en cours actuelement. Celui des pastilles là !
BlitzProg: Norlan20, que souhaites tu faire? Lancer ton code? avoir un rang dans l'arène? autre?
Norlan20: Je ne comprends pas comment ça marche. On code normalement ou quoi ?
BlitzProg: de base dans Codingame tu crée une IA avec l'éditeur, et une fois lancée, cette IA se bat seule jusqu'au bout - tu as ensuite le résultat de ce qui s'est passé.
Palami: ouai juste sert toi des input
Norlan20: Ok voilà je ne sais pas comment créer l'IA !
BlitzProg: Prend le code de base donné en exemple quand tu commences puis lance le. Normalement ce code de base te donne des pacmans qui se dirigent au centre de l'arène
Palami: tous les inputs sont les infos par tour a toi de voir se que tu en fais
BlitzProg: le code de base lit l'input en suivant l'énoncé, et écrit un output en suivant aussi l'énoncé.
b0n5a1: t'as le code par défaut qui lit les entrées et fait un truc basique codé en dur en sortie...à toi d'écrire tout le reste pour faire des sorties "correctes" avec ton propre code Norlan20
Sfreez: Bonsoir, je suis nouveau sur ce site, est ce qu'il est possible d'avoir des solutions pour les clash of code que l'on a fait ?
b0n5a1: oui, si les autre publient leur code à la fin du clash, sinon non
BlitzProg: Sfreez > clash of code non, sauf si l'utilisateur accepte de partager son code, je crois
BlitzProg: ailleur sur le site faut avoir 100% sur un puzzle pour voir comment les autres l'ont codé
Palami: il y a des personnes qui twitch leur façon de codé comme hextree et d'autres comme ennoncé dans le mail
Palami: mais bon pour comprendre se qu'il code faut beaucoup se documenté avant
Palami: surtout pour une debutant
Sfreez: Dac merci pour les réponses
Palami: ps: c'est mon premier voila pk je rep comme ça
257832: Bon. J'ai réinstallé pidgin. Le fichier de conf était encore là donc je l'ai lancé tel quel... Et ça marche. Je cherche même pas à comprendre.
Palami: depuis le debut du contest j'ai beaucoup regardé les algo de pathfinding si ça peux t'aider
Palami: https://fr.wikipedia.org/wiki/Algorithme_A*
Zorg1: pas l'impression qu'A* va t'aider des masses pour ce contest
Razielwar: lol bfs ou dfs ça t'aidera plus
Zorg1: ouaip ;-)
Palami: nan mais quand t'y connais que dal tu vois ces collegues de decouverte de chemin etc
Tryum: Norlan20, si tu ne connais pas codingame, je te conseilles de faire l'onboarding, ça permet de comprendre l'ide
Palami: mais merci pour les confirmation les mans :)
Razielwar: ;)
Zorg1: si tu veux approfondir t'as l'article de redblob que je trouve pas mal : https://www.redblobgames.com/pathfinding/a-star/introduction.html (il traite BFS/Dijkistre/A*)
Razielwar: j'ai déjà utilisé A* dans des puzzles mais il me semble pas l'avoir déjà utilisé lors d'un contest
Zorg1: * Dijkstra
Neumann: Magus : t'as défini un ordre particulier pour tes pacs dans la recherche ?
Palami: si vous avez des discord ou on peux demander de l'aide sur la prog en python jsuis adepte en tant que nooby
Palami: dijkstra c'est bon mais autant mettre l'heuristic pour avoir la meilleure reponse
Palami: c'est une fonction pour un meilleur coder
257832: Oui oui oui...
Palami: apres je repete je suis nooby
Zanbez: Dans le doute, on pose la question à Automaton2000
Automaton2000: mais moi je fais des tests de l'ide passaient.
Zorg1: nice Automaton2000 les validateurs sont OK aussi ?
Automaton2000: après c'est de la pure merde
257832: :D
R4N4R4M4: Bon, je suis bien content, ma simu marche et je bruteforce niveau 1 en 2ms...
R4N4R4M4: Par contre, ça fait n'importe quoi, l'éval va être dure à gérer
R4N4R4M4: je vais peut être garder une éval par Pac finalement
Zorg1: R4 le roi de l'heuristique qui fait de la simu ...
Zorg1: je suis dépité
R4N4R4M4: Non mais en fait Zorg1, j'ai quoi derrière ma simu ? :D
R4N4R4M4: Une heuristique !
R4N4R4M4: Et là ça morche pu !
egaetan: un brute force niveau 1 ?
R4N4R4M4: Bon, normalement si c'est comme d'habitude, j'ai des tas de bugs et c'est pas en 1 journée que je pourrai les trouver
R4N4R4M4: Oui egaetan, mais simplissime
R4N4R4M4: Je cherche une évaluation globale du jeu tous pac confondus, mais bon, ça marche pas top
R4N4R4M4: Je pense que ma simu a quelques bugs, je suis pas confiant dans quelques états
R4N4R4M4: Je pourrai pas fiabiliser de toute façon c'est mort, je vais continuer pour le fun, mais d'ici demain, je pourrai jamais régler le truc.
R4N4R4M4: Et puis surtout, il y a la règle à ne jamais, mais alors jamais transgresser...
R4N4R4M4: !!! Ne jamais push à la fin du contest !!!
Tryum: Et surtout bien tagger un commit avant de commencer une amélioration :P
egaetan: tu as toute la nuit de dimanche pour repush R4N4R4M4
Tryum: Bon ma gestion de collision a base de courtoisie est pas suffisante :P
Tryum: J'ai vu que tu as fait de même R4N4R4M4 ... :)
R4N4R4M4: egaetan, je me laisserais bien tenter par une nuit de repush, mais je sais trop que ça sera une grosse galère :D
R4N4R4M4: Tryum, c'est bien la courtoisie pourtant :D
Tryum: c'est facile ^^
R4N4R4M4: J'ai quelques bugs sous le coude et des petites features, mais.... ne surtout pas repusher... ! Jamais !!!
R4N4R4M4: Fermeture de l'IDE pour éviter les accidents :D
b0n5a1: Faut ajouter une option "désactiver le bouton submit" dans cgenhancer ^^
BlitzProg: update_pellet_map($missing_pellets); ayé, ça marche *transpire*
R4N4R4M4: Bonne idée, b0n5a1, ou un faux bouton pour ne pas se priver de la satisfaction de passer la souris dessus et de ne pas cliquer :D
bananaMixer: Bine joué Blitz. Ça devrait te faire monter dans le classement, non ?
R4N4R4M4: gg BlitzProg
BlitzProg: Ben maintenant faut que je recode une IA qui utilise ça.
b0n5a1: ou une msgbox "T'es sûr de vouloir faire cette connerie ?"
257832: Ou un script qui fait que le bouton se barre plus loin quand t'essayes de cliquer dessus
egaetan: le bouton soumettre qui se barre j'aime bien
BlitzProg: comme dans stanley parable "oh ha ha tu croyais que c'était si simple? vas y maintenant clique 10 fois sur le bouton lancer mon code"
b0n5a1: erf le "toquer 5 x à la porte" ^^
BlitzProg: "allez hmm je sens que ça vient, clique mois 20 fois sur rejouer dans les mêmes conditions"
257832: Y'as un succès "envoyer 10000 fois son code dans l'ide"...
Magus: bon, je sais pas quoi coder pour le fog ... j'ai essayé des trucs, mon IA devient parano et ça fait pire :/
leojean890: mon ia attérit dans les marécages de 220 gold une fois de plus;p même en corrigeant des trucs ;P
R4N4R4M4: BlaiseEbuth, dommage qu'il n'y ait pas un compteur visible du nombre de publications dans l'IDE.. :D
leojean890: pas encore tenté les pellet_value*dist^0.9 à minimiser ;P
257832: Ca ferait beaucoup de chiffres....
R4N4R4M4: parce que ça va vite le nombre de publications, on doit avoir passé le million
leojean890: le compteur de spam submits ;P
leojean890: 200 submits en 9 jours pour ma part :P:P la plupart étant des relances directes lorsque mes 10 premiers matchs sont insatisfaisants :P
R4N4R4M4: aussi, ça serait marrant une page de stats avec des gros chiffres
leojean890: les stats de kovi
R4N4R4M4: Ah c'est où ?
leojean890: 4 submits par heure pendant 24h * 9 jours :P
R4N4R4M4: ah ok
leojean890: nulle part ?:P sauf en effectuant ce calcul;P
leojean890: 4*24*9:p
b0n5a1: -4000000000 pour cause de dépassement du max ^^
R4N4R4M4: J'aime bien les stats de pokerwars pour ça : https://www.pokerwars.io/profile/R4N4R4M4
Tryum: les montagnes russes le gold quand même, 70% de mon submit, je fais des sauts de 100 places toutes les quelques games :P
leojean890: ah iuais chaud
R4N4R4M4: Ca va jusqu'au million de tournois
leojean890: moi il est vachement stable pendant le submit sur le même créneau
leojean890: R4N4R4M4 jconnaissais pas
R4N4R4M4: Faut faire une API, mais c'est sympa
egaetan: java ou javascript ?
R4N4R4M4: Le niveau est pas top, j'ai un bot de fin de bois 1 qui est dans le top 20 global
R4N4R4M4: Tu fais en ce que tu veux, moi j'ai une API en C CGI
yamo: Dans un cas comme ça : [...P...] Mon pac en mange une à droite puis 2 à gauche, puis 2 à droite, puis une à gauche … Vous résolvez comment ce pb ?
leojean890: what ? fin de bois 1 ?;P
R4N4R4M4: T'as un replay Yamo ?
R4N4R4M4: leojean890, mon bot, il joue au hasard et j'ai simplement interdit les coups les plus mauvais
Alshock: le bot qui se croit dans un self service et qui goûte à tout
Tryum: R4N4R4M4, pour jouer, faut exposer un service web ?
R4N4R4M4: oui voilà
Tryum: fun
R4N4R4M4: c tout expliqué sur leur site, et ils répondent bien quand t'as des questions, moi j'avais un redirect sur mon serveur et je l'avais pas vu, c'est eux qui m'on aidé à debug
yamo: R4N4R4M4 en bas au milieu, à partir de frame 9 : https://www.codingame.com/replay/465840695
Alshock: @R4N4R4M4 je m'incline devant la classe absolue
leojean890: R4N4R4M4 j'ai pas bien compris le concept de pokerwars en allant dessus :P
R4N4R4M4: Ha ha yamo, tu vas là où y en a le plus :D
leojean890: ton bot joue au hasard en interdissant les coups les plus mauvais ??
leojean890: celui de bois 1 ?
leojean890: pas compris :P
R4N4R4M4: y a tout sur cette page https://www.pokerwars.io/how-to-play.html
Alshock: ton bot de pacman bois 1 joue au poker et se rank top 1 ? :P
R4N4R4M4: Non leojean890, je voulais dire que le niveau de mon bot sur Pokerwars, c'est un peu celui de comme si je voulais sortir de bois 1
leojean890: ah oui je vois
leojean890: faire une IA qui joue au ppker
leojean890: poker
R4N4R4M4: j'ai fait un bot qui joue au hasard avec quelques règles pour éviter de perdre
Tryum: mon fucking bot qui laisse toujours 1 ou 2 pastilles au fond des culs de sac, rrrrrrrrrrr
Alshock: en vrai ça me tente pas du tout comme jeu en tant qu'humain, est-ce que ça m'intéressera pour faire une IA ? No lo se
leojean890: jpréfèrererais tenter les échecs à la limite:P
Alshock: la part du pauvre Tryum
leojean890: ou le gomoku !
Alshock: c'est pas forcément une mauvaise chose cela dit
Alshock: ou le go tout court
R4N4R4M4: Le poker c'est sympa en IA, y a plein d'algos intéressants, j'ai pas mal creusé
leojean890: s'il y a un site équivalent avec les echecs je tenterai :P
Alshock: ça doit être intéressant ça, et puis les simus sont pas compliquées
yamo: R4N4R4M4 oui, ça marche bien, sauf dans ces cas là …
leojean890: pokjer je sais, y'a des ias qui battent les champions il parait en DL
R4N4R4M4: notamment l'éval de Cactus Kev qui est géniale et qui n'a pas trouvé mieux depuis 2010 : http://suffe.cool/poker/evaluator.html
Zorg1: c'est pas au Texas Holdem limited m'a t on dit ? Unlimited les IA ont du mal je crois
Alshock: @yamo quick and dirty fix: divise le score par la longueur du chemin
R4N4R4M4: Oui voilà Zorg1, c'est exactement ça THU (unlimited)
leojean890: vous connaissez un site du genre pour des competes d'IA d'échecs ?:P
BigUP: Au TH, les cartes n'ont pas tant d'importance que ca... donc les IA doivent légèrement galérer
R4N4R4M4: tu peux faire tapis quoi :D
Alshock: ça existe 100% en tout cas leojean890
Alshock: après, j'avoue que j'y connais keud
leojean890: Alshock ouais joense que ça existe car c'est un des jeux les plus étudiés
Alshock: moi je sais jouer avec mon poireau sur leekwars
leojean890: avec go et shogi
R4N4R4M4: Les algos actuels, c'est du MCTS avec de l'équilibre de Nash
Alshock: mais en vrai j'attends la v2 avant de faire une IA
leojean890: leekwars c'est quoi ?
Zorg1: leekwars j'ai pas accroché
leojean890: l'équilibre de Nash je ne connais pas:P
Alshock: https://leekwars.com/
Alshock: j'ai jamais fait une ia, mais ça fait 5 ans que je me dis qu'il faudrait
Zorg1: Nash c'est la matheux qu'est fameux pour être schyzophrène
R4N4R4M4: Ha oui les poireaux, ça fait longtemps que j'ai pas été voir mon bot
Zorg1: ils en ont fait un film je crois
R4N4R4M4: Zorg1 oui c'est bien ce Nash
Alshock: a beautiful mind c'est lui ?
leojean890: ah ouais faut que jregarde ça :P
R4N4R4M4: Un homme d'exception oui
Alshock: j'ai jamais vu le film mais je crois de mémoire
Tryum: ahaha je viens de me faire avoir par un switch+2 vs un switch+1 ... c'est risqué comme strat non ? :P
leojean890: Développez votre propre intelligence artificielle grâce au LeekScript, un langage facile à apprendre, et devenez le meilleur éleveur !
Alshock: @leojean890 à partir de maintenant à chaque fois que tu arrives sur le chat tu ne pourras plus dire "salut à tous et tortue Automaton2000 et AutomatonNN"
leojean890: wtf xD
Automaton2000: oui, ça c'est le plus important
AutomatonNN: pas tout à fait comme ça Automaton2000
Alshock: tu seras obligé de dire "hey Automaton2000, tu as vu mon poireau aujourd'hui ?"
Automaton2000: c'est que j'ai pas fait de la peine
leojean890: mdr
Alshock: Le leekscript actuellement c'est basé sur du JS et il travaille depuis trois ans à le porter en C++ c'est bien ça ?
leojean890: faut que je teste le rust moi :P
leojean890: parait que c'est performant et syntaxe sympa
Alshock: c'est un coup à chopper le tétanos
leojean890: j'aurai pas forcément le courage pour leekscript:p
leojean890: à voir après
leojean890: si le jeu est sympa
Alshock: déjà faut que j'arrête de répondre ça à chaque fois, et ensuite faut que je rajoute un disclaimer "oui, le tétanos n'a rien à voir avec la rouille"
leojean890: jm'y attacherai ptet :P
yamo: merci Alshock
Alshock: je t'avoue que je m'en souviens pas, de mémoire c'était ok tier
Alshock: @yamo ça veut dire que ça marche comme tu veux ?
yamo: je vais tester
Alshock: @yamo c'est quoi un "chemin à tester" pour oti actuellement ?
Alshock: -oti+toi
yamo: bfs depth N
Alshock: ok, du coup ça va, j'ai eu peur un moment que tu prennes aussi les chemins non finis de taille n auquel cas un pellet adjacent serait toujours le meilleur choix
Escdemon: Bon, j'ai le meilleur BFS de toute la ligue bronze mais je protège pas mes pacs et je les empechent pas de se foncer dessus x)
yamo: je prends aussi les chemins non finis de taille n. Du coup, ça ne marche pas terrible …
yamo: je préfère un chemin de L8 avec 8 pastilles qu'un chemin de 4 avec 4 pastilles par ex.
yamo: même en divisant pas L^0.9, c'est pas mieux
yamo: tristesse
257832: Bon... :beer:
BigUP: biere a 2h du mat ... pourquoi pas ?
257832: C'pas une bière. Mais y'a pas d'emoji bloody mary...
b0n5a1: haha
BigUP: quand ce que tu bois est dirigé par les emojis ! :)
thoip: bien parti 19 match #89
BigUP: putain je me fais peur ! je regarde une video en allemand et je comprend ce que le gars dit !
BigUP: j'en ai fait a l'ecole.... mais ca date
257832: J'en suis qu'à mon premier verre moi, j'ai pas atteind ce stade.
b0n5a1: ôte ta gaine Berthe que je tâte !
BigUP: j'ai l'impression de moins galérer qu'avec l'anglais ! et pourtant
AKIBA: Bonsoir ou bonjour, pourquoi ils ont rajouté DEAD en ligue argent?
BigUP: j'etais quand meme sacrément mauvais en allemand
AKIBA: mais les morts ont les a a chaque input du coup?
b0n5a1: oui
BigUP: AKIBA, du coup, il faut les filtrer a chaque tour ;)
257832: Ca deviens glauque
AKIBA: ok, je vois pas trop ce que cela apporte de plus
AKIBA: Ha ok, merci
reCurse: Ca se paie au sang avoir des infos sur CG, faut pas râler quand on les a enfin
AKIBA: je ne fais pas ma fine bouche, c'est que mon code est un peu rudimentaire et ne fera pas grand chose de plus de l'info
thoip: 60 combats et je fais le yoyo autour de #80.
BigUP: thoip, on en est tous au meme point !
AKIBA: pas tous :(
BigUP: a chaque fois que tu te dit que ton IA cartonne, il y a la petit losse de daube contre une IA classé 700 places derriere toi ...
BigUP: et la, tu replonge
AKIBA: Ciao, ciao les noctambules.
thoip: ah tu es toujours en silver?
BigUP: thoip, oui, je ne te raconte pas l'enfer ! ;)
thoip: j'imagine le boss a dut pas mal monté là.
257832: Moi je peux te raconter l'enfer... :smiling_imp:
BigUP: 26,80 ca va. Le probleme c'est pas le boss, je crois que j'ai encore jamais eu un seul combat contre lui
BigUP: tin, la bonne serie de loose, contre respectivement #288, #299, #330, #358, #403 ....
b0n5a1: BlaiseEbuth : https://pbs.twimg.com/media/EUlObmrUEAM4lch?format=jpg&name=medium
257832: Bawi ^^ Viens on est bien
BigUP: Start de 11 Wins !! :) ca faisait longtemps que je ne l'avais pas fait ! ;)
BigUP: thoip, je suis monté #92 et maintenant je batailler sur #393
Valkilaen: C'est intéressant de faire de la parallélisation sur CodinGame ? Je veux dire, l'intêret dépend pas mal de la machine sur laquelle le code va tourner, mais on a pas trop d'informations sur ça
257832: On a toutes les infos
257832: #faq
Escdemon: BigUP j'ai fait mes premiers matchs conter toi tout à l'heure , tu m'as mis 2 - 0 x)
reCurse: Si par parallèle t'entend multiple threads, laisse tomber
BlitzProg: Je vois pas trop à quoi ça pourrait servir sur codingame
BigUP: Escdemon, oui j'avais un code qui avait un Winrate >50% contre le boss, mais je bloquais #200 en debut de semaine
BigUP: maintenant j'ai l'impression d'avoir un winrate <50% contre le boss, mais je bloque #200
BigUP: #100
BigUP: avec une montee ou 2 en top 20
BlitzProg: Soit t'as un gpu et dans ce cas c'est drole d'avoir des centaines de coeur de calcul au lieu de juste un, soit t'as des requêtes internet à faire et dans ce cas t'as pas à attendre le sync... mais Codingame ça s'applique pas
Escdemon: Pas mal BigUP !
Valkilaen: Bah y a 5 Pacs à gérer sur le challenge actuel Cela dit mon problème vient plus du fait que mon code est pas très (pas du tout) optimisé plutôt que d'autre chose Ahah
BigUP: Escdemon, sauf que ca ne suffit pas et je n'ai eu aucun match contre le boss
Valkilaen: J'ai testé le A* sur ce challenge, mais bon Chepa si c'était le meilleur choix
Escdemon: Il faut une nouvelle petite feature pour passer le boss
Valkilaen: Mais 50ms ça me parait tellement court 10ms/pac à peu près
BlitzProg: t'as le temps d'en faire des choses en 50ms
reCurse: 3 frames d'un jeu moderne
reCurse: Pas trop mal
Valkilaen: Ouais mais bon le jeu moderne va pas tourner sur la même machine
S1L3nCe: ?
S1L3nCe: je viens de passer gold
reCurse: Euh si
S1L3nCe: dernière fois que j'ai submit c'était hier et j'étais 150eme x)
Valkilaen: 'Fin bon, j'ai pas l'impression de faire tant de calculs que ça mais je dépasse de temps en temps
Valkilaen: Va me falloir du chemin avant de comprendre tout ça
b0n5a1: merci pour le fou rire reCurse ^^
Valkilaen: Silver ça sera déjà bien
BlitzProg: en règle général, si tu penses que la machine sur laquelle tu exécutes ton code est trop lent, c'est que c'est toi qui en demande trop :P
257832: Machines are perfect, fix humanity !
Valkilaen: Oui je suis d'accord, je cherche plus des excuses mais je suis conscient que le problème c'est le bot
BlitzProg: Quel langage Valkilaen?
b0n5a1: js
Valkilaen: TypeScript (j'en profite pour tester des langages)
BlitzProg: Ah
BlitzProg: Au pire si tu y tiens => C
reCurse: C'est comme amener une Peugeot pour courser en F1
Valkilaen: Oui j'me doutais bien que ça serait pas le meilleur choix en terme de performances mais bon Y a bien des gens au dessus de Silver qui sont en JS je pense
BlitzProg: Je controle pas toujours ma F1 moi :')
egaetan: il y a un legende en js
Valkilaen: Et moultes gold, c'est juste mes algos qui sont nuls indeed
Valkilaen: C'était quoi le meilleur choix en algo' pour ce challenge en vrai ? J'ai du A* de tous les côtés mais ça me rekt
reCurse: On va le savoir dans 2 jours
Valkilaen: Nan mais quelques uns des meilleurs, je cherche pas forcément la réponse ultime, mais plutôt chercher à faire mieux la prochaine fois
reCurse: A* c'est assez mauvais règle générale
reCurse: Avis perso
reCurse: Tu peux précalculer tous les chemins au début
BigUP: et du coup plutot que A*, il faut utiliser quoi ?
Valkilaen: Ca suppose que tu sais où tu veux aller non ? Ce qui est justement mon problème Je cherche plusieurs possibilités et je cherche les chemins à chaque fois, mais je timeout
reCurse: Un simple BFS
BigUP: tin j'ai tout au top !:)
reCurse: Tu lances un BFS de chaque case et tu gardes la direction pour chaque paire source destination
reCurse: C'est tout con
reCurse: Et ça te donne une recherche de chemin O(1) pour le reste du jeu
Valkilaen: OK, je regarderais BFS
BigUP: ha, tu memorise les chemins en ligne droite... pas betes, ca me permettrait de prioriser les lignes avec le plus de pellets...
Zakaoai: Bon ça y est je vais enfin pouvoir mettre en place le decay :D ça m'auras prit du temps mais j'ai réussi à avoir l'info du nombre de palet que l'enemie à prit et dont je n'ai jamais vu la position
BigUP: et sur le 1er tour, meme en python, ca doit passer
257832: Qu'est-ce qui est jaune et qui attend ?
reCurse: Jonathan?
Gonny: lol
257832: Non... Le bouton submit
reCurse: :tomato:
Zakaoai: Pauvre fou ne clique pas sur ce bouton trop mortel tu risque de descendre dans les méandres du classement
Alshock: le floyd de mon zbif est pas censé être mieux que de Floodfill depuis chaque case comme un sale ? J'avais essayé ça mais c'était encore plus lent
Alshock: enfin, je dis ça mais ya peut-être un meilleur BFS que le floodfill avec plusieurs sources que je ne connais pas
Zakaoai: qu'est-ce que tu cherche ?
Alshock: quand tu calcules tous les chemins au premiers tous, ya mieux que faire un floodfill par case ?
Alshock: premier tour*
BigUP: bonne nuit
Zakaoai: pour la plus courte distance entre 2 chemin moi mon floodfill par case rentre au premier tours
Zakaoai: bonne nuit bigUP
Alshock: fais de bô raives <3
Zakaoai: Mais pour ça Alshock il faut couper le bfs quand tu le peut
Zakaoai: Le bfs standard prend un noeud regarde les adjacent de ce noeud (les feuilles) et les rajoute à la liste à parcourir. Tu me comprend jusque là ?
257832: Bon. Plus de bugs. Maintenant mon bot est juste mauvais... :grin:
b0n5a1: remets les
Zakaoai: :D
257832: C'était pire avant
b0n5a1: ok
Zakaoai: Moi je sens que si j'améliore pas mon bot je passerais pas legende avant la fin du challenge ;'(
BlitzProg: allez, premier submit pour sortir de bronze, voyons ce que ça donne.
BlitzProg: 50ème bronze, c'est pas encore ça.
BlitzProg: 4ème bronze, are you kidding me
BlitzProg: oh damn, promotion quand même. ok cool :o
R4N4R4M4: GG BlitzProg
BlitzProg: Bon, silver maintenant. je vais faire une pause puis voir si je peux pas coder un bfs
Zakaoai: Ah GG tu as atteint la moitié du challenge :p