Chat:Fr/2020-11-19
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.
Paikan2068: Vry, je te rejoins tellement
Paikan2068: Il va falloir que je trouve le truc pour passer gold
egaetan: salut tout le monde
Mazelcop: hello
dbdr: \o
Traquila: salut
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
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"
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
JBM: procrastination TODO #13, automatiser l'extraction depuis les videos
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
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
JBM: c'est vrai que l'histoire de kovi
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
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
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
Cousnouf: wesh cousin
Timothee01: chui en cours au lycée :joy:
CopperFr: ah c'est encore ouvert les lycées ?
Bon[]Crayon: salut
Timothee01: ouai mais pas tt les jours
ZefusToutCourt: T’imagine même pas comment c’est relou
CopperFr: c'est surement plus dangereux qu'une librairie pourtant
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
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
Timothee01: je me fais chier et il reste 30min de cour ptn
Gronahak: quel cours ?
Zarostrix: et je suis avec eux
JBM: https://www.codingame.com/share-replay/505833091 le mec me dit "YOU ARE TOO SLOW" je timeout dans le tour d'après
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 ...
Timothee01: es ce que vous pouvez nous montrer le code du Marslander svp
Vry: Nan c'est mal ...
Timothee01: vasi stp je suis keblo
Bob: genre euh le 1 ?
b0n5a1: le code d'accès du Mars lander c'est 123AB985
Timothee01: nan mais le code python
JBM: je crois que la NASA l'a publié sur github
SeebOmega: Timothee01 ca ne marche pas comme ca ici
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...
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
Timothee01: ok je vais essayer alors
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
JBM: oui mais c'est pas le bon en fait
Bob: putain il fait pas bon vieillir
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
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 ?
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?
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
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
OldJohn: Je suis sur un hackhatton en // pas facile de faire deux choses en même temps...
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
OldJohn: Je mettreais bien un #pragma acc parallel loop là!
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 ?
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 ?
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 ^^
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
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
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
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
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
TheophileLeparmentier: J'ai une erreur que j'arrive pas à comprendre
TheophileLeparmentier: Est ce qu'il faut une synthaxe particuliere pour le print ?
TheophileLeparmentier: dans mon code je fais un
TheophileLeparmentier: print("LEARN " + id)
egaetan: TheophileLeparmentier ça depend du langage
TheophileLeparmentier: sur python
TheophileLeparmentier: et ça me le prend même pas en compte
TheophileLeparmentier: (ça passe bien dessus j'ai mis des logs pour vérifier)
Oioi: ça devrait, à moins que tu ne fasses un autre print avant
egaetan: # To debug: print("Debug messages...", file=sys.stderr, flush=True)
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: :-)
TheophileLeparmentier: J'ai fais les sdifférents test avec le débugeur en ajoutant un sring ..
TheophileLeparmentier: dans mon code j'ai
TheophileLeparmentier: print("LEARN " + str(id)) print("LEARN " + str(id), file=sys.stderr, flush=True)
SeebOmega: TheophileLeparmentier tu as aucune sortie ?
TheophileLeparmentier: (Pour vérifier que la synthaxe est bonne)
TheophileLeparmentier: en sortie debugeur j'ai: LEARN 12
SeebOmega: et en sortie normale ?
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
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
TheophileLeparmentier: if 0 == len(list_sort_a_effectuer_le_plus_rapidement): http://chat.codingame.com/pastebin/3cbf510c-60b6-4112-9257-c301d8682208
TheophileLeparmentier: ça c'est tout mes prints
TheophileLeparmentier: c'est indenté au niveau du while = True
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
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?
dbdr: quelle perte de temps
SeebOmega: Perso je suis sur un MCTS mais je sais pas si je vais le garder tres longtemps
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 ?
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 !
dbdr: solution pince à linge
Vry: Une douche bien froide !
dbdr: sur le nez
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
dbdr: oui mais j'ai toucher prononcé Seb
JBM: bah ça se prononce pareil non?
dbdr: merci le tab qui marche plus
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)
JBM: genre les germaniques font /i/
Zorg1: l'anglais est une langue germanique non ?
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
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 ?
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 !
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é
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ù ???
Stilgart: son run était pas fini, si ?!
domak: j'arrive pour le défoncer...
b0n5a1: bah il était aegenté dans last battles et *pouf* plus là
JBM: il est pas en silver en tout cas
Stilgart: ha, peut-etre que si, le mien est pas loin du bout
Stilgart: b0n5a1: je l'ai pas vu argenté justement
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é
JBM: oh moi ça viendra si j'arrête de procrastiner les vrais trucs utile
JBM: là je suis sur l'automatisation de mon extracteur de logs
JBM: pour faire des stats sur mes timeouts
dbdr: :D
JBM: ceci dit, j'aurais un ranking bien meilleur sans timeout
JBM: me dis-je le soir pour me bercer
JBM: l'extraction automatique du code d'egaetan parait aussi avoir une bonne espérance de gain
egaetan: lol
JBM: s'il a pas bluffé sur le fait d'avoir tout montré, comme de bien entendu
JBM: tiens d'ailleurs pourquoi j'ai plus sa douce voix en bruit de fond
JBM: ah mais il fait des streams de 30s le blagueur
PAPS: Ceux qui Argent/Or vous avez cb de lignes de code ?
Oioi: ~250
Bob: mon dieu 440
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
MehdiNECIB: What is the command to shoot ???
Vry: Aller domak !
Gronahak: /pew pew
MehdiNECIB: Comment on fait pour tirer ?
MehdiNECIB: direct dans le code ?
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 )
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
MehdiNECIB: Je suis toujours bloqué
Kirbiby: lol
domak: merci egaetan... maintenant tremble!!!! ;-)
MehdiNECIB: J'ai print ma réponse mais ca change rien de d'habitude
Kirbiby: 44.04 chacun , rage
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
JBM: tiens je m'étais jamais posé la question
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
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)
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
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
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 ?
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à
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
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
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 :/
JBM: ça dépend de ce que t'en fais
VincentBab: pour dedoublonné
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
lhm: o/
VincentBab: oui pas faut Kirbiby
LewisSalik: Vous auriez des exercices a recommander pour s'entrainer a passer des entretiens ?
TheophileLeparmentier: Bataille est pas mal je trouve
LewisSalik: oke je vais essayer merci :)
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
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
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
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 ?
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
Stilgart: BlaiseEbuth: bah on pourrait
egaetan: les oranges
Stilgart: comme dirait JBM dans un stream, le client est un pigeon
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... ^^
JBM: avec 2c la prime d'urgence
Stilgart: jokovitch: l'ingrédient triangle jaune du contest en cours
BlaiseEbuth: Le fromage comme dirait l'autre...
dbdr: on pourrait mettre la moitié du prix, mais ça changerait rien au résultat
dbdr: ou 0 d'ailleurs
JBM: si y'a 2x la prime d'urgence sur la meme potion vendue simultanement
dbdr: 2
dbdr: je crois
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
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
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
JBM: ah mais c'est dit en toutes lettres dans les expert rules
dbdr: ah t'es en C++ Stilgart
Stilgart: dbdr: oui :(
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
Maka: merci !
dbdr: bon si ça ruine ton run, c'est déjà ça
pb4: Instant-resubmit
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
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
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
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...
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
JBM: ah mais c'est dans les inputs ca
BlaiseEbuth: Il reste 3 3 et 4 1
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
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
jokovitch: c'est quoi les critères pour atteindre la ligue or ?
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
CrazyHidenTalan: top 1000 bronze pour moi :D
Oioi: bravo :-)
Bob: gg
Bob: bon, finir de coder le learn
egaetan: JBM il y a des bugs quan don code en haskell ?
dbdr: :scream:
dbdr: pas possible, ça ferait une erreur de types
JBM: non, je pense pas en ce moment
egaetan: JBM appelle du js dans son haskell
JBM: à part le décompte des bonus ²voau² tout à l'heure
dbdr: prochaine étape, coder la victoire dans les types
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
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
HackingMachine: Vas y je participe
Bob: surprise, il y a des bugs
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
JBM: ah merde dbdr qui me coupe la blague sous le pied
dbdr: :angel:
CopperFr: y a quand même des string en pascal
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 ?
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.
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
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
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 !
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 ?
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
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
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
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
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
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
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 ?
JBM: mais on te donne 12 congruences d'ordre connu
reCurse: J'ai bien dit brute force
JBM: ce mot ne signifie pas la même chose pour tlm
reCurse: for (int seed = 0; seed < ...
reCurse: Ca te va?
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:
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 ?
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
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
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
Dee-R: Le 3eme test par exemple "9999241" correspond à un poney ?
b0n5a1: non, une mygale
Bob: une grosse mite
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 ?
Dee-R: ha merde je pensais que c'était la taille de ta ...
Traquila: non le 6eme du grimoire
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 ???
Vry: Ah, ben s'il ne requiert rein à l'exécution je prends
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
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
Vry: non
JBM: bon jvais continuer mon monitor alors
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 !
JBM: bon mon monitor semble marcher
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
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
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!
BlaiseEbuth: ^
Bob: choisis... judicieusement
BlaiseEbuth: :skull:
Vry: Faut que j'arrive à codé l'idée ...
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
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
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
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
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
PAPS: ok ouais je vois, par exemple sur ce challenge, je comprends, c'est très logique un graph
PAPS: mmh, et tu choisis le meilleur, au moins tu te complique pas trop la vie à chercher des règles compliquées
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
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
PAPS: ah ok, bon je vois pas trop les implications avec un graph mais bon
PAPS: je pense qu'après ce challenge j'essaierai de faire un exo du site en utilisant les graph
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
PAPS: ouais c'est un peu le bordel dans mon ia mdr
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
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
PAPS: Ok je me rapproche alors
yamo: index en base 11 ou 16 pour cacher les inventaires possibles dans un array.
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