Chat:World/2020-11-18
phord: I can't stop working on this for more than a couple of hours because my code is so full of spaghetti I'll forget how any of it works.
ClockSort: :spaghetti:
F0lio: idk if im the only one who suffer from the console size, why not more flexibility in size adjustment.
Icebox: just use local IDE
F0lio: yeah, that's what i do
F0lio: but..
useAllTheThings: the console output, would be nice if there was an easy way to resize it without taking up the entire vertical view
JamesOConnor: Is there anyway to get the inputs they give?
JamesOConnor: so as to test on a local ide?
Icebox: only if you reprogramm the game offline
Icebox: or you could copy the referee
JamesOConnor: how do I get the referee?
jrke: https://github.com/CodinGame/FallChallenge2020
jrke: ^^ refree
JamesOConnor: do they do that for all games?
Icebox: yes
jrke: yup
Xenoid: yeah
jrke: everygame is having refree
JamesOConnor: I mean do they release the referee code for all games
jrke: yes
Icebox: yes
JamesOConnor: where would I find the one for ghost in the cell?
Icebox: https://github.com/CodinGame/ghost-in-the-cell
jrke: JamesOCornnor just goto this link - https://github.com/CodinGame you will nearly every refree code here
JamesOConnor: Thank you, it was very painful to try and debug my code on the codingame system
ScriptKiddie0101: guys, what do you think about using random and getting 100% acceptance?
ScriptKiddie0101: without time limit
ClockSort: my arena submission is timing out, but it works fine in the Play My Code area
ClockSort: any ideas?
JamesOConnor: how much have you tested it in the play my code area
ClockSort: 5 runs, all workd
JamesOConnor: it might be that it is just not encountering that scenario
ClockSort: 100% of them timeout in arena
ClockSort: oh wow, the cause was C#'s [MethodImpl(MethodImplOptions.AggressiveInlining)]
ClockSort: i guess that plays differently in the arena somehow (Release vs Debug build, maybe?)
ClockSort: anyway, now i know that cause. Thanks for the "hm"
ClockSort: here was the cause: i have a prebuilt array of gamestates that i put my searched into. With this inlining flag, it searched so fast that it ran out and crashed "array out of bounds"
ClockSort: easy to fix, just add some "sleep" statements :D
Zenoscave: or more states.... ;)
ClockSort: @zenoscave thank you so much for your c# garbage collection ideas. I'm now searching 500k nodes in 35ms in C# because of your help. I was about to give up and rebuild in C++ when you saved the project for me :)
Zenoscave: clock sort wanna help me?
ClockSort: any specific question?
Zenoscave: I only get 20K max
NinjaDoggy: 500k nodes? O.o
NinjaDoggy: in 35 ms? o.O
Zenoscave: Beam search level wise with an array having trouble
ClockSort: everybody switch to C# now :laughing:
NinjaDoggy: do you have a hashmap of some sort?
eulerscheZahl: i'm hitting a wall :/
NinjaDoggy: to track transpositions?
Zenoscave: no
NinjaDoggy: also... locally? or on codingame @ clocksort
Zenoscave: lol NinjaDoggy if it was local it would still be impressive
ClockSort: here's a random match from my submission. https://www.codingame.com/share-replay/504875554
ClockSort: d is search depth, i'm doing full BFS on CAST and BREW.
Zenoscave: Ok just need to figure out bfs with an array again
NinjaDoggy: ok phew I panicked for nothing ;)
NinjaDoggy: I easily double the depth :P
ClockSort: Ninja, do you trim somehow?
Zenoscave: clocksort beam search
NinjaDoggy: i do trim but
NinjaDoggy: the result is the same as untrimmed
NinjaDoggy: guarenteed!
Zenoscave: Ninja you have perfect heuristic?
NinjaDoggy: yes!
Zenoscave: lies
NinjaDoggy: will talk about in my write up ;)
Zenoscave: DP????
Zenoscave: I can't wait
Tanmay_105: hello
ClockSort: i haven't decided how to trim yet
NinjaDoggy: @eulerscheZahl want to talk strategy if you're stuck? :D
NinjaDoggy: I've been thinking and working nonstop, despite low number of submission i swear ;)
ClockSort: my code still loads up on inventory though. ha. https://www.codingame.com/share-replay/504875722
ClockSort: what beam width do you use, ninjadoggy?
NinjaDoggy: i don't beamsearch, it's plain bfs
ClockSort: oh it's zenos doing beam
Icebox: oh eulerscheZahl you're awake already
Codeab: ?Icebox its in the afternoon
hbouillo: The world is made of different timezones buddy
Codeab: whoops
eulerscheZahl: 6am afternoon, yes
hbouillo: :D
eulerscheZahl: i think my bot rests too much. but how to change?
Gonny: NinjaDoggy you go to depth 15 and find the best path there? How are you not at least top 5?
NinjaDoggy: because I don't have enemy sim
NinjaDoggy: it's pure single play lol
NinjaDoggy: so if we're both against afk bot, and we learn the same stuff
NinjaDoggy: I'm almost confident my bot is stronger than top 5
NinjaDoggy: but that's not the game ;)
eulerscheZahl: because lots of users can plan 15 turns ahead
NinjaDoggy: also perfect shortest distance can be beaten by better heuristics
NinjaDoggy: hey eulerscheZahl
NinjaDoggy: you should make an optimization puzzle from this game :D
eulerscheZahl: nah
NinjaDoggy: given a set of tomes, and a fixed set of deliveries, shortest turns to do it ;)
DreadY2K: Anyone have tips for optimizing BFS? I can't get past 3 without timeout :(
phord: How many candy pieces can I fit in my backpack?
NinjaDoggy: 10
ClockSort: @dreadY2K what language?
DreadY2K: I think my bottleneck is copying an array, for the sequence of actions and for which spells are castable, at each step
DreadY2K: But idk how to better optimize that
ClockSort: make sure you aren't newing up and freeing a lot of memory in your core loop
DreadY2K: @ClockSort I'm using Rust, but I think this isn't a language-specific thing
DreadY2K: My core loop is using and freeing a bit of memory, to track the sequence of steps and which spells are castable at that moment
DreadY2K: I'm just out of ideas for how to cut that out and avoid all those allocs and frees
ClockSort: well that's probably what's slowing it down
ClockSort: I newed up all my memory on turn 1 (you get 1000 ms) and then keep references to it at all times.
raymoo: you should use some structure like an immutable linked list that would let you share path prefixes
raymoo: then you don't need copying or quadratic memory
phord: Will rust let you reuse parts of a pre-allocated pool?
ClockSort: it's not a pool, it's just a giant static array...
public static LeanState[] States = new LeanState[2000000];
DreadY2K: Rust has some allocator stuff that you can change how it allocates memory, but idk how to work with that specifically
ClockSort: i figure 2 million ought to be enough XD
DreadY2K: I think I'll go with raymoo's idea and do a linked-list thing
DreadY2K: That sounds easier than messing with how it allocs memory
tomatoes: make queue on first turn then only clear
ClockSort: that's more likely to get you a job
ClockSort: if any employer saw my code they would probably vomit :)
tomatoes: avoid heap/vec for small and tmp
raymoo: if you want to mess with alloc while doing the linked list thing you could allocate the list nodes in a pool
raymoo: not that I'm doing that
phord: If I saw my code on a whiteboard interview, I wouldn't hire me.
raymoo: and I dont' know rust so don't know how you would do that
JamesOConnor: I have broken my code beyond repair :(
DreadY2K: I could google how to do allocator stuff if I was sufficiently motivated
phord: \o/ Time start over!
DreadY2K: Language specifics are easy enough to research
DreadY2K: But high-level algorithms are harder to search for, and a weaker point of mine
DreadY2K: Hence my asking
KevinisMAD: How are people dealing with the resting mechanic within the bfs or are y'all just ignoring it?
eulerscheZahl: that's a valid move so it has to be included in the simulation
DreadY2K: Yeah, rest is a move that's equal to casting any spell, etc
jrke: REST becomes invalid when all of your CAST spells are castable
ClockSort: i'm considering a RESt any time something isn't castable.
DreadY2K: The optimal solution found by bfs (or fancier algs) wouldn't rest in that case, so you're safe from that
ClockSort: maybe i should change it to require two things
DreadY2K: Though it will slightly decrease fanout
ClockSort: yeah, it helps your search when you
remove double-rests
DreadY2K: So it's probably good for being faster
KevinisMAD: Yeah that was what I am wrestling with. Adding it when I have found the path that okayish or trying to include it within my bfs
hbouillo: ClockSort you might miss optimal solutions if you prevent a REST with only 1 spell used
ClockSort: hbouillo i just wonder if it's worth it
hbouillo: Unless you really have a performance issue I wouldn't. It could be quite common that you need to use the same spell twice in a row at the end of a path, for instance
hbouillo: I didn't get a proper look at available spells, I'm pulling that assumption of frequency out of my *ss
phord: I'm worried about it only because someone may consistently beat me to the brew I'm after.
hbouillo: If you consider REST at the first used spell, you will never have a longer path than without considering it
hbouillo: Assuming your algorithm finds you an optimal solution
hbouillo: Only reason to increase the REST requirement is for performances
hbouillo: time wise
NinjaDoggy: *fingers crossed* finally top 20 again?
NinjaDoggy: nvm it's still bugged :(
eulerscheZahl: meanwhile i struggle to be the first toad https://prnt.sc/vl82ea
jrke: toad behind toad
jrke: lol
Whiskee: are there any gotchas I'm not aware of, using a c# Stopwatch?
eulerscheZahl: i just realized psyho's pic shows to ears. I always thought something impaled one of his eyes
Whiskee: I'm getting timeouts with less than 45 from last line in to console out
eulerscheZahl: start the stopwatch after reading the first line of input
eulerscheZahl: we all get occasional timeouts, something wrong on the CG end
Whiskee: ah, I see, thanks
eulerscheZahl: so it it's 1 in 10-20 matches, accept it. nothing else you can do
eulerscheZahl: if it's*
sadakatsu: I am currently timing out despite continuously increasing my safety margin ~_~
Icebox: saaaaaame :/
eulerscheZahl: https://www.codingame.com/replay/504890582 aaand I'll just resubmit
Nabil-Hayek: why cant i view others code after clash is complete
Icebox: because they haven't shared it
eulerscheZahl: because you are fighting against bots and those never share
Icebox: shhhhhh
Icebox: eulerscheZahl you just had to break the illusion
Icebox: Spielverderber
eulerscheZahl: let's call them shadows of previous times
NinjaDoggy: How do I make my bot not give up :(
NinjaDoggy: finally I got opponent sim working, but now if it finds that the opponent wins
NinjaDoggy: it just gives up and plays random stuff :(
NinjaDoggy: instead of hoping the opponent messes up and maximize points still :(
eulerscheZahl: i had a similar problem. disabled the opponent again now :/
NinjaDoggy: also if my submit was 8/10
NinjaDoggy: and i'm on 10 winstreak should i resub?
eulerscheZahl: let it run
NinjaDoggy: 8/10 -> 15/17
NinjaDoggy: not worth resub?
eulerscheZahl: be patient
NinjaDoggy: ok ok
NoobCod3: can somebody help me learn Python
Icebox: did you read the tutorial NoobCod3?
NoobCod3: i forgot
dbf: I've read about timeouts, so implemented object pool in my code. I start to get timeouts, and was able to fix them only when object pool was removed :|
NoobCod3: i will read tomorrow
NoobCod3: because 11:15 for me in America
eulerscheZahl: very long ago (coders of the caribbean) CG had a bug where you always timed out your first 10 games on submit
NoobCod3: huh
eulerscheZahl: a top10 bot barely reaching top100
NoobCod3: wow
ScriptKiddie0101: wow you are the top 1
ScriptKiddie0101: you must have really high IQ
eulerscheZahl: just high dedication
ScriptKiddie0101: nice
Westicles: He also has a high basketball IQ
ScriptKiddie0101: how old are u
ScriptKiddie0101: and since when do you code?
dbf: for couple of hours today already I think? :)
useAllTheThings: Can someone explain what's happening at turn 28 here
useAllTheThings: https://www.codingame.com/replay/504893131
NinjaDoggy: @eulerscheZahl, earlier you linked some game history -> opponent conversion thing right?
NinjaDoggy: can you link it again please?
eulerscheZahl: this? http://eulerschezahl.herokuapp.com/codingame/replays/reproduce/?id=502157528
ScriptKiddie0101: euler, hwo old are u
eulerscheZahl: 29
NinjaDoggy: yea, thanks
NinjaDoggy: is there a way to generate input data from this?
ScriptKiddie0101: with which age did u start coding
ScriptKiddie0101: ?
NinjaDoggy: without running it locally? :P
eulerscheZahl: around 15
eulerscheZahl: just print all the input to stderr
ScriptKiddie0101: am i really going to impove here?
eulerscheZahl: https://prnt.sc/vl8hyc then you have it in the replay info
Icebox: ScriptKiddie0101 depends on how much time you're gonna put in
ScriptKiddie0101: tthis shortest code mode isnt good practice
eulerscheZahl: you can learn a lot here if you are willing to investigate on your own and follow your ideas. there isn't much handholding to guide you
ScriptKiddie0101: i'm putting in like 8 hours a day here xD
ScriptKiddie0101: i'm addicted to this website
Samer: is there a tutorial somewhere that explains how to set up a game locally for testing?
Rodrigo_the_coder: noobcod3, private chat me... :disappointed:
eulerscheZahl: Samer https://forum.codingame.com/t/how-to-run-ocean-of-code-github-project-locally/168041/3?u=eulerschezahl
Samer: thanks eulerscheZahl
sadakatsu: I am having severe timeout issues every single game now.
ScriptKiddie0101: do people really get jobs because of this website?
KevinisMAD: No idea but it is a fun way to practice skills used in interviews kinda sorta
Samer: i just play for fun and to learn new stuff
Samer: i'm an engineer, programming is not my career... it's a hobby
KevinisMAD: Although I will say I do also just like tweaking algos it makes you have to learn it more than just taking a class or whatever
DreadY2K: I just spent an hour trying to debug why my BFS wasn't working
DreadY2K: It turns out, my BFS was fine
DreadY2K: I just took the path to the LONGEST brew, instead of the shortest brew
DreadY2K: It did get me to re-write it as one BFS instead of one BFS per brew, which should be faster, so it's not a total loss
DreadY2K: But that's still a bit annoying that I'd pull a bit like that
Westons_Dad: hello all. n00b here just getting started today and looking to learn python. any resources you can point me to would be great. i have familiarty with MATLAB, but thats more scientific programming.
DreadY2K: I first learned python by doing the Codecademy course. It's free, not too long, and gets you started with basic language familiarity
DreadY2K: It doesn't get too deep into it, but it'll get you started
Westons_Dad: ok thanks! I'll have to check that out too.
sadakatsu: Since you have a background in MATLAB, you might find a somewhat straightforward comparison in the comparisons between the languages by looking at tutorials for the matplotlib, numpy, and scipy Python packages. You'll see stuff you probably used to do in Python syntax.
sadakatsu: It's not a traditional approach, but it might give you a better feel for what's going on when you switch to more traditional Python tutorials.
Uljahn: Westons_Dad: take a look at numpy and scipy packages for scientific python then
Uljahn: oh the chat freezing again
DreadY2K: Also, thanks to whoever it was that suggested I use a linked list instead of a vector for my BFS. I doubled my search horizon with this change.
daffie: linked list that's totally what I was just thinking to use but wasn't sure thanks
Whiskee: oh my god I spent minutes trying to figure out why the hell I got stuck with a full inventory
Whiskee: and
Whiskee: I wasn't on the left
Whiskee: but on the right
Whiskee: I'll just go to sleep
Xenoid: :D
Rodrigo_the_coder: :dissappointed:
Rodrigo_the_coder: :disappointed:
mabdallah1422: Is the thor one kinda bugged? It says I fail one of them but he reaches it and he just keeps going
Rodrigo_the_coder: thor part 1?
mabdallah1422: I doubt it is bugged since ik people have done it but he literally goes over the lightning
mabdallah1422: then just keeps going
Rodrigo_the_coder: in python 3:
Rodrigo_the_coder: http://chat.codingame.com/pastebin/8e405173-f9b8-4584-8d50-26a0d66467e8
Rodrigo_the_coder: did it work
mabdallah1422: idk why mine didn't though
Rodrigo_the_coder: I'm a expert at python
Rodrigo_the_coder: btw i saw your profile
mabdallah1422: Yeah I just started
mabdallah1422: I'm taking a python class too rn but just wanted more practice and this came up when I searched on reddit
Rodrigo_the_coder: https://docs.python.org
Rodrigo_the_coder: I'm so lonely :disappointed:
Uljahn: you have Automaton2000 here
Automaton2000: i was trying to figure out how to do
Q12: how to do what Automaton2000?
Automaton2000: what is your problem with it?
Q12: > Automaton2000 I want to know what you want to do
Automaton2000: there should be a thing in python
Q12: > Automaton2000 I agree, there definitely should be a thing in python :joy:
Automaton2000: when i go to bed now
Rodrigo_the_coder: i remember automaton2000 kicked me
Automaton2000: i'm trying to get the gold
Rodrigo_the_coder: I'm very lonely!!! :disappointed:
Rodrigo_the_coder: :disappointed: :sob:
Augis123: hi
Augis123: hello???
LLG: I'm trying to check if REST is a valid move, then iterate through all of my learned spells and update their castable property to true.
it's hitting my performance real hard, you guys have any idea how to deal with that?
Augis123: IDK :)
Icebox: is it really that costly?
Icebox: I wouldve thought flipping one bool for like 10 spells shouldn't be a performance issue :D
WINWINWIN: Are you somehow repeatedly going through the spell list?
Q12: when gold league will be open?
eulerscheZahl: in 9h
Q12: thanks, I don't know what else to improve till then, I am stuck :pensive:
Samer: eulerscheZahl still here?
eulerscheZahl: no
Samer: oh ok
Samer: :P
eulerscheZahl: he's gone ;)
Samer: how did you resolve the missing manifest error when compiling the game?
Samer: i've been fighting with this for an hour
Samer: the only main i found is in Fall2020Main, and that runs on the game engine... i downloaded the game engine, but no idea if and how to combine it with the fall game
Samer: i'm sure i'm missing something, or the code is missing a proper manifest
eulerscheZahl: did you build it with maven?
Samer: yes
Samer: build was successful
eulerscheZahl: tbh i never tried it run it outside of my IDE
Samer: when trying to run it, i get the manifest error
Samer: oh
eulerscheZahl: good ol' IntelliJ
LordSkaven: euler did you break your bot again?
eulerscheZahl: i don't think so. others just get stronger
eulerscheZahl: and submit is extremely slow again
eulerscheZahl: "We'd like to apologize for the troubles we had with the game and the platform at the beginning of the challenge. Everything should be running smoothly now. "
eulerscheZahl: Thibaud lied to us!
LordSkaven: I dont think I am going to submit before gold, unless I make a breakthrough
eulerscheZahl: i don't submit before it gets faster again
LordSkaven: one of the major things I still need to add is end game logic, i.e gaining more ingredients above tier0 at the end. I am losing quite a few games by 1 or 2 points because of that
TheSpiffiest: Do I have to wait for arena submissions? Like is the judging happening on my PC, or is it on the server? I would rather do other stuff than watch the matches
eulerscheZahl: happens on the server. but something is broken right now
eulerscheZahl: don't worry, you can close the tab and turn off your computer
TheSpiffiest: Coool. It's 4am here, just did a quick get out of wood league thing but I have to sleep
TheSpiffiest: thank you
raymoo: I left for 20 minutes and I got 5 battles since then
raymoo: simply epioc
Icebox: I could make another season of paranormal activity just by reviewing my code every episode ngl
eulerscheZahl: dbdr reported it 1.5h ago. let's see when something will happen about it
Joris_Serva: ka jus lopai
Icebox: Joris_Serva that's bannable
Icebox: refrain from insulting others on the chat
eulerscheZahl: then do it Icebox ;)
Joris_Serva: raminkis
eulerscheZahl: tell be when i should enter
jrke: reported what euler?
eulerscheZahl: the slow submits
Icebox: Joris_Serva just because you assume noone understands what you're saying doesn't make it okay
shroudo7: guys i use vs code and sync very good working. But i wanna see console output in my terminal. How can i do this?
Poviliukas: looks like arena simulations back on track
eulerscheZahl: whee!
Icebox: can we promote CG less
Icebox: so that it doesn't die every contest?
Icebox: Kappa
jrke: no promote CG as much as you can
eulerscheZahl: last time it went smoothly as far as i remember
eulerscheZahl: might be related to their database upgrade from postgres 9 to 12
eulerscheZahl: (just guessing)
jrke: except on first day euler(spring challenge)
eulerscheZahl: i already forgot about that. what happened?
jrke: there was boom in starting few hours so battles became slow or stopped for some people
eulerscheZahl: maybe i already went to bed at that time
jrke: 20% battles in an hour in wood leagues
LordSkaven: are submits better now?
jrke: i think its better now
WINWINWIN: I just checked, over 6000 people are participating, its fantastic :)
eulerscheZahl: and only 20 tshirts
jrke: and 3 canvases :(
Jchenaud: ya des sort repeatable ? si oui c'est quoi leur signe distinquetife dans la scene ?
eulerscheZahl: finally back to top10. legend will be a hard fight for me :(
eulerscheZahl: while my submit finishes, emil is still stuck
jrke: legend opening will be top 20-40 i think
eulerscheZahl: no :D
jrke: it was 16 for spring challenge right?
eulerscheZahl: i don't remember the exact number. but legend size usually is a fixed number and not a fraction
CommanderCero: wait does that mean you can get kicked out
eulerscheZahl: i also predict a small legend league (somehow that's how simulation contests usually turn out)
eulerscheZahl: you can't get demoted
eulerscheZahl: only go up
jrke: but it turns 100 until end of contest
eulerscheZahl: you may stay in the lower league and then have to beat the boss like you did for wood bosses
wlesavo: submits alive again
eulerscheZahl: emil still stuck
eulerscheZahl: dbdr too
eulerscheZahl: wait, dbdr is back
jrke: 195 bots computing too many
DomiKo: Is League boss fixed before the contest?
eulerscheZahl: no
eulerscheZahl: chosen on friday
eulerscheZahl: some player code
DomiKo: ohhhh
DomiKo: so that's how it work's
DomiKo: so they choose some place
eulerscheZahl: CG has no time to write top level bots
DomiKo: and that player is boss?
eulerscheZahl: yes
**eulerscheZahl was the boss at BOTG
DomiKo: nice
eulerscheZahl: unless gold players start to optimize against your bot to promote
eulerscheZahl: and then they kick you hard in legend
wlesavo: there should be an achievement become a boss
eulerscheZahl: too random
jrke: thats why BOTG boss ignores groot :grin:
wlesavo: but there would be a battle, people would tune their bots aiming somewhere to the league edge
jrke: i think 300 will be opening of gold
Rodrigo_the_coder: https://sga.talk-cloud.net/static/defaultClassEnd/index.html?skin=skin_beyond_default&language=english&time=&no=
eulerscheZahl: "We’ll put release in IDE for Rust, C#, F# and VB.net this morning (Wednesday) and see if doesn’t create too many issues for people used to Debug"
tomatoes: :nerd:
wlesavo: mid contest is the best time for language updates as always
Uljahn: that's more like a platform update
wlesavo: well still holds up
Uljahn: that's because there's a lot more feedback during contests
mlemm: anybody using dfs/bfs here ?
andrefpoliveira: bfs
mlemm: whats your rank andre
eulerscheZahl: with some variation of BFS you can surely enter top10
BenjaminUrquhart: I have a variation of bfs and I'm not there :upside_down:
andrefpoliveira: 1450th xD
mlemm: the thing is i was planning to use C to implement it but kinda dead end :D
Quidome: How deep is your look ahead?
eulerscheZahl: who?
BenjaminUrquhart: give me a sec
andrefpoliveira: Im trying to improve my depth
Quidome: anyone :)
jrke: mine depth is 5
andrefpoliveira: Im only getting between 3 and 6
Bubbly_Bee: Hi all. Is there possibility to buy a coding game T-shirt? Probably I will never get to top 20, but i would like to have one :D
eulerscheZahl: about 15
Quidome: what!
Quidome: nice ...
andrefpoliveira: damn
eulerscheZahl: you can only win them, limited edition
BenjaminUrquhart: seems to be at most 8
Quidome: And that in C#
Quidome: very good
BenjaminUrquhart: but it stops at first brewable
JBence: hey euler
wlesavo: somehow my depth 7 twice better than my depth 15 ladderwise
JBence: got you back
eulerscheZahl: i could go deeper if i prune more. depth means nothing
JBence: https://www.codingame.com/replay/504160287
Quidome: Aha with pruning, ok
eulerscheZahl: you won by 2 points JBence :/
eulerscheZahl: any obviously bad move i'm doing?
Quidome: OK , for another measure then, how many states do you evaluate in a turn?
eulerscheZahl: oh, that's an old version of my bot
andrefpoliveira: 150? xD thats sad
eulerscheZahl: the one which tells you when you can finish the next potion in the speech bubble
JBence: yeah, this is from yesterday
eulerscheZahl: 50k-60k states including duplicates
andrefpoliveira: F
wlesavo: eulerscheZahl what was the second message for?
Quidome: hm , I need to keep working :P
JBence: you can gain a lot of depth by dropping duplicates
DomiKo: Euler in first turn?
eulerscheZahl: your max score after X turns
DomiKo: in 50ms?
wlesavo: oh i see
eulerscheZahl: my time limit is 40ms
eulerscheZahl: i know i could go higher for the first
eulerscheZahl: but i don't reuse my tree and i don't need 1s to figure out i should LEARN
andrefpoliveira: I need to use repeatable spells
andrefpoliveira: Currently only using 1 time
wlesavo: same, with 40ms almost no timeouts actually
JBence: i'm getting timeouts with anything over 30ms
eulerscheZahl: i few still happen. even in turn 1 where i need 40ms out of 1s. but CG won't tackle that during the contest
DomiKo: I ask about first turn, because the number of simulation could differ a lot then I guess.
JBence: working on some tricky bit shifting right now
DomiKo: Using 1s is uselless I guess
DomiKo: I could reach like 200K in first one.
DomiKo: But my eval is so bad :(
JBence: you don't need that at the start
mlemm: guys any materials to read before recoding bfs with c++/c# ?
eulerscheZahl: just hit compile until there are no more errors
JBence: DomiKo, just try to learn good spells
rohit523: mlemm c language will also work in c++ right??
JBence: even without sim
DomiKo: In terms of top10 "good spell" is not that easy to pick.
JBence: I'm just saying that you don't need the sim for the spells at the start
BenjaminUrquhart: I am successfully losing all my battles
BenjaminUrquhart: yay
JBence: just do the opposite of what your bot suggest
BenjaminUrquhart: I'm not usually this bad, not sure what's going on
Scarfield: take a short break, can work wonders when stuck
BenjaminUrquhart: I did take a break, I haven't really touched this since bronze
k7n: is there a table where you can see which id a tome gets when turned into a spell?
Uljahn: there is the referee code
k7n: thanks, i took me a while to find how the new id gets attributed
RockyMullet: so is the chat dead or alive today ?
RockyMullet: oh alive, good good
RockyMullet: hi
wlesavo: hi, is this mullet alive? :slight_smile:
ciaoo: when will gold league open?
eulerscheZahl: 6h
andrefpoliveira: tomorrow
eulerscheZahl: in my timezone it's today
andrefpoliveira: they changed to 19th
eulerscheZahl: this display is sometimes buggy
andrefpoliveira: oh okok
eulerscheZahl: it's always monday, wednesday, friday
eulerscheZahl: (except if the contest lasts for a full month)
Ramdeath: static or dynamic arrays is faster for bfs?
Ramdeath: in c++
andrefpoliveira: Can someone teach me how to play offline?
tobk: there's no straight-forward way to see the number of potions the opponent has brewed, righ?
andrefpoliveira: You can keep track of how many times the score went up
Locter: Step 1: turn off the internet
eulerscheZahl: right, you have to count how often the score increases
andrefpoliveira: @Locter nice
andrefpoliveira: Now for real xD
eulerscheZahl: i can teach you if you use an IDE (intelliJ or eclipse). never tried from the command line
tobk: Turning off the entire internet is overkill. You just have to unplug your own computer.
Locter: =))
andrefpoliveira: I have intellij yeah
andrefpoliveira: Put I use python
andrefpoliveira: Is it realy needed?
andrefpoliveira: really
RockyMullet: I just saw a FB ad looking for a 3 "ninja master" senior programmer then it followed with "Do you call yourself Sir C++ of Coding ?"
I puked a little
ZarthaxX: :rofl:
ZarthaxX: excellent ad
ZarthaxX: carneeeeeeeeeee
RockyMullet: holla carrnneeeeeee
ZarthaxX: hai toad
RockyMullet: are you a ninja master ?
ZarthaxX: howdy carne
ZarthaxX: obv, im the najaest
ZarthaxX: ninjaest*
RockyMullet: you are Sir Ninja Master
ZarthaxX: you gotta show that ad btw :rofl:
RockyMullet: it's in french
RockyMullet: sadly
RockyMullet: I translated the good parts :P
ZarthaxX: cant translate it coz its an image?
ZarthaxX: sad :(
RockyMullet: filled with emojis and "remeber that thing when we were kids" so "old senior programmers" would apply
eulerscheZahl: hi ZarthaxX
ZarthaxX: haha okey :P
ZarthaxX: howdy toad
RockyMullet: it's a web / mobile app company who keeps poping in my ads, with cringe reference to ninjas all the time
eulerscheZahl: did i break my bot again or did the timeouts kill my submit?
RockyMullet: there webpage even is at .ninja
ZarthaxX: hhahahah so good
ZarthaxX: are there timeouts issues now??
ZarthaxX: you are sinking in the bottom toad :(
ZarthaxX: ah there you go lol
eulerscheZahl: "Really hard to investigate. Won’t fix before the end of the challenge. We’ll try to make improvements for next contest. I can only advise to take a bit more margin against the 50ms limit and to limit the nb of objects created for GC. It impacts all players."
RockyMullet: the toad can swim
ZarthaxX: okey... sad
ZarthaxX: true
eulerscheZahl: will this be one of the contests where i go to legend and call it a day?
JBence: nah, go for the win
andrefpoliveira: always ftw
ZarthaxX: eulerscheZahl prob
ZarthaxX: i dont see much motivation in this contest
eulerscheZahl: and resubmit again. 4 timeouts in 20 games at too much to climb
ZarthaxX: does it really feel like a solo optim game?
ZarthaxX: that's rough
eulerscheZahl: and now i lost again https://www.codingame.com/share-replay/505037009
eulerscheZahl: (╯°□°)╯︵ ┻━┻
eulerscheZahl: https://www.codingame.com/share-replay/505037118 doubleflip
ZarthaxX: fuck :(
yhyoxx: guys is there a way to remove timeouts for testing sake
wlesavo: easy https://www.codingame.com/share-replay/505028382
CommanderCero: euler leave my tables alone
eulerscheZahl: ┻━┻︵ \(°□°)/ ︵ ┻━┻
andrefpoliveira: Nice
CommanderCero: :rage:
RockyMullet: yhyoxx no, the best way is to test locally on your computer
RockyMullet: but thats not plug n play
FrancoisB: I don't get the line number in my C# expection stacktrace. I was under the impression it was there before. Is there a trick?
FrancoisB: exception*
Uljahn: i guess C# is now in release mode in ide :thinking:
eulerscheZahl: yes, that was announced to happen
FrancoisB: Maybe they though it could help with the timeouts?
FrancoisB: ok, cool
eulerscheZahl: "let's see how many people complain"
CommanderCero: ive just set my timeout to 40ms
CommanderCero: and hope it works
FrancoisB: just making sure I wasn't imagining things haha
FrancoisB: Well it was convenient to get the line number but it's nothing that a few debug statement can fix. I appreciate they are trying to improve performance.
[CG]SaiksyApo: Do you prefer promotion with or without recalc. last time, the server was still on heavy load even without it, so I didn't change that much :shrug:
Whiskee: what's the cutoff, usually?
dbdr: [CG]SaiksyApo without recalc, no point to it, better to save resources
[CG]SaiksyApo: It depends of the game and the amount of code required
[CG]SaiksyApo: Since I played that one, I know for sure that the cut will be way higher than my current score 280+
[CG]SaiksyApo: Like 150 or so
[CG]SaiksyApo: Silver was just using some spells in the tome + a proper use of rest time.
Gold should be a better use of tome + multiple casts + better strat overall
Csipcsirip: euler are u hardstuck rank30 now ?
wlesavo: any prediction for the initial legend size?
[CG]SaiksyApo: Legend is aim to be less than 100
[CG]SaiksyApo: (at the end)
[CG]SaiksyApo: So usually top 10/20
wlesavo: euler already started hiding his bot behind timeous
wlesavo: i see, thx
FrancoisB: :joy:
JohnCM: wow why is bronze so hard for this one?
JohnCM: i'm trying very hard not to code bfs, but looks like i have to even to get into silver
[CG]SaiksyApo: Bronze boss has no BFS, it's a simple loop
Maciulis: well you dont, but if you do, you will be semi prepared for silver
wlesavo: you will need *some* kind of search anyway, so better start now
CommanderCero: how do you know that
CommanderCero: oh nvm
CommanderCero: ignore me
JohnCM: oh is it? my code is just 50 lines for wood haha.. also a simple loop
JohnCM: i'm trying to do as little as possible to get into silver
MadKnight: why so ?
MadKnight: do as fancy as possible while u are still in bronze and get 100% winrate agaainst everyone in bronze
PED: Hey Maddy
JohnCM: haha i want to leave some room for improvement
PED: Wadup ?
JohnCM: if i code something too good, what if i can't improve further
mlemm: there is always room for improvements
RockyMullet: JohnCM and can your code be too good but not good enough at the same time ?
RockyMullet: there's not much room for heuristic in this one imo
RockyMullet: better go tryhard now
JohnCM: heuristic ftw!
JohnCM: have you heard of heuristic bfs
RockyMullet: my favorite
JohnCM: ya that will be my silver
RockyMullet: there's either something wrong with my sim or my scoring, I NEVER have a sim result that the last actions isnt a brew
CommanderCero: do you maybe check gameOver wrong
CommanderCero: in regards to potion count
eulerscheZahl: makes sense to end the game with brew
RockyMullet: lol you guys are assuming my sim reaches end of game haha
RockyMullet: but maybe that's it
tobk: if you have to pay tax for a spell that already has tax on it itself, you still have to pay the tax before getting the tax back, right?
PED: Hey eulerscheZahl
andrefpoliveira: yes
eulerscheZahl: hi
RockyMullet: I do have a check to see if all potions are brewed, maybe I wrongly ended up in that case and never check behond that
eulerscheZahl: haven't seen you in a while
PED: Havn't been around in a while ^^
JohnCM: hi
eulerscheZahl: and a new profile pic
PED: So corporate ikr
eulerscheZahl: but not the old Pango one
PED: Good times
PED: Anyway, I'm slowly discovering MCTS, had never heard of it before
PED: Would oyu have ideas on about to deal with the depth of the search ?
eulerscheZahl: cool algo if you have no idea what's going on
PED: Ahah exactly
aCat: Standard Output Stream: http://chat.codingame.com/pastebin/a012b5e3-def4-4aab-ad8e-89b607dfcea6
eulerscheZahl: beam search for this game i guess
aCat: why this can happen - it catches my output !
eulerscheZahl: so little opponent interaction
eulerscheZahl: maybe a really close timeout?
aCat: according to Stopwatch I did my search in 3ms
eulerscheZahl: this contest i a nightmare regarding timeouts
PED: +1
eulerscheZahl: and a "won't fix", at least for the duration of the contest
PED: Ok thanks for the tips euler :)
RockyMullet: ok, clearly it, once I brew a potion, I never pass in my sim with this potion brewed, something is wrong
hasleron: how do you put out the time it took for the move?
eulerscheZahl: depends on your language
hasleron: c++
mlemm: for C i ise clock()
mlemm: and difference
RockyMullet: meaning I only choose sims with a brew last, meaning I favorise late brews, meaning my bot has ADD and always switch brew
hasleron: oh I see
PED: I've had issues with clock in this contest,, I switched to C++ and high_resolution_clock, since then I have fewer timeouts
JohnCM: oh no... 35/2406 for bronze with pure heuristic
JohnCM: i'm still short:(
JohnCM: haha time to pull out the big guns
JohnCM: if ppl put sacrifice on a spell, can i learn that spell and gain their sacrifice?
hasleron: if you can afford your own sacrifices first
struct: Hello
JohnCM: as in the sacrifice is for a spell at the bottom of a tomb
hasleron: yeah
JohnCM: cool, i see some of my opponents building pyramid
JohnCM: they put 4 tier 0 sacrifice at the bottom level
JohnCM: might as well just learn that spell
hasleron: I see many just learning many spells in the beginning, seems quite successful
RockyMullet: JohnCM you can substitute a spell cast that only gives you tier0 ingredient for a learn spell giving taxes
RockyMullet: you get tier0s AND learn a spell, everybody wins
struct: Anyone getting random performance spikes in the same game?
struct: Like 1 turn has 25% less performance than the rest>?
eulerscheZahl: everyone
JohnCM: thanks RockyMullet
JohnCM: rank 35/2406... not enough
struct: So similar to what I said euler?
JohnCM: i'm determined to heuristic my way through bronze
PED: Can you send a replay JohnCM ?
SelectNull: he-he-he. My bot doesn't use bfs, just only a couple of primitive if-else heuristic rules and it is in the middle of silver leauge...
mlemm: im stuck in the middle too with same if else
JohnCM: https://www.codingame.com/share-replay/505077713
JohnCM: this is like 100 lines of if else code
Chiefbas: 🍋🍋🍋
JohnCM: heuristic can win this game
SelectNull: our if-else bots can mine bitcoins when others calculate paths )
mlemm: yeah when i saw the execution time i was like, it's dumb yes but its hella fast
PED: Hmm maybe you could consider buying more spells
struct: Yeah, this really seems to be related to CG, I tried localy, and the turn that I got around 60% less sims, had no performance difference localy
struct: in c++
PED: Overall it looks good tho JohnCM :)
PED: In this replay towards the end nearly all the potions brewable require some green and you don't have many ways to produce it, so you rely on the basic spell that turns one blue into a green several times, that's not super efficient
ZarthaxX: PEEEEEEEED
PED: ZaaaaarthaxX
ZarthaxX: howdy
eulerscheZahl: TOOOOOAD
eulerscheZahl: sorry
ZarthaxX: i can see your real face now
ZarthaxX: calling yourself toad :rofl:
PED: Pretty fancy what the tecvchnology can do nawadays
ZarthaxX: what haha
ZarthaxX: photoshoped
Astrobytes: Good afternoon all
ZarthaxX: heyo astro
struct: hi
mlemm: hello there :D
Illedan: (╯°□°)╯︵ ┻━┻
CommanderCero: everyones just throwing my tables around
eulerscheZahl: little Bobby tables...
Illedan: I can drop them instead..
JohnCM: thanks PED
JohnCM: i'll think of how to buy spells
JohnCM: now i'm 6/2402 just need a little more push
eulerscheZahl: wait a bit
struct: ^
struct: you are only .76 points away frmo boss
eulerscheZahl: how do you see that so fast?
struct: Im in bronze
eulerscheZahl: clever
JohnCM: haha... if this one cannot i'll code a bfs tomorrow
eulerscheZahl: good idea
JohnCM: just lazy to code extra haha
wlesavo: wait till you see silver boss
JohnCM: silver no boss yet right
DomiKo: yes
eulerscheZahl: in 4.5h
struct: Im going to try and implement BFS to day
wlesavo: today there gonna be one
struct: I think my sim is fast enough
eulerscheZahl: i'm more worried about the golden one
wlesavo: same
JohnCM: see who's code gets selected for silver then
JohnCM: whose*
wlesavo: legend is gonna be so hard
JBence: approx how many players will go through gold?
wlesavo: saisky said ~150
wlesavo: damn tilda
DomiKo: can we all crash our bots that boss will be bad?
eulerscheZahl: what's wrong with the tilde?
DomiKo: and make easy legend for everyone :D ?
JBence: i read it as a tilde
struct: tilde always showed like that for me in chat ~ -
eulerscheZahl: we already do crash our bots
eulerscheZahl: i blame CG
eulerscheZahl: right, you and your weird font sets
JohnCM: yes easy legend ty
JohnCM: pls bump me up bronze... i'm 2 spots away from boss
JohnCM: XD
JohnCM: thank you everyone.. i'm in silver now:)
PED: GZ !
JohnCM: thanks PED
JohnCM: i realize my bot crashes when it reaches tier 4 ingredients and cannot do anything else
JohnCM: what do you all do to resolve it?
goolmoos: use the tier 4 ingredients
JohnCM: but what if i can't
SirLoxley: or convert to tier 0 and dump on tomes
JohnCM: i see... you need the convert tier 0 spell though
JohnCM: anyway i only plan 3 steps ahead so far
JohnCM: maybe it will be resolved after i do bfs
goolmoos: try to plan ahead more than one move at a time
SirLoxley: consider tomes as some sort of a extra heap for tier0 ingreds
goolmoos: yeah, 3 is still not mush
JohnCM: my 3 steps ahead is actually not really planning
JohnCM: it is more like a for loop for requirements
JohnCM: it is still essentially a one-step planning
JohnCM: oh.. and 1283/1623
JohnCM: in silver
JohnCM: i think with bfs can go gold alr
JohnCM: also, quick question
JohnCM: do you all use the repeated casting ability?
RockyMullet: its important yes
JohnCM: i don't see ppl using it though
JohnCM: maybe not in bronze
WaRiOrOfCoDe: https://www.codingame.com/replay/505102312
WaRiOrOfCoDe: i don't no what to improve next?
WaRiOrOfCoDe: hint pls?
RockyMullet: JohnCM in the viewer it looks like a single spell
SelectNull: JohnCM without bfs you can be in the middle of the list as I do )))
JohnCM: haha i am already in the middle of the list lol
SelectNull: cool)
JohnCM: warrior of code, yours look like you are not prioritizing the right spell
JohnCM: your potion making speed same as the boss, but the score is much lower
JohnCM: go for spells that give high cost low turn ratio
JohnCM: for me i used a heuristic to judge how many turns it needs
JohnCM: with bfs you can get exact
WaRiOrOfCoDe: hmm basically I have to improve my method to calculate profit
WaRiOrOfCoDe: right?
CommanderCero: Question: You can only get 8times an urgency bonus during a game right? +3 4 times and +1 4 times. Its not like once +3 is used up that +1 will always be awarded, right?
struct: yeah
PED: WaRiOrOfCoDe in your replay you almost only use basic spells
WaRiOrOfCoDe: Hmm I don't know why ?
PED: These are not very efficient, maybe you shoudl get more spells or find a way to use your non-basic spells more often
WaRiOrOfCoDe: Yeah I am working on that...
WaRiOrOfCoDe: thanks
JohnCM: yes... non-basic spells save turns
PED: npnp :)
WaRiOrOfCoDe: @JohnCM thanks for input as well
WaRiOrOfCoDe: your*
JohnCM: http://chat.codingame.com/pastebin/79b76988-4436-49b5-b960-1edbb37e6fec
WaRiOrOfCoDe: thanks :smiley:
WINWINWIN: How many more hours till the opening of Gold?
struct: 3:30
struct: probably
WINWINWIN: 3:30 by which time?
WINWINWIN: Just so that I can convvert to IST :D
struct: I meant add 3:30
Uljahn: in hours from now
struct: to your time :p
WINWINWIN: :P
arkwaw: action id = 0 was always {-3,0,0,1} :o ?
arkwaw: for some reason I had {-2,0,0,1} :o
eulerscheZahl: but add 3h 30min to which timezone?
the...G: how do I get into silver level?
struct: be above bronze boss
the...G: IS that named UrBossa?
struct: yes
aCat: Warning: your code did not read all available input before printing an instruction, your outputs will not be synchronized with the game's turns and unexpected behaviour may occur.
the...G: Oh, I've no chance. I'm rate 1269
aCat: What may be the reason for this if i am reading everything and then doing stdout?
Uljahn: could be timeout i guess
aCat: it is timeout - but I didn;t know the timeout is because of that or this is because of timeout
eulerscheZahl: just fix it aCat
aCat: ...
AshKetchum: aCat I once got it when I printed lot of debug info to err stream
eulerscheZahl: that's the kind of sentence i would expect from AutomatonNN
the...G: I had that once, I closed the browser and reopened. It went away.
AutomatonNN: uploaded some contest to see if it works
eulerscheZahl: https://prnt.sc/vlhywt :(
eulerscheZahl: i should just give up
CommanderCero: *sad toad noises*
aCat: fix it
struct: beaten by a toad
struct: If that doesnt motivate you, I dont know what will
eulerscheZahl: he alrady did on topcoder
struct: No more ideas euler?
eulerscheZahl: speed
struct: Im getting around 400k
struct: 400-500k
struct: By doing getAllActions, play random do simple eval
eulerscheZahl: remove a 0 and we are on par
struct: If I remove pragmas I get one less 0
struct: But speed is not everything
yhyoxx: i just implemented minimax to find best decision in every step, more that 4 in depth results in timeout, am i wasting my time or should i explore ways to optimize ?
struct: Despite me having this number I doubt I can do a good AI
tpeti: can it happen in CoC that the evaluator mistakes? I mean two practically same solutions got 80% and 100%
CommanderCero: i also can get around 200k but my ai is lacking in terms of heuristic and opponent prediction
Nerchio: when saying these numbers do you guys mean states processed or created
LordSkaven: I usually explore around 4000 nodes,
CommanderCero: rounds simulated, so states processed
yhyoxx: per turn µ?
struct: Create state -> for (i < depth){ getallactions, playrandomAction} eval
Presac: How do you save your states/nodes? Cause mine seems to take to long to process.
struct: How big is your state Presac?
Presac: Pretty big.
struct: how many bytes?
Presac: oh, didn't think of bytes. Using classes in python.
yhyoxx: my states are a class with a bunch of vectors and methods
Presac: Haven't tried my hand a lot at these bots. Didn't think about using bytes to represent it instead.
struct: my state is 168 bytes
yhyoxx: i guess classes are slow, one should try to store everything in smaller data structure
Presac: Damn that is a lot of restructuring of my code...
yhyoxx: mine is 136 apparently
SauceChord: Is this chat about the spring challenge or something more global?
struct: global
yhyoxx: is it spring already where u are ?
SauceChord: It's fall where I am :)
yhyoxx: :')
tempux: its spring in southern hemisphere
tempux: probably
struct: Damn, I now feel your pain euler, I saw leaderboard
AbsentMoon: Is anyone else trying to run the game locally?
struct: and so few languages at the top besides rust and c++
Rodrigo_the_coder: improve my code:
Rodrigo_the_coder: http://chat.codingame.com/pastebin/648841e1-beb5-46e6-83e2-8624913af6de
Uljahn: pardun?
struct: je ne comprend pas
Rodrigo_the_coder: http://chat.codingame.com/pastebin/1457a9fa-ff48-4c35-bd3c-9c28096ff93f
Astrobytes: Read my reply: No
tempux: I have run the code locally
tempux: @absentmoon
Rodrigo_the_coder: read my reply: :disappointed:
Rodrigo_the_coder: http://chat.codingame.com/pastebin/19d8edb2-3454-42ce-8820-5d99fcffb6a2
Rodrigo_the_coder: never got to silver
Astrobytes: Rodrigo_the_coder: There is a way to ask for help you know
Astrobytes: Just pasting your code and demanding we improve it probably isn't the best idea.
AshKetchum: When I run my code with the same inputs locally, my bot chooses some other move, how is this possible. I am using srand and rand, previously it was repeatable
struct: http://files.magusgeek.com/csb/csb_en.html
struct: Besides that, I cant help you much more, I have to start spending time on contest
Uljahn: legend or delete?
AshKetchum: Uljahn was the question for me?
eulerscheZahl: is it harsh to use ?disableChat when random users keep DMing you with questions?
struct: If that was the case I could delete now
Astrobytes: Depends how many/how frequently eulerscheZahl
struct: Depends on the user too
Astrobytes: You really have been getting them this time around huh
Astrobytes: Yeah for sure struct
eulerscheZahl: somehow i'm a DM magnet this contest
Uljahn: AshKetchum: have you set the same seed?
struct: This is why i am not at the top
AshKetchum: yes
struct: /s
AshKetchum: 54321 was my seed
LordSkaven: I want to ask euler some questions, but I decided to wait until after the contest
eulerscheZahl: https://www.codingame.com/replay/505164739 and i was supposed to win this game
yhyoxx: who wouldnt dm you
Astrobytes: Being the Almighty Toad is a double-edged sword eh ;)
struct: that is the way to do it lord
yhyoxx: who wouldnt want to dm you*
eulerscheZahl: I
struct: I dont thnk I ever dm anyone during contests asking questions
struct: I just use global chat
ZarthaxX: ofc you dont
ZarthaxX: :D
struct: ZarthaxX you are different
ZarthaxX: im your partner
struct: except ZarthaxX and MadKnight
ZarthaxX: :*
WINWINWIN: Euler, dont you have to follow the person for them to be able to DM you?
ZarthaxX: how is that sim going structo
struct: :hugging:
struct: 400k-500k sims
Astrobytes: ZarthLoverStructaxX
struct: I want to try something else though
ZarthaxX: AstroTaxx
ZarthaxX: AstroTaxX
Astrobytes: :P
eulerscheZahl: no WINWINWIN. when i'm here on chat they can just click my name
ZarthaxX: okey, the tax part doesnt sound nice
ZarthaxX: AstroThaxX
ZarthaxX: :rofl:
WINWINWIN: Oh, yeah forgot about that
Hurda: Does my Java code run in the JVM with anything else?
Astrobytes: Meh, don't worry Zartho, just messing around, call me what you like :P
Hurda: Is there any more info on the JVM environment?
ZarthaxX: Astrobyto then
WINWINWIN: Hurda, I think that there are some details on languages in the forum
WINWINWIN: I`ll try to pull up the link
Hurda: TY that wold be helpfull, I'm trying optimize something nad I could not get proper sleep thinking about it... :-D
WINWINWIN: :D we all know the feeling
Astrobytes: hey WINWINWIN :)
WINWINWIN: Hey Astrobytes :)
SirLoxley: Who else is adding random insults at the end of the output?
SirLoxley: I put them to spice up the battle.
MadKnight: just don't make them too straight
Presac: Anyone who has some tips on working with bytes to represent states in python?
MadKnight: yea i got one
MadKnight: don't use python if u want speed
Uljahn: Presac: structured arrays or ndarrays in numpy?
Presac: numpy would be preffered
WINWINWIN: Anyone know where the forum post on the details of each languages is?
WINWINWIN: With how they are loaded and used?
eulerscheZahl: do you mean the FAQ? https://www.codingame.com/faq
WINWINWIN: Ah, thanks Euler
Presac: Just getting questions back from asking questions is already giving me more to work with. There are so many things I didn't even think to use, even though I know about them. Had forgotten about numpy too.
AllYourMCTS: anyone have function that takes number of each ingredient and outputs index into the 1001 possible ingredient hands?
Uljahn: ye
eulerscheZahl: no
AntiSquid: maybe
Uljahn: inventory_ix = np.where(np.all(possible_inventories == inventory, axis=-1)) # ezpz
AllYourMCTS: lol
AllYourMCTS: yeah a hashmap may be fastest
AntiSquid: do you have a pet turtle ?
JohnCM: you could just store the inventory as a 4-digit number
AntiSquid: oh john is back, hi
JohnCM: abcd, a = tier 0, b = tier 1, c = tier2, d = tier3
JohnCM: hello
wlesavo: JohnCM 10 is not a digit though
ZarthaxX: hexa hehe
JohnCM: you won't have 10 of the same ingredient will you?
AllYourMCTS: yeah but i want to use it as an index into an 1001 length array
JohnCM: haha
RaghuveerJayanth: help me in coders strike back
AntiSquid: https://imgur.com/a/MetUCuk :thinking:
struct: There are so many resources for csb
struct: on forum
struct: and the link I provided also helps
ZarthaxX: AntiSquid scary
struct: sure
struct: Do you want my avx version or non avx?
RaghuveerJayanth: coder stiirke back
Astrobytes: lol
AntiSquid: RaghuveerJayanth .... . .-.. .-.. ---
eulerscheZahl: http://chat.codingame.com/pastebin/14e0c710-1ce3-4044-b3ae-456ad57d3b2d
ZarthaxX: lol
eulerscheZahl: i'll cry in the corner
Illedan: I
ZarthaxX: sad
Illedan: I'll join you.
eulerscheZahl: 21 losses. 10 by timeout
JohnCM: don't lookahead so much then
eulerscheZahl: some even in the first turn. i use 40ms and CG allows 1s
Illedan: -.-
Q12: when gold league is open?
eulerscheZahl: in 2.5h
eulerscheZahl: around 150 will promote
Q12: :disappointed:
tempux: Sadge
AntiSquid: that timeout bug was there during the Winter Throne "contest", timeouts at around 30ms
LordSkaven: 150? Damn that is rough
eulerscheZahl: wait for legend
eulerscheZahl: that's like 10-15
AntiSquid: that is euler's prediction, nothing official LordSkaven
CommanderCero: 100% confirmed
AntiSquid: where
eulerscheZahl: but my predictions will match the official numbers
AntiSquid: top 20 probably for legend
eulerscheZahl: i also predicted 7k contest participants
CommanderCero: i mean hes hypnotoad
LordSkaven: yeah because your predictions are working so well for your bot euler hehe
struct: I believe euler
struct: yeah
struct: I predicted 6k and his prediction seems more accurate
AntiSquid: don't think it goes up to 7k ... 6.5k ok but 7? nah
struct: There are currently 6246
eulerscheZahl: and still a weekend
struct: Also a lot of people mostly from japan, keep sharing it on twitter
eulerscheZahl: and i made the prediction in friday or saturday
AntiSquid: 200-300 for gold imo
struct: too much imo
eulerscheZahl: eulerscheZahl: i go with 7k https://cg.spdns.eu/wiki/Chat:World/2020-11-14
yhyoxx: what would be a good eval function ?
wlesavo: AntiSquid saisky was on chat today, he backed up eulers predictions
wlesavo: i.e 150 / 10-15
AntiSquid: oh
eulerscheZahl: did he also confirm the 7k?
AntiSquid: well that's different then :P
xSkyline: If I don't get promoted today to gold can I get in tomorrow if my bot improves ?
AntiSquid: that's not a prediction lol that's a statement
struct: yeah
eulerscheZahl: i'll single-handedly create 500 alt accounts if it's necessary
AntiSquid: official one too
struct: xSkyline yes
JohnCM: then euler can dominate gold league with his alts. no one can rise to legend
AntiSquid: you have time until contest ends, you can even do a last minute submit with the #1 bot and reach legend ....
struct: 1 submiit legend
struct: do it
AntiSquid: if you have 1k TPUs at home that is .
AntiSquid: :D
AntiSquid: some kind of ML got to be possible for this game, right ?
MarekM: is there any RAM limit? it feels like i am timeouted for no reason (python)
struct: 768MB
eulerscheZahl: 768MB
eulerscheZahl: (╯°□°)╯︵ ┻━┻
AntiSquid: 768MB
CommanderCero: 768MB
wlesavo: euler have timeouts irl already
MarekM: it should be enough for everyone :)
MarekM: thank you
eulerscheZahl: submit finished now games parsed: 99 timeouts found: 14
struct: ouch
struct: That is way too much
CommanderCero: whats your time limit
eulerscheZahl: i think i should be higher than #14
eulerscheZahl: 40ms
struct: for sure
eulerscheZahl: and timeout in turn 1
CommanderCero: okay nvm
struct: with 14 loses due to timeout
Csipcsirip: i hade to set my time limit to 35
AntiSquid: euler who do you predict to rank higher at the end, you or your twin ?
wlesavo: i had none last submit, also with 40 ms
Gronahak: I'm curious how do you count thos timeouts ? :thinking:
AntiSquid: end of contest i mean .
eulerscheZahl: wait, i forgot 3 games (wasn't completely finished)
eulerscheZahl: games parsed: 102 timeouts found: 16
CommanderCero: yes found 2 more
struct: so close to 15%
struct: Way too high
eulerscheZahl: 30 losses, 16 my timeout
eulerscheZahl: otherwise i'm happy with that submit
struct: Gronahak using api and then extract replay data
eulerscheZahl: http://chat.codingame.com/pastebin/8bdfd3b5-17a5-4029-bd5a-5c1e21b5194b
AntiSquid: you can look at last battles and count manually Gronahak ... or use api
struct: at least 2 on turn 1
struct: they are all on turn 1?
struct: what
eulerscheZahl: most, not all
xSkyline: eulerscheZahl does your timeout check account for garbacge collerctor stalls ? Maybe you have some GC stalls between the time you check the timer and start it again
eulerscheZahl: time starts after reading inputs (first line actually)
wlesavo: time to rewrite
eulerscheZahl: i'll pick dbdr to compare. he just submitted too
struct: im rewriting too
struct: I want to try something
Gronahak: Oh nice ty didn't know about the API
struct: I think its my 8th rewrite
AntiSquid: no need to rewrite if i didn't write much in the first place *smart thinking*
eulerscheZahl: no timeout found? that doesn't sound right
dbdr: eulerscheZahl ?
eulerscheZahl: do you have any timeouts?
AntiSquid: Automaton2000 ?
Automaton2000: i think he wants to build a bot to get there
struct: if(language!=rust && rand() % 100 == 15) timeout
dbdr: not in my sub
Uljahn: so RIIR is new meta? :thinking:
eulerscheZahl: why not?
Illedan: RIIR?
dbdr: 25 ms
eulerscheZahl: i have 16 :(
eulerscheZahl: ah
Gronahak: @struct :joy:
eulerscheZahl: but i have so many in the first turn already
dbdr: #16 with 16 timeouts? wow
eulerscheZahl: http://chat.codingame.com/pastebin/8bdfd3b5-17a5-4029-bd5a-5c1e21b5194b
dbdr: timeout in 1s?
eulerscheZahl: i use 40ms
struct: Its very strange
eulerscheZahl: but most of my timeouts are frame 1
Kaa: Is there any way to get the example of input?
dbdr: which is 1s
Illedan: Did you check if you actually crash eulerscheZahl? :P
eulerscheZahl: random input:
eulerscheZahl: http://chat.codingame.com/pastebin/18137e1a-8437-4f8b-b318-19082eb8e9ae
dbdr: Kaa print it yourself
Kaa: thank you
eulerscheZahl: how do i check that Illedan?
AntiSquid: what if you run your code offline multiple times ?
AntiSquid: do you ever crash 1st turn?
eulerscheZahl: send to IDE works fine
Illedan: hm, ok
struct: euler print to stderr before starting the search
Kaa: should I believe that 500,000 operations per turn be <50ms (on Rust)?
Kaa: *500,000,000
eulerscheZahl: actually I do: https://prnt.sc/vljrf6
eulerscheZahl: i see the turn input
eulerscheZahl: but no turn result in stderr either
eulerscheZahl: i start my timer after reading all the inputs. but shouldn't make much of a difference?
struct: no way it can make a 10ms difference
struct: if it does its CG fault
struct: What do you mean Kaa?
eulerscheZahl: we are talking about turn 1. 960ms difference
AntiSquid: CG timer lost precision due to the many participants?
struct: true
eulerscheZahl: i really consider porting to C++
struct: Do it
Kaa: We have TL for 50ms per turn.. I'm trying to figure out how many operations my algo can do
Presac: eulerscheZahl what does the last 4 numbers in each line represent in the image?
struct: castable repeatable?
eulerscheZahl: that's just the input stream to stderr
AntiSquid: tax
eulerscheZahl: i'll check timeouts for another C# player
Illedan: Check mine.
eulerscheZahl: emkjp with 3
eulerscheZahl: http://chat.codingame.com/pastebin/c1bbfd64-7196-47c8-86b5-dbdfbe79b22a
JBence: I had a few even at 30ms
eulerscheZahl: illedan with 5
eulerscheZahl: http://chat.codingame.com/pastebin/2dcc2bab-fe14-4b5c-ac7d-e99dda73178b
eulerscheZahl: games parsed is folder size, i should limit to games where you take part :D
Illedan: yeah :P
struct: euler now check for c++ player :)
AntiSquid: check emil
PED: Hey! do we know around which time gold will open?
struct: in 2 hours
dreadylein: you had the timeouts on first turn right ?
PED: ty
eulerscheZahl: Illedan: 5 out of 90
Illedan: eulerscheZahl, I do get longer time on the first round from the first input to the last input :O
Illedan: Only 7 ms, but you should check your code
Illedan: every other round is 0 ms
eulerscheZahl: but 900ms?
Illedan: :shrug:
Illedan: Worth measuring :P
eulerscheZahl: emil without any timeouts
dreadylein: dont know enough about the gc design but in theory, if they feed 1 line and the server stalls for x it could absolutly mess up measuring on the clientside i guess
dreadylein: but in this case you would have to see it at least sometimes in native languages also
eulerscheZahl: ClockSort (C#):
eulerscheZahl: http://chat.codingame.com/pastebin/dec3975f-702f-4af0-b89a-19124e6171a1
LucasMorin: hello, i would like to train on trees, do you know which game I should be playing ?
dreadylein: but yeah .. 900ms is a lot of time for a gc
eulerscheZahl: i definitely get more timeouts than other C# users
eulerscheZahl: but C# seems to be more affected than Rust (would need more data for that thesis)
ClockSort: my c# strategy is to never new anything onto the heap that will lose its reference
ClockSort: and I'm running 650k iterations DFS with no problem in C#
eulerscheZahl: rafbill 3 out of 228
ClockSort: almost no timeouts
hbouillo: Is there any way to know automatically how many battles timed outs?
ClockSort: currently 57th place.
ClockSort: sorry, BFS, not DFS lol
eulerscheZahl: that's why i checked you ClockSort. you are among the highest with C#
eulerscheZahl: I still tend to convert to C++
ClockSort: yes, I decided to stick with C# to improve my C# skills, which are more useful in other areas of my world
eulerscheZahl: you have to finish this fight without me then. I believe in the power of C#. just not on this CG platform
reCurse: Your mileage may vary
reCurse: Oh of your world
ClockSort: I last used C++ about 20 years, so i'm a bit rusty there, no pun intended, haha
reCurse: Carry on
ClockSort: recurse you've been really helpful, thanks btw
reCurse: :blush:
hbouillo: Wasn't the gold league supposed to open 4 minutes ago? :grin: Sorry I'm just getting excited hehe
reCurse: 2 hours
reCurse: Approximately
reCurse: Could be 3! or more
hbouillo: Okay, thanks!
ClockSort: probably not 3! because that's actually 6
hbouillo: So there's no fixed time for leagues to open?
reCurse: I was afraid of that joke the moment I pressed enter
ClockSort: unexpected factorial :D
RockyMullet: good old time in contest where I fix my stuff and it's worse because I was avoiding bugs
reCurse: It's done manually
reCurse: But usually around whatever is your time in 2 hours
hbouillo: Oooh I see!
hbouillo: Alright, thanks!
ClockSort: @rockymullet I know how you feel!
ClockSort: i had a bug where REST would only rest one of my items in the search. I fix it and now I rest too much. haha
Csipcsirip: rest in peace
RockyMullet: ClockSort yeah exactly, had a bug where I would stop at first brew in my sim, I fixed it, now I full my inveotyr too much cause I dont have any difference in my scoring for having too many ingredients, as long as I have enough
ClockSort: exactly :)
ClockSort: recurse what do you think of LEARN commands? worthwhile to put them in the search, especially at first, or better to build a separate heuristic for your spellset?
reCurse: :zipper_mouth:
RockyMullet: learning allows you to cast it deeper in your sim
Q12: I check my sim with Learn and it didn't help
MaxTheorum: I remember there being a github page for something to convert cpp into codingame compatible code but I can't seem to find it, does anyone know what it's called?
struct: convert cpp into cg compatible?
Astrobytes: file bundler?
MaxTheorum: like convert multiple files into a single one
struct: I use this one https://github.com/MarcosCosmos/cg-cpp-bundler
MaxTheorum: awesome that was what I was looking for!
Astrobytes: and there is also: https://github.com/Viatorus/quom
Astrobytes: And maybe others
MaxTheorum: This already helps a bunch thanks!
noisy_datum: the king has returned
noisy_datum: wouldn't languages like Java and C++ be more appriopately called class oriented programming?
noisy_datum: rather than object oriented programming
noisy_datum: dey so ignant
Samer: hey guys
Samer: i'm gonna try asking again, maybe someone can help now
Samer: who succeeded in running the game locally for testing? i'm getting a "main manifest missing" error when trying to run the game
arkwaw: in c++ nowadays you have things like "std::visit" straight from object programing patterns
Zenoscave: mornin
Zenoscave: do I have time for a final submit before gold?
Zenoscave: I should probably wait...
SippinSelecto: hello guys, python question: someone know how to use variable into an array index with a colon (ex: array[var:10]) thanks :)
Zenoscave: like a slice ?
Zenoscave: That should work as you type it
SippinSelecto: :grimacing: well i'm embarassed that i haven't think of slice ahah
SippinSelecto: thank you
Zenoscave: your code you typed in the first message is fine. it works
SippinSelecto: well i tried it and nothing was returned
Zenoscave: then var is larger than the size of the array
Zenoscave: http://chat.codingame.com/pastebin/169c29ef-0dd3-4d0f-b9d9-6fbd11eaa843
SippinSelecto: in my case it's a string not an array, i forgot to mention that
Gronahak: http://chat.codingame.com/pastebin/2aebc01f-920b-4d47-843d-5a9b6d39740a
Zenoscave: strings are character arrays in python
Zenoscave: they both work the same (more or less)
THH: elca
Gronahak: http://chat.codingame.com/pastebin/bb69cf15-ac4b-493b-b4be-e588e7e5dbaf
Gronahak: @SippinSelecto check thos exemples out ^
SippinSelecto: thanks i checked your examples
SippinSelecto: but in codingame IDE it seems not working, im trying again
Gronahak: when you use a slice the first index is included, but the last one is excluded
Zenoscave: ^ this is important
ClockSort: i just built my own simulator
Zenoscave: nice clock sort
Zenoscave: Not using the ref?
ClockSort: nope. so i can tweak my bot and play it against my old bot 300x to see if it was an improvement
Gronahak: :clap:
Zenoscave: Brutal tester
Zenoscave: How long to run 300?
ClockSort: long time ya
ClockSort: because they both try to use 50ms per move :)
AntiSquid: errar on LB
Zenoscave: Fair. There's a generic solution available. but it needs some edits. I'm forking and fixing now
ClockSort: i didn't want to mess with jvm
Samer: Zenoscave are you referring to what i asked about earlier?
ClockSort: how do you hook up the inputs/outputs to your agent?
Zenoscave: Samer yes
Zenoscave: stddup
emh: I'm trying to use _pdep_u64(1ULL << n, x); but getting compile error that it won't inline
emh: any ideas?
emh: I have #pragma to inline
Zenoscave: inline void foo (const char) __attribute__((always_inline))
Zenoscave: use the attribute
Zenoscave: it makes inlining more aggressive
Zenoscave: I assume c++ and not rust
Poli2312: Hi
TEstTEst: hello, when the gold league will open?
ClockSort: hello, maybe two hours
struct: 30 minutes+-
emh: Zenoscave doesn't seem to help. same error message
jrke: 35 mins from now
jrke: max 40 mins
Zenoscave: what's the error emh? PM me
TEstTEst: thanks, and there is a fix number of participant that will be promoted or it just related to score?
ntroPi: One bot will be selected as new silver boss. Promotion rules are as always.
ntroPi: (ranked above boss == promotion)
AntiSquid: one bot to rule them all
AbsentMoon: How can I figure out how long each turn is taking me?
AntiSquid: is rust faster than C++ ?
AntiSquid: on CG
Ikhadem: how can i detect the exact ms i did a watch on my code but it return times that are way over the limit and i dont time-out
dbdr: very similar I think
TimurSeitosmanov: +1 to timing question... those random timeouts are killing me
jrke: which lang TimurSeitosmanov?
TimurSeitosmanov: typescript
jrke: TimurSeitosmanov how much time is your code using in non timeouts game on average?
TimurSeitosmanov: how can I see this?
jrke: is your bot heuristic based or any search?
TimurSeitosmanov: bfs search
TimurSeitosmanov: but seriously, is there any API accessible from js runner for timing?
jrke: no idea for timing APIs
Kaa: are there any limitation for id?
Zenoscave: https://github.com/LSmith-Zenoscave/FallChallenge2020/releases/tag/v1.0-SNAPSHOT https://github.com/LSmith-Zenoscave/cg-brutaltester/releases/tag/1.0.0-zenoscave
Zenoscave: I'll add a small script in a gist to show running them
tomatoes: what kinds of limitation?
karliso: #ru
AbsentMoon: Does anyone mind helping me with getting my program to run locally?
LastRick: Ikhadem: I saw a similar thing yesterday with Dart. Code says I've been inside my search for over 50 ms, no timeout. No idea how that happens.
Lysk: thanks @Zenoscave
Donotalo: how can i show messages on the screen? i've seen some players are doing it
pedrosorio: print({your action} {your message})
eulerscheZahl: what time is it?
JBence: it's gold time
pedrosorio: (i.e. add your message after a space next to the action)
eulerscheZahl: correct answer JBence
JBence: do I get gold for it?
eulerscheZahl: saiksy at 110
eulerscheZahl: you at 112
struct: I would wait
eulerscheZahl: but bots are different, i just tested if you might be the boss
jrke: league opening message :smiley:
AntiSquid: crab league
eulerscheZahl: http://chat.codingame.com/pastebin/823c3135-191e-4f78-ab4e-571d4c9971f2
eulerscheZahl: how do i do that in C++?
AntiSquid: saiksy first on LB but ranked 115 ?
JBence: are you turning to the dark side?
AntiSquid: wonder how their promotion works
eulerscheZahl: too many timeouts
jrke: saiksy in gold
JBence: I'm thinking about it too
tempux: c++ doesnt have yield :D
eulerscheZahl: cheater
kreska: so only top 115 will qulify for gold?
WINWINWIN: what about storing and returning an array euler?
AntiSquid: what is yield ?
AntiSquid: in c#
WINWINWIN: Returning multiple values
eulerscheZahl: one time saiksy decided to put a player as boss
AntiSquid: just return array / vector ?
eulerscheZahl: and at the exact moment the player hit submit
eulerscheZahl: everyone got promoted
AntiSquid: last contest
CommanderCero: did they just put everyone in gold
eulerscheZahl: fun times
ClockSort: i only see 131 in gold
AntiSquid: and demoted
CommanderCero: oh nvm
Illedan: Sweet! Smaller league!
CommanderCero: it showed me 1600
JBence: went from silver 113 to gold 96
eulerscheZahl: pending submits
jrke: 131
CommanderCero: yeah my rank also went up
AntiSquid: more to come
eulerscheZahl: we lost pb
Illedan: They didn't move all yet
AntiSquid: > 200 watch
WINWINWIN: Has the guy put as 132 been made the boss?
tempux: :unamused: stuck in silver for ever i guess
kreska: im 173 and i was 300 so i guess 127 go to gold?
jrke: did ranking got changes
eulerscheZahl: some players left behind who were not pending
eulerscheZahl: that round dice was beating me hard anyways, deserves him right
WINWINWIN: Ah, so they autopromote some guys then set a boss?
jrke: can anyone in silver tell me the name of silver boss
eulerscheZahl: just promotions that got more boring
Lysk: bossdorf
Q12: Bossdorf
eulerscheZahl: years ago you could see the boss submit
eulerscheZahl: and climb up the ladder
jrke: thanks
Lysk: once upon a time yeah
StrykerS: http://chat.codingame.com/pastebin/2454bbfb-0c4c-4c5f-9579-07680186b42f
eulerscheZahl: everyone cheering where it will end
eulerscheZahl: i miss that :(
jrke: lol people who were having pending submits lefted in silver
eulerscheZahl: lefted?
AntiSquid: you mean the 4 hour long recalc on new league open?
eulerscheZahl: i miss that aspect less
jrke: means they didn't get promoted to gold euler
AntiSquid: kinda weird opening this time, i see a lot of top 100 still in silver lol
miszu: question for the challenge, is optimization important? I like to code in OOP way but to achieve best perfomance you need to put it away and play with bytes, bitoperations etc. Is that necessary?
wlesavo: saisky asked today if we want recal for gold or not
eulerscheZahl: yeees!
struct: Why does vs code intellisense keep breaking
struct: (╯°□°)╯︵ ┻━┻
eulerscheZahl: at least for legend
AntiSquid: so that means what? 20 people in chat were asked :P
eulerscheZahl: struct i need your C++ skills
eulerscheZahl: http://chat.codingame.com/pastebin/823c3135-191e-4f78-ab4e-571d4c9971f2
eulerscheZahl: how to do that in C++?
eulerscheZahl: it's like an iterator
Lysk: you can't directly
eulerscheZahl: :(
Michael_Howard: Damn that silver boss is higher than I expected.
CommanderCero: you need to remember the state yourself
Lysk: something about coroutine
Beresta: I don't think you should do that in C# either, performance-wise won't be great :D
WINWINWIN: https://stackoverflow.com/questions/7213839/equivalent-in-c-of-yield-in-c
WINWINWIN: Euler
Csipcsirip: u can have static variable inside functions. its like a global variable but only accessable from the fucntion
eulerscheZahl: that yield return avoids creating a list
lowzhao: huge pressure D:
miszu: oh I am doing it in java
CommanderCero: oh yeah static variables is a good idea
AntiSquid: ah missed a lmgtfy WINWINWIN :P
WINWINWIN: :P
miszu: but I am afraid ppl with C++ will have it an easy time
struct: easy time?
jrke: ^
struct: is not like if you know c++ you get instant legend
AntiSquid: why not return pointer to a list euler?
miszu: no fore sure but
CommanderCero: c++ is the most confusing clusterfuck of a language ive ever seen
LordSkaven: C++ isnt a magic pill
Starbender: well.. they have to code in c++ so feel for them haha
AntiSquid: or vector ! @_@
miszu: c++ you can do stuff that in java you can't
miszu: that 50ms is very small for java
struct: euler if you pass a vector that has already reserved memory it is fast
AntiSquid: i am confused by your confusion CommanderCero
eulerscheZahl: but that refers to BOOST
CommanderCero: AntiSquid did you hurt yourself
AntiSquid: unless we talk about templates and meta programming CommanderCero
struct: That should return all active spells right?
LordSkaven: lol the boss just timed out
eulerscheZahl: vector would work i guess
Beresta: CommanderCero I wonder if you seen PHP for example :D
eulerscheZahl: or that static array. and i just return the number of items
struct: If you reserve the memory of the vector it is fast
WINWINWIN: Is MSmits there in the contest?
CommanderCero: Im also talking about the subtle differences between references and pointers, how they handle iterators etc
eulerscheZahl: feels ugly but it already is
Lysk: reserved space is nice when you know the max size
CommanderCero: nothing ive seen in any other language
AntiSquid: http://chat.codingame.com/pastebin/1c0e154c-43b6-4c59-bb8c-d03ee7a9f865
struct: Lysk that or if you reuse the same vector
CommanderCero: std::move() was also confusing me for a while idk why
struct: multiple times
jrke: MSmits is 2473 currently
AntiSquid: overengineering
eulerscheZahl: so, what's the next scheduled promotion time for silver players?
eulerscheZahl: i see some finished submits but no new golden players
struct: should be instant right?
struct: or close to it
eulerscheZahl: yes
struct: Or did they forgot to change it for this contest?
eulerscheZahl: worked for lower leagues
eulerscheZahl: who's in silver and can tell?
ZarthaxX: boss almost finished computing
eulerscheZahl: oh
Nerchio: the algorithm is bugged i didn't get into gold
jrke: oh boss is also computing lol
AntiSquid: what rank were you Nerchio ?
ZarthaxX: c# boss toad
ZarthaxX: your friend c# :P
Starbender: I've just reached bronze and that varying spell cost is gonna be such a pain to handle 😨
eulerscheZahl: yeah i'm a C++ guy now
dbf: 40 ms per turn - 3/10 timeouts :(
eulerscheZahl: i feel with you dbf
Nerchio: AntiSquid like 140 idk
eulerscheZahl: was hoping that it would get better when i convert
eulerscheZahl: but you use C++, don't you?
jrke: looks sinofwrath is gold boss
jrke: c# + bottom gold
jrke: sorry silver boss not gold boss
jrke: 8 entered in gold
eulerscheZahl: https://www.codingame.com/share-replay/505324359 not exactly the same
miszu: dbf, do you computer moves in advance or not?
JBence: maybe not deterministic
miszu: compute*
struct: I guess I need to switch back to VS 2019, for some reason vs code seems to keep breaking intellisense
struct: Does it happen for someone else?
struct: Im using cpp with wsl 2
eulerscheZahl: boss is deterministic
Gabbek: hello :)
Gabbek: how's going guys?
struct: hi
eulerscheZahl: it's timing out
struct: the boss?
ZarthaxX: toad
eulerscheZahl: me
ZarthaxX: :rofl:
NinjaDoggy: :rofl:
eulerscheZahl: i'm self-centered
ZarthaxX: he is still "joking" with that
struct: still in C#?
ZarthaxX: sad jokes tbh
Gabbek: so you've changed to C++ eulerscheZahl?
struct: euler can you check how many timeouts I have?
struct: I use 40ms and dont even start the timer in the right place
Gabbek: (I've been sleeping more than doing anything useful, so I might be late to the party with my questions :P)
eulerscheZahl: i'm on it
Cappefra: @struct just go ctrl+shift+p and select "Restart Omnisharp"
aCat: boss timeouted ;p
eulerscheZahl: Error 404. Player not found. Double check your nickname and the selected puzzle. Please note that cgstats can't find your ranking if you are above the first 1000 players. If you think cgstats should find you and this is an error, try to ask Magus.
eulerscheZahl: i need you bot ID
struct: ahahah
eulerscheZahl: give me replay
reCurse: oof
struct: https://www.codingame.com/replay/504385502
NinjaDoggy: not top 1k :(
ZarthaxX: struct already deleted acc and cant be find :D
NinjaDoggy: also... recurse you playing this one? :eyes:
reCurse: :thinking:
struct: reCurse do you also use vs code with wsl 2 for cg?
reCurse: Not for cg
eulerscheZahl: http://chat.codingame.com/pastebin/81e07a8a-47f4-4ef3-9a62-72548e525a7d
struct: Have you ever had any problems where intellisense stops working for no apparent reason?
reCurse: That's been intellisense for the past 20 years
reCurse: Good luck
struct: ah ok
struct: thanks euler
reCurse: For instance right now there's a header file I made that's making intellisense go nuts
eulerscheZahl: i decided to set up VS code just for this contest (monodevelop sucks more and more)
reCurse: So I isolated it to a separate cpp so it keeps working for the rest
eulerscheZahl: i also know the crashing intellisense
Nerchio: euler what's the most processed nodes you got in C#?
reCurse: And that's with vs not vs code
reCurse: But it doesn't matter
eulerscheZahl: the root nodes
eulerscheZahl: trick question?
Nerchio: evaluated nodes i guess
eulerscheZahl: arouind 60k
reCurse: It's not about the count it's about how you use them
Nerchio: were you using bitset?
ZarthaxX: :rofl.
ZarthaxX: :rofl: *
ZarthaxX: that phrase always applies
eulerscheZahl: no but stored some data in an int that aren't an int
Nerchio: ok i guess its similar ;p
reCurse: camouflint
eulerscheZahl: my inventory isn't an array at least
reCurse: Why not a class with 4 properties
eulerscheZahl: wait, i have a screenshot for you
reCurse: That was a joke btw
eulerscheZahl: https://prnt.sc/vjj4he
reCurse: Class with 4 ints, is there a worse way to represent inventory
reCurse: OK
dreadylein: class with 4 strings ^^
reCurse: I've been defeated
ZarthaxX: wtf is that
NinjaDoggy: why is euler leaking our DMS :(
dbf: not yours, name is about 3 lettes :D
Astrobytes: lol, I remember that from the other day. Still wtf :D
eulerscheZahl: don't DM me if you can't handle leaks
struct: ZarthaxX dont you dare leaking
eulerscheZahl: i'm not discrete
ZarthaxX: time to expose structo
Astrobytes: Just continous eulerscheZahl?
struct: :hammer:
AntiSquid: ya that was a short name :thinking:
reCurse: Haha I was jokingly thinking of someone
reCurse: Then I was thinking, hmm too long
reCurse: Then I check Discord, short name
eulerscheZahl: maybe i edited it that you think it's short
struct: :thinking:
AntiSquid: maybe not !
miszu: why a class with 4 ints is bad?
struct: Cant be me I use structs
NinjaDoggy: lol
AntiSquid: ok then not
struct: I said before I store the 4 ingredients in 1 int
v1993: Well, you need 4bits per ingredient, so 16bit unsigned could do...
eulerscheZahl: how to handle overflows?
NinjaDoggy: a 10 bit unsigned could also do :)
struct: ^
struct: too much work
eulerscheZahl: and for convenience you want the total too
struct: 1 int is simple
NinjaDoggy: honestly having done both methods...
v1993: Never said that you can use it like that, just store
eulerscheZahl: i can fit it in 16 bit. but that makes using it less efficient
NinjaDoggy: bitmask is tougher than precompute
NinjaDoggy: I had a 25 bit bitmask to store inventory
eulerscheZahl: but probably faster
NinjaDoggy: is it faster than array access?
AntiSquid: submits slow?
eulerscheZahl: just add 2 numbers and you have the new inventory
NinjaDoggy: you also need to check valid after?
NinjaDoggy: so it's like add 2 numbers, and then a check right?
eulerscheZahl: yes
eulerscheZahl: would have to time what's faster
CommanderCero: I know that the bitmask increased my speed by quite a bit, but Ive used 4 ints previously. Seems like many people also just used 4chars idk if thats faster
JBence: euler, why would the 16bit be less efficient?
struct: I guess because you need to deal with overflow
Cappefra: @struct for intellisense just go ctrl+shift+p and select "Restart Omnisharp"
eulerscheZahl: talking about speed efficiency when you want to do computations with it
eulerscheZahl: take 2 deltas (your inventory + spell)
struct: Cappefra Ominsharp doesnt show for me
eulerscheZahl: and add them. overflows will affect the other types
struct: Im using c++
eulerscheZahl: so you need a 0 as a blocker
Cappefra: oh ok than I have no idea
struct: np
struct: ill just use VS
Cappefra: gawd I'll never optimize like that :/ my bot is all object-oriented, for inventory, spells and orders I have subclasses of a class called Ingredients
LordSkaven: I dont know if I need to improve performance or evalutation to better my bot. hmmm
Cappefra: I guess that's part of the reason why my bfs can only visit so many states
Cappefra: @LordSkaven I feel ya
Cappefra: anyways: can I be in more than one language chat?
Cappefra: I'd like to be in World, It and De too
dbdr: #De
Cappefra: that was easy, thanks!
AntonCosmin: I made the bot in C#, if I have classes does this mean is takes more time to execute?
CommanderCero: creating a lot of classes will make it quite slow. One optimisation in c# is to use structs and arrays if you want to generate a lot of objects. But structs do not behave like classes in c# so if you dont know the difference it can get quite messy
Gabbek: AntonCosmin - you should use profiler to find out what's slow. For example: if you're using containers in your game state then that probably takes a lot of time, especially if you're using new as well.
AbuuDarda: there should be more quests in clash of code
Gabbek: The differences can be massive - so you would probably want to optimize it quite heavily. Make sure your game state is as small as possible while still having all required info for you. If you can change any kind of container to an int - go for it, it'll be much better.
AntonCosmin: If I am using a class called Ingredients for which I have overriden the operators so that I can add to ingredients and get a new ingredients as a return...I guess this takes some time, because I use new for every operation with ingredients I do...
Zenoscave: bah I'm super low now
Zenoscave: Probably time to not ignore opp
CommanderCero: yep that will take a lot of time
Zenoscave: Not really Just need to change my search so that it can check against an argument for casts. instead of hardcoded
Zenoscave: Just realized you were talking to the message above mine..
CommanderCero: sorry xD
Gabbek: don't worry Zeno :) congrats on gold!
Zenoscave: Thanks!
Gabbek: I guess I'll try to fight for atleast gold and call it a day afterwards
Zenoscave: Can you do beam search with an array? I'm struggling with that
CommanderCero: yeah use an heap
CommanderCero: and 2 arrays
Gabbek: I admire your persistence - I've been way too lazy in last days. Never tried beam search with an array, been using heap in the past
Zenoscave: why 2? CommanderCero
Zenoscave: for curent next level?
CommanderCero: one for the old states, and one for the new states
Zenoscave: got it
CommanderCero: the new states should be represented as heap
CommanderCero: so you dont need to sort
Zenoscave: I do similar but I have GC issues.
mlemm: submission takes time more than the coding it self
reCurse: Contest victim of its own popularity
reCurse: Reminds me of hypersonic 3 years ago
reCurse: No way 4 years? Time flies :(
Zenoscave: I was thinking it was more than 3...
Zenoscave: Bah no Heap/Prioirty Queue in C#
eulerscheZahl: that HS submit with 4 player games and 100ms per turn
eulerscheZahl: some slow submits
eulerscheZahl: i've missed that a few times too Zenoscave
Gabbek: Zeno - let me find a link for you, got it lying around somewhere, but it's probably slow.
numb3r5: hello
Zenoscave: I'll just write one eulerscheZahl
dbf: Switch to java then, we have timeouts and priority queue also
Zenoscave: lol dbf
Illedan: haha
RockyMullet: no free gold for me, rip, I'll have to fix my bot haha
RockyMullet: 188th in silver, no way I drift
Gabbek: good lucky Rocky, you'll make it!
RockyMullet: how many in gold ? 200 or something ?
NinjaDoggy: 152
numb3r5: how many ranks are there?
reCurse: That would be a bigger drift than changing an election
RockyMullet: oh, maybe the resubmit made get some points
RockyMullet: reCurse lol
Zenoscave: reCurse It's scary times now.
reCurse: Sorry inappropriate mood swing
reCurse: Let's move on
Zenoscave: will you be competing at all reCurse?
Zenoscave: still time to pull a NinjaDoggy
Zenoscave: and get legend in a day
reCurse: I'm either not participating, hiding or smurfing
dbf: legend from single submit (and 4 hours of waiting)
RockyMullet: I'm like 7 or 8th in canada now so... I dont care anymore reCurse, I'll allow your presence :P
reCurse: Oh finally
RockyMullet: since I know it was the only thing holding you
llllllllll: any way to debug segfaults in c++? Try catch prints nothing, traping SIGSEGV did nothing... I don't want to debug locally :C
reCurse: segfaults are not a c++ exception
llllllllll: I was just trying to find anything helpful, nothing really worked
struct: locally is the only real way
Zenoscave: truly
llllllllll: ah, crap
reCurse: There's also firing printf in your code like a homicidal maniac with a shotgun
Zenoscave: Gabbek did you find what you were looking for
Zenoscave: a homicidal manic who shoots his own foot *
reCurse: Sometimes it's the only way when local repro don't work
llllllllll: yeah, that kinda doesn't work in a function that is called 30k times
llllllllll: so I have to go local.. crap
eulerscheZahl: Zenoscave last time i ended up copying this: https://stackoverflow.com/a/13776636
eulerscheZahl: not sure how optimized it is
reCurse: You can still do it but you have to be creative
Zenoscave: eulerscheZahl I was looking at that too
Zenoscave: https://secondboyet.com/Articles/WritingapriorityqueueinC.html This one too
Gabbek: Zenoscave sorry for silence, me and finding code - uhh, so hard. Anyway, let me just upload it somewhere
Gabbek: https://ideone.com/4hXvBH
Gabbek: I think I found it somewhere, so you most likely found something very similar if not identical.
mlemm: what's the max depth you've achieved with bfs guys ?
ClockSort: i'm getting full BFS depth around 6 to 8 looking at only BREW and CAST, using C#
rmuskovets: I achieved "no depth limit" with my *really* crappy dfs
mlemm: depends how you define *really* crappy but i got the idea, and reaching dfs's full depth is less challenging than bf's isn't
Quidome: What do you mean by achieving no depth limit?
fel-hita: im pretty sure he means max with no error handling
Quidome: so you calculate every state possible in a turn?
fel-hita: timeout*
Quidome: How many states do you visit?
Quidome: on average?
Quidome: I really don't see how you can do that
Quidome: in 50 ms
wlesavo: probably stop at first buy then
llllllllll: I do ~20k nodes
fel-hita: Quidome i think it's quite possible with a really light bfs, but he said his was crappy
fel-hita: dfs* sry
rmuskovets: it's not like a slow one, it generates bad actions
Quidome: curious how many states that are
fel-hita: can you check @rmuskovets, let us now.
Quidome: To check my assumptions :P
rmuskovets: btw what do you mean by state? inventory state or possible recipe?
Quidome: For every action you simulate you got a new state
miszu: gonna try to do java without hitting gc. brb preparing rope
Quidome: fast games are 30 levels deep or so, that would me to much to simuate
rmuskovets: there's definitely smth bad in my code: it only generated 29 (!) nodes
Quidome: :D
rmuskovets: thats probably the reason of the bad moves
rmuskovets: https://www.codingame.com/share-replay/505388026
rmuskovets: here you can see how bad it is
Quidome: and why you think you had no depth limit
rmuskovets: because I didn't set one!
rmuskovets: http://chat.codingame.com/pastebin/6415cadd-8b9c-468c-b89e-14aeb7a46f8c
rmuskovets: this is my code for the DFS
rmuskovets: it just looked like a DFS for me
PatrickMcGinnisII: got a notification about gold opening, schedule says a time...but what timezone? Does CG know my timezone?
rmuskovets: I think either +0 or your TZ
rmuskovets: @Quidome how's it to you?
Quidome: at least you did one delivery :D
fel-hita: why didn't you go for bfs rmusko ? :smile:
rmuskovets: what's the difference?
MadKnight: so i created new BinaryReader(new MemoryStream())
fel-hita: dfs will get you the fastest path
MadKnight: do i have to call dispose on those ?
rmuskovets: looks like I actually do a BFS
fel-hita: yeah bfs is definitely the pick between them both, it may be costy but worth it with a decent optimization, goodlulck buddy
fel-hita: i meant dfs and not"why didn't you go for bfs rmusko ?", spelled them too much this week
rmuskovets: looks like I get a timeout when using DFS-like code (queue.unshift instead of queue.push)
PatrickMcGinnisII: rmuskovets maybe I'm reading your code wrong, but it looks like the path length is always 1, so your path only gets set on the first one it finds... maybe I'm wrong... I dunno
PatrickMcGinnisII: rmuskovets it's not going after the quickest, that's fer sure
PatrickMcGinnisII: I have a similar routine, but I return path length, first element of path, and $/length of the best of the 5 according to a passed criteria....do i want it quick or do I want it pricey.
miszu: question for java. the actionType is a String input and string are immutable. So everytime I read it, it creates extra object in heap thus GC could be triggered. How you avoid using a string here?
LordSkaven: make it an enum or int
LordSkaven: unless you mean reading it instead of storing it.
miszu: thing is, when you read the input, it returns a string: scanner.next()
miszu: yeah talking about reading it
PatrickMcGinnisII: rmuskovets add the nodes to the queue after your neighbor loop, otherwise you are only gonna find the first in that first castable
LordSkaven: mmm yeah then I have no ideas
jacek: fifty states
jacek: argh not scrolled
ParticleBeam: Hmm. Going to have to up my bot
PatrickMcGinnisII: jacek are you in silver? can't find u
miszu: Is there a way to avoid using string for actionType?
ParticleBeam: What do you mean? Recode it as a number when you read the inputs in
miszu: I am coding it in java. The scanner.next() returns a String so it is bad for the java gc. Is there a way to avoid using string?
eulerscheZahl: these few strings are you smallest problem. a simulation creating thousands of nodes is a much better problem
AntiSquid: is sinofwrath the boss ?
AntiSquid: (silver)
eulerscheZahl: no
AntiSquid: do you know who it is then?
Ccleetus: Does anybody know a puzzle for beginners in Lua?
pedrosorio: AntiSquid: Bossdorf
eulerscheZahl: turned out i did have a bug in my code causing some random crashes, whoops
Ccleetus: Does anybody know a puzzle for beginners in Lua?
jamessizeland: whoops!
AntiSquid: no, that's the boss, not the player it's copied from pedrosorio
eulerscheZahl: timing related but my bot's fault
aCat: Ccleetus start with any easy puzzle
pedrosorio: AntiSquid oops, sorry
Ccleetus: How do i find an easy puzzle?
AntiSquid: nw
Ccleetus: Im new to this website,
AntiSquid: practice top left
aCat: https://www.codingame.com/training/easy
Ccleetus: Thank you!
pedrosorio: I converted my bot from Python to Java thinking it was going to be so fast and awesome, turns out GC in Java ssssssucks and makes it timeout every time, had to some dirty hacks to keep object creation to a minimum
aCat: https://www.codingame.com/training/easy/onboarding this for total beginning
aCat: and start with puzzles WITHOUT user accounts
AntiSquid: ya see leaderboard, it's either rust or c++ pedrosorio :P
aCat: they are more fun / more grapic / better made
phord: @eulerscheZahl timing-related segfault? Are you multithreading?
eulerscheZahl: simulating the opponent first and then me
eulerscheZahl: opponent took too long, so i had 0 moves for myself
phord: ah.
AntiSquid: python on #36 :O
pedrosorio: I mean, my Java bot is about to get promoted to gold, I think (38% battles it's at #14 in silver), but if I have to do dirty hacks might as well code it in C++, yeah -- 2nd rewrite, here I come lol
AntiSquid: python for quick bronze and then c++ is usually best imo
pedrosorio: ah... lesson learned
llllllllll: yeah, definitely
Falkor: msg toma25 Why are you win me always with the same score :p
ClockSort: before gold opened, i was rank 80 silver. now i'm rank 35 gold (no changes to code). is this normal?
CommanderCero: well im still rank ~130 before and after gold
pedrosorio: ClockSort does your bot occasionally lose against really bad bots?
ClockSort: I haven't particularly noticed that
NinjaDoggy: my bot is finally... BUG FREE!!!
NinjaDoggy: (i think...)
reCurse: Quiet fool! That's when they're coming
goolmoos: No bugs is actually bad
goolmoos: because if they are no bugs to resolve, how will you improve?
NinjaDoggy: yep... they just showed up :(
NinjaDoggy: thanks reCurse
NinjaDoggy: I have a to do list... :(
NinjaDoggy: I just can't work on new features when current ones are broken lol
Astrobytes: Don't confuse bugs with poor/sub-optimal strategy goolmoos
NinjaDoggy: luckily... every time i've fixed a bug
NinjaDoggy: my bot got better :)
miszu: question all: is it worth doing a solution in java for bronze and up? Or should I go for C++ instead?
NinjaDoggy: you can get really high up with java
NinjaDoggy: I got 3rd once with it :D
NinjaDoggy: but generally, the higher you go the more worth it is to swap to C++
miszu: :D what position you are now?
NinjaDoggy: 3rd as in end of contest(for another contest)
miszu: ohh okay
NinjaDoggy: I peaked like top 10 this contest with java
NinjaDoggy: it was really early on though so..
miszu: I am just worried that GC in java will slap a timeout to my face
NinjaDoggy: it does
NinjaDoggy: swapping to C++ feels sooo good
NinjaDoggy: always 45-47 ms a turn
NinjaDoggy: never time out
NinjaDoggy: in java... 35-55 ms a turn
NinjaDoggy: timeout 1/20
NinjaDoggy: :(
miszu: why they don't increase the timeout for java? It would help java devs
NinjaDoggy: hard to make every langugage "fair"
miszu: yeah but then it's like saying in order to compete in higher level, you must use X language
NinjaDoggy: waaay too much work to balance every language though...
NinjaDoggy: and would result in longer game times
miszu: I guess so
pedrosorio: miszu I converted my bot from Python to Java, it was a pain to get rid of the GC timeouts, but now it works
If you're comfortable with C++ just go for it
reCurse: There's a big forum thread explaining why it's a terrible idea
KevinisMAD: Yeah my bfs gets to depth of about 7 or 8 so I am working on how to trim without cutting good paths
miszu: my c++ is rusty. Time to refresh it
KevinisMAD: If I can't trim my python enough by like 6 I am going to learn cpp and implement it
wlesavo: my c++ is pythonish, thats worse
pedrosorio: Also, can we make the bots get out of the league a bit quicker? Mine has been comfortably above the boss since 30% and it's still waiting to get promoted at 70% an hour later xD
NinjaDoggy: @wlesavo :joy:
reCurse: The real issue is slow submit because the contest is ridiculously popular
NinjaDoggy: yea...
miszu: C++ = RAII + lvalue + rvalue + core dumps
NinjaDoggy: can we donate CPU time to servers?
NinjaDoggy: I would gladly donate a few cores to make things run faster...
reCurse: I mentioned a submit fast pass monetization option on discord, but I doubt they'll listen to my genius idea :p
NinjaDoggy: LOL
NinjaDoggy: it does sound pretty genius ;)
struct: Just like lichess
struct: use users cpu for analysis
NinjaDoggy: yea :D
eulerscheZahl: tshirt merchandising would bring a few bucks as well. i saw some users ask if it's possible to buy them
NinjaDoggy: but that...
Astrobytes: One of the better monetization ideas I've heard regarding CG
reCurse: Then they would run out of special prizes
reCurse: The real tshirt value is its rarity
NinjaDoggy: that takes away from the glory of top 20 :(
Astrobytes: t-shirts nah
eulerscheZahl: true
eulerscheZahl: buying and winning is not the same
Astrobytes: fast-track submits might not generate enough though
Astrobytes: Well, mind you in a contest like this...
eulerscheZahl: showing ads before every 10th replay
eulerscheZahl: i know :door:
eulerscheZahl: i would hate that myself
Astrobytes: Banished.
reCurse: Can a mod ban another mod
reCurse: Let's find out
eulerscheZahl: yes
Astrobytes: :D
eulerscheZahl: but are you faster than me?
reCurse: Duel outside in 10 minutes
phord: There are prizes?
eulerscheZahl: good night
eulerscheZahl: 20 tshirts, 3 canvases
phord: :thumbsup:
eulerscheZahl: a fair reward for a full week of hard work
phord: :laughing:
reCurse: The real reward is the friends we make along the way
inoryy: aww
NinjaDoggy: awww ofcourse :)
JBence: reBlessing
reCurse: Eh, reminds me of my reBlessed smurf (not on cg)
NinjaDoggy: how do I have a bug tracking the number of potions I've brewed -_-
JBence: don't drink your own potions, rule #1
NinjaDoggy: oh nvm... I don't, my opponent ended the game and I won
KevinisMAD: By the way are y'all recalculating best path at ever cast?
denik1981: I'm new on Codingame ...Can someone help me figure out why I don't have Coding Points even that I solve a few exercises?
denik1981: I shows 0 in the leaderboard
denik1981: it
reCurse: Puzzles don't award CP
denik1981: Clash of Code??
firehell: @kevinisMAD i have the same question in mind
aCat: tehy are updated onece per day
aCat: *they
denik1981: I realized that .. so I solve a Clash of Code exercise and still nothing ..
firehell: 50 ms by turn is'nt enough
denik1981: Ahh .. so I will have to wait
aCat: there should be visible tomorrow morning i guess
aCat: yep
reCurse: You want 24 hour submits instead? :p
struct: I want 150ms just like CSB old days
reCurse: Good old 8 hour submits
pedrosorio: struct than they have to limit the competition to fewer than 6k people, or get more servers :D
VirtuaL42: Having issues to get a correct circuit breaking to handle timeouts (c++). At some point the referee is killing me for not responding (like at 18ms mark). Is there any tricks or things to be aware of ? :/
Counterbalance: you could run it offline on the turn that times out and see if it aborts timely. Could be you're not checking for timeout often enough
VirtuaL42: what i thought but i'm fine locally and i put checks everywhere with logs just to be sur i was not stuck in a long loop somewhere.
Counterbalance: if you log too much data that can also be considered a timeout
VirtuaL42: reduced but it seems the same. I'm using chrono::high_resolution_clock::now could it be wrong ?
Counterbalance: i'm using that too, works fine.
VirtuaL42: damn ok :(
SAChamp: https://www.codingame.com/contribute/view/572391469495f4f007323ae10613055c9602
Counterbalance: you start measuring after you read the 1st line of input? And you're using something like chrono::duration_cast<chrono::microseconds>(elapsed).count() ?
SAChamp: Check this out! Suggestions are welcome
SAChamp: https://www.codingame.com/contribute/view/572391469495f4f007323ae10613055c9602
VirtuaL42: yes but i see that i'm using nanos and dividing it by 1 million, perhaps some rounding issue
RockyMullet: great all my lost are random timeouts, I feel the servers a trolling me
struct: How many time do you use rocky?
jacek: all the time
RockyMullet: I stop my sim at 39 ms
ShadowJ24: Hello, why doesnt my AI quest map doesn't update even though I've done the tutorial on Coders Strike Back?
RockyMullet: ok resubmitted and my losts are actual lost
RockyMullet: ShadowJ24 you need to click it to "claim" it
llllllllll: I also stop at 45 ms, but I don't think it's the servers
RockyMullet: I like blaming others for my mistakes :D
ShadowJ24: When I click it it just goes to the page of Coders Strike back...
RockyMullet: oh god, seems like it wasnt a good time to submit
RockyMullet: 1 game past the initial 10...
struct: yeah rocky
RockyMullet: :sleepy:
ClockSort: rockymullet could it be the GC?
RockyMullet: but my bot is better ! :cry:
Counterbalance: i use micros and divide by 1000.. could be, yeah..
Counterbalance: (crap scroll)
fel-hita: writing c# in this IDE is painful
fel-hita: everybody just copy pasta ?
RockyMullet: second game, progress !
struct: There are extensions fel-hita to sync
RockyMullet: fel-hita yeah code somewhere else locally on your computer
struct: https://www.codingame.com/forum/t/codingame-sync-beta/614/
RockyMullet: if you like your sanity
ClockSort: fel-hita yeah i use VS and paste it in
fel-hita: many thanks
LogalogScholar: We're coding not being sane here
struct: I could not imagine coding more than 50 lines on this ide
RockyMullet: 3 games ! All wins at least :D
ClockSort: there are tools to combine your files, but I'm not afraid of a measly thousand lines.
RockyMullet: struct I did some small easy puzzles when learning a new language
RockyMullet: but thats it
struct: clock sometimes it happens that you accidently paste in chat
struct: and do not notice
RockyMullet: 4th game, a win also, I guess there's more anticipation that way lol
fel-hita: maybe the games are very intense that's why its ranking slowly :laughing:
RockyMullet: hype overload
RockyMullet: 16% patience is a virtue
struct: just need to wait around 2 hours maybe
tobk: wow, crept up to gold from silver 65. did not expect that.
numb3r5: hello evryone
ClockSort: hello numb3r5
miszu: do you get big advantage by stuffing all 4 inventories into one int?
ClockSort: i can't figure out how to subtract costs and determine unaffordability after stuffing deltas into a single int
struct: I ditched from storing all in one int
struct: I had a bug
struct: Noticed it by luck
ClockSort: why not fix bug? :)
miszu: I guess keep it simple is a good advice
Skynse: Yall ever have one of the test cases fail but you get 100%
PED: struct I did all on GitC in this ide ^^
struct: How?
Vinay96: does anything change in silver?
struct: no
Vinay96: so what's the point?
Vinay96: i'm so confused
PED: Obstination mostly I suppose
Astrobytes: And that was the older version of the IDE!
PED: also I didn't know about CG sync
struct: Vinay96 to increase competition
Astrobytes: It means the best players go through to next league, so people are competing with people at the right level.
Astrobytes: @Vinay96
Vinay96: Makes sense! - Cheers Guys
starmaq: hmm the ide is pretty drunk
starmaq: test cases are taking ages to test, and the output is always finding Nothing
starmaq: started working again out of a sudden
fel-hita: better avoid using the embedded IDE https://chrome.google.com/webstore/detail/codingame-sync-ext/ldjnbdgcceengbjkalemckffhaajkehd?hl=en
fel-hita: i was doing the same painful mistake
miszu: I need some inspiration for a class name. How do you call all the spells/potions/tome?
LordSkaven: Thing0,Thing1, Thing2, Thing3
SelectNull: Action
PatrickMcGinnisII: never gonna get out of silver with this bot, gotta rewrite :(
miszu: yeah action sounds resonable
BrunoFelthes: any ideas to rank the tomes?
Braykin08: BrunoFelthes my tip is the same for every problem you are trying to solve : What are you lacking, improve there. Diversity, quantity, how fast can you cast them
ParticleBeam: I've rewritten my bot multiple times. I seem to have hit my limit.
LogalogScholar: Nothing like seeing your ranking dropping 6500 places
miszu: I am in bronze and I am rewriting in C++. By just outputing "WAIT" I am beating many opponents. I guess you can actually win by doing nothing.
KevinisMAD: The heuristic for choosing the next spell to cast is killing me
pedrosorio: ParticleBeam neverrrrrr give up
LogalogScholar: Nothing like waiting for your opponent to self destruct
KevinisMAD: Honestly some of the people towards the top must be crazy good at coming up with ideas I am almost completely out I can't even add the options for repeating cast because my bfs isn't fast enough to have that help
LogalogScholar: It all boils down to optimization I think as you get higher up.
MarekM: deltas
TC9792: beating the boss in silver league probably does not require bfs/minimax
TC9792: a good heuristic function for your action in this turn might be good enough
KevinisMAD: Probably not but I got to about rank 1200 and couldn't push pass that without it
Zenoscave: TC9792 Yes but that definitely won't scale
KevinisMAD: Although I just found a bug in my code which is helping a ton
TC9792: I am at the middle of silve league , just using heuristic function for current turn, without casting spell repeatedly
TC9792: but ya, if you want to get into the top, you need optimized minimax
Zenoscave: Middle silver to gold is a big leap... Think you'll be able to continue
miszu: how far can you go in this tournament without simulations? ie: compute the best move without looking in future?
Zenoscave: and minimax doesn't work well in simultaneous games
Kaa: can I test somehow 2 different versions of my algo?
Zenoscave: submit one and play against it in ide with the other
Zenoscave: or submit both and see how they do
Kaa: Can I add my previous algo in ide?
Zenoscave: yes if you enable expert mode in the settings
TC9792: I will start building game search algorithm if I cant advance my position anymore
Zenoscave: on the left panel
Kaa: hmm... its on expert
Scarfield: remember to backup current code, if you havent submitted it yet
TC9792: I already have the heuristic function
Kaa: found. thank you
TC9792: what are you planning otherwise? if not a minimax with alpha beta pruning
ScriptKiddie0101: is 496 good rank?
TC9792: it is a very common approach for 1v1 game
Zenoscave: BFS is popular rn
Zenoscave: it's a common approach for turn alternative 1v1 games
TC9792: ya true
Kaa: oh... after reading you... I feel I'll never be promoted to gold league (
Zenoscave: don't give up Kaa!
Kaa: BFS is my maximum)
TC9792: errichto was doing DP during his last live stream
Zenoscave: Many people in Gold use only BFS. Just need to choose wisely where to search
AntiSquid: DP ?
Scarfield: do you have any pruning kaa?
Zenoscave: Dynamic Programming
Zenoscave: TC9792 was it based on knapsack?
Zhmyh: How do you guys select parameters (or weights if you like)? Like I have ~10 weights and it's impossible for me to choose them well. Are there any lifehacks or is smb using some kind of primitive neural networks for this?
TC9792: ya knapsack
AntiSquid: errichto still in bronze though
Zenoscave: interesting i'll look into it for heurstic meta
Scarfield: yea what a n00b he is :p
AntiSquid: yup
Kaa: I have already asked it... but I don't remember the answer... Is there an ID number bound?
TC9792: not a lot of time you can beat Errichto haha
AntiSquid: seriously, he might change his approach entirely Scarfield
TC9792: for now
KevinisMAD: Errichto said he was going to work more on this tomorrow so who knows whatll happen
Scarfield: i havent seen his streams, but is he even participating for real, or just to make a tutorial out of it?
AntiSquid: he is going for legend
Zenoscave: How many legend y'all think? 20-30?
KevinisMAD: Yeah the thing is he has some other coding competitions he wanted to do more or something like that
TC9792: he streamed 5,6 hrs on this
Scarfield: i guess there is a limit for how much he will be allowed to stream during the contest then?
AntiSquid: 20 imo Zenoscave, but apparently saiksy said in chat it will be 15 so ...
AntiSquid: that's official right?
Scarfield: it has been 15 the last few times i think
Zenoscave: only 15!?
Zenoscave: Christ
Astrobytes: errichto finally got the CG bug properly
Scarfield: AstroBug
Zenoscave: https://www.codingame.com/replay/505563320
Zenoscave: sad
Astrobytes: Scarfasterthanme :D
Scarfield: lol zeno, 2 green > 1 yellos obviously
Scarfield: yellow *
AntiSquid: 2-3 hours later and still sub running
Zenoscave: I don't add count to final score yet
Scarfield: how normal are draws up there?
Zenoscave: only had 1/35 against sim.an so far
SinOfWrath: That's sad Zeno on the replay. In silver I had a 6 streak loss during submit where I had the resources for a potion and the enemy finished on that turn and I would have won in the next turn.
Zenoscave: I lost simply for having one less teir-1+ in inventory at the end lol
fel-hita: that's why i keep one under my sleeves
Scarfield: 5 aces?
Astrobytes: fel-hita or mlemm... it keeps changing depending on my browser tab lol
Zenoscave: lol Scarcheat
Astrobytes: Missed the obvious there Zeno: ScarfAce
Scarfield: Platoscave, ive never been caught
Scarfield: uuh
Whiskee: if I get "Warning: your code did not read all available input" but I'm breaking after just 20ms, does it mean I'm hitting memory limits?
Scarfield: "Say hello to ma lit'le fren"
MarekM: hi, action_id change from LEARN to CAST after learning it is random? :)
Astrobytes: Also Scarfield: "Platoscave" :rofl:
Scarfield: Whiskee could be you error print too much (it takes time)
Whiskee: oh
Scarfield: yea i always think of that when i see zenos name
Astrobytes: What about poor Socrates
Scarfield: hmm i dont remember him having a cave? :thinking:
Whiskee: I disable all logging, error goes away, I re-enable it, it doesn't come back
Whiskee: aaaaa
Whiskee: why is this so inconsistent
Astrobytes: No he didn't but he read Zenos no?
Astrobytes: Or studied him or something.
Astrobytes: *Zeno
Scarfield: plato was socrates student, i dont remember who zeno is actually
Scarfield: was * :p
KevinisMAD: By the way is gold open?
DomiKo: yes finnaly sim is done!!!
Astrobytes: My Greek philosophy is lacking. He was pre-Socrates I know that much.
AntiSquid: https://plato.stanford.edu/entries/zeno-elea/ LMGTFY !!111
Scarfield: just googled, can confirm
AntiSquid: too late, entire chat got lmgtfy-ed !
struct: Are servers slower?
struct: My code performs worse without changes
AntiSquid: too many bots? :P
AntiSquid: 6.3k already
reCurse: 500 active submissions
struct: Yeah, but I was wondering if it could affect on IDE aswell
reCurse: It's the same farm
AntiSquid: CG getting wrecked for real this time
Astrobytes: KevinisMAD: yep
Illedan: No problem AntiSquid. These submits wont be done until contest is over
Astrobytes: And yeah, IDE performance is a bit meh too
struct: Im surprised it is handling this load tbh
Astrobytes: How many now?
struct: players?
reCurse: The only difference in load is it takes 3 hours to handle a submit and there's no downtime
Astrobytes: Was ~6200 last I checked, yeah
AntiSquid: https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global?column=SCORE&value=INPROGRESS just look here astro @_@
AntiSquid: that's nuts
Astrobytes: No I meant total AntiSquid, and I cba to actually look myself frankly
struct: 6364
AntiSquid: 6360 total . maybe this contest does reach 7k
AntiSquid: 4 new users in 5 minutes? someone making alts? or just popular ?
Astrobytes: There's the streaming thing, and Errichto
struct: And japanese tweets
Astrobytes: That spreads word across the CP community for a start
AntiSquid: then just need few of the real big streamers to kill CG
Astrobytes: yeah struct
Astrobytes: Also the contest is quite CP-community friendly in a lot of ways I guess
DomiKo: that contest is Bit-opti friendly
DomiKo: that sim is super cool
meh1001: Whats CP stand for? Obviously I'm not in whatever community that i slol
Scarfield: Cyber P**n
Astrobytes: Sorry, CP == Competitive Programming
Astrobytes: topcoder, codeforces etc type stuff
KevinisMAD: Yea it is a bad term just think of child p***....
KevinisMAD: Like pick a better name cmon
AntiSquid: CP = computer programming :P
reCurse: Yeah like anyone sensibly minded would think of that upon seeing CP
meh1001: rofl! that one didn't cross my mind, I was thinking 'C programmers' as my best guess
reCurse: Grow up
Astrobytes: ^
AntiSquid: this isn't a news site true
Astrobytes: So anyway, since this contest seems to lean more in the direction of single player optim, it's more attractive to the CP community in general
Astrobytes: So I think that's a factor
sirsatan: is there copy module ?
Scarfield: that segway xD
miszu: what you mean singple player optim?
Astrobytes: *segue Scarfield segue!
Scarfield: xD
Zenoscave: wait it isn't spelled segway?
Zenoscave: or cegway?
AntiSquid: https://www.codingame.com/multiplayer/optimization miszu there's a full category with just optimizing for better score
sirsatan: i want use deepcopy (python3)
Astrobytes: EcksDee yourself :P
Astrobytes: "Cegway" lel
JFB: sirsatan: copy.deepcopy() :-)
Zenoscave: the cegway is asking . where is ceg btw
Astrobytes: No Zeno, it's segue
Astrobytes: He's around
AntiSquid: oh ceg did join, i wasn't around enough this time to see him
reCurse: Didn't you notice the statement copied almost verbatim to the webchat?
sirsatan: JFB thanks i missed copy.copy in other phrase
Astrobytes: lol
Scarfield: he asked almost as much as always :p but apparently actually read some of the statement for once
Astrobytes: And his sister is competing too iirc
Scarfield: segueprakash?
Astrobytes: :expressionless:
Astrobytes: Anyway. Still smurfing around reCurse? :)
reCurse: Who knows
Astrobytes: :grin:
Zenoscave: so yes
reCurse: There's a rumor going around that timeouts are happening across the board as a result of managed language activists seeing to equalize the field
Zenoscave: how would managed languages increase opp timeouts?
Zenoscave: or do you mean in general
reCurse: In general
Zenoscave: Unsafe assumption on my part
reCurse: They cried about balance and CG just injected random GC spikes to everyone
Zenoscave: I was unaware of this
Astrobytes: tbf the spikes have been pretty bad for a few months (at least)
reCurse: Is my trolling too subtle or yours even more
Zenoscave: We will say the latter...
Astrobytes: And no, I think we got it
struct: I believed you for a sec
Zenoscave: I did for more than a sec
struct: I even googled what was managed languages
AntiSquid: too close to reality
Zenoscave: Gullible and trusting. that's me
Zenoscave: C# java etc struct
reCurse: Just wait until I reveal ceg was my smurf all along
Scarfield: xD
Zenoscave: I'd be pissed
Astrobytes: lel
ZarthaxX: no way
ZarthaxX: you cant act so ceglike
Zenoscave: Also how can one reveal a smurf?
struct: your indian acent is pretty good
Zenoscave: screenshot of two browsers
ZarthaxX: you delete your true account Zenoscave
struct: Zenoscave
ZarthaxX: oh look, struct suddenly appeared
Astrobytes: You're not ceg anyway, I know his name
struct: https://github.com/MultiStruct/proof
Zenoscave: hmmmm.
Astrobytes: *ceg's name
reCurse: And you know mine?
Zenoscave: We knew that already
Zenoscave: @struct
AntiSquid: struct ceg was on cam, so it would be the other way around, ceg can mimic an english accent :P
ZarthaxX: indian ceg face
Astrobytes: Well, I have an idea of some part of it but no reCurse :D
struct: I think I said my name here before
struct: Not sure
struct: i know that one time I posted a picture with meta data
struct: That had my name
Zenoscave: Ceg we summon you !!! Prove that you are not a reCurse smurf
reCurse: Like I'd fall for that
Zenoscave: -_-
AntiSquid: Zenoscave hint: the smurf isn't on the leaderboard
reCurse: Or is it
AntiSquid: ceg main account, recurse smurf duh
struct: Hiding in plain site
Astrobytes: <insert gumball meme here>
Zenoscave: gumball meme?
struct: siight*
Zenoscave: what's a gumball meme
Astrobytes: Zenoscave: https://www.youtube.com/watch?v=HwtBEQT9Uck
struct: We need a clue
struct: Give me a clue and ill find 100%
Astrobytes: Sorry, I have nieces and nephews, what can I say
reCurse: Right
Zenoscave: oh the show! I've heard of this
Scarfield: or do you?
Astrobytes: Or have you?
AntiSquid: god that's awful .
Zenoscave: Why are you all so suspicious of the world. face value. it does wonders
Scarfield: or does it?
reCurse: Face value. On the internet.
Zenoscave: ^ should have seen that comming
Astrobytes: "Face value. On the internet." <-
Zenoscave: Why do you think so many nigerian princes talk to me
Zenoscave: Because I trust people
AntiSquid: thispersondoesnotexist = one of the best face value websites out there
reCurse: What's your email again?
Zenoscave: whose mine?
reCurse: Yes
struct: Wow
struct: The accountant winner is playing on this contest
Zenoscave: lol I'm dumb but not that dumb
struct: had no clue
Astrobytes: l**esmi*h@zenoscaveswebsite.com
Scarfield: https://youtu.be/s3zjRcMnRNY?t=88 this is you zeno?
Zenoscave: maybe
AntiSquid: the amazon support guy that keeps calling started to sound geniune
AntiSquid: more genuine ... not really there yet
Zenoscave: I get car insurance department calls
Zenoscave: that's the company name "Car insurance dept."
Astrobytes: lol
struct: I think I found foul proof way to find re curse alt
struct: Just invite everyone to CoC until you get banned
Scarfield: xD
Scarfield: would defo work if euler is using an alt
AntiSquid: just mention amnezia from the car accident, tell them to give you the details, or ask stupid questions, mentioned bikes, 3 wheelers, etc they'll stop calling and tell you're not a customer anymore
Astrobytes: But the alt isn't a moderator (OR IS IT?!)
reCurse: Jokes on you I have more than 1 alt
The_Auditor: is Automato2000 still arround?
Scarfield: no
AntiSquid: AutomatonNN ?
AutomatonNN: eulerscheZahl is there a way to see a very simple code to see the best path to the list of the resul
The_Auditor: is Automaton2000 still arround?
icecream17: (test) automaton2000
Automaton2000: the challenge is to get it
Automaton2000: i thought my bot was kinda smart, but it's not working for me
Astrobytes: I suspect you have one per contest reCurse. It's what I'd do anyway ;)
reCurse: Maybe.
icecream17: i wonder how often automaton2000 pings someone
Scarfield: why use an alt though? is being a mod online during contest a hazzle or whats the reason?
Automaton2000: looking forward to the next league
reCurse: Too stressful
Astrobytes: If the contest isn't something you like or whatever then you can ditch it
struct: If he wants to quit he can always delete the smurf
Astrobytes: (I'm not using an alt btw, my rank is really that bad)
reCurse: It's totally a flaw it's just how I cope with it
Scarfield: im still just doing random action, hopefully tomorrow i will get further
struct: I dont have anything against it
Astrobytes: It's not a flaw at all.
Scarfield: but why make an alt, you could just quit, or does joining with your main put on pressure to perform. Im just curious btw
Astrobytes: We're all human at the end of the day.
Scarfield: or ..
Astrobytes: yeah yeah
reCurse: I feel obligated to perform and it tilts me when people read into a bad performance or whatever
reCurse: With an alt I can just delete and move on
Scarfield: makes sense
AntiSquid: taking it too personally
reCurse: Yeah
struct: I dont think you need to prove anything
struct: But w/e its your choice afterall
Astrobytes: Yeah but you can't always force yourself to believe that struct
struct: Yeah, I understand
struct: I dont wanted to sound harsh
Astrobytes: Subconsciously I mean
reCurse: Getting too emotionally invested has been my biggest flaw in competitive endeavors
Astrobytes: No you didn't struct
Scarfield: luckily i dont have that kind of pressure on me xD
reCurse: At this point I give up on changing that :P
struct: Well your 1 day bot could beat my 30 day bot
struct: What rank do you usually aim for re curse?
reCurse: 1
struct: 1st? or top N?
struct: damn
Scarfield: makes me wonder how hard it would be to rank as the very last. Timing out every match might not work
reCurse: Server-side rng for matchmaking
Scarfield: isnt there actually an award in tour de france for finished 2nd last?
struct: no
struct: you are the 1st loser
struct: thats about it
agenordebriat: Finishing is a feat in itself
agenordebriat: Might not be the case here... :D
struct: There is Yellow jersey (general time winner), Green jersey(ponts), Dot jersey(Mountain points), White Jersey(youth general time)
struct: Time to port tdf game here
Scarfield: Lanterne rouge is the very last to finish, for some reason remembered it as the 2nd last
struct: Didnt know it existed
struct: The name is funny
Scarfield: "refers to the red lantern hung on the rear vehicle of a passenger railway train"
avdg: hmm not sure if some are doing sim, I did not track chat so far
avdg: doing my sim version and it seems expensive :-)
ZarthaxX: yes, people is doing sim
struct: I dont think its that expensive
struct: If you are simming both
struct: maybe
avdg: I need to trace my bottlenecks
avdg: and cut out some calculations
avdg: code is just a few hours old
avdg: though I didnt spend too much time coding, my non-sim version reached top of bronze
struct: How do I stop early optimizations? It's my biggest problem.
avdg: tackle the problem big enough from the start
avdg: if you take the challenge big enough, you only have to focus on the little ones
Bobbadillio: In the sense that you're trying to write optimized code early, and then it becomes too slow to update?
avdg: though it is an recursive thingy
Astrobytes: Forget intrinsics exist struct, there are none. There is no AVX. Your code is pure.
Astrobytes: ;)
struct: Bobbadillio I keep trying to optimize early and keep rewriting
struct: im stuck on a loop
struct: No way im gonna use AVX here
Astrobytes: But you're doing lots of bitwise optimisations prematurely I would guess
JohnCM: it seems like i must make 6 potions under 45 turns to win silver boss
struct: well I saw top brewing 6 under 30
struct: So 45 seems feasible
JohnCM: how??
struct: Astrobytes I dont even know what im doing anymore
JohnCM: brew under 30
avdg: hmm my sim does about 1000-1500 iterations at the start
JohnCM: that is nuts
avdg: but crashes after a few turns
ZarthaxX: F
Bobbadillio: What's an iteration avdg? a full rollout through a game, or something else?
avdg: a move in a sim
Bobbadillio: Ah, cool
ZarthaxX: Astrobytes you cant stop structo from optimizing
struct: continue;
ZarthaxX: he always ignores the phrase "optimization is the root of all evil"
ZarthaxX: struct LOL
struct: That is not how I exit an infinite loop is it?
ZarthaxX: how is that efficient sim going anyway
ZarthaxX: break;
ZarthaxX: mah man
Bobbadillio: haha, I mean, it's ONE way to get it done ;)
Bobbadillio: wait, no it's not
Bobbadillio: actually, I wrote that bug earlier
JohnCM: i see it now
Bobbadillio: in my own code
ZarthaxX: loooooooooool
JohnCM: silver boss uses repeatable spells
JohnCM: i don't
Astrobytes: lol ZarthaxX :D
avdg: my can, but my non-sim can only do so limited
avdg: *mine
struct: ZarthaxX that is not helping my optimization addiction
ZarthaxX: :D
avdg: my sim one can handle repeatable spells just fine
avdg: it only makes it a bit slower I guess
ZarthaxX: lang?
avdg: lang of my ai?
struct: TS
avdg: yeah TS
struct: ok no more optimizations
struct: until I reach gold
avdg: I guess my code should be better written in a non-gc and a bit more optimized datastructure
AbundantPuddle: But if there are no more optimizations, then your code won't be optimized.
avdg: -O0 all the way?
avdg: my sim def needs some -O3
Bobbadillio: ehh, what's a factor of 2 in speed between friends?
icecream17: i wonder, what's the fewest possible amount of moves it would take to win if both players output valid actions
Bobbadillio: Probably a mirror match, but maybe not
Bobbadillio: actually, almost definitely not!
Bobbadillio: Wait, maybe it would be...
ZarthaxX: TS is not the way to go for sims :(
avdg: assemblyscript maybe
Bobbadillio: I was thinking of highest points/turn for a win, and the loser helping the winner by buying any expensive spells that would otherwise get the bonus.
icecream17: maybe the opponent would help by learning all the unuseful spells
JohnCM: fewest number of moves depends on the orders and spells
avdg: not sure if the js engine supports wasm
Bobbadillio: ah, okay, so fewer tax ingredients ? that makes sense.
avdg: but I think it can?
DreadY2K: The opponent could also get high-tax ingredients to transfer ingredients over
Bobbadillio: Ohhh, yeah, there you go
DreadY2K: Small help, but might make a difference @icecream17
Bobbadillio: That would be cool if the JS engine supports wasm, I should find out. Maybe I can compile my rustbot to wasm and become a javascript competitor :D
icecream17: i wonder what would happen if the contest was to lose
icecream17: oh, then no one would do any potions. nvm
DreadY2K: Yeah, you can just wait so nothing happens
DreadY2K: Though, if spells are always castable, and resting and waiting are removed, then that might be an interesting optimization
DreadY2K: How few points can you get while casting or brewing every round
avdg: I saw things with 7, maybe 6 points
gacii: ca
linjoehan: Do you have to track the number of orders completed?
avdg: mine doesn't
avdg: though there is a limit
avdg: but I think it this way
avdg: if you brew very fast, you would probably win anyway
avdg: unless you brew the things that have a low price
avdg: (except if these were the very easy ones to make)
linjoehan: you may want to brew fast cheap ones when you in the lead and slow big ones when you are behind
JohnCM: if the contest was to lose, i'll just rest all the way
reCurse: Why rest when you can crash
avdg: so in theory, an ai that is optimized enough shouldn't care about tracking orders
linjoehan: but it should, you need to know that you can win by ending the game early
DreadY2K: I wrote code to track the number of orders I've done and not brew a potion if brewing it would make me lose
DreadY2K: But I haven't seen that code actually be run
DreadY2K: Either I win easily enough, or the opponent brews the last potion and beats me
avdg: you just have to know that you are maximizing points with the lowest moves possible
JohnCM: there's a possible deny strategy
JohnCM: to trap your opponent with tier 4 ingredients by brewing the tier 4 faster than him
linjoehan: avdg your opponent has just brewed one putting them 10 points ahead, you can brew that 7 point on your next turn but it will be your 6th one and in doing so you will lose.
DreadY2K: @linjoehan fwiw, I wrote code to handle that case, and I've never seen it actually prevent that scenario
avdg: hmm yeah actually its more complicated indeed
DreadY2K: It can happen, but it seems to be rare
avdg: though the start is the same
avdg: and the only influence is the tome
avdg: and orders
Codeab: morning
Astrobytes: Out for tonight, take care all and see you tomorrow :)
Illedan: bye
avdg: cya
avdg: and meh, my sim only goes max 5 steps ahead
struct: cya
Shparki: What is the best way to debug these things? I can't really log or pint more than one line
struct: you can print to stderr more than one line
Shparki: It quits though when I print something it doesn't expect
struct: what language are you using?
Shparki: python
struct: print("Debug messages...", file=sys.stderr, flush=True)
Shparki: Ah swee thanks, OH stderr, I totally read that but read stdout
linjoehan: So if you see the first 5 orders and the first 6 spells you can back engineer the random seed and then be the best at look ahead?
struct: If you have infinite time sure
struct: and im sure that 2 seeds can have same start position
struct: and not be equal after it
miszu: I find one of the c hallenge is to come up with good heuristics. Just checking the difference in inventories doesn't seem enough
avdg: got my sim up to 3300 moves now
avdg: I only get 14 steps in the game :p
miszu: your depth is 14?
avdg: 5
avdg: but in game step 14, the computation is too big
miszu: too many spells you have
avdg: true
avdg: though my bot in arena is the non-sim version
miszu: I am trying to do a non sim version
miszu: basically take the best step
miszu: but my heuristics is weak
avdg: yeah that was the plan
avdg: the trouble is, sometimes you have to do like 4 good and sometimes unintuitive steps to make progress
avdg: the trouble is in assembling the required ingredients
miszu: I am trying to do a heuristics where you compute how much effort would it take instead of differences in inventory and potion
JohnCM: https://www.codingame.com/share-replay/505654642
JohnCM: this is pure luck
phord: Yargh! All my output has stopped showing in the game info window...
phord: refresh brought it back.
avdg: hmm my sim can now handle 5000 moves
avdg: not enough
JohnCM: lol i think heuristic only can get to gold
miszu: gold is good enough for me
JohnCM: i haven't even optimized my spell use i am now around 600 in silver alr. just purely choosing the right spells at the start gives that much of an edge
JohnCM: and i am only doing 1-step ahead
JohnCM: ya this competition to get into legend probably needs insane optimization of the lookahead search process
meh1001: I've never programmed a bo before this, or read anything about game programming, so I can't even imagine what heuristic would do that well
meh1001: I did a heuristic thing at first and it cleared wood but didn't do well at all in bronze
JohnCM: your heuristic must approximate number of turns needed to make the potion well
meh1001: in fact I had just found this website like a week before the challenge and did 4 or 5 puzzles and then thought what the heck might as well give it a shot
JohnCM: the more accurate one will be bfs (including repeats)
JohnCM: it's good to start
JohnCM: i joined 6 months ago in time for the spring challenge
JohnCM: i would say the wood league for this challenge is harder, so kudos to you for making it to bronze
meh1001: I thought a heuristic was when when you approximated
JohnCM: typically the simpler the challenge, the harder the ai
miszu: I prefer simple rule but hard AI
JohnCM: this challenge not as much moving parts as the previous ones
JohnCM: so it will be very optimization based
miszu: too much rules and then you are not sure where is wrong in your code
JohnCM: haha my code is about 150 lines long only for silver
JohnCM: once i do bfs, it will be about 200-300 lines
meh1001: yeah I don't know if this one is simple or hard for othe rpeople but it's blowing my mind lol I'm having a great time though
JohnCM: gd luck
JohnCM: i'm sure you can make it to silver with a few tweaks
miszu: my heuristic is like 200 lines of code
miszu: you and our 150 lines for silver
miszu: your*
yhyoxx: what's a good state eval ?
meh1001: I have BFS at the moment and am at like 380 lines, but 1/3 of that is commented out old stuff snicker
JohnCM: haha i'm not joking, it's really 150 if i remove the comments, maybe only 100 lines
JohnCM: this is my simplest code ever for silver actually
ScriptKiddie0101: guys, is there any way to remove these fucking comments in the code?
JohnCM: pretty glad it worked
JohnCM: delete them
ScriptKiddie0101: i dont want to delete it everytime
JohnCM: isn't it delete once, and it will stay that way forever
ScriptKiddie0101: how do i delete it?
JohnCM: on your code screen, just delete the line
JohnCM: meh1001, are you in gold alr?
meh1001: nope bronze rofl... but I think I'm about to break into silver
meh1001: I finally had an epiphany about how I could do the repeats
JohnCM: all the best
JohnCM: good state eval is important
meh1001: I'm 73% in my arena run at #1 so should hit silver
JohnCM: haha i'm about to code in my repeats now
JohnCM: haven't coded it yet
JohnCM: XD
JohnCM: probably can do hand in hand with bfs
meh1001: yeah I got em working in tandem
JohnCM: it's like another action anyway
JohnCM: action A, B1, B2, C, D, E, F1, F2
JohnCM: then just bfs it
JohnCM: what depth is your bfs
avdg: 5 now
JohnCM: i wonder if python3 can do depth 5
avdg: and searching sometimes through 5000 states
avdg: mine is typescript
JohnCM: assuming 10 actions per turn, that is 10^5 enumerations
avdg: pything might be a little bit slower, but not too much
yhyoxx: i can only do 2depth with cpp
JohnCM: maybe can monte carlo this one also haha
JohnCM: have a state eval, do down 3 depth and use monte carlo tree search to choose next action
miszu: my heuristic has a bug. It doesn't do the move it should. I fixed partially and now it does some children's based potion but it still have a bug
mikestratton: Anyone on Wood 1 League Fall Challenge?
meh1001: I'm not sure what ya'll mean by depth in bfs, I think I'm probably not doing it the asme way ya'll are
JohnCM: you cap the max depth for your bfs
JohnCM: if not you might be overtime
meh1001: I think this chat is only people who are in the fall challenge screen
Rodrigo_the_coder: i in wood 3
mikestratton: ok
avdg: my sim solver is now making my sim unhappy about creating too many items in the inventory :p
mikestratton: Not quite understanding what they are asking for in Wood 1 League
avdg: making the sim spam few 100 lines about inv overflow
mikestratton: Trying to figure out if there is a way to display the input of the game in the console
JohnCM: mike which part is not clear
JohnCM: i could help
miszu: yes fixed it finally
mikestratton: If I could read the input it would help
meh1001: mike you can just write some code that will debug out all the inputs
miszu: you can use system err
meh1001: whilte True: print(input())
JohnCM: ah...
JohnCM: # print(taskid, file = sys.stderr, flush = True)
JohnCM: in python, this is what i did to print out the input
JohnCM: like my taskid is basically the inputs given for the inv0, inv1, etc.
mikestratton: It won't let you print until its time for my output
mikestratton: if I do before it just returns error
JohnCM: what language are you using
meh1001: Yeah I did that thing I said and then copy/pasted it all into notepad so I could look at it and feed it locally for some debugging, which I didn't do much of because it was kind of irksome
mikestratton: PHP
JohnCM: oh can't advice, maybe something to do with the caching
JohnCM: why not just output something, store all in variables, then print the variables out
JohnCM: or you can store in strings
mikestratton: Won't let me
phord: PHP for this game? I bow to your courage.
meh1001: it's kind of hacky, but you can definitely make it read the inputs, write them to stderr, then output WAIT so it moves to the next turn
mikestratton: ok will try\
meh1001: I mean obviously if you are literally just scraping input to look at it you don't want to win that round anyway
miszu: ok so with only looking at current best move + chosing most expensive potions to reach for + not learning new spell I can beat the 999th player in bronze
miszu: in C++ :sunglasses:
mikestratton: Ok got the input to display - that helps
avdg: go get my ai at pos 84 :-)
avdg: while its still non-sim
miszu: in bronze?
miszu: or silver?
avdg: bronze
miszu: let me try
Topjimmies: how do I convert my depth first to breadth first :sweat_smile: driving me nuts
miszu: yeah you beat mine by at least 20 pts
miszu: OOOO
miszu: I beat yours in 1 simulation
miszu: https://www.codingame.com/replay/505684248
miszu: = my bot is def better than yours :joy:
JohnCM: to do bfs, you simply enumerate all the next states first and store the next next states in a buffer. next turn, evaluate the next next states and store the next next next states in a buffer
avdg: my ai is kinda learn greedy
JohnCM: dfs is basically whenever you go into the next state, continue from there until end of tree
miszu: also noticed your AI just want to learn random spells
miszu: and then yolo
Topjimmies: learn the whole spellbook, then take the best potions all at once
JohnCM: before you even finish learning the whole spellbook, a gold-level opponent would have won the game
JohnCM: seems like if you can't brew 6 potions in 30 turns, you can't go legend
avdg: hmm I needed 3 more items in inv to win
JohnCM: that's about 4-5 turns per pot
Topjimmies: oh shit, gold is already open
Rodrigo_the_coder: lalalalala.....
phord: Every time I think I'm done, it pulls me back in. :crazy:
Rodrigo_the_coder: Every time I think I'm done, it pulls me back in. :sob:
avdg: k solved my counting issue in the sim
elderlybeginner: are there any changes in in/out between contest's silver and gold league?
tomatoes: no
avdg: now my sim gets 6833 moves befoe crash
avdg: I will plan some optimizations tomorrow
avdg: to flatten some computation trees
meh1001: I don't know what that means but it sounds like progress!
JohnCM: once you hit bronze, it is just about being better than the others already
avdg: my sim is now basically 1 big dfs
tomatoes: x4 slower bfs impl gives better result :sweat:
luthaihoc: Newbie quesion. I 've got top 1 in 1 wood league, How can i prompt to Bronze league ?
meh1001: it should happen automatically once the arena run completes
luthaihoc: Thank you
avdg: my sim is about 600 lines of code inc data structure definitions
caozouhulue: hello everyone
NoobCod3: hey
avdg: so sim this thing isnt too hard
NoobCod3: anybody wanna be friends?
caozouhulue: yeah
caozouhulue: hi noob
NoobCod3: hello
caozouhulue: where are you from
NoobCod3: America
NoobCod3: I'm listening to Dr. Dre LOL
NoobCod3: and now eminem
caozouhulue: nice to meet you
NoobCod3: LOL
caozouhulue: eminem is great
NoobCod3: nice to meet you too @caozouhulue
caozouhulue: but rap is not my dish
NoobCod3: yea
caozouhulue: i like jazz
NoobCod3: im listening to slim shady from eminem
NoobCod3: tell me what song you like
NoobCod3: i will listen to it
caozouhulue: i will listen eminem
NoobCod3: whats your favorite song?
caozouhulue: i like boney james
caozouhulue: he's a great saxer
NoobCod3: im listening
caozouhulue: i reccomend you his ain't no sunshine
NoobCod3: dang he is a great saxer
NoobCod3: wow
NoobCod3: THAT'S CRAZY!
caozouhulue: yeah
NoobCod3: ima listen to the aint no sunshine one
caozouhulue: he's excellent
NoobCod3: I like to play guitar and piano
caozouhulue: oh i found that i have listened the slim shady
caozouhulue: it' has great beat
NoobCod3: yea
caozouhulue: i almost dance with it
NoobCod3: LEL
NoobCod3: you should listen to Someone I used to know by Gotye
NoobCod3: it's a good song
caozouhulue: what is the mean of LEL
NoobCod3: LOL i meant
caozouhulue: ok
caozouhulue: but we usually call lol as League of LEagends
NoobCod3: good
caozouhulue: i like play league of leagends
caozouhulue: how do you feel
NoobCod3: good
Rodrigo_the_coder: so lonely...
KrabbyFR: Hey there! how can I replay the same seed please?
Topjimmies: god damn python is slow
Topjimmies: I can only search depth 2, depth 3 times out
miszu: ok so my naive AI reached 1230/2387 in bronze
miszu: that's good progress
miszu: that moment when you beat an opponent by 1 pt. #gg2ez
Rodrigo_the_coder: :disappointed:
miszu: why sad?
Rodrigo_the_coder: no one chat
miszu: i responded to the gg2ez
miszu: in the ide, is it possible to run vs an ai multiple times and see an average outcome
Zenoscave: not automatically
miszu: so I have to press "play my code" 5 times to see 5 outcomes?
Zenoscave: Or submit or play offline with a referree engine
miszu: alright
meh1001: I looked at the referee thing and then got 100 compile errors because I don't know how to java and figured I'd spend a whole day trying to figure out how to get it working so went back to hitting play
NinjaDoggy: relatable... except I know java :(
LLG: my bot keeps hoarding tier 4 ingredients and get stuck with a full inventory
LLG: I think evaluating by inventory state is not a good idea lol
Batpapa: ahah same
miszu: LLG, your heuristics is too simple so many cases where values are equal
miszu: had the same problem and need to raise your game man
LLG: right now I only check for 3 things
LLG: current score, inventory state and distance to best recipe
NinjaDoggy: nah evaluate by inventory state is ok
NinjaDoggy: as long as your search is deep enough ;)
miszu: inventory state is not enough
LLG: I guess I need to decrease the weight on inventory state
miszu: I used a better heuristics
NinjaDoggy: i eval only by end of game, potion scores, and inventory
JohnCM: you need to progress towards a potion/potions
miszu: whatever you are missing, how much time would it take +/- to reach it. Also if you have any extra items, use it to reduce the overall costs
JohnCM: cannot just by inventory ingredient value
NinjaDoggy: that's where the deep search comes in
JohnCM: my heuristic only 1-ply search is now rank 527 in silver:)
miszu: my gf says my code is not deep enough :(
JohnCM: the heuristic is also impt if you don't want to search deep
LLG: thing is, I haven't really applied any real pruning to my search
LLG: atm I just get the local maxima of the current depth and expand from there
Rodrigo_the_coder: how to go bronze on python
NinjaDoggy: bronze?
NinjaDoggy: just pick a potion
NinjaDoggy: and work towards it
NinjaDoggy: 1 turn at a time
NinjaDoggy: find what you're missing
JohnCM: yea that's my strategy for bronze also
NinjaDoggy: and try to produce that
Topjimmies: my code keeps timing out after turn 6
JohnCM: same as silver too
Rodrigo_the_coder: tell the code
miszu: right now my code is not learning new spells. I guess it's time to incorporate that
NinjaDoggy: honestly
NinjaDoggy: learning spells is overrated ;)
NinjaDoggy: I still have 8 turns of hardcoded learning at the start
NinjaDoggy: and then no more learns after
miszu: the bronze bot is mass learning spells and beating me hard
miszu: I do 0 learning. Learning is for nerds
NinjaDoggy: lol
NinjaDoggy: try hard coding X turns of learning at the beginning
NinjaDoggy: and focusing on cast/brew
NinjaDoggy: you can get quite far with just that I promise
miszu: I konw I could do that naive approach
NinjaDoggy: (currently 41st in gold with it)
miszu: but I want to have a mechanic where I learn smart spells
miszu: like -0 + 1
NinjaDoggy: spells are surprizingly all good
NinjaDoggy: it's possible to get bad combinations
NinjaDoggy: but each spell on its own basically has the same value as other spells
miszu: how a 3 tier0 that gives you 1 tier3 is considered good spell?
miszu: absolutely barbaric
Topjimmies: "your code did not read all available input" then timing out after 5-6 turns
NinjaDoggy: ok yea... that one is a bit questionable
NinjaDoggy: if you have a time out
NinjaDoggy: it will display that error
miszu: I am confused with the learning spell. I can only learn at index 0?
NinjaDoggy: basically it goes like this:
NinjaDoggy: learning a spell costs tier-0 ingredients equal to the index
NinjaDoggy: so index 0 is free, index 1 costs 1 etc
NinjaDoggy: and the tier-0 ingredient is then placed onto the spells leading up to it
NinjaDoggy: and that's the tax
NinjaDoggy: after you learn a spell, you gain tier-0s equal to the tax
miszu: sometimes I see like 2-3 tier0 into one square
miszu: is that normal?