Chat:Fr/2021-04-06

From CG community
Revision as of 11:16, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/26090852120005> nicola: Tiens, BlaiseEbuth n’est plus chef. <img src=/a/26090852120005> nicola: Il a perdu la boule. <img src=/a/59449061195531> BlaiseEbuth: Y...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.

Default avatar.png 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

Default avatar.png Estefano: et 3 places à l'avant !

Zorg1: ah comme sur les utilitaires

Default avatar.png Estefano: en plus mcohe :D (simple avis)

Default avatar.png Estefano: en plus moche :D (simple avis)

Default avatar.png 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 ^^

Default avatar.png 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é ?

Default avatar.png Ulfari: regarde ça

Default avatar.png 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

Default avatar.png jnono: Oui

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.

Default avatar.png ZacDonald: Salut a tous !

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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 ?

Default avatar.png Caly-CiG: bonjour, est-il possible de voir la (ou une) solution proposé pour les clash of code , svp?

Default avatar.png PythonSlayer: Apres le clash les gens partagent parfois

Default avatar.png PythonSlayer: Si je bouge les pods je crois

Default avatar.png Caly-CiG: okay, mais pas de solution officielle c'est ça ? (merci pour ta réponse)

Default avatar.png PythonSlayer: j ai ajoute que col.t > t comme ca je suis sur de pas faire deux fois la meme

Default avatar.png PythonSlayer: euh je pense pas non, mais je pense que tu peux recuperer les meilleurs sol d'une maniere ou d'une autre

Default avatar.png Caly-CiG: okay, merci :) bon courage pour ton problème

Default avatar.png PythonSlayer: merci :)

BlaiseEbuth: C'est pas parce que c'est officiel que c'est forcément mieux... Regarde le gouvernement.

Default avatar.png 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

Default avatar.png 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

Default avatar.png Caly-CiG: okay, je prendrais le risque alors ^^ merci pour vos réponses :)

Default avatar.png 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

Default avatar.png PythonSlayer: sous linux?

darkhorse64: parce c'est ce que j'utilise

Default avatar.png 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

Default avatar.png PythonSlayer: je pense oui

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: ^

Default avatar.png PythonSlayer: TU c'es tests unitaires je suppose

Zorg1: oui

Default avatar.png PythonSlayer: sinon merci à vous 2

Default avatar.png PythonSlayer: 3

Default avatar.png PythonSlayer: ^^

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

Default avatar.png 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

Default avatar.png PythonSlayer: ^^

Tiouz: tu veux dire "simulation_one_turn" ?

Default avatar.png 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

Default avatar.png 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"

Default avatar.png JBM: un simple «c

Default avatar.png 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

Default avatar.png 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

Default avatar.png telerama: bonsoir est-ce que quelqu'un aurait un peu de temps pour aider un débutant ?

Default avatar.png 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/

Default avatar.png telerama: damn this might be useful

Default avatar.png telerama: ok je vais réfléchir a ma question

leojean890: telerama il y a un post mortem pour ce jeu, regarde le

Default avatar.png telerama: c'est quoi un post mortem?

leojean890: bilan des premiers qui expliquent leur boulot^^

Default avatar.png telerama: okok thx

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

Default avatar.png ZacDonald: Re hello tout le monde

BlaiseEbuth: Pareil. Je suis parti de rien et j'ai tout fait avec mes p'tits doigts crochus.

Default avatar.png 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...

Default avatar.png ZacDonald: les 2 autres éléments sont poussés au début de mon vecteur

Default avatar.png ZacDonald: ouais je galère pas mal la :/

Default avatar.png 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

Default avatar.png ZacDonald: au final le problème viens surement de la au vu des résultats que j'obtiens dans les informations de jeu

Default avatar.png ZacDonald: au tour par tour

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

Default avatar.png telerama: quand on ecrit par exemple :

Default avatar.png telerama: oops mauvaise manip

Default avatar.png telerama: Si on me donne : http://chat.codingame.com/pastebin/410d9159-a582-4a7d-9d34-5a6856f474f4

Default avatar.png telerama: j'abandonne

BlaiseEbuth: A bah ça s'est pas réparé tout seul en 5 minutes... Etrange :thinking:

Default avatar.png telerama: scuse moi

Default avatar.png telerama: je lis pas tout

BlaiseEbuth: :3

BlaiseEbuth: Bon en vrai c'est pété depuis hier...

Default avatar.png 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 ?

Default avatar.png telerama: oui

BlaiseEbuth: Découpe la en p'tit morceau avant de l'envoyer.

nicola: Ton bout de code est censé faire quoi, Alshock ?

Default avatar.png telerama: smart

BlaiseEbuth: Comme tu ferait pour renvoyer le corps d'une de tes victimes à sa famille.

Default avatar.png telerama: jme disais la même chose c'est dingue

BlaiseEbuth: Je sais. :smirk:

Default avatar.png telerama: si on me donne : for i in range (n) : x=int(input()), comment je fais pour me servir des entrées après?

Default avatar.png 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.

Default avatar.png 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.

Default avatar.png 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 .....