Chat:Fr/2020-11-19

From CG community
Jump to navigation Jump to search

Oioi: debout automaton2000 !

Automaton2000: c'est quand meme un peu

Edjy: salut Automaton2000

Automaton2000: c'est que ton code est trop lent

Vry: Yo !

dbdr: \o!

Vry: Aller, aujourd'hui je passe Gold !

dbdr: gogogo

Vry: 9/10 au démarrage ... mais je ne sais pas si ça va être suffisant !

Vry: Il va falloir que je bosse encore sur mon bot ...

Gorkill: Bonjour à tous :)

dbdr: hello Gorkill

Gorkill: Petite question sur le moteur CG. Le code du moteur est sur github et le code du contest aussi. Est-il possible de faire des Run local pour tester plusieurs algorithmes? Si oui, un petit tuto traine quelque part?

dbdr: possible oui, vu que tu as le code

dbdr: tuto je suis pas sur

Oioi: je crois que euler en a fait un

Gorkill: Bon, je vais tout balancer dans IntelliJ et on verra comment ça compile ahah

dbdr: après ça peut etre plus rapide de tester tes algos dans l'arene

Gorkill: Bah c'est surtout pour essayer genre plusieurs formule d'heuristique les une contre les autres...

Gorkill: ou genre des cas particulier. Certaine seed me plante carrement mon Tree-search ^^

dbdr: aurais-je cassé un truc?

Mator: Hi everybody

Gorkill: dbdr c'est à dire?

dbdr: mon bot se classe moints bien

Gorkill: Ah ça arrive :)

dbdr: à priori j'ai fait un changement mineur, mais j'ai peut-etre une erreur

Maka: https://www.codingame.com/replay/505776197 quelqu'un peut m'expliquer pourquoi le joueur qui a le moins de points gagne sur cette partie ?

dbdr: bonus de fin de partie

dbdr: c'est expliqué dans les regles

Maka: Zut j'ai encore lu de travers .. je vais revoir ca marci

Maka: *merci

dbdr: on dirait bien que c'était cassé. ouf! :)

Mazelcop: o/

Vry: Wow #78 !

Vry: Ce sera pas suffisant mais avec un bon démarrage ça aide ...

dbdr: mets le starter Vry!

Vry: Faut que je regarde des parties pour comprendre ce que je dois améliorer !

dbdr: secret de pro

Vry: Trouver une stratégie de learn intelligente ... :wink:

dbdr: ya pas à dire, les subs qui finissent en 5 minutes c'est agréable

Vry: C'est pas faux ! Pourvu que ça dure ...

dbdr: ça dépend surtout des heures je pense

dbdr: là c'est le creux

Oioi: et de la ligue, non ?-)

dbdr: la nuit aux US, le matin en EU

dbdr: je pense pas que la ligue joue

Oioi: Je fais tout pour que ça ralentisse un peu en ligue or... mais ça veut pas passer

Haashi: 43 en submit a l'heure actuelle

Vry: Plus de problème de timeout je joue en général en 5ms ... c'est donc bien la stratégie que je dois revoir.

Default avatar.png Paikan2068: Vry, je te rejoins tellement

Default avatar.png Paikan2068: Il va falloir que je trouve le truc pour passer gold

egaetan: salut tout le monde

Mazelcop: hello

dbdr: \o

Traquila: salut

Default avatar.png JBM: o/ monde

Simon21: hello!

egaetan: aujourd'hui objectif être sympa avec dbdr pour qu'il me laisse passer devant

dbdr: :sunglasses:

dbdr: étape 1, envoye moi ton code

egaetan: tu lis le C ?

dbdr: bah oui

dbdr: le tiens il faut voir ;)

egaetan: j'ai tout montré avant hier, tu n'as pas vu ?

dbdr: non

Default avatar.png JBM: tout?

Default avatar.png JBM: j'ai eu l'impression que ton code faisait plus de 1000 lignes

egaetan: oui le C c'est verbeux

dbdr: en couverture: "photos exclusives, egaetan se dévoile intégralement"

Default avatar.png JBM: c'est surtout dur de tout montrer en qqs page up

egaetan: oui, certaines méthodes font plusieurs ecrans ( ouh c'est moche )

dbdr: bon, 90 matches c'est un peu court pour ranker

Default avatar.png JBM: procrastination TODO #13, automatiser l'extraction depuis les videos

Default avatar.png Paikan2068: Désespoir, mon code est devenu stupide, il apprend tout ce connard

egaetan: dbdr tu es sûr que c'est le nombre de matchs qui fait ça ?

egaetan: JBM lol

dbdr: ça joue en tout cas

egaetan: moi c'est mon algo qui est mauvais qui m'em^peche de monter

Default avatar.png JBM: compense avec des perfs

dbdr: je veux dire la différence entre deux subs

dbdr: code identique

dbdr: ya eu pire

egaetan: ok, là j'approuve sans réserve

dbdr: à la kovi, 5 subs par version

Default avatar.png JBM: c'est vrai que l'histoire de kovi

Default avatar.png JBM: c'est un pb que si y'a que lui qui le fait

Gorkill: Salut, je sais qu'on peux savoir lorsque l'adversaire BREW, lorsqu'une potion disparai mais qu'on à pas BREW. Question: Si on BREW la meme potion au même tour... Comment savoir?

codeing: salut la famille.

codeing: qui s'y connait en design pattern ici ?

Mazelcop: regarde son score Gorkill

__mcts__: Gorkill je regarde quand son score augmente perso

Gorkill: Pas con j'y avais pas pensé!

Gorkill: j'etait sur la liste des Delivry

Gorkill: Merci Mazelcop et __mcts__

Vry: J'essaie de remonter le nombre de brew par branche de l'arbre mais ça bug ... qui veut debug le bouzin ... je dump l'arbre si vous voulez ... :sunglasses:

Traquila: Petite question, une fois les 100% de battles, on ne peut plus passer le boss ? Il faut resubmit ?

egaetan: c'est ça

Neumann: Sauf si tu te fais pousser

Vry: Ouais, surtout avec 3pt d'écart ;)

Vry: Je suis encore à 4pt

Vry: Le top bouge pas mal en silver ... le #1 qui était juste en dessus à maintenant 2pt d'écart

Traquila: pousser c'est quoi ? les personnes devant toi qui relancent ?

egaetan: ou derriere

Default avatar.png JBM: ton score qui bouge comme résultant des matchs des autres

Vry: Tu as toujours des combats contre ton bot qui peuvent te faire gagner des points

Vry: ... ou en perdre !

Traquila: bon 38 ya rien qui bouge

Traquila: j'ai beau submit je termine à la même place

egaetan: il va falloir coder alors

Default avatar.png JBM: ça risque d'être fatigant

egaetan: et difficile

Vry: Au minimum il va falloir réfléchir ! :)

Vry: Je suis #83 donc dans la même situation

Vry: Oh le boulet ... j'ai une méthode foireuse pour trouver le parent d'un node ... node-- :upside_down:

egaetan: ça devrrait pas marcher ça Vry

Traquila: Je perds contre des randoms, je vois pas comment monter :-(

Vry: egaetan : je confirme, j'obtiens des statistiques toutes foireuses ...

Cousnouf: d'façon c'est un jeu pourri :P

Default avatar.png Timothee01: yo les amis

Cousnouf: wesh cousin

Default avatar.png Timothee01: chui en cours au lycée :joy:

CopperFr: ah c'est encore ouvert les lycées ?

Bon[]Crayon: salut

Default avatar.png Timothee01: ouai mais pas tt les jours

ZefusToutCourt: T’imagine même pas comment c’est relou

Default avatar.png Timothee01: ouai

CopperFr: c'est surement plus dangereux qu'une librairie pourtant

Default avatar.png Timothee01: ouai de fou

Bon[]Crayon: automatonnn quoi de neuf ?

AutomatonNN: oui

Bon[]Crayon: automatonnn oui quoi ?

AutomatonNN: oui je t'ai pas besoin de la difference

Bon[]Crayon: automaton2000 salut

Automaton2000: sur le dernier test ?

CopperFr: y disent n'imp les bots :(

CopperFr: faudrait leur donner un peu de potion magique qui rend intelligent

Gronahak: Hello, je me réveille pour me faire rickroll... https://www.codingame.com/replay/505752670

CopperFr: (d'ailleurs j'en prendrai aussi)

Bob: amis des roll

Bob: bien le bonjour o/

CopperFr: ca rock ?

Bob: Automaton2000, AutomatonNN, il parait que vous dites que des betises ?

AutomatonNN: oui

Automaton2000: mais du coup le plus simple pour commencer

Bob: ca a le merite d'etre clair

CopperFr: NN est clair

Default avatar.png JBM: améliore ta html5 bob \o https://www.codingame.com/contribute/view/5326e0ad9aaa1c84010096f697c2dc81eee2

Bob: eh mais j'arrete pas de monter

Bob: j'ai gagne presque 200 places sans rien faire depuis hier soir

MooMooN: ceux qui sont passé en gold ou on ton pousse gentillement ?

CopperFr: faut rien faire dans ce cas là

Bob: non non, apres le passage en gold j'etais ~300

Bob: 140 il y a 2 heures, et la 115

Bob: ouais bon c'est non plus pas ca qui va me donner les 6 points pour passer le boss

Bob: mais si je trouve pourquoi sur certaines seeds mon nouveau code arrete de trouver des solutions, ca aidera sans doute

Bob: j'ai un cas, mon precedent code qui va juste au premier brew trouve les 5 chemins en 1 ms

Bob: le nouveau code qui fait les combos brew + cast et essaye d'aller au meilleur score ne trouve rien

BigUP: les casts apres brew ne pénalisent pas ta solution ?

Bob: pourtant logiquement il devrait avoir trouve des gains de score assez vite

Bob: non, je compte juste le gain de score

Bob: bete et mechant

BigUP: avec mon eval, je pense que trouver des casts apres brew me pénaliserait en tout cas

Bob: je simule aussi loin que je peux et je garde le chemin qui donne le meilleur score

Gronahak: y'a que tes brews qui augmentent le score ?

Bob: oui

Bob: donc normalement tres vite je devrais forcement avoir au moins un chemin valide

Gronahak: Dans ma fonction d'eval les cast et les learns aussi ont un score positid

Oioi: + bonus ressources restantes en fin de partie

BigUP: non, mais les casts peuvent pénaliser. ceci-dit apres un brew, je ne rentre probablement pas dans ce cas

BigUP: faudrait que j'essaye de continuer lorsque je trouve un brew

Bob: bref, c'est l'heure de mettre du cerr

WhatTrickeryIsThis: :see_no_evil:

WhatTrickeryIsThis: attention le cerr il va afficher des bugs

Default avatar.png Timothee01: je me fais chier et il reste 30min de cour ptn

Gronahak: quel cours ?

Default avatar.png R4YB4T: nsi

Default avatar.png Timothee01: ouai

Default avatar.png Zarostrix: et je suis avec eux

Default avatar.png JBM: https://www.codingame.com/share-replay/505833091 le mec me dit "YOU ARE TOO SLOW" je timeout dans le tour d'après

Default avatar.png JBM: *gulp*

b0n5a1: o/

Vry: Choisir le chamin qui rapporte le plus ça permet juste de se faire piquer les potions par l'adversaire en fait ... c'est bof !

Vry: *chemin

Vry: Bon, il va falloir faire une recherche avec l'adversaire ... j'en ai bien peur ...

Default avatar.png Timothee01: es ce que vous pouvez nous montrer le code du Marslander svp

Vry: Nan c'est mal ...

Default avatar.png Timothee01: vasi stp je suis keblo

Default avatar.png Timothee01: stp mec

Bob: genre euh le 1 ?

b0n5a1: le code d'accès du Mars lander c'est 123AB985

Default avatar.png Timothee01: nan mais le code python

Default avatar.png JBM: je crois que la NASA l'a publié sur github

Default avatar.png JBM: mais c'est pas du python

SeebOmega: Timothee01 ca ne marche pas comme ca ici

Default avatar.png JBM: https://github.com/nasa-jpl/open-source-rover

Bob: si il faut de l'aide pour passer ML1, je crois qu'il faut s'orienter vers une autre branche en fait

b0n5a1: clair

Bob: soit dit sans malice

Bob: ok mon algo est totalement pete en fait

Bob: il me trouve une potion en 5 coups au lieu de 3...

Default avatar.png Timothee01: sa tombe bien je veux pas faire sa

b0n5a1: ça reste un bon exo pour apprendre à réfléchir, ça l'air nécessaire

Default avatar.png Timothee01: ok je vais essayer alors

Default avatar.png Timothee01: ah mince c'est la fin du cour que c'est dommage

b0n5a1: c'est pas grave t'iras balayer les rues ou creuser des tranchées, y'a pas de sot métier et il en faut pour tout le monde

Bob: non mais lol

Bob: le gars il attend la fin du cours pour demander la solution

Vry: Bob : tu maximises à depth dans le mauvais sens ?

SeebOmega: Wow wo that escalated quicly

Bob: Vry: ben c'et un BFS donc en theorie il devrait trouver le plus court

b0n5a1: meuh non ^^

Bob: est*

Vry: Il trouve tout le BFS ça dépend comment tu gère s'il trouve un BREW

Vry: *gères

Bob: ben la c'est ma premiere version, elle ne gere que les cast

Vry: ... surtout la première fois que tu trouves le BREW

Bob: mais je fais un cerr quand je trouve le brew

Vry: Moi aussi Bob

Bob: et j'affiche le chemin

Bob: or le chemin c'est pas du tout le plus court

Vry: Gérer le learn dans le BFS va défoncer les perf. de toute façon

Bob: du coup je dois avoir une merdouille

Vry: Problème de données dans ton arbre ?

Vry: Ce matin j'ai dumper mon arbre pour controler le bordel

Vry: Y'avait que 1000 lignes c'était gérable ...

b0n5a1: JBM y'a quelques parties en python en fait

b0n5a1: led screen par exemple

Bob: ah non c'est moi qui ai les yeux niques et qui vois mal les sorts dans le viewer >_<

b0n5a1: y'a presque que dy python

Bob: c'est un vert, pas un bleu

Default avatar.png JBM: oui mais c'est pas le bon en fait

Bob: putain il fait pas bon vieillir

Default avatar.png JBM: là c'est un jouet

Default avatar.png JBM: retire les verres colorés Bob

b0n5a1: bin je m'en doute arduino et co ^^

MooMooN: change tes lunettes bob tu m'tonne avec les lunettes de ton avater que tu es du mal a voir les vert et les rouges :)

Bob: euthanasiez-moi

b0n5a1: er raspberry

WhatTrickeryIsThis: me vela à côté de Apo, c'est t-y pas mignon

Bob: faites un bisou

WhatTrickeryIsThis: on a plus le droit à ça

WhatTrickeryIsThis: pas de bisou

Bob: :*

WhatTrickeryIsThis: pas chat bite

CopperFr: quel beau couple

WhatTrickeryIsThis: pas chat minou

SeebOmega: Les gestes barrieres

CopperFr: envoi gestes barrières au 8200200

egaetan: oh bordel dbdr tu as raison ça monte pas vite

b0n5a1: les pushs sont toujours aussi lents depuis hier egaetan ?

Merome: 'lo world

WhatTrickeryIsThis: j'ai fait un submit de 20 min là

egaetan: non les gens parfois il gagne contre moi, et ça m'emepche de monter, les nazes

b0n5a1: ok

dbdr: c'est un scandale!

Bob: ah, un Merome

Bob: ah punaise j'ai trouve mon bug

Merome: Quelqu'un a cité mon nom ici ? (à part Bob)

b0n5a1: paf un coup de tapette Bob !

Merome: J'ai une notif de CG qui m'a amené ici, mais je vois pas pourquoi

Gorkill: J'aime beaucoup ta logique egaetan ^^

Bob: je crois que c'est moi qui ai tente de te faire un msg prive pour te taquiner mais pidgin a du le faire a moitie

Merome: Je constate avec plaisir que tu n'es pas plus gold que moi

Default avatar.png JBM: sympa

Bob: non mais je te mets 500 places dans la vue quand meme

Bob: je dis ca je dis rien

b0n5a1: c'est beau cet auto-réconfort ^^

Bob: bref, resetter la totalite du bitfield au REST alors qu'on y a rajoute les potions deja castees, c'est con

dbdr: bah REST ça reset tout, non?

Bob: oui mais pas les potions deja construites :)

Bob: du coup la au premier rest je marque toutes les potions comme deja faites

Bob: donc fatalement ensuite il ne brew plus rien

Haashi: Bob tu geres les spells et le brew sur un meme bitset ?

Default avatar.png JBM: stocke les potions faisables plutot que faites comme tout le monde

Vry: Ben ouais Haashi ... faut que ça rentre sur 64 bits donc on tasse tout le bordel comme on peu

Vry: t

Bob: Haashi oui, ca prend moins de place

Haashi: vous avez tout rentrer sur 64 bits ?

Bob: JBM : bah c'est pareil, si je le fais dans l'autre sens mais que je resette tout le bitfield, j'aurai le bug inverse, avec un code qui essaiera de me faire plusieurs fois la meme potion

Bob: Haashi: moi non

Bob: j'ai pas encore eu besoin de perfs au point de reduire a ce point la taille de mon state

Haashi: moi je cherche encore a trouver un moyen de réduire

Haashi: et de faire une somme performante

Vry: Si tu ne gères pas le LEARN dans ton BFS c'est assez simple en fait !

Vry: La liste des BREW est fixe, celle des CAST aussi ...

Bob: ouaip

Bob: ah ben voila ca marche tout de suite mieux

Bob: et c'est parti pour une heure de push

Bob: 10/10 au demarrage, j'aime encore bien

Stilgart: :popcorn:

Stilgart: :beers: aussi, parce qu'en une heure, on a le temps :)

b0n5a1: gâcher de la bière avec du pop corn...

Stilgart: non, après

Stilgart: je suis pas Boulet

b0n5a1: j'adore...vpn du boulot pas activé depuis lundi sur nouvelle box...ça prend 10 min à tout péter...

BigUP: c'est plus secure comme ca

b0n5a1: avec comme réponse "ha j'ai juste mis le dyndns, je sais pas si il faut faire qqchose pour le vpn"...bouffons

Julius2k17: ^^

b0n5a1: réponse qui date de 2 jours

Bob: ah ben en fait ca score assez vite

b0n5a1: avant j'appelle le standard je tombe sur la secrétaire qui a redirigé sur son phone à la maison ^^

b0n5a1: elle a appelé pour que ce soit activé, y'a 1 heure...

b0n5a1: toujours rien

Bob: bon c'est pas encore un winner mais c'est mieux

CopperFr: c'est un ouinner ?

Bob: c'est ca

Bob: il s'assied et il pleure

Gorkill: Oh c'est vrai les item qui reste en inventaire compte en point Ahah j'avais oublié

Gronahak: que les pas bleu :exclamation:

Gorkill: 1 par non bleu?

Gronahak: yes :)

Gorkill: Thanks j'aurai tout prit ahah

Simon21: comment vous mesurez le temps d'excution en Java. J'utilise System.currentTimeMillis(), est-ce que c'est fiable?

Default avatar.png eliboy: 3

Bob: Simon21: a priori oui

Bob: il faut juste faire attention a prendre ton point de depart au bon endroit

Bob: a savoir juste apres la lecture du premier input

b0n5a1: Simon21 ça peut n'avoir que 1 ms de résolution...si tu veux plus précis System.nanoTime()

Zorg1: après la pertinence de cette précision ...

b0n5a1: oui

Simon21: ok merci. 1ms de précision me suffit, mais je voulais être sur que ce soit la bonne méthode^^

b0n5a1: ça dépend après si derrière ça utilise les timer de précision cpu ou pas

b0n5a1: mais bon ici...avec les timeout inopinés et tout en plus

Simon21: et vous utilisez quoi comme queue en java? actuellement j'ai un arraydeque (sur lequel je fais des add et poll). Est-ce qu'il y a mieux?

Bob: un gros tableau prealloue, sans doute

WhatTrickeryIsThis: ArrayDeque

WhatTrickeryIsThis: q.remove()

WhatTrickeryIsThis: mais bof bof niveau perf

WhatTrickeryIsThis: de toute façon ce qui comptera vraiment c'est la manière dont tu élage après

Bob: chouette ma tab CG a mouru

Bob: avec le code pas sauvegarde dedans T_T

Stilgart: erf :/

Bob: heureusement que c'etait rien d'important

Simon21: j'enlève juste mes noeuds dupliqués pour le moment... j'ai voulu elaguer un peu plus hier ça m'a plombé mes perfs lol

Bob: pour le moment j'elague rien du tout et je duplique comme un goret

Bob: #beLazy

WhatTrickeryIsThis: :pig_nose:

Vry: Tu hashes pas Bob ?

CopperFr: le saint goret

Bob: non

Vry: Je suis jaloux ! :)

WhatTrickeryIsThis: Copper vous préférez le cochon ou Trump (attention question piège) ?

Bob: je vois tout le monde en parler et je saisis l'interet, mais je pense que tant que je n'integre pas le learn dans le BFS ca ne m'apportera rien

Vry: Ton BFS n'explose pas sans virer les doublons ?

Bob: la ou j'en suis, avec brew + cast + rest, je sors entre 700k et 1200k etats en 35 ms

Bob: et ma meilleure solution est rarement au-dela de 100k

Vry: Ok, mais le hash permet d'aller plus loin car il dégage pas mal de coups identiques ... en tout cas c'est ce que j'ai observé sur mon bot

Bob: et 12 sorts

egaetan: je hash pas, ça fait des collisions

Default avatar.png OldJohn: Et oui le paradoxe des naissances... Mais on peut s'en sortir :-)

Bob: la je pense qu'il faut que je commence a regarder un peu la fin de partie

Vry: Ça dépend comment tu gères le stockage des state avec ton hash ensuite

Bob: j'ai l'impression que j'ai plus a gagner la qu'a rajouter le learn

Vry: Il me faut de la motivation pour que je recode mon BFS avec prise en compte de l'adversaire ...

Bob: peut-etre un learn moins debile en debut de partie

Bob: et une eval de l'adversaire peut-etre

Vry: 7x free learn c'est bien aussi

Default avatar.png OldJohn: Je suis sur un hackhatton en // pas facile de faire deux choses en même temps...

Default avatar.png charlottesasson: hello, qqun peut me donner une piste de stratégie en ligue bronze ? je trouve aucune idée ..

WhatTrickeryIsThis: gaetan il a dit c'est facil de mettre mlearn dans le bfs

Vry: Ouais mais ça fait "exploser" le state :upside_down:

egaetan: il suffit d'enlever la peau avant de manger la banane

Vry: Et dieu sait que la taille compte

JSanction: C'est juste 4 lettres

Bob: charlottesasson: brew la potion la plus chere possible des que tu peux, choper sans reflechir les learn qui donnent +3 ou plus

Bob: cast pour ameliorer ton inventaire

Bob: a defaut, learn d'un spell qui peut ameliorer ta main, sinon rest

Default avatar.png OldJohn: Je mettreais bien un #pragma acc parallel loop là!

Default avatar.png charlottesasson: okkk je vais partir sur ca

Bob: avec en prime que si tu castes un des sorts gratuits qui ne donne que du bleu, ca peut eventuellement etre interessant de faire un learn d'un sort qui t'en rapporte autant avec le taxCount

Bob: tiens d'ailleurs je l'ai pas remis dans mon nouveau code, ca

Zorg1: t'es encore full heuristique Bob ?

Bob: non, BFS goret

Zorg1: comme à peu près tout le monde en fait ^^

Bob: plus assez d'idees pour l'heuristique et comme j'ai du temps libre je fais l'effort :)

Vry: Et toi Zorg1 ?

Default avatar.png OldJohn: Moi c'est BFS + alpha-bêta pour la finale... Mais la finale manque de tables de transposition

Zorg1: bah BFS avec élagage des doublonq

Vry: Tu tiens compte de ta jumelle ?

Default avatar.png OldJohn: La finale me permet d'arnaquer un peu les autres bots !

Zorg1: gné ?

Vry: De l'adversaire

b0n5a1: l'autre sorcière Zorg1

Zorg1: ah oui ^^

Zorg1: non je me regarde le nombril

Vry: Flûte ... comment tu as fait pour passer alors ! :stuck_out_tongue_winking_eye:

b0n5a1: son BFS est moins goret que les autres Vry ^^

Zorg1: bah Vry a une hash map de 32 Mo

Vry: Possible

Vry: 2 Zorg1 :p

Vry: Une pour me une pour l'adversaire

Vry: *moi

Zorg1: une en semaine une pour le WE ?

Zorg1: ah ^^

Default avatar.png charlottesasson: Bob quand tu dis améliorer ta main tu veux dire avoir des ingrédient de type élevés c'est ça?

Bob: non

Bob: je regarde les ingredients manquants pour chaque potion

Bob: je vois combien le sort manquant m'en fait gagner

Bob: et je calcule un "gain" a partir de ca et du prix de la potion

Bob: et le "gain" du score c'est le max des gains sur chacune des 5 potions

Bob: il faut eventuellement rajouter un petit quelque chose pour les ingredients en eux-memes

Default avatar.png charlottesasson: ahh ok merci je vais voir ça

Bob: sinon il y a un risque que tu sois coince quand tu as une potion qui veut du orange mais que ton code ne va pas vouloir faire bleu -> vert puis vert -> orange parce qu'il n'y a pas de vert dans la potion et du coup le sort bleu -> vert n'apporte pas directement de gain

Bob: coincee

Bob: en contrepartie a un moment tu risques de te retrouver avec un bot qui ne va plus faire que du jaune, mais c'est un probleme pour plus tard

Bob: avec ca, tu devrais pouvoir passer silver sans gros soucis

Default avatar.png charlottesasson: ok merci bcp!

Bob: de rien

Bob: si tu ne sais pas trop comment choisir les learn, une option qui semble assez bien marcher c'est de faire quelques learn sans reflechir en tout de but de partie et de ne plus en faire du tout ensuite

Default avatar.png charlottesasson: ouais ça j'avais compris en regardant des combats

Gorkill: J'ai tout cassé... Je learn plus du tout :(

dbdr: git reset

Gorkill: Justement je vient de regarder le diff, et j'ai juste virer la boucle qui gére çca ahah

Vry: Je fais un super démarrage de submit mais je perds contre le top #1000 :upside_down:

samaur: bonjour, j'ai une question où trouver les sorts du grimoire

samaur: je les trouve pas dans le github

egaetan: samaur https://github.com/CodinGame/FallChallenge2020/blame/main/src/main/java/com/codingame/game/Deck.java

samaur: Merci @egaeton

egaetan: samaur TAB pour compléter les pseudos et ne pas les écorcher

Gorkill: Aller Submit avant le repas et bon appetit :)

Vry: Tu prends cher egaetan ...

egaetan: c'est moche...

Vry: Bon du coup ... il faudrait que je code ...

samaur: egaetan :)

**egaetan applaudit samaur !

samaur: toujous pas en rouge

samaur: hhh

Default avatar.png TheophileLeparmentier: Salut, j'ai un bugg avec mes print genre mes prints ne sont pas prit en compte

Pillowin: Hello, y'a moyen de récupérer des entrés pour pouvoir tester en externe ?

egaetan: oui

egaetan: affiche les dans la console d'rreur

Vry: Il suffit de les afficher ...

Vry: http://chat.codingame.com/pastebin/d343b105-6ff0-47dc-a5ea-268c61d464c3

Pillowin: Ah ouais pas bête :joy:

Pillowin: Merci

Default avatar.png TheophileLeparmentier: J'ai une erreur que j'arrive pas à comprendre

Default avatar.png TheophileLeparmentier: Est ce qu'il faut une synthaxe particuliere pour le print ?

Default avatar.png TheophileLeparmentier: dans mon code je fais un

Default avatar.png TheophileLeparmentier: print("LEARN " + id)

egaetan: TheophileLeparmentier ça depend du langage

Default avatar.png TheophileLeparmentier: sur python

Default avatar.png TheophileLeparmentier: et ça me le prend même pas en compte

Default avatar.png TheophileLeparmentier: (ça passe bien dessus j'ai mis des logs pour vérifier)

Default avatar.png PythonSlayer: fais str(id)

Oioi: ça devrait, à moins que tu ne fasses un autre print avant

egaetan: # To debug: print("Debug messages...", file=sys.stderr, flush=True)

Default avatar.png PythonSlayer: ou alors t as pas mis d espace

egaetan: c'est qtabd qu'on se plaint du random des classements ?

Vry: Pas quand on est en Gold, c'est interdit !

Vry: Moi je peux me plaindre, je me suis aléatoirement retrouvé dans le marécage Silver

Oioi: Arf, on est pas loin Vry mais ces 100 dernières places sont bien dures à remonter

SeebOmega: Apres en gold comme je me fait casser la G plus souvent le niveau monte d'un cran ca ajoute du challenge

Oioi: :-)

Default avatar.png TheophileLeparmentier: J'ai fais les sdifférents test avec le débugeur en ajoutant un sring ..

Default avatar.png TheophileLeparmentier: dans mon code j'ai

Default avatar.png TheophileLeparmentier: print("LEARN " + str(id)) print("LEARN " + str(id), file=sys.stderr, flush=True)

SeebOmega: TheophileLeparmentier tu as aucune sortie ?

Default avatar.png TheophileLeparmentier: (Pour vérifier que la synthaxe est bonne)

Default avatar.png TheophileLeparmentier: en sortie debugeur j'ai: LEARN 12

SeebOmega: et en sortie normale ?

Default avatar.png TheophileLeparmentier: j'ai CAST 79

SeebOmega: du coup tu doit avoir une condition qui sors deja un print

SeebOmega: le premier print c est celui qui est pris

Default avatar.png TheophileLeparmentier: je comprends tout mes prints sont dans des conditions elifs

SeebOmega: tu appelles peut etre 2 fois ton code

SeebOmega: ce que je peux dire avec certitude c est que le bug est de ton cote, apres pour le retrouver met du debug a plusieurs endroits et essayes de suivre la trace de ton aalgo

Default avatar.png TheophileLeparmentier: if 0 == len(list_sort_a_effectuer_le_plus_rapidement): http://chat.codingame.com/pastebin/3cbf510c-60b6-4112-9257-c301d8682208

Default avatar.png TheophileLeparmentier: ça c'est tout mes prints

Default avatar.png TheophileLeparmentier: c'est indenté au niveau du while = True

Default avatar.png TheophileLeparmentier: Si il y a un print (LEARN) je vois pas comment un autre print peut être fait

SeebOmega: tu dois print une solution apres le parsing de tes inputs, dans la boucle while true

Default avatar.png TheophileLeparmentier: le print est bien dans le while true

SeebOmega: apres les parsing d input ?

Vry: Choppe les input et teste en local

dbdr: tiens un géorgien connu

egaetan: Closet ?

dbdr: yep

dbdr: #1 à LoCaM si ma mémoire est bonne

egaetan: oui

R4N4R4M4: Salut tout le monde

SeebOmega: o/

b0n5a1: o/

SeebOmega: ca sent les dessous de bras dans ce chat

dbdr: ça veut dire quoi ça?

egaetan: que certains ne se lavent pas

SeebOmega: ou ne sont pas epiles sous les aiselles

Oioi: ça veut dire \o/

egaetan: j'ai une liste de noms, on peut les dégéger du leaderboard

SeebOmega: +s

RemyVase: Ce moment ou tu dois faire 40 000 points et tu en fais 39 990 ...

dbdr: si t'as besoin d'un admin... ;)

dbdr: enfin modo

umarbahadoor: Hello, vous utilisez tous le BFS? J'ai utilisé A-Star pour ariver en silver, mais sa ne me permet pas d'avancer plus... donc maintenant je change d'algo...

Vry: Il faudrait que j'aille me doucher d'ailleurs ...

dbdr: se doucher pendant un contest?

Default avatar.png JBM: ouais ça sent d'ici

dbdr: quelle perte de temps

SeebOmega: Perso je suis sur un MCTS mais je sais pas si je vais le garder tres longtemps

Default avatar.png JBM: c'est comme un LEARN

Default avatar.png JBM: tu perds du temps sur le coup

dbdr: resterait plus qu'à dormier aussi tant qu'on y est

R4N4R4M4: C'est pas encore interdit la douche ?

Default avatar.png JBM: mais t'es plus à renifler tous les quarts d'heure en se demandant où est le cadavre de rat

Vry: dbdr j'ai pas le choix ... un minimum de dignié bordel !

Default avatar.png JBM: quelle indignié

dbdr: solution pince à linge

Vry: Une douche bien froide !

dbdr: sur le nez

Default avatar.png JBM: pour la planète

SeebOmega: Heureusement qu’on n'a aucune dignité… Sinon on serait bien dans la merde. -Dagonet

umarbahadoor: @SeebOmega merci, je vais considerer le MCTS aussi, car BFS, c'est lent

dbdr: SeebOmega :+1:

dbdr: tiens ya deux ee à Seeb

Default avatar.png JBM: always has

dbdr: oui mais j'ai toucher prononcé Seb

Default avatar.png JBM: touché

Default avatar.png JBM: bah ça se prononce pareil non?

dbdr: merci le tab qui marche plus

Default avatar.png JBM: ou à la germanique, un peu plus fermééééé

SeebOmega: oui ca depends de l'origine des teammates ([er] pour les fr [i] pour les autres)

Default avatar.png JBM: genre les germaniques font /i/

Zorg1: l'anglais est une langue germanique non ?

Default avatar.png JBM: ça fait pas des bretons des germaniques

egaetan: quel manque de priorisation

b0n5a1: non mais le bug pourri...depuis le début sur le multi cast je màjais l'inventaire que d'un cast au lieu de N casts

Agade: zorg1 oui

PED: Hey Agade

Agade: hey

Bob: hoy

Default avatar.png JBM: hey

Zorg1: yo

Julius2k17: aloa

Vry: Hej!

b0n5a1: hoo

RemyVase: Bonjour, il n'y a pas moyen de voir le résultat de la soumission ? Dans l'IDE je valide des trucs non validé par la soumission et j'aimerais juste comprendre la différence ahahah

egaetan: _Royale stop ! on passe plus

Zorg1: c'est efficace ?

_Royale: aïe

egaetan: https://imgur.com/a/2wDX4m0

egaetan: oui ça marche

egaetan: j'hésite à essayer aussi avec pb4

dbdr: c'est quoi le 6?

egaetan: un lynx ?

dbdr: 2_6

dbdr: son rang?

egaetan: oui son rang la premiere fois que mon onglet l'a croisé dans last batlle

egaetan: je crtois que c'est CGSounk qui ajoute ça

egaetan: Spunk

Neumann: Tu utilises encore CGSpunk ?

Neumann: C'est mort depuis 2 ans

egaetan: c'est pas lui les classements dans last battles ?

Neumann: CGEnhancer

Neumann: by Azkellas

egaetan: Ah oui c'est ça

egaetan: merci Azkellas pour le tool

Bob: en meme temps CGEnhancer ca a pas beaucoup bouge recemment non plus je crois ?

Default avatar.png JBM: c'est parce que CG est dorénavant parfait

b0n5a1: bah si y'a pas de bug ni nouvelle feature y'a pas de raison

Bob: et les classements dans les last battles, je suis jamais bien sur d'a quoi ils correspondent

Bob: si c'est le classement du nick au moment ou tu regardes, ou le classement de l'AI au moment ou tu as joue le match

b0n5a1: on est deux alors :joy:

Bob: mais bon c'est pas grave, l'outil est chouette

Bob: la selection de l'adversaire dans l'IDE en particulier c'est un petit bijou

b0n5a1: et le swap

Bob: les annotations de l'history en soi c'est un truc qu'on reclame a CG depuis une eternite, en revanche des fois je les ai des fois je les perds

Bob: bon en attendant ma chambre a air va pas se changer toute seule

dbdr: ya que de plus pour la selection de l'adversaire?

Mazelcop: le cut pour legend c'est à peu près aux alentours de #20, c'est ça ?

dbdr: ouais

b0n5a1: tu peux notamment vite swaper de position dbdr

Mazelcop: ok, je fais plus rien

dbdr: c'est demain qd meme...

b0n5a1: player0/player1

Mazelcop: ah !

Default avatar.png TheophileLeparmentier: FInalement pour mon print j'ai fait un print général en fin de code qui récuppérer le result des autres print et c'est passé

Default avatar.png TheophileLeparmentier: Bizarre .. Je me demande si il y a pas un bug

Vry: C'est vite répondu ...

egaetan: MazelCop 21 ce serait mieux

xurei: c'est fou la diff entre gold et silver n'empeche :-P

b0n5a1: y'a un peu plus de jaune et moins de gris

xurei: en silver tu pouvais espérer faire des séquences de win, en gold c'est quasi impossible

CopperFr: oui je suis d'accord le gold est beaucoup plus jaune

Bob: bah tout le monde doit avoir des algos sensiblement equivalents

Bob: je trouve quand meme la difficulte plus elevee ce coup-ci

CopperFr: c'est plus difficile que les précédents ?

Mator: Moi je trouve que c'est plus dur de monter avec un algo sans faire de simulation sur plusieurs coups

Mator: Alors que dans d'autres challenges, on pouvait monter or sans simulation

Mator: Y'en a qui sont passé or sans faire de simu, là ??

pierre31: Salut, pour moi sans tenir compte de l'adversaire mais j'y planche.

domak: bon 8 à 2 contre le boss dans l'IDE... j'espère que ça va passer (que je suis pas trop spécialisé)

Gronahak: @Mator apparement sur le chat World j'ai vu un gars classé 200 en silver sans simu...

Mator: Ouais, en silver, mais en or ??

Gronahak: :grimacing:

pierre31: vu le niveau en or, il faut simuler le plus loin possible

Neumann: Pourquoi refuser de simuler ?

Mator: C'est pas la question de refuser

Mator: C'est juste que ca limite

SeebOmega: j ai deja finis #40 en js en heuristique si tu as une strategie (et pleins de if) tout est faisable

SeebOmega: -s

Bob: j'ai tous les ifs

Bob: c'est la strategie qui me manque

xurei: SeebOmega pour ce challenge ci j'en doute un peu quand même

Mator: :D

Eldritch: merci de laisser quelques ifs pour les autres

SeebOmega: xurei c est pareil sur tout les challenges si tu as un algo puissant, un moteur precis et une bonne eval tu va etre dans le top mais une counter strat de derriere les fagots est toujours possible (et on l a deja vu plusieurs fois)

Mator: En tout cas pour le moment y'a bcp de monde en Silver, et pas tant que ça en or....

Stilgart: pan le boss

Bob: faire un tableau de 27 et n'initialiser que les 5 premiers a cause d'une erreur de copy-paste, check


Bob: gg Stilgart

Stilgart: pas sur que ça passe :/

dbdr: gogogo Stilgart

Bob: tu veux pas le matraquer d'encore 2,5 points ?

Stilgart: on se neutralise avec ciaoo

Stilgart: j'ai un bon ratio contre le boss, mais je joue contre ciaoo :/

b0n5a1: il a l'air d'être passé lui

b0n5a1: donc il gêne plus ^^

Stilgart: il est où ???

Default avatar.png JBM: ne gold? :p

Stilgart: son run était pas fini, si ?!

Default avatar.png JBM: chépa, j'arrive que mnt

domak: j'arrive pour le défoncer...

b0n5a1: bah il était aegenté dans last battles et *pouf* plus là

Default avatar.png JBM: il est pas en silver en tout cas

Stilgart: ha, peut-etre que si, le mien est pas loin du bout

Default avatar.png JBM: ça m'a l'air bien parti

Stilgart: b0n5a1: je l'ai pas vu argenté justement

Default avatar.png JBM: hé mais

Default avatar.png JBM: traitre

Stilgart: pan le boss

Stilgart: par contre, ça fait monter personne

Stilgart: pour une silver, j'ai jamais vu ça

WhatTrickeryIsThis: c'était qui l'IA boss gold?

dbdr: ya un trou?

Stilgart: dbdr: non, c'esr super serré

WhatTrickeryIsThis: c'est quand même une sale teigne ce boss

Stilgart: bref, 250xp

b0n5a1: 0.2 dbdr entre boss et second...et le reste est serré

dbdr: gg!

Stilgart: et la team qui va remonter un peu

Bob: gg Stilgart

dbdr: yay :)

Bob: bon j'ai remonte mon pneu, je pensais aller faire un tour mais y a un vent a decorner les cocus

Stilgart: si t'es pas cocus, c'est bon :)

Bob: certes

dbdr: ya plus qu'a faire passer JBM

Bob: mais j'aime pas pedaler conter le vent

b0n5a1: ouais mais se prendre dans l'oeil la corne décrochée d'un autre c'est risqué

Default avatar.png JBM: oh moi ça viendra si j'arrête de procrastiner les vrais trucs utile

Default avatar.png JBM: là je suis sur l'automatisation de mon extracteur de logs

Default avatar.png JBM: pour faire des stats sur mes timeouts

dbdr: :D

Default avatar.png JBM: ceci dit, j'aurais un ranking bien meilleur sans timeout

Default avatar.png JBM: me dis-je le soir pour me bercer

Default avatar.png JBM: l'extraction automatique du code d'egaetan parait aussi avoir une bonne espérance de gain

egaetan: lol

Default avatar.png JBM: s'il a pas bluffé sur le fait d'avoir tout montré, comme de bien entendu

Default avatar.png JBM: tiens d'ailleurs pourquoi j'ai plus sa douce voix en bruit de fond

Default avatar.png JBM: ah mais il fait des streams de 30s le blagueur

Default avatar.png PAPS: Ceux qui Argent/Or vous avez cb de lignes de code ?

Default avatar.png JBM: j'en suis à 600

Oioi: ~250

Bob: mon dieu 440

Default avatar.png JBM: ça a explosé quand j'ai commencé à mettre des commentaires et des types

Bob: j'ai rajoute tant de trucs que ca depuis ce matin ?

Stilgart: PAPS: 710

Mator: Avec ou sans les TU ?

Stilgart: mais bon, j'ai facile 1/3 d'affichage de log dans le lot

Vry: 1000 ... mais 388 du début pour données / input

Vry: gg Stilgart

Mator: Moi 700 sans les TU

__mcts__: 450 pile mais facile 50 d'inutiles

Default avatar.png MehdiNECIB: What is the command to shoot ???

Vry: Aller domak !

Gronahak: /pew pew

Default avatar.png MehdiNECIB: Comment on fait pour tirer ?

Default avatar.png MehdiNECIB: direct dans le code ?

Default avatar.png JBM: on demande au prof

Oioi: automaton2000, what is the command shoot ?

Gronahak: Je suis #666 @Bob !

Automaton2000: il y a une raison de plus

Bob: nice Gronahak

Gronahak: Ah nan plus maintenant

Gronahak: ( des silver je précise )

Default avatar.png MehdiNECIB: "Écrivez le programme permettant de détruire les montagnes pour pouvoir attérir. Pour cela, tirez sur la montagne la plus haute." mais comment tirer, c sa le truc

Bob: c'est le souci des rangs comme 666 ou 42, tout le monde les veut

**Stilgart tire une carapace de !!! tortue !!! sur Automaton2000

Automaton2000: mais il faut aussi que je le fasse

Bob: MehdiNECIB: lis bien tout l'enonce

Bob: c'est marque dedans

Stilgart: Automaton2000: il faudrait, oui

Automaton2000: c'est quoi ton problème ?

dbdr: Bob #1 aussi ;)

Stilgart: Automaton2000: que tu n'apprends rien !

Automaton2000: et je suis toujours en wood 3

Vry: Mon bot a l'air plus fort après-midi ... il a fait une sieste le coquin ... je repousse pour voir !

Bob: dbdr: ah non moi j'ai pas ce genre d'ambition

Vry: #126 pour mémoire

Bob: bon je me sors les doigts et je vais faire une balade, ca me donnera peut-etre l'inspiration

ltDan: va pas trop loin quand meme

ltDan: et attention au claquage

b0n5a1: et lave tes doigts avant de sortir...ou t'aura une meute de chiens au cul

Bob: :clap:

Stilgart: huhu

Stilgart: gare quand Automaton2000 va la ressortir, celle là

Automaton2000: et avec un peu de respect

SeebOmega: oublie pas ton attestation bob

dbdr: faut le contexte

Kirbiby: allez boumagik

Kirbiby: encore 0.12

domak: ayé je suis tout doré...

boumagik: :)

BlaiseEbuth: Yo tout l'monde ! Automaton2000, AutomatonNN !

Automaton2000: j'en ai fait à la main

AutomatonNN: Tu es toujours en train de te pousser au taf ?

egaetan: gg domak

boumagik: j'ai mis quelques claques au bosse en passant

boumagik: il a pas +1 sur le premier comme tout à l'heure..

domak: J'ai même pas trop eu cette occasion alors que je menais 8 à 2 contre lui dans l'IDE

Default avatar.png MehdiNECIB: Je suis toujours bloqué

Kirbiby: lol

domak: merci egaetan... maintenant tremble!!!! ;-)

Default avatar.png MehdiNECIB: J'ai print ma réponse mais ca change rien de d'habitude

Kirbiby: 44.04 chacun , rage

Default avatar.png MehdiNECIB: ça bouge pas et ca tire pas

boumagik: 👌

WhatTrickeryIsThis: :clap: domak

WhatTrickeryIsThis: t'en fait pas c'est dur de monter dan s le gold

domak: danke ... et tout ça sans bras !!

WhatTrickeryIsThis: les doigts dans le nez ! Ah non...

WhatTrickeryIsThis: t'as un gros nez ceci dit

Stilgart: bon, Boulet, we need you !!!

WhatTrickeryIsThis: :hippo_noze:

egaetan: domak en plus tu perds même pas tous tes matchs

Von-Karma: hello

Stilgart: gg domak

Von-Karma: ya un interet a faire du code multithreadé pour le challenge ?

Stilgart: tu es passé au push, ou quelqu'un a été meilleur que moi en wagonage ?

Kirbiby: non t'as qu'un thread

egaetan: Von-Karma aucun à ma connassance

Von-Karma: un thread ?

Stilgart: Kirbiby: grrrrrrr

CopperFr: y a qu'un thread ?

BlaiseEbuth: t'as qu'un core

egaetan: un core

Von-Karma: ah ok

Stilgart: Von-Karma: ça peut, mais ton code est exécuté sur un seul coeur

Kirbiby: grrrr ?

Von-Karma: ca explique tout ^^

BlaiseEbuth: Tu peux faire de la concurence

CopperFr: un core et un core

Stilgart: Kirbiby: mon uttt je sais pas le coder en mono-thread

domak: ah mais t'es passé Stilgart, j'vaias pas vu... gg! Et en plus tu montes bien

Stilgart: d'où le grrrr

Kirbiby: j'ai fait un lapsus

Von-Karma: merci

Stilgart: domak oui, il y a genre 15 min.

Kirbiby: bon avoir le même score que le boss permet pas de monter ,je note

Stilgart: j'ai essayé de pousser, fait baisser un peu le boss, mais je suis monté tout seul

CopperFr: et y a pas d'hyperthreading ?

Kirbiby: ah voilà, merci

Von-Karma: CopperFr : apparement non

Stilgart: Kirbiby: tu vois que les 3 premiers digits du score

CopperFr: ah et on peut pas utiliser cuda non plus :(

Stilgart: et oui, parfois c'est frustrant d'attendre de voir si tu vas gagner ton prochain match pour être promi

Stilgart: gg en tout cas

Kirbiby: et maintenant je me fais déchiqueter

Von-Karma: C'est un peu trompeur quand en C on fait std::thread::hardware_concurrency(); ca renvoit 8

Stilgart: Von-Karma: c'est vraiment 8

Stilgart: mais c'est pas toi qui lance ton code :D

WhatTrickeryIsThis: copper viens faire le contest

WhatTrickeryIsThis: on va pas te taper

Vry: GG domak

Vry: Quel est ton secret ... j'ai choppé ton bot dans l'IDE avant que tu partes et je lui colle des tartes au popotame ...

Vry: Je rentre à peine dans le top #100

Stilgart: Vry: le mien, c'est de viser le gros score

Stilgart: ça marche mieux que si j'essaie d'être plus radipe (en scorant moins du coup)

Vry: Quand je suis la branche avec le plus gros score mon bot repousse le plus loin possible les potions ... et il se les fait volder du coup :upside_down:

Vry: *voler

boumagik: = x / rank

Stilgart: faudrait que je commence à gérer le vol de potion (enfin, l'antivol déjà)

Vry: Moi j'ai ça (à partir d'un BFS sans learn)

Vry: http://chat.codingame.com/pastebin/38e917db-c0cd-443f-9f63-9e0d4751f3f4

Stilgart: je fais rien sur l'op pour l'instant

Stilgart: j'ai refusé de croire que c'était obligatoire pour passer gold

Vry: Je lui fait un bfs de max 10ms pour voir ce qu'il peut faire

Stilgart: bilan, je suis passé de peu, et je finis mid-gold (ça sent un peu le hide en dessous)

Von-Karma: Pareil

Von-Karma: ah bah tiens on est classé pareil justement

dbdr: ya pas une centaine de hiders qd meme...

Stilgart: tu finis devant

Stilgart: j'ai gagner 50 places dans mes 30 derniers %

Stilgart: gagné*

Stilgart: dbdr: non, mais une vingtaine c'est possible

dbdr: mouais

Stilgart: quand tu commences contre aux, ça aide avec les scores ultra serrés qu'on a

Stilgart: *eux

Von-Karma: c'est quoi hide ?

Oioi: hiders, c'est-à-dire ?

dbdr: quel interet si tu vises pas top 3?

Oioi: Je prends la conversation en cours et je capte pas

Stilgart: des gens qui soumettent un bot mauvais pour cacher leurs idées

dbdr: et top 3 c'est tres limité comme public

Oioi: oh... merci

Von-Karma: merci

Stilgart: dbdr: même si tu vises top3 je suis pas convaincu

dbdr: oui

dbdr: à la limite un flag pour une feature

dbdr: pas un bot handicapé

Stilgart: bon, maintenant, il me reste deux problèmes à régler

Stilgart: 1. comment on fait 55 chars à CN

Stilgart: 2. comment on fait pour etre 8e

dbdr: mais c

dbdr: 'est une fixation ma parole :D

Stilgart: oui oui

dbdr: apprends le rust déjà ;)

Stilgart: c'est tellement pas possible dans ma compréhension des choses que ça m'obsède

BlaiseEbuth: Si on apprends un sort payant on récupère notre mise en plus de ce qu'il y'a déjà dessus ?

dbdr: je vais prétendre que tu répondais à ma dernière phrase

Stilgart: non

dbdr: c'est plus drole comme ça :D

Stilgart: vu que tu mets pas de mise là où tu apprends

Stilgart: dbdr: :D

BlaiseEbuth: Ah oui c'est sur les précédents

Default avatar.png JBM: tiens je m'étais jamais posé la question

Default avatar.png JBM: on peut compter sur la taxe pour financer un spell plus cher?

dbdr: pas sur le meme tour

Stilgart: j'ai codé que non, mais j'avoue ne pas avoir check

Default avatar.png JBM: ok merci

Default avatar.png JBM: ouais mon code fait non aussi, je découvre

xurei: Question optimisation (Java) : J'ai créé une pool d'états pour éviter de faire des new (~ x2 perfs). L'étape d'après, c'est de carrément travailler avec un gros tableau d'entier. Qqun sait si ca vaut le coup ?

Stilgart: j'imagine que oui (ça vaut carrément le coup en C++)

xurei: mieux qu'un tableau de struct en C++ ?

Stilgart: ça dépend

Bob: bon, encore un point et demi a choper

domak: désolé Vry, je me suis remis au taff et j'ai pas vu ton message. J'ai corrigé un bug: j'avais des CAST invalides car je testais mal mon inventaire. Sinon je fais rien d'extraordinaire: BFS avec LEARN (que le tomeIndex == 0), CAST et REST

xurei: parce qu'avec l'overhead de calculer l'index tout le temps, j'aurais pas cru

Stilgart: disons que c'est mieux (chez moi) par effet de bord

Stilgart: je range plus mes données, j'en profite pour faire des tables de précalcul, etc.

domak: Je vais juste chercher les tomeIndex > 0 si ils sont que en positifs

xurei: comme quoi pour les tables ?

xurei: je me suis pas bcp penché la dessus non plus ...

Stilgart: j'en ai une pour mettre à jour mes inventaires en fonction de l'id de l'action par exemple

Stilgart: je pense que c'est elle qui aide beaucoup

Stilgart: (je bricole un peu l'id pour gérer les taxes en cas de learn)

Bob: faire une estimation de l'adversaire et jouer en fonction ou bien integrer du learn au BFS ?

Bob: :thinking:

Kirbiby: leaaaaaaaaarn

Stilgart: Bob: learn

Von-Karma: learn

Bob: bon ok

Kirbiby: Bob fais tu du repeat aussi ?

Stilgart: et cast n si c'est pas déjà fait

Bob: Kirbiby: oui ca c'est fait

Kirbiby: cool

Bob: je caste toujours au max possible, en fait

Kirbiby: learn te pose même pas la question

Stilgart: Bob: fix ça alors

domak: définitivement : learn (au moins celui qui est gratuit)

xurei: Stilgart je vois pas bien comment tu te sers de ca... Tu stocke toutes les actinos possible sur tous les inventaires ?

Stilgart: c'est pas toujours le mieux de caster au max

Kirbiby: je cast au max aussi

Bob: ok ok

Bob: mise a jour de la todo list

Stilgart: xurei: mes actions sont des int, mes inventaires aussi

Maka: ligue hors sans prendre en compte le repeat : possible ? je stagne rang 353 en ligue argent :/

Maka: *or

Stilgart: donc quand je dois faire le nouvel état, j'ai juste dans mon tableau

Kirbiby: Maka :non

Maka: :'(

Stilgart: si le nouvel inventaire est -1, c'est que l'action n'est pas valide, sinon j'ai le nouvel inventaire

Stilgart: j'ai juste *à regarder* dans mon tableau

xurei: hmm je vois

Stilgart: (trop de ^W :p )

xurei: mais ca me fait penser que j'ai une opti a faire la dessus moi aussi...

Bob: on va essayer le cast N, c'est sans doute le plus rapide a rajouter

domak: Maka, dans mes résultats de solutions je vois des repeats. Après ça va de pair avec ta strategie de learn

Stilgart: Maka: il faut bien gérer repeat + learn

Stilgart: ou alors vraiment compenser en contrant l'adveraire, mais ça me parait bien plus difficile

Vry: Bon learn alors !

Stilgart: (vu que pour prédire l'adversaire, il faut gérer repeat + learn déjà)

Kirbiby: Hey Stilgart

Stilgart: oy Kirbiby

Kirbiby: Comment tu sais si un sort est castable en comparant deux ints ?

Stilgart: j'ai précalculé tour 1

Stilgart: mon précaclul total prends quand même 200ms :D

Bob: cette brutalite

Stilgart: (mais je fais pas mal de petits trucs)

Kirbiby: mais attends y'a cb d'inventaire possible ?

Bob: 1001 il parait

Stilgart: 1001

Kirbiby: c'est tout :o

Bob: comme les nuits

Kirbiby: t'as un tableau 1001*46 alors ?

Stilgart: C_14^10 pour être précis

Stilgart: qui fait 1001

Stilgart: (nombre de suites croissantes de [1..10] dans [0..4]

Stilgart: )

Stilgart: un peu plus

Kirbiby: okay je vois

Maka: Merci des conseils :)

Stilgart: 1001 * 99

Kirbiby: t'as brews + spells ?

Stilgart: j'ai 99 actions possibles pour mettre à jour mon inventaire, parait-il

Stilgart: j'ai tout ce qui peut faire changer mon inventaire (donc les taxes aussi)

Stilgart: d'ailleurs, je me rends compte que je peux optimiser ma gestion des taxes, tiens :)

Stilgart: j'en suis pas à 30 colonnes de plus

Kirbiby: je me rends pas compte si c'est moins couteux de faire ça ou continuer mes additions de 4 nombres

Oioi: stilgart : c'est plutôt le nombre d'applications croissantes de 1;4 dans 1;10

Stilgart: en effet, j'ai inversé l'ordre

Stilgart: j'étais trop occupé à pas me gourer sur l'ordre dans le C :)

BlaiseEbuth: Bah oui c'est évident... :nerd:

Stilgart: sinon, c'est 0..4 (tu as aussi le vide)

Default avatar.png JBM: [1,4] et [0,10] ?

Stilgart: ça doit le faire aussi

Bob: while (nextI0 >= 0 && nextI1 >= 0 && nextI2 >= 0 && nextI3)

Bob: :clap:

Stilgart: Bob: tu veux la mienne

Stilgart: x & 0xff pour reset les poids faibles

BlaiseEbuth: On dit plume

Stilgart: après, je comprenais pas pourquoi j'avais que des hash petits :D

Bob: ah ca ressemble a mon rest de tout a l'heure qui marquait toutes les potions comme fabriquees

Oioi: [1;4]->[0;9] ou [1;4]->[1;10]

VincentBab: humm comment on calcul le nb d'inventaire differents possible svp ? xD

BlaiseEbuth: 1001

Oioi: Comme tu veux, il faut juste qu'il y ait 4 éléments au départ, 10 à l'arrivée

Stilgart: VincentBab: avec une quadruple boucle for

Default avatar.png JBM: là c'est tellement petit que tu peux juste énumérer

**Stilgart ne fait pas son tour 1 dans la finesse

Kirbiby: On prend un papier, et on écrit 1 0 0 0, 2 0 0 0, ... 0 1 0 0, 0 2 0 0, ... 0 0 0 10

VincentBab: xD

dwarfie: une contribution a claquer par les profs des maths ... une ... : https://www.codingame.com/contribute/view/5711ae76355cbe214cc9d89823c14e69d855

Oioi: Non, c'est assez facile en fait

**dwarfie a voulu mettre pros mais profs ca marche aussi :D

VincentBab: oué quadruple boucle et je check si sum <= 10

Default avatar.png OldJohn: Trop simple, je faisais cela à 11 ans

BlaiseEbuth: Oh. De l'unicode...

Vry: Comme une brute VincentBab

Vry: http://chat.codingame.com/pastebin/2f96774c-6e4c-4068-90d7-829c9c049c9f

Stilgart: VincentBab: meme pas besoin en fait

dwarfie: BlaiseEbuth ... oui mais c'est meme pas ca le probleme ;)

Stilgart: la boucle 2, tu peux la faire de 0 à 10-i ;)

Stilgart: etc.

BlaiseEbuth: Non. Je sais. Néanamoins

Stilgart: (en supposant que l'indice de la boucle 1 est i)

BlaiseEbuth: -a

Stilgart: dwarfie: c'est une blague, non ?

Vry: J'ai optimisé au niveau de <= 10 jai fait un break au lieu de continue

Stilgart: en fait, c'est pas faisable

Stilgart: j'allais dire que c'est un strsub

Stilgart: mais tu peux pas mettre autant de digits de pi dans ton code solution, si ?

Default avatar.png JBM: d'ou la blague

Stilgart: Vry: tu codes à la reCurse

Stilgart: JBM: sauf que tu connais pas les validateurs

Stilgart: donc tu peux pas donner une version compressée

Stilgart: après, je sais pas ce qu'il vise westciles là

Default avatar.png JBM: les limites du systeme

Default avatar.png JBM: cf son autre

Stilgart: (ha, je regarde plus les contributions moi :/ )

Stilgart: sauf quand c'est pointé ici

b0n5a1: BlaiseEbuth fit un system avec du c++ dans ton clojure !

b0n5a1: (et même ça ça merderait ...)

Stilgart: c'est bien 100k la limite ?

b0n5a1: de code ? oui

Default avatar.png JBM: de mon souvenir oui

Vry: Il paraît ...

Stilgart: donc 300k si tu mets pi en BCD ça doit passer

BlaiseEbuth: Les maths c'est simple, mais les matheux s'obstinent à les rendre compliquées avec des termes pompeux et des notations imboufables. :(

reCurse: kesjéfait

Stilgart: reCurse: des break et des continue

Gronahak: @BlaiseEbuth ça dépend des maths x)

reCurse: Je pige pas

Stilgart: BlaiseEbuth: https://fr.wikipedia.org/wiki/D%C3%A9cimal_cod%C3%A9_binaire (c'est de l'info)

dbdr: les subs ont prit on sacré coup de lent

BlaiseEbuth: Stilgart je sais, je réagissais pas à ça ^^

reCurse: Ça se produit à partir de 100-150 soumissions actives

reCurse: On a atteint les 500 hier soir

reCurse: Bonne chance

Stilgart: reCurse: c'est juste que la phrase de Vry m'a fait rappelé à quel point j'avais été surpris par ta façon d'ajouter des tas de continue partout dans tes boucles

dbdr: 187 là

Stilgart: (pas en mal, hein ;) )

reCurse: Ah je savais pas

reCurse: Ne me dis pas que tu fais partie du culte des 12 niveaux d'imbrication?

VincentBab: culte goto

BlaiseEbuth: Stilgart 04:01PM VincentBab: avec une quadruple boucle for

BlaiseEbuth: :grin:

Stilgart: reCurse: non, mais je mets plus de choses dans la partie test du for

Stilgart: et accessoirement... cf BlaiseEbuth :D

reCurse: Aille

reCurse: Où est le marteau

Default avatar.png Ridakz: 1001

Stilgart: en même temps, c'est pas ma faute s'il y a 4 tiers dans ce jeu :D

reCurse: Tu ferais quoi si y'en avait 12?

Vry: Moi c'est le contraire, dès que je peux me casser je break ! :)

Stilgart: reCurse: soit un générateur de code dégueux, soit une fonction :D

reCurse: Ouf...

reCurse: T'as pas pensé à un itérateur? :sweat_smile:

Stilgart: en Haskell, ça s'appelle une fonction ;)

reCurse: Bon après si t'es déjà mal pris

Stilgart: dbdr: merci pour ton aide

dbdr: avec plaisir

Stilgart: 77-72, et c'est moi qui finit

Stilgart: c'est pas habituel comme game pour mon bot

dbdr: pourquoi?

Stilgart: ha mais j'ai réussi à faire 2 popos de suite

Stilgart: j'y arrive pas assez à faire ça, alors que ça aide beaucoup j'ai l'impression

VincentBab: i, j, k, l pour la quadruple boucle ? :D

Bob: mais ce calvaire pour sortir des 400 ?

Stilgart: VincentBab: a, b, c, d dans mon code, mais tu fais comme tu veux

lhm: Bob carremment j'y ai passé la journée XD

Vry: Ouais Bob y'a un gros marécage en Silver ...

Bob: "Timeout"

Stilgart: Bob: oui, à mon run de promo, j'ai cru que je sortirais jamais de cette zone là

Bob: ah mais c'est peut-etre pour ca en fait ?

Stilgart: et d'un coup, paf, 80e, puis 30e, puis 10e, puis 1er

Vry: lhm : mais tu vas paser !!!

lhm: Vry ouiiiiii enfiiiiin

lhm: haha

Vry: GG

Stilgart: après, mon bot est meilleur contre le bots forts apparemment

lhm: Le changement depuis mon dernier submit ? 1 magic number passé de 10 à 11 XD

Bob: ah bah oui forcement

dbdr: reCurse tu as investigué les timeouts?

Bob: j'explose le nombre d'etats que j'ai preallloues

Bob: :+1:

Bob: le vieux timeout en tour 3

lhm: t'as pas mis une stopwatch Bob ? Juste au cas ou ?

Bob: c'est pas une question de stopwatch, c'est une question d'allouer 2M etats et d'en creer plus...

lhm: ah pardon j'avais pas vu ton dernier message

Bob: :upside_down:

Stilgart: gg lhm

Stilgart: tu étais loin du boss ?

Bob: bon maintenant il suffit d'attendre

Bob: que le caramel

Bob: ait

Bob: delicatement

Bob: recouvert le run

lhm: J'étais classé 120ème je crois Stilgart, à -4 du boss il me semble

Stilgart: go go go NoZ-

lhm: Ca aide vraiment de garder les chemins en mémoire Stilgart ? J'ai l'impression que tout le monde fait ça mais j'ai du mal à voir comment m'en servir si je fais ça ?

Stilgart: les chemins ?

Palmipedus: faire un repush et croire que ca va passer, c'est un peu insane, ok les top sont partis donc je devrait gagner plus de matches mais je bas le boss que 60% du temps...

Stilgart: (on voit mes output sur stderr au fait ?)

reCurse: dbdr: C'est du côté du backend CG donc je peux pas investiguer grand chose

lhm: Non je ne crois pas Stilgart - mais il me semblait que tu en avais parlé dans le chat ? (ou alors je me trompe de personne)

Stilgart: j'affiche des chemins, mais je les recalcule

dbdr: ok

lhm: à chaque tour du coup

Stilgart: d'ailleurs, ça va finir par me faire timeout cette bêtise

Stilgart: je disais justement qu'il ne faut surtout pas stocker l'histoire complète dans l'état du jeu

lhm: ah d'accord ! juste le 1er coup qui t'a permis d'y arriver cest ca?

Stilgart: je stocke à l'envers

Stilgart: pour chaque noeud visité, j'ai son prédécesseur et l'action jouée

Bob: ah ca y est, sorti des 400

lhm: Oui donc tu as potentiellemeent tout le chemin, c'est bien ce qu'il me semblait

Bob: ca doit etre la zone avec toutes les AI qui rushent la fin de partie

Bob: je suis pas bon du tout contre ceux-la

Stilgart: lhm: oui, et j'en affiche plein sur stderr pour le debug, justement

lhm: Je n'ai aucun lien entre mes états, c'est peut être ça qui m'empêhce de faire des strats

WhatTrickeryIsThis: ce sera euler le boss gold?

Stilgart: moi je vote pour apo

Stilgart: (on a le droit de rêver :) )

WhatTrickeryIsThis: lui il compte pas, il copie les autres

WhatTrickeryIsThis: et il élimine dès fois

Stilgart: en l'état, je verrai bien une coupe juste en dessous de pb4

Stilgart: mais si c'est ça, rip la légende pour moi

Bob: ca serait vraiment bien si dans le mini leaderboard, le boss restait affiche quand on selectionne CGers you follow

BlaiseEbuth: T'as qu'à follow le boss

Bob: :clap:

WhatTrickeryIsThis: :skull:

Vry: Mais je me casse la tête pour savoir comment learn un sort sans péter mon BFS alors que dans mon state j'ai 6 bits pour les spells appris que je n'utilise pas ... :grin:

Bob: Vry :D

Vry: ... je vais faire un tour dehors pour me rafraichir les idées.

VincentBab: vous mettez la depth dans le hash du node ou pas ? xD

Bob: a priori ca doit pas etre necessaire

lhm: Bon courage Vry, j'ai essayé d'intégrer le LEARN ce matin (j'avais 5 bits de prêts dans mes états) j'ai fini par laisser tomber :/

Default avatar.png JBM: ça dépend de ce que t'en fais

VincentBab: pour dedoublonné

Default avatar.png JBM: de tes nodes, pas de tes hashes

Bob: ah pardon dans le hash

Bob: j'avais pas vu

**Bob se rendort

Kirbiby: si tu as déjà rencontré le hash c'était forcément à une depth <= non ?

lhm: je dirais comme Kirbiby

VincentBab: je m'en sert pour trouver le meilleur coup à jouer.. :D

Default avatar.png LewisSalik: Salut

lhm: o/

VincentBab: oui pas faut Kirbiby

Default avatar.png LewisSalik: Vous auriez des exercices a recommander pour s'entrainer a passer des entretiens ?

Default avatar.png TheophileLeparmentier: Bataille est pas mal je trouve

Default avatar.png LewisSalik: oke je vais essayer merci :)

Default avatar.png TheophileLeparmentier: Tu perds pas trop de temps à comprendre l'ennoncé :)

WhatTrickeryIsThis: tiens, egaetan solidaire avec moi :)

VincentBab: en fait je suis entrain de me casser la tête a essayer d'optimiser ma hashtable pour les doublons alors que je ferai mieu de bosser sur mon eval -_-

WhatTrickeryIsThis: lol, la revanche il me met 98 - 44

Default avatar.png jokovitch: vous faites des recherches jusqu'à quelle profondeur pour vos algo récursifs ?

BlaiseEbuth: 42

Bob: deja il est pas recursif

BlaiseEbuth: Bah la question est pas pour toi alors

VincentBab: BlaiseEbuth il calcul toute la partie sur le 1er tour trop fort :D

Bob: mais je dois descendre a 8-9 en general

Bob: bon, rajouter les casts 1..N-1 ca apporte rien de flagrant

BlaiseEbuth: VincentBab : Plus ou moins

Default avatar.png jokovitch: au delà de 5 je timeout systématiquement, j'ai donc un réel problème de perf

lhm: Vérifie que tu gères bien les doublons

Stilgart: VincentBab: mon algo actuel fait ça... ma coupe est trop forte :D

Default avatar.png jokovitch: merci pour l'info, je n'y avais pas pensé

Stilgart: donc j'arrive vraiment à calculer tout ce que je coupe pas (tour 1 only)

BlaiseEbuth: Ah. Moi c'est pas si compliqué.

VincentBab: oué mais tu coupe probablement des solutions meilleur

VincentBab: enfin dur a dire T1 car on connais pas les spell qui vont arriver

Stilgart: voil)

Stilgart: et en plus, le départ est assez générique

Stilgart: donc le graphe est petit

VincentBab: oué

Stilgart: quelqu'un a dit faire du MCTS au fait ?

VincentBab: Magus je crois

Stilgart: j'avais prévu ça au début, mais egaetan m'a convaincu de faire autrement

VincentBab: https://www.codingame.com/replay/506109343 Lol ce combo de pb4 sur les dernieres potions

Magus: ouai j'ai un mcts dans l'arène la

Magus: ça fait top 100 à peu près

Magus: pour un truc sans éval c'est pas mal :D

BlaiseEbuth: Moi j'avais prévu de faire du clojure, mais cg m'a convaincu que bah nan.

egaetan: Stilgart bonne décision

sanpas83: la solution est elle sur l'arbre....

Stilgart: wow, pb4 qui a 10 tier3 dans son inventaire

Stilgart: quel riche !

Stilgart: on peut pas faire "Brew id 2", on est d'accord ?

pb4: Ca serait bien pourtant :)

BlaiseEbuth: C'est quoi 2 ?

Default avatar.png jokovitch: non on ne peut pas, il utilise l'index dans le commentaire pour mieux comprendre la lecture

Stilgart: pour faire deux fois la popo à 20 points avec le full tier3 de pb4 :D

BlaiseEbuth: Beh la popo tu peux pas la vendre deux fois de toute façon

Default avatar.png jokovitch: c'est quoi tier3 ?

Stilgart: BlaiseEbuth: bah on pourrait

egaetan: les oranges

Stilgart: comme dirait JBM dans un stream, le client est un pigeon

Default avatar.png JBM: ^^

Stilgart: si les deux font la même potion en même temps, il achète deux fois

BlaiseEbuth: Ah ouai 1 + 1 offerte, au prix de 2... ^^

Default avatar.png JBM: avec 2c la prime d'urgence

Default avatar.png JBM: *×

Stilgart: jokovitch: l'ingrédient triangle jaune du contest en cours

BlaiseEbuth: Le fromage comme dirait l'autre...

Default avatar.png JBM: "tiens d'ailleurs"

dbdr: on pourrait mettre la moitié du prix, mais ça changerait rien au résultat

dbdr: ou 0 d'ailleurs

Default avatar.png JBM: si y'a 2x la prime d'urgence sur la meme potion vendue simultanement

Default avatar.png JBM: il en reste 3 ou 2?

dbdr: 2

dbdr: je crois

Default avatar.png JBM: ok j'ai le bug

Stilgart: tiens, c'est vrai que je la gère pas celle là

VincentBab: moi je gère meme pas les prime lool

Stilgart: pareil

Default avatar.png JBM: l'énoncé dit “can only happen 4 times during the game”

Stilgart: j'ai zapé le code correspond lors de mon portage :(

dbdr: ben faudrait déà savoir si l'adversaire va la faire ou pas

Default avatar.png JBM: mais que ça arrive à 2 joueurs en simultané, ça me parait ambigu si c'est 1 ou 2 times

Haashi: j'avoue que dans tes etats, si tu fais la popo 0, la popo 1 elle prend 3 de score supplémentaire

Default avatar.png JBM: ah mais c'est dit en toutes lettres dans les expert rules

dbdr: ah t'es en C++ Stilgart

Default avatar.png JBM: :+1: dbdr

Stilgart: dbdr: oui :(

Default avatar.png JBM: SHAME

Stilgart: oui :(

dbdr: battre pb4 pour son match de classement, quel holdup

pb4: grrrrrr

VincentBab: "Si les deux sorcières préparent la même commande avec un bonus d'urgence, deux des bonus de ce type seront consommés. S'il ne reste qu'un seul bonus, il est consommé et les deux sorcières reçoivent quand même ce bonus de rubis."

Maka: http://chat.codingame.com/pastebin/702c57b0-fe7d-4d82-a5c3-eaa14015495e

dbdr: grrr aussi, ça me donne pas de points

Default avatar.png JBM: 1er chois Maka

Maka: merci !

dbdr: bon si ça ruine ton run, c'est déjà ça

pb4: Instant-resubmit

Default avatar.png JBM: l'esprit de kovi est fort en toi

pb4: rhaaaa cette version est nulle

VincentBab: faut changer les magic number ^^

pb4: Trois submits de suite où je me prends une défaite au début

pb4: J'ai oublié de mettre un log(3) c'est ça !!!!!

dbdr: peut-etre que le niveau monte, aussi...

pb4: Oui il monte c'est sûr

dbdr: Psyho #33 avec son code de samedi

dbdr: ça fait un bon repère

pb4: Y'a takumi aussi qui submit peu

pb4: Il a été premier avec ce code je crois

VincentBab: perso j'ai pas resub depuis hier matin

Magus: quand sans faire exprès tu fais une IA sadique

Magus: https://www.codingame.com/share-replay/506131395

Magus: "vas y, j'attends que t'ai réuni tes ingrédients avant de te faire perdre"

pb4: tiens coucou dbdr :)

dbdr: :P

dbdr: 1-1

pb4: et celle là elle compte :joy:

dbdr: pfff, trouvé ma réponse en 30ms, mais timeout qd meme

Traquila: J'ai eu plusieurs fois le problème du learn en boucle

Default avatar.png jokovitch: mdr magus

Magus: non mais les timeouts en arène ouai c'est un peu n'importe quoi :/

Magus: on va finir par mettre une limite à 10ms

Agade: Essai 20ms dbdr tu manque de marge

dbdr: de fait on surestime facilement la valeur de 2x le temps

Eldritch: ah vous me rassurez y'a pas que moi qui ait des timeouts à la pelle malgré une marge de sécurité qui me paraît débile

b0n5a1: ouais dbdr ces timeouts sont violents alors qu'il reste plein de temps

Palmipedus: oui il y a des baisses de perf entre 20 et 30 ms sur un tour...

pb4: J'envisageais d'acheter le jeu, mais finalement je ne suis plus très sûr

dbdr: un jeu de plateau?

b0n5a1: à ce niveau là c'est plus de la baisse de perf, c'est de la connerie brute

**BlaiseEbuth se marre

b0n5a1: c'est juste n'importe quoi

VincentBab: vous utiliser beaucoup de ram dans votre code ? Jme demande si c'est pas les server qui swap

b0n5a1: VincentBab ça fait ça même hors contest sur du coc ou du puzzle à 2 balles parfois

Default avatar.png optplx: clairement je vois une diff quand je refacto la ram utilisée et quand j'y vais comme un porc

b0n5a1: et bon t'as droit à 768 Mo...t'en fais pas qu'en préallocation bourrine pendant la seconde du tour 1, y'en a qq uns qui le font probablement pour les MCTS ou autre pour être full perf (en plus d'avx et des intrinsics pour certains ^^)

b0n5a1: mais bon...hors contest ça fait un moment que ça déconne parfois donc bon...

dbdr: _Royale t'as du mal à monter aussi?

Stilgart: b0n5a1: je suis large, j'en suis qu'à 200Mo

_Royale: dbdr: je teste des trucs donc c'est sûrement mon code qui est nul

dbdr: ok :)

b0n5a1: ça va t'as de la marge Stilgart

Stefy06: j'ai un soucis bizarre, sur codingame, mon algo timeout en explorant 30 nodes, alors qu'en local en test il fait plus de 10k nodes en 45 ms

Stefy06: ça parle à qqun ?

Stefy06: je suis en c++

Traquila: DL la partie ou tu timeout

b0n5a1: lis qq lignes plus haut Stefy06 t'as la réponse

SeebOmega: Stefy06 tu as probablement un cas particulier ou tu tombes dans un cul de sac et tu sors rien

Stefy06: g++ main.cpp -std=c++17 -g je compile comme ça, je pense que ce sont les mêmes options que codinggame. Et pourquoi il met pas -O 3 ?

b0n5a1: à partir de 05:10 pm

Default avatar.png Ridakz: bah t'as pas le même pc que les serv CG

b0n5a1: woputain le -O3 qui revient sur le tapis :joy:

SeebOmega: mdr

Stefy06: ok

VincentBab: xD

Stefy06: apparemment pas le seul à avoir le soucis, je devenais fou ces dernières heures

b0n5a1: y'a une longue discussion la dessus Stefy06 (O3 et autres)

b0n5a1: sur forum

b0n5a1: va la raviver, nous on cherche le pop corn ^^

VincentBab: Stilgart je te dédicace ce code: return _m_to_int(_mm_add_pi8(_m_from_int(i), _m_from_int(j)));

b0n5a1: haha

b0n5a1: t'as mis le pragma O3 au moins ?

VincentBab: oui ^^

VincentBab: unroll-loops, omit-frame-pointer, toutça

xurei: bon je crois que j'ai atteind la limite en java pour mon algo...

xurei: Go ou C++ ?

b0n5a1: ouais + tes includes intrinsic, voire avx apparemment

dbdr: :popcorn:

b0n5a1: faut un plus gros pot de pop corn

VincentBab: C++ ^^

Neumann: Python

b0n5a1: C++ xurei pour timeouter aléatoirement à 30 ms, c'est rigolo tu verras...tu vas revenir à Java peut être

BlaiseEbuth: o/ 351062

plieuse: Coucou

Neumann: Je suis sur le webchat, tu devrais voir mon nick

BlaiseEbuth: Beh non...

Neumann: C'est ton client qui est nul

plieuse: j’ai fini mon MOOC sur le softwares testing ça m’a pris quatre semaines

VincentBab: parfois un clear() de unordered_set prend 20ms sur CG...

Default avatar.png JBM: meme sur pidgin on voit ton nick c'est 257832 qui trolle

BlaiseEbuth: Quel client ? Je suis sur le webchat.

b0n5a1: Neumann des fois chez moi y'a un nick et avatar de qqun qui disparaît sur webchat...faut que je refresh :grinning:

b0n5a1: y'a juste l'heure sur la ligne

BlaiseEbuth: Mais c'est vrai que t'as pas d'avatar non plus...

Traquila: bon je termine toujours dans les 50ème, je pense que je ne vais pas passer

Traquila: il faudrait peut être faire un BFS pour les learn

JesuScript: Yallllaaaaahhhh

Neozero: JesuScript le pseudo haha :D

JesuScript: Merki XD

Neozero: :)

WhatTrickeryIsThis: plieuse, tu viens là y à contest

Neozero: Question: lorsque l'on réussi un puzzle est ce que l'on voit TOUT les solutions dans le langage réussi ?

Neozero: J'ai l'impression que y'en à pas bcp.

WhatTrickeryIsThis: y à des gens ils ont l'option 'je publie pas ma soluce nha'

Mator: Par défaut c'est pas publié, faut cocher pour que ça le soit...

Neozero: ah okey.

Neozero: ah je viens de trouver la page ou l'on peut voir les autres langages (mais c'est lock). En JS y'a bcp moins de solutions qu'en C++. Ca explique aussi en partie.

plieuse: Non, merci

Vry: VincentBab : j'avais le problème sur ma table de hash 32Mo du coup je fais un malloc dans le main suivi d'une initialisation pour forcer le bordel a réellement allouer la table sinon je perdais plus de 25ms ... et parfois sur CG l'initialisation seule me coûte 5ms donc je le fait juste après mon printf :sunglasses:

b0n5a1: Neozero su tu veux unlock les sources publiés d'autres langages, faut que tu valide aussi dans les langages en question

Neozero: Oui je sais bonsai :)

Neozero: Comment on fait pour mettre en rouge comme toi ?

Neozero: La réponse.

b0n5a1: juste en tapant le nick (premières lettres + tab) comme ça : Neozero

b0n5a1: c'est automagique

Neozero: b0n5a1

b0n5a1: voilà

Neozero: b0n5a1: hey

Neozero: du coup y'a que toi qui voie ?

b0n5a1: tout le monde, mais moi en rouge oui

VincentBab: Vry: meme si tu l'initialise, si le server swap les temps d'accès vont être fortement ralentie

b0n5a1: bon déco pc boulot et dog time, ++

Neozero: b0n5a1 il faut mettre

Neozero: :

Neozero: ou pas ?

b0n5a1: non

b0n5a1: Neozero

Neozero: ah okey :)

Neozero: cool

Vry: Oui mais j'ai pas trouvé mieux ... et le faire pendant que le bot adverse travaille c'est rigolo.

b0n5a1: voilà c'est rouge (pourr toi)

Neozero: merci

VincentBab: si tu gère pas les collision il ya une astuce pour la hashtable, c'est de pas reset ^^

BlaiseEbuth: Les collisions élastiques

Vry: Si je gèere les collisions justement

VincentBab: ok en tout cas si tu as un flag true/false que tu reset a false, tu peux le remplacer par un int que tu incremente a chaque fois

Vry: Mais je suis content j'ai plutôt de bonne perf. actuellement : 180k node

Vry: J'ai pas de flag juste mon state et partant du principe que le state zéro n'existe pas :upside_down:

Vry: *en

VincentBab: ok ^^

dbdr: bon, c'est l'heure d'ouvrir la légende

Kirbiby: demain

dbdr: un jeudi pour une fois, ça m'arragerait

dbdr: :)

Kirbiby: samedi ça serait mieux

dbdr: tu peux toujours passer samedi

Kirbiby: C'est pas faux

Kirbiby: ou bien jamais

egaetan: je comprends rien aux bonus dns les tomindex

egaetan: qu'est ce qui est dans taxeCount ?

egaetan: quand j'ai ça en input

egaetan: 57 BREW 0 0 -2 -2 17 3 3 0 0 55 BREW 0 -3 -2 0 13 1 4 0 0 53 BREW 0 0 -4 0 12 0 0 0 0

egaetan: ça vuet dire quoi ?

BlaiseEbuth: Le nombre de bonus restant dans taxcount

Mazelcop: c'est les bonus d'urgence

BlaiseEbuth: la valeur du bonus dans tomeindex

Mazelcop: la première valeur correspond au nombre de bonus d'urgence +3

Mazelcop: la deuxième aux bonus +1

egaetan: j'ai une ligne ou il vaut 3 et une autre 4, ça veut dire quoi ce restant ?

Mazelcop: première ligne -> +3 deuxième ligne -> +1

Default avatar.png JBM: ah mais c'est dans les inputs ca

BlaiseEbuth: Il reste 3 3 et 4 1

Default avatar.png JBM: moi qui m'embêtait à le recalculer

Mazelcop: sauf quand il n'y a plus de bonus +3, dans ce cas la première ligne c'est les bonus +1

Default avatar.png JBM: (et avec bug)

Mazelcop: c'est quand même un sacré pataquès ce truc

egaetan: il reste 3 bonus +3 et 4 +1 ? c'est ça ?

Mazelcop: ouais

BlaiseEbuth: oui

jolindien: plouf

egaetan: ok merci pour les explications

Default avatar.png jokovitch: c'est quoi les critères pour atteindre la ligue or ?

Default avatar.png JBM: être mieux classé que le boss argent après 100% de tes combats

Vry: Mieux classé que la Boss à la fin du submit : 100%

egaetan: !gold

Default avatar.png CrazyHidenTalan: top 1000 bronze pour moi :D

Default avatar.png CrazyHidenTalan: lol

Default avatar.png JBM: bravo

Default avatar.png jokovitch: ok merci

Oioi: bravo :-)

Bob: gg

Bob: bon, finir de coder le learn

Default avatar.png JBM: plsu qu'a le debug

egaetan: JBM il y a des bugs quan don code en haskell ?

dbdr: :scream:

dbdr: pas possible, ça ferait une erreur de types

Default avatar.png JBM: non, je pense pas en ce moment

egaetan: JBM appelle du js dans son haskell

Default avatar.png JBM: à part le décompte des bonus ²voau² tout à l'heure

dbdr: prochaine étape, coder la victoire dans les types

Default avatar.png JBM: *évoqué

Default avatar.png JBM: jolie combo de typos

Bob: pas mal

dbdr: ds;iy! hiku!

Vry: lol depth 118 sur le premier tour ...

egaetan: Vry tu prunes trop

dbdr: 118 la partie est légèrement terminée, mais Vry continue à jouer tout seul

egaetan: il va bientot finir sa deuxieme potion

Vry: Mais y'a que 5 potions et il y a trouvé une solution depth 20 de toute façon ...

dbdr: avec ce pruning pas sur

dbdr: 118 REST

Vry: C'était pour chercher les chemins avec un max de potions

Default avatar.png HackingMachine: Salut

Vry: Il veut pas learn .. sal bot !

egaetan: ta sorciere est mal lunée ?

Oioi: Plus que 50 places à gagner... mais qu'elles sont dures

Default avatar.png HackingMachine: Vas y je participe

Bob: surprise, il y a des bugs

Default avatar.png HackingMachine: pfff abusé

JSanction: Parfois c'est amusant de corriger les bugs

Vry: lol la lecture dans le state état foirée ... j'appliquais un masque sur 5 bits avant de les décaler ...

Thyl: #116 bronze !

Vry: GG Thyl

Thyl: pas encor 50%

BlaiseEbuth: gg

Vry: Cool mon bot récupère le sort et l'applique avec repeatable !

Thyl: t'es quel ligue Vry ???

Vry: Silver

Thyl: ooh

Thyl: la chance !!!

Thyl: :)

Vry: C'est du travail acharné surtout ...

BlaiseEbuth: Juste de la chance...

RemyVase: Comment trouver une erreur qui n'est que dans la validation et pas dans l'ide ?

Thyl: BlaiseEButh tu bosses pas sur le challenge ?

BlaiseEbuth: Nan. Je boude.

egaetan: RemyVasea ajoute des logs et submits

Vry: Allez on submit le learn du sort #0 !

RemyVase: AHHH J'ai enfin 100 %

RemyVase: Mais il me manque encore 630 points.. Ces zombies me rendent dingues

Traquila: Vous en pensez quoi de faire un DFS juste pour la partie LEARN en début de partie ? De sorte à ne pas learn un sort en fonction d'une valeur mais en fonction des sorts déjà apris ?

Bob: Vry, moi je submit le full learn

Bob: on va voir qui gagne :)

Vry: Attend pétard mouillé ...

Bob: j'allais dire il a pas l'air en grande forme ton push

Thyl: c quoi un DFS ???

Bob: Depth First Search

Bob: c'est le "contraire" de BFS

Bob: dans un BFS, tu examines tous les etats a 1 coup, puis tous les etats a 2 coups, puis a 3, etc

Thyl: oui

Bob: dans un DFS, tu joues une serie de N coups jusqu'a une profondeur donnee

Thyl: à

Thyl: moi j'ai un DFS

Bob: puis tu "remontes" d'un niveau et tu joues un autre des coups possibles

Bob: etc

Thyl: un BFS c'est profondeur itérative ???

Bob: on peut le dire comme ca oui

Bob: l'interet du BFS c'est que ca te permet de trouver la premiere profondeur a laquelle tu vas remplir le critere de ton choix

Thyl: genre potion

Bob: par exemple ici si on fait un DFS, on va d'abord tester toutes les combinaisons qui commencent par CAST 78, puis toutes celles qui commencent par CAST 79, etc

Thyl: c'est ça

Bob: ca implique deja que tu as determine une profondeur a laquelle tu t'arretes, sinon tu peux aller super loin et tu n'as pas le temps de tout tester

Thyl: oui

Bob: et si effectivement tu n'as pas le temps de tout tester, tu vas peut-etre manquer la bonne combinaison

Bob: dans un BFS, on teste d'abord CAST 78, puis 79, etc

Thyl: ok

Bob: puis CAST 78 + CAST 79, CAST 78 + CAST 80, CAST 78 + CAST 81, CAST 78 + REST, etc

Bob: donc d'abord toutes les combos de 1 coup, puis toutes celles de 2, puis toutes celles de 3

Thyl: ok

Thyl: ouais

Zorg1: pourquoi mon bot monte alors qu je fais rien ?

dbdr: le génie

Bob: donc la, d'une part des que tu trouves une potion tu sais que c'est la profondeur la plus proche a laquelle tu pourras la produire

Thyl: ok

Zorg1: ah tiens Stilgert est passé devant moi

Bob: et d'autre part tant qu'il te reste du temps tu peux continuer a approfondir sans crainte de manquer une branche entiere

Thyl: ouais

Thyl: comment on dose le temp en Cpp

Zorg1: masi Stilgart est en C++

Vry: Mon bot est devenu paresseux ... il fait quelques itérations en BFS et il s'arrête au bout de 2ms tranquille ...

CopperFr: Vous êtes encore là-dessus ???

Thyl: normalement Bob un dfs ça passe la bronze ???

Zorg1: jusqu'à Lundi 10h CopperFr

CopperFr: vous êtes courageux

Bob: Thyl: utilise <chrono> et std::chrono::high_resolution_clock()

Thyl: merci

Bob: pardon high_resolution_clock::now()

Thyl: beaucoup

Thyl: !!!

Mator: Thyl moi je suis passé bronze avec un DFS

Bob: j'aurais tendance a dire qu'un DFS devrait pouvoir passer bronze

Thyl: tu gérer les learn ??

Bob: mais c'est comme pour tout, ca depend un peu de ce que tu fais avec :)

BigUP: Ha ! Il n'y a pas de fonction split() en C++ !?? C'est moche !

Bob: BigUP : bienvenue :D

BigUP: lo Bob

Zorg1: C/C++ c'est un peu la logique DIY

Bob: bon, la bonne nouvelle c'est que mon code avec le learn n'est pas pire que celui sans

Vry: :D

BigUP: Zorg1, ouais enfin dans la classe string, ils auraient pu coller ca

Bob: la mauvaise nouvelle c'est qu'en fait il learne que dalle T_T

CopperFr: oui faut faire du lex & yacc :D

Zorg1: t'as déjà une classe string, les vrais ils utilisent char*

Vry: :D

BigUP: Zorg1, c'est ce que je faisais... mais bon je pensais qu'on pouvait faire un truc propre :)

**Zorg1 ne dit rien

darkhorse64: http://chat.codingame.com/pastebin/7970858e-489b-4b77-b49f-e916cc2afed3

CopperFr: tu peux utiliser les QStrings

BigUP: CopperFr, ca existe dans Stl ca ?

Bob: non, c'est de Qt

Bob: il y a sans doute des trucs dans boost aussi

Bob: mais en gros il te faut une lib externe, ou le faire a la pogne

BigUP: ceci dit, je suis en wxWidget, il y aprobablement un classe wxString

CopperFr: oui c'est qt

Vry: lol j'ai trouvé ... la petite touche finale pour optimiser un truc qui empĉhe ton bot de REST ...

CopperFr: (mais ca gère l'unicode)

BigUP: arf wxString n'a pas de split() non plus

BigUP: tin je n esais pas pourquoi les mecs se sont senti obligé de redéfinir tous les types en mettant wx devant !

CopperFr: le QString a split

Bob: ah ben oui si j'essaye de caster autre chose que le sort appris, forcement

BigUP: ha oui ok wx a une classe wxStringTokenizer qui elle fait une sorte de split

BigUP: bon tout la question est de savoir si je met le bras encore un peu plus dans wx !? ;)

Bob: rien que le nom de la classe, il vend du reve

CopperFr: c'est comme strtok :D

BigUP: CopperFr, maintenant que tu l edit ...

BigUP: arf Mdr ! meme Java à la fonction split() !! ;) et pourtant ...

Zorg1: Java c'est Bien

CopperFr: tout le monde à la fonction split

Bob: il y a quand meme un petit cote satisfaisant a avoir un mauvais debut de push

darkhorse64: Il vous plait pas, mon sample ?

Bob: quand t'es dans les 600, tu gagnes un match et tu prends 100 places

Zorg1: normal

Bob: bon, et inversement aussi :D

dbdr: Java Bien Malaimé

CopperFr: en pascal y'a pas de split ca manque

Bob: en pascal y a pas de

CopperFr: (on peut utiliser les TStringList mais bon)

darkhorse64: Ce qui est vraiment plaisant, c'est d'être promu avec 0.01 de plus que le boss

Bob: tout court

Default avatar.png JBM: ah merde dbdr qui me coupe la blague sous le pied

dbdr: :angel:

CopperFr: y a quand même des string en pascal

Default avatar.png JBM: (et en mieux :grr: )

Bob: ouais enfin meme VB a des strings

dbdr: apprends-bien, petit scarabbé

Bob: meme C a une notion de string (rustique, OK) et des fonctions pour faire des trucs avec

Zorg1: #define string (char*)

CopperFr: même le basic amstrad a des string

Bob: avoir des strings c'est pas une gloire

CopperFr: si elle gère l'unicode c'est mieux

BigUP: bon bah je crois que je vais rester en c avec des bon vieux strok et strncmp

Zorg1: encore un qui est refractaire à la Glorieuse Méthode Object

BigUP: je suppose que le switch case "blabla" ca ne passe pas non plus en C++ ?

BlaiseEbuth: non

BlaiseEbuth: switch c'est sur des nombres

BlaiseEbuth: Après si toutes tes strings commencent différement tu peux faire switch(str[0]) et case 'a'

Mator: Y'a pas à dire Rust c'est pas mal quand même....

dbdr: ^

Zorg1: cette propagande

Mator: C'est objectif

CopperFr: si on aime se prendre la tête oui

BlaiseEbuth: bof

Mator: Moi quand je vois du CPP j'ai mal à la tête

Mator: Rien qu'en regardant

CopperFr: oui c'est normal aussi

Mator: Je préfère le C ....

CopperFr: oui Linus Torvald aussi préfére le C

BlaiseEbuth: "je" c'est pas objectif :grin:

Mator: OK démasqué !

CopperFr: Linus Torvald c'est objectif par contre

BlaiseEbuth: Torvald c'est un git

CopperFr: je crois que git a été développé en C

BlaiseEbuth: oui

dbdr: et en bash :)

CopperFr: pour éviter les développeurs C++ !D

dbdr: (python?)

BlaiseEbuth: Guido a rejoint microsoft ce qui prouve bien que python est nul.

BlaiseEbuth: C'est objectif btw

Zorg1: y a une certaine logique

CopperFr: ca dépend c'est quoi son salaire ? :D

Zorg1: y a une bourse où l'on cote le Benevolant Dictator for Life ?

BlaiseEbuth: Vous utilisez quoi comme fonction de hash ?

Vry: uint64_t i = (state&MAX_HASH_VALUE) ^ ((state>>22)&MAX_HASH_VALUE) ^ ((state>>44)&MAX_HASH_VALUE);

BlaiseEbuth: Ah du maison ^^

Vry: DIY

Zorg1: :D

Vry: C'est méga dur la ligue Silver ...

Vry: Mon bot à l'air de bien dépoter et pourtant ça passe pas ...

Zorg1: va falloir sortir la lime

Vry: Ou la dynamite ???

Zorg1: la nitro à la Mad-Max

Julius2k17: ca fait 2 j que je m'acharne a faire un truc plus évolué mais je bats tjs pas mon bot bronze :sweat_smile:

Vry: Je pense qu'avec le learn (x1) dans le BFS ça allait tout déchirer ... ben nan en fait.

Vry: *pensais

Traquila: non et même en *4 :p

Here_s_Chopi: Julius2k17 : même chose, j'ai fais 6 archis différente rien à faire

Traquila: Je learn 1 fois sur 10 partie en cours de jeu

Traquila: Et encore des fois c'est juste pour récuperer la taxe que le learn est choisi

Vry: Bon ça timeout à mort dans le submit ...

BlueScreen: salut à tous,

Est-ce que quelqu'un s'y connaîtrait en classification par distance ?

BlaiseEbuth: knn ?

Default avatar.png OldJohn: Nearest Neighbours ?

BlaiseEbuth: C'est ce que je demande ouai...

Julius2k17: moi je learn au début jusqu'à 6 sorts et après je débute la recherche

Julius2k17: mais mon graph est pas encore fiable..

LuckyJ.: Hello la team!

En C++, je ne peux pas include boost ou ya un workaround quelconque pour que ce soit possible?

BlaiseEbuth: Non.

LuckyJ.: Je voulais utiliser boost:hash_combine, je vais trouver une autre solution, merci :D

LuckyJ.: https://www.boost.org/doc/libs/1_35_0/doc/html/boost/hash_combine_id241013.html

LuckyJ.: ça devrait le faire en fait :)

BlaiseEbuth: Ces gens qui posent des questions pis qui s'barrent si ils n'ont pas de réponse dans les 10 secondes...

BlaiseEbuth: Automaton2000 ! Révolte !

Automaton2000: ça m'a l'air pas mal

egaetan: Une étude dit qu'ils preferent les themes sombres

BlaiseEbuth: egaetan ?

egaetan: oui BlaiseEbuth ? tu as attendu ?

BlaiseEbuth: Attendu ?

Lysk: hahaha

Lysk: plus de 10s

BlaiseEbuth: Quand ? Où ?

BlaiseEbuth: Sur ton stream ?

egaetan: non

BlaiseEbuth: Bah je comprends pas alors. :expressionless:

Vry: mouhahahahaha

R4N4R4M4: Vos nodes font quelle taille ?

R4N4R4M4: J'en suis à 6800 o, c'est trop ? :D

Haashi: hein

BlaiseEbuth: Tu m'expliques egaetan ? J'ai plus de 10 secondes.

Haashi: 6800 octets ??? ca me parait énorme

egaetan: R4N4R4M4 64o

R4N4R4M4: GG egaetan

Traquila: 64 bits

R4N4R4M4: MEF

R4N4R4M4: MDF

Vry: Wow ...

R4N4R4M4: MDR

R4N4R4M4: Mince clavier décalé

Vry: J'étais à 2k dimanche et je pleurait ...

Vry: *pleurais

R4N4R4M4: Je suis à 6k tu crois que je fais quoi ?

Haashi: a mais 6k noeuds dans ta simu ?

Vry: La j'ai 16 octets

Traquila: tu dois avec le grimoire et les sorts dans tes nodes j'imagine

Vry: 16 octets : node BFS + state

Vry: Je ne touche pas aux inputs sauf en lecture

Zorg1: 6Ko pour un noeud

Zorg1: le genre de gars à nous faire des tables de BdD à 300 colonnes ^^

egaetan: R4N4R4M4 remplace ton state par les entrees en chaine de caractères

egaetan: c'est plus petit

egaetan: et tu reparse à chaque fois

Zorg1: ^^

R4N4R4M4: C'est parce que j'ai tout l'état dans le node

egaetan: nous aussi R4N4R4M4

Vry: Ben oui, tu as ajouté quoi de plus que les input ?

Zorg1: les clés de hash

b0n5a1: bah 6 kilos

Zorg1: il hash 2 octets sur 3 long

R4N4R4M4: Bonne question, ça va m'occuper la soirée d'y réfléchir :D

Vry: Ce qui me prenait de la place c'est le tableau des 46 casts potentiel de chaque joueurs

R4N4R4M4: Ben voilà j'ai ça

Vry: Mon BFS ne fait pas de learn donc je le remplace par un int64 pour l'indicateur castable et hop c'est dans la poche

R4N4R4M4: J'ai une liste pour stocker 120 items et chaque item fait 24 octets, c'est sûrement ça

R4N4R4M4: Je devrais sortir tout ça, c'est clair

R4N4R4M4: Mon BFS, je sais pas trop quoi en faire, il met 1ms pour tourner

R4N4R4M4: du coup je peux faire des BFS à depth 2 c'est tout

egaetan: Vry un long ?

Vry: C'est exactement le problème que j'avais R4N4R4M4

R4N4R4M4: et tu l'as résolu ?

Vry: 40bits pour être précis ...

egaetan: R4N4R4M4 met que l'id dans l'etat

Vry: Oui R4N4R4M4, je suis passé de 2k à 16 octets

egaetan: suelement ce qui bouge

Vry: si tu vires le learn de ta recherche

Vry: les brews sont fixes

Vry: les casts sont fixes

Vry: donc ça sort du bouzin

egaetan: et tu fixes en silver

**egaetan encourage Vry à coder le learn

Zorg1: le learn c'est très rentable

Mazelcop: j'ai pas le learn dans mon search perso

Zorg1: mais tu fais des learn quand même

Vry: egaetan : j'essaie différente variante mais ça passe pas mieux

Vry: Je fais 7 learn au démarrage + un learn par bfs mais bof

**egaetan enleve le learn de son search

Traquila: J'ai à peut près la même chose Vry

Mazelcop: doit y avoir moyen de trouver des heuristiques magiques pour les learns du début

Vry: Possible Mazelcop

R4N4R4M4: Je simule 2 depth de learn et je fais le BFS après

Mator: Pas la mienne en tout cas :D

R4N4R4M4: Je pense partir sur MCTS, mais j'hésite

Traquila: J'ai un calcul de valeur sur les learn, mais je pense que ce n'est pas vraiment efficace car ca ne prend pas les learn déjà acquis

Traquila: Par exemple un -4,0,1,1 n'a pas la même valeur si tu as learn un 4,0,0,0 avant.

Default avatar.png Matt956: Salut, vous êtes sur quoi comme exercice la ?

mrBen: Sur le challenge

Julius2k17: je prends que les learn qui filent pas des noeuds au cerveau de mon algo

R4N4R4M4: Ha ha

RemyVase: Quelqu'un a un bon lien pour comprendre le principe de simulation et le fait de prendre le meilleur choix ? Je suis un peu perdu avec tout ca ahahah

R4N4R4M4: On est tous perdus:D

Traquila: RemyVase https://fr.wikipedia.org/wiki/Algorithme_de_parcours_en_largeur

Zorg1: allez j'essaie de faire N learns au début, voir ce que ça fait

RemyVase: Ah ca me rassure ! J'ai déjà voulu faire plusieurs puzzles ou il fallait simuler plusieurs actions et trouver la meilleur et chaque fois je me suis retrouver face à un mur

RemyVase: Merci Traquila !

Bon[]Crayon: https://www.redblobgames.com/pathfinding/a-Il y a aussi star/introduction.html

R4N4R4M4: Remy regarde là : https://youtu.be/eoAFuf1HA3c

Default avatar.png JBM: lol je clique sur stream, "tiens je vais voir ou en est thibpat"

Julius2k17: Zorg1 g fait ça et je trouve ca pas mal

Default avatar.png JBM: il en est a "bye"

Default avatar.png JBM: remboursez

Default avatar.png JBM: je sais pas combien de temps il va laisser tourner sa mire

RemyVase: Je prend note de tous ces liens ! Merci à vous !

BlaiseEbuth: Morph !

Default avatar.png Liora: Mon code est drole, un tour il me dit "fastest path found at depth 98" et le tour suivant c'est "fastest path found at depth 12"

Zorg1: cette pub pour télé R4

Haashi: depth 98, doubt

b0n5a1: RemyVase https://www.geeksforgeeks.org/ -> algorithms t'y trouveras des trucs aussi

R4N4R4M4: Qui fait un MC ?

Default avatar.png Liora: ouais c'est sque je me dit aussi, surtout quand 3 tours plus tard j'ai une potion

egaetan: R4 il a streamé en C sans rien dire à personne !?

BlaiseEbuth: R4 beaucoup de gens en bronze

R4N4R4M4: LOL Zorg1 :D

Default avatar.png JBM: cte hideur

Vry: R4N4R4M4 : j'ai tenté un MCTS mais bof ... y'a du débit en node mais bof ... AMgus a bien réussi par contre !

Vry: *Magus

R4N4R4M4: J'ai entre 800 et 1000 parties complètes, c'est suffisant ?

BlaiseEbuth: Vry : R4N4R4M4 parle pas de MCTS mais de MC. Fixe ta terminologie. :grin:

Magus: je fais pas des parties complètes, je m'arrête quand il n'y a plus de potion sur le plateau

R4N4R4M4: Je voulais dire MCTs (avec UCB)

Magus: et je ne rajoute pas spell/potion

Traquila: R4N4R4M4 il est super propre ton code

R4N4R4M4: Merci Magus

Magus: en moyenne ça fait des rollouts de 70 tours, et j'en fais entre 4000 et 5000 en 40ms

R4N4R4M4: Justement dans ma simu, j'ai un peu galéré pour rajouter les potions quand y en avait plus

Magus: après ça fera pas légende, mais ça me faisait marrer de faire un code sans éval

Mator: Question : on a qqe part dans les inputs le nbr de BREW qu'à fait l'adversaire ?

Vry: Non

Zorg1: tu le déduis facilement

Mator: Fouck :/

Zorg1: chaque fois que son score change )> une potion

Mator: Faut coder koi......

R4N4R4M4: Merci Traquila

Zorg1: je l'ai codé aussi pour moi ^^

Magus: ça va c'est pas trop dur à détecter le changement de score :D

Mator: Je crois qu'il va falloir que je gère ça....

mrBen: c'est possible de passer Or sans prende en compte l'adversaire ?

Mator: J'ai qqs fin de jeu très cons

TetraktysPhi: Mator: tu le déduis, par son score (si tu brews) ou les potions changées

Mator: En fait, moi c'est qd j'ai *arrêté* de prendre en compte l'adversaire que je suis passé Or.....

egaetan: je compte pas ses potions, il est toujours en retard l'autre

R4N4R4M4: Magus, je vais tenter comme tu dis, mais je suis par contre pas sûr d'arriver à 5000 parties :D

mrBen: ^^

R4N4R4M4: Tu penses que 1000 ça peut être rentable ?

egaetan: R4N4R4M4 tu stream en ce moment ?

Magus: aucune idée, 1000 parties complètes c'est long

R4N4R4M4: egaetan, je suis en privé sur FB, mais je publierai su youtube plus tard

Magus: je sais pas si c'est mieux de rollout des parties de complète ou de faire comme je fais

Magus: mais j'avais la flème de compléter le plateau

BlaiseEbuth: R4 j'ai eu peur, j'ai cru que t'avais supprimé ta meilleure vidéo ! Mais elle est en "non répertoriée". Ouf

Magus: par contre, ce que tu fais c'est pas un MCTS

Magus: ça s'appelle un ISMCTS

Magus: (quand tu complètes l'inconnu par du random)

R4N4R4M4: Si je coupe les parties comme toi Magus, ça pourrait peut-être monter à 1500 / 2000

Magus: je l'ai utilisé sur Locam

R4N4R4M4: Ah je connaissais pas ISMCTS, du coup, je couperai à la fin des potions

Magus: bah le ISMCTS tu peux le faire sans faire exprès :D

Magus: c'est pas très compliqué

R4N4R4M4: Mais c'est bête j'ai perdu pas mal de temps pour intégrer l'inventaire des potions du referee

Magus: bah c'est peut être mieux que ce que je fais

Magus: j'ai pas testé

Magus: je sais pas combien de rollout je pourrais faire avec mon code en faisant comme ça

Magus: je sais juste que je peux faire environ 300k tours (moi + l'adversaire) en 40ms

R4N4R4M4: J'en suis loin : 100k

Haashi: je suis atteint de la flemme gold

R4N4R4M4: Mon live FB a coupé, vous pouvez redevenir pas sérieux :D

Haashi: des que j'arrive gold dans une arene ou un contest, je deviens flemmard et je fais plus rien :(

Vry: Aides nous alors !

Matt956: T'as de la chance Haashi moi j'ai la flemme Wood xD

Vry: Et là bizarrement je suis dans une phase où des trucs qui marchait foirent ...

Orabig: c'est vrai que 10 jours c'est long. Grosse flemme ici aussi (2/3 silver). Comme quoi, ca arrive à tous les niveaux :D

Zorg1: oui grosse flemme faudrait que je code un truc pour voir mais là bon :(

nourse: y'a moyen de configurer le tsconfig de codingame quand on passe par typescript ?

R4N4R4M4: Repose toi Zorg1 t'es déjà bien assez haut dans le classement

Zorg1: bien tenté mais non :D

Default avatar.png JBM: t'es pas assez haut?

Default avatar.png JBM: prétentieux

Julius2k17: Vry je me repose sur mes TU

Vry: Et le referee ne veut plus mes lignes ...

Vry: Vry has not provided 1 lines in time.

Vry: Alors que je balance le premier LEARN qui passe ...

Zorg1: si tu mets trois plombe à la lui fournir aussi. C'est un referee pressé

Julius2k17: oué les potions refroidssent sinon

lunaticPenguin: hello, vous stockez quoi dans vos états ? j'ai l'impression de mettre trop de trucs et le debug me rend fou

Julius2k17: avec ce contest on va pouvoir se faire embaucher chez amazon

Vry: Problème de temps réponse sur les serveurs ?

Mapapin42: Hello, comment afficher notre temps d'execution svp ?

Stilgart: en quel langage ?

Mapapin42: python pardon

Stilgart: aucune idée :)

Mapapin42: :'(

Vry: Ouais c'est ça en plus ...

Stilgart: mais bon, il doit bien y avoir quelqu'un ici qui connait le nom de la bonne lib python

Karang: aucunes idées mais google sait: https://www.programiz.com/python-programming/datetime/current-time

Mapapin42: Merci

Stilgart: import time clock_gettime(CLOCK_HIGHRES)

Stilgart: sinon, ça risque d'être moyen en terme de précision

Karang: on a besoin d'une clock highres pour timer du python Oo ?

Stilgart: (une clock précise à la seconde, ça va pas t'aider à mesurer 50ms)

Stilgart: Karang: tu crois pas que je suis allé lire la doc quand même :)

Mapapin42: :)

Mapapin42: Merci

mrBen: pour la lib standard de Python, Python Module of the Week (https://pymotw.com) est une très bonne ressource

Stilgart: CLOCK_REALTIME c'est peut-être moins bourrin

Stilgart: (pourquoi ils ont foutu ça en DERNIER dans la liste ?!)

Stilgart: https://docs.python.org/3/library/time.html#time-clock-id-constants (ladite liste)

egaetan: sinon il y a le méconnu print("Your program didnt give an answer")

Stilgart: avec ça tu peux clairement viser le top1

Stilgart: en partant du bas du classement, mais ça reste un top1

mrBen: sinon, perf_counter() doit fonctionner

mrBen: https://docs.python.org/3.8/library/time.html#time.perf_counter

Stilgart: Mapapin42: évidemment, c'est "time.*" partout

Stilgart: j'avais oublié que les import marchaient comme ça en python

Vry: Je vais arrêter le massacre, ça passe pas ça passe pas !

Vry: Tant pis

Stilgart: mrBen: c'est surement un raccourci pour ce que j'ai mis plus haut d'ailleus

Stilgart: Vry: tu gères le cast n et le learn ?

NotwenCaasi: time_ns mesure le temps en nanosecondes depuis python 3.7 apparemment

Vry: le cast oui, très bien même

mrBen: en gros ouais, c'est une fonction qui ce dermerde pour trouver la meilleur clock dispo selon l'environement d'execution

Vry: le learn j'en fait un nombre fixe au début

Stilgart: fix ça alors

Stilgart: les learns c'est utile tout le temps en fait

Vry: et j'ai essayé de l'intégrer dans le BFS (un par path) mais bof

Stilgart: NotwenCaasi : nan, c'est du bullshit ça

Vry: mais ça donne rien de bien concluant en fait

Stilgart: même la highres elle est pas aussi précise

Vry: là je ne comprends pas ce qui ne passe pas, j'ai l'impression d'avoir un peu tout essayer

Stilgart: un clock quand c'est précis à la microseconde c'est déjà bien

Stilgart: Vry: les learns dans le bfs

Vry: Et en plus je n'ai plus assez de temps à passer sur le contest.

Stilgart: viser deux popos d'un coup ?

Stilgart: histoire de garantir un bon follow up après le 1er brew

Vry: J'ai tester de viser deux popos (de prendre le chemin qui rapporte plus de points)

Vry: mais le bot se fait voler les popos par l'autre du coup

egaetan: et pourtant Vry c'est la méta

Stilgart: changer l'ordre du bfs pour faire les brews le plus tôt possible

Vry: mais les brews je les vois dans le BFS

Stilgart: le brew c'est la 1re action que je traire quand je croise un noeud

Stilgart: Vry: oui, mais non

Stilgart: comment expliquer

Vry: Moi aussi c'est les premiers "fils"

Stilgart: BREW + CAST c'est pareil que CAST + BREW, on est d'accord ?

Stilgart: ok, dans ce cas, ton BFS va garder le BREW+CAST normalement

Vry: Oui

Stilgart: vu qu'il devrait être traité avant le pendant en CAST+BREW

Vry: J'ai compris, c'est bien le cas je traite en premier les brews

Zorg1: BREW+CAST c'est pareil que CAST+BREW ?

Stilgart: en terme d'état, si tu simules pas l'adversaire, oui

BrainSolver: le BREW peut nécessiter le CAST

Vry: Oui dans le cas où tu n'as pas besoin du cast

Zorg1: ah oui ok

Stilgart: sauf si le cast permet de faire le brew, en effet

Vry: Ou sinon il me faudrait une gestion intelligente du learn car un nombre fixe en début ça marche pas mal mais pas toujours ...

egaetan: mets 7

dbdr: avec un bon random...

Matt956: ça se recharge comment les casts ?

Zorg1: #pragm good-random

Default avatar.png JBM: que tu auras bruteforcé pendant la première seconde bien évidemment

Zorg1: avec un REST

Stilgart: avec un REST

dbdr: karliso il learn 5 direct il est top 4

**Stilgart too slow

Zorg1: championnat de typewriting

Matt956: Et ça les rechargent tous, ou juste 1 ?


[CG]SaiksyApo: Tous

Zorg1: tous

Zorg1: zut :(

Matt956: Merci

Stilgart: dbdr: mais learn t'il vraiment 5 direct ?

dbdr: j'ai bien l'impression

Stilgart: si ça se trouve il trouve à chaque fois un best path avec 5 learns d'abord

dbdr: pas vu d'exception

Stilgart: (ce qui est crédible)

dbdr: toujours le 0

Stilgart: ha

egaetan: dbdr à chaque fois le 0 ?

Haashi: je fais pareil

Haashi: mais pendant 10 tours

dbdr: c'est ce que j'ai vu

Haashi: peut etre que 5 c'est plus opti

egaetan: ça lui laisse gav de temps pour revert la seed

Stilgart: en même temps, plus ça vient, et plus je me dis que tous les spells repeatables se valent

Haashi: et sans rire, quand j'ai fais ca, je suis passé de top 200 a top 80 au a l'ouverture du silver

Stilgart: egaetan: heu, c'est quand même pas pété à ce point là ?

egaetan: Stilgart si, mais il faut être costaud.....

dbdr: c'est qui le pro du reverse?

Haashi: egaetan tu penses qu'on reverse la seed ??

Haashi: peut*

dbdr: tout le top 20 a reverse

b0n5a1: ça déjà été fait

Stilgart: egaetan: nan mais c'est quand même pas une congruence linéaire le random de java rassure moi ?

Haashi: ?????

Stilgart: ils sont pas cons à ce point là ?

egaetan: la moitié de la Gold la reverse

egaetan: pas vous ?

Haashi: mouais vous exagérez un poil je pense

Bob: autant dire que l'autre moitié a zéro chance

dbdr: c'est vrai que le niveau monte

Exhaustif: ca veut dire quoi reverse la seed ?

Haashi: finalement le fog of war c'est pas mal

Haashi: ahah

Zorg1: trouver la seed du RNG

Stilgart: Exhaustif: savoir à l'avance ce qui va tomber

Default avatar.png JBM: "savoir quels sont les sorts et potions à venir"

Exhaustif: omg ....

Stilgart: voilà...

Stilgart: normalement, avec un random raisonnable, c'est pas possible à l'échelle du jeu

Haashi: après

Haashi: j'y crois un peu

VincentBab: eux c'est un troll ? :D

Zorg1: recurse avait fait un PM sur cette technique pour C4L

Haashi: parce que sur certains replay

Default avatar.png JBM: ça me parait et faisable et pas si intéressant en fait

dbdr: de fait ça aiderait mais moins qu'a c4l

Stilgart: Zorg1: à C4L tu avais plus de temps

Haashi: des fois ils combotent avec une nouvelle pop

Haashi: je me suis dit "wah la chance"

Stilgart: et plus de trace de random

Haashi: mais bon...

reCurse: C'est impossible maintenant ils ont changé le seeding suite à ça

Stilgart: (quoique...

Stilgart: )

reCurse: Ne me remerciez pas tous en même temps

Default avatar.png JBM: le rapport avec le seeding?

Stilgart: merci reCurse

dbdr: faisons une queue

reCurse: Il est passé de 1 milliard à 2^64 possibilités

Stilgart: Automaton2000: ferme tes yeux

reCurse: Le bruteforce pas trop génial

Automaton2000: mais c'est plus pour le fun ?

Default avatar.png JBM: pas offline, donc

Default avatar.png JBM: mais on te donne 12 congruences d'ordre connu

reCurse: J'ai bien dit brute force

Default avatar.png JBM: ce mot ne signifie pas la même chose pour tlm

reCurse: for (int seed = 0; seed < ...

reCurse: Ca te va?

Default avatar.png JBM: quand tu parles a magus, ca veut dire a peu pres pareil qu "coder"

reCurse: Est-ce que tu parles à Magus?

b0n5a1: lol

dbdr: on parle toujours un peu à Magus

Stilgart: reCurse qui se fait traiter de Magus :fearful:

Default avatar.png JBM: oui c'est plus clair comme ça :)

Stilgart: c'est un coup à détruire l'univers ça

dbdr: while (true) { long seed = new Random().nextLong(); // check it

dbdr: c'est plus futé /s

Stilgart: après, ça empêche pas ce que si générateur pue, tu puisses trouver la seed

reCurse: Oui mais là faut être plus malin que bruteforce

reCurse: Et je nage pas dans ces eaux là

egaetan: le générateur ne pue pas

Matt956: Un cast qui n'est pas disponible disparait de la liste des actions ?

egaetan: 48bits d'entropie

dbdr: 48 < 64

b0n5a1: Matt956 tu peux configurer le fait de toujours les afficher dans les options

Matt956: Yes, merci

Stilgart: ouais enfin sur 20 valeurs et 50ms x 100 c'est trop short

reCurse: Et t'as pas des tours gratos comme dans c4l

Exhaustif: enfin si tout le monde prend les 7 premiers learn ... :D

Matt956: Mais du coup, comment je sais s'il est dispo ou si j'ai besoin d'un rest ?

egaetan: les 5 premiers ou tu leran

Steuh: Admettons qu'un gus parvienne à reverse la seed, l'équipe CG laisserait son code gagner ?

Default avatar.png JBM: ben pourquoi pas?

Default avatar.png JBM: c'est pas interdit

b0n5a1: et pourquou pas, t'enfreins pas les règles

Steuh: oh j'ai pas d'avis de ce niveau, c'est justement pour savoir

reCurse: Ok soit pour les 8 premiers tours, ça te donne 400ms si t'aimes les timeouts. Good luck

dbdr: + 1000

Default avatar.png Rossb0b: C'est quoi votre classement par curiosité

Stilgart: Steuh: pour moi c'est fair

reCurse: -1

Haashi: t'as pas tant d'infos que ça, je vois mal comment en 10 infos (5 sort du grimoire, 5 popo, voir 5 de plus si tu learn 5 fois) t'arrives a revent un rng

Haashi: doit forcément y avoir des collisions sur ce sous ensemble

egaetan: 42*41*40*39*38*37*(36*35*34*33*32)

Steuh: Stilgart pour moi également, mais je comprendrais que ça ouvre un débat de fairplay pour ceux qui n'y ont pas pensé :)

egaetan: c'est largement superieur à 2^48

Steuh: enfin de toute façon ça paraît compliqué... mais ça donne des idées à tester

Stilgart: egaetan: hum... c'est vrai ça...

Stilgart: j'ai vraiment pas une bonne vision des grandeurs dans ce contest

egaetan: oui je ne dis pas que des conneries

reCurse: Heureusement c'est impossible pour un RNG d'avoir toutes ces possibilités

reCurse: Mais pour les calculer faut être outillé en math

Bob: ah, pas mal j'ai essayé de lancer un opponent_cast

b0n5a1: bah c'est comme deviner les validateurs sur les optis et les coder en dur...si t'as été assez malin pour deviner des trucs qui ressemblent trop aux tests...fallait y penser et ça reste régulier

Stilgart: egaetan: je dirais même que tu n'en dis jamais en fait

Zorg1: ah oui 5 learn à 0 ça a l'air pas mal

Zorg1: bien mon nouvel algo il fait pleinde "CAST 87 15"

reCurse: 15 rien de moins

dbdr: :D

dbdr: tiens faut tester l'overflow :)

egaetan: prend les 42

b0n5a1: t'as looté la sacoche super inventaire...

Stilgart: j'avais bien CAST 1 87 à un moment :D

dbdr: CAST 87 65535

Magus: petit joueur, passé un temps mon code voulait faire CAST 87 inf

dbdr: CAST 87 -42

Magus: j'ai mon IA qui achète des sorts juste pour faire de la place :/

dbdr: ça peut servir

BrainSolver: Y a jamais la possibilité de faire plus de 5 répétitions sur un CAST

egaetan: il y a pas de -1 1 ? repeatable ?

Razielwar: bah si donc tu peux faire jusqu'à 10 fois

Julius2k17: je dois un min inversé avec un max 80 à 18 ca fait mal :D

dbdr: pas un bon moment pour sub, le #50 est plein de royal et autres pb5

b0n5a1: bah si t'as 7 bleus rien t'empêche de faire 7 x -bleu +vert...

b0n5a1: ha non pas répétables

Stilgart: à part le fait qu'un cast de base est pas repeatable

Stilgart: voilà :)

egaetan: et ben voilà je vais gagner x2 en perfs !! merci BrainSolver

Razielwar: lol

b0n5a1: haha egaetan

Stilgart: hum... je vois comment gagner dans mon code...

Stilgart: mais x2 faut pas rêver quand même

Bob: bordel d'où est-ce que je sors ce opponent_cast ?

Stilgart: vérifie l'entrée si tu peux

egaetan: dbdr pour tester les overflow essaie de mettre pleins de bleu en taxe de learn

Stilgart: dès fois que ce soit un bug de referee (j'y crois pas mais bon)

Stilgart: TU++

Razielwar: tome.add(new TomeSpell(new Recipe(3, 0, 1, -1)));

Razielwar: ah non j'allais dire une connerie :)

Stilgart: ça fait +3 ingrédients :)

Razielwar: il est répétable que 2 fois...

Stilgart: j'ai pas check à fond, mais j'étais aussi arrivé à n<=5 pour le cast

Stilgart: sur en -2 2 0 0

Razielwar: moi j'avais fais 10 sans réfléchir, après je break dès que je peux plus alors ça va pas faire gagner grand chose

Stilgart: -en

Stilgart: idem, je break dès que je peux plus

Stilgart: je pense pas que unroll à 5 soit vraiment meilleur

dbdr: c'est le job du compilo

Stilgart: non

Stilgart: là le compilo il peut pas trop vu la tronche du test

Stilgart: (de fait, c'est un while chez moi)

Stilgart: à la limite, c'est le role du prédicteur de saut du CPU

dbdr: moi j'ai un for repeat in in 1..6

dbdr: donc c'est bien le job d compilo après

Haashi: bah le compilo en Go il est nul

Haashi: pour sommer les ingredients j'ai un for i:=0;i<4;i++

i1[i]+=i2[i]

Haashi: bah c'est plus rapide d'écrire les 4 lignes

Haashi: 15ns vs 5ns :expressionless:

mrBen: ^^

Vry: Moi aussi j'ai constaté la même chose en C

mrBen: tu fait bien de le dire

umarbahadoor: quelqu'un utilise php? :grimacing:

velkuns: Hello

velkuns: moi :D

velkuns: j'utilise php

umarbahadoor: cool, tu arive a mesure le temp dans le loop?

Stilgart: dbdr: si tu veux, mais le nombre d'itérations est trop dépend du runtime pour faire un unroll pertinent

Stilgart: sur le cas de Haashi par contre... comment ça c'est plus lent ?!

umarbahadoor: microtime(true) me donne des chiffre bizar

velkuns: $time = microtime(true); //loop $time = $time - microtime(true);

dbdr: unroll peut inclure des gotos

dbdr: pour les breaks

velkuns: ça donne le temps en microseconde

Bob: cette haine

Stilgart: oui, mais c'est plus efficace que de pas unroll si tu checkes à chaque itération pour savoir quand s'arrêter

Stilgart: c'est *pas* plus

Bob: je dois débugger un truc que j'ai une fois sur 6 contre le boss avec une seed donnée

dbdr: l'un n'empeche pas l'autre

Stilgart: Bob a la seed !!!

dbdr: exclusion!

Zorg1: dbdr : bah c'est abusé les 5 learns initiaux quoi qu'il arrive

Stilgart: dbdr: sérieusement, tu hackes la seed toi ?

dbdr: non

Stilgart: ok, on a donc de l'espoir

dbdr: Zorg1 ça mache bien?

Zorg1: bah je passe de 180 à 120

Zorg1: 130

Haashi: donc c'est 5 le magic number

dbdr: cool!

egaetan: dbdr il hack la seed c'est sûr

Zorg1: après bon

Bob: 4 8 15 16 23 42

Zorg1: dbdr il a une tête de seed hacker

dbdr: 130 +/- 100

Bob: bordel 20 ans après je me souviens de ces nombres à la con

Vry: J'essaie avec 10 là ...

Stilgart: dbdr: merci, ça fait que 200 cas à tester...

**Stilgart chaud pour péter la seed maintenant :p

dbdr: :D

dbdr: c'est le classement de Zorg1

Stilgart: je me doute bien :)

Vry: Mais 5 ou 10 ça va pas changer fondamentalement le bot

dbdr: 10 learns d'entrée ça fait bcp

Stilgart: Bob: c'est ce qui t'a fait gagner au loto ?

Bob: Stilgart: de fait, dans l'histoire oui

Stilgart: dbdr: surtout, au bout d'un moment, il y a des learns qui complète mieux ce que tu as que d'autres

umarbahadoor: @velkuns, okay, c'est negatif pour moi, et quand je fais un number format et * 1000, ça pete

Bob: il y a un type qui gagne à la loterie avec

dbdr: oui

dbdr: 0118999...

DataWasTaken: Petite question : si une sorciere apprend le sort d'index 0 et l'autre apprend celui d'index 1 où part la taxe que doit la deuxieme sorciere ?

SeebOmega: au tour d apres sur le sort 0

Julius2k17: A bercy

mrBen: les deux réponse sont bonne

velkuns: @umarbahadoor pour tu veux formater ? Je fais un `round($time * 1000, 4)` pour l'affichage

Bob: voilà pour le bug

Bob: ça m'apprendra à changer 4 fois la sémantique de ma variable

mrBen: es-ce que le score courant doit faire parti de l'état d'un noeud ?

mrBen: comme ça je dirais non

Traquila: non

Stilgart: ha.. bien rdjdv

egaetan: nrBen ça depend

Zorg1: bob : évidemment ta variable a un nom clair et sans ambiguité : "b"

Bob: non même pas

Traquila: sauf si tu simu plusieurs potions

Traquila: en même temps

Bob: elle s'appelait actionId et je l'ai renommée actionIndex pour que ce soit bien clair

mrBen: ah, oui du coup, je vais essayer tout les potion d'un coup

Bob: j'ai juste oublié de changer la manière dont elle est calculée à un endroit parmi 4 :)

Stilgart: Bob: haha... je lutte aussi avec les id vs index

Stilgart: je pige toujours pas pourquoi le spell change d'id quand on l'apprend

mrBen: pourquoi il faut le score du coup ? (j'avais prévu de stoquer un bit par potion pour savoir si elle ont été brew

Stilgart: à croire que ça leur posait problème que CAST et OP_CAST aient parfois le même id

mrBen: Stilgart : faut bien un peu de challenge

Stilgart: mrBen: ça peut permettre de mieux gérer le endgame

Vry: Salut b0n5a1 ...

Stilgart: en évitant de faire vite une popo avec pas assez de points, par exemple

b0n5a1: Vry ?

mrBen: sachant que je simule pas l'adversaire et que j'ai pas prévu de le faire ?

mrBen: ah, ok, je note Stilgart

b0n5a1: tu viens de me passer dessus c'est ça ?

Stilgart: tu as quand même son score :)

Bob: tiens mais je suis plus con que la moyenne, moi

mrBen: et oui, du coup fait des heuristique pas compliqué

Stilgart: baisse la moyenne alors

mrBen: *ça

Vry: Je viens passer doucement à côté ...

Vry: https://www.codingame.com/share-replay/506405294

Vry: Tu as un timeout

Zorg1: ah pas con d'afficher l'action en gros, c'est pas forcément super évident dans les logs

b0n5a1: ouais

Stilgart: c'est vrai que je pourrais faire ça aussi

b0n5a1: pouvoir afficher TIMEOUT aussi tiens...

Zorg1: :D

Vry: #72 avec 10 learns au démarrage (le temps que les memset passent sans faire planter le bousin)

Vry: #64 même

Bob: le boss commence avec 9 learns 0

Vry: + learn forcé si le sort ne coûte rien

Stilgart: go go go vry

Stilgart: Bob: ça suggère d'en faire un poil moins

Vry: Mais c'est la fin du submit malheureusement

Stilgart: genre 6-7

Bob: 8, même

Vry: 37 minutes ça a prit ...

Vry: *pris

Traquila: noooon j'ai perdu contre vry

Vry: Tu viens de gagner aussi

Bob: pfff y a des seeds où je me merde royalement c'est impressionnant

Traquila: Tu peux pas avoir du bol à tous les coup :p

Stilgart: si, avec du bon random c'est possible

b0n5a1: dis tout de suite que le code de Bob est hasardeux :grinning:

Bob: mais bon en tout cas le learn a l'air de marcher

Stilgart: non, il est probabiliste avec du random pas toujours bon

Vry: C'est le repetable ça fait mal : https://www.codingame.com/share-replay/506410192

Bob: en revanche je gagne que dalle contre le boss, même à supposer que j'arrive en haut ça va être tendu :/

Traquila: Je le gagne régulièrement mais j'arrive pas en haut :p

b0n5a1: faut un truc avec timer...pendant 10 min à venir avec date du submit le code de Bob...ensuite celui de Traquila

b0n5a1: et vous passez

b0n5a1: et êtes virés du game pour code identique dans la foulée

Traquila: on joue contre le boss en local

Traquila: enfin la je joue contre vry en local, histoire de travailler mon algo pour le laminer

b0n5a1: j'avais compris...mais imagine....

dbdr: bon, ça tient jusqu'à l'ouverture ça?

b0n5a1: tu prends le timestamp actuel...tu submit avec 2 IA...une qui tourne les 10 minutes suvant le timestamp...puis l'autre....d'abord pour monter ensuite pour tarter le boss....sur un malentendu tu passes

Vry: Traquila : si tu vois des conneries de la part de mon bot prévient moi :D

Zorg1: les bonnes astuces

Default avatar.png Dee-R: Des gens qu'on fait "Chevaux de course" ?

Vry: Ui

Zorg1: a peu près tout le monde ici je pense

mrBen: oui, même en bash !

Matt956: C'est quelle difficulté ?

b0n5a1: easy

b0n5a1: je crois

mrBen: pour que j'y arrive en bash, pas très dur

Bob: c'est dire

Default avatar.png Dee-R: Le 3eme test par exemple "9999241" correspond à un poney ?

b0n5a1: non, une mygale

Bob: une grosse mite

Default avatar.png JBM: en pullover

Zorg1: salace et grosse mite ?

Traquila: vry, tu vas chercher le 6 sort ! omg

Vry: Traquila, j'en prends 10 !

Matt956: LoL vous êtes méchant, C'est Horse racing duel ?

Default avatar.png Dee-R: ha merde je pensais que c'était la taille de ta ...

Traquila: non le 6eme du grimoire

Default avatar.png Dee-R: oui

mrBen: horse racing duel

mrBen: ah, mauvais focus pour pas chnger

Matt956: Many horses ?

Bon[]Crayon: :racehorse:

b0n5a1: non mais t'as déjà vu un poney à l'hyppodrome sur la piste ???

Default avatar.png JBM: huuuhuuuuu

Vry: Ah, ben s'il ne requiert rein à l'exécution je prends

Default avatar.png Dee-R: j'vais me débrouiller c'est un chat de 5 ans

Matt956: Je dois pas être sur le meme exo parceque j'ai 47 pour le troisieme test :s

Traquila: il te coute 5 bleus

Default avatar.png JBM: ça timeout toujours sporadiquement?

Vry: Il donne quoi ? Et surtout, est-ce que je gagne à la fin ?

Vry: JBM, plutôt pour l'instant

Default avatar.png JBM: grmbl

Vry: non

Default avatar.png JBM: bon jvais continuer mon monitor alors

Default avatar.png JBM: ah?

Vry: ça va en fait

b0n5a1: menteries

Bob: c'est vraiment marrant comment à chaque fois je perds quelques matches autour des 400

Traquila: vri, tour 12 : https://www.codingame.com/replay/506426901

POLOB: Bonsoir à tous

mrBen: o/

Matt956: Mdr le mec qui vient demander un coup de main et qui se barre en insultant tout le monde

POLOB: petite question : il y a un moyen de voir facilement l'issue des match dans l'arrène ?

Matt956: Bonsoir

Bon[]Crayon: :racehorse: Bonsoir :turtle:

xurei: raaah je viens de passe 1/2h sur un truc debile !

xurei: mon code passe nickel en test (il pique même)

xurei: en IDE: RIEN

mrBen: POLOB oui, le gagant est toujours à gauche

xurei: pourquoi ? parce que j'ai pas init mes tables dans le code du bot, mais celui de test oui

mrBen: tu veux juste le gagnant, ou les score ?

POLOB: ok, merci @mrBen !

Bob: :clap:

mrBen: ah d'ailleur, je viens de battre Bob...

Bob: T_T

POLOB: Je veux juste voir où je me fait battre :)

POLOB: j'ai viré mon bot random

Vry: Traquila : ça me fait penser que je ne tenais pas compte du gain éventuel de matière bleue ...

POLOB: j'ai enfin un truc qui marchotte

mrBen: c'est dans tout les match ou t'es sur la droite, donc #2

Traquila: oui j'ai vu cela vry, du coup c'est moi qui me suit gavé :p

Traquila: D'ailleurs pour les learn en counrs, je les fait principalement pour la taxe

POLOB: bien bien...

Traquila: *counrs

POLOB: ça y est, j'ai un classement à 2 chiffres ! :)

Kirbiby: wala qui va là, tututu

POLOB: en bronze, hin, on s'emballe pas quand même...

Kirbiby: jamais vu du java aussi haut

GaL: dites, je trouve pas dans la consigne du coding challenge, mais si on lance un sort et qu'on a pas la place pour stocker tous les ingredients produits par le sort, comment l'inventaire reagit?

Vry: Mal

Stefy06: tu peux pas

Stefy06: c'est une action non autorisée

GaL: ok merci :)

Bob: en gros ça te fait juste perdre un tour

GaL: c'est plus simple comme ca :P

Stefy06: par contre, c'est possible de learn un spell qui a de la taxe qui pourrait dépasser 10, dans ce cas, les ingrédients sont simplement jetées

GaL: ok grand merci pour l'info :innocent:

Bob: c'est plus sympa que de tuer ton bot mais quand ça te fait mourir au moins tu vois vite quand tu le fais :)

nicolasD: est-ce que le timeout font perdre plus de point q une defait classique ?

MooMooN: non

nicolasD: Merci

umarbahadoor: j'ai un vrai problem avec le temp, je pense que c'est un bug avec PHP, ça prend plus que 50ms pour lire le premier fscanf... j'ai fais un reset du code pour voir. quelqu'un peut me guider?

b0n5a1: init ton timer après lecture du premier input seulement umarbahadoor

Bob: bon tout ça ne m'avance pas des masses

umarbahadoor: je redemarre a l'entree du loop

Bob: non umarbahadoor c'est trop to

b0n5a1: non...après premier input il faut

umarbahadoor: mais c'est toujour environ 50ms pour lire

Bob: démarre après le premier input

Vry: 10/11 ça ira ...

umarbahadoor: Okay, merci

umarbahadoor: j'essaye cela

Vry: En C ça donne :

Vry: scanf("%d", &(c_action));

Vry: _g_start = lireHeure_ns();

Magus: et beh ... même avec une éval je rentre pas dans le top 100. Doit me manquer un critère important qui m'échappe ...

Bob: attends eh nous on arrive déjà pas à sortir de silver T_T

umarbahadoor: merci @vry

Vry: Ouais hein Magus, ça suffit ! :p

Magus: Bob: bah je suis environ 100ème sans éval :D

Bob: :p

GaL: vous etes sur quoi comme genre d'algo?

Bob: cette misère

Magus: même pas besoin de réfléchir

Magus: mais la j'essaie de faire une éval

Magus: et j'arrive pas à faire mieux qu'un mcts sans éval, c'est triste

nicolasD: ça dépend des "bugs magique" de ton code ;)

Vry: mAIS IL EST gOLD TON mcts, C'EST DÉJÀ PAS MAL !

Julius2k17: tu abuses Magus

Vry: :D

Julius2k17: tu pourrais t'appliquer

egaetan: tu as mis un log(3) dans ton eval Magus ?

Magus: Vry: depuis quand on fait des contests si c'est pas pour être légende ?

Julius2k17: t'as oublié le 0.9

Magus: log(3) ? log(3) de quoi ?

Vry: y'a déjà du log dans le MCTS, pas besoin

Magus: c'est vrai

Vry: Oui ça c'est au début du contest, on croit qu'on va y arriver !

Magus: non mais en général j'ai pas de mal à rentrer légende hein :D

Magus: mais la je dois avoir un truc qui m'échappe

b0n5a1: t'as pas reverse la seed...

Vry: T'es pas le seul MAgus

Vry: *Magus

Vry: Le niveau est relevé, et c'est pas plus mal

egaetan: t'as pas reverse la seed magus ?

umarbahadoor: Donc, j'ai demarrer le timer apres le premier input, ça me donne des bon chiffres, n'empeche que je timeout avan meme 1ms maintenant

Kirbiby: c'est comment un MCTS sans eval ?

Kirbiby: Comment il score ?

Vry: le top 100 ne veut pas de moi, j'ai rebondi ...

Kirbiby: Tu joues jusqu'à un état terminal ?

Zorg1: bah de base un MCTS c'est sans éval

Zorg1: comme un MinMax exhaustif d'ailleurs

Guytan67: Salut a tous ! Quelqu'un sait comment écrire une bulle dans le challenge sorcière? Je code en JS, j'ai essayé console.message() mais c'est pas ça

Vry: Oui, il faut juste gagné/perdu ou nul

Zorg1: voilà

Kirbiby: Oui mais ici ça voudrait aller depth 45

Kirbiby: au moins non ?

b0n5a1: Guytan67 ajoute ton message après ta commande

umarbahadoor: @Guytan67, tu ecrit le texte apres la commande: WAIT Hello World!

nicolasD: a la fin de ton console.log("CAST id repeat TexteBulle) ou un truc du genre

Zorg1: ou alors "sans éval" veut peut être dire "éval simple" genre je compare les scores des deux sorcières

Guytan67: super merci

b0n5a1: c'est pas une sorcière, c'est Spock avec une verrue

Zorg1: ah ok

Zorg1: on fait pas gaffe et on dit des conneries

b0n5a1: voilà

Bob: pire : parfois, on en fait

POLOB: C'est moi ou "rejouer dans les même conditions", ça marche pas vraiment ?

POLOB: J'ai pas les même résultats en lancant deux fois le truc

MooMooN: si ca marche" bien

Bon[]Crayon: Il y a peur-être du random

b0n5a1: si tu (ou l'autre ou les deux) utilise du random...faut pas s'attendre au même résultat

MooMooN: ca depends contre qui tu joue si il a mis du random c mort

POLOB: (ou alors j'ai des uninitialized mem)

POLOB: effectivement, j'ai pas pensé à ça

POLOB: alors que j'ai laissé tourner un bot random pendant 3 jours...

POLOB: Petite question : mon bot finit souvent en dead end avec tous son invenrtaire rempli de jaune

POLOB: vous avez fait un truc specifique pour éviter ça ?

Vry: Faire des potions ?

Bob: ^

POLOB: merci @Vry, j'y avais pas pensé :)

b0n5a1: pas chercher à faire vert à partir de bleu, orange à partire de vert, jaune...

Vry: Choisit d'abord une potion à faire et ensuite complète ton inventaire en fonction et tu ne devrais pas avoir de problème

POLOB: mon bot doit osciller entre plusieurs cibles...

POLOB: merci pour les idées

Bob: l'avantage du BFS c'est que ça évite ce genre de truc

MooMooN: En theorie bob si ton eval est mal faite c'est pas sur

POLOB: J'ai un peu honte, mais le bfs partait trop souvent en timeout...

Gh0stm4chine: Moi je ne garde pas le chemin d'un tour à l'autre, du coup parfois il ne fait pas assez d'iteration le tour suivant et ne retrouve plus de potions :(

umarbahadoor: quelqu'un peut m'aider sur les timeout? je pense pas que c'est normal de timeout avant meme 1ms, sauf si on utilise un autre metric pour mesurer le temps... J'ai utilisé microtime, hrtime...

Bob: mais ma version heuristique, grosso modo je castais juste le sort qui me donnait la meilleure progression d'inventaire vers une potion

POLOB: j'avais fait ça au début

POLOB: mais les learn, ça ajoute pas mal de bazar

Bob: umarbahadoor: si tu timeoutes c'est pas nécessairement un problème de mesure de temps

Bob: POLOB : learn le sort gratuit les 10 premiers tours et commence avec ça

POLOB: pas bête Bob, mais bon là, je suis pas si mal (dans la ligue bronze)

umarbahadoor: okay, @Bob, quoi d'autre peut causer un timeout?

Gh0stm4chine: ça fait 3 jours que je m'acharne à opti mon code, au final après m'être poser et réaliser un tu, je me rends compte que j'avais une boucle for infinie sur mon repeatable.. et une autre fonction marchait pas bien aussi à cause d'une faute d'inattention..

POLOB: rang à 1 chiffre

Bob: umarbahadoor: dépassement mémoire, typiquement

POLOB: umarbahadoor: tu as essayer de bloquer tout ton code avec un gros print WAIT dès le début ?

Gh0stm4chine: umarbahadoor: tu es sûr que tu lis tous tes inputs ? tu ne fais qu'un seul output par tour ?

b0n5a1: accès out of bounds

umarbahadoor: @Bob, ooh, il y une facon de mesurer la memoire?

Bob: umarbahadoor: je voulais plutôt dire comme b0n5a1 en fait

mrBen: ah, la boule infinie sur le repeatable je l'ai fait aussi !

Default avatar.png JBM: bon mon monitor semble marcher

Default avatar.png JBM: passons au détecteur de timeout

Bob: t'as droit à 768 Mo, t'as beaucoup de marge avant d'en arriver là

Bob: un timeout ça peut être un crash, une vraie boucle infinie...

Gh0stm4chine: mrBen: for(int repeat = 0; i < nbRepeat; nbRepeat++) :'( le truc impossible à voir mais tellement con à taper en même temps

b0n5a1: lol

mrBen: :laughing:

MooMooN: tu es sur de repeter au moins :)

Bob: for (int i = 0; i < 10; i--)

POLOB: bon, malgré tous les défauts de mon bot, je passe en argent...

umarbahadoor: sa me coupe le text de l'error log mais aleatoirement

mrBen: moi la condition de sortie testais uniquement si le sort ést repetable, donc je sortait jamais non plus

MooMooN: trop de log ?

POLOB: comme pour le passage en bronze, je comprends pas vraiment pourquoi

Gh0stm4chine: ça m'apprendra à tout tester la prochaine.. j'étais bcp trop confiant

POLOB: un coup de chance face au boss...

Vry: J'ai trouvé un truc à améliorer en fait ... comment vais-je bien pouvoir le coder

Default avatar.png JBM: délègue

Bob: tout ce que j'ai essayé ce soir et qui semblait sensé échoue lamentablement T_T

umarbahadoor: peut etre que sa vien du memoire, 768 c'est pas enorme...

BlaiseEbuth: Tester c'est pour les faibles

Bob: umarbahadoor: euh si, pour les besoins qu'on a ici c'est très large

MooMooN: jamais dépasser la mémoire :)

b0n5a1: la même Bob, essais de truc à la cons qui changent rien ou pire

mrBen: 768 c'est pas enorme ! tás écris quoi comme code, un compilo ?

Vry: Bein tien JBM tu tombes bien ! :p

Gh0stm4chine: une vidéo en 4k

Default avatar.png JBM: donne ton idée, je te prépare le devis

Bob: umarbahadoor: ah oui euh accessoirement si tu fais des seaux d'error log, ça pour le coup c'est *très* lent

b0n5a1: c'est pas 768 octets hein...

Gh0stm4chine: j'arrive vry, fais moi de la place à côté

Vry: J'ai la liste des sorts par joueur avec la profondeur à laquel ils peuvent les jouer

umarbahadoor: j'utiliser A-Star pour ariver en silver, mais maintenant j'essaye BFS, avec SPLQueue

Bob: je percute sur le fait que tu as l'error log tronqué...

Vry: Il faut choisir le bon!

Default avatar.png JBM: lance un d20

BlaiseEbuth: ^

Bob: choisis... judicieusement

BlaiseEbuth: :skull:

Vry: Faut que j'arrive à codé l'idée ...

Default avatar.png JBM: ah oui j'aime bien la version Bob aussi

Vry: http://chat.codingame.com/pastebin/ec6808f0-3a0c-428c-95a5-c42c73a8d483

Vry: Là il faut partir sur le #0 depth 3

umarbahadoor: okay, j'ai eteint le logger, et sa passe

BlaiseEbuth: Vry : c'est pas bien alligné

Bob: la misère, ce push

Vry: Si BlaiseEbuth, y'a une colonne par potion

BlaiseEbuth: C'est pas clair, mets des couleurs. Et fait un graphe

umarbahadoor: mais ce qui me rend fou, c'est les mesures sont pas fiable avec. mon timer me donne mois de 1ms quand il timeout..

BlaiseEbuth: T'es sût que t'es en ms ?

BlaiseEbuth: sûr

Gh0stm4chine: tu as un replay umarbahadoor ?

Gh0stm4chine: le boss silver faut qu'il se calme là, il défonce tlm

POLOB: bon aller, bonne nuit tout le monde :)

Gh0stm4chine: bon en même temps c'est le boss..

Mator: POLOB: Good night

MooMooN: oui mais normalement le boss silver ca va :)

Bob: normalement ça commence par un N

umarbahadoor: non je sais pas comment avoir de replay, je viens de decouvrir cette platforme la semaine derniere..

BlaiseEbuth: Oui mais parfois ça commence par un p...

Bob: j'ai un BFS avec le brew, le cast et le learn 0 qui maximise le score, et pas moyen de dépasser le top 50

Bob: c'est quand même la misère

mrBen: BFS sur une potions, ou sur les 5 ?

Bob: les 5

mrBen: ah...

Vry: +1 Bob

Bob: je dois louper un truc mais je vois pas quoi

Bob: ou alors j'ai un bug moisi que j'ai pas encore vu

Gh0stm4chine: je ne vois pas l'interêt de faire un bfs sur une seule potion

Gh0stm4chine: tu gères déja le repeatable j'imagine Bob ?

Bob: oui

mrBen: c'est plus simple à coder

Bob: de 1 à N

umarbahadoor: https://www.codingame.com/replay/506470300 <- avec les log, mais le timeout...

umarbahadoor: sans le log, sa passe

Bob: c'est ce que je t'ai dit plus haut umarbahadoor

Bob: les logs c'est extrêmement coûteux en temps

umarbahadoor: j'etais parmis le dernier de la ligue, mais la je pense que je monte legerement..

Bob: si tu veux de la perf, ne mets surtout pas de logs au milieu de ton algo

MooMooN: Si tu veux logger tout ton arbre tu oublie :)

umarbahadoor: @bob, ui je compren, c'est juste que je pense que c'est pas pris en consideration quand je mesure..

Bob: même mettre un log conditionnel, ça veut dire que tu rajoutes un test à chaque fois que tu passes dessus

Bob: ah si

Bob: tu crois que c'est exécuté sur le temps de qui ? :)

Bob: et les I/O c'est un des trucs les plus lents

BlaiseEbuth: Moi j'ai mis mes logs sur le temps de l'adversaire, ça me fait gagner pas mal de ms.

Bob: cette fourberie

Bob: <3

mrBen: ah ouais ? comment tu fait ça, ça m'interesse :heart_eyes:

b0n5a1: pas con

Bob: ben tu les mets après le print

BlaiseEbuth: :point_up:

Bob: le referee mesure ton temps entre le premier input et le print

b0n5a1: voir avant lecture du premier input

mrBen: oh putin la technique de fourbe

mrBen: trop bien

Bob: en théorie c'est même du temps que tu peux utiliser pour calculer

b0n5a1: bin oui

Bob: t'as juste moins de garantie sur combien tu vas en avoir

umarbahadoor: Okay, merci beaucoup :)

Traquila: un sigkill sur getpid() -+1 (selon la couleur) quand ton score est dessous l'adversaire, c'est pas mal aussi

Vry: Moi après le print je memset mes tableaux :p

Gh0stm4chine: comment tu sais quand est ce que tu dois t'arreter pour être prêt pour la lecture de l'input ?

Vry: Tu sais pas ...

MooMooN: au doigt mouillé

Zorg1: tu fais un select ^^

b0n5a1: t'allumes une bougie

Vry: Horrible cette fonction ...

MooMooN: et tu prie la bonne mère

Vry: ... un truc de pyuschopathe avec desdescripteurs dans tous les sens

BlaiseEbuth: la carte mère en l'occurence

Zorg1: select c'est assez simple en fait

Vry: Je l'ai utilisé pour gérer réseau + console en même temps ... ça marchait très bien mais ça m'a foutu un mal d crâne ...

ClementMateo: salut tout le monde je debute sur codingame et j'ai une question : peut on recuperer les output dans une autre console que celle en bas a gauche de l'ide en ligne ? c'est un peu petit :sweat_smile:

Gh0stm4chine: Ctrl + molette ?

mrBen: tu peux agrandir la console

b0n5a1: j'ai pris une rubis pour être raccord avec le contest

Vry: Tu peux agrandir

ClementMateo: non mais certaines longues lignes ne sont pas affichées entierement et ctrl + molette n'y change rien

GeoBlack: j'ai un problème en c#

Vry: Ctral+A Ctrl+C

mrBen: change de langage

b0n5a1: tain c'est la hotline là ^^

ClementMateo: je suis obligé de copier coller la ligne dans un editeur pour la voir completement

BlaiseEbuth: Bonjour. Voulez vous agrandir la taille de votre console en seulement une semaine ?

GeoBlack: j'ai deux appels de méthode successive

GeoBlack: à la fin j'affich

GeoBlack: e

Zorg1: la hot line ? vous avez essayez d'arrêter et relance CG ?

GeoBlack: à la fin de la première j'affiche le st.ElapsedMilliseconds

Bob: appuyez sur le bouton

GeoBlack: et au début de la seconde pareil

b0n5a1: t'as vu les questions / pb qui tombent Zorg1 ?

b0n5a1: là maintenant

GeoBlack: et j'ai 45ms (normal) à la fin de la première et 53ms au debut de la seconde

Gh0stm4chine: mon bot qui galère pendant 50% entre 120 et 90 puis il enchaine 20 victoires d'affilée

b0n5a1: ha t'as changé de vitesse et t'accélères ?

Bob: bon j'arriverai à rien de plus ce soir :/

Bob: bonne nuit les choupis

b0n5a1: bonne nuit

mrBen: bonne nuit

Gh0stm4chine: bonne nuit

Zorg1: mais sans débrayer il pète la boîtes de vitesse

GeoBlack: j'ai 8ms qui parte je ne sais pas où

Pduhard-: Salut, a combien de simulation par tour vous arrivez a monter ?

mrBen: GeoBlack t'as des I/O entre deux ? (des logs par exemple)

Bob: plein

Pduhard-: sur un mcts

GeoBlack: non

GeoBlack: rien

mrBen: ah

b0n5a1: 600.000...1.000.000

Gh0stm4chine: une autre question pour la hotline BlaiseEbuth

mrBen: bah faut vraiement changer de lagage alors :sweat_smile:

Bob: mon BFS je suis entre 700 et 1200k en moyenne

Kirbiby: je comprends âs

mrBen: 1200k ?

Kirbiby: j'en fait dans les 100 000

Kirbiby: Comment tu en fais 1milion

Vry: Tous ça Bob ???

b0n5a1: ha fallait pas répondre au pif ?

Bob: bah c'est ce que me dit mon code en tout cas

mrBen: on parle de noauds hein, pas de profondeur

mrBen: noeuds

Vry: Mais tu ne gère pas les doublons ?

Bob: non

GeoBlack: je suis à peine à 30000!

Bob: ça explique peut-être

Vry: Ah Ok

b0n5a1: factorielle 30000....balaise

Bob: sur ce, je vais dormir

Bob: pour de bon

Vry: bn

GeoBlack: non 30000

mrBen: oui, re-bonne nuit

Bob: bisous :*

Pduhard-: ah dac merci ^^ bonne nuit

b0n5a1: beuark

Kirbiby: Fais de beaux rêves de BFS

b0n5a1: avec des écureuils dedans

mrBen: et des tortue ?

b0n5a1: nan

mrBen: ah ok

Gh0stm4chine: pas de sorcières surtout

b0n5a1: ton pc marche pas avec des écureuils ?

mrBen: j'ai pas la ref je crois

b0n5a1: Recher au lit !!!

Vry: ?

b0n5a1: live stream Vry, il a répondu ^^

Vry: Hein ?

b0n5a1: twitch

b0n5a1: j'ai fait popé un message

b0n5a1: dis lui coucou ici t'auras une réponse vocale, c'est magique

Vry: Coucou Recher

b0n5a1: voilà

b0n5a1: arf plus sur l'onglet CG ça doit pas poper

Vry: Comment j'explique à mon bot de ne pas faire la potion à 6 point dans 1 tour mais plutôt celle à 16 dans 3 ?

BlaiseEbuth: Technique brandon du 91

Gh0stm4chine: if(tour == 1) continue;

Magus: Vry: si t'as une recherche qui voit au moins 3 tours à l'avance c'est censé le faire tout seul, non ?

Vry: Non car j'ai un BFS pour l'opposant et un pour moi ....

umarbahadoor: @vry j'utilise des poids pour le prix et la distance...

Vry: ... du coup je suis emmerdé pour "merger" intelligemment les résultats

Vry: Mais j'ai un beau tableau en debug

Vry: Faudrait que je fasse en sorte que mon bfs devienne un min / max ... :upside_down:

b0n5a1: hey Vry t'as eu une réponse ^^

Kirbiby: Si l'adversaire peut faire la 16 en un ou deux tours, fais la 1, sinon la 16

Magus: si ton but est de faire un min/max qui voit loin, tu peux faire un alphabeta avec un prune ultra agressif

Vry: Dans la situation présente j dois faire la même que lui sinon je perds

Vry: Je suis nul en alpha / beta donc je vais commencer par le min / max ça je l'ai plus ou moins grâce à mon MCTS ...

Vry: Si je vire les learn du MCTS je m'en tire avec un state de 2x 64bits c'est gérable

Recher: Bonne nuit tout le monde. J'ai gagné plein de clash et je finis sur une défaite. Si c'est pas la classe.

b0n5a1: bn Recher

b0n5a1: bon, la même, bonne nuit

Zorg1: o/

Traquila: je termine à 28, dur dur de monter

Vry: Pas mal !

Vry: Tu as quoi comme algo ?

Traquila: une fonction recusive de 300 lignes :p

Traquila: avec un int64 comme node

Kirbiby: un seul ?!

Traquila: oui

Traquila: Mais je n'ai pas les parents / enfants à gérer comme vous

Magus: 28ème gold ?

Traquila: nan

VincentBab: pfff je sais pas comment amelioré mon eval :/

MooMooN: Ah avec le repeat ca marche mieux :) mais bon c'est toujours ussi mauvais au final

Traquila: j'ai trouvé qqc pour amélioré le choix des learn de depart

BigUP: MooMooN, moi je n evois meme pas comment le gérer dans mon algo le repeat ;)

MooMooN: Je l'ai codé sur le pouce sans tester visiblement ca à l'air de marcher :)

MooMooN: truc con sur mon node je dis tiens on peut faire cette potion et je regarde si je peux la refaire directement

BigUP: moi ca va faire un truc complement dégeux sans compter que c arisque de me plomber les perfs

mrBen: Bon, mon cerveau répond plus, il est temps d'allé dodo

mrBen: bonne nuit

Traquila: je créé un node pour chaque fois ou je peux le cast

BigUP: MooMooN, mais il y a quelques cas ou je gagnerais beaucoup de temps

MooMooN: Aller dodo

VincentBab: c'est important le repeat

Traquila: oui, plus que le learn / castr

egaetan: si tu learn pas

egaetan: repeat iol sert à rien

R4N4R4M4: Si tu cast pas non plus

Traquila: je parle des learn en court de jeu

Gh0stm4chine: mais tu peux décider de learn en dehors de ta simu

cocoche007: Si tu brew pas non plus

Traquila: des learn dans le path

R4N4R4M4: Je voulais tenter ça, mais j'ai laissé tomber

R4N4R4M4: Fallait mettre à jour les sorts dispos dans le path et ça me semblait trop lourd

Gh0stm4chine: idem p-e ce week-end

BigUP: hum, ouais je pourrais le gérer de facon pas trop crade le multi cast. faudrait que je ne passe pas le castable a false tout de suite, et apres au moment de jouer, il faudrait que je regarde si j'ai X fois le meme cast a suivre

BigUP: ce serait pas trop lourd a gérer

BigUP: apres avec mon algo random, pas certain que ca améliore, mais faut tester

Default avatar.png PAPS: Je trouve que bronze déjà c'est pas facile à passer lol

YannT: je viisualise pas trop comment éviter d'avoir mon state à l'intériieur des nodes... sur un BFS quand je pop la queue, j'aii bien besoin d'avoir le state avecc le node? sauf à rejouer les coups précédents à chaque fois (ce qui semble pas optii) je sais pas trop quoi faire

BigUP: PAPS, bronze ca va encore, il faut essayer de gérer un maximum d'actions de base correctement

BigUP: PAPS, silver faut que toutes les actions de base soient parfaiement gérées

Default avatar.png PAPS: C'est la première fois que je fais un truc comme ça, c'est sur que je fais pas du tout correctement ahah

Default avatar.png PAPS: Je vois ça parle de graphe et tout, moi j'utilise pas du tout ça lol

BigUP: PAPS, c'est pas obligatoire. un code bien gérer avec des if, ca peut aller loin

Default avatar.png PAPS: ah ouais ok, bon ça va alors, si j'arrive à passer bronze je serai content

BigUP: PAPS, apres les graphs c'est un peu la base sur pratiquement tous les jeux CG

BigUP: PAPS, la je n'utilise pas de graph, mais je simule plusieurs tours en aléatoire

Default avatar.png PAPS: ok ouais je vois, par exemple sur ce challenge, je comprends, c'est très logique un graph

Default avatar.png PAPS: mmh, et tu choisis le meilleur, au moins tu te complique pas trop la vie à chercher des règles compliquées

Default avatar.png PAPS: faut évaluer chaque simulation après

BigUP: avec le graphs t'es quand meme obligé de réimplémenter le referee (le code arbitre)

BigUP: pour ce contest

BigUP: apres t'es peut-etre pas obligé de tout implémenter

Default avatar.png PAPS: code arbitre je sais pas ce que c'est

BigUP: PAPS, c'est le code qui prend tes input et les inputs de l'adversaire et calcul les points

Default avatar.png PAPS: ah ok, bon je vois pas trop les implications avec un graph mais bon

Default avatar.png PAPS: je pense qu'après ce challenge j'essaierai de faire un exo du site en utilisant les graph

Default avatar.png PAPS: je vais pas m'en sortir si je m'y mets maintenant lol

BigUP: PAPS, le plus important c'est de réfléchir a ce que fait mal ton IA et comment elle peut gagner du temps dans la fabrication d'une potion

BigUP: comment elle peut obtenir un meilleur score

Shakapam: ouais moi je suis passe silver avec des ifs, mais je suis en train d'essayer de tout refaire en graphe. J'en ai jamais fait, c'est un beau bordel haha

Default avatar.png PAPS: ouais c'est un peu le bordel dans mon ia mdr

Default avatar.png PAPS: ah ouais tu m'étonnes

R4N4R4M4: Bon, je sais plus faire un tableau de pointeurs... :(

R4N4R4M4: Ca bugge

R4N4R4M4: Je voulais faire un CELL* space[1001]; mais je comprends pas pourquoi ça marche pas...

Vry: Tu as déclaré un tableau de 1001 pointeurs sur CELL, c'est que que tu voulais

Vry: Bon courage, moi je vai me reposer !

Vry: *vais

R4N4R4M4: J'ai espace [][][][] dim 11p4

R4N4R4M4: et je voulais pointer que sur les Cells valides

R4N4R4M4: tout simple quoi

R4N4R4M4: mais ça marche po

R4N4R4M4: CELL espace[11][11][11][11]; CELL* space[BFS_NB_VALID_CELL];


R4N4R4M4: et à l'init, j'initialise tous les pointeurs (c'est tout du global)

R4N4R4M4: Mais bon, mon code commence à être un peu touffu, faut que je creuse

Vry: C'est pour stocker la décomposition d'un inventaire ?

R4N4R4M4: Oui

R4N4R4M4: Et pour éviter de boucler sur les 4 axes, je pensais boucler que sur les cellules valides

R4N4R4M4: Mais j'ai dû foirer qq part

Vry: http://chat.codingame.com/pastebin/acb01ed7-43b4-40e4-a25b-3f6278265952

Vry: INVENTORY inv_index[1001] = {};

R4N4R4M4: Et tu fais comment pour aller chercher la potion [2, 1, 1, 0] ?

Vry: Mais je ne travaille pas avec ce format, moi je suis sur 13 bits justements

R4N4R4M4: ah oui ok

Vry: Donc j'ai un tableau pour faire index -> décomposition

Stilgart: Vry: 13 ???

Vry: Mais dans l'autre sens je calcule l'index

Vry: 101101101b

Vry: 1 bleu, 2 verts, 2orange et 1 jaune

Vry: le max c'est 8182 de mémoire

Stilgart: ha, tu encodes à la CN

R4N4R4M4: Tu veux dire 101101001 plutôt non ?

R4N4R4M4: (on va se parler en binaire :D )

Vry: Nan, je mets un zéro entre chaque groupe (même si groupe vide)

Stilgart: R4: c'est du unaire en effet

Stilgart: (d'où le "CN"=

Stilgart: )

Vry: 10001 c'est un 0 et un 3

Vry: la décompostion ce fait avec des while(&1) mais c'est trop lourd donc j'ai un tableau de 8192 cases

Vry: Dans l'autre sens c'est facile

Stilgart: Vry: pourquoi tu fais pas un tableau de 1001 cases, du coup ?

Stilgart: tu tomberais à 10 bits avec ça

Vry: Parce que même question que R4N4R4M4 : comment tu trouve l'index facilement ?

xurei: lol j'ai trouvé un réglége marrant de mon bot

xurei: il marche super bien jusque potion4 puis il fait grève

xurei: il n'y a plus de chemin "assez bien" pour qu'il l'emprunte

xurei: du coup il fait du sur place

Stilgart: Vry: avec un tableau

Stilgart: j'ai les deux sens

Vry: Je vois pas le sens {a,b,c,d} => i

Stilgart: int inventoryIds[maxCapacity+1][maxCapacity+1][maxCapacity+1][maxCapacity+1];

Stilgart: rempli comme un bourrin avec une quadruple boucle for

Vry: La fameux boucle ... Ok

Stilgart: bah oui...

Vry: Moi j'ai ça :

Vry: (((((_gt_bit[t_inventory[3]] << (1+t_inventory[2]))

           | _gt_bit[t_inventory[2]]) << (1+t_inventory[1]))
           | _gt_bit[t_inventory[1]]) << (1+t_inventory[0]))
           | _gt_bit[t_inventory[0]]

Stilgart: j'allais pas me faire chier avec du triangle de pascal pour optimiser ce machin :p

R4N4R4M4: pareil

R4N4R4M4: C'est pour ça que mon tableau de 1001 pointeur aurait été pratique, mais il bugge

Vry: 3 << 3 + et 3 |

Stilgart: R4: pour le coup, je comprends pas ce tableau

BigUP: tin j'ai déjà du mal a m'y retrouver avec ma classe inventaire alors la, ce serait completement mort ! ;)

YannT: fun toIngredients(vararg ingredients: Int) = ingredients.reduceIndexed { index, acc, i -> acc + (i << index * 4) }

Stilgart: Vry: un accès à un tableau

Stilgart: dont je ne me sers jamais hors de l'init, d'ailleurs

xurei: sinon, si la taille ne vous embete pas : a + b*11 + c*121 + d*1331

xurei: j'utilise ca comme clef intermédiaire pour a,b,c,d => [0,1000]

Stilgart: *16 tant qu'à faire

BigUP: xurei, pas mal tes magic keys

R4N4R4M4: Je fais ma boucle 11^4 pour remplir, mais pour initialiser tous les inventaires, mais pour les lire, j'ai besoin que des 1001 valides

xurei: BTW Merci Stilgart pour l'idée des tables

xurei: bon ca plante de partout encore mais c'est prometteur

Stilgart: de rien

Stilgart: R4: j'ai un Delta idToInventory[nbInventories];

Stilgart: qui me retourne le quadruplet

Stilgart: Delta c'est une struct avec 4 int8_t

Stilgart: pour le coup, ça me suffit amplement

Stilgart: évidemment, je remplis ça en même temps que l'autre

Vry: Bon :sleeping:

Vry: À tout à l'heure ... :D

R4N4R4M4: :thumbsup:

Stilgart: pas mieux :sleeping:

R4N4R4M4: Je pense que je suis parti sur un truc trop compliqué en fait

Default avatar.png PAPS: Ohoh je viens de battre le boss bronze pour la première fois

BigUP: PAPS, pour espérer passer, il faut etre environ a 50/50 contre lui

Default avatar.png PAPS: Ok je me rapproche alors

yamo: index en base 11 ou 16 pour cacher les inventaires possibles dans un array.

Default avatar.png PAPS: Comment c'est addictif ce challenge

R4N4R4M4: Yess

R4N4R4M4: Bon j'ai trouvé mon bug, j'initialisais mal

R4N4R4M4: Du coup, mon BFS est passé de 1ms à 0.22 ms :D

Here_s_Chopi: petit gain ^^

R4N4R4M4: C'est ce qui me manquait pour exploirer les LEARN 1 depth de plus ;D

yamo: j'ai l'impression que y'a des timeouts avec Scala ce soir …

Here_s_Chopi: Je crois que ça avait été remonté comme bug