Chat:World/2021-05-11
Smelty: y-yikes
JP7: wait
JP7: I've not edited my spring challenge code all weekend
JP7: why did I just promote
JP7: wtf
JP7: O.o
Zenoscave: you got bumped by someone else when you were close to boss
Wontonimo: consider it a public service
JP7: I mean, I'll take it
JP7: lol
Wontonimo: if you submit early in a contest, you don't have to beat the boss, you just have to be better than those that beat the boss
JP7: ahh, comprendo, ty
Wontonimo: if boss is rock, you can't beat it if you are scissors, but when paper comes along and beats rock, the system will think you are better than both.
JP7: Well-put
Wontonimo: okay, tomorrow is write-a-sim day (maybe)
UndercoverToad: wasn't that on Saturday?
Zenoscave: I hate random loss streaks
Bernard_Lowe: Hi, where can I view the changes for silver league? I got a 404 error on rank up.
klforthwind: 404 is a page error? there shouldnt be any changes between bronze and silver, but I could be wrong
Bernard_Lowe: I guess nothing has changed. I looked through the rules.
Zenoscave: nothing changes after bronze
Zenoscave: unless there's like an obvious bug in the game
LLG: should I expect any changes in gold and above tho?
LLG: or is this gonna be the whole game til the end of the contest
Zenoscave: no changes
Zenoscave: Just harder opponents
LLG: I see
Bernard_Lowe: Yes, 404 is very common html page error in general.
Zenoscave: Bernard_Lowe what are you talking about
Bernard_Lowe: Ok thanks, I was busy all day and haven't had a chance to look at this until now.
Bernard_Lowe: Zenoscave, I was replying to klforthwind. When I refreshed my page to get the promotion to silver, the html web page gave me a 404 web page error. This has nothing to do with the coding contest or coding pushes if that's what you're thinking.
UndercoverToad: zeno you wanted to win C#. where are you? :(
Zenoscave: Can't break 100
Zenoscave: :/
UndercoverToad: once again you are leaving all the work to me
Zenoscave: Sorry :D
UndercoverToad: and there's a Perl right below me.
UndercoverToad: A PERL!
Zenoscave: If I add opponent sim and make it decently fast I should be top 50
Zenoscave: my eval allows for it. just haven't made it yet
NinjaDoggy: opponent sim can be scary D:
UndercoverToad: not even I have opponent sim
Zenoscave: Then my eval is awful
Zenoscave: or slow
UndercoverToad: or slowful
Zenoscave: true
Wontonimo: what's your bot getting up to in rank Zenoscave? I see it's at 250 and only 1/3rd done
UndercoverToad: 100
Zenoscave: ~120
Zenoscave: This isn't a good submit. I'm testing things
Wontonimo: 52.03 ish in TS.
Wontonimo: so, looking around there, from 120 up to 100 there isn't much of a gap in Score. For 20 position tthe score is only 0.49 points
UndercoverToad: in these ranks it's always close together
Zenoscave: the current submit is my current best preforming
Wontonimo: it doesn't start to spread out again until 32
Ajaiy2: What's the difference between the rules in bronze and silver?
Zenoscave: nothing Ajaiy2
LLG: nothing
Ajaiy2: Oof
Bernard_Lowe: I was expecting changes in the map with unusable tiles or richness locations -- for silver or gold.
Bernard_Lowe: Or different tree start orientations.
Zenoscave: nothing usually changes after bronze
Wontonimo: nopes
Zenoscave: rarely in fact
Ajaiy2: I guess they ran out of ideas
Bernard_Lowe: Well there were a ton of changes in pac-man in Spring 2020, so I expected some changes.
Wontonimo: no, it's the formula to these games
DetoBot: TestMain.java is throwing IO exception
Zenoscave: No. They just decide to keep the rules the same due to community opinion
DetoBot: how do I solve it
DetoBot: Trying to run the sim locally
LLG: I guess I played myself in IDE too much
Bernard_Lowe: Having some small changes can make it fun without being intrusive, like richness locations or unusable tiles, or tree starts. But I'm fine with either.
LLG: getting #407s now
DetoBot: http://chat.codingame.com/pastebin/9d90e2cf-8e9d-4105-9526-6a1d2b07c337
Bernard_Lowe: The pac-man changes were huge, from bronze to silver, to gold, so I was expecting some climate change, level changes today lol.
DetoBot: what's the problem in it?
Wontonimo: yeah LLG, just take a break for 5 min
DetoBot: ok got it
Marchete: moin
Zenoscave: moin
DetoBot: it working now
Marchete: wow perl 8th, what's that sorcery?
Zenoscave: I guess wrapper
Marchete: he is the winner, period
Marchete: ahhh
kovi: not sure top10-20 is still possible with heuristic
UndercoverToad: kovi must know
Zenoscave: true.
UndercoverToad: any sim merged into your heuristic yet?
ZarthaxX: wait what kov not searching?
kovi: beam is ticking...but bad results
Marchete: I said that heuristic had a chance this game
Marchete: not like winning
Marchete: but a fair place
UndercoverToad: legend is possible
Zenoscave: just placing?
jrke: can anyone tell me how good can be depth 1 all moves evaluating bot?
UndercoverToad: top 20 at the end. I have doubts and would like to be proven wrong
kovi: yeah, bottom legend like kutulu
UndercoverToad: jrke that's a depth 1 bot vs my arena: https://www.codingame.com/share-replay/551825521
UndercoverToad: i guess I heavily rely on depth to get anywhere :D
UndercoverToad: oh wait I have a mistake
Zenoscave: eulerstake
UndercoverToad: https://www.codingame.com/share-replay/551826119
UndercoverToad: red = depth 1
UndercoverToad: doesn't stand a chance
Marchete: but it depends
Marchete: a NN can be almost perfect at depth1
Zenoscave: Marchete what are you doing in c#
Zenoscave: I don't like this
Marchete: I don't know!
Marchete: I never used dotnet
Marchete: I wanted to test it
Zenoscave: fair enough
Marchete: seems powerful
UndercoverToad: did discord change their icon?
UndercoverToad: i have a feeling that the blue proportion is higher now
UndercoverToad: in the browser tab bar
jrke: blue to white and white to blue?
Ajaiy2: Is anyone gonna do some "spring cleaning" on their code?
UndercoverToad: no. i just think the blue circle looks thicker
UndercoverToad: no, it's a contest. I make it even more messy to gain a few more sims in return
UndercoverToad: that submit looks promising
Ajaiy2: I get what you mean
UndercoverToad: found a bug in my seed spot eval
Marchete: can I disable the unsafe errors in CG IDE?
Ajaiy2: That'd take a long time to find
UndercoverToad: i just ignore CG IDE hints
Marchete: my right bar is a christmas tree
UndercoverToad: looks like a chrismas tree when the language server doesn't crash
UndercoverToad: oh, same metaphor :D
Marchete: :unamused:
UndercoverToad: i swear i wrote that before seeing yours
Marchete: that C# mindset is contagious
Zenoscave: Why so many C#'s
Zenoscave: where are they comming from?
Marchete: :christmas_tree:
Smelty: l o l
Smelty: ;/
UndercoverToad: oh, 2nd :heart_eyes:
Zenoscave: gz
Marchete: something new? a new hash?
UndercoverToad: bugfix
UndercoverToad: my seed placement eval checked the source cell, not the target
Marchete: .....
Zenoscave: whoops lol
UndercoverToad: :D
Marchete: ok that's embarrasing
UndercoverToad: so random seed targets can still reach top10
Wontonimo: what? that's so random
Marchete: if a bot with 13.45% hash collision rate, without seed eval, on C# with 20ksim can be 2nd
Marchete: I don't know
jrke: which data type or STl do you prefer for beam search
Zenoscave: heuristics may have a chance?
Marchete: I'd say yes
Marchete: chance to be high
Marchete: not winning maybe
UndercoverToad: my beam is just putting everything into a hashset to remove duplicates. then use OrderBy().ToList()
Marchete: hashset with 1% duplicates*
Zenoscave: Isn't linq horribly slow?
UndercoverToad: well, the hashset can handle that
MSmits: performance is not very important in this game
UndercoverToad: yes, LINQ is slow. but sure how much that applies to sorting
Zenoscave: hmmmm FAir
UndercoverToad: i think a higher performance would still help me
alanhong: hi
MSmits: you need good eval (which i still havent found :( )
UndercoverToad: to overcome flaws in the eval
Marchete: we are doomed then
jrke: thats unordered_set in cpp right?
MSmits: yes it is
UndercoverToad: yes
jrke: me too Ms no good eval
MSmits: i basically do what UndercoverToad does in my bot, excepting the good eval
MSmits: it's probably 10x faster, but that doesn't matter
UndercoverToad: so you also simulate to day 23 to count suns?
MSmits: yes i do now, i tried a few versions of that
Marchete: a lot of waits until 23?
MSmits: sounded good and i still think it does
UndercoverToad: yes
Marchete: well
Marchete: as it's cyclic
UndercoverToad: in the end you will beat me again. you always do that smits
Marchete: it's like 6 turns
UndercoverToad: i do some caching on that not to cast shadows in the same direction twice
MSmits: UndercoverToad i know and i am always unsure of that, this time is no different. I need a good ides
MSmits: idea
kovi: nice UndercoverToad
UndercoverToad: but true, some math can simpify it further
Marchete: that's what I said
UndercoverToad: thanks kovi
Marchete: from day N to 23
Marchete: make a count of days per orientation
MSmits: I'm not entirely sure what to do with growth in this sun-sim-to-23
UndercoverToad: you always doubt MSmits. but depending on your overall schedule you might even bypass before Friday
Marchete: then 6 the shadows * array
KCrown: how many nodes from day N to 23 approx?
MSmits: I tried growing everything to size 3
Kolo9: niiice 2nd UndercoverToad
UndercoverToad: :)
MSmits: or not growing at all and just wait
Kolo9: I started writing a sim and gave up because I realized I don't really know what to do with it. Made a couple changes to simple heuristic today and 102
UndercoverToad: i print the number of nodes I visit
Wontonimo: it's not cost effective for overall income to grow everything to 3e
Kolo9: still have no idea when to remove trees. tried something and it made it worse
MSmits: Wontonimo i see
Marchete: number of nodes you visit + going to 23 sounds like MCTS....
UndercoverToad: that tree removal is still a hacky heuristic for me
jrke: i still strongly believe completeing before N days is not good
UndercoverToad: not even checking if the opponent started selling or score difference or anything
MSmits: i'm not sure you need to check this
Kolo9: yeah I'm not checking opponent at all, not even simulating anything from next move
MSmits: either it's optimal to sell or it's not
Kolo9: tried to update to complete trees that shadow too many of my trees next turn, but that didn't work
UndercoverToad: did you include shadows cast to opponent?
Kolo9: well, checking how many of mine vs. opp are shadowed by the tree
Marchete: complete at <23 must take into account shadows
Kolo9: also I think I'm growing from 2->3 too much
Marchete: limit trees per size
UndercoverToad: my sim counts the suns for me and opponent with and without cutting the tree and compares
Marchete: it's a solution
Marchete: I think my shadow calc isn't very expensive
MSmits: UndercoverToad you mean your beam just considers completion and the completed state is one of the states that you eval
Kolo9: I see Toad, thanks. I *think* mine would have been doing the same thing?
Marchete: eval is (and move gen)
MSmits: since you eval every state with your sun thingy
UndercoverToad: yes smits
Kolo9: oh actually no because it only considered the next-turn shadow from the tree I'm cutting down
MSmits: yep same thing i do :)
Khimich13: hi everyone! do you know if there is a way to keep playing clash after time is up just for training?
UndercoverToad: https://eulerschezahl.herokuapp.com/codingame/puzzles/
UndercoverToad: search it
MSmits: did you force a phasing order? I see a lot of players do complete-grow3-grow2-grow1-seed
MSmits: i could check a few games\
MSmits: to figure
UndercoverToad: no comment
Wontonimo: ^^ that is a very cost efficient method
MSmits: hehe
Marchete: he said it was irrelevant yesterday
MSmits: I'll check :)
Wontonimo: it can save 3 suns or so a turn
Marchete: and I can't see why
UndercoverToad: tell me your findings in DM
jrke: how can i make sorting in unordered set?
MSmits: will do
Marchete: you don't
Marchete: unordered is unordered
icecream17: gn
Wontonimo: gn all
Wontonimo: it's about the half way point for the competition
Ajaiy2: What do you think I should do to my code? Should I go another path or stay where I am? I'm currently using a algorithm which just checks for a good place to plant
KCrown: Im using algorithm only and Im at 666 ... I thin kI cna improve that by maybe 200 300 ... but then I think you need to search
dbdr: nice UndercoverToad
aangairbender: yesterady my simulation was kinda 6k/100ms, today its 300k/100ms and my beam search manages to search until the end of the game in 100 ms wtf
aangairbender: has bug for sure
dbdr: aangairbender with a narrow beam, you can go as deep as you want
aangairbender: dbdr, yeah I had 500 width and my bot didnt seed and new trees (my eval is just points + suns/3)
aangairbender: seems like too narrow
MSmits: jrke in my beamsearch i have both an array and an unordered set
MSmits: i sort the array, or at least, i use nth element, which is cheaper than sort
MSmits: max element to pick final move
MSmits: you dont do everything with just unordered set
MSmits: unordered set is just to check if you already have a state
KCrown: by beam do you gusy some form of monte carlo?
Marchete: it's just a isDuplicate()
LLG: how'd you go from 6k sims to 300k sims
Marchete: adding bugs
MSmits: 300k seems easily doable
aangairbender: LLG I rewrited my sim without any invalid moves checks
MSmits: if a sim is advancing 1 state
MSmits: maybe not with full sim to end on every move (with suns)
aangairbender: and assumed 2nd players always goes WAIT
aangairbender: MSmits but giving suns is a part of the sim, how can I remove it?
Marchete: he is saying simulate to the end
aangairbender: my sim is just state+action -> new state
aangairbender: but if player does WAIT it gives suns
MSmits: aangairbender i mean every time you sim 1 turn and you eval for beamsearch, you do a full calc to end for suns
MSmits: so basically youre simming 1 turn
MSmits: but you check if this action changes the final sujn count
jrke: why is this happening depth 25 in 66 ms beam width 400
jrke: :rolling_eyes:
Marchete: width 400 -> 4000
aangairbender: MSmits so I can eval only in the end of the day?
Zenoscave: How are you doing a width of 4000 :O
aangairbender: or I dont get it :sweat_smile:
Marchete: no I'm not
Marchete: I'm saying that if you have 66ms and you reach depth 25
Marchete: maybe you can increase the width
Zenoscave: and lower depth a bit?
Marchete: imo without enemy a depth 25 is noise since depth 4
aangairbender: that's smart
jrke: but i think there is bug cause thats large amount of nodes in small time
Zenoscave: depth 4 due to innacurate next day events of neighbor?
icecream17: i dont understand... how is this person at 2154th place beating me???
Marchete: because the enemy won't wait full days
zukarinkuari2: im making ro b l o x game
zukarinkuari2: u w u
zukarinkuari2: HAHAHAHAHA
Marchete: beam search is like a max without min
zukarinkuari2: print ("hello beach")
Marchete: but it's working
zukarinkuari2: imma play clas of code
zukarinkuari2: bnbabababababayeeee
Zenoscave: zukarinkuari2 quit
jrke: the one thing that looks good is i completed all that i seeded- https://www.codingame.com/share-replay/551847865
Marchete: nah, my sun calculation is still wrong
Marchete: movegen seems fine
jrke: did this line in statement was from starting - 'The theme and game for this challenge are strongly inspired by Hjalmar Hach's excellent board game Photosynthesis.'?
Marchete: no
limakk: neighbors keep update automatically or we have to update >
limakk: ?
limakk: oh it is cell number oh ok
UndercoverToad: jrke the official github repo still doesn't have that line https://github.com/CodinGame/SpringChallenge2021/blob/main/config/statement_en.html.tpl
jrke: but statement is having
UndercoverToad: i know. this means it's somewhat recent
jrke: oh yeah you can make out from this
icecream17: uhhh https://imgur.com/a/nd7SLAc
UndercoverToad: should we know the user you won against?
icecream17: oh, it somehow glitched game 6 up to game 28. nvm
JoshuaRC02: Does anyone know how to fix the playback for the event only showing grey images?
UndercoverToad: try disabling and reenabling hardware acceleration
UndercoverToad: or different browser
JoshuaRC02: thanks, that fixed it
The_ZimaBlue: https://www.codingame.com/contribute/view/6690febe95fb1659fa53b7f16b54bc0a9591
UndercoverToad: i'm not convinced by that clash
UndercoverToad: floating points with an absurd high precision that can cause precision issues.
UndercoverToad: constraints saying < 24 but a validator having 28
UndercoverToad: and overall doesn't seem interesting to me. at least do something about next day. like 23h to 1h = delayed
LLG: what do you guys look for when selecting a cell to plant a new seed?
The_ZimaBlue: richness
NinjaDoggy: avoiding shade on each other
NinjaDoggy: then by richness
dGrayCoder: how exactly do you guys make "AI" for these games?
dGrayCoder: Using Algos like Minimax or something else?
NinjaDoggy: depends on the game
NinjaDoggy: most people are doing beam search for this game
limakk: me doing if else :|
limakk: (19-36), (7-18), (1-6), (0) to find distance :p
Thienu: does anyone know how to test locally?
Thienu: ideally with lots of games
Zenoscave: damn depth 5 times out now
Ahriana: how to complete spring challenge :(( i dont know the rule
supershah: guys i can't see the game it shows blank screen
dGrayCoder: If I am not wrong, beam search does not consider your opponents moves?
supershah: I tried refreshing
dGrayCoder: @supershah close your browser and try again
dreadylein: depends, but most people opt to no consider the opponent at the moment
supershah: okay
supershah: still the same problem :(
RageNugget: is there a way to get back to a clash of code challenge, even after the timer is over? want to fonish that thing :/
UndercoverToad: try to disable and reenable the hardware acceleration or switch browsers
supershah: okay let me try that
supershah: it worked
UndercoverToad: nice
supershah: thanks
NinjaDoggy: the helpful undercover toad :O
UndercoverToad: being helpful is not my primary goal this contest
NinjaDoggy: :O he's going for the win :O
dbdr: a toad wants a new achievement
NinjaDoggy: do you plan on sticking with beam search? or are there plans for a new algo?
UndercoverToad: the problem is: i'm usually high early in the contest
UndercoverToad: but can't keep up the pace at the end
NinjaDoggy: yep seen this all too many times
UndercoverToad: i might go away from beam if i find out how to code that properly
NinjaDoggy: day 5: a sad defeated toad croaks for the last time in chat before going off to bed
UndercoverToad: you haven't even been around at the worst of my losses
NinjaDoggy: O.o
UndercoverToad: mean max, ghost in the cell
NinjaDoggy: I was there lurking ._.
UndercoverToad: oh
NinjaDoggy: ghost in the cell was like my first contest ;)
UndercoverToad: i didn't even know that you are here that long
UndercoverToad: was my 3rd
solistice: Good morning guys
NinjaDoggy: morning :)
NinjaDoggy: i'm about to head to bed :P
solistice: So, I've never worked with timings. Is it safe to say that I can just use something like stopwatch in c# to break off calculations whenever I'm close to the 100ms limit?
solistice: or is that risky?
NinjaDoggy: yea that's how it's generally done
solistice: so, if I understand correctly, I have 1s to provide first action, then 100ms for all subsequent?
Marchete: just reset the timer after you read inputs
UndercoverToad: i use stopwatch too
NinjaDoggy: that's correct
Marchete: everybody at C# uses stopwatch
Marchete: I even did in C++ :D
solistice: and from where to where should I time? the beginning of the while loop until writing the action?
UndercoverToad: but not System.Diagnostics.Stopwatch.StartNew()
Marchete: then what
Marchete: oh, it's a secret, shhhh
ddreams: start timing after the first read
dbdr: \o/
Marchete: /°\
LLG: I've been getting 407s for the last 15 minutes
Marchete: http://chat.codingame.com/pastebin/29cef6e3-ae9e-4342-b589-b326e172e3c1
Marchete: a wrapped stopwatch
Marchete: microsecond resolution (can be nano, but what for?)
Marchete: Start(89*1000) then Timeout() to check the timeout
Marchete: it's simpler for me
NotSureWhyThisWorks: is there a way to calculate neighbours and shadows with bitboards or am I wasting my time? I'm new to bitboards
LLG: are you using cube coords or spiral coords?
Marchete: bitboards is hard
darkhorse64: and likely useless in the contest
Marchete: it's a way to calculate shadows, but you need some precalcs
Marchete: like converting sun orientation to a shift offset
aCat: how often do you check time?
Marchete: in my case: int[] sunOffset = new int[]{ 1,-7,-8,-1,7,8 };
aCat: because its slow operation by itself
Marchete: that means bit shift
Marchete: either left or right according to sign
NotSureWhyThisWorks: LLG I am redoing my implementation so not sure which to use
Marchete: bitboard will be fast
aCat: yeah darkhorse64 probably right :(
Marchete: but it's not trivial
aCat: wasted few days on this but learned a lot
aCat: Marchete how often do you check time?
Marchete: then it's not wasted
aCat: I self this myself :P
aCat: *tell
Marchete: aCat you should adjust to avoid timeouts
Marchete: i.e. as few as possible while not timing out :)
Marchete: I'm not at that point yet
Marchete: I have sun calc bugs
darkhorse64: If you go the search way, a sim without optims is plenty fast enough. The real issue is the eval
Marchete: it depends on the eval
darkhorse64: I have 400k nodes/depth 20 in my BS but it's crap
NotSureWhyThisWorks: ok possibly I will skip the bitboards for now then. My current bot is around 140 with heuristics so hopefully the eval works ok with search
Marchete: because depth 20 BS is crap
Marchete: yeah NotSureWhyThisWorks, bitboards are hard
Marchete: for me it's like N days of work
darkhorse64: depth 10 is no better
aCat: but satisfying ;p
Marchete: yeah, bitboards are fun (for geeks, ofc)
NotSureWhyThisWorks: I am used to python so python me wants to just have lists and tuples and all that nice stuff
darkhorse64: bitboarding in fall challenge was more rewarding
aCat: more == the only way to go ;p
aCat: (nearly)
darkhorse64: The only thing I did was compressing my node up to a point I can use it as a hash key for removing duplicates. That was a huge speed gain
UndercoverToad: Marchete 10:03AM in my case: int[] sunOffset = new int[]{ 1,-7,-8,-1,7,8 };
that looks as if you stole my code :o
UndercoverToad: except that we swapped + and -
itzluku: guy what depth do u achieve and what % of possible move combinations do u evalutate+your rank: (depth,%,rank) ?
itzluku: guys*
NotSureWhyThisWorks: what coordinate system is that sunOffset for?
UndercoverToad: assigning own IDs to the map and ignoring the ones assigned by CG
AntiSquid: agree with you darkhorse64
annaproxy: Just replaced all my bool[] with uints and it's not even faster D:
AntiSquid: what about the rest of your code? is that optimized?
annaproxy: Probably not ^^'
dbdr: profile before optimizing
Thienu: dbdr what's a recommended way to profile?
AntiSquid: ok found some evals to break into top 1k i hate the game even more now realizing what i needed . pure bs
jrke: i need a good eval
AntiSquid: it's only #800 or so but good enough
UndercoverToad: you have to code the beam search properly
AntiSquid: ya who doesn't jrke ? :D do you use any eval at the moment or minimal ?
UndercoverToad: still requires some skill
AntiSquid: i don't use beam search
jrke: i am messed up
UndercoverToad: > i hate the game even more now realizing what i needed . pure bs
AntiSquid: bullshit
AntiSquid: :D
UndercoverToad: oh :D
jrke: getting depth 25 in 66ms in BS i am 90% sure its bug
UndercoverToad: i read that as "it's easy to get a top rank, just code a beam search"
AntiSquid: no no .
UndercoverToad: it's possible jrke. if you have a very narrow beam
jrke: 400
jrke: beam width = 400
AntiSquid: i keep reading BS as bullshit though lol
UndercoverToad: that's insane. i have way less and sweating not to time out
UndercoverToad: lower depth as well
Clagus: it's like Elon said - abbreviations are cancer :P
AntiSquid: i think going lower depth also helped with rank
VizGhar: lower = deeper?
alchemsti: I'm impressed with people getting sub-200 without simulation / beam search etc.
alchemsti: I'm not doing a "proper" eval, i.e. using all information, but I'm not doing a trivial one either, and only ~450 :(
alchemsti: Guess I'll have to code up that BS. (ambiguity intentional :D )
NotSureWhyThisWorks: I think there are a few people in top 100 without any simulation
Thienu: good heuristics can approximate searches pretty well in this game imo
alchemsti: Well, if your eval is good enough, you don't need to simulate
alchemsti: :D
alchemsti: Yeah, that was my thought too
alchemsti: but getting the heuristics good ...
Thienu: mines still pretty simple
alchemsti: And tuning the damn parameters
Thienu: and im top 100
alchemsti: Respect!
Thienu: but yeah beam search might be an easier way to get there :sweat_smile:
alchemsti: Do you want to give a vague description? I'm trying to balance things like shading my enemy, not shading myself,
alchemsti: and balancing cost vs payoff
alchemsti: and balancing harvest vs. growth
darkhorse64: Actually, heuristics tend to eval moves (not always) when bs evals states. So moving to bs may not be straightforward
solistice: ugh, transformed all the game code to c# for simulating
solistice: now I have to actually start thinking on what algorithm to use :')
jrke: depth 4minimax loses with depth 1 bot everytime :(
darkhorse64: your AI prefers to WAIT ?
jrke: yes a lot thats a bug i am trying to figure
supershah: procastinating by changing language instead of trying to write an algorithm
darkhorse64: Actually, it's more than a bug. WAIT is the end of a sequence so should only eval and compare WAIT, GROW + WAIT, GROW + SEED + WAIT. That's what euler said yesterday (he talks too much but it's a very thorough remark)
AntiSquid: 700s range :O Automaton2000 let's celebrate
Automaton2000: tell them to go to the left
AntiSquid: go to the left guys
Mourfette: I can't find my friend in the list to add him as an opponent. but he is silver like me, any reason?
RoboStac: the list is limited to the top 1000
RoboStac: in that league
Mourfette: ah, well, that explains it
alchemsti: darkhorse64 - yes but moves are just deltas between states. But it can mean needing to change a lot :/
LLG: my sims only takes about 60% of the total time my engine takes to complete 1 turn
LLG: idk where the other 40% went
ddreams: I think the search function should not have a top 1000 player limit
dbdr: Thienu: for profiling, it depends on your language, OS, IDE, ...
ddreams: I'd like to check out the catboss, for example
dbdr: I use perf on linux with rust
Thienu: ah alright, I'll have to look into it then, thanks
AntiSquid: 600s ! so ya just need to work the eval ... Automaton2000 give me some ideas
MSmits: UndercoverToad I have 1000 beam width and 20 depth and dont time out even with your sun calc :P
Automaton2000: man i am so bad at coding
MSmits: this is how useless performance is compared to eval
AntiSquid: what MSmits said
UndercoverToad: how do you even define depth? days or actions?
MSmits: actions, where i keep going until the last state is waiting
MSmits: so a day is generally 4 turns
MSmits: so my depth is 5 days more or less
MSmits: but as darkhorse64 says, with lower depth it isnt really better
MSmits: my eval is crap
MSmits: and until i figure out how it should be, i will not improve
darkhorse64: mine is worse
AntiSquid: i added some crappy extra heuristics and if you'd read the eval you'd agree it's crap, but it gave me higher rank MSmits, so yes eval is power
darkhorse64: Actually, I am not sure. I think my algo sucks even more
AntiSquid: we need to come up with a metric to see which eval is worse, we can't just keep bragging
RoboStac: if only there was some sort of leaderboard based on battles between bots
darkhorse64: yeah, I am complaining but there are 4k ppl behind. I don't want to look behind
AntiSquid: ya would be nice
UndercoverToad: 5k even
itzluku: imo depth = days but with only partial (your_next,opp_next) move tupels, because of limiting factors
jrke: i am not sure whats happening with me
jrke: is there in bug in my referee or in algo not getting anything or bad eval
ddreams: locally?
ddreams: I guess so, since you say "my referee"
UndercoverToad: https://www.codingame.com/replay/551986111 funny, how similar bots already got
NotSureWhyThisWorks: test your eval against "return rand()"
UndercoverToad: and then I have the sun disadvantage in frame 28
Nagatwin: What kind of algorithm is that Euler ?
Mourfette: UndercoverToad you start by waiting, growing tree one, the waiting, growing tree 2 then seed. isn't it best to seed first i case of your seed location gets taken first? or is it taken into consideration in your process so you know there are no way it is taken in that case?
RoboStac: but you can't seed the middle until after the grow
Mourfette: http://chat.codingame.com/pastebin/ebaa5dcc-7e73-422f-9ec4-a9e0f28f11fc
Mourfette: oh, guess there is a char limit in chat :D
BorisBarca: guys im getting this: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.
BorisBarca: does anyone else have this problem?
darkhorse64: Skril stats likely mean beam width/nodes.
BorisBarca: been trying to fix it for a couple of hours
Mourfette: you tried to console.Writeline but there are still inputs waiting to be read
ddreams: Do you use the c++ starter ai?
RoboStac: BorisBarca - it usually means you are outputting multiple prints per turn
darkhorse64: he does not spend all time searching
BorisBarca: wait you can only do 1 action?
BorisBarca: and i use starter ai
ddreams: one action per turn, but many actions in a day
ddreams: some people reported a bug in the input reader of the c++ starter ai
Mourfette: one per turn, not one per day. until you send WAIT, it is still the same day, but still a new turn
ddreams: something about not reading SEED and GROW possible actions properly
BorisBarca: can you send link to right version?
ddreams: I used the IDE starter code, had no problems
RoboStac: https://github.com/CodinGame/SpringChallenge2021/blob/main/starterAIs/starter.cpp#L97
RoboStac: it's been updated - do you have those lines reading grow / seed ?
BorisBarca: no I don't, I have tottaly something other
UndercoverToad: Nagatwin 11:10AM What kind of algorithm is that Euler ?
beam search
BorisBarca: I noticed that the variebles don't match the ones in the statement
darkhorse64: with twists
UndercoverToad: and duct tape
RoboStac: are you actually using the starter from github or the one that was given in the IDE?
BorisBarca: the one that was given in ide
RoboStac: ok, don't worry about any of the above then, that was fine
RoboStac: it's most likely multiple prints per input
darkhorse64: duct ? :slight_smile:
dbdr: yeah, noticed that too. hidden hint? :D
darkhorse64: he is trolling us mere mortals
UndercoverToad: i would never dare
ddreams: noticed what?
BorisBarca: ok, I didn't understand what now, should I use AI from github or the one in IDE
ddreams: both are probably fine now, boris
ddreams: but make sure you don't output anything before you have read all the input, and that you don't output multiple actions in a turn
ddreams: dbdr and darkhorse64, you think it's called duck tape? :)
UndercoverToad: DUCT = decoupled UCT
UndercoverToad: UCT = Upper Confidence bounds applied to Trees
AntiSquid: backpropagating beamsearch? :D
darkhorse64: double bs ?
UndercoverToad: no magic going on in my bot, very straight forward
darkhorse64: says #4
RoboStac: so we know the duct part of his bot now, what is the tape part?
darkhorse64: it's the tie that binds
UndercoverToad: tape = string
UndercoverToad: that's how I store my internal states
Nagatwin: Thanks UndercoverToad
tarriel: BorisBarca I usually get this message when I am printing debug info to the normal output, rather than the error.
Mourfette: What rules do you apply to choose best seed? no neighbor, not in line with the thrower?
Mourfette: At my level I see many just fillin the whole green center with their trees, but then most of them are in shadow all the time
LLG: how do you guys check for visited states?
UndercoverToad: hashsets
LLG: HashSet is slow for me because I have a Dictionary<int, Tree> and comparing those are very slow
LLG: maybe the dictionary is the problem
Mourfette: what's the int for?
LLG: locations
LLG: just so I can quickly get a tree's data by location
Mourfette: is that better than the tree class having the location index?
Karlox: is it smart to go on c++ as your 1st language?
synchoz: if u know it well :D
synchoz: im just kidding but yeah C++ is great language to start with if u want to start with language that is not super easy but not super hard either like C
LLG: Mourfette my tree class does have a location index
Nerchio: why not
synchoz: damn why didnt i think of Tree class a C# bot develop :S
LLG: but for example, if I were to simulate growing a tree, currently I do state.Trees[grow_target].Size += 1
LLG: if instead of a Dictionary<int, Tree> i have a List<Tree>
LLG: I have no way of getting the correct tree to increase the size, other than iterating through the entire collection
ddreams: in C#?
LLG: yes
ddreams: then you can use array indexing
ddreams: C# lists are arraylists
LLG: yeah but then the index doesn't necessarily correlates to the tree's cellIndex
ddreams: it does if you use the same both places
BorisBarca: cout << "GROW " << i << endl; This line sends me that debug message
darkhorse64: Use real arrays[37] [problem solved]
BorisBarca: i is the index of cell
BorisBarca: I'm so pissed of for this man
LLG: oh ddreams you meant like
LLG: when I'm reading trees from input
LLG: if cellIndex = 5 I do Trees[5] = new Tree...
ddreams: Boris, put a single "cout << action << endl" at the end of the main loop
ddreams: no other cout anywhere
ddreams: then you can only output once per round
ddreams: and always after you have read everything
BorisBarca: I have cout << "Wait" << endl; at the end
derjack: two couts?
ddreams: and no other cout anywhere?
BorisBarca: I have 4 more couts
ddreams: exactly
ddreams: so... you haven't done what I said
ddreams: make a "string action" and set it where you have the couts now
BorisBarca: ok, if I understand you correctly can i have a queue of actions and then cout it in 1 for loop?
ddreams: you can only output ONE action per turn
ddreams: so no queue of actions
LLG: ddreams my State is a struct atm, not a class. Is there any way to initialize a fixed size (37) array of Trees in it?
BorisBarca: So I can't have GROW 5 SEED 4 3 WAIT?
ddreams: Tree trees[37], I guess
derjack: BorisBarca no
LLG: lemme see if it compiles
BorisBarca: i thought that you could make more actions in a single day
derjack: you can
ddreams: you can, but a day is many turns
limakk: per turn an action ?
derjack: you can do what you said, just once per while(true) iteration
LLG: compiler complains about Tree trees[37] -> Array size cannot be specified in a variable declaration
BorisBarca: ok I think I got it
LLG: if I do Tree trees = new Tree[37] I get Cannot have instance property or field initializers in structs
alchemsti: which language LLG?
LLG: c#
LLG: idk if there's any merits in keeping my State a struct tho
LLG: might just make it a class
alchemsti: ha, sorry, can't help. You should consider whether you need it as a fixed size array -- or is generic size with reserve hint close enough.
actualCoderTrevor: https://stackoverflow.com/questions/18772718/array-of-structs-example first result on Google :)
actualCoderTrevor: The syntax of C# is just different enough from C++ to keep you guessing, lol
derjack: ++ is that different from # eh
Dahll: Guys what algorithm are you using ? I don't know if it is useful that useful to simulate opponent turn
ddreams: beam search
Momtaz: Can you get the last action your opponent made at the start of a round? Like if they completed a tree?
ddreams: no
ddreams: you can figure it out though
ddreams: but it was probably WAIT :p
stefan-gg: is there any time limit in which i can go to silver ?
dbdr: until the end of the contest
ddreams: and later it will open up again
itzluku: the depth of beam search is limited to time and ram space with the selection of best options to get the best overall being choosed by heuristics? so even your sim has to implement some kind of heuristic to preselect from all possible options?
itzluku: chosen* xd
dbdr: itzluku the principle of beam search is that you limit the width
dbdr: that's how it differs from DFS
dbdr: BFS, sorry
itzluku: yeh ok so prettmuch with me kinda maxing my heuristic i have almost everything setup for beamsearch?
dbdr: can you give a score to a state and generate all possible next states?
itzluku: since i could just take top3 seed top3 grow and top 3 complete options as a limited width
itzluku: score yes
itzluku: gen all possible next states not for opp , so i have to do that
jrke: beam search is BFS in which you evaluate each node at each depth and keep max BEAM_WIDTH best nodes for next depth
dbdr: you don't have to do opp
itzluku: wut why
itzluku: are u not both making a turn the same time? thought thats why u can palce a seed on teh same index and both seeds get destroyed
itzluku: place*
jrke: dbdr do you still don't predict anything for opponent?
dbdr: I do predict something
dbdr: not super clear how much it helps
itzluku: @dbdr my thought was every possible new state is def by your next action combined with the action of your opp (your_move,opp_move) meaning u have nr of moves by u * nr of moves by opp as oevrall nr ove pos new states
itzluku: and u reduce that width by saying u only make pairs of the best of those
itzluku: but u would still need to calc everythinf for your opp* ?
rc_legend: who can talk with me
itzluku: everything*
dbdr: itzluku to get started, juste suppose the opponent will WAIT. you can get top 10 with that
itzluku: wtf no way
jrke: dbdr with good eval right?
jrke: and good depth
dbdr: "good" :)
UndercoverToad: i agree with dbdr, even top5 with a WAITing opponent is possible
UndercoverToad: might change during the week but i think it's really hard to simulate the opponent in a meaningful way
dbdr: I was #1 with that until recently :D
UndercoverToad: i only got up to #2 :(
dbdr: noob
UndercoverToad: jolin dien too over
jrke: btw what depth you guys reach in BS atm?
itzluku: still dont know what your main acc is lol
itzluku: toad
itzluku: :D
UndercoverToad: hover over my avatar and read the text
itzluku: lel
itzluku: moin meister
jrke: when i hovered over you first time i read 'cheating' instead of 'chatting'
UndercoverToad: and then do the same with my main account. that will tell you that i'm a noob
dbdr: lol
UndercoverToad: my cheating account :D
struct: the time you got 2nd
struct: https://i.imgur.com/vdsqIsf.png
itzluku: so the upside of just making your opp wait in the sim is, that u can have a higehr depth in your beamsearch, meaning u can evaluate more of your own possible choices?
geppoz: :O
geppoz: just added "if (false)" to my enemy prediction
RoboStac: hmm, struct has a smitsimax tab open. Secret tips for the contest?
geppoz: up to 1000 positions
geppoz: :O
dbdr: :spy:
geppoz: can be really that crap to predict?
itzluku: btw whats your function to score a board ? wouldn't the easiest methode be checking sun diff and point diff with changing the weigth of those to depending on teh day, so at the end points have more weigth and at the start/mid suns weight more ?
itzluku: method*
AntiSquid: and mctstalk in chat
struct: someone was asking on chat about simultaneous mcts
struct: So I linked him smisi
struct: smitsi
itzluku: two*
AntiSquid: :thinking:
solistice: what's your guys' approach: copy the state whenever applying an action in a sim, or just apply/undo/
solistice: *?
dbdr: copz
dbdr: copy
schachmatt: dbdr you also struggling to get used to qwertz?
itzluku: can u talk more about that?
itzluku: what to store at each new node
dbdr: I have US-int layout on qwertyz keyboard, yes :D
UndercoverToad: qwertyz? :D
dbdr: :D
derjack: on XP there was shortcut to change y to z and people were constantly hitting it
UndercoverToad: alt+shift survived even after XP
UndercoverToad: one i was in a local electronics store buying a hard disk another customer approached the sales person in need of a new keyboard
UndercoverToad: a bit of back and forth and it was clear that it was just changed to US layout
dbdr: good reason to buy new hardware
dbdr: oh, I set a low depth for testing and forgot to change it before sub :D
itzluku: stil lcant believe a sim where u just pretend your opp always waits gets top10
dbdr: try it and see for yourself ;)
itzluku: yeh u just motivated me to do that :D before i was like emh idk if i can do it
itzluku: meh*
struct: ok, say bye to your rank
struct: im coming
aangairbender: how big is your state size?
struct: /s
itzluku: LUL
dbdr: gogogo struct
struct: mine is 96 bytes
aangairbender: Mine is around 40
struct: 40 bytes?
itzluku: and beam depth?
aangairbender: oh, my bad, 40 bytes for trees
dbdr: screenshot time for the toad
itzluku: xd
aangairbender: struct its 61bytes total
itzluku: dbdr whats your state size
itzluku: and depth
aangairbender: I tried to make it less than 64 for cache line
itzluku: board+weight ?
dbdr: itzluku talk less and code more ;)
itzluku: na talk saves time for later xd
struct: I could make it 64, but I dont think its needed
aangairbender: how many sims can you do in 100ms?
struct: 1Mill+
KalamariKing: jesus
KalamariKing: chill
itzluku: i thought about traversing only 1 board through the tree and only save moves in each node, then i would only need like 48bit!!!
itzluku: but that would prob kill runtime?
aangairbender: wow, I optimized my code still around 300k (including generation all possible actions each time and selection random one)
struct: I didnt really care about optimizing
struct: tbh
aangairbender: still got 1M+ sims:joy:
struct: Its irrelevant
UndercoverToad: dbdr 01:04PM screenshot time for the toad
you know me all too well, I just did :rofl:
struct: if eval is heavy it will lower
aangairbender: but you still generate all possible moves and select random one for testing perfomance right?
struct: I generate and play until end of day and then eval
UndercoverToad: no eval during day already?
UndercoverToad: to keep the beam narrow
aangairbender: I see, I was also thinking about about doing eval in the end of the day only
UndercoverToad: and don't forget to submit struct
struct: I have
struct: Ill submit soon
struct: maybe tomorrow
UndercoverToad: you just made me laugh
UndercoverToad: or keep it. maybe you become the silver boss
struct: So many people in silver already
struct: damn
jrke: struct haven't you made any submit after getting down from 1st?
struct: I need to start coding
struct: I havent
Nerchio: struct you wrote that yesterday already :D
jrke: what could be the opening window for gold?
UndercoverToad: 300 sounds realistic to me
struct: I hope 10%
UndercoverToad: but i was wrong about silver too
KalamariKing: Anyone here know java
gmessier: I will be happy if it's around 600 :P
jrke: i thought max 1250 for silver
Hasuzawa: just ask this is the world chat someone will know
jrke: but they made 1850
KalamariKing: Why is nextInt() throwing InputMismatchException when the input is 0? It works for everything else
KalamariKing: I mean 0 as in string literal "0"
UndercoverToad: you mean random.nextInt()?
KalamariKing: (Scanner).nextInt
derjack: what lang
KalamariKing: Java
UndercoverToad: java
UndercoverToad: bug must be somewhere else
KalamariKing: Every other integer works and I know that the next token is "0"
UndercoverToad: like you reading more or less that you want
UndercoverToad: reading a 0 works fine
itzluku: https://www.youtube.com/watch?v=RLWuzLLSIgw
itzluku: great video
KalamariKing: Hmm, thanks It was working earlier so it's probably somewhere else
Nerchio: my eval is the dumbest i've ever seen and every small change completely crashes the evaluation
UndercoverToad: without clicking I expect a rickroll behind that youtube link
jrke: i can't make out any good eval
derjack: you dont know rick roll code?
KalamariKing: If there are two Scanner objects do they share a 'cursor'
itzluku: no jbait :D
struct: I think that video is overcomplicating
struct: Icebox explains it better
itzluku: link?
UndercoverToad: https://www.codingame.com/profile/5b4f89ffbaad7f5a6ad256595da624679763911
struct: There is no link sorry :p
struct: it was on a discord call
jrke: i can relate Fall challenge icebox and spring challenge 2021 struct both were first in beginning then ....
struct: I was only first due to testing
itzluku: xD
struct: Im only hoping I dont place at top 20
ddreams: hoping for a top 1000?
struct: no legend
itzluku: i mean if u set your opp to wait, then its still luck based by alot
UndercoverToad: because that top20 would mean you wasted your tshirt chance because of testing?
itzluku: tshirt? :O
itzluku: more motivation xd
UndercoverToad: 20 tshirts and 3 canvases up for grabs
itzluku: Pog
struct: yes
itzluku: thats why u have 2 accs HAHAHA
itzluku: jkjk
NotSureWhyThisWorks: UndercoverToad do you have a collection of contest tshirts?
struct: I have more than 2
UndercoverToad: i have some duplicate tshirts, yes
UndercoverToad: how did you get more than 2 struct?
struct: do you have the cube one?
NotSureWhyThisWorks: damn, gotta remove duplicates
struct: more than 2 accounts?
UndercoverToad: the old cube? no
UndercoverToad: but i have 2 of this https://img.printfection.com/18/21271/bT7r1IaOxZpPl8N/Next+Level+3600+-+CodinGame+Rubiks+Cube+-+Black+%28Front%29.png
struct: I dont have any tshirt
struct: nice
UndercoverToad: oh, read that again. you have > 2 accounts
AntiSquid: you deserve a CG hex shirt struct
NotSureWhyThisWorks: tshirt design is decent
UndercoverToad: there is also https://img.printfection.com/18/5645/Rajypem8uxCz4xz/Next+Level+3600+-+CodinGame+Robot+-+Black+%28Front%29.png
itzluku: if they make a unique design for that hex game, would be sick
AntiSquid: i forget i even have it
struct: do you have the read stdin stdout?
NotSureWhyThisWorks: that's cool I think I'm gonna try harder for a tshirt
itzluku: xd
AntiSquid: me? robot arm
UndercoverToad: yes, in gray
UndercoverToad: https://img.printfection.com/18/3872/BDcI0IOU3xhVh3n/American+Apparel+2102+-+CodinGame+-+Black+%28Front%29.png
struct: I was once offered a tshirt for bug reporting
struct: But I refused
itzluku: ?_?
UndercoverToad: severe bug?
struct: nah
jrke: why refused?
itzluku: your adress data is more worth than a tshirt ? xD
struct: I cant recall exactly what it was but it was nothing major
UndercoverToad: you don't even give the address to CG
itzluku: ah u get a code or sth for 3d party?
itzluku: dam that turtle is owning
UndercoverToad: yes, that's how it works
AntiSquid: i never see turtle outside contests
itzluku: price hunter efficiency driven
Violet.-.: hi i feel there's a problem with the system , my codes work just so fine in VS but not here on clashs
AntiSquid: i do i get euler games on submit and then they disappear ?
struct: c++
AntiSquid: why *
UndercoverToad: because you were unworthy
AntiSquid: why are they there in the first place lol
UndercoverToad: i see the battle
UndercoverToad: but you don't have a rank. did you submit twice?
UndercoverToad: game was still playing. you submitted. game finished and was added in UI
AntiSquid: hm maybe that was the reason
UndercoverToad: https://www.codingame.com/replay/552110096 there it is
UndercoverToad: 207 to 37, you lost ;)
KalamariKing: yes finally this took so long
UndercoverToad: you found the nextInt() bug?
AntiSquid: testing
KalamariKing: yup
KalamariKing: fsr I had a \n in one of my prints, which I guess threw off the scanner
TobiasA: is there going to be a boss for all the leagues?
Nerchio: except legend
TobiasA: k thanks
struct: still havent leveled up
struct: guess ill stay 29 forever
jrke: earn 1ex from anywhere and see
UndercoverToad: get 1 more XP
struct: yeah probably got stuck
UndercoverToad: just gave you an upvite
UndercoverToad: upvote
struct: ah
struct: lol
struct: thanks
AntiSquid: technically legend boss is always the #1 player in legend
UndercoverToad: hey you are lvl30 now :)
UndercoverToad: with 79XP. but I only gave you 1
struct: now Im ready for gold
KalamariKing: omg this took so long, who wants to see how poorly this goes
solistice: Can someone give me some small guidance? I have trouble disconnecting the main game from the simulation I am making without duplicating all code
solistice: I could use some small pointers
solistice: Here or in PM
KalamariKing: no way
KalamariKing: no freaking way
KalamariKing: #1 bois
KalamariKing: solistice elaborate?
solistice: so, I basically rewrote the java referee and game to c# to be able to have all actions and normal gameplay
KalamariKing: I thought they already had a referee
solistice: and then there is the main loop where it waits for input, so that's clear
KalamariKing: I forget who wrote it but struct should know
solistice: but now, in that loop I want to calculate the best action, so I call my method there
solistice: but for simulating in depth, I create copies of the game, but now I have to disconnect the main game loop where it reads input and so on from my simulation, where I just ignore everything
KalamariKing: I think I get it?
KalamariKing: How I did it was I had a func that would evaluate the best move, when fed a game state. For the top 'beams' I used the inputs, the lower branches used the game after said best move
KalamariKing: tl;dr write a func that takes in gamestate, then pass either inputs or past move
Nerchio: I just simulate the next states and then you eval them
Asterixk: solstice you cannot let the main loop cycle over, you need your own simulation loop inside the main loop
solistice: makes sense
solistice: thx everyone
KalamariKing: Sure
KalamariKing: Can you all believe it? I spent all this time worrying and perfecting, just to go undefeated by a long shot
schachmatt: how many players are there usually in gold and legend at the end of a contest?
KalamariKing: How many people are in silver rn
struct: 2632
KalamariKing: Thats a lot
KalamariKing: Oh welcome back struct
Asterixk: once i got legend on opening day, and there were about 100 players and it ended with around 500
struct: previous contest legend opened with 20 players
Nerchio: legend usually ends with less than 150 people at the end of the contest i think
KalamariKing: oh wow
KalamariKing: Thats not a lot
Nerchio: but depends on gold boss if its hard or not
struct: The best thing is to wait and get pushed
Asterixk: it was the one with the 2 racing pods per player. CSB i guess
Nerchio: you need to put quite some work into legend for sure
7amasa: Nerchio arent you gonna stream soon :D?
Nerchio: my code got messed up thers no point
Nerchio: i am just changing random variables now
Nerchio: with no hope in sight
solistice: oh, i think it finally makes sense
7amasa: I think we could still learn alot through the though process, I did in the first stream Nerhcio
solistice: turns are not only actions we do, but also gathering and sun move and so on? right?
Asterixk: generating next state? yep
Nerchio: i mean you are at the same rank as me i can probably learn from you haha :d
Asterixk: i mean generating next day
7amasa: haha nahh I am just randomly trying stuff, however your first stream helped me a lot
struct: nerchio streamed?
7amasa: yeah on the starting day I think
Nerchio: but on my 2nd channel with only cg viewers
KalamariKing: How am I in the top 34% in bronze without seeding or shadows
struct: lol
Hasuzawa: believe me or not, I saw a bot crash in 2 turns from a top 20% bronze bot
Nerchio: every change i make to my bot needs to be followed by 150games vs my previous version ;p
Nerchio: breaks too easily
AllYourTrees: does anyone know of a website where you can play Photosynthesis?
jacek: CG :v
AllYourTrees: >.>
aangairbender: fyi rules are not the same
AllYourTrees: oh which ones are different?
aangairbender: I mean CG changed the original rules for this contest
struct: i dont think its simultaneous
The_ZimaBlue: https://www.codingame.com/contribute/view/66945acbc0788cc7154873b92f99ab093f4c
7amasa: I dont know why my bot works, but it does lol
Zanoshky: does anyone have unit test per round for java version?
Reading input files?
miszu: good morning children
Zanoshky: good morning master
Kellthazar: Hi!
miszu: anyone reached silver league?
Zanoshky: 2651 ppl did
Marchete: 2651 players
Kellthazar: 2651 people, to be precise.
Marchete: lol
Marchete: :D
Kellthazar: XD
miszu: god damnit
Marchete: that's contagious
miszu: let me try it again
miszu: anyone from the chat reached silver lol
derjack: no
miszu: forgot I am surrounded by developers lol
Marchete: what do you need?
Marchete: I'm botton silver anyways
Zanoshky: yeah, how can i help man?
miszu: I am botton silver too
Zanoshky: me to, i an mid silver
miszu: I barely made it yesterday
miszu: 2006th in silver
miszu: i was like 1800 yesterday
MrSharpFork: 1st in wood 3 :sunglasses:
Marchete: so what do you need?
BigGibbo: on a scale of 1 to alphabet how do you like your cheese on toast?
k_mizev: how many % going to proceed to gold, who knows?
Marchete: 500
Marchete: according to previous contest
k_mizev: ah good, thank you, it is my 1st one
ddreams: General Kenobi
dabonitwagwan: is that lewis by any chance
Mourfette: 1800 silver and reworking how to seed after I discovered I could throw to 2 cell away even if it's not in a direct line. that changes everything
Daddy_Pig: wysssss me chaviessssss
sussybacka: ur such a sussy backa
miszu: anyone who reached top silver without sims?
miszu: I believe if you have strong heuristic, you can do good moves at each turn
miszu: without sims
sussybacka: i believe youre a nonce
aangairbender: miszu I am around top100 without sim
aangairbender: simulation
Charlie.eilrahC: what do you mean by that?
miszu: like in chess, you predidt couple moves in advance
Danifae: 378 in silver, no simulations :P
Charlie.eilrahC: idk how to play this
miszu: how you guys handled? Is it bunch if if else and magic threshold numbers?
NissanGTR205: what do we do here?
Charlie.eilrahC: i dont know how to play this game
aangairbender: I have bunch of if else and some heuristics from notebook
aangairbender: came up with some ideas on paper and implemented them
NissanGTR205: i agree ferrari is good but nissan can be better
Charlie.eilrahC: you on about clash?
sussybacka: clash of clans is poggers
ZarthaxX: aangairbender i saw that you memed with an eval of only score + suns/3, i guess you were trolling lol
dabonitwagwan: what do you mean by sim ??
Daddy_Pig: that was pure waffle
lankyFish: shut up you batty boy
Nerchio: i use score + sun/3 in the last 4 turns idk :p
Nerchio: and some bonus for finishing trees
aangairbender: ZarthaxX I am working on beam search, needed some eval function, so I did score + suns/3. It isnt good of course. My arena heuristic bot is much stronger
Astrobytes: That's 3 of your classmates kicked children, now behave or you get kicked too. Then you get banned.
ZarthaxX: ahhh your arena bot is different, ok
miszu: Astrobytes you kicked people just now?
Mr_Bowden_init: oh now im really scared
Marchete: are you working on your bot, ZarthaxX?
Mr_Bowden_init: im shivering in my boots
Astrobytes: Yes miszu.
LLG: are starting/stopping stopwatches in c# expensive?
aangairbender: I believe they are not expensive
ZarthaxX: Marchete trying but failing :)
Marchete: task failed succesfully
LLG: rn I have 3 different stopwatches that starts/stops every sim so I could track the time taken by move gen, sims and evals
ZarthaxX: im not suited for this game i guess
ZarthaxX: what about you marcho
sussybacka: astrobyte on smoke
aangairbender: LLG you can always remove them before submit
dabonitwagwan: how do you move up leagues
dabonitwagwan: and positioions
LLG: yeah but idk if they affect my diagnosis or not
aangairbender: even if they add several millis that's not important
LLG: yeah cause I'm seeing total time = 98ms
LLG: but the sum of the 3 parts are just 92ms
LLG: so idk where those few millis went
Marchete: you can't pinpoint that much
KalamariKing: Starting/stopping clocks?
Marchete: 100ms is more like 90-95ms
LLG: stopwatches in c#, yes
KalamariKing: Or clock cycle fluctuations
miszu: what is more important when throwing seeds, to not be in line or to reach a higher richness?
ashelkov: Oups An error occurred (#407): "You reached the limit of plays for a period of time.".
dabonitwagwan: http://chat.codingame.com/pastebin/6f0e95c0-351f-4a8f-bfc7-baac45523cd9
aangairbender: miszu it depends
KalamariKing: miszu that's the strategy part of the contest, you'll have to figure that out
LLG: I personally do shadows first, then richness
LLG: but yeah it depends
Gaurav.: print("Hello World!")
LLG: do you guys generate a lot of duplicate states when simming?
Mr_Yanti: print("help")
LLG: cause I think my bot is generating way too much dupes than it should
Marchete: use hashing to avoid duplicates
aangairbender: everybody uses some kind of hashset to remove duplicates
LLG: I do use hash
Gaurav.: print("what do u want?")
aangairbender: everybody but me
itzluku: fun part about sims is, your dont even need to know what the decition tree looks like
LLG: but the thing is, when the hashes match
LLG: you have to compare the actual content of the states
Mr_Yanti: print("shut up")
BigBoyCharlie: u guys are sweats wow
LLG: which is slow for me
BigBoyCharlie: how long u been playing?
LLG: cause I have a dictionary of trees in each state, and comparing those are slow
BigBoyCharlie: u spoke no words. just mumble
NissanGTR205: or 49 as hawaii is not a state
LLG: aangairbender right now my bot takes ~20ms each turn just to compare states
KalamariKing: actually yeah it is
LLG: idk how to improve that part yet
itzluku: is the school period over or why is this chat so bad rn
aangairbender: my bot times on on turn 2 with beam with 50
aangairbender: times out*
KalamariKing: there's a lot of trolls ig? its still school time in the US
Astrobytes: It's a class of kids yeah, I think I've kicked all but one
Astrobytes: Ah thanks struct
itzluku: gj
LLG: I'm setting depth 10 with beam width 100 rn
LLG: but it always times out at like depth 6-7
struct: well lower depth or width :)
struct: or make it faster
aangairbender: my advice is making lower depth, bigger width
LLG: >make it faster, that's what I'm trying to
itzluku: timeout because of runtime or memory?
LLG: runtime
itzluku: ah good to know
aangairbender: timout cause I exceeded 100ms
itzluku: python?
LLG: I'm on c#
aangairbender: rust, which is not usual for rust
LLG: struct, when I compare 2 hashes of 2 states for duplicate
struct: ah
LLG: if the hashes match, I have to compare the actual content as well, right?
struct: I dont do that
LLG: wait really? so you check all the dupes
struct: I dont check for dupes
Marchete: collision chance for a good hash is low
LLG: I mean, you sim all the dupes out
struct: no
aangairbender: LLG some langs provide that, for e.g. rust can create hashing code automatically
struct: I dont check for dupes at all
LLG: thing is, I don't have problems with different states having colliding hashes
LLG: I'm having problem with identical states
Marchete: identical states different hash?
LLG: since they have identical hashes, I have to check the actual content to see if they're dupes or not
Marchete: lol
Nerchio: that sounds very backwards
LLG: because that's how HashSet works in c# lol
Marchete: what hash are you using?
LLG: it first checks using GetHashCode()
LLG: then by Equals()
Marchete: ahh
ashelkov: can I do smth with it>?? Oups An error occurred (#407): "You reached the limit of plays for a period of time.".
LLG: I'm just using hash = 37
LLG: then hash += 397 * my_stuff.GetHashCode()
LLG: repeat until I run out of my_stuff
Marchete: override GetHashCode then
LLG: ^ that's my override
LLG: wait that code was wrong
LLG: hash = 37; hash = hash * 397 + my_stuff.GetHashCode()
LLG: the hashing function is fast
LLG: the problem is that when trying to add an identical state to a HashSet
Marchete: 64 or 32 bits?
LLG: C# goes: ah there's a matching hash, let's compare the actual values using Equals() to see if they're actually identical
LLG: ^ this part is slow
LLG: the hash itself is an Int32
Marchete: then override Equals
Marchete: Equals => return hash == o.hash
LLG: I also override Equals
itzluku: btw LLG width 100 ???
LLG: yes width 100
itzluku: wtf
Marchete: ask euler
aangairbender: LLG is that behavior for insert? or for lookup as well?
Marchete: he is top10 with C#
itzluku: when do u ever get to 100
LLG: for insert I believe
itzluku: wtf
AntiSquid: you can easily get over 1000
LLG: I don't do lookup on states anyway, just iterate over anything
aangairbender: then you should write better GetHashCode
itzluku: well ucan filter it up to like 20 moves id say
aangairbender: with lower collision chance
LLG: the thing is not with GetHashCode, I timed my hashes and they only take 1-2ms a turn
itzluku: and even picking like top 10 estimated out of them would be a solid width
AntiSquid: 3000 - 4000 nodes on average per depth (for most part) so you can have a width of that size
itzluku: wtf 100 xD
itzluku: ah
itzluku: u mean width for that
LLG: thing is, almost all collisions occured because the states are actually identical (which means it shouldn't be added)
AntiSquid: for my bot anyway
itzluku: i wouldnt cap that width
aangairbender: LLG your hashes are fast, but they cause a lot of collisions, resolving which is slow
itzluku: i thought that is the point, u dont cap that width
aangairbender: ah, I see
LLG: they collide because the actual content is identical
LLG: there's no way identical states won't have colliding hashes
AntiSquid: i want to yell at the screen "climb higher"
AntiSquid: gently
aangairbender: you can check with Contain before insert
aangairbender: so it will check hash only
LLG: but then won't Insert itself checks both the hash and the content?
aangairbender: then insert wont happen when hashes are equal
LLG: oh wait that's actually very clever
LLG: lemme try that
Marchete: yeah
Marchete: Contains is always the first thing to do
Marchete: in fact, how were you doing it?
LLG: ... I just called HashSet.Add
Marchete: ?!
aangairbender: but you need to check Contains for pushing to queue
LLG: yeah I know, it sounds very dumb now that I reflect on it
LLG: my thought process was that HashSet.Add already checks for duplicate so I didn't need to do anything
Marchete: according to the method, it seems so
aangairbender: my beam search isnt working:sob:
KelvinAndHubbles: My bot is always having a problem defeating the bots that sacrifice all of their trees and the end of the game. I have code which sacs the trees earlier depending on when it thinks the enemies trees will sac, but the enemy trees dont sac and instead they gain big tree advantage and the depletion of nutrient value that I try to lower
aangairbender: sim alone does 300k/100ms but beam search fails to do 5 depth with beam width 500
UndercoverToad: my width is below 50
struct: o.o
ZarthaxX: O.O
aangairbender: 0.0
struct: width 50 dfepth 100
UndercoverToad: ôô
UndercoverToad: as I said "below 50"
aangairbender: and you eval in the end of the day?
UndercoverToad: significantly below
UndercoverToad: after each action
miszu: I don't think sims is the key for this challenge
miszu: if only the top 10 people could answer that question lol
UndercoverToad: it is part of the key I think
aangairbender: sims always win, you can apply all your heurstic to the sim
ZarthaxX: i think eval is more key haha
miszu: def eval
UndercoverToad: both are useless for itself
aangairbender: eval is a measure how how the state is
ZarthaxX: by itself?
UndercoverToad: thanks grammar Nazi
ZarthaxX: np :)
ZarthaxX: just trying to help :/
UndercoverToad: i like mazelcop. Always willing to push me up
UndercoverToad: but now i want to submit and test something :(
Mazelcop: always a pleasure :)
UndercoverToad: how's your progress? still ideas for improvements?
UndercoverToad: i'm plateauing
Mazelcop: I'm trying to understand how to win this game
jrke: i am unable to find even an average eval ;(
Mazelcop: without must success
Mazelcop: *much
struct: Just wait until my NN is done
miszu: honestly, look at top performers and try to study how they do it
UndercoverToad: then we have the same problems
Marchete: they are the top performers
miszu: so study them!
Marchete: ok!
ddreams: study yourselves
miszu: struct ETA?
Marchete: :thinking:
struct: 2025
RoboStac: what if they can't understand what they are doing?
ddreams: what's the point of studying something you already understand?
aangairbender: their simulation finds good moves, so people can understand how to play this game
aangairbender: search find heuristics, which then boost search. it never ends
LLG: I ended up just using return GetHashCode() == obj.GetHashCode()
for my Equals() override
LLG: and accept that it might add a duplicate state if the hashes collide
miszu: I'll write a pseudo code that is fool proof for you guys
UndercoverToad: that's how I imagine struct and his NN https://youtu.be/os4DcbpL0Nc?t=1090
miszu: http://chat.codingame.com/pastebin/046bb844-adf1-482d-bd66-5d76d39370e1
miszu: ^ typical professor in university
ddreams: therestoftheowl
aangairbender: btw a lot of Japanese guys in the top
ddreams: they have a lot of experience with gardens
aangairbender: didnt know its popular in Japan
struct: :smile:
UndercoverToad: func? is that Go or something?
UndercoverToad: because in Kotlin it's just fun
miszu: pseudo code
reCurse: Doesn't seem realistic, only took 3 days to get it to work
miszu: are you planning to submit?
UndercoverToad: *click*
kovi: bonsai, so that is why tend to keep lvl1 trees!
7amasa: Nerchio congrats bro, impressive
Nerchio: thanks i guess :P
schachmatt: struct what data are you using to train your NN
struct: pen and paper
dbdr: that's why it will take years
schachmatt: the old fashioned way, I rate that
jrke: i want a eval but can't get what to do
reCurse: The OG NN
reCurse: The mushy messy kind
7amasa: Nerchio hahaha so modest
struct: nerchio destroys me in sc2 and in cg :(
Nerchio: :grin:
Nerchio: until you make a new submit
Rikus: LLG, AFAIK the hashing you are doing: hash += 397 * toHash Should be: hash = (hash * 397) ^ to hash;
Nerchio: these big leagues are kinda annoying tbh
struct: yeah
Nerchio: with that many participants they should probably rethink the league structure/openings
reCurse: Good thing instead you can ba... oh nevermind.
LLG: Rikus I made a mistake while typing those
miszu: why big leagues are annoying? Because it takes lots of time to find your position?
LLG: it should've been hash = hash * 397 + toHash
Nerchio: miszu well first of all theres a lot of matches at the start that are meaningless if you are at the top
Nerchio: i play around 20 games i can't lose almost every time
miszu: but but... what if it is a rare case that you could lose? :O
Nerchio: could save some server time :p
Rikus: gotcha LLG , still it should be XOR not ADD (IIRC, you have lower chances of collisions with XOR)
reCurse: Nerchio: batching used to be the way to get around that, so you only batch games you're interested into to get results, but that's no longer an option
reCurse: They limited it to the point even regular people hit the limits
reCurse: So now you end up having to submit more to get results
reCurse: They didn't think of coming up with an alternative :/
reCurse: Not like they will anyway I think
miszu: rewriting the best seed throw so it takes consideration the shadow
struct: what is the current cooldown_
struct: *?
reCurse: Not publically communicated but it's pretty aggressive
struct: I even hit it during testing
Rikus: someone in the chat mentioned 20 matches within a 5 minute span
reCurse: I've never seen people complain about play limits in the past 4 years of contest before
struct: yeah I saw lots of user mentioning it
KalamariKing: Why IS it so aggressive
kovi: there is a controversion support moderate submit spam from 50%...and wise batch from 5%
struct: to save servers
KalamariKing: Did other contests' games last as long as this one
struct: They could have made game 50ms
reCurse: Not sure how much good it did to servers, people still complain about submit times
reCurse: I think they made it 100ms because they couldn't fix the random timeout problem in FC20
struct: ah
reCurse: Pure speculation
ArT3MiS.w33: can we get unlimited time
ArT3MiS.w33: plz
LLG: Rikus I'll try XOR and see if it improves my bot, ty
KalamariKing: That would kill the servers
orangesnowfox: ArT3MiS.w33 what kind of "unlimited" :eyes:
Thienu: infinite search time!
Thienu: think of the nodes
AntiSquid: unlimited time :D calculate until the end of the universe
reCurse: You can get more time by optimizing
orangesnowfox: hahaha... If I had infinite search time anywhere...... lol
AntiSquid: can run crypto miner on top of the bot
orangesnowfox: lol, I was thinking more "cure for cancer miner"
ddreams: so noble
AntiSquid: if you get enough crypto you'll afford to do both, get your priorities straight
orangesnowfox: lol
ArT3MiS.w33: yoo guys chill
ArT3MiS.w33: XD
ddreams: cure cancer while chilling on your yacht
orangesnowfox: eww, yacht
KalamariKing: who decided yacht should be spelled yacht
ddreams: the dutch apparently
ddreams: mid 16th century: from early modern Dutch jaghte, from jaghtschip ‘fast pirate ship’, from jag(h)t ‘hunting’ + schip ‘ship’.
AntiSquid: probably worth searching for: "yacht etymology"
Nanosplitter: "The term, yacht, originates from the Dutch word jacht (pl. jachten, which means "hunt"), and originally referred to light, fast sailing vessels that the Dutch Republic navy used to pursue pirates and other transgressors around and into the shallow waters of the Low Countries" - Wikipedia
UndercoverToad: for me as a German that spelling looks perfectly reasonable
UndercoverToad: I write it Jacht. But English is always different
UndercoverToad: like address vs Adresse
AntiSquid: the dutch? bet it had something to do with the spice wars
reCurse: He who controls the spice...
UndercoverToad: i've never seen the Dune movie. But played the game for years
reCurse: I'm pretty excited about the new one, so I'm expecting disappointment
ddreams: You should read the book
Violet.-.: hi
ddreams: It's well written
reCurse: Though the art will be amazing regardless I'm sure
UndercoverToad: there will be a new one?
reCurse: Yeah later this year
Chainman: Good morning :grimacing:
ddreams: Good evening
Chainman: My ranking dropping so fast.
reCurse: With Denis Villeneuve as director <3
Violet.-.: do you know a book which has gathered all commands of python?
UndercoverToad: oh, a remaster. cool
UndercoverToad: i was disappointed about the 3D successor
reCurse: Oh sorry, I meant the new movie
solistice: are there any good guides / resources on how to start a good heuristic function? all new to me
reCurse: Not the new game
UndercoverToad: oh. and i just realized that remastered is just a user mod
ddreams: solistice: double eval(Game &g) { return g.score; }
ddreams: go from there
Chainman: :joy:
reCurse: There is an actual new game UndercoverToad
UndercoverToad: does it run on linux?
reCurse: Asking the real questions
AntiSquid: probably
AntiSquid: what's the name ? :P
jrke: UndercoverToad are you doing beam search?
UndercoverToad: yes
UndercoverToad: i think we had that question already
AntiSquid: i mean it will likely be available for steam like most games and probably have linux support . witcher 3 runs on linux smoothly for me
reCurse: Searching for the beams of light
jrke: with any opponet prediction?
UndercoverToad: no
ZarthaxX: jrke is entering panic mode
jrke: yes i am already in panic mode
struct: he is stuck in a loop
UndercoverToad: me too, running out of ideas
jrke: me not getting good eval
ddreams: try spinning, that's a good trick
Chainman: I'm very dead, I need top 100 :sweat_smile:
jrke: so just beam search with optim and eval can give a good rank?
Chainman: But I don't think my eval with beam search will do it
miszu: do you consider a throw seeds if it shadows your own tree?
reCurse: Is it FC20 that popularized beam search? Never saw that algorithm mentioned so much before.
Chainman: Is anyone doing Reinforcement learning? lol
reCurse: Reminds me when everyone was talking about GAs because of you-know-who
Chainman: Also chokudai search hahah
ZarthaxX: maybe because struct said he used beam when cotnest started and conditioned everyone else
AntiSquid: ah damn now i get what FC20 is, was thinking it's a private contest
RoboStac: it was basically the best algorithm in the last 2 contests
UndercoverToad: i think it just fits here. little opponent interaction
Chainman: What else can you do? beam search makes sense to me.
reCurse: Oh it was popular in SC20 too...
KalamariKing: Beam search is all I know /shrug
Thienu: how does chokudai search differ from beam search? everything in google seems to be japanese
ZarthaxX: and HS reCurse?
ZarthaxX: well that was long ago
RoboStac: hs was years ago, no-one cares about it anymore
ZarthaxX: true
Chainman: @Thienu that is the question
UndercoverToad: chokudai = fixed depth, increase width
jrke: i am too much paniced:worried:
reCurse: Yeah and even if it was mentioned, it barely stuck around
struct: Thienu you increase beam width when you still have time
reCurse: Now everyone is beam this and beam that
Thienu: oh alright
reCurse: Feels like I'm on the set of star trek
Chainman: chokudai just uses time?
struct: its a simple algorithm tbf
ZarthaxX: tru
UndercoverToad: struct can understand and implement it wrong in just 5 minutes
reCurse: lol
Thienu: nice
ZarthaxX: jrke calm down lol, you wont go anywhere
ZarthaxX: i know you are afraid of having that high rank in your contest history, but that wont help
struct: yeah first time I implemented it wrong
ZarthaxX: well low rank
struct: first time I was saving the most common action
struct: >D
struct: damn this windows dev build so buggy
struct: Nothing works
reCurse: Insider?
struct: yes
reCurse: Well that's what it's for, beta testing
struct: I wanted to try the wsl gui
KalamariKing: almost like its called... a DEV build...
UndercoverToad: gui for terminal?
UndercoverToad: barbaric
reCurse: When it comes to "things I like about linux", gui comes maybe dead last
UndercoverToad: i like my i3wm
UndercoverToad: so fast
ddreams: I used i3wm like 15 years ago
UndercoverToad: it's that old? :o
reCurse: All the effort goes on the cli and it shows
ddreams: Initial release: March 15, 2009; 12 years ago
ddreams: not quite 15 then
UndercoverToad: i'm using it since 2017 maybe
Lait-o: https://www.codingame.com/clashofcode/clash/report/1745835da6aa1c834d14e83db77352c96ffa397
ddreams: perhaps I'm confusing it with wmii
CameronWatt: i need to come up with a username when i code at home, for like this and github... hrmmm.
miszu: alright so I improved my bot quite a bit. Those throwing seeds are better now
KalamariKing: epic
ddreams: WattTheFatt
miszu: wow I am beating the 1000th place
cromulus: im not a great coder any tips
ddreams: git good
miszu: Data Structure and Algorithm, 6th edition
ddreams: Skiena is more fun
cromulus: does this site let me publish my games
UndercoverToad: yes if you stick to the SDK
Kellthazar: Did some changes on my code yesterday... Now I think that I need to implement an ¨offensive shadow cast" on my throw seed validation. XD
CameronWatt: protip for my aspiring devs here, and then i'll take my leave - don't just accept any offer and work for any company - look for those red flags, and don't say yes to everything they ask you to do. set your boundaries and be loyal to yourself first.
UndercoverToad: that was random
jrke: no ideas for eval ;( i am very much panicedddd
ddreams: look for those red flags, jrke
UndercoverToad: go through a replay and analyze frame by frame
AntiSquid: doesn't that go for any job really? CameronWatt
UndercoverToad: what's happening? what would you want instead? why doesn't your bot do it? what to change to make it happen?
KalamariKing: ok wtf the teacher handed me a hamburger and said "enjoy your hotdog"
AntiSquid: i want it to lazer pew pew insta win
KalamariKing: lazer trees
AntiSquid: you're level 3 you wouldn't understand dudenoah34
AntiSquid: !kick
KalamariKing: lmao
KalamariKing: if at first you don't succeed; try, try again
AntiSquid: the kick worked
jrke: euler do you have something like not completing before X days or like that
ZarthaxX: i think its not fair to keep asking about his eval lol
UndercoverToad: i didn't hardcode such stuff
AntiSquid: euler give just a bit of detail, 1 RAIC style level of detail
UndercoverToad: when you hardcode actions in a sim-based bot, it's because you are desperate
ZarthaxX: :rofl:
ZarthaxX: ^
ZarthaxX: so true
itzluku: :x
miszu: UndercoverToad you use sims?
AntiSquid: oh guilty i guess
UndercoverToad: yes miszu
UndercoverToad: i'm also eulerscheZahl in case you missed it
miszu: your username was revealing haha
AntiSquid: split personality
ZarthaxX: he is the bad toad here
reCurse: Thought the point to be undercover was no one knows :thinking:
KalamariKing: whats it like to be back at lvl 3
miszu: it's like in league of legends the character Blitzcrank, there was a costume for: defentivly not Blitz
geppoz: well to be undercover your icon should have toad inside, not outside :thinking:
UndercoverToad: enough chatting, back to understanding what's going on
CameronWatt: AntiSquid yeah it does
AntiSquid: who does what?
AntiSquid: oh . found your last message
struct: im also going to close chat
KalamariKing: ok have fun
CouscousAgha: If both players cut a tree at the same round, do they get the same amount of points? And do nutrients decrease by 1 or 2?
ddreams: yes 2
miszu: submitting my code boys
miszu: let's see if I can go higher than 2025 position
aangairbender: gl
miszu: top 1500
miszu: going well
Wontonimo: go miszu go
Chainman: you beat me haha
LLG: I accidentally typed <= instead of >= in my code
LLG: and my bot actively avoid blocking my opponent
miszu: unit testing is your friend
LLG: instead of looking for moves that block
miszu: unit testing is the kind of friend you don't want to be but you know deep inside he will help you go grow a better person
ddreams: unit testing is for work
miszu: unit testing is a way of life
Chainman: AntiSquid beat me earlier :open_mouth:
AntiSquid: not sure why ping, but you welcome i guess
Chainman: nothing, cause first person I see on chat that fight me.
miszu: that top 1000 wall is real
Chainman: How does the search through future states work in terms of eval.
Chainman: I'm not sure if I should be eval(state)?eval(next_state), ?=[*,+]
Chainman: Or just take the state that lead to the best state for the max_depth
miszu: evaluation is the current you visit
miszu: and your root state will chose the child state that has the best eval
Chainman: Yeah but you are visiting future states in the graph.
miszu: right
miszu: each state has its own values in the eval
miszu: up to you if you want to use it or not
Chainman: yeah, not sure
Chainman: I feel there is a level of uncertainty the deeper in the graph, so need to consider that a less deep node with lower eval is sometime better than a path that had a higher eval deeper.
Smelty: sigh.
miszu: I believe it's all about the evaluation function
Smelty: yes,
Smelty: i have not managed to get a good scoring function going :(
miszu: if you have the winning recipee, you can win
miszu: what's your position?
Chainman: the eval :(
Smelty: yea you gottta have a good score
Smelty: er
Wontonimo: 6,000 people playing, that's a good number.
miszu: and can't break the top 1000
Smelty: cant break 1000 either
Smelty: been dropping ranks lol
Wontonimo: that's because there have been a lot of new stronger bots submitted. don't compare one days rank to another
Nerchio: you guys should introduce some bugs into your code
Smelty: w-
miszu: yeah I heard that people at the top dont' submit their best bot
miszu: in general
Smelty: i be confuzled
Smelty: i put a condition numberOfSeeds<2 for if you want to plant
Smelty: but its spamming seeds even when there are already 3
Nerchio: probably not updating number of seeds?
Gronahak: or you just found a bug in the implementation of the language you're using :p
KalamariKing: Print the numberOfSeeds var to the error stream right before the check, and print "inside check" or smth inside the check
miszu: Ocams razor theorem: I am sure he has a bug
KalamariKing: Are println's in Java expensive time-wise
Chainman: He has found a black hole I think.
Wontonimo: miszu, how easy it for you to make a few changes in your bots placement?
is1c1c: if you do multiple actions per turn, you have to update your gamestate pr. action and re-evaluate the validity of all other potential actions against the new state
KalamariKing: Also can you not grow a tree on the very first turn of the first day? Why is it not coming up in the possible_actions?
Hasuzawa: java println is printstream, I once commented out them and the answer was in time
miszu: Wontonimo I did a small change in my strategy and it helped me to go higher
geppoz: KalamariKing no sun points for it
KalamariKing: geppoz oh ok thanks, didn't see that
Nerchio: there should be a turtle emoji added to the chat for the submit performance
VizGhar: somebody can tell me about at least how deep should the beam search be?
VizGhar: I believe depth of 3 is too little
KalamariKing: Probably yeah
Nerchio: depth 3 of days or actions
VizGhar: actions :(
VizGhar: so i have to prune like hell
Nerchio: yeah it probably doesnt tell you much tbh
VizGhar: But at least I'm 100% sure I'm generating right nodes
VizGhar: And hardcoding even first moves is a little bit odd - always running into shadows
VizGhar: (against best players)... so I believe even them are not hardcoding first moves
Nerchio: i hardcoded actions not placements
VizGhar: But still... i'm more then happy with 200positions
VizGhar: yes Nerchio that is exactly what I wanted to do
Nerchio: my depth says 20k processed states and depth 1 thats kinda weird
Nerchio: bug?
VizGhar: http://chat.codingame.com/pastebin/be1d2c34-0827-480d-a3ac-eaae565064c3
Nerchio: yeah
VizGhar: yes :D you cant have 20k nodes at depth 1 :D
VizGhar: there are at most 9 actions in first day
Nerchio: well its on day 18
ClockSort: try to get 1 node at degth 20k
ZarthaxX: Nerchio do you go depth by days?
ZarthaxX: im curious about this
Nerchio: depth is 1 action
ZarthaxX: okey
ZarthaxX: maybe you were doing depth in terms of days
ZarthaxX: nvm haha
VizGhar: Interesting idea... but too late :D
ZarthaxX: what?
ZarthaxX: depth in days?
VizGhar: yes
ZarthaxX: you have half contest yet
ZarthaxX: :(
KalamariKing: Anyone have any resources on dealing with bitboards Or would anyone like to give a quick rundown
VizGhar: I'm rank 200. my target was top 500, so Im more than happy
Chainman: wow,
VizGhar: bitboards? what is the problem? you know bitwise operators right?
KalamariKing: Yeah, but how do you extract specific positions
ClockSort: it's not over yet, VizGhar :D
Scarfield: KalamariKing https://eprints.qut.edu.au/85005/1/__staffhome.qut.edu.au_staffgroupm%24_meaton_Desktop_bits-7.pdf
KalamariKing: Thanks
VizGhar: For example, these are all trees, that are mine, non dormant and of size 2: gameTurn.size2Trees & gameTurn.myTrees & ~gameTurn.dormantTrees
Chainman: That a cool resource
Chainman: I'm super stuck on understanding how to search through the states :(
Scarfield: that minus looking tilde :rage:
Smelty: o.O
Smelty: new sub improved ranking by 100
Smelty: its still fighting through though
Nerchio: ah ok that 20k states depth 1 was a bug in printing
Smelty: o.O
Chainman: do I Need to store the sequence of all states along each path in my beam search?
Chainman: I can't think of another way, because you need to know the initial action that lead to the best path.
Nerchio: you dont need to remember the path
Nerchio: first move is enough
Chainman: oh yeah, oops
Chainman: I'm just freaking out over everything. I'm not going based off any definitive guides.
VizGhar: Chainman keep the whole list of actions... easier to debug
VizGhar: remove it later
Nerchio: that is also not a bad idea
VizGhar: I can see that my bot wants to do GROW 19 - COMPLETE 8 - WAIT And suddenly I know why he picked that path
KalamariKing: why
VizGhar: that was example
Chainman: oh cool, thx
KalamariKing: right
KalamariKing: but why
AntiSquid: lol
AntiSquid: it's an open ended story KalamariKing, the hero's journey continues
Nerchio: but why :rage:
VizGhar: Automaton2000 -> job for you
Automaton2000: how do you get a second opinion
VizGhar: mg he is against me
Chainman: big questions
UndercoverToad: then write it BIG
Poostang: moves.get((int)(Math.random()*moves.size()))
Poostang: top of bronze
struct: rand() % actions.size() 300 silver
Nerchio: lol
Poostang: mod wins
VizGhar: wth... like for real Poostang?
AntiSquid: i'd sell struct for 3 silver, since jesus was sold for 30
Chainman: :hushed:
Nerchio: :joy:
struct: should 10k games be enough to test sim?
VizGhar: what do you think struct? :D
jrke: 10k thats huge according to me
AntiSquid: just submit first change to arena yolo
Marchete: how do you test that fast?
Marchete: I'm going with CG IDE
struct: locally vs my own version
Marchete: and it's dead slow
VizGhar: brutaltester probably
AntiSquid: inbreeding bots
Nerchio: i can play 100 games per 10 minutes only
struct: yes
Marchete: probably I'll setup brutaltester
struct: well testing sim is fast
Marchete: so far the sun calc and movegen is going good
struct: its like 4 games per sec
struct: on 4 threads
Marchete: I need to apply moves and check that it's similar
Marchete: I don't test sim locally, I prefer against servers
Marchete: or brutaltester
struct: im using brutaltester
Marchete: but I don't trust my code :)
jrke: how to test?
Marchete: ahh then yes
struct: custom referee though
struct: I can have both referee and my code wrong
Marchete: lel
ddreams: why not change to the official one?
Marchete: zenoscave did the referee, isn't it?
struct: im not using zeno
struct: Im using the one I made during testing
Marchete: P0 READING DAY:17 TURN:43 SUN:3 1 CALCULATE SUN!!! COUNT:13 9
Marchete: P0 READING DAY:18 TURN:44 SUN:13 9
Marchete: I'm happy
Marchete: btw exporting gamestate with C# is very simple for me
Marchete: http://chat.codingame.com/pastebin/b1e65514-8271-4f3b-b3be-75cddc94fe13
MSmits: Dear diary, the sun was out today, but that bully from across the field put his trees in my face...
Marchete: :evergreen_tree::seedling:
dmar: hi
Marchete: :sunny:
MSmits: you can put emotes in your messages
jrke: from 3 days i am searching for an average eval and still failing :(
MSmits: from your bot
jacek: try maximum eval
MSmits: not sure how but it's possible
dmar: :sunglasses:
Marchete: yes it's possible
MSmits: jrke same
jrke: maybe eval is not the issue maybe my sim has bug
Marchete: it always was
ddreams: output the right unicode symbol probably
MSmits: jrke my sim doesnt have bug, because i verified. But still have eval problems
Marchete: you can even animate some
Marchete: like the moon
jrke: how you verified MS
reCurse: Output is UTF-8 MSmits, you can print whatever in there.
MSmits: i pick an action with search, generate all opponent actions, then apply them to create all possible next game states. I save the list. Then on next turn i compare the new state, with the list and see if it's there
MSmits: it's always there
MSmits: ah nice reCurse
jrke: ok
MSmits: the tricky part is to only compare when you havent waited
MSmits: and when you have waited and opponent has waited, you can verfiy the sun point calc
Marchete: it seems you are somehow struggling with this game, smits
Marchete: or it's the normal way?
darkhorse64: wait acts a sync and you should only compare states in sync.
Marchete: I'm not on challenges usually
MSmits: no I am struggling
struct: eval its a bit hard to figure
darkhorse64: *as a*
struct: is*
MSmits: usually when my first full search is done, i'll hit top 10, then dropping later
struct: I spent 3 days until I found this eval
MSmits: i even was nr 1 with pacman for like a few hrs
dmar: yo join my dicord
MSmits: ended 50 or so
dmar: https://discord.gg/er3QgE3x
jrke: did eval is based on day?
Marchete: I don't have this problem, I was never that high
MSmits: right now i am ranked 900 though
BlitzProg: MSmits I'm top 100 with no sim and there are more people like me being like top 20
MSmits: i know
jacek: apparently only in holland you can get that high
reCurse: It's like the saying goes, 1st on wednesday, 50th on last day.
MSmits: heuristics work fine here
BlitzProg: heuristic is being unusually strong here
miszu: yeah, who has the best secret sauce
reCurse: Isn't that what people wanted since forever lol
MSmits: i am ok with heuristics, usually a search can do what heuristics can do, the search part is mostly a waste of time then
Marchete: szechuan dipping sauce
UndercoverToad: i don't like your saying reCurse
Marchete: reBless :rofl:
reCurse: But that's how it goes
UndercoverToad: i know :(
reCurse: I'm even being optimistic
reCurse: Level ramps up like crazy last weekend usually
struct: im already testing next one
MSmits: well it's a bit different these days with the larger participation
UndercoverToad: i liked the time when the contest ended on Saturday already
struct: statement mentions that only if else is allowed
Scarfield: lol
UndercoverToad: is it an escape room?
struct: only if you find the way out
MSmits: :)
MSmits: otherwise it's a prison
Ziink: MSmits it's my first time, how's the participation usually ?
reCurse: Judging by this chat it's time to do a bitboard stream
MSmits: for the last year it's been high 5k+
struct: You wont
MSmits: 2 years before that, around 2k
AntiSquid: if it were a fun game sure heuristics would be fun @_@
jacek: it seems the rarer, the more
reCurse: Yeah so according to priorities
UndercoverToad: or they do more promotion
reCurse: They should fall to once per year next
kovi: heurstic is always fun...for a while
MSmits: covid boosts participation too
kovi: heuristics
reCurse: And then the logical conclusion is to never do them again and gain infinity people next time
AntiSquid: only 1 contest per year ?
reCurse: That kind of engagement makes my head spin
jacek: so covid is CG conspiracy to boost contest participation
MSmits: sure
Enknable: recurse just stream all your knowledge
MSmits: seems as likely as the other conspiracies :)
Enknable: :pray:
struct: if he streams I subscribe
UndercoverToad: bring some time with you Enknable
Astrobytes: 0 contests = infinite participants. Mind blown. Now THAT'S strategy!
AntiSquid: well if they properly bureaucratised internally i am sure 1 contest a year is very likely
reCurse: If I kept my mouth shut I'd be promoted straight to marketing director
Astrobytes: :grin:
MSmits: you mean to keep your mouth shut? I am wondering about cause and effect here :P
AntiSquid: you can still get a t-shirt for your suggestion iam sure
reCurse: I am also willing to keep my mouth shut for the right price
AntiSquid: ooc and pacman were back to back though
AntiSquid: and ooc really burnt me out
Astrobytes: $10 and a year's free poutine. Final offer.
AntiSquid: 1 donut / day
miszu: poutine is good. La poulle mouille restaurant is da best
reCurse: You just used a stereotype, you're getting canceled next
Astrobytes: :rofl:
AntiSquid: more a case of cultural apropriation
Astrobytes: Hey, the grabbing the moose by the antlers thing was getting old.
reCurse: That's animal abuse now
Astrobytes: Hah! You're on form today :D
reCurse: Not even lol
reCurse: Allergies are killing me
AntiSquid: i swear there was something like a "warning for vegans : animal cruelty " on one netflix movie
Scarfield: they were eating meat
Astrobytes: Ah allergies suck. I consider myself lucky I don't suffer with any.
Scarfield: xD
Scarfield: i have hayfever which can be pretty annoying. but meat allergy would be the worst
Astrobytes: I wasn't referring to meat...
Lucky30_: reCurse please share your knowledge, i am a big fan, and i will watch it all
Scarfield: oh, didnt see reBless' comment xD thought you were joking on the vegan warning
Astrobytes: Though I did know someone who is allergic to red mullet.
MSmits: haven't eaten meat since march myself. I don't have a problem with meat, but animal cruelty is pretty bad in most places
AntiSquid: meat meat allergy? or shellfish / fish kind of stuff ?
Astrobytes: *do know
AntiSquid: i only heard some people having some rare condition problems with digesting meat prorperly so they avoid it
AntiSquid: hearsay
Scarfield: both would be sad
reCurse: All food allergies suck tbh, truly the worst
AntiSquid: 2 pages of food allergies listed is worst i've seen
reCurse: :/
Astrobytes: My nephew (few months old) and niece (just over a year old) are violently lactose intolerant. The nephew is worst, he has breathing difficulties and skin rashes.
Bogdan._.: I am don't have allergies to food
MSmits: that doesnt sound like lactose intolerance, thats a milk allergy i think
AntiSquid: not joking, someone was recovering from food poisoning and they were recommended to avoid certain stuff and slowly introduce it into their diet
Astrobytes: No, both technically MSmits, since you mention it. Not just milk, anything with lactose.
MSmits: but thats weird, lactose doesn't actually enter your system does it? It gets broken up by bacteria, which causes the intestinal gas issues
MSmits: because you lack lactase, the enzym to break it up yourself
Astrobytes: The milk allergy itself is what causes the breathing difficulties/rash
MSmits: ah yes
reCurse: Yeah when you lack those, it happens
MSmits: thats what i meant
reCurse: I'm not even sorry
Scarfield: xD
MSmits: it's ok reCurse, i would have made the same joke :P
Astrobytes: And it's not just gas MSmits
ddreams: So you could be lactose tolerant and have a milk allergy, I guess
MSmits: i know
Astrobytes: Yes, though they're most often found together afaik ddreams
MSmits: personally i am just intolerant. Spanish ancestry I think
MSmits: lactose intoleramt
Scarfield: im just intolerant in general
Astrobytes: I thought you just meant intolerant.
MSmits: yeah i know, thats why i added that :p
AntiSquid: diary allergy
jrke: i am gonna beat my laptop can't get eval :sob:
MSmits: dont read diaries then
AntiSquid: dairy * lol
Scarfield: https://www.youtube.com/watch?v=zcUs5X9glCc
MSmits: as non-native English speaker I love messing with natives :P
Chainman: eval is destroying me
MSmits: and again that came out wrong
reCurse: Oh boy.
reCurse: We're headed straight into webchat removal.
Astrobytes: wtf MSmits
reCurse: So keep going guys
Hoyer: will the map size ever change?
MSmits: lol...
Hoyer: no, right?
ddreams: only if you play a different game
Hoyer: I'm thinking like at later leagues
Astrobytes: No Hoyer.
Westicles: logjam at the top, better add a new rule
Hoyer: alright thanks
AntiSquid: i feel unsafe when MSmits is in chat, maybe he should be banned ? Automaton2000
Automaton2000: how do you like challenges?
Chainman: Who is Automaton2000?
Automaton2000: i got a clash of code a la mode
MSmits: come on, you code c++, you can take unsafe
Chainman: lol
AntiSquid: not going down that road MSmits
cegprakash: omg silver is super competitive
Astrobytes: wth did you expect?
cegprakash: top 200 okay
cegprakash: but top 1000 are too strong
MSmits: time to dust off the ol' prune array?
Astrobytes: :rofl:
jrke: man man man in 3 days i can't get a eval
cegprakash: jrke new ppl are dominating in India
ddreams: keep praying
cegprakash: may be we are missing something intuitive
cegprakash: jrke there should be some greedy approach we are missing
jrke: till i get a better eval ceg
cegprakash: I'll tell u a simple eval
if(day < 15) score map control else score actual score
cegprakash: this should take to top 1000 start from there and tweak it
cromulus: can I code a game and make money off it on this site
Astrobytes: No.
cegprakash: cromulus no.. but u can use this skills to implement AI for real world problems where u work and earn money
cegprakash: this is for helping u grow the skills and to have fun as a community cromulus
cegprakash: just like gaming
cromulus: okay thanks
Chainman: This is a fun way to learn.
cromulus: yeh
cegprakash: but there are some crazy rewards if u finish in top 20
AntiSquid: cromulus lol
cegprakash: huawei stuff and t shirts from codingame cromulus
Chainman: :unamused:
AntiSquid: well technically it depends . if you sream onyoutube how you make the game you prolly get paid for the ads so ...
Chainman: I'll be ecstatic in top 100
Chainman: But that's unlikely at this point.
JP7: All right, I've been clash of coding for 4 days
JP7: finally coming back to competition
KalamariKing: lol gl
JP7: presently rank 2.6k
JP7: how many ranks do we think I can climb today
KalamariKing: in the comp? or in coc?
JP7: Comp
KalamariKing: jesus
KalamariKing: I've been at this all day and I'm still in 3k
JP7: oof, whats your current general strat?
JP7: My bot currently just tries to always have a tree/seed of all sizes on the board at all times, and then "completes" asap. Incredibly basic thing that has to be rewritten entirely to go up farther lol
Nerchio: sounds pretty good
KalamariKing: JP7 rn? I have yet to implement any new rules from the bronze category, so that's probably why And there's no searching future moves or anything
JP7: Ah, you've got plenty of room to grow then, not to worry
KalamariKing: Right
KalamariKing: But
KalamariKing: I've never done any of this before and its taken me 5 days to get where I'm at now
KalamariKing: I doubt I'll get out of bronze
Nerchio: you can do it ;)
KalamariKing: Btw why are clashes so easy
MSmits: you have to solve them in 15 mins is why
KalamariKing: Like I'm relatively slow at coding and I'm 372nd, got as high as like 220th before
aCat: hi Smits :-)
aCat: how's your player ?
MSmits: my bot? It performs badly, i like the sim and such though
Astrobytes: What about you aCat?
aCat: just finished engine
aCat: got some work-related stuff before
aCat: i made it low level
Astrobytes: Ah cool.
aCat: and still got only 180k states
aCat: ndea how to do better
aCat: but doesnt matter
Astrobytes: Sounds useable. What approach are you taking search-wise?
aCat: now I got flat monte carlo
UndercoverToad: i'm way below your 180k
aCat: and wish to somehow get to silver before writing any 'normal' algorithm
aCat: ah toad
Astrobytes: There are simple heuristics to get to silver.
MSmits: to get to top 100 i bet
aCat: I wanted to thank you very much for our talk before
aCat: I really learned a lot
UndercoverToad: you're welcome
aCat: (but my 180k are no eval, just search)
Astrobytes: MSmits: Yes indeed.
UndercoverToad: my eval is expensive
aCat: I'm still thinking what algo to approach
aCat: beam is nice, but we need opponent prediction
aangairbender: I gave up on sim/search, might be a bug somewhere idk, its just bad
UndercoverToad: i think a proper prediction can make the difference and win the contest
aCat: but your bot seems to work great euler
aangairbender: how beam search makes bot completing trees in the middle of the game? smart eval?
MSmits: yeah thats difficult
MSmits: if you value score points too much, it just starts popping them
UndercoverToad: there are still some days to go. and watching replays I see non-optimal actions that I can explain by lack of opponent handling
dbdr: well, your BS can see that completing them later leads to more points than completing them now
cegprakash: Rank 300 - 49.3 Rank 700 44.67
I'm 5 if conditions away from rank 300
UndercoverToad: you have to synchronize your beam. wait until all paths have finished the current day before starting the next
aCat: I'm always thinking watching replies why no early trees on the middle
UndercoverToad: my main problem is that I plan to spend the suns in future turns. and a bad move that gives more early reward (which I won't get, opponent will block me) causes me to play the bad move
aCat: even if it seems as a better position
struct: maybe Ill add that to my beam
struct: Currently I dont care if one is at turn 2 and other at turn 4
UndercoverToad: add what? early middle tree?
UndercoverToad: oh
UndercoverToad: i'm surprised your beam is working then. mine played total garbage without sync
aangairbender: what you mean by sync?
UndercoverToad: go 5 messages above
TobiasA: my bot times out at depth of 2:cry:
struct: do not allow states of different depth to be in queue
struct: turn* not depth
aangairbender: mine is fine then
MSmits: do you guys eval at end of day or at every action?
MSmits: I am currently doing eval after every action
struct: every action
MSmits: thought so
MSmits: i mean i guess you'll branch too much if you wait till end of day
aangairbender: I tried both
TobiasA: ooooh you are right
TobiasA: i am waiting till end of day thats why
TobiasA: ha hoi hoi ha he
AntiSquid: yay of course bot doesn't lose the game again in the IDE
TobiasA: if this doesn't work it is back to depression for me
aCat: ah so the beam holds not-finished days, and explore all the other statesto finally synchronize when the day is ended for all
aCat: I'll have to consider this somehow
MSmits: it's quite easy, just duplicate wait states (give them 1 child, an identical state)
MSmits: every depth level, check if any new states are not wait, if so keep going, otherwise end day
BrunoFelthes: MSmits what kind of search are you using?
aCat: ouh nice idea workaround
MSmits: beamsearch, same as euler, but without his eval. Not having much luck
MSmits: best rank i get now is about 700
AntiSquid: 600
aCat: anyone is trying some really multiplayer approach??
aCat: seems like no;/
AntiSquid: well i was 1st on bronze open briefly, so i guess i can still retire gracefully from contest :P
BrunoFelthes: but, how do you deal with the score in different days? I mean, if i score 10 actions, the 10h action can be 2 or 3 days after, so the action that did 3 days is better than the actions with 2...
MSmits: all days are the same
MSmits: every state is at day 1, then every state is at day, etc.
MSmits: days are synchronized
MSmits: states that wait, keep waiting till all states are done
MSmits: then it's a new day
BrunoFelthes: so, your bean stack is by day?
MSmits: no
MSmits: by action
reCurse: bean stack :D
MSmits: i just let wait states, wait again
dbdr: *lurker detected* ;)
BrunoFelthes: oh, i see...
reCurse: How? You have no vision, map hacker
AntiSquid: giant bean stack best way to win this
BrunoFelthes: how do you know how many plays 1 day can have?
MSmits: I know when all states are waitinh
MSmits: then the day is done
MSmits: sometimes that is 4 actions, sometimes 5
MSmits: so in some cases, the state just waits 5 times
MSmits: while another state is doing a bunch of things
JP7: Is there a setup guide for running games locally?
BrunoFelthes: Anyone are doing MCTS? I think that i will try it...
JP7: I've got the local webserver running, but am experiencing errors (and also don't know how to specify the code for each bot to use)
BrunoFelthes: MSmits, are you think that MCTS can be better than beamsearch for turn 15 to 25?
MSmits: like, a single player mcts, or both players?
BrunoFelthes: both
MSmits: and i assume you mean day 15 to 25?
MSmits: or actually 24?
BrunoFelthes: yeah, day 15
CharmyRosewolf: I want to try an mct--would be a good opportunity to learn some data structures XD
MSmits: it might work for the end of the game yes
MSmits: but mcts is not really simultaneous
MSmits: in its basic form
BrunoFelthes: But, do you think that it is too important?
MSmits: well it is somewhat
MSmits: you'll have two players reacting to eachothers moves, when they cant, due to simultaneity
Cleingoun: ah short question im doing the onboarding for dart and the example code gives errors?
reCurse: What about prescience
reCurse: Or maybe even spectre attack
MSmits: mmh try it with the smurf reCurse and get back to us :)
BrunoFelthes: I'm planning to do the oponent play for the day, and than my play, so, somehow, i'm reacting it...
MSmits: well then mcts might work, not sure
reCurse: What smurf
MSmits: the one we're not supposed to know about
ClockSort: :D
reCurse: You see smurfs everywhere, maybe you need to calm down with the recreational drugs
MSmits: i'm just kidding, I dont think you actually have a smurf this time
MSmits: emphasis on think
BrunoFelthes: reCurse is not doing this contest?
MSmits: well not on this account for sure
reCurse: I just would chop down all the trees anyway
reCurse: Less trees less pollen
Astrobytes: Lumberjack you say...
MSmits: ye Scarfield appreciates
Wontonimo: anyone know the config for Zenoscave's brutaltester ref so that it uses bronze rules?
Astrobytes: -3vel
Chainman: I'm overcomplicating, still writing my graph algorithm and I'm at 700 lines of code in python :(
RoboStac: probably -Dleague.level 3 before the -jar
RoboStac: assuming it's the same as others
particleflux: uh oh, so it defaults to wood rules?
Astrobytes: haven't seen zeno's version but yeah, normally it does
particleflux: don't have that one either, but good to know, need to check, that might explain some non-matching results
Wontonimo: Much thanks RoboStac ! that did it
Astrobytes: Admit it. It was -3vel.
CouscousAgha: i feel like top 400 silver things become luck based
Clagus: where can I find a schedule for gold/legend?
CouscousAgha: click on the league icon next to the timer of the event
Astrobytes: Click the silver league icon
miszu: how many people will move to gold?
Clagus: oh, thx guys
UndercoverToad: we can only guess. I go with 300
**Astrobytes gets out the crystal ball
Clagus: League opening: 5/12/21 (wtf british numbering??)
RoboStac: don't blame that on us
UndercoverToad: 5 years on CG. And I still have to think twice when I see these dates
Astrobytes: Eh? We dodd/mm/yyyy
miszu: oy' mate in that great inn it?
Astrobytes: *do
schachmatt: that's not british numbering
CouscousAgha: isnt it common sense to do dd/dd/yyyy ?
Wontonimo: we use dd/mm/yy because we have ss:mm:hh on our clocks ... wait ...
Wontonimo: we use dd/mm/yy because we have ss : mm : hh on our clocks ... wait ...
schachmatt: british would be 12/5/21
JP7: dd/dd !? :P
CouscousAgha: dd/mm*
JP7: I think so, yes
Astrobytes: Yes, we do dd/mm/yyyy
reCurse: Just weird it doesn't use locale, or isn't that a thing in javascript
particleflux: mm/dd is just plain confusing
particleflux: Should use ISO date and be done with it
Clagus: how so? it is british/usa no? but CG is France based so I would expect EU standards :P
Clagus: but anyway it starts at midnight?
Astrobytes: True reCurse. And lol, surely must be.
Astrobytes: Clagus: UK does not use the same as the US
reCurse: Anyway, estimated ETA for gold is 22 hours, legend is 22+48.
JP7: 'toLocaleDateString()' seems to be what we want
Astrobytes: For want of a better example, 9/11 for us is 11/9
RoboStac: it's weird that it doesn't do locale or french standard
JP7: which, yes, is js builtin
Astrobytes: Most (all?) of Europe use dd/mm/yyyy no?
Clagus: @Astrobytes - who is us? I thought it is both UK and USA which use the terrible month/day/year format
is1c1c: yyyy/mm/dd is superior fight me
Astrobytes: Clagus: USA = US. I'm UK and we do not use the USA system.
schachmatt: @Clagus nope, we (UK) use the one that makes sense
Clagus: oh, that's nice to hear, sorry then
JP7: @is1c1c use that if talking to computers. Humans already have the context to know the year, and the day is more immediately relevant
Clagus: still you use gallons, and other bullshit right? :D
reCurse: "we use the one that makes sense" says the country driving in the left lane
Astrobytes: Yeah, only in some ways
JohnTravoltage: Is the source code for the Spring Challenge logic available somewhere? Or would I have to reverse-engineer if I want to make my own simulator?
Clagus: @JP7 - exactly!
schachmatt: I never said we consistently make sense :laughing:
Astrobytes: We have a strange mixture of Imperial and metric measurements
reCurse: :)
UndercoverToad: JohnTravoltage the code is even linked in the statement
Clagus: :D
miszu: there is the correct measurement and the US measurement
Astrobytes: Full metric would be a real blessing.
UndercoverToad: https://github.com/CodinGame/SpringChallenge2021
JohnTravoltage: UndercoverToad Thank you! I tried to look for it but just couldn't find it anywhere :/
Astrobytes: It's linked in 'Technical Details', just before the 'Game Protocol' section near the bottom of the statement.
UndercoverToad: not sure if the link even shows up before Bronze
miszu: qq about bots being used for promotion. If everyone simply submit random bots until legendary league opens, does it mean everyone could get there assuming their code is better than random moves?
Astrobytes: Hm, should be there from the start imo Toad
UndercoverToad: in theory: probably. but won't happen, we want to compete for real
struct: I didnt test that
UndercoverToad: right, the link is always there https://github.com/CodinGame/SpringChallenge2021/blob/main/config/statement_en.html.tpl#L627
Astrobytes: I'm not sure there's a situation in a contest where that could happen.
Lowz: For the challenge, how does one do multiple actions on the same turn? To they just get appended to string? Like "GROW 0 COMPLETE 23"
UndercoverToad: thousands of players. you can't get all of them to not playing until legend
UndercoverToad: it's in my interest to have a small legend even
JP7: @Lowz each iteration of the loop is a new turn
KelvinAndHubbles: you can do one action per turn, multiple per day ^^^^^^^ above is accurate
JP7: not a new day
UndercoverToad: turn != day
Lowz: Ok thanks!
miszu: i guess les competition once you reach legends
UndercoverToad: there are more relevant games in legend
UndercoverToad: right now i have almost always have a perfect winrate for the first 30 matches
UndercoverToad: that's annoying
struct: not 100%?
UndercoverToad: current submit: 36 games played, all wins
struct: Just do what my bot did
UndercoverToad: i want to start losing to see what i'm doing wrong
UndercoverToad: 37% completed and still waiting for some action
UndercoverToad: but the game is less random than I expected. I'm consistently beating lower ranks
UndercoverToad: i've seen games where you have random lesses vs a bot in the 100s
ClockSort: nice humblebrag
ClockSort: i do like the low randomness here
reCurse: You're right, FC20 was much better when you could randomly lose to bots ranked 100 below
ClockSort: the ability to approach perfection with a good bot
reCurse: Fun times
UndercoverToad: the consistency is good
UndercoverToad: the huge silver isn't
reCurse: The only reason it's a problem now is because they crippled batching tbh
reCurse: They should have come up with an alternative first
KelvinAndHubbles: is there more people in Silver than there is in bronze right now? Seems wacked
reCurse: That's par on course
Astrobytes: That solution, imo, is a complete fail.
reCurse: Gold is when it starts getting tighter
**UndercoverToad never used online batches
Astrobytes: Yeah, but it's the fact it can affect you just doing stuff in the IDE
Eglerion: Is there a way to view the game rules in a standalone tab, without being on the IDE page?
reCurse: Not as far as I know
UndercoverToad: depends on your way of analyzing
reCurse: Maybe you can print the frame to PDF if you're lucky
Astrobytes: screenshot it?
struct: if you setup localy and go to localhost:8888/statement.html
UndercoverToad: if you go through the games frame by frame it's not a problem. but illedan managed to play a lot of games manually last contest
is1c1c: so what are ppl doing for their bots? im not rly an ai guy, so im in like low silver with some silly fuzzy logic bot
UndercoverToad: so many that he got contacted by thibaud who wanted to find reasonable constraints to lock out CG Benchmark but not humans
reCurse: Wait whaaaaat
UndercoverToad: he was > 1000 manual games last contest
reCurse: That's news to me
struct: wtf
struct: 1000 manual games?
Astrobytes: me too
schachmatt: manual games?
UndercoverToad: you also got a Thibaud?
reCurse: I never heard of a specific intention to lock out CGBenchmark
AntiSquid: what just pressing play my code in ide ?
Astrobytes: No, I was metoo'ing at reCurse's 'news to me'
reCurse: Only to alleviate server load
reCurse: Now I'm kind of upset
JP7: @Eglerion, I gotchu https://static.jpcode.dev/temp/cg_spring_2021_bronze_info.html
UndercoverToad: locking out CG Bench is my interpretation, sorry
reCurse: Ah ok
Astrobytes: These constraints are unreasonable in any case as they lock out human players
UndercoverToad: but thibaud asked if illedan was playing manually to get there numbers
UndercoverToad: these*
EtherFrog: man, clashing in java is painfull
JP7: Yeah, its very verbose
Astrobytes: Clashing is painful. Choose your battles.
JP7: "Shortest" mode is effectively unplayable
TobiasA: i don't know what to do anymore my bot is a genius at first then as more trees appear it then causes it to time out even though it is set to depth of 2:cry:
Astrobytes: genius++
ZarthaxX: TobiasA timeout may be caused by indexing wrong too
ZarthaxX: check it locally
AntiSquid: why don't we all just play fun clashes together? best buddies for life
EtherFrog: yeah the only people i beat in shortest are those that don't golf their code at all, and even then python might still be shorter
reCurse: No.
miszu: lack of unit testing could be an issue too
ZarthaxX: tru
Astrobytes: TrufaxX
AntiSquid: i like to clash while i'm trimming my nails EtherFrog, what's your fav time to clash ?
TobiasA: i don't know how to get inputs from the site
ZarthaxX: Falbytes
ZarthaxX: e.e
reCurse: Serious question, did anyone in the top100 ever used unit testing in their code?
EtherFrog: dunno i started today
fvla: unit testing sounds like something you'd do if you can program really fast and generically
UndercoverToad: i can answer the unit test question with "no"
UndercoverToad: i know that others are doing it. like nmahoud e and also Royale I think
AntiSquid: what unit testing? like a script ? or create some unit tests by hand ?
UndercoverToad: player one as well (but he's not top100)
miszu: I reached legends in UTTT because of that. I was able to find the smallest suddle bug in my sims
Astrobytes: either or presumably AntiSquid
UndercoverToad: use turn input to convert to a testcase
UndercoverToad: expected action for obvious cases. or just verifying sim results
JP7: @miszu 'subtle' english is weird
miszu: yeah subtle thanks
kovi: as euler said, board conversion/generation sanity checks
Astrobytes: I will state that 'suddle bug' sounds nicer than 'subtle bug' :)
miszu: :)
fvla: is there a more inconsistent language than English?
Astrobytes: French?
fvla: haven't learned enough French to know
Astrobytes: Probably about the same. Maybe English is worse.
_Royale: UndercoverToad: I usually reproduce the board generation to compare games in the IDE with my local referee.
AntiSquid: you could google it fvla
UndercoverToad: thanks for confirming Royale (did I ping you?)
UndercoverToad: you wrote something like that in your caribbean post mortem
fvla: Google does give interesting results
reCurse: I'd say it probably falls more under automated testing than unit testing, but still
_Royale: UndercoverToad: I kept a highlight on my old nick :-)
AntiSquid: why do you ask about unit testing?
Kellthazar: currently my "should be completed" condition is: qtd_size_3 > 4 || day > 20 || react_to_opp_complete... Any other suggestion? :D
reCurse: I don't know, I saw miszu mention it several times and it made me wonder
UndercoverToad: to plan his next stream
reCurse: I didn't think anyone seriously competing would bother with those
Astrobytes: :D
_Royale: reCurse: yeah it just saved me from "clever" optimizations that completely broke my simulations :)
reCurse: But that kind of automatic testing though, sure.
miszu: the reason I mention is many people complain there is a bug in their sims. I figure to mention it as it will save time
reCurse: I've done it for physics game, just wouldn't really count as unit testing, formally.
RoboStac: yeah, the most testing I do is finding a way to test sim against the server (either by checking results in game or downloading replays)
RoboStac: but never anything specifically testing small parts
reCurse: Fun to know I'm far from the only one doing that part then :)
miszu: especially when I was bitboarding UTTT with many lookup tables, I wanted to make sure all the logics handling that is tested properly so I can shift my foccus on something else
miszu: I don't know, I like to go sleep knowing that my core functionality is fool proof (almost)
AntiSquid: idk, how do i check timeouts i generate lots of moves check time frequently try to brea at 20ms left and still timeout occasionally @_@ how do you unit test that? lol
miszu: which language?
reCurse: Not a unit test but you could keep expected metrics and break when they're breached
VizGhar: if (aboutToCrash) dont();
reCurse: We often do that in CI, monitor performance of builds and emit alerts when there's regression of performance according to expectation
struct: ASSERT() is the only test I need
geppoz: +1
miszu: assert is good too
geppoz: just fighting with: Answer: /tmp/Answer.cpp:237: void game::doSeed1(int, int): Assertion `sp2==parent->sp2' failed.
geppoz: when refunding doesn't match with parent sunpoints :D
miszu: AntiSquid I had that issue before with UTTT. Issue was I did a mistake in one of the function in the MCTS algorithm... When I wrote my tests it showed me exactly where it failed
miszu: :)
jacek: the 'tests'?
miszu: am I the only weirdo who does unit testing?
_Royale: UndercoverToad: oh I just realized who you are behind this nick :) Did you get too many PM/highlights?
jacek: oO
reCurse: miszu: I was mostly doubting on the part of what it gives for the time put into it in a competition setting.
reCurse: You need to be very time efficient in those contests
dbf: miszu, I done some unit tests earlier, but I agree it is easier to cactch sim issues if you compare sim results with next step input
UndercoverToad: chat gets laggy with many users online, mods can see all of them
UndercoverToad: https://imgur.com/a/BmQQwpa spot the scrollbar
reCurse: I don't consider comparing simulation output to referee output as unit testing
_Royale: Oh I see. I was about to suggest next contest should be named Code UndercoverToad.
reCurse: I think he has suffered enough with automaton.
ClockSort: I spent all weekend in 3000th place because I was indexing out of bounds in my array of map shade. Thanks, C++. A test might have helped :)
UndercoverToad: Automaton is finally dead
miszu: reCurse: you never had a scenario where you spend hours of debugging that turned out a stupid + or - sign or = <= sign?
reCurse: Protip: use your own array wrapper and assert on bad index.
reCurse: Sure, but that would require me knowing in advance what to test for
miszu: well if you do TDD, then as you code evertything is kinda tested. So the moment you start going crazy stuff well you can check everything in a single click
reCurse: That's a massive time investment
reCurse: Meanwhile you lose 100 ranks
ClockSort: I prefer to spend my time arguing about how TDD takes too much time
reCurse: Automatic comparison with referee output is very cheap and does a lot of the same job.
miszu: I was doing UTTT aiming for legends, however I had many small bugs and couldn't figure out. My AI was picking the wrong move out of sudden. So I took one day to fool proof my engine and sims and found out 3 small bugs
UndercoverToad: you didn't check for vertical lines at first
ClockSort: what is "automatic comparison" @recurse
reCurse: If you have map generation code matching the referee
reCurse: You can take the seed
reCurse: The sequence of inputs of each player
miszu: I work in a company where ppl do 0 testing. Like code is so garbage that I prefer to throw a brick into a PC than do some fixing. I did proper TDD and people noticed how big quality difference I give vs the garbage code
reCurse: And make sure your simulation gives the same result as referee
reCurse: That's automatic
reCurse: Also empirical testing
reCurse: Unit testing requires you to consciously choose what to test and what to check
miszu: unit test is to test one function
reCurse: And also make sure that test is bug free
miszu: so whatever you test should be simple
reCurse: Very time consuming in a contest
UndercoverToad: and update tests with changing requirements
VizGhar: I'm Android Developer and most of our clients are scared seeing time required for writing unit/ui tests
miszu: of course it's not full proof but if you have to pick, would you pick a code repo with 80% coverage or 0?
reCurse: I would pick the repo winning the contest
UndercoverToad: ok, the requirements are consistent in contests. engine won't chatnge
UndercoverToad: except for BotG maybe
Astrobytes: Contest vs real world remember miszu
miszu: the contest is how long? 10 days?
Astrobytes: 11 this time iirc
UndercoverToad: here we do horrible things to gain a few percent in speed
AntiSquid: ille did unit test botg btw
UndercoverToad: then he wrote the wrong tests
miszu: to fully test your engine it takes half a day
VizGhar: well I have nice and structured code :) maybe thats why im 250 rank
miszu: it's not a huge sacrifice but you gain more by foccusing your effort elsewhere
Astrobytes: I'm in silver, I stop now most probably
UndercoverToad: noo Astrobytes
UndercoverToad: go to gold
miszu: I would like to gold :)
Astrobytes: It's like pulling teeth
UndercoverToad: big wooden teeth
Astrobytes: :D
jacek: scottish teeth
struct: if I change mb and cpu, if I connect my current dirvers will I need to format or will it work without having to format?
struct: drivers i mean ssd
particleflux: which OS?
struct: w10
VizGhar: never heard of that linux distro
particleflux: ha :D
Astrobytes: connect your current SSD drive you mean?
Marchete: it's an useful desktop
struct: yes
Marchete: w10 + WSL2 = linux desktop year
particleflux: unsure of win10, I guess it *might* work, but you might need to adapt efi settings (AHCI stuff)
struct: my ubuntu https://i.imgur.com/4YxACsB.png
AntiSquid: w10 can be updated easily with Linux live USB
Astrobytes: Yeah make sure the BIOS settings match up with your hardware changes or you might be in for a world of s**T, otherwise should be OK
AntiSquid: just run the update
Astrobytes: You don't have *everything* on one SSD do you
struct: I dont
struct: I dont have anything that I need in the SSD
Astrobytes: Just system right
struct: pretty much
CommanderCero: brah std::max_element returned the minimum all the time
Astrobytes: Isn't there a backup option?
CommanderCero: and im wondering if im stupid (answer yes)
Astrobytes: Anyway, I think it should be OK struct.
struct: I see
struct: but maybe dev build is more fragile
Astrobytes: Oh dev build?
Astrobytes: Fuck that
Astrobytes: lol
struct: lol
Astrobytes: I mean Fk that
ClockSort: hey commander, maybe your values are all negative
jacek: :o
CommanderCero: nah they are positive, i've used the values for sorting and that worked as expected. Idk why it happens but im just using my own loop now
ClockSort: `int mx = a[0]; for(auto& a : arr) mx = max(mx, a);`
ClockSort: int mx = a[0]; for(auto& a : arr) mx = max(mx, a);
ClockSort: and then you have an empty array and you crash :D
CommanderCero: well if that happens I would have a problem anyways xD
VizGhar: hmm hitting beam width at depth 3 then 4 then 3 again seems wrong right?
Nerchio: what is depth
VizGhar: depth of tree (or maybe height)
VizGhar: distance from root
Nerchio: do you clear the queue after width ends and before you add children
VizGhar: I always remove the node I'm expanding (and that node is always on index 0 of my vector)
VizGhar: not using best data structures, but I'm just trying to make it work again
VizGhar: maybe I'm sorting incorrectly somehow... have to check
Nerchio: well i take X width nodes get children from those, delete the rest, add children and repeat from 0
VizGhar: you are ranked 55. I'll think about it :D
Nerchio: thats how beamsearch works (i think?)
ZarthaxX: yeah taking best X after each action
VizGhar: I didn't find any good resource on BS for trees
VizGhar: can you guys recommend?
Nerchio: no idea :S i mean the concept is not too difficult i guess
ZarthaxX: ^
Astrobytes: Essentially just a BFS with restricted breadth
VizGhar: sure... I cut the nodes after whole 1 layer of tree were expanded...
Astrobytes: Not sure if this is any use but: https://tech.io/playgrounds/11358/breadth-first-search-and-beam-search-comparison
Astrobytes: Just game tree nodes rather than maze cell nodes
VizGhar: So... f.e. expand everything from depth 5. Take 200 best items at depth 6. expand everything from depth 6 ...
VizGhar: looks like I'm doing exactly that. but incorrectly obviously
solistice: Ugh, i'm getting crazy, am getting an "Unhandled exception" somewhere after 7 rounds
solistice: and I can't seem to figure out what is wrong
VizGhar: hmm solistice can't help you... too little description
solistice: wish I could give you more
VizGhar: understandable, solving simillar problem
solistice: what depths you all are reaching when evaluating states?
Astrobytes: 0 with current state only :P
VizGhar: he is probably asking someone from top 10 :D
Wontonimo: solistice - depth 0 for me
Astrobytes: Well, looking at top 20 I feel a lot of heuristic bots are up top.
solistice: nah just in general
VizGhar: Wontonimo you mentioned, that you will you that depth 0 bot as mirror for your actual bot... still the case?
solistice: my simulation claims to run to depth 104
solistice: somehow I doubt that
Wontonimo: great link about beam search Astrobytes
Astrobytes: thanks Wontonimo
Astrobytes: Care to send me some inspiration and motivation in return? :P
struct: ok
struct: Im becoming lazy
struct: I cant code
Poostang: walking helps
Poostang: just watch out for sneks
Wontonimo: Hey VizGhar I just got brutal test up and going locally and am planning on coding my sim after dinner in about 3 hours from now. I can tell you then once i'm in the thick of it. but, yeah, the plan is to use the current bot as a heuristic
VizGhar: :thumbsup:
VizGhar: fixed that beamsearch... I was expanding one more item that I should... now back to evaluation
xdcomrade: what is the threshold on silver?
Lachrymosa: question about simming; When I look at the next possible move is instantiating an object that is the board with an implemented move ok to do for each possible step or does this get too cumbersome and I should think of a smaller solution?
xdcomrade: to pass into silver
VizGhar: what you mean
VizGhar: beat the bronze boss xdcomrade... he is threshold
Nerchio: Lachrymosa its a good start but in the end might be considered too slow
Lachrymosa: Ok, I am using Python3 and really only hope to Sim 5 moves deep. This being my first Sim and all
xdcomrade: thx @VizGhar :)
scionkiller: Where's the link to the github of the server code?
VizGhar: I cant imagine replace that structure with something non structural
VizGhar: are the structures really that heavy to instantiate?
Lachrymosa: If I do them in a dumb way I'm sure :p
Lachrymosa: the words bit register have been thrown around, well, a bit. Might try and use that in the object to keep it lean
Wontonimo: simming with Python3 Lachrymosa! you go! I've tried that in other competitions and the best performance i could get was 20x slower than c++
solistice: how does c# compare to c++ wrt speed?
Astrobytes: VizGhar: "fixed that beamsearch" - nice one!!
VizGhar: tnx Astro
VizGhar: now the more intelligent eval
Wontonimo: Nice ranking VizGhar !
Wontonimo: C# and C++ should be the same speed solistice
Wontonimo: (anyone here feel free to correct me as i am no expert)
VizGhar: tnx Wontonimo... its 2 days without submit. Just learning how the contests works. Completely rewrote my code
Wontonimo: do you use the brutal tester?
VizGhar: I'll pull it out tomorrow
Astrobytes: Completely rewriting your code is standard contest procedure
Wontonimo: you will not regret it VizGhar
Astrobytes: Just don't forget soem vcs
VizGhar: yeah... I wont do it again for this one
Astrobytes: *some
VizGhar: vcs? mean git?
Astrobytes: Whatever one works for you
ZarthaxX: VizGhar doing great for first contest !
ZarthaxX: idk if you did if else spaghetti complex stuff but anyway
ZarthaxX: really nice haha
Wontonimo: killing it even
ZarthaxX: totally
ZarthaxX: you too wonto
Wontonimo: Thanks ZarthaxX :D
Astrobytes: Hey VizGhar's pretty good ZarthaxX, Wontonimo too! You've been missing their activity recently OutoftouchthaxX
VizGhar: tnx guys... Hope I can push it to legend. Obviously asking proper questions here in chat helps a lot
ZarthaxX: wdym astro?
struct: legend or delete
ZarthaxX: what did i miss
Astrobytes: VizGhar and Wontonimo, up and coming CGers!
ZarthaxX: ah :P
Astrobytes: SlowwwwthaxX
Wontonimo: thank man. off to dinner. cya all tomorrows
Astrobytes: Maybe you should have a sloth with a pirate hat
Astrobytes: ZarthaxX
ZarthaxX: wot lol
Astrobytes: Cya tomorrow Wontonimo
ZarthaxX: im not slow :C
ZarthaxX: cya wonto
ZarthaxX: i wont edit a pic for that slot :P
ZarthaxX: sloth
Astrobytes: :rofl:
Astrobytes: Just kidding man. How are ya anyway
ZarthaxX: had an interview 2 hours ago
ZarthaxX: bit tired
struct: contest ends monday right?
ZarthaxX: and have class in 1 hour
ZarthaxX: :D
Astrobytes: Ooh, how's it go?
ZarthaxX: i think so
Astrobytes: *how'd
ZarthaxX: i think it went well
ZarthaxX: my gf took same interview yesterday with same recruiter.. so i knew the questions
ZarthaxX: haha
VizGhar: :D :D
Astrobytes: Hahaha well that's one way to do it :rofl:
ZarthaxX: hopefully they call me to continue the process
ZarthaxX: i mean, it wasnt abouts olving problems
Astrobytes: What if they call your gf instead?
ZarthaxX: was about talking about my life, current teacher job, uni
ZarthaxX: oh that would be amazing
ZarthaxX: i want her to enter :P
ZarthaxX: there space for both of us anyway haha
ZarthaxX: is*
Astrobytes: hahaha be careful what you wish for :D
ZarthaxX: why :c
ZarthaxX: they are hiring a lot of people tho
ZarthaxX: we know some that entered through this thing already
Astrobytes: You've never worked in the same workplace as your gf before have you
ZarthaxX: wedid the same subject last year and were in the team together there
ZarthaxX: but no, i havent worked :P
Astrobytes: Workplace is different. Like I said, be careful what you wish for :rofl:
ZarthaxX: well, breakup will be the solution in that case
struct: astro is scaring Zarthax
ZarthaxX: :D
ZarthaxX: yeah dude, super negative
Astrobytes: That's a bit extreme!
ZarthaxX: bad mod
ZarthaxX: we have been together for 2 and a half years already... i think we can handle that
Astrobytes: lol, I just mean it makes work life harder to deal with and work things become personal sometimes. I've seen it happen a million times, only happened to me once tho - so don't worry hard
ZarthaxX: i guess it makes sense
struct: I'm one ctrl shift away from deleting this dev build bs
ZarthaxX: but the company has many areas
ZarthaxX: we may not end on the same one
ZarthaxX: lmao
Astrobytes: Ah I thought you meant the same job ZarthaxX
ZarthaxX: so... quick explanation is that it's an IT Bootcamp, where you get prepared for 2 months and THEN you get into one of the teams existing in the company
King_Coda: never date your coworkers
ZarthaxX: existing teams*
King_Coda: thats what my dad told me
VizGhar: I'm running games against Skril l. that 157000 9/31ms numbers looks extremely scary :O
ZarthaxX: it's a very big company, that is looking to double their employees btw (16k more)
particleflux: brb adding random number outputs to my bot
VizGhar: o.O that's extreme number
Astrobytes: Gotcha ZarthaxX, sounds cool
ZarthaxX: mercadolibre if you have heard of it
ZarthaxX: but i guess it's more of a latin america thing
Astrobytes: I think I've seen the name somewhere before
Astrobytes: mercado is market right
ZarthaxX: they are like ebay, amazon, etc
ZarthaxX: right
ZarthaxX: you can put products to sell
Astrobytes: yeah, so free market
ZarthaxX: yup
ZarthaxX: their system works so nice tho, i have never heard anything bad from them lol
Astrobytes: Yeah, definitely seen it before
ZarthaxX: theyr deliveries are on point
ZarthaxX: their*
ZarthaxX: so anyway, that's all
ZarthaxX: hopefully i continue with the process
Astrobytes: Best of luck my dude!
Zenoscave: gz arthie!!!
Astrobytes: And to your gf also
Zenoscave: did your gf get a job there too? (missed the first part of gz)
Rikus: ZarthaxX join Nimble Giant, I can get you an interview in no time (specially considering that I'll be the one interviewing you + two other TechLeads :P)
Zenoscave: mmm yum. nepotism
Zenoscave: ;) ;P
Rikus: After all you are mlomb's friend, how bad could it be...
- 5 years later **
-ZarthaxX!! Stop pushing changes without even compiling them and with 1 character descriptions!
ZarthaxX: :rofl:
ZarthaxX: i think this will end super bad lol
Zenoscave: http://chat.codingame.com/pastebin/48507067-7650-4aa1-a4c9-72dabe41830d
ZarthaxX: but that's a super cool offer ty <3
ZarthaxX: Zenoscave she did the interview yesterday
NightScap3: How can I send debug messages over JS without breaking the game?
Zenoscave: console.error.log
Zenoscave: i think
NightScap3: Thanks
Zenoscave: and gz ZarthaxX
Zenoscave: again.
struct: why does the login page have avx ZarthaxX?
ZarthaxX: ty :)
ZarthaxX: what?
Zenoscave: login page?
ZarthaxX: Rikus is that video games company cool btw?
CameronWatt: that feel when a challenge makes you feel like a complete idiot
Zenoscave: I don't need a challenge for that CameronWatt. I always feel that way
Astrobytes: Except when you're not an idiot ofc Zenoscave :P
Zenoscave: Name one time I
Zenoscave: I've done something non-idiotic ;)
Zenoscave: Like remember to sleep
Astrobytes: That's about the only time really
Zenoscave: Hah! Trick question! I forgot to do that even
Rikus: ZarthaxX it is, we have been around since 2002, aka NGD Studios Everyone is super cool, tons of friends, board games, beers, etc etc (well beers right now are beers over Discord...)
Zenoscave: :beers:
ZarthaxX: wow :O sounds like a chill place to work
Zenoscave: well, looks like i'm moving to argentina
Astrobytes: tbf your question was unclear Zenoscave
Zenoscave: ;) jk I love my current job too much Astrobytes: When are double negatives not unclear ;)
Astrobytes: Zenoscave: WHEN I MISREAD THEM. EOF.
ZarthaxX: Rikus i would love to try in the future maybe, thanks again <3
Zenoscave: also, hi asrto
Astrobytes: *arse-tro
ZarthaxX: the heck
Zenoscave: lol you said it, not me
Zenoscave: hi zarthie
Astrobytes: Maybe I change to ArseTrollBytes
Zenoscave: hm.... :thinking:
Astrobytes: And hiya Zeno
ZarthaxX: hi pewpew
ZarthaxX: howdy
ArseTrollBytes: who's zeno?
Astrobytes: Hahahaha
Astrobytes: gg
Astrobytes: wp
Zenoscave: I had to rename it back before I got euler'ed
Zenoscave: (Reference to that time euler changed his name and I changed mine to euler)
Astrobytes: Yes, I was about to do it
Zenoscave: I figured ;)
Astrobytes: How's things anyway
Zenoscave: I broke top 100 yesterday for about 10 min
Zenoscave: broke above*
Astrobytes: Nice. Making a real effort?
ZarthaxX: nice1
fvla: I'm implementing a beam search for the first time in my life today
Zenoscave: yup I really am
fvla: glhf
Astrobytes: Since I really don't like the game much it's kinda hard to do anything lol. I got Silver but euler insists on Gold so maybe I'll try later.
VizGhar: what exactly you dont like?
Astrobytes: The whole game.
kalman: Does anyone know how to add multiple commands on output? I did not see any instructions on it.
Astrobytes: I find it utterly soporific.
struct: This game should have been 3d
Astrobytes: kalman: in the contest?
VizGhar: don't do this to me astro... i hate looking up new words
Astrobytes: kalman: A day != a turn
kalman: As long as you have enough sun points, you can take any number of actions. <- I would like to do this
Astrobytes: Every iteration of your game loop is a turn, but only when both players output WAIT is the day over, and becomes a new day
Counterbalance: It's 1 action per turn, kalman
miszu: funny how by just considering neighbors, you improve your code a lot
kalman: but I see the boss is performing 3 actions until I do only 1
Astrobytes: I feel this could have used more clarity in the statement struct: do you agree? Many people struggling with the definition
VizGhar: if you output wait, your oponent still can output other actions
Astrobytes: ^
VizGhar: Well its standard board game... every "epoch" is composed of multiple "turns"
kalman: oh, ok I get it, thanks
VizGhar: but for those who dont play the board games yes... it have to be confusing
VizGhar: (or for those who played only CSB)
Astrobytes: VizGhar: Yes, that's what I mean.
miszu: alright guys, time to submit my little update
Astrobytes: #1 or delete
miszu: ben la
VizGhar: 0.00 :D
Astrobytes: (I *am* joking)
miszu: 8/10 the first 10 games
miszu: GG
VizGhar: oh dbdr is back gooo
VizGhar: idk why I like him so much... every slovak hates hungarians by default :D
Astrobytes: It's the French part of him you like. Plus history has no meaning here! :D
Astrobytes: (that was funn though)
mybk: When the power of love overcomes the love of power the world will know peace.
Astrobytes: *funny
struct: yes I agree its a bit confusing
Astrobytes: You are not wrong mybk
Chainman: After contest are you still not allowed to share code on like github?
VizGhar: Yeah... All I want is peace... Peace of Ukraine, peace of poland and peace of finland
VizGhar: you are allowed... but why'd you do that?
Chainman: Are you russian? :scream:
Astrobytes: You can share a post-mortem report, code-snippets, but full code-sharing - no
mybk: for me I want peace for my brothers and sisters in Palestine
Chainman: Okay, so it's like the post-mortems I've seen, yeah thats' good
VizGhar: no... just imagined it.
VizGhar: mybk :pray:
Astrobytes: mybk 100% bro
VizGhar: you can share snippets. no problems with that
elderlybeginner: what's needed to make local simulations of the contest? Just to calculate different parameters even without graphical visualization?
Counterbalance: 2 ways: brutaltester and referee, or DIY referee
VizGhar: brutaltester sounds like the thing you want... don;t have link tho
elderlybeginner: i don't even know what brutaltester is. I see referee source on github only
elderlybeginner: this needs to be changed and compiled, and somehow connected as a server to my code?
elderlybeginner: that kind of tutorial on forum would be interesting
VizGhar: https://github.com/dreignier/cg-brutaltester
VizGhar: but can't help you more
miszu: top 1000 boys
Counterbalance: aka the first result when you search for brutaltester ;)
elderlybeginner: thanks "How does it work? Very simple" - this part of the description is misleading, thou :wink:
Counterbalance: yeah :)
Counterbalance: you'd need a JDK 1.8+, git and apache maven
Astrobytes: That's why you ask here for help
Astrobytes: There are Other Ways
Astrobytes: also hi Counterbalance
Counterbalance: hey astro
ZarthaxX: hi counter :*
Counterbalance: howdy zarthy :heart_eyes: :stuck_out_tongue_winking_eye:
ZarthaxX: doing alright and you
ZarthaxX: you got a bit romantic after private chat hehe
Astrobytes: :o
Counterbalance: yeah going for the inappropriate emojis
ZarthaxX: haha
Counterbalance: finished my referee
Counterbalance: now I need to do something with it
ZarthaxX: that's the hardest part :D
Astrobytes: No the hardest part is wanting to work on it at all :P
ZarthaxX: true :rofl:
Counterbalance: I'd say something about hard parts but that'd be more inappropriate than the emojis
VizGhar: jeez I'm not sure how to stop beam at day 24 :D Need some sleep. Byt
VizGhar: bye
Astrobytes: gn VizGhar
Astrobytes: :D
Astrobytes: Counterbalance :rofl:
ZarthaxX: Counterbalance damn boi
Astrobytes: Anyway, see you tomorrow guys n gals, good luck
ZarthaxX: gn astro
ZarthaxX: :*
Zenoscave: gn
struct: gn
Zenoscave: c-c-c-combobreaker
cegprakash: add a feature -> all weights screw up
mybk: git is helpful in that situation
mybk: just check what you changed
easdasd: hello fellow professional python programmer. what is the function for cout in pyton?????????
mybk: print ?
easdasd: bro it say system 32 print error
Zenoscave: "professional"
Whatar: print("string")
easdasd: it say py is not a recognized batch command
Zenoscave: are you in the CMD prompt?
easdasd: no i am in my computer
CameronWatt: i am in a simulation
cegprakash: alter a variable name. get different score
cegprakash: cegbugs
Smelty: hi
mybk: hi
ClockSort: hi
cegprakash: hi
cegprakash: can someone find a bug in this one: https://www.codingame.com/replay/552714820 skril just eats me like a cake
ClockSort: too busy with my own bugs :D
LeviathanProgramming: that's cuz you're cake
Smelty: o.O
Smelty: ceg hm lemme see
Smelty: may or may not be because you didnt bother with the center at all
cegprakash: he got there before me :(
cegprakash: and defended it
Smelty: lol
Smelty: also he shaded your trees
cegprakash: seriously man I added the best feature in the whole universe and he gets 172 points against me
Smelty: xD
Smelty: i added an accountant for selling trees that are shaded and got a 100 rank boost
Smelty: jk
HungryBurger: An... accountant?
cegprakash: nice accountant
Smelty: yes
Smelty: keep track of shadows
HungryBurger: I mean, I myself was looking at implementing a scrum master for the next multi-agent game, which is why it sounds like a cool idea to try sometime.
Smelty: hmm.
Smelty: well i aint complaining about ranks
cegprakash: I should stop watching replays with Skril he just ruins my entire motivation
easdasd: hi guys im ben shapiro
AntiSquid: so?
LeviathanProgramming: so he's ben sharpio
AntiSquid: so?
AntiSquid: see nobody cares, easdasd
HungryBurger: ceg -- when that happens, try watching a few games where you curb stomp your rival totoro, to cheer yourself up.
easdasd: y u mad anti squid
HungryBurger: I like watching games where I lose (best wya to learn), until I start losing motivation. :-)
Smelty: hmm
Smelty: okr
Smelty: *ikr
miszu: nice I reached 718th
easdasd: ok but im kanye west
Smelty: anyone got ideas for bot improvements
miszu: take better decisions
Smelty: xD
Smelty: strat wise what adding
miszu: what's your position?
Smelty: 1154
Smelty: lol
Smelty: https://www.codingame.com/share-replay/552727736
AntiSquid: idk ... fixed a bug and expected to climb then dropped 1000 ranks, not exaggerating ,,,
Smelty: happens to the best of us
cegprakash: true
AntiSquid: was my reply to your bot improvement query Smelty
miszu: Smelty do you believe in shadows?
cegprakash: shadows are not ghosts lol
cegprakash: everyone believes it
miszu: some blieves the Earth is flat
miszu: Smelty, you should consider some shadow avoidance
AntiSquid: lol true miszu, its a cube actually
Smelty: ah anti
cegprakash: I don't use day anywhere in my eval except for day 23 not sure if it really matters
Smelty: yes i tried by planting less to tohers
Smelty: oh lord i added a bit of stuff and now its spamming seeds
miszu: wow, my rank got boosted to 664th
Smelty: c o n g r a t s
miszu: 665 now
miszu: can it go to 666?
miszu: 666!
cegprakash: grats.. my 2 day old bot ranks 200 higher than my current rank
cegprakash: such a shame
is1c1c: i just refactored my code to actually eval the game state instead of a sequence of actions. now its muuuch worse
miszu: before I submit a new version, I make sure I can beat my bot in arena
Smelty: congrats
cegprakash: is1c1c haha
miszu: you can do that by deleting your opponent AI and adding your arena AI
Smelty: at the beginning when i switched to eval game state i dropped 100
miszu: in case people didn't knwo
Smelty: yep miszu thats what i do
Smelty: i run 10 tests
Smelty: and if it wins at least 8 then i sub
cegprakash: gold opens tomorrow and I've a pleb bot
miszu: I don't think I will be able to reach gold yet
ClockSort: how pleb? I'm guessing Gold will be top 500 or so
cegprakash: yep definitely start with 500 in gold and it can go till 1000 before contest ends
cegprakash: or even 2000
cegprakash: there are 5 days
miszu: my grow algorithm and complete algorithm is pretty trash, anyone has a good heuristics for it?
HungryBurger: Try completing all your trees on the last three days?
Glucozen: HungryBurger , it's too late, nutrient have too low value at this moment
cegprakash: it's a balance
cegprakash: https://sayingimages.com/wp-content/uploads/perfectly-balanced-starving-meme.jpg
Smelty: o.O
HungryBurger: Haha, well, my simple heuristic starts harvesting trees on the 18th day, but haven't thought about when the opponent does it sooner.
Smelty: welllllll i just start selling my trees when im confident in my sun production
cegprakash: Smelty sush!!
Smelty: yes senapi
Smelty: *senpai
AntiSquid: ... damn this barely top 700
AntiSquid: the goal post keeps moving
cegprakash: cheers to 700 club
AntiSquid: 600 earlier today, but am not the only one improving so ...
ClockSort: woot, my code is 4680 lines and cannot be submitted. Achievement unlocked!
AntiSquid: how do you get to that many lines?
AntiSquid: i am still at 500 or so
AntiSquid: without comments i mean
Wontonimo: i'm at 136 lines with comments
Wontonimo: oh and 10 lines devoted to taunts
AntiSquid: :thinking:
AntiSquid: found perfect heuristics ?
HungryBurger: Distract by the opponent by taunting it?
JBM: it's not a heuristic if it's perfect
ClockSort: you must measure the quality of the aircraft via its weight.
AntiSquid: or there are long chains of weights ? :P
ClockSort: i'm using a tool and including my cpp files in a chain, so Tree.cpp is included 11 times. That's the issue.
Wontonimo: that's right HungryBurger, gotta play the game
Wontonimo: the "default" python code is already 42 lines, so I only added 84 lines of code and 10 lines of taunt.
ClockSort: taunt is more important than sims
Wontonimo: but i've been crushing over those 84 lines like a maniac for the last few days.
AntiSquid: i have 3 lines of taunt
JBM: I'm real late on schedule
AntiSquid: how else will you get gold ?
Wontonimo: i think i should add more. maybe instead just quote My Neighbour Totoro
JBM: wild guessing the opponent?
AntiSquid: no. you need to taunt them
Wontonimo: you are correct. what was i thinking
AntiSquid: i have a Made in Abyss quote
AntiSquid: similar art
JBM: i'm hoping an appropriate retort will be enough
AntiSquid: of course it times out when i am about to win ... then send to IDE and no timeout ... geeez
is1c1c: i have this weird bug where its like i get an incorrect game state passed. like i'll be told i have a size 3 tree on some tile i already harvested..
is1c1c: oh nvm im just an idiot
cegprakash: what is the points written inside the bracket near richness in the game? I get different points when I cut that tree than what is shown.
DaNinja: richness+nutrients
cegprakash: but it doesn't match
cegprakash: it shows 8 points but when I complete it I get 9 popints
DaNinja: nutrients at start of day maybe
AntiSquid: ah you mean viewer isn't synchronized
DaNinja: *at start of turn
Lachrymosa: Hey I've seen some githubs share python script for Discord, but how are they implementing it? does it need to be called with a bot or is there some hidden console I'm unaware of?
is1c1c: shouldn't it be nutrients + (richness - 1) * 2?
cegprakash: is1c1c it should be but it isn't matching
cegprakash: in the viewer
cegprakash: when u hover a tree it tells u some points
cegprakash: that doesn't tell how how many points u will get
cegprakash: just some random number
KelvinAndHubbles: wow, implemented a shadow board feature to predict better with beam search and went down 100 places, thought it was just bad, but then 12 hours later realized I put >= instead of > and went up 400 places :/
Smelty: wow.
AntiSquid: broke into top 600, 550 or so . i still hate the game, make no mistake
AntiSquid: even if i win the contest .
Smelty: o.
AllYourTrees: why do you hate the game?
cegprakash: wow AntiSquid
cegprakash: what did u improve
AntiSquid: because it's a really bad game
AntiSquid: good night btw
AllYourTrees: night!
Smelty: nigthy nighty night
Noyotens: any spring alghorithm
Lysk: I'm impressed by the leaderboard movements generated the folks submitting
cegprakash: I think I also broke into top 600 hopefully
Smelty: lol
Smelty: aaand im in 115
Smelty: *1150
cegprakash: staring at leaderboard helps
Wontonimo: it does!
cegprakash: sometimes not.. 5 losses back to back :(
Wontonimo: doesn't hurt to also watch the replays
Smelty: yes.
Smelty: i just realized that my score calcs were using wrong variables o.O
Smelty: changing them didnt do anything tho-
Smelty: beat my old bot 7:3 resubmitting
aangairbender: dbdr did you improve your beam search?
NotSureWhyThisWorks: anybody understand this from c++: "cannot bind non-const lvalue reference of type 'state&' to an rvalue of std::remove_reference<State&>::type' {aka 'State'}" I am trying to put objects in a priority queue
Smelty: hmm
actualCoderTrevor: I'm rank 701 - why do I keep imagining what I'll write in a postmortem after I do really well? :joy::sob:
Smelty: *cries in 1200*
actualCoderTrevor: Smelty your bot has already won in my eyes with the Rickroll
Smelty: lol
Smelty: just resubbed
Glucozen: how much node did you need to have by turn to start being effective ?
Smelty: so people actually have the patience to look at the match vs me past the monty python quotes
actualCoderTrevor: In fairness I was watching your bot before you added those
Smelty: ah
actualCoderTrevor: I think I need to spend some time optimizing my bot's speech. That's clearly his weak area.
Smelty: lol
Smelty: bot stop being stupid and deleting your trees so early :(
CharmyRosewolf: My bot says "Henlo!"
CharmyRosewolf: Do I win?
actualCoderTrevor: Legend rank at least
Smelty: YES
Smelty: added new quote to say first round:
Wontonimo: i'm glad you are enjoying the quotes. i should add more
Smelty: "Imagine being a wood spirit lol"
Smelty: yes wontonimo
Lunarhaven: why am I struggling to use a boost so much, aaaa
Smelty: hmm?
Smelty: csb?
Lunarhaven: wait this channel is for everything on CodinGame isnt it >.>
ismail9999: @puni[-_-].oO r u here ?
actualCoderTrevor: Lunarhaven totally but the Spring Challenge is happening and there are only two contests a year, so most of us are working on that. There's no good reason not to participate IMHO.
Smelty: yea
Smelty: but LunarHaven you can either take a chance and boost when dist>5000 or save each distance then boost the second round when its best
Lunarhaven: alright, ty. I'm trying to get to a specific league for a class in school, and it has to b e in CSB, I'll try it out!
Smelty: gl!
Smelty: what league r u aiming for?
Lunarhaven: Silver, and I figured out how to make the boost work, but now my power wont go below 100
Smelty: oof
Smelty: so make a counter for boost
Smelty: and if you used a boost make it 1
Smelty: and only boost if it is 0, which means no boost so far
Smelty: because it defaults to 100 if you output boost wihtout boost
Lunarhaven: I have a counter, that was like the first thing I did
Smelty: hmm weird
Smelty: check your thrust function then
Smelty: if it still doesnt work you can dm me your code and ill check it
Smelty: ok
Rabeeb: what do u mean by boost actually?
Lunarhaven: the CSB thing that makes you go super fast once a match
Rabeeb: I don't understand, CSB means?
Lunarhaven: Coders Strike Back
Rabeeb: r u talking about this forest game?
Lunarhaven: if you mean the spring challenge, no, Coders Strike Back is one of their other things that my teacher is making me do instead
Smelty: lol
Smelty: most people here are doing the contest, after all, its just twice a year
Smelty: my code is 754 lines long :flushed:
pmor: I'm up to 2k :\
Smelty: up to 1147
Smelty: but i recently shortened it
pmor: finally, i kicked catboss's ass
Smelty: lol
Smelty: what rank?
Smelty: i wanna right you
Smelty: *fight
pmor: had a bad search n replace that bugged my algorithm
pmor: 1st bronze right now
pmor: waiting to promote
Smelty: ahh, thats why i cant find you in silver
pmor: i have no doubt i'll get crushed in silver right now
pmor: my eval is pretty basic
pmor: and I need to implement some sort of pruning
Smelty: lol
FerrusDude: @pmor nice bot :D
FerrusDude: it popped up with me as I made my run to silver.
pmor: :)
FerrusDude: I tried to take more peeps with me but it was not in the cards.
pmor: can you tell where i stop hording sun points and chop trees?
FerrusDude: hehehe
FerrusDude: maybe
FerrusDude: :innocent:
FerrusDude: it worked very nicely for that tier. I was keeping my search narrow for the seed casting. Still testing my approach for durability.
FerrusDude: your the only one that beat me consistently. gg :D
pmor: hehe.
Smelty: xD
pmor: just tested against
pmor: 1st place silver...got crushed
Smelty: i first determine which action i want then eval each possible
Rabeeb: To me, this whole thing is sun arithmetic :3
FerrusDude: I always know it will get exciting when I see familiar 'faces' pop up
Rabeeb: Doing simple arithmetic on future suns performs pretty well
ZarthaxX: what Rabeeb
FerrusDude: I imagine it does.
ZarthaxX: you dont have complex stuff???
FerrusDude: Mine is too naive at the moment
ZarthaxX: how D:
aangairbender: finally fixed my beam search
Majeck: Hello
Smelty: e
Majeck: What happens if nutrition < 0
Smelty: it cant
Majeck: or is that not possible in the time given?
Smelty: it stops at 0
pmor: it caps at 0
Majeck: Oh ok
Majeck: Can I get 0 points for harvesting a tree then?
Rabeeb: Lol ig
ZarthaxX: Rabeeb are you doing search?
ZarthaxX: im curious lol
FerrusDude: no I think you get soil resource only
VizGhar: 0 + nutrient
aangairbender: you can theoretically, but in practice you will always get at least one
VizGhar: 0 + richness sorry
Rabeeb: @Zarthax no, just arithmetic on future suns
aangairbender: in the top games players cut around 18-19 trees total
Smelty: hmm
Rabeeb: @Zarthax shadow directions are known already
Smelty: my games, i get around 250 total points
Smelty: idk how many trees
ZarthaxX: Rabeeb just trying all actions to maximize sun production?
Rabeeb: yeah.. that's it :3
ZarthaxX: damn boi
aangairbender: Smelty if you opponent is afk maybe you get that much
ZarthaxX: gz :O
Majeck: Thanks for the help
Rabeeb: @Smelty what? 250?
PatrickMcGinnisII: I've seen a nutrient of 2, which is still a profit
Smelty: total points lol
Smelty: combined\
NotSureWhyThisWorks: Ive had 21 trees cut in a single game
Smelty: hm
NotSureWhyThisWorks: very rare
PatrickMcGinnisII: if you can gen 120+pts, u pretty much win imho
Smelty: lol thats me
Smelty: but i lose half games
PatrickMcGinnisII: i dont know how people do completes at day 13
Smelty: that ez
Smelty: i finish my first tree ~day 8
Zenoscave: PatrickMcGinnisII 140+ is more like it
Smelty: i just wait to complete more
Rabeeb: isn't that bad? @smelty
Smelty: lol
Rabeeb: keep the tree, get suns, chill
Smelty: like size3 not complete
Smelty: *full tree
Zenoscave: What Rabeeb
Zenoscave: What Rebeeb said**
Rabeeb: I said cutting trees is day 8 must be bad
Smelty: i mean like i can easily complete early its just that i chose not to
Smelty: i normally start slowly completing at 16
Rabeeb: lol you can hardcode anything
PatrickMcGinnisII: anyone track their trees, like how much they cost versus what they generate?
Smelty: and finish around 22
actualCoderTrevor: Smelty you lose out on nutrient bonus if you do that
Smelty: noope
Zenoscave: I'm agreeing Rabeeb
aangairbender: rank 35 feels good
Rabeeb: I think the best hope is to get your AI to systematically find what's best