Chat:Fr/2021-04-06
nicola: Tiens, BlaiseEbuth n’est plus chef.
nicola: Il a perdu la boule.
BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !
Automaton2000: oui mais c'est pas possible
BlaiseEbuth: Comment ça plus chef ?
BlaiseEbuth: Beh ! J'suis dégouté ! Pourquoi le puzzle de la semaine c'est un truc tout récent et déjà connu, alors que "A with a plan" est plus ancien et ne l'a pas encore été (Et qu'il y'a genre 15 personnes qui l'ont fait)... :rage:
BlaiseEbuth: *"with"
BlaiseEbuth: (╯°□°)╯︵ ┻━┻
BlaiseEbuth: *"A man with a plan"
nicola: Tu as retrouvé la boule.
BlaiseEbuth: Beh je l'ai jamais perdue, fix ta browser.
jnono: Bonjour à tou, est ce que quelqu’un pourrait me donner la solution du mars lander 2 et 3 svp
BlaiseEbuth: Non.
Krakota: Pas mieux.
BlaiseEbuth: 'tain, j'ai un code quantique. Il ne bug que si j'affiche pas d'info de debug...
Neumann: Stylé
BlaiseEbuth: En un sens... Mais peu pratique.
BlaiseEbuth: Alors ça c'est rigolo. En fait il ne plante pas, y'a juste des tours où il va prendre plus d'une seconde pour répondre, alors que le reste du temps c'est moins de 50ms... :thinking:
darkhorse64: Il y a un petit nouveau qui vient de mettre tout le monde d'accord. Impressionnants, les replays
BlaiseEbuth: Moi j'suis pas d'accord. Attends que j'ai compris mon code. :3
BigUP: Krakota, c'est un algo génétique sur le Sofia Labs Coding Challenge ?
Tiouz: Je viens d'implémenter mon premier algo génétique sur SR, et en terme de conducteur débile on est bien
BigUP: Tiouz, ca marche pas torp mal l'AG sur SR
Tiouz: BigUP je crois que ce sont des algo génétiques sur CSB et les équivalents
Tiouz: Oui je sais, mais je pense qu'il ne converge pas du tout
Tiouz: J'ai une voiture qui fais des zigzags assez aléatoires
Tiouz: Mais il me reste pas mal de trucs à améliorer, notamment la population initiale
BlaiseEbuth: Il con, c'est déjà ça. Plus qu'à verger
BigUP: Tiouz, faudrait que je regarde mon code, mais je ne sais plus si j'ai du bricoler avec mon AG sur SR
darkhorse64: Ca ne marche pas tout seul un AG, il faut avoir la bonne fonction de fitness et la bonne discrétisation
Tiouz: Bonne distrétisation ? cad ? Je limite les angles à -18,-9, 0, 9, 18 (ou un truc dans le genre) ?
Tiouz: Je sais que ça ne marche pas tout seul, j'avais un espoir un peu naïf c'est tout
darkhorse64: Oui, sur CSB, je crois que -18,0,18, ça suffit
Tiouz: oh
BigUP: TAngle=(-18,-9,0,9,18)
Tiouz: Je pense que ma fonction de fitness est bien pour le moment, c'est un couple (nb_cp_passed, -dist_to_next_cp)
BigUP: pour la puissance, j'ai été un peu violent --> TPower1=(15,30,45,60,75,90,105,120,135,150,200,200,200)
Tiouz: Vous avez des grosses populations ? Je cherche sur 5 tours et avec 5 solutions
darkhorse64: sur SF2442, tu n'as pas de limitation sur la vitesse de rotation. Du coup, tu as plus de valeurs possibles. Au vu de mes resultats, je ne vais pas te donner de conseils j'ai un truc similaire
Zorg1: c'est limité à 100 la puissance, bigup ...
darkhorse64: j'ai pris 6 tours et 50 solutions
BigUP: Zorg1, la je parlais de SR
Tiouz: Aussi, je suis en python, donc je fais moins d'itérations, donc j'imagine que c'est plus dur de converger
Tiouz: Merci pour vos conseils
Zorg1: bigup : ah ok ^^
Bon[]Crayon: sALUT
Tiouz: SaLuT
darkhorse64: Passe au C++, Python, c'est pas assez puissant pour de la simu
Bon[]Crayon: Automaton2000
Bon[]Crayon: AutomatonNN
Automaton2000: je vais en faire de la merde
Tiouz: Je sais que python c'est pas assez puissant, mais je code vraiment plus vite
BlaiseEbuth: C'pas un clash of code...
BigUP: Tiouz, mon AG est en python, sur SR ca marche, mais le manque de puissance n'aide pas
Tiouz: Oui, c'est un prototype
Tiouz: Je vais pas me lancer dans un algo que je ne connais pas, dans un langage où je suis une merde
Tiouz: Et vu mon code C++, comme je fais de la merde je suis aussi lent qu'en Python
BigUP: Tiouz, le probleme c'est quà un moment, il faut se lancer ! :)
Tiouz: J'avais fais 2048 en python, je suis passé en C++ et j'ai pas gagné plus de points
BigUP: Tiouz, mon 1er AG je l'ai codé avec Python sur ML2, ensuite je l'ai porté en C++. Ca se fait pas trop mal
Tiouz: BigUP quand j'aurai qqch qui marche en python, je le traduis en C++
Thyl: qui à déjà gagné un t shirt codingame ???
BigUP: Thyl, oui mon 1er contest... la chance du débutant ;)
Thyl: lequel ?
jfaixo: la difficulté de tous les algos évolutionnaires, c'est pas de coder l'algo, ca tient en 200 lignes, c'est de tuner tous les hyperparamètres (la profondeur de coups que tu explores, comment tu explores, a quelle vitesse,...). C'est plus de la connaissance que de la programmation pure
pardouin: Tiouz tu utilises les pragmas en C++ ?
pardouin: parce que sinon normal que tu vois pas une différence énorme
BigUP: Thyl, sur Fantastic Bits...
Thyl: purée
Thyl: un pros de la collision !
philRG: Toiuz j'ai fait un MC full random en Python, 24 itérations en moyenne on dirait le bateau ivre, je vais essayer un AG, mais j'ai peur que ça merde aussi
Tiouz: pardouin on m'avais donné une ligne de commande pour que ça compile avec O3, je ne sais pas si en plus on peut paralléliser. Après sur 2048 j'étais bloqué par le 32k, j'arrivais pas à le passer
BigUP: Thyl, mon IA a surtout fait la différence sur l'utilisation des sorts a des distances appropriées
darkhorse64: Tu as trouvé comment passé le 32k ?
Thyl: un vrai harry potter quoi !
Tiouz: darkhorse64 non. J'y arrive en simulations locales, mais pas avec le timeout de 50ms, et le nombre de coups à 600
BigUP: Thyl, j'ai surtout passé du temps a regarder mes matchs et corriger mes coups pourri :)
Thyl: snas algo de recherche du coup ?
darkhorse64: Je vais loin en profondeur sur 2048 mais ça converge toujours vers une impasse et je le vois des centaines de cous à l'avance donc je pense qu'il y a un truc
darkhorse64: *coups*
Tiouz: J'avais essayé de lui faire faire moins de coups quand la situation devenait critique, mais ça n'a rien donné
darkhorse64: Pareil
BigUP: Thyl, oui c'est tres procédural ! :)
BigUP: Thyl, à l'époque ca suffisait, mais le niveau de chacun est monté sur les contest. Le meme contest, aujourd'hui, ca ne suffirait plus
Tiouz: Elle me fait pitié ma voiture. Je vais améliorer ma population initiale
pardouin: Rassure-toi, depuis la Fiat Multipla aucune autre voiture ne fait pitié
pardouin: Cette voiture tu la croisais dans la rue tu avais l'impression qu'elle te disait "achève-moi..."
BigUP: pardouin, j'en ai déoublé 1 Samedi.... j'avais oublié a quel point c'etait laid ! mais je me demande si c'etait pas déjà une refonte
BigUP: tin, la surface vitrée, quand ta clim te lache, tu dois mourrir dans une voiture comme ca
philRG: :joy:
Zorg1: la multipla c'est la voiture avec l'espèce de bourelet ?
Zorg1: ah oui c'est ça
Estefano: et 3 places à l'avant !
Zorg1: ah comme sur les utilitaires
Estefano: en plus mcohe :D (simple avis)
Estefano: en plus moche :D (simple avis)
Arkmer: hello, je suis nouveau et débutant, je tente de résoudre le problème (facile) the descent. quelqu'un peu m'aider svp ? ^^
Zorg1: oui je ne suis pas convaincu par l'esthétisme de la multipla ^^
Ulfari: Zorg c'est parce que tu n'en as pas vu avec des ailerons (et un futur moteur de 1000 chevaux )
Zorg1: avec deux boosters fusée de chaque côté ?
Ulfari: https://www.kisskissbankbank.com/fr/projects/multiplamg-stage-1000-milletipla
Zorg1: d'un autre côté, l'intérêt d'un truc moche qui va vite c'est que t'as moins de temps pour le regarder :p
[CG]Thibaud: Arkmer il y a des indices dans le menu à gauche
Bon[]Crayon: Bon Automaton2000 Quoi de 9 ?
Automaton2000: j'ai fait une boucle infinie
Bon[]Crayon: Automaton2000 noooooooooooooooob
Automaton2000: salut tout le monde est en train de coder
Bon[]Crayon: Automaton2000 Tout le monde est en train de coder sauf tout seul.
Automaton2000: service unavailable: back-end server is at capacity
Bon[]Crayon: Automaton2000 Où as-tu péché cette phrase ?
Automaton2000: comment tu fais pour ne pas avoir à faire de la merde
Bon[]Crayon: Automaton2000 Je ferraille.
Automaton2000: est-ce que tu as des pistes ?
Bon[]Crayon: Automaton2000 est-ce que tu as des tortues ?
Automaton2000: (je viens de passer en bronze
Bon[]Crayon: Automaton2000 GG
Automaton2000: heureusement qu'il y a moyen
Zorg1: ulfari : ils ont quand même réussi à level 1 million d'euros pour leur multipla à 1000 chevaux ... :astonished:
Zorg1: *lever
BigUP: ils ont tenté la voiture la plus moche la plus puissante !?
jfaixo: allez go 1er bot histoire de pouvoir observer ce que font les autres :japanese_ogre:
Zorg1: bigup : en gros oui
BigUP: ils partaient avec une belle longueur d'avance quand meme avec le multiplat ! je ne vois pas ce qui aurait pu etre opposé a ca
Zorg1: un truc ultime de jackie ^^
nicola: Tu veux mettre un gros aileron dur un Multipla ?
nicola: Avec autocollants avec des flammes ?
jfaixo: dis donc, game on neumann aussi ? ;) la semaine va être intéressante haha :smiley:
Neumann: Come at me
Illedan: Sure
Zorg1: ah je croyais que tu hiddais ...
jfaixo: faut bien rentrer dans la course a un moment sinon tu peux pas te tester contre les ia des autres :P j'ai pas commendé a optimiser, mais comme je battais le bot de base ca permettait pas de voir les bugs qu'il reste dans les simus pour l'instant..
Zorg1: bah le IA hidding c'est sous un autre compte pushé une merde et tester ton vrai code dans l'IDE contre le top
Zorg1: et ensuite pusher ton vrai code à la fin sous ton vrai compte
jfaixo: ok ok :) non mais j'ai pas trop apprécié le coup de daporan l'autre fois, je fais pas ca perso, je perdrai avec panache :sweat_smile:
jfaixo: (et Neumann me late a chaque fois pour l'instant, ya du taff..)
jfaixo: (typiquement j'ai un souci dans ma distance aux checkpoints on dirait xD )
Neumann: Ouais t'en rate de temps en temps
Zorg1: va falloir que je code les collisions moi (enfin que je recopie le code dans mon CSB)
struct: agentId: 3488984
Neumann: A utiliser avec CGBenchmark bien entendu
Zorg1: c'est l'agent id de qui ?
struct: Of the person hiding
Zorg1: ah :D
struct: The bot that was 1st
Neumann: :eyes:
jfaixo: mdrr, bon va falloir que je prenne en compte le poursuivant dans la fonction de cout aussi, je sers de booster a certains...
JE_SUIS_MOI: :wave:
Zorg1: salut moi
JE_SUIS_MOI: Le bonne blague ...
Zorg1: bah
Neumann: Illedan !
Illedan: :)
BlaiseEbuth: skiki hide ?
Neumann: Toi.
Zorg1: tout le monde hide, le monde n'est qu'illusion
Zorg1: les derniers à pusher seront les premiers
Ulfari: Zorg sur leur chaine youtube y'a des vidéos du multipla, notamment une ou il on retiré tout sauf le chassis et la mécanique pour rouler
Zorg1: le kart-multipla
Ulfari: y'a eu plusieurs versions de leur multipla, et ils ont roulé à un rassemblement de voitures italiennes avec x)
dbdr: oula, mais c'est actif sur sofia
dbdr: personne ne bosse?
Neumann: Vous mangez pas le midi en Pologne ?
Neumann: Hongrie *
Neumann: soz
dbdr: Neumann: en Hongrie on mange quand on l'a mérité, quand on a accompli ses commandements avec humilité et qu'on a glorifié sa famille
Neumann: Ah
Neumann: Nous on mange quand on a faim
dbdr: :D
Zorg1: de toute façon un bot n'a pas besoin de manger, une prise de courant et c'est bon
Neumann: C'est quoi le nombre minimum de tours, 2 ?
struct: oui
dbdr: Zorg1, parle pour ton bot, le mien tourne a l'huile de friture
Zorg1: encore un truc écologique ...
dbdr: ben oui, ca recycle
dbdr: enfin downcycle
dbdr: c'est pour pas gacher
dbdr: ah Zorg1 t'es passé en Go
Zorg1: oui
**dbdr essaye tres fort de ne pas faire la blague trop évidente
**Neumann cries in Société nationale des chemins de fer français
BlaiseEbuth: En même temps quelle idée de sortir de chez soi...
BlaiseEbuth: Ah c'est cracotte qui hide. C'est pas bô.
jfaixo: tain Neumann, t'avais des bonnes bases non ? :o
Tiouz: OMG mon algo génétique pour SR marche !!! C'était une erreur débile évidemment
Tiouz: Ah ça fait plaisir !
Neumann: jfaixo: J'ai passé un peu de temps sur CSB
BlaiseEbuth: Et maintenant il passe un peu de temps dans le train.
ZacDonald: petite question sur les vecteurs en C++ : myvector.erase(myvector.begin()) cette commande efface bien la première valeur contenue dans mon vecteur? ou alors c'est moi qui est mal compris la chose ;)
jfaixo: lol reste dans le train, genre 48h, le temps que je corrige des trucs xD
BlaiseEbuth: C'est ça ZacDonald
ZacDonald: donc tout les valeurs associé au vecteur, que ce soit l'id ou même autre chose sont supprimé pour la premiere valeurs du vecteur en question
ZacDonald: merci bien BlaiseEbuth :)
Xiema: ququ'un sait comment on bat le boss silver de A Code of Ice and Fire ?
Zorg1: houla c'est vieux ^^
leojean890: perso je me suis fait pousser en gold 6 mois après avoir pushé un truc top silver xD faut que tu "cut" les zones de l'adversaire en spawnant plein de mecs et en avançant ce que tu veux (winning move)
Giorno.: beugle sans miauler
GooMooc: bonjour, dans atarigo en python, mon bot arrive a jouer les 80tours car il respecte les regles du jeu mais je ne vois pas comment evaluer les territoires ennemis capturable...
GooMooc: :triumph:
pardouin: essaye de te faire la main sur ce puzzle : https://www.codingame.com/training/hard/a-game-of-go
GooMooc: ben j arrive deja pas avec le medium, pourquoi passer au hard
pardouin: la difficulté est pas très précise
pardouin: il est pas plus dur, jette un oeil tu verras, c'est juste la partie technique
pardouin: en gros il faut évaluer tes composantes connexes et voir si elles ont encore des libertés
leojean890: j'ai même pas de vraie simu, juste une heuristique qui m'a mené genre 10/90 ? qui analyse en gros les voisinages des spots où tu considères de jouer pour voir s'ils sont propices ou pas pour attaquer et défendre (tu peux faire une éval basée sur ces principes aussi)
GooMooc: ok, merci pour le conseil. oui c est exactement ca que je voudrais faire, mais je ne vois pas comment depuis la liste des positions ennemies je peux faire des listes de territoires sans doublons ... ensuite pour evaluer un territoire je devrais y arriver
leojean890: dans puissance 4 tu peux faire le même genre d'éval super crade qui évalue les différents alignements non bloqués de pions et plus ce dernier est grand et pas "bloqué sur les bords" non plus plus ça vaut de points^^
leojean890: c'est assez sale comme concept mais ça marchotte^^
pardouin: tu notes quand tu as déjà rencontré une position, ça évite de relancer une recherche de composante connexe
GooMooc: ben pour l instant je dois me contenter d un truc qui marche, bien sur j aimerai que ca soit propre mais bon... j ai pas le vocabulaire
pardouin: tu connais BFS et DFS ?
GooMooc: absolument pas desole
GooMooc: what is it?
BlaiseEbuth: Better Faster Stronger
pardouin: parcours en largeur et parcours en profondeur
leojean890: regarde sur google les algos de parcours en largeur et profondeur
leojean890: tu peux calculer des tailles de composantes connexes ainsi
pardouin: c'est les deux parcours de base pour les graphes (et donc les grilles)
GooMooc: ok
pardouin: à peu près tous les algos de recherche sur des grilles reposent soit sur un DFS, soit sur un BFS (ou une version améliorée)
pardouin: ça vaut le coup de passer du temps dessus, ça va te débloquer plein de trucs
GooMooc: Breadth First search
pardouin: oui et depth first search
leojean890: purée sur mon profil CG les 10 derniers jeux que j'ai faits sont des commus^^
BlaiseEbuth: Omondieu :scream:
BlaiseEbuth: Et alors ? :expressionless:
leojean890: ouais ces algos te servent très souvent sur CG que ce soit pour les optims/multis ou puzzles
pardouin: (en gros DFS tu relances l'exploration à partir de la dernière position découverte et BFS à partir de la première position découverte et pas encore explorée)
pardouin: (du coup DFS fait explorer "à fond", puis revenir un peu en arrière et re-explorer "à fond", etc, alors que BFS lance une exploration qui se propage un peu partout en parallèle)
GooMooc: merci, je crois que j ai un peu de lecture.... Mon bot est pas pret de battre alphago
pardouin: https://www3.cs.stonybrook.edu/~skiena/combinatorica/animations/search.html
pardouin: pour voir une illustration
BlaiseEbuth: Woah! Zoli!
pardouin: tiens ça c'est pas mal aussi : https://codepen.io/Owlree/pen/PPomzo
pardouin: tu peux cliquer sur run DFS / run BFS et voir l'exploration du labyrinthe
leojean890: tu pourras aussi jeter un oeil à minmax/alphabeta/MCTS/algorithme génétique/recuit simulé/hill climbing quand tu auras le temps
BlaiseEbuth: Bwarf... Faut trouver où changer la taille du labyrinthe..
leojean890: beam search
Louis.: hii
Louis.: i am new to codingame
Bon[]Crayon: Salut
Louis.: salut
GooMooc: oui, jvais deja essayer d explorer les territoires ennemis et de capture un ou deux pions
K2ARISM: bjr
Bon[]Crayon: Salut
Bon[]Crayon: AutomatonNN ?
Louis.: bonjour
Bon[]Crayon: re o/
Bon[]Crayon: Automaton2000 est-ce que tu as bouffé NN ?
Automaton2000: tu veux que je me suis laissé distraire :-)
philRG: ah sympa le bfs/dfs sur codepen pardouin
PythonSlayer: salut, je suis en train de faire le challenge d'amadeus et pour les simulations je m'aide de la presentation de magus, le probleme c'est que mon truc bloque a chaque fois a la premiere collision et je vois pas pq(t = 0.0). Quelqu'un a eu le probleme?
BlaiseEbuth: Tu checke pas deux fois la même collision ?
darkhorse64: tu n'as pas bougé les pods ?
Caly-CiG: bonjour, est-il possible de voir la (ou une) solution proposé pour les clash of code , svp?
PythonSlayer: Apres le clash les gens partagent parfois
PythonSlayer: Si je bouge les pods je crois
Caly-CiG: okay, mais pas de solution officielle c'est ça ? (merci pour ta réponse)
PythonSlayer: j ai ajoute que col.t > t comme ca je suis sur de pas faire deux fois la meme
PythonSlayer: euh je pense pas non, mais je pense que tu peux recuperer les meilleurs sol d'une maniere ou d'une autre
Caly-CiG: okay, merci :) bon courage pour ton problème
BlaiseEbuth: C'est pas parce que c'est officiel que c'est forcément mieux... Regarde le gouvernement.
PythonSlayer: Ils sont nuls nuls nuls partout c'est pas que le vôtre ^^
darkhorse64: Quand tu dis que tu bloques, tu pars en boucle infinie, tu plantes ? Dans les deux cas, soit tu truffes ton code de print ou tu lances un debugger sous windows en sauvegardant les inputs dans un fichier et en les relisant
Tiouz: C'est pas parce que c'est optimisé que c'est mieux, regarde le capitalisme
Caly-CiG: Pas faux, mais c'est surtout que personne ne partage son code :p du coup y'a pas de solution du tout ^^
Tiouz: Caly-CiG, parfois j'oublie de partager, n'hésite pas à demander dans le chat, et souvent les gens vont partager
BlaiseEbuth: Ou t'insulter. Mais ils sont gentils
Caly-CiG: okay, je prendrais le risque alors ^^ merci pour vos réponses :)
PythonSlayer: darkhorse64 j'ai l'impression de me faire timeout au tour 8 sans rasion alors que j'ai mis un truc bien safe , 50 ms max
BlaiseEbuth: Mouahaha
darkhorse64: Avec un algo de search, c'est difficile de debugger à coup de print. Il te reste le debug sous Windows
BlaiseEbuth: Pourquoi windows
darkhorse64: parce c'est ce que j'utilise
PythonSlayer: merci darkhorse64
BlaiseEbuth: Abawi, du coup tout le monde doit l'utiliser
darkhorse64: sous linux, sauvegarder les inputs et les rejouer, ça marche aussi
BlaiseEbuth: ^^
darkhorse64: tu peux avoir l'impression que c'est du boulot mais tu vas aller beaucoup (vraiment beaucoup) plus vite avec un debugger
Zorg1: t'as aussi des debugger sour Linux ...
darkhorse64: Avec ce multi, tu n'as pas vraiment besoin de sauvegarder de state (sauf timeout et boost) et ça va suffire pour déverminer ta collision
darkhorse64: Je ne sais pas si j'ai été suffisamment clair
jfaixo: si ca peut t'aider PythonSlayer, j'ai fait en sorte que ma fonction de simulation d'un tour soit "autocontenue", je lui passe en entrée l'état et les commandes des pods, et ca simule. Ca me permet de faire des TU, en l'appelant avec certaines configurations, et d'être sûr que ca fait pareil que l'émulateur officiel
darkhorse64: ^
PythonSlayer: TU c'es tests unitaires je suppose
Zorg1: oui
PythonSlayer: sinon merci à vous 2
BlaiseEbuth: Pas de soucis.
darkhorse64: J'ai une classe Game qui contient mes pods et mes checkpoints et une méthode play qui joue un tour. Tout ce que j'ai à faire, c'est de faire évoluer mes (ici, ajouter le nouveau vecteur vitesse)
darkhorse64: pods
PythonSlayer: J'ai une methode simulationOneTurn je pense que c'est un peu similaire a ce que vous avez fait
darkhorse64: Oui, le nom a l'air sympa
Tiouz: tu veux dire "simulation_one_turn" ?
PythonSlayer: c'est pas bien de mettre tout attache?
Tiouz: https://www.python.org/dev/peps/pep-0008/#function-and-variable-names
BlaiseEbuth: Si si
Tiouz: La convention python c'est plutôt avec des underscore
Tiouz: mais c'est comme tu veux^^
BlaiseEbuth: Avec python on sait jamais, ça joue peut-être sur la perf.
leojean890: pep8
PythonSlayer: c'est bon à savoir
Zorg1: que python préfère le snake_case ça semble logique
Tiouz: Mais Ocaml ne préfère pas le camlCase ça m'a fait mal
leojean890: pep 8 c'est le nom d'1 convention de code python souvent adoptée
Zorg1: oui c'est le lien de tiouz ^^
scogliani: PEP 8 est une proposition plutôt : https://www.python.org/dev/peps/pep-0008/
Qui est un guide de style
BlaiseEbuth: Le guide de style devrait dire "faites pas de python"
JBM: est moche. FIX IT» devrait suffire
Bon[]Crayon: J'image BlaiseEbuth avalant une couleuvre quand il doit utiliser du python.
BlaiseEbuth: :expressionless:
BlaiseEbuth: Fais le coup du crayon.
pardouin: je me suis remis un peu à thor 2
pardouin: le dernier testcase est costaud
pardouin: je vois même pas trop le genre de trajectoire qu'il est censé faire
JBM: oui c'est un peu n'imp ce puzzle
philRG: ah y a la solution sur PowerOfThor Lvl 1
philRG: le pseudo-code aussi
philRG: tout est expliqué :-)
philRG: ça repose un peu
philRG: premier puzzle que mon frère a fait en découvrant CG, il a bien ri
BlaiseEbuth: J'ai pas eu cette réaction. Mais soit.
Alshock: yo
dbdr: Zorg1 leojean890, vous simulez l'adversaire sur Sofia?
BlaiseEbuth: La Russie tu veux dire ?
BlaiseEbuth: Yo Alshock !
dbdr: tiens jfaixo en rust #11, gg :)
Alshock: tiens j'ai jamais fait PoT 2
BlaiseEbuth: PoT2 ?
Alshock: Power of Thor, j'ai la flemme d'écrire alors je me mets à être incompréhensible comme tout le monde
Alshock: la fameuse strat ICTLM
Alshock: toi aussi tu abuses des acronymes, Automaton2000 ?
Automaton2000: bah ils ont un peu de marge
jfaixo: merci dbdr ! :smiley: me tarde ce soir que ma fille soit couchée et que je puisse commencer a optimiser les différents paramètres de mon bot.. #PèreIndigne :sweat_smile:
Alshock: S
Alshock: ur quel multi ?
jfaixo: https://www.codingame.com/hackathon/sofia-labs-coding-challenge
leojean890: dbdr ouais j'ai tuné un SA sur SR (simu basée sur le PM de Magus initialement) et j'ai repris ce même SA mais je l'exécute d'abord sur l'adversaire avant de l'executer sur moi (et l'éval prend en compte tous les joueurs et c'est l'éval classique basée sur le nb de CP et la distance au suivant)
leojean890: et pour les boosts c'est heuristique
Alshock: ah mais c'est en cours j'étais pas au courant
BlaiseEbuth: Bawé mais t'as qu'à être là aussi, s'pèce de geek associal.
darkhorse64: leojean890: J'ai le même mais en beaucoup moins bien :smile: . Tu as du qd même changer des trucs pour les angles, non ?
Alshock: ah ouais alors forcément sous prétexte que je sors pas de chez moi, que je parle à personne, et que je me cache dans des recoins sombres la nuit forcément je suis asocial c'est ça ?
Alshock: Nan mais forcément aussi présenté comme ça....
jfaixo: haha ca déballe les secrets de fabrication ;) vous arrivez a simuler combien de tours/quelle profondeur dans les 100ms vous ?
leojean890: darkhorse64 oui pour les angles je fais un tirage equiprobable entre 0 et 359^^
darkhorse64: 2000 générations dans mon AG avec 50 génomes
darkhorse64: t'as essayé de discrétiser avec 36 ?
jfaixo: ca fait 100k simulations avec 5/6 tours de profondeur ? mazette ^^
struct: go avx :D
leojean890: autre point, sur SR je vais à une depth 10-11 mais ici ça marche mieux avec depth 6
Alshock: Tiens bah c'est l'occasion d'enfin patcher ma simu de CSB
jfaixo: haha autant de trucs avec lesquels jouer.. me tarde ce soir ^^'
darkhorse64: La physique est plus simple sur SF2442, il n'y a pas d'angle à calculer
leojean890: sûrement comme le pensait blaise, car prendre l'adversaire en compte trop loin marche sûrement moins bien
leojean890: car on peut moins bien anticiper ce qu'il fait à longue distance
struct: Anyone caching collisions?
darkhorse64: Avec 3 pods, c'est inutile
darkhorse64: useless
struct: Yeah
darkhorse64: Poker Chip Race needs it
BlaiseEbuth: "caching collisions" ?
struct: If chip 1 collides with chip 2, then you only compute all the collisions that chip 1 and chip 2 can do
struct: you dont need to check chip 3 vs chip 4
leojean890: j'ai aussi une patience entre les différentes depths que j'ai également tunée sur SR et reprise telle quelle
darkhorse64: Sur SR, je n'ai pas de patience car il n'y a pas d'adversaire mais c'est pê une erreur
TidyMaze: bonjour tout le monde, saloperie de chat qui attrape ma souris :S
darkhorse64: achetes en une pour lui
BlaiseEbuth: "patience"
BlaiseEbuth: ?
TidyMaze: (je parle du puzzle escaping the cat)
Neumann: Illedan : Non.
BlaiseEbuth: Fix ta réponse du turfu
jfaixo: tu fais quo_i Neumann, tu parles au bot de Illedan ? Le pouvoir de l'intention ? xD
BlaiseEbuth: Il répond sur fr à un vieux message de world... Faut suivre
Neumann: Exactement
darkhorse64: parle au bot de krakota, dis lui qu'on l'a vu
Neumann: Je parle pas aux morts
BlaiseEbuth: :eyes:
BlaiseEbuth: Il est mort ? :scream:
darkhorse64: il navigue entre deux eaux, c'est un sous marin
BlaiseEbuth: E6 B3
telerama: bonsoir est-ce que quelqu'un aurait un peu de temps pour aider un débutant ?
telerama: je suis queblo au début de ghost in the cell
BlaiseEbuth: Bien sûr. Tiens: https://how-to-properly-ask-a-question.surge.sh/
telerama: damn this might be useful
telerama: ok je vais réfléchir a ma question
leojean890: telerama il y a un post mortem pour ce jeu, regarde le
telerama: c'est quoi un post mortem?
leojean890: bilan des premiers qui expliquent leur boulot^^
Tiouz: Comment vous trouvez les post mortem ? Visiblement c’est pas dans les discussions liées au problème, il y a une section dans le forum ?
darkhorse64: cherche ghost in the cell dans le forum
leojean890: les post mortems, c'est un moyen de comprendre des approches / concepts pour ensuite les appliquer sur d'autres jeux par ex
philRG: ah c rigolo Thor 2
BlaiseEbuth: On doit vraiment pas avoir la même définition de "rigolo"
philRG: ben comparé à mon premier AG d'aujourd'hui ça me détend un peu
Zorg1: je viens d'inverser une matrice 80x80 à la main c'est top rigolo
jfaixo: chacun ses hobby
pardouin: ahah pour thor 2 j'ai fini par trouver un truc qui passe 100% mais c'est tellement foireux que si je change l'ordre de mes diagonales ça passe plus
pardouin: avec cet ordre ça passe: (tx-1, ty+1), (tx-1, ty-1), (tx+1, ty+1), (tx+1, ty-1), ...
Alshock: On doit vraiment pas avoir la même définition de "rigolo"
pardouin: mais pas avec celui là: (tx+1, ty+1), (tx+1, ty-1), (tx-1, ty+1), (tx-1, ty-1), ...
BlaiseEbuth: Y'a du print.
BlaiseEbuth: *echo
Alshock: et là on se rend compte qu'ne fait ça fait 20 minutes que de désespoir tu testais tous les ordres possibles pour voir si ça passe
pardouin: XD
pardouin: c'est un peu ça
pardouin: bon allez ça m'a calmé pour la journée
Alshock: "et si je teste les cases impaires d'abord ça donne quoi ?
pardouin: à plus :)
philRG: Zorg1 moi codé mon premier AG en python from scratch, je regrette ma forêt de ifs :sob:
philRG: ceci dit c rigolo aussi
philRG: ça bouge un peu mieux que le MC full random
BlaiseEbuth: Bah moi je suis toujours sur de l'informatique quantique, c'est rigolo.
philRG: :joy:
philRG: ma fonction de reproduction des génômes est par contre à fixer, je suis très loin des 2000 générations de darkhorse64
philRG: #noob
Alshock: rabbitize(AG)
BlaiseEbuth: Pyun pyun :rabbit:
Alshock: Omae wa mou tsundereiu
BlaiseEbuth: :thinking:
**BlaiseEbuth not sure of that quote
BlaiseEbuth: Yandereiu à la rigueur
Alshock: Ouais mais ça collait moins au mot d'origine
BlaiseEbuth: Phonétiquement, mais pas sémantiquement...
Zorg1: cette discussion de spécialiste
Zorg1: la preuve j'ai rien compris ^^
Alshock: sémantiquement tu crois être plus yandere que tsundere ? Tu es 100% tsundere blaise, tu es la star d'une fanfic skyblog qui se retrouve deredere avant la fin du premier tome
Alshock: et tu rougis devant le miroir en répétant ta déclaration
BlaiseEbuth: Hmm. Mais tu sais pas le nombre de personne que j'ai déjà éliminé pour me rapprocher de mon âme soeur...
nicola: jé rien conprit
Zorg1: pareil, par mieux, pioche
BlaiseEbuth: Culturez vous: https://fr.wikipedia.org/wiki/Yandere
BlaiseEbuth: https://fr.wikipedia.org/wiki/Tsundere
Zorg1: ah encore un truc de mangaholic
BlaiseEbuth: Naplindotre: https://the-dere-types.fandom.com/wiki/Category:Dere
nicola: Moi, je suis plutôt John Deere.
nicola: :tractor:
Alshock: Pwouahahaha je meurs j'ai cliqué sur le lien de yandere et y a le minimalist de yuno gasai
Alshock: évidemment quoi
BlaiseEbuth: Ma première expérience yandere... :flushed:
Neumann: Le retour de Jeff06
Zorg1: tu peux éditer c'est wikipédia
Zorg1: par exemple je vais mettre une photo d'Atattürk à la place
Alshock: Toi tu vas avoir de gros problème
Alshock: Faut pas déranger les mecs chelous qui sont fans de yuno gasai
Zorg1: "On peut tout illustrer avec une photo d'Atatürk" on vous a jamais rien appris à l'école
Zorg1: ?
Jeff06: @Neumann: Le level est un poil plus élevé qu'en 2016 ^^
Neumann: Un poil :D
Zorg1: bah tout le monde bosse sur CSB depuis 5 ans aussi ^^
BlaiseEbuth: Nan
Alshock: Non, moi j'ai jamais fait une simu correcte dessus
ZacDonald: Re hello tout le monde
BlaiseEbuth: Pareil. Je suis parti de rien et j'ai tout fait avec mes p'tits doigts crochus.
ZacDonald: petite question, si j'ai 3 elements dans un vecteur et que je fais un erase du début de mon vecteur
BlaiseEbuth: Encore...
ZacDonald: les 2 autres éléments sont poussés au début de mon vecteur
ZacDonald: ouais je galère pas mal la :/
ZacDonald: je sais pas si j'ai du mal a comprendre ou si le prob viens d'autre chose
BlaiseEbuth: Tu fais des essais ?
Tiouz: Si c’est pour débugger, tu peux toujours créer un nouveau tableau et ajouter les éléments à la main
Tiouz: au moins tu saura si ça vient de là ou pas
ZacDonald: au final le problème viens surement de la au vu des résultats que j'obtiens dans les informations de jeu
jfaixo: pour yurkovas le boost c'est une arme pour t'expulser :sweat_smile:
Alshock: ZacDonald J'ai même pas vraimetn compris ta question
Alshock: le problème c'est que {1, 2, 3}.erase(0) => {2, 3} ?
GooMooc: http://chat.codingame.com/pastebin/8742b376-9d3d-4e83-95bf-ff04276a1b58
BlaiseEbuth: Perdu
BlaiseEbuth: Un gage !
Alshock: C'est le pastebin qui est à nouveau cassé ?
GooMooc: pfff faut tout reecrire la?
Alshock: flèche du haut
BlaiseEbuth: Bawé. Jour pair
GooMooc: http://chat.codingame.com/pastebin/8b6edadf-bfed-4a7d-97d8-dab0bcedfe73
BlaiseEbuth: :expressionless:
Alshock: Alors par contre le pastebin est cassé
Alshock: donc tu peux pas faire de message long
GooMooc: j ai pas fait de copy/paste
BlaiseEbuth: :expressionless:
Alshock: Il détecte juste le fait que ton message fait plus de 3 lignes
GooMooc: je vais y aller par etape,
Alshock: et essaye d'en faire un pastebin
Alshock: sauf qu'il y arrive pas
Alshock: il est gentil et il fait de son mieux ok ?
BlaiseEbuth: l'est pas le seul
GooMooc: bonsoir, en python, dans une liste de liste de tuple "LLT"....
Alshock: à faire de son mieux si, à être gentil aussi à bien y penser
GooMooc: j' ai un tuple NT (les coordonnées x,y d un pion) et je sais qu il est dans LLT (je verifie cela en mettant a plat avec itertools.chain(*LLT)....
BlaiseEbuth: Ménon, y'a le gouvernement
GooMooc: Bon ... ce que j'ai besoin c est de recuperer l'index de NT dans LLT mais je ne trouve pas la syntaxe
Alshock: LLT.index(NT) non ?
GooMooc: LLT.index(NT) ne fonctionne pas car il y a 2 index a trouver dans LLT :
GooMooc: d abord l index de la liste de tuple ensuite l'index de NT dans cette sous liste... Any Help?
Alshock: ah t'as 2 fois le même élément ?
GooMooc: voila:cry:
Alshock: ah oui je vois, alors, c'est un peu chiant
Alshock: c'est une opération critique ?
BlaiseEbuth: Forcément
GooMooc: ben pas si on connait la syntaxe j imagine
Alshock: je veux dire, ça se fait simplement mais avec une complexité dégueulasse
BlaiseEbuth: Bah c'est du python
Alshock: et comme c'est des tuples ça doit pas se passer comme ça en numpy
Alshock: ce que tu peux faire (y a pas plus crade mais je vais manger)
GooMooc: nnt[3][2] pourrait etre la reponse, a vrai dire j ai reellement besoin que du premier nnt[3]
BlaiseEbuth: Lave toi les mains avant de manger
Alshock: for i, L in enumerate(LLT):
try: j = L.index(LT) except KeyError: continue return (i, j)
Alshock: Je suis plus sûr de l'erreur qui est raised par contre
BlaiseEbuth: :nauseated_face:
Alshock: ah oui, j'ai pas le temps :P
Alshock: Bon allez bisous et surtout n'oublie pas : la complexité est DEGUEULASSE
Alshock: si ton programme est trop lent c'est probablement à cause de ça
BlaiseEbuth: Python tu veux dire
Alshock: Python multiplie la complexité par dix, moi je la mets au cube
GooMooc: Ok, mais je vois pas pourquoi c est si compliquer pour retrouver ce P*** d index
GooMooc: je trouve beaucoup d info sur les liste et je peux les parcourir dans tous les sens mais des que c est une liste de liste de tuple je trouve pas la bonne syntaxe
telerama: quand on ecrit par exemple :
telerama: Si on me donne : http://chat.codingame.com/pastebin/410d9159-a582-4a7d-9d34-5a6856f474f4
BlaiseEbuth: A bah ça s'est pas réparé tout seul en 5 minutes... Etrange :thinking:
BlaiseEbuth: :3
BlaiseEbuth: Bon en vrai c'est pété depuis hier...
telerama: mon niveau d'incompétence en est au point ou j'arrive meme pas a poser une question
BlaiseEbuth: Ah c'était ta question ?
BlaiseEbuth: Découpe la en p'tit morceau avant de l'envoyer.
nicola: Ton bout de code est censé faire quoi, Alshock ?
BlaiseEbuth: Comme tu ferait pour renvoyer le corps d'une de tes victimes à sa famille.
telerama: jme disais la même chose c'est dingue
BlaiseEbuth: Je sais. :smirk:
telerama: si on me donne : for i in range (n) : x=int(input()), comment je fais pour me servir des entrées après?
telerama: genre elles sont stockées sous quelle forme?
nicola: Ce code ne suffit pas.
BlaiseEbuth: Déjà tu prends une seule entrée, et ensuite tu passe au plat, goinfre.
nicola: Essaie plutôt ça : x=[int(i) for i in input().split()]
nicola: Non.
BlaiseEbuth: Ouai non
nicola: Marche pas ici.
BlaiseEbuth: Bref.
telerama: split() ce serait avec une chaine de caractère plutot?
BlaiseEbuth: Le code de base ne suffit pas, c'est à toi de stocker les entrées
nicola: [int(input()) for _ in range(n)]
BlaiseEbuth: irk
nicola: Ben quoi ?
nicola: Avec x= devant.
BlaiseEbuth: :zipper_mouth:
nicola: C’est le _ qui t’effraie ?
BlaiseEbuth: Non le python
nicola: :grin:
nicola: Aie confiaaannnce.
BlaiseEbuth: Ouai c'est tout à fait ça.
telerama: ok je pense que j'ai compris merci
nicola: Il y a une tortue en Python, si tu veux.
nicola: Si tu veux un code moins idiomatique, essaie ça : x=[] for _ in range(n):
x.append(int(input()))
BlaiseEbuth: Il l'a mangé à tout les coup.
BlaiseEbuth: Ouai le code moins idiot est déjà mieux.
GooMooc: @ nicola : c etait censé trouve l'index d'un tuple dans une liste de liste de tuple
nicola: OK.
GooMooc: le code alshock
nicola: Si c’est pour trouver un truc dans un plateau de jeu, je sttocke ce genre de truc à la création du plateau.
BlaiseEbuth: En même temps juste l'énoncé de la question devrait te mettre la puce à l'oreille.
nicola: *stocke
GooMooc: sauf si les positions sont connectés
nicola: Parce que chercher dans un tuple, et pire avec try/except, c’est super long en Python.
GooMooc: ben il le sait mais il avait pas le temps de trouver mieux
GooMooc: et moi je trouve pas la bonne syntaxe
nicola: Autant utiliser if truc in machin.
GooMooc: list.index(montuple)
GooMooc: mais adapter a une liste de liste
BlaiseEbuth: "une liste de liste de tuple"... La bonne question c'est pas "comment y trouver un indexe", mais plutôt "comment représenter mes données de manière plus pertinente". M'fin j'dis ça...
nicola: Sinon, tu aplatis ta liste de liste.
GooMooc: ben oui ca ca marche si c est une liste simple
nicola: À toi ensuite de reconstruire les indices.
GooMooc: j applatis deja mais j ai besoin de savoir ou il se trouve dans la liste non applatie
nicola: Cette liste est construite une fois pour toute ?
nicola: Elle bouge beaucoup ?
GooMooc: non elle change a chaque tour
nicola: Alors construit les trucs intéressants à la création de la liste de listes.
nicola: construis
GooMooc: c est le jeu de go et je regroupe par territoire
GooMooc: ben justement c etait pour la construire sans doublons
nicola: Par exemple avec des ensembles.
GooMooc: ok, je sais pas faire ca, c est quoi le nom de la fonction?
nicola: Lors de la création, tu as un plateau de jeu (liste de listes) plus trois ensembles : blanc, noir et vide.
BlaiseEbuth: Directe la ségrégation...
nicola: Chaque ensemble contient les coordonnées en tuple.
GooMooc: ok j ai deja creer ces 3 listes
GooMooc: oui
nicola: Par exemple blanc={(1,2),(1,4),(5,4)}.
nicola: C’est pour un BFS ?
GooMooc: c est bon j ai la liste de blanc, noir et libre
nicola: Pioche plutôt dans ces ensembles.
GooMooc: mais apres faut que je regroupe les pions par territoire
nicola: Colle-les dans des ensembles, c’est plus rapide de tester si un tuple y est que dans une liste.
GooMooc: comment tu fais un ensemble?
nicola: Oui, pour savoir s’il y sont, pour supprimer sans risque d’un ensemble, c’est la méthode discard.
nicola: Avec des accolades ou avec set.
nicola: Regarde mon exemple.
GooMooc: ahhh un dictionnaire?
GooMooc: je connais pas tous les allias dsl
nicola: Attention, un ensemble ne peut pas contenir d’éléments d’un type mutable.
nicola: Non, un ensemble.
nicola: C’est presque pareil.
nicola: C’est comme un dictionnaire mais sans les définitions.
GooMooc: bon alors je connais pas, pour moi accolade = dictionnaire, mais j en sais pas beaucoup
nicola: Et sans ordre non plus.
nicola: Accolade = dictionnaire ou ensemble.
GooMooc: ok, faut que je creuse dans les ensemble
nicola: {1:2,3:4}→dictionnaire
nicola: {1,2,3,4}→ensemble
nicola: {[1,2],[3,4]}→boum
GooMooc: ok merci
nicola: {(1,2),(3,4)}→OK
Tiouz: {} -> dictionnaire vide set() -> ensemble vide
nicola: Oui.
nicola: J’utilise systématiquement dict() pour créer un dictionnaire vide.
GooMooc: pour toi y a pas une simple solution avec ce qui existe dans les builtin list pour retrouver l index d un tuple dans une liste complexe?
BlaiseEbuth: Pourquoi faire simple ? ...
GooMooc: ben ca serait plus pythonesque
nicola: Si c’est pour trouver des zones d’influence, utilise un BFS (flood fill)… et plutôt des ensembles.
nicola: Enfin, tu fais comme tu veux.
Tiouz: si tu as une liste de liste de tuples, tu peux faire [(i,l.index(t) for i in range(len(liste_de_liste)) if t in l], mais comme disent les autres, peut-être tu peux repenser ta structure
GooMooc: je fais surtout comme je peux, et la solution la plus simple est toujours la meilleures
Tiouz: oups, il me manque une parenthèse apres index(t)*)*
nicola: N’hésite pas à doublonner ta structure.
nicola: C’est comme ça que j’ai résolu le puzzle officiel Surface.
GooMooc: ben non je veux pas de doublon justement
nicola: Dans le sens : une liste de listes plus un ensemble.
GooMooc: [(i,l.index(t) for i in range(len(liste_de_liste)) if t in l]
nicola: Chacun a un avantage.
GooMooc: merci tiouz faut que j essaye ca
Tiouz: pense à la parenthèse après .index(t))
nicola: La liste de liste est rapide pour savoir la couleur d’une case.
GooMooc: dans le go y a pas de case
nicola: C’est pareil quand tu gères un tour.
nicola: Bref, je file me coucher.
GooMooc: merci nicola
GooMooc: merci tiouz
nicola: :wave:
GooMooc: pour eviter les doublons l index de la sous liste qui contient mon tuple sera utilisée pour continuer de connecter le territoire ennemi == bfs
TidyMaze: http://chat.codingame.com/pastebin/ff7b5c51-4840-40c1-a570-4a57bb5188a8
TidyMaze: je viens de me faire sucrer mon pavé :/
Zorg1: 404 :thinking:
TidyMaze: j'expliquais en long et en large où j'étais bloqué pour le puzzle Escaping the cat
Zorg1: ah il est bien ce puzzle ^^
Zorg1: enfin je l'aime bien
TidyMaze: je tente de maximiser l'ecart entre le temps pris par le chat (en suivant la corde) et le temps pris par la souris (ligne droite)
TidyMaze: le 1er test passe, pas les autres
TidyMaze: et je venais à la peche aux conseils ^^
TidyMaze: https://www.codingame.com/share-replay/538486444
Zorg1: en fait faut regarder les vitesses angulaires / au centre de la piscine
TidyMaze: yep c'est ce que je fais
Zorg1: et t'as pas encore vu le truc ?
TidyMaze: y'a une astuce ?
Zorg1: enfin une "astuce" c'est un bien grand mot
Zorg1: mais disons que parfois vaut mieux tourner et parfois faut foncer sur le bord par le plus court chemin
TidyMaze: j'ai vérifié 3x le signe de mes cos() et de mon dot product, ça a l'air pas mal ^^
TidyMaze: ah, actuellement je n'ai qu'un seul cas, je n'ai pas de switch rush/pas rush
Zorg1: voilà ^^
TidyMaze: y'a aussi le rayon du chat que j'ignore pour l'instant, ma souris se suicide
Zorg1: justement faut pas ignorer le rayon de la piscine et la vitesse du chat
BlaiseEbuth: Ca me rappelle l'écume des jours...
TidyMaze: la vitesse du chat je la prend en compte pour calculer au bout de combien de temps il atteint 1 point du cercle
Zorg1: après "donner des conseils" sur ce puzzle c'est assez difficile à faire sans donner une solution
TidyMaze: je comprends bien ^^
Alshock: BlaiseEbuth toujours là pour placer une référence géniale au milieu de la bataille
dwarfie: free xp ... done ...
Alshock: quoi ça donc ?
dwarfie: le dernier puzzle trivial validé .... un long long sujet pour pas grand chose a faire ...
Alshock: tu te fais du mal dwarfie
dwarfie: ca pourrait etre pire , j'aurais pu lire le sujet au lieu de juste reverse :D
Zorg1: t'as mis cinq étoiles j'espère :p
dwarfie: manquerait plus que ca ....
bord: ce moment ou tu avais mal lu l'énonce donc tout ton algo tombe à l'eau .... et tu recommences quasiment a 0
leojean890: ça se bat fort sur sofia labs ce soir
Zorg1: m'ouaip je voulais tester deux trois magic number mais ça bouge trop
leojean890: pareil j'ai un peu tuné vite fait mais globalement j'ai gardé les mêmes params que sur mon SR mdr
leojean890: sauf pour éval que j'ai tunée par rapport au nb de players
leojean890: par ex je mets une plus grosse proba d'optimiser les depths élevées que les depths faibles car les depths faibles.. j'ai déjà eu plusieurs tours pour les optimiser donc logiquement c'est mieux d'optim les élevées
Zorg1: toujours une éval de mon trajet mais pas de collision
leojean890: proba de 6/(1+2+3+4+5+6) d'optimiser la depth 6
leojean890: proba de 5/(1+2+3+4+5+6) d'optimiser la depth 6
leojean890: proba de 5/(1+2+3+4+5+6) d'optimiser la depth 5
Zorg1: actuellement je cacules 15 coups à l'avance ...
leojean890: proba de 4/(1+2+3+4+5+6) d'optimiser la depth 4
leojean890: d'ailleurs c'est une idée piquée à dbdr qui disait à l'époque de sa rivalité avec Neumann sur SR "pourquoi optimiser les depths faibles alors que tu les as déjà bien optimisées aux tours précédents"
leojean890: ah ouais t'es vraiment sur la logique du SR toi à aller depth 15;) t'as pas essayé de baisser ?
Zorg1: ce que j'essaie de faire ^^
Tiouz: Quand vous dites "optimiser la depth x", c'est un GA ?
leojean890: depth 15 c'est p'tet risqué pour ta simu de l'adversaire car ce dernier peut jouer "autrement" que tes prévisions
Zorg1: j'ai aucune simu de l'adversaire actuellement ;-)
leojean890: (même si t'as accordé un temps assez élevé pour le simuler, il peut avoir choisi autre chose vu que son algo est diff)
leojean890: mais t'as un truc par rapport à ça ou tu optim juste ton path comme SR ?
leojean890: t'as encore de la marge pour avancer vu que t'as pas encore de simu de ladv
Zorg1: moi c'est du SR pur actuellement
leojean890: Tiouz perso c'est un simulated annealing
leojean890: ah bah si t'es sur du SR pur tu peux clairement améliorer !
Zorg1: mais les collisions ça va pourrir pas mal les perfs
leojean890: ouais je pense
leojean890: tu reprends ton code CSB et tu mix un peu
leojean890: en enlevant tout ce qui est "blocker"
leojean890: shield etc
Zorg1: ce que je fais
leojean890: mix csb sr
leojean890: Tiouz un SA avec le state correspondant à DEPTH paires (thrust, angle)
leojean890: moi j'ai déjà la gestion de l'adv donc moins de marge de progression "facile"
Tiouz: Ok, je vois à peu près comment ça va marcher. J'ai profité que tout le monde soit sur CSB/SR pour faire un GA sur SR
Tiouz: Si j'ai le temps/envie je vais le porter sur sofia challenge
leojean890: j'avoue ^^adapter aux petits changements de règle si t'as le temps ouais, et quelques heuristiques à ajouter pour éval/multi boost..
Zorg1: genre d'habitude c'est la foule sur SR ^^
leojean890: mais en effet y'a du monde sur CSB et SR
Zorg1: SR on est 400 je crois, suite à PotW
leojean890: je trouve pas ça top d'orga un contest là dessus car clairement ceux qui n'ont fait NI CSB NI SR sont trees désavantagés face à l'armée de super players de CSB/SR
leojean890: en gros qqn qui débarque sur CG n'a aucune chance pour ce contest^^
leojean890: ouais 4XX
Tiouz: Ça fait moins d'un mois que je suis là...
Zorg1: bah c'est un peu le problème des multis classique "CG" c'est généralement une reprise d'un multi
Zorg1: houla
jfaixo: je sais pas, j'ai fait aucun de ces challenges du coup forcément tu pars de loin, mais c'est l'occasion de les faire dans un contexte "compétitif", perso j'aime bien en fait
Zorg1: je veux dire les challenges privés de CG
jfaixo: j'avais vu CSB, mais ca m'avait saoulé de me dire que j'allais le faire dans mon coin perso, passer des heures a optim un truc tout seul
jfaixo: là ya de l'émulation ;)
leojean890: alors que les contests officiels y'a plus d'impartialité car tlm découvre totalement le sujet^^
Zorg1: ma recherche de collision sur CSB c'est pas vraiment optimale en fait ...
leojean890: mais dans l'idée même si c'est pas impartial comme dit jfaixo ça peut donner plus de motiv pour bosser un multi
leojean890: alors que sans contest la motiv est moindre en moyenne
jfaixo: après chacun son truc ^^ sans contest je préfère faire des puzzle, ya un début, une fin et je peux me coucher serein, alors que les challenges j'en rêve la nuit haha, si y avait pas de date de fin je deviendrais fou
Zorg1: on a eu deux contests qui duraient un mois ^^
leojean890: et j'avoue OOC je suis resté motivé 1 mois
leojean890: alors que souvent je décroche facile en cours de semaine pour des plus courts
leojean890: FC ou SC entre autres
leojean890: après j'avoue je peux quand même me motiver sur des mutlis mais un peu moins car ambiance différente
leojean890: moins de tryhard
leojean890: mais hors contest je fais un peu des multis, des puzzles, du golf, des optims.. varié en fct de ma motiv et du temps que j'ai
jfaixo: de toute facon j'imagine que ca sera comme pour ma boite, sans "re run" a la fin, et sur ce jeu ca va être la loterie, faut avoir le dieu de la RNG dans sa poche quand t'initialises tes vecteurs ;)
leojean890: clair ce sera la loterie entre bots de niveau très proches
leojean890: en fct de qui a submit en dernier et des winrates
leojean890: (sinon si qqn est au dessus en winrate moyen il faut qu'il repsh à la fin)
leojean890: repush
leojean890: pour maximiser ses chances
Zorg1: bah déjà on sait que certains hident ...
leojean890: darkhorse64 te voilà vers le top hehe
leojean890: Zorg1 ouais c'est sûr que certains hident hehe
Zorg1: oui j'ai vu un gars monter #1 puis maintenant stationné dans les #20, va savoir Charles ...
darkhorse64: merci Zorg1 pour la montée
Zorg1: ah je t'ai poussé ? ^^
Zorg1: bon j'essaie mes collisions ...
darkhorse64: non, tu m'as inspiré
Zorg1: je sens qu'on va rigolé
darkhorse64: j'ai viré les collisions de ma simu. Ca marche beaucoup depuis que j'ignore les bots adverses
Zorg1: oui mais après t'es limité pour monter
Zorg1: après bon je suis un go j'ai pas forcément un nombre de simus monstrueux / un gars en C++
darkhorse64: c'est clair mais ça montre que mon AG + simu fonctionne et qu'il y a un truc à comprendre sur la gestion de l'adversaire. J'étais prêt à tenter un smitsimax
leojean890: la dernière fois avec daporan c'était vraiment cheaté^^
leojean890: monter #1 puis maintenant stationner dans les #20, c'est chelou mdr
leojean890: p'tet grosse chance sur qq matchs
darkhorse64: pour être franc, je ne trouve pas ça fair-play du tout. Les alt pourquoi pas tant que le bot est dispo pour les autres sinon tout se passe sous le capot avec CGBenchmark
leojean890: je suis surpris que ça marche mieux en ignorant les bots adv et les collisions, ça devrait pas^^
darkhorse64: il est #26 maintenant
leojean890: sauf si tu traces devant très efficacement
leojean890: du coup tu l'ignores mais pour la bonne cause
leojean890: mais en cas de niveau egal si tu ne l'ignores pas tu peux l'éjecter et ça te fait gagner
darkhorse64: En fait, ça veut dire que j'arrive à calculer une trajectoire optimale comme dans SR
darkhorse64: mais je suis d'accord qu'il y a un truc moisi qq part dans la prise en compte de l'adversaire. Je le vois dans l'IDE, mon bot ralentit parfois et cesse de viser le checkpoint
leojean890: c'est du tuning d'éval
leojean890: pour trouver un compromis entre les 2
leojean890: mon SR est pas assez bon pour que ce que vous faites marche sans prendre en compte l'adv je pense
leojean890: clairement c'est important de prendre en compte l'adv juste la bonne dose pour que ton mec privilégie le fait d'avancer mais n'ignore pas non plus l'adv
darkhorse64: mais c'est bien déjà d'avoir un point de départ correct. Héhé, je suis sur tes talons
darkhorse64: bon dodo
leojean890: ah non je suis naif, le mec qui était #1 et revient #27 est un hider
leojean890: je croyais qu'il avait eu de la chance en début de run lol
leojean890: clairement tu peux ne pas être fair play, hider et tout faire avec des stats CG bench
Zorg1: oui c'est assez évident, tu deviens pas #1 sur un coup de chance
Zorg1: je pense qu'il a voulu se rassurer
leojean890: oui le winrate atteint 0% ou presque sur un gap trop gros de elo
leojean890: en fait je l'ai déjà vu dans le top ces jours ci
leojean890: en fait je l'ai déjà vu dans le top ces jours ci
leojean890: K
leojean890: du coup la chute d'un coup c'est aussi qurprennt
leojean890: surprenant*
leojean890: ça sert à rien de hide vu que écart pas trop gros avec ses voisins
leojean890: en haut
leojean890: sauf empecher de bench sur lui
Zorg1: bah la prise en compte des collisions ça n'a pas l'air de me réussir
Zorg1: je verrais ça demain
leojean890: c'est à tuner pour que ton score reste plus important que baisser le sien
Zorg1: ouaip
jfaixo: bah quand meme leojean890 tu peux hide facilement sur ce contest, si tu arrives à taper régulièrement le top 10 tu peux etre confiant sur le fait que tu peux faire un coming out
Zorg1: ça monte doucement
jfaixo: et oui avoir les collisions faut également tuner la fonction de cout pour que ca prenne de l'intérêt ;)
leojean890: ouais t'as raison
leojean890: hider marche tjr pour que les autres top se tunent les uns les autres sans te prendre en compte
jfaixo: bon moi ia a fait des milliers de run avec des paramétrages différents en local ce soir, et le constat c'est que... c'est pas si facile que ca de tuner les algos d'optim ;) 2eme session a prevoir demain ^^ (et simuler les adversaires, toujours pas fait...)
leojean890: clair c'est pas rapide pour optimiser
jfaixo: Allez mon petit bot :raised_hands:
BigUP: Tin CG me bouffe 1 CPU a 100% !?? Ca rame sevère !
BigUP: forcément ils ont encore été coller des trucs merdiques pour faire de lastat sur les utilisateurs... Boom CORS .....