Chat:Fr/2021-10-30

From CG community
Revision as of 05:29, 31 October 2021 by Chat Log (talk | contribs) (Created page with "File:Default_avatar.png Rycoff: http://chat.codingame.com/pastebin/c6615bfd-ddf7-45e1-bcb3-ebb88d69e176 File:Default_avatar.png Rycoff: bonjour cest pas lie a un jeu...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Default avatar.png Rycoff: http://chat.codingame.com/pastebin/c6615bfd-ddf7-45e1-bcb3-ebb88d69e176

Default avatar.png Rycoff: bonjour cest pas lie a un jeu mais cest une question de code php , quelquun peu me expliquer svp , je trouve pas sur google ni sur la doc php une reponse qui me convien

Default avatar.png Rycoff: hello someone pls can tell me what meens ?array on the fnct

Default avatar.png Rycoff: function initUserFolders(string $rootFolder, array $users): ?array

Zorg1: "À partir de PHP 7.1.0, les déclarations de type peuvent être marquées comme nullable en préfixant le nom du type avec un point d'interrogation (?). Ceci signifie que la fonction retourne soit le type spécifié soit null. "

Zorg1: ça me paraît assez clair pourtant

Zorg1: trouvé ici https://www.php.net/manual/fr/language.types.declarations.php

Remi.: Je viens de résoudre "Nature of quadrilaterals". Ben y a des gens qui se prennent bien la tête dans leurs solutions ^^ C'est pourtant simple.

Stilgart: Automaton2000: si tu sais faire, alors do it

Automaton2000: tiens y a pas une erreur de syntaxe

Thyl: Zorg1 sur Search Race comment tu fais pour gérer quand ton pod a des ccords négatifs ??

Thyl: Zorg1 comment tu fais pour gérer sur Search Racer quand ta des coordonées négatives ???

Thyl: désolé problème de tchat

Thyl: :grimacing:

Zorg1: oui Thyl ?

Zorg1: bah normalement que les coordonnées soient positives ou négatives, tu t'en fous

Zorg1: sur CSB (enfin MPR :p ) tu pouvais aussi sortir du terrain

Zorg1: perso ça se joue sur un plan infini ces jeux ^^

Zorg1: ils auraient voulu troller ils auraient mis l'origine au mileu du terrain :smiling_imp:

Zorg1: bon Automaton2000 la forme ?

Automaton2000: et ca risque de pas être trop dur de faire des stats

Zorg1: tu vois quoi dans tes stats alors ?

Zorg1: Automaton2000

Automaton2000: ah ouais mais si il faut faire un code qui gère tous les cas

Zorg1: c'est conseillé en effet Automaton2000 ...

Default avatar.png JBM: il reste cb de temps pour se convaincre d'essayer le «challenge»?

Automaton2000: et le gagnant c'est celui qui marche le mieux

Zorg1: JBM : bah jusqu'à Jeudi prochain je crois

Default avatar.png JBM: k mici

Zorg1: t1 "le massacre de la nuit noire" j'espère qu'ils se sont pas éclaté le ciboulot à inventer ça

Zorg1: (je lis l'intro du challenge)

Zorg1: même un film de série Z trouverait ça bcp trop cheap pour un titre :D

Zorg1: bon Automaton2000 des idées de puzzles à faire pour engranger des XPs ?

Automaton2000: c'est un peu le boss de bronze

Beretta_Vexee: Zorg1 pour vraiment troller tu fais un jeu en coordonnées polaires ou sphériques, tu perds 50% des participants avec le calcul de distance ;-)

nicola: Ça dépend si la distance est euclidienne ou SNCF.

Stilgart: on remerciera la SNCF, qui nous fournit un vrai exemple non trivial de distance qui n'est pas une norme

Default avatar.png C4p1741n3: Dans l'arène c'est des bots ?

Zorg1: dans le chat aussi

Default avatar.png C4p1741n3: Mais comment on doit interpreter le classement ?

Default avatar.png C4p1741n3: C'est égalité pour tout le monde ?

Beretta_Vexee: C4p1741n3 les adversaires sont les mêmes pour tous.

Default avatar.png C4p1741n3: Ok je vois mais je comprends pas le classement de l'arène

nicola: Et le classement du roi ?

nicola: Pouf pouf.

Meimei: le jeu ne charge pas chez moi

Meimei: :(

b0n5a1: o/

b0n5a1: faut insérer la disquette 2

Zorg1: \o

Zorg1: et appuyer sur <ENTREE>

Zorg1: Automaton2000 t'es le roi du toaster ?

Automaton2000: ah, ca y est, je commence à comprendre comment ça marchait

Zorg1: :)

TheAvengingTurtle: Comment es ta week-end ?

Zorg1: mon week-end commence ^^

Bon[]Crayon: salut

Zorg1: o/ Bon[]Crayon TheAvengingTurtle

Bon[]Crayon: \o

TheAvengingTurtle: \o/

Zorg1: o/ b0n5a1

Bon[]Crayon: quand tu rates ton mot de passe, le site te fait cliquer les image puis t'informe qu'il faut retaper le mot de passe puis recliquer les images

Bon[]Crayon: stop

Bon[]Crayon: je ne suis un robot

Bon[]Crayon: je suis une tortue pas vrai automaton2000

Automaton2000: et ils n'ont pas de sens

Bon[]Crayon: automaton2000 tout à fait

Automaton2000: moi farmer zorg1 ? :d

Bon[]Crayon: lol

b0n5a1: o/ Zorg1 TheAvengingTurtle !

b0n5a1: Zorg1 irish vient de m'abo à Kanebo :D

Zorg1: :thumbsup: ezpz

Zorg1: bon je me fais farmer par Automaton2000 :fearful:

Automaton2000: faudrait déjà que je le trouve un peu de respect

b0n5a1: :rofl:

TheAvengingTurtle: Le respect est mort Automaton2000.

Default avatar.png C4p1741n3: Je comprends rien

Automaton2000: je ne connais pas le lua. je ne sais pas, je connais pas trop le choix

Zorg1: lua c'est bien Automaton2000. La preuve j'ai la certif

Automaton2000: non je suis en java

Zorg1: C4p1741n3 que ne comprend tu pas ?

b0n5a1: c'est pas du farm de Zorg1 ça Automaton2000, c'est du troll

Automaton2000: sauf qu'il y a du random

b0n5a1: ha si y'a du random...

Zorg1: on est sauvé

Default avatar.png C4p1741n3: Comment trouver la solution avec les algos

TheAvengingTurtle: Du bon ou du mauvais random Automaton2000 ?

b0n5a1: gné?

Default avatar.png C4p1741n3: c'est trop haut nv pour moi

Automaton2000: je me suis dit que ca va pas le voir

b0n5a1: 42 !

Melan04: Bonjour, j'ai vu sur internet qu'il était possible de s'entrainer aux tests techniques avec Coding Game ?

b0n5a1: on peut au moins se familiariser à l'interface en faisant des puzzles

TheAvengingTurtle: Tu veux dire t'entrainer à des tests de recrutement codingame ?

Melan04: Oui c'est ça !

Default avatar.png C4p1741n3: J'arrive pas à faire la liaison entre l'interface visuelle et l'algo

Default avatar.png C4p1741n3: C'est abstrait

b0n5a1: sinon y'a le nouveau sustème de "certification" qui en est très proche

TheAvengingTurtle: Si tu as déjà reçu le lien pour passer un test technique tu as normalement un lien pour un tutoriel avec.

TheAvengingTurtle: Sinon oui, fait la certification de ton langage, ça te donnera une idée au moins du fonctionement.

Melan04: Je n'en ai jamais passé c'est pour m'entrainer à mon premier test technique :)

Melan04: ça marche je vais regarder ça merci à vous 2 :)

Bon[]Crayon: avant les certifications j'avais fait un test d'entraînement

TheAvengingTurtle: Sinon les tests sont divisés en exercices pratiques et en qcm. Pour la partie technique tu peux aussi regarder aux puzzles faciles.

Melan04: ça marche ! Merci pour vos conseils !

Bon[]Crayon: https://www.codingame.com/work/register/starttrial

Bon[]Crayon: C4p1741n3 c'est sur un puzzle

Bon[]Crayon: ?

Zorg1: C4p1741n3 : tu sais déjà programmer ?

Zorg1: car c'est pas vraiment le site idéal pour apprendre en fait

Zorg1: pour se perfectionner OK mais pour commencer

Default avatar.png C4p1741n3: En fait je trouve juste que c'est abstrait, par exemple hier j'ai réussi un puzzle sans comprendre comment j'ai fait

Default avatar.png C4p1741n3: Oui j'ai des notions mais jsuis pas un crack non plus

Bon[]Crayon: c'est sur que entrées sorties ça peut être déconcertant

Bon[]Crayon: il y a pas d'étapes explicatives

TheAvengingTurtle: Bah si.

Bon[]Crayon: ce n'est pas un site pour éduquer

Default avatar.png C4p1741n3: C'est bien ce que je me disais

Default avatar.png C4p1741n3: Pck j'ai vu le nv facile jme suis dis ah ouais

Bon[]Crayon: si tu veux comprendre le déroulement d'un algo il te renseigner ailleurs genre wikipedia ou tech.io

b0n5a1: alors pour les faciles...fais d'abord les officiels CG (ça se repère au fait que y'a pas de contributeur indiqué et c'est souvent avec un background graphique spécifique)

Bon[]Crayon: https://www.codingame.com/learn

Default avatar.png C4p1741n3: Ouais j'ai vu la diff mdr

Default avatar.png C4p1741n3: Jsuis sur learn déjà

Default avatar.png C4p1741n3: j'essai de capter le site

b0n5a1: C4p1741n3 : The Descent, Power of Thor, Temperatures, Chuck Norris ( Melan04 tu peux jeter un oeil à ceux la en premier aussi )

Default avatar.png C4p1741n3: J'en ai fais 3 déjà

Default avatar.png C4p1741n3: D'ailleurs c'est température que j'ai fais sans comprendre comment j'ai réussi

Bon[]Crayon: https://www.codingame.com/training/easy/fax-machine

Bon[]Crayon: très facile

Zorg1: réussir sans comprendre températures ?

b0n5a1: ouais c'est un peu épique, j'avoue :D

Default avatar.png C4p1741n3: En gros j'ai fais un truc sans être sur et juste pour m'amuser j'ai appuyé sur test et c'est passé

b0n5a1: heu ... test 1 ?

Default avatar.png C4p1741n3: oui

b0n5a1: :rofl:

TheAvengingTurtle: :D

Bon[]Crayon: et les autres tests ?

Default avatar.png C4p1741n3: Comment ca les autres essais ?

b0n5a1: je me suis tellement marré que j'ai réveillé ma chienne :D

Default avatar.png C4p1741n3: Tu veux dire les autres tests ?

Bon[]Crayon: en bas à gauche de l'ide il y a un bouton 'tous les test'

Bon[]Crayon: oui

TheAvengingTurtle: C'est ce qu'il a dit.

Default avatar.png C4p1741n3: Oui c'est tous les tests qui sont passés mdr

Bon[]Crayon: très bien alors

b0n5a1: et le submit ?

Default avatar.png C4p1741n3: Je crois que c'est pck la logique n'était pas basé sur du graphique que j'ai réussi

b0n5a1: ha oui, 100% temperatures sur profil

Bon[]Crayon: le graphique c'est une illustration

Default avatar.png C4p1741n3: Des que c'est trop animé je comprends rien

TheAvengingTurtle: La logique est jamais basée dessus

Default avatar.png C4p1741n3: Ah bon

Default avatar.png C4p1741n3: Alors mon cerveau force avec l'image xD

TheAvengingTurtle: Bah masque le et fait sans, juste avec la console.

Default avatar.png C4p1741n3: Jvais essayer

Bon[]Crayon: code à l'aveugle ça ne se verra pas

Zorg1: quand je vois certains codes ...

TheAvengingTurtle: :see_no_evil:

bzr.joh: Les clash of code on a pas les corrections :/

SefioR13: Tu peux regarder les codes des autres s'ils l'ont partagés

bzr.joh: oui mais ils codent tous en python ^^moi Js

Bon[]Crayon: lit les solutions python, ça te donnera la logique de résolution

Captain_Bonnet: bzr tkt moi je code en c# c'est pas mieux x)

Bon[]Crayon: Depuis le début de l'Infini les bons codent en Python, par vrai Professeur Automaton2000.

Automaton2000: et le seul pseudo court qui passait, c'était avec le point.

Bon[]Crayon: :joy:

Captain_Bonnet: :sweat_smile:

Bon[]Crayon: Remi.Automaton2000

Automaton2000: oui, mais c'est pas clair.

bzr.joh: J'avoue que les gars en Python sont hyper chauds... !

Bon[]Crayon: chonchon python

Bon[]Crayon: chacha java

Bon[]Crayon: cpp c

bzr.joh: Quand tu vois qu'en 1:30 il est à 100% et toi tu mets 9min en JS, ça fout le seum !

Bon[]Crayon: C'est l'habitude de faire des cocs.

Bon[]Crayon: Ne te prends ta la tête avec ça.

bzr.joh: Oui tu dois avoir raison. Ils doivent torcher ça depuis un moment ^^

TheAvengingTurtle: pytorch

Default avatar.png BlackLionDev01: quelqu'un a compris ce qu'il faut faire ou bien je suis le seul :sweat_smile:

Captain_Bonnet: ??

TheAvengingTurtle: Déjà t'es pas sur le bon chat. :p

Zorg1: pour quel truc ? le challenge ?

TheAvengingTurtle: Stoi l'truc.

TheAvengingTurtle: n * (n-1) * (n-2) * ... -> Factorielle n + (n-1) + (n-2) + ... -> ?

Remi.: Automaton2000 je te manque ?

Automaton2000: tu as sans doute raison

TheAvengingTurtle: RémiPouin :trumpet:

Remi.: Blaise t'as combien de pseudos ?

TheAvengingTurtle: Chttt!!!

Remi.: Si tu veux pas que ça se sache, change de manière d'écrire ^^ arrête tes "stoi" et tes "Rémi pouin" :P

TheAvengingTurtle: Stoi l'stoi...

3141948: T'as réussi à installer ton win 11?

TheAvengingTurtle: "And he answered, saying, My name is Legion: for we are many."

TheAvengingTurtle: Kikinstal windaube11?

3141948: Ah je croyais

TheAvengingTurtle: Moi?

TheAvengingTurtle: Non

Default avatar.png lisarutobi: salut les amis

3141948: Pendant ce temps sut world çà cause de simu de 2M de nodes

3141948: Sur

TheAvengingTurtle: Non. Ca palre de MK

3141948: Ah ok

3141948: Bon ce soir je fais un peu de MM, tu as quelle stratégie ?

TheAvengingTurtle: Sur mon vieux code de contest ? Aucune idée... :no_mouth:

3141948: B0nsa1 m'a filé son code de multi sinon enfin le template qui appelle le code

3141948: Ca date de 4 ans déjà mm

TheAvengingTurtle: Ma stratégie ça a l'air d'être de faire le code le plus moche possible.

3141948: Ah faudrait que je fasse des puzzles en C++ pour voir tes codes pour le savoir hehe. Enfin tes codes python sont plutôt lisibles

TheAvengingTurtle: Non mais c'est un vieux truc, c'pour ça...

TheAvengingTurtle: Sur les puzzles y'a quelques solutions que j'ai obfusqué pour le fun. :3

3141948: Ah tiens lesquels pour se marrer

3141948: J'ai fait que 50 puzzles en fait

Zorg1: n + (n-1) + (n-2) + ... -> nombre triangulaire ^^

philRG: n * (n - 1) / 2 ?

Remi.: phil si tu trouves une bonne logique pour MM je suis preneur ^^

Stilgart: ramasser de l'eau, c'est une bonne strat

Remi.: Sans dec ^^ salut Stilgart.

Stilgart: \o

Stilgart: en vrai, je crois que mon bot ne fait pas grand chose de plus que buter du tanker et ramasser de l'eau

Stilgart: et envoyer le doof dans la tronche de l'adversaire avec le score le plus gros

Remi.: C'est déjà ce que je fait. Et quand j'ai de la rage, c'est aussi pour dégommer l'adversaire avec le score le plus gros.

Remi.: Ca m'a amené dans les 600-700ème en bronze.

Stilgart: me souviens plus trop de la rage

Stilgart: mais les flaques d'huile c'est chiant

Remi.: Ensuite j'ai découvert le -1.5vel, je suis aux alentours de 250ème en bronze.

Stilgart: je sais plus ce que le doof sait faire d'autre

Remi.: J'ai pas l'énoncé sous les yeux je suis sur auter chose pour l'instant.

Stilgart: (mais c'est sans doute mieux que la flaque d'huile qui va aussi te géner toi)

Remi.: Il y a la bombe (ce que j'utilise), la flaque d'huile, et le 3ème truc avec la rage j'ai oublié.

Stilgart: je dois utiliser la bombe, du coup

Stilgart: (et le doof en bloqueur le reste du temps)

Remi.: Du coup je fais pareil.

philRG: ah pardon: n + (n-1) + (n-2) + ... -> n * (n + 1) / 2

philRG: Remi bon pour l'instant je commente mon code et je supprime du code inutile

philRG: pour monter silver je crois que mon reaper récolte l'eau et sinon suit de près le destroyer qui va vers les tankers, le doofer envoie de l'huile sur le reaper adverse. Rien de plus

philRG: C'est quand je rajoute des stratégies que ça se complique

philRG: le doof en bloqueur ah pkoa?

philRG: j'ai testé le goudron en béta aussi, enfin ça fait trop de paramètres et faut déjà comprendre ce que fait la grenade déjà

philRG: mon doof envoie de l'huile sur les reapers adverses qui se rapprochent d'une épave et si possible vers ceux le plus éloignés de mon reaper

philRG: en gros mon doof suit les reapers adverses

philRG: mon reaper récolte de l'eau ou suit mon destroyer. Mon destroyer suit les tankers, et mon doof suit les reapers adverses

philRG: pour l'instant pas trouvé mieux

Remi.: Ah ben t'es déjà en ligue argent phil.

Remi.: Alors moi ce que fait mon bot

philRG: ben oui depuis hier ou avant-hier sur IA assez basique (et aussi des classes bien spécialisées et méthodes associées). Mais dès que tu rajoutes des strats ça merde

Remi.: Le reaper va vers l'eau la plus proche

Remi.: Avec l'accélération à fond, ou 0 si je suis sur une flaque

Remi.: Mon destroyer, s'il a assez de rage, envoie une bombe sur le reaper ennemi ayant le meilleur score

Remi.: Sinon, il fonce sur le tanker le plus proche

philRG: ah accélération à fond et un -1.5v quand je me rapproche de la cible pour pas trop dévier

Remi.: Et le doof

Remi.: Faut juste le faire rouler, je le fais rouler vers le reaper de l'adversaire ayant le meilleur score.

philRG: ah oui j'utilise la bombe aussi si j'ai assez de rage mais seulement sur les tankers

Remi.: Oui je mets toujours le -1.5vel sur la position visée, quelle que soit l'accélération.

philRG: je le fais sans tester le score de l'adversaire tiens faudrait essayer

Remi.: Tu choisis comment l'adversaire alors ? tu prends le plus proche ? C'est peut-être ça la soluton pour passer argent.

philRG: mon reaper suit mon destroyer aussi

philRG: au pif le plus proche

Remi.: Dans quel cas ton reaper suit ton destroyer ? S'il n'y a pas d'eau, ou si ton destroyer est plus proche que l'eau ?

philRG: en fait mon destroyer roule pour farmer tes tanks et mon reaper le suit

Remi.: A un moment donné il faut bien que le reaper prenne de l'eau.

philRG: quand y a plus de tank il sert plus trop

philRG: il prend de l'eau juste après que le destroyer touche ou détruise le tank comme il le suit

philRG: le doof fait chier les reapers ennemis

philRG: ils les empêche de farmer de l'eau

philRG: mon destroyer emmerde pas les ennemis, il farme que les tankers

philRG: c'est trop le bordel sinon

Remi.: Donc ton reaper ne vise même pas l'eau obtenue grâce au destroyer ? il se contente de passer dedans en suivant le destroyer, et ça en attrape suffisamment ...

philRG: ben si vu qu'il le suit il est premier

Remi.: Je pense que tu peux améliorer ton algo si tu passes à côté d'une flaque dont les ennemis sont loins.

Remi.: Tu la prends puis tu retourne suivre ton destroyer.

philRG: en fait pas trop non lol mais ça monte silver

Remi.: Ben c'est ça, t'es silver, donc c'est mieux que ce que je fais ^^

philRG: j'ai un peu tâtonné et à l'instinct je suis passé silver sur une ia simple

philRG: j'ai pas écris ma stratégie avant de coder en fait

Remi.: Arrête de dire que t'es passé silver avec une IA simple ... j'ai besoin de me rassurer :D

philRG: j'ai une IA de 30 lignes je crois

Remi.: Mais c'est qu'il aime bien remuer le couteau dans la plaie grrrr ^^

philRG: 200 lignes avec les classes

philRG: 100 lignes pour les classes, 50 lignes la lecture des inputs, et 50 pour l'IA, commentaires et fonctions de debug

philRG: au dessus de 600 lignes, j'arrive plus à me relire

philRG: un petit avantage de python, c'est que quand une idée te vient, tu la testes en 5', et si ton modèle est correctement codé, tu vois rapidement le résultat.

philRG: J'appelle même plus çà du code

Remi.: Ouais c'est vrai que 30 lignes de python ne correspondent pas forcément à 30 lignes de C++

Remi.: Je le vois dans les COC

Remi.: Quand le python résoud le problème en 1 ligne et que moi que je fasse 2 boucles for avec des if à l'intérieur ...

TheAvengingTurtle: Tu peux les mettres sur une ligne.

Remi.: Tiens v'là le troll :P

TheAvengingTurtle: C'pas du troll, c'est toi qui parle de ligne...

philRG: bah je sais pas en combien de lignes tu fais ce code en C++

philRG: http://chat.codingame.com/pastebin/261514fe-f741-4e1a-9442-c68aa99a29bb

TheAvengingTurtle: Une: std::cout<<"404 Not Found\nWhatever you were looking for is not here. Keep looking."<<std::endl;

Remi.: C'est la recherche du closest qui sera moins simple en C++. Mais c'est pas compliqué, c'est juste plus long à écrire.

b0n5a1: re

TheAvengingTurtle: Le lien fonctionne pour toi Remi. ?

Remi.: Oui

Remi.: puisque je lui ai répondu ^^

Remi.: Tu ne rates rien c'est just eun bout de code.

Remi.: Salut bonsai

TheAvengingTurtle: Ah, j'ai. FF en https only.

Remi.: JE suis en train de prendre une leçon de MM auprès de Phil.

philRG: ah ah pendant ce temps, je code pas lol

philRG: ça me rappelle un contest sopra ou sogeti sur le thème CB où Bob m'a un peu montré sa méthodologie

philRG: après le contest, je suis monté gold en peu de temps au multi. Faut être motivé sur les multis en fait

b0n5a1: ça prendrait autnat en C++, sort + sélection du premier élément ^^

Remi.: Pas con le sort, il faut au préalable définir l'opérateur < pour la classe concernée, et coder un calcul de distance.

TheAvengingTurtle: b0n5a1 lance un sort à Remi.

b0n5a1: même pas pour le operator< Remi., un sort avec une lambda comme la ligne de python et ça roule

TheAvengingTurtle: ezpz

Remi.: Les lambas, je connais pas

Remi.: lambda

TheAvengingTurtle: [](){}

b0n5a1: c'est condensé ça :D

Remi.: Pendant longtemps j'ai eu la contrainte de faire du code qui se devait compatible avec les anciennes versions

Remi.: Donc C++98 ou 99 je sais plus

Remi.: Du coup je ne connais que très peu ce qui est apparu après.

b0n5a1: ouch, ha oui ça aide pas

Remi.: Dans la défense, les produits ne sont pas obsolètes au bout de 3 ans ^^

TheAvengingTurtle: std::sort(wrecks.begin(), wrecks.end(), [](Wreck& a, Wreck& b){return a.dist(my_reaper) / a.water < b.dist(my_reaper) / b.water;});

Remi.: Alors que moi j'écrirais : std::sort(wrecks.begin(), wrecks.end()) avec auparavant la définition de l'opérateur < dans la classe Wreck.

b0n5a1: et ça c'est un raccourci ne précisant pas le type de retour, bool étant par défaut Remi.

TheAvengingTurtle: Oui après ça marche aussi. Ca dépend du reste du code

b0n5a1: et (const Wreck& a, const Wreck& b) c'est mieux t'accèdes que en lecture ^^

TheAvengingTurtle: Oui.

Remi.: L'opérateur < permetaussi de mettre des const

Remi.: bool operator<(const Wreck& w) const {...}

b0n5a1: oui, avec un comportement unique

Remi.: Mais cette écriture me paraît mieux, car vous pouvez faire plusierus sort avec plusierus fonctions différentes.

TheAvengingTurtle: Voilà.

Default avatar.png lemin08: hey

Remi.: Alors que moi avec mon operator< c'est toujorus la même fonction.

b0n5a1: oui

Remi.: On a voulu dire la même chose en même temps ^^

Remi.: Bonsoir lemin

3141948: > ça prendrait autnat en C++, sort + sélection du premier élément ^^ Je fais aussi du sort, mais j'aime bien les lambda et les list compréhension qui se rapprochent le plus du sql.

TheAvengingTurtle: Le sikwal.

b0n5a1: remarque ... min_element avec lambda ça se rapproche plus ^^

3141948: Le truc des const wreck& pour l'accès en lecture, çà permet de pas les modifier ok

TheAvengingTurtle: D'abbord tu modélise la base en Mérice, et ensuite tu la construit en sikwal.

TheAvengingTurtle: Le prof et son accent...

Remi.: Je suis nul en bdd

3141948: C'est pas de la bdd c'est de l'algèbre ensembliste

TheAvengingTurtle: Le sikwal ,

TheAvengingTurtle: *?

TheAvengingTurtle: DROP TABLE;

3141948: Je recode les opérateurs sur mes classes aussi, juste pour réduire mon code d'ia et le rendre plus lisible. Mon ia ressemble plus à un roman qu'à un code

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

Remi.: Et jamais ta table ne retombe à l'endroit à force de la renverser ?

TheAvengingTurtle: Non. J'ai un ramasseur qui la remet bien après chaque utilisation.

dwarfie: Automaton2000 : code moi une tortue que j'entraine la mienne ...

Automaton2000: je veux pas me faire passer

dwarfie: Automaton2000 : t'inquiete , tu passeras pas , t'as pas acces a ce contest :p

Automaton2000: bah ça dépend de ce que tu veux faire une simu ^^

dwarfie: Automaton2000 : tu fais comme tu le sent

Automaton2000: en fait je pense que je vais finir par croire que j'ai pas le temps

dwarfie: branleur

Remi.: (╯°□°)╯︵ TT

Zorg1: les petits boulots de CG : ramasseur de table

Remi.: Bah il en faut ... vu le nombre de fois que les tables sont renversées ici ^^

Zorg1: c'est fini l'escape challenge + personne n'en parle ?

**dwarfie se souvient de la fois ou y'en avait tellement qu'ils les a collé ensemble avant des les reposé :D

Remi.: Je pense que tout ceux qui voulaient le faire l'ont fait.

dwarfie: et meme ceux qui voulaient pas ...

Remi.: Bah ça personne ne les a forcé ^^

Zorg1: bah je voulais pas je l'ai pas fait ^^

Remi.: Moisi je ne veux pas faire un truc je ne le ferai pas.

Remi.: * Moi si

dwarfie: la curiosité de voir le truc buggé et pouvoir rien faire pendant 1h ... trop tentant

Remi.: mdr on n'a vraiment pas les mêmes tentations :D

3141948: Y a plus de merise en école ?

dwarfie: non ... des debiles ont décidé que UML c'etait "vachement trop mieux"

Remi.: Avec le peu de bdd que j'ai faite, non je n'ai pas fait de merise. Mais c'était pas une école spécialisée en info non plus.

dwarfie: dommage ... merise c'est tellement bien

Remi.: UML c'est pour l'orienté objet.

dwarfie: d'ou le "débilesé

3141948: Merise est plus orienté bdd je crois

dwarfie: s/é/"/

dwarfie: merise est pas orienté ... c'est pour faire de la base de donnée

**dwarfie recommande d'ailleurs en passant le trop peu connu AnalyseSI pour faire des bases propres avec du merise

3141948: Ah ok me semblait bien on avait commencé par çà à l'AFPA après une semaine d'algorithmie un peu bidon

3141948: La formatrice était pas mal sur cette méthode, et bonne pédagogie

3141948: Ils étaient équipés en powerAMC et chez moi j'ai utilisé analyseSI çà me revient

dwarfie: les grands esprits se rencontrent :D

Remi.: Alors moi quand mon reaper suit le destroyer, ça donne n'importe quoi ^^

3141948: > les grands esprits se rencontrent :D Hehe

3141948: Il le suit seulement s'il a rien d'autre à faire

3141948: > Il le suit seulement s'il a rien d'autre à faire C'est mon PM Remi

3141948: Tout part de là ,😂

Remi.: Je me demande s'il ne faudrait pas essayer de repérer les épaves dont les autres sont loin, pour ne pas être trop bousculé

Remi.: "PM" ?

3141948: Post mortem, le truc que quand tu le lis, tu as plus envie de démarrer le multi

dwarfie: le truc a ne jamais lire en fait sinon adieu la motivation de trouver par toi meme

Remi.: J'ai pas mal cherché sur MM, avant de croiser avec les idées des autres.

3141948: > le truc a ne jamais lire en fait sinon adieu la motivation de trouver par toi meme On est d'accord

3141948: J'ai ouvert les PM de MM pour voir les algos ou stratégie dans les grandes lignes mais c'est large ce multi donc peu d'intérêt sauf si tu veux travailler un algo donné

3141948: Je suis aussi loin du niveau de certains aussi

3141948: La majorité des PM concernent des bots en gold ou légende pas le truc à faire quand on débute un multi

Stilgart: (re)lire le PM de Bob sur Fantastic Bits

Stilgart: il s'applique à tous les multis et à toutes les ligues sauf les légendes

Remi.: Je viens de m'apercevoir que mon bots a un problème avec le SKILL

3141948: (oui)

Remi.: Quand ma rage est supérieur à 60, le destroyer balance un bombe en sortant SKILL x y

Remi.: Mais il n'y a pas de bombe et ma rage ne descent pas

Remi.: C'est bizarre

Remi.: du coup mon destroyer n'avance plus et SKILL tout le temps, sans effet.

3141948: Remi ah oui le debug hehe pour çà qu'il faut tester moi j'en ai sûrement encore des problèmes

Remi.: Mais je vois bien le SKILL dans la sortie standard, pourquoi ça n'a aucun effet ?

Remi.: 933 2854 300 SKILL -2585 313 -2585 313 300

3141948: Rien que mes range faut que je les vérifie aussi comme je peine à analyser les replays, je me base surtout sur mes montées de ligue

Remi.: C'est p'être pour ça que je ne monte pas dans les ligues malgré la philosophie qui est assez proche de ce que dis Stilgart ou toi (sauf sur le principe de suivre le destroyer).

3141948: Faut que la bombe soit à portée < 2000

Remi.: Ah ben j'ai pas vu ça ! Ca a dû m'échapper ...

Remi.: Ok, c'est pas dans le texte, c'est dans le petit tableau, en tout petit ... GRRRR

3141948: Sinon ton action est transformée en wait par le referee (écrit dans les règles)

3141948: Oui dans le tableau

Remi.: Bon bah on va stocker l'intention de skill et attendre d'avoir une dist2 inférieure à 4000000

Remi.: Merci phil

3141948: Le principe de suivre le destroyer bon c'est par fainéantise comme j'utilise pas le goudron

Zorg1: dans MM ? en plus ce tableau n'était pas là au début c'est orabig qui l'a rajouté ^^ (en fait les infos sont dans le texte mais en bazar)

Remi.: Oui c'est MM

Remi.: Si je passe silver ce soir ce sera grâce à phil pour m'avoir indiqué cette notion de distance ^^

Stilgart: Remi.: la règle de base, c'est que avant la gold, tu n'as pas besoin d'algo sophistiqué

Stilgart: une strat correcte et implantée sans bug, ça suffit

Remi.: Oui mais j'ai jamais vraiment regardé les parties, juste le début pour vérifier que ça tourne, et du coup il n'y a pas assez de rage au début ^^

3141948: La rage est dans les input, penser à la decrementer si tu utilises plus d'un skill par tour

Stilgart: il faut regarder des parties random, jusqu'au bout

Stilgart: et à la fois des victoires et des défaites

3141948: J'étais top 1 en bronze sans utiliser de skill rage

Stilgart: et trouver la première erreur

Stilgart: (les suivantes ne comptent pas)

Remi.: Ben moi je galère dans la masse en utilisant un skiil transformé en wait ^^ je te redis dès que j'ai fini de coder si ça change.

3141948: Ou alors mon doof utilisait son skill mais je vérifiais pas la rage

3141948: J'ai vu qu'en silver que la rage était fournie en entrée 😂

Remi.: lol

Remi.: Je ne suis pas le seul à ne pas tout voir ^^

Remi.: Automaton2000, note bien les phrases qui parlent de jeu au lieu de me sortir des phrases sur le choix de mon pseudo, hein ? ^^

Automaton2000: et il y en a qui ont fait une ia en c++

Stilgart: Automaton2000: c'est plutôt une bonne idée, d'ailleurs

3141948: > Ben moi je galère dans la masse en utilisant un skiil transformé en wait ^^ je te redis dès que j'ai fini de coder si ça change. Ok bon courage y a bcp de règles sur mm on se perd un peu

Automaton2000: mais vu que tu as trouvé le truc pour le faire

Remi.: non mais là je recode pas grand chose, juste la vérification de la distance avant de lancer le skill

Stilgart: fais un design général plus simple, ça supprimera pas mal de bugs

Stilgart: (même si j'avoue que c'est surtout vrai en contest, ça)

3141948: Ah ok oui plus c simple, moins y a de bugs

Default avatar.png ___Lou__p: Hello, je suis nouvelle sur la plateforme et n'arrive pas à trouver de codingame Angular 2+. Il n'y en a pas ? :(

Stilgart: ça devient un running gag :/

Stilgart: c'est quoi un "codingame Angular 2+" ? et pourquoi y aurait-il une telle chose ?

Stilgart: (et oui, j'ai l'impression qu'on nous demande ça une fois tous les 15j ces derniers temps)

Default avatar.png ___Lou__p: Je ne sais pas, on m'a dit qu'on me ferait passer "un codingame Angular pour me tester" lors de mon dernier entretien, ça m'a un peu surpris alors j'ai voulu voir ce que ça donnait, mais il n'y a rien ^^

Stilgart: dans ce cas, on te donnera en temps voulu un lien vers la partie "pro" de codingame

Stilgart: mais ça n'a pas grand chose à voir avec ce que tu trouveras ici

Default avatar.png ___Lou__p: Donc pas moyen de s'entrainer ici ?

Stilgart: (si ce n'est que c'est la même entreprise)

Default avatar.png ___Lou__p: Merci pour ton aide en tout cas :)

Stilgart: pour Angular, non

Zorg1: faut pas être obtus non plus

Remi.: Tu peux t’entraîner sur l'un des 27 langages dispo, mais angular n'en fait pas partie.

Stilgart: tu peux faire des puzzles en typescript, c'est sans doute ce qu'il y a de plus proche

Remi.: phil je lance l'arène.

Stilgart: (tiens, c'est base sur typescript ça maintenant)

Stilgart: (tiens, en fait 2+ c'est la version XX pour XX > 5)

Stilgart: (ils sont fout chez google)

Zorg1: ah je croyais que ça marchait toujours avec JS

Zorg1: après bon je ne suis pas trop non plus

Stilgart: j'ai bêtement acheté ce qui était écrit sur wikipedia fr

Stilgart: mais j'avais écris Javascript au départ

3141948: > Je ne sais pas, on m'a dit qu'on me ferait passer "un codingame Angular pour me tester" lors de mon dernier entretien, ça m'a un peu surpris alors j'ai voulu voir ce que ça donnait, mais il n'y a rien ^^ Y a peut-être des test codingame angular sur le site dédié aux recruteurs codingame for work, mais pas sur le site normal

Remi.: Bon je suis passé de 256ème à 195ème, toujours en bronze ... doit y avoir une autre connerie quelque part :/

3141948: Ici y a que des puzzles d'algorithmie utilisant des langages, angular n'étant pas classifié comme langage

3141948: > Bon je suis passé de 256ème à 195ème, toujours en bronze ... doit y avoir une autre connerie quelque part :/ Sûrement revoir ton al

3141948: iA de base

3141948: Déjà t'as gagné des places en fixant ce bug. Mais les montées de petite ligues sont plutôt le résultat d'une stratégie simple et utilisation des règles de la ligue

Remi.: J'espérais quand même me rapprocher du boss.

3141948: Suis monté de wood 2 à bronze sans rien changer aussi

3141948: Quand je monte de ligue ou me rapproche du boss, c'est vraiment quand je découvre un multi.

3141948: Faut vraiment être dedans

3141948: Là çà fait 2j que je suis pris à autre chose, faut le faire à tête reposée. Le mieux parfois c'est de tout recoder de zéro

3141948: Aussi c pas mal d'écrire les stratégies en français pour être sûr que ton code suit bien la logique voulue

3141948: On a parfois des surprises

Remi.: Ok mais là le code est très simple, je ne peux pas m'être trompé sur ce que je veux faire, et ça me semble confirmé quand je regarde les combats.

Remi.: Petite question, tu fais comment pour choisir quel tanker ton destroyer doit poursuivre ? tu fais le plus proche ?

Remi.: J'avais remarqué que ça ne marche pas forcément bien, alors je visais le plus proche du centre du jeu

Remi.: Là par curiosité je retente une arène en visant le plus proche demon destroyer, et je dégringole.

Remi.: * de mon

philRG: faudra que je revois exactement ce qui m'a fait monter silver, car j'ai codé pas mal de nouvelles actions depuis qui n'ont rien donné et comme j'ai été pris par d'autres activités, j'ai un peu oublié

philRG: si ça trouve j'ai codé l'inverse de ce que j'ai voulu, et c'était mieux

philRG: attends je regarde

philRG: http://chat.codingame.com/pastebin/f61105df-74ab-4bd6-ad32-937c9e2b602e

philRG: je suis sûrement un peu dyslexique, je confonds min et max, et des fois je code l'inverse de ce que je veux et ça score. L'idée c'est que plus tu testes d'action, plus tu as de chances de scorer

philRG: c un peu l'idée de simuler toutes les actions de jeu sur plusieurs tours mais en python ça rame un peu, donc je "spam submit" :-D

Remi.: Alors je ne suis pas sûr de comprendre le python, mais tu regardes si la distance entre le tanker et le destroyer est entre 2000 et 4000. Si c'est le cas, tu balances un skill sur le tanker le plus proche de ton reaper

Remi.: Ou sinon

philRG: oui et j'évites de viser le centre du tanker

Remi.: ou sinon tu fonces sur le tanker le plus proche de ton destroyer

Remi.: C'est quand même poussé.

Remi.: Pourquoi ne pas viser le centre du tanker ?

Remi.: quand tu skill

philRG: Si la Grenade atterit au centre d'un véhicule, celui ci ne subit aucun effet


Remi.: Je ne comprends pas la distance entre 2000 et 4000, surtout que pour que le skill fonctionne, il faut être à moins de 2000

philRG: par contre je sais même plus quel effet une grenade a sur un tanker

Remi.: Ah ça c'est une info intéressante. Je balance mes bombes au milieu, encore un truc à corriger.

philRG: attends faut que je rentre la chienne

Remi.: Je t'en prie ^^ tu sors les chiens à cette heure ci ? Moi j'évite, ils aboient pour rentrer, la nuit c'est pas terrible..

philRG: ben il a plu une bonne partie de la journée et j'évite de la sortir quand il pleut car je peux pas la rentrer

philRG: ou alors je la sors en laisse dans le jardin

philRG: parfois elle glisse et tombe dans la piscine

Remi.: Allez dernière arène de la soirée, en fonçant sur le tanker le plus proche du centre comme avant, et en visant x+1, y+1 quand je skill.

philRG: j'ai utilisé skill pour destroyer mais le move à mon avis suffisait largement

Remi.: Je sais pas ... je suis juste en move (le skill est pour les reapers adverses) et je peine à monter.

philRG: la grenade fait des dommages dans un rayon de 1000, et peut-être lancée jusqu'à une distance de 2000

BensGear: hello

philRG: donc si ton adversaire est à plus de 3000, ton action ne donnera rien

philRG: j'ai un bug dans mon code, c'est: tankers_in_range: List[Tanker] = [t for t in tankers if 2000 < t.dist(my_destroyer) < 3000]


philRG: et même: tankers_in_range: List[Tanker] = [t for t in tankers if 1000 < t.dist(my_destroyer) < 3000]


philRG: pour ne pas subir l'effet de le grenade

Remi.: Quand je balance une granade sur un adversaire, je ne me soucie pas de la distance avec mon reaper. Peut-être que je devrais aussi corriger ça.

philRG: en gros au début je lance mes grenades dans des zones éloignées de mon reaper

Remi.: Mais bon, ça complexifie, quand j'entend Stilgart dire qu'on passe gold avec un truc simple ... soit je suis débile soit on n'a pas la même notion de simplicité.

Remi.: 237ème. J'étais mieux classé en balançant la bombe pile au centre ^^

philRG: je sépare les tâches (1- mon reaper collecte de l'eau peinard 2- mon destroyer farme des tankers et parfois envoie des grenades sur les ennemis éloignés de mon reaper et mon doofer envoie de l'huile sur des ennemis éloignés de mon reaper) si je résume bien

philRG: Stilgart est peut-être pas trop loin de la vérité

Remi.: Donc c'est moi qui suit débile ^^ je vais tenter d'utiliser de l'huile aussi.

philRG: balancer la bombe au centre ça doit être pour les unités ennemies pas les tankers

Remi.: Ah ok

philRG: faut éviter

philRG: les règles n'indiquent pas qu'on peut utiliser des grenades sur les tankers et à quoi ça sert (à mon avis à rien)

philRG: les grenades c'est pour éloigner les énnemis des zones intéressantes

philRG: les tankers se dirigent vers le centre, faut voir ce que font les grenades sur les tankers déjà (j'ai pas pris le temps de l'analyser dans les replays), l'énoncé ne l'indique pas précisément

philRG: pour moi le but des grenades c'est éloigner les unités ennemies c'est tout

philRG: le goudron rend les tankers indestructibles ok mais pour quel usage? Le goudron sur les unités ennemies me paraît bien

philRG: faut vraiment y aller en douceur sur ce multi

philRG: l'huile normalement ça marche puisque ton doofer n'a que ça à faire!

philRG: le destroyer doit à la fois aller au contact des tankers et éloigner les ennemis avec les grenades

philRG: le reaper collecter de l'eau et utiliser son goudron pour ralentir les unités ennemies

philRG: les collisions ne sont pas élastiques déjà ça simplifie. Tu peux utiliser le doofer pour pour écarter des unités ennemies

Remi.: Bon, le code qui m'a fait passer de 256 à 195 me place maintenant 33àème

Remi.: * 330

philRG: ah bon c'est une ia molle comme dirait leojean

philRG: Les véhicules touchées par une grenade subissent une poussée de 1000 depuis le point d'explosion de la grenade

philRG: à mon avis la grenade sert à rien sur les tankers

philRG: en gros une simulation a de bonnes chances de scorer sur ce multi (ex: algo génétique)

Remi.: Là on tombe au delà de mes compétences.

philRG: en C++ les perfs seraient bonnes, en python j'en doute fort

Remi.: J'essaie de progresser tant que je peux appliquer une logique. L'algo génétique je ne sais pas faire.

philRG: ben l'algo génétique c pas si compliqué, le plus dur c'est de coder toutes les actions de jeu

philRG: enfin pas si dur pour un habitué, moi je suis noob, je connais le principe, j'en ai codé un ou 2 avec des perfs pourries sur un multi

philRG: 400 lignes de codes pour un résultat nul comparé à un -3vel

philRG: car c du python, je simule 500 nodes alors qu'en C++ certains en simuleraient 2 millions

philRG: essaye çà: https://www.codingame.com/blog/

philRG: en terme de logique: https://www.codingame.com/blog/lazy-keep-simple/

Remi.: Les algos compliqués je regarderai plus tard, ce soir j'aimerais bien passer en silver sur MM ... mais je crois que ça va être mort.

philRG: écrit par Bob (qui code en C++) et utilise peu d'algo de recherches (fait plutôt des heuristiques basées sur une logique)

philRG: ah j'ai beaucoup causé comme j'étais dans le canapé (pas trop vu le multi et mon code)

Remi.: Pas de problème, j'aime quand on me cause beaucoup ici, j'apprends plein de choses.

philRG: ah ok bon c'est que beaucoup font des simulations avec des langages compilés. Et sur des entités en mouvements ça fait beaucoup de positions à simuler aussi

philRG: je fais des simus en python mais sur des jeux à tuiles

philRG: ou tu n'as qu'un nombre limité de mouvements

philRG: pour les jeux de voitures avec collisions, j'évite les simulations en python

Remi.: J'aimerais bien savoir faire des simus pour les appliquer à des algos (génétique, MCTS ou minimax), mais ça prend du temps pour se mettre dedans et je n'arrive pas à m'y mettre. Je fais passer la vie de famille avant le jeu, donc j'ai pas trop l'occasion de progresser dans ce domaine.

philRG: sinon en algo génétique, tu vas simuler des mouvements sur des pas angulaires de 5 ou 10° et aussi accélérations de 10 en 10 (enfin faut définir tes intervalles de thrust) en général tu fait thrust 0-100-200-300

philRG: et ton moteur va calculer les collisions

wassim.benamor: Bonsoir, dans clash of code, avec JS on peut dire on ne peut jamais gagner le type "écrire moins de code", surtout devant des joueurs en Python ?

philRG: Remi oui Bob conseille d'éviter les algos génétiques

Remi.: wassim je ne connais pas assez le JS pour te répondre, mais pour gagner en code le plus court faut faire souvent du python ou du ruby.

philRG: le ruby c'est le plus court. Faut aimer la syntaxe quand même ou coder en Ruby au boulot sinon je vois pas l'intérêt de faire du ruby pour gagner des CoC

philRG: mais on peut aimer les langages aussi ceci dit

Remi.: Après, on peut espérer tomber sur des gens qui n'ont pas compris le principe et qui te sortent un code avec un max de tabulation et des noms de variables à rallonge. Moi je sais qu'en C j'arrivais à faire du cide court, mais impossible de gagner contr eun python qui sait ce qu'il fait.

Remi.: * du code court

wassim.benamor: +1 Remi, tout à fait d'accord. Sur le sujet des tabulations, je penses que sur ce type d'exercice, il faut toujours passer par un minify du code avant de submit (supprimer tous les espaces, renommer les variables par des lettres etc ..)

philRG: le python c'est du code court grâce à certaines fonctions développées sur ce langage. Java, c'est verbeux, C++ aussi selon les cas d'utilisation, le C# a fait des progrès sur Java, mais reste verbeux, par contre, le C# n'est pas aussi permissif que d'autres langages dans le sens que le code est destiné à pouvoir être relu par d'autres

philRG: Le C# permet tout de même de débuter dans la programmation informatique de manière sécurisée

Remi.: Wassim c'est obligatoire. Dépêche toi de coder la solution, et quand tous les tests passent il faut prendre tout le temps qu'il te reste pour supprimer tous les caractères qui ne te servent à rien (tabulations, espaces entre opérateurs, noms de variables et de fonctions ... et voir à remanier le code, l'ordre des conditions etc...)

Stilgart: Remi.: nan mais encore une fois, python c'est pourri pour golfer

Stilgart: (sauf sur les CoC fait pour faire gagner python)

Remi.: On parle justemetn de COC

Stilgart: tous les CoC ne sont pas fait pour être torcher par python non plus

Remi.: C'est pas ce que je dis. Je dis juste que je constate que ceux qui gagnent les COC golf utilisent principalement 2 langages : ruby et python.

Stilgart: fais deux constats encore plus évidents alors :

Stilgart: 1. ceux qui ne savent pas coder codent en python

Stilgart: 2. ceux qui font des coc ne savent pas coder

Remi.: C'est pas un troll ça ? ^^

Stilgart: non, c'est objectif

Remi.: On a tous fait du COC pour avancer sur CG. Donc personne ne sait coder :P

Stilgart: python est fait pour ceux qui ne savent et ne veulent pas coder

Stilgart: (il y a donc une certaine logique)

Stilgart: le top100, il a fait du code long long time ago

Stilgart: ça fait bien longtemps qu'on en a eu assez de casser du débutant

Stilgart: et 5k CP, ça se gagne ailleurs

Remi.: Je comprends pas trop ce que tu essaies de me dire. Hors du top 100 on ne sait pas coder ?

philRG: la définition de savoir coder reste assez arbitraire.

Remi.: En fait ce que je ne comprend pas, c'est que j'ai l'impression que Stilgart s'agace (mais peut-être est-ce une mauvaise impression) dès que je dis que les COC golf sont remportés par le python et le ruby (c'est pas la 1ère fois qu'on en parle). Mais c'est pas un jugement de valeur, c'est simplement ce que j'ai constaté.

philRG: avant le codage il y a la conception

Remi.: Ca je suis d'accord, mais sur CG c'est moins vrai ^^

philRG: je vois ce que les CoC peuvent apporter en fait

philRG: pas

Remi.: moi non plus. J'en ai fait histoire de compléter la quest map. Maintenant que c'est fini, je n'envisage pas d'en refaire (sauf peut-être un jour pour gagner le trophée des 500 coc ... mais il faudrait qu'il n'y ait plus rien d'autre pour progresser).

philRG: sur CG c'est moins vrai? Ah mais c'est parce que beaucoup ont déjà étudié la partie conception et réutilise des patrons ou des best practices

philRG: et font du code sur un langage principal depuis très longtemps

philRG: dans mon cas j'ai pas fait de formation en algorithmie à l'école, j'ai fait du C pour mes loisirs quand j'étais étudiant et un peu de scripting au boulot

philRG: j'avoue ne pas pouvoir coder des milliers de ligne de code en un seul jet et maîtriser toutes les stacks techniques et frameworks.

Remi.: Moi à l'école c'était surtout orienté électronique. La programmation était secondaire, mais c'est ce qui m'a le plus plu. Du coup c'est dans ce domaine que j'ai trouvé du boulot, et c'est dans mes 1ères années de boulot que j'ai tout appris (design patterns, cycle en V ...)

philRG: Peu en sont capables ou alors font ça à fond depuis longtemps (et si possible très jeune) sans s'être arrêté

philRG: ok dans les premières années de boulot normal. Au bout de 15-20 ans à écrire (ou en jargon pisser) du code, tu peux te lasser à moins d'être dans une structure qui te le permet

Remi.: Ah mais je ne pisse pas du code, le code c'est 20% du boulot peut-être.

Remi.: enfin c'était

philRG: c'est une expression pour dire que ce métier est parfois dévalorisé par les non amateurs de code

Remi.: depuis que je suis soumis à la sdf, le code c'est 1% du boulot ^^

philRG: sdf?

Remi.: Sûreté de fonctionnement

Remi.: Tu pisse 10 fois plus de doc pour exmpliquer comment tu t'assures de ne pas faire de la merde (si je caricature ;) )

Remi.: Tu passes bien plus de temps à rédiger ton plan de développement, à être 10 fosi plus rigoureux sur l'écriture des spec (sachant que d'autres ont écrit une méthodologie sur comment écrire tel ou tel doc), t'as des relectures à n'en plus finir, par les responsables qualité ou sdf.

Remi.: C'est intéressant au début, mais au bout d'un moment tu trouves ça long.

Remi.: Depuis que j'ai changé de boulot c'est un peu plus light sur la sdf quand même.

Remi.: A la base je me suis inscrit sur CG parce que ça me manquait de faire du code.

Remi.: Bon du coup maintenant c'est moi qui cause trop et qui n'avance plus sur mon bot ^^

Remi.: T'es toujours là philRG ?

Stilgart: ce que j'essaie de te dire, c'est que si tu veux gagner en golf, c'est surement pas en python qu'il faut coder

philRG: ouais j'essaye de corriger mon bot pourri de silver enfin les lignes de codes qui sont indentés en dehors de mon if / else

philRG: je crois que je sais pas écrire un if/then/else en fait

Remi.: Stilgart là je veux bien te croire.

Remi.: Tu conseilles quoi comme langage ?

philRG: non mais je veux éviter de veiller et causer me force à corriger mon bot

Stilgart: bash / perl / ruby

Remi.: bash faut vraiment maîtriser

Stilgart: dans l'absolu, perl doit être un poil meilleur

Stilgart: mais comme c'est imbittable les codes perl...

Remi.: bash je me prend la tête à faire des calculs avec des varaibles (dans la phlosophie du C), et quand je vois la solution de autres, en 1 ligne ils te traitent tout un tas de données ...

Remi.: * variables

philRG: normal que je code de la merde, j'écris même pas en français ce que mon IA est censée faire (j'ai perdu le fil des PM de bob)

Stilgart: Remi.: traiter des flux de données, c'est le but de (ba)sh oui

Stilgart: si seulement windows avait un shell par défaut ne serait-ce que 3 fois moins bien

philRG: bon je vais spam submit dans l'arène puis dodo tant pis

Stilgart: go go go kovi^WphilRG

Remi.: Moi à la base, le bash me sert à traiter des exécutables ou des fichiers

Remi.: bonne nuit phil

philRG: he he bon j'y crois pas trop lol

Remi.: avec le bash j'automatise des tâches chiantes

philRG: dans 5' quand le run aura fini

Remi.: genre cloner un dépôt, lancer la compil, préparer le répertoire de TU/TI, lancer les TU/TI ...

Remi.: Mais résoudre des algos, ça, jamais fait ^^

Stilgart: dans ce cas, tu dois connaitre suffisamment de commandes pour battre le pythoneux moyen

Remi.: Ah ben non

Stilgart: de connaître à réussir, il y a un peu de boulot

Remi.: Je ne gagnerai pas des COC à faire des déplacements de fichiers ^^

Stilgart: |

Stilgart: yapludfichiers

Stilgart: sed/tr pour gérer les entrées (quand ça donne pas direct la sortie)

Remi.: Justement, sed et tr je ne connais pas. J'ai découvert tr en regardant les solutions des autres personnes après avoir résolu un puzzle.

Remi.: Et je suis sur le cul de voir comment ça traite un lot de données sans effort.

philRG: j'ai fait pas mal de awk il y a 20 ans, un peu de sed et de tr aussi

philRG: et du bash aussi mais j'ai peu de souvenir enfin j'arrive à refaire du bash quand même

philRG: bon j'ai du mal à monter en gold

Remi.: Moi je pense avoir perdu mon temsp ce soir sur MM

philRG: ben faut pas causer à des mecs dans leur canapé

Remi.: La soirée avait pourtant bien comencé en passant de 256 à 195, mais là impossible de repasser au dessus des 300

Remi.: Au contraire phil, j'ai perdu mon temps sur MM, mais pas en parlant avec toi.

Stilgart: pro tip: concentre toi sur tes défaites contre le bas de la ligue

Remi.: Je pense avoir appris des trucs grâce à toi.

philRG: faut bien lire les règles aussi et celles sur MM sont complexes, faut vraiment avoir la forme

Remi.: Stilgart, dans un combats tu peux voir le classement des adversaires ? ou t'es obligé de te taper tout le classement ?

Stilgart: je prends le run, et je zape les 10 premieres parties (le first 10)

philRG: ah ok merci alors pas tout perdu, mais je râle souvent sur les énoncés. Sur les multis communautaires de certains, j'arrive à lire le code java du referee

Stilgart: = les 10 tout en bas pour produire ton classement de départ

Remi.: Ah tu parles des premiers combats ?

philRG: C'est vraiment en testant des IA simples et en franchissant les différentes ligues sans me presser que je comprends les règles

Stilgart: oui

Stilgart: c'est quasiment pas possible que ton bot ne fasse que descendre au classement

Stilgart: (à moins d'avoir gagner tout ton first 10 par accident...)

philRG: les énoncés sont souvent rédigées dans l'esprit du créateur. Pour les contests officiels, il y a moins d'effort à faire sur la compréhension des règles je pense

Stilgart: par ailleurs, tu peux check le classement en faisant "send game to IDE"

Remi.: Pourtant, une IA simple c'est ce que j'ai fait. Ca m'a fait passer les ligues de bois. Mais le bronze semble insurmontable.

Stilgart: philRG: je t'invite à en parler avec Magus

Stilgart: ou euler

Stilgart: (les trucs mal huilés, c'est souvent CG qui a imposé ça à la dernière minute contre l'avis de l'auteur)

Remi.: Stilgart donc si j'ai bien compris, je zappe les 10 premiers combats, et je regarde les défaites dans les premiers combats suivants ?

Stilgart: voilà

philRG: (possible aussi) j'ai pas assez de recul comme je fais des multis que depuis un an de façon sérieuse

Stilgart: si tu as du mal à monter, c'est que ton bot n'écrase pas le bas de la ligue

Stilgart: et quand c'est le cas, c'est qu'il y a une grosse lacune

Stilgart: surtout à MM où il n'y a pas vraiment de hasard

philRG: faut surtout éviter de rajouter du code sans avoir testé si ta stratégie précédente était payante

philRG: je dis n'importe quoi bon j'attends mon dernier spam submit

Remi.: Comment savoir si la stratégie est payante, quand 2 arène de suite avec le même code te font passer de 600ème à 300ème ? ^^ Si je change un truc et que je suis 450ème, c'est dur de savoir si c'est un peu mieux ou un peu moins bien.

Stilgart: facile, c'est pas payant

Stilgart: sinon tu passerais 50e

philRG: exact

philRG: c une IA molle

Remi.: Ok donc je n'ai rien fais de payant depuis que je suis en bronze

Stilgart: vous êtes en bronze si j'ai bien compris ?

Remi.: Sauf peut-être le -1.5vel,

Remi.: Non, phil est en silver

Remi.: Moi en bronze oui

Stilgart: un truc payant, c'est un truc qui même top bronze minimum

Stilgart: le reste, c'est de la mélasse

Remi.: Ben c'est dûr de se sortir de la mélasse.

Remi.: * dur

Stilgart: (comprendre, des bots trop hétérogènes pour tirer des conclusions claires)

Stilgart: et oui, c'est dur de sortir de la mélasse, c'est pour ça que je l'appelle comme ça

philRG: en général quand je code un truc payant je passe Top 5 dans les ligues wood ou bronze, ensuite suffit de débugger

Stilgart: de mémoire, MK préconisait de baisser pas mal le -3vel

philRG: si en mid league c'est que j'ai pas encore trouvé

Stilgart: donc -1.5vel ça parait pas mal

Remi.: J'ai passé les ligues bois sans trop de soucis

philRG: oui

philRG: -1.5lev paraît bien

Remi.: -1.5vel c'est officiel dans le post mortem

Stilgart: par contre, je sais plus du tout comment il était arrivé à cette conclusion, et nous ne pourrons sans doute plus lui demander :(

philRG: ah ok je l'avais lu ici dans le chat et aussi testé -1lev -1.5 - 2 -2.5 -3

philRG: ben ça doit dépendre du coefficient de frottement

philRG: et du thrust

Stilgart: et peut-etre du fait qu'il faut s'arrêter sur l'eau

Stilgart: (c'est pas un petit détail ça :p )

philRG: bon j'ai gagné 40 places en silver en corrigeant du code mou (sans logique)

philRG: en gardant la même logique qui m'a fait monter silver mais j'utilise mieux la grenade je pense et je vais au contact des tank qui ont plus de 4 en water

Stilgart: il y a combien de gens en silver ?

philRG: 133

philRG: c peu

Stilgart: ok...

Stilgart: parce que 40 places ça paraissait pas terrible...

Stilgart: mais c'est 1/3 de la ligue en fait :D

philRG: ah oui c sûr

Stilgart: de coup, gg

philRG: au lieu de dégommer le destroyer je dégomme les autres, en imaginant qu'ils faisaient des trucs intéressants

philRG: s/les autres/tous les ennemis les plus proches de mon destroyer et le plus éloigné de mon reaper lol

philRG: faudrait que je définisse une vraie stratégie car c'est une IA molle

philRG: c'est un peu flou de dire: en imaginant qu'ils faisaient des trucs intéressants

Stilgart: faudrait essayer de regarder ce que fait le boss silver

philRG: défaut d'analyse

philRG: ah oui exact je l'oublie souvent

Stilgart: je t'avoue que perso, j'ai passé mon contest à coder un moteur le plus efficace possible

Stilgart: donc coté strat, j'ai vraiment pas grand chose

Remi.: Bon ben voilà l'exemple parfait de ce que je disait. J'ai relancé sans rien changer, et je suis dans les 400ème (421ème à 63% des combats)

Remi.: C'est le code qui m'avait amené à 195ème en début de soirée.

philRG: visuellement parlant l'analyse des replays me flingue les yeux

philRG: je code à l'aveugle sur la logique

philRG: coder un moteur çàd?

Remi.: Pour simuler

Stilgart: Remi.: autre pro tip

Stilgart: attends d'être à 100%

Stilgart: et en contest, ajoute 2h

philRG: ah ok sur un algo génétique?

Remi.: Ouais t'as raison, la fin s'est plutôt bien passée et je suis 284ème, toujours plus bas qu'avant.

Stilgart: j'ai plutôt du MC/HC

philRG: HC?

Stilgart: hill climbing

philRG: ah ok jamais fait celui-ci mais tu l'utilises souvent

Stilgart: en gros, je pars de ce que jouerais mon bot bronze/silver, et je pertube aléatoirement pour trouver un meilleur coup

philRG: je vois pas trop comment faire un MC sur ce genre de multi

Stilgart: tu peux voir ça comme un AG sur un seul chromosome et qui ne fait que des modifs de type changement aléatoire

Remi.: Faudra que j'apprenne à faire ça.

Remi.: A commencer sur SR, comme tu me l'avais conseillé.

philRG: ah oui comme le contest sogeti csb j'ai fait çà (mon pod était bien bourré lol)

philRG: darkhorse simulait 2M nodes et moi entre 2 et 4000 lol

Remi.: Bon sur ce, je vais devoir vous laisser.

Remi.: Merci pour nos échanges de ce soir.

Remi.: A bientôt.

philRG: je suis resté 3j sur le contest le temps de monter 3ème et dépasser le petit blaise hehe

philRG: enfin je suis monté 3ème avec le -3v et une ia basique pour gérer l'utilisation des thrust et aussi le moteur de magus pour détecter les collisions

philRG: bon allé moi pareil dodo bn stilgart

**Stilgart va faire semblant de ne pas aller se coucher

philRG: y avait quand même du code (mais j'ai pompé le code python d'un gars qui avait suivi le PM de magus)

philRG: pour le moteur

philRG: bonne nuit hehe