Chat:World/2021-05-13
FerrusDude: heh, I remember when Rust was exotic.
FerrusDude: :upside_down:
XeroOl: it still sort of is for me
XeroOl: but yeah,
pmor: i remember when c++ was exotic
XeroOl: hoooray it finally compiles
XeroOl: that means it works perfectly, right? :)
actualCoderTrevor: I remember when flipping switches on the front of the Altair was exotic.
actualCoderTrevor: Although I wasn't alive yet.
ClockSort: looks like it worked @ninjadoggy, now in 45th place?!
XeroOl: congrats
KCrown: tell us ur secrets ninjadoggy?
FerrusDude: It compiled?!! :beers:
FerrusDude: It probably won't have a runtime error, unless you were unsafe. hehehe
XeroOl: lmao I realized my sim is only half done
XeroOl: I need to implement getting all the valid actions
FerrusDude: but you have appeased The Compiler
XeroOl: yeah
FerrusDude: I'm not going to lie, Rust takes substantially longer for me to write vs other languages
XeroOl: that's what I've noticed too
XeroOl: ruby: 10 seconds to write
XeroOl: rust: more than 10 seconds to write
FerrusDude: rust: runs in ns
XeroOl: try crystal-lang then lol
FerrusDude: also rust: compiles for a minute
FerrusDude: hehehe
XeroOl: yeah rust compile times are why I don't like it more as a language
FerrusDude: I'll put it on my todo stack
XeroOl: is it just me or does codingame not give you red squigglies on compiler errors
XeroOl: for me you just have to hit "play" and then let it fail to compile
FerrusDude: do you have VS Code?
XeroOl: nope lol
XeroOl: I don't even have rust on my computer
FerrusDude: you can install the RLS feed and that will give you all the compiler errors ahead of time
FerrusDude: :D
XeroOl: ahh, so rls does support that
XeroOl: that's nice
FerrusDude: so then you can pull a me, not notice and try to compile anyway
FerrusDude: :joy:
XeroOl: it will at least tell you the line number and warp you there
XeroOl: which is great
FerrusDude: that is a big improvement
XeroOl: yeah I'm editing in codingame
XeroOl: and it's not fun
FerrusDude: CG used to break the compile on any warning ...
FerrusDude: :|
XeroOl: lmao that must be fun
XeroOl: it feels like turning in a test, and then getting nitpicked over all the little mistakes lol
FerrusDude: the Compiler also lints ... because the compiler team. haha ... /sigh
XeroOl: you'd have stupidly clean code lol
FerrusDude: yerp
XeroOl: how do you iterate over all the places I could seed from a tree
XeroOl: this seems like a nightmare to do the way I'm doing it
XeroOl: https://pastebin.com/mjNNTCw0
XeroOl: I need to fill in the // TODO with a Plant() that returns the next valid index I can plant in
FerrusDude: I'm using the rand crate, which CG kindly supports.
I am using basic Randomness on a healthy selection of options.
XeroOl: like, randomly choose squares that are eligible? lol
FerrusDude: ( syntax comment: you can leave off the return if you also leave off the ; )
XeroOl: not in that position
FerrusDude: I'm not proud, but it works. lol
XeroOl: because there's an if statement afterward
NoDanCoder: how can i go to the next problem?
XeroOl: @NoDanCoder what do you mean?
NoDanCoder: i just finished tutorial, where is the next excercise button?
FerrusDude: Go to Practice Tab
XeroOl: The exercies aren't ordered, but you can find them under `Activities > Practice` at the top
FerrusDude: And then just like dive in and cause havok
FerrusDude: hehe
XeroOl: or, if you click the Home icon in the top left, you can do the quest tree thingy
XeroOl: which will link you to the right part of the site
XeroOl: to do whichever thing you pick
Smelty: hmm
Smelty: yes
Greg_3141: just got my gold promotion in 3 hours
Greg_3141: whoever made the puzzle of the week is pretty mad at Forth
davilla: speaking of, what is CSB?
Noved90: hey guys whats the best learning code website
davilla: you found it
eulerscheZahl: dbdr is back, congrats
dbdr: thanks! :)
dbdr: robostac is killing me
dbdr: http://cgstats.magusgeek.com/app/spring-challenge-2021/dbdr
eulerscheZahl: me too, he even used me to test against
eulerscheZahl: nice stats for the rest :o
Greg_3141: leetcode is nice for algorithmic puzzles imo, arguably even more than this site
jrke: whats the fun of having good winrate against everyone?
dbdr: 6 losses ;(
eulerscheZahl: 2 against me
jrke: oh ended 3rd
dbdr: i mean 7 losses in a row, right at the end
jrke: from 110 to last battle
eulerscheZahl: but thanks for boosting me in the end
eulerscheZahl: chromium crashed, back to firefox :/
akagami101: https://www.codingame.com/clashofcode/clash/17490232c66aa359305e4251ac1472f8c7aabe2
eulerscheZahl: no
BlaiseEbuth: No.
akagami101: https://www.codingame.com/clashofcode/clash/1749026a2276bcc08a4a0d3031fc4a381acf1b5
BlaiseEbuth: Nice day incoming. :)
eulerscheZahl: i can't even go fullscreen for a minute without missing some action
eulerscheZahl: and chat is still laggy in typing
eulerscheZahl: back to undercover
UndercoverToad: had a private chat with someone asking for help going on
UndercoverToad: whatever
UndercoverToad: a real draw. and on an oasis map https://www.codingame.com/share-replay/553882092
BlaiseEbuth: :o
dbdr: I constantly get private requests from strangers for help in the contest
UndercoverToad: so far I only got a few this time
UndercoverToad: when they start with HEY BRO in all caps, I ignore them entirely
UndercoverToad: or when they ask about the height of my paycheck
dbdr: :D
FrancoisB: :joy:
none_: what is key to league opening? It seems never to correspond with date on the popup or time remaining...
aCat: btw do you folks do some action pruning / permutation removal?
UndercoverToad: i don't even generate permutations
aCat: that's what i want to do
aCat: AFTER learning my algo to actually complete trees not only guthering suns to eternity ^^'
aCat: *gathering
none_: just bunch of if/else with some score calculation to decide what's best action seems to work fine...
UndercoverToad: i cheat a bit by just decreasing nutrient at each wait
UndercoverToad: motivates to complete
derjack: oO
aangairbender: I just assume I take 2 nutrients for each tree instead of decreasing on WAIT
aangairbender: tried both option btw
aCat: btw thanks for printing stats euler - got some point of reference
UndercoverToad: maybe i should hide them
aCat: :D
UndercoverToad: my sim count is low
aCat: d is in action depth, and n is sates I assume
UndercoverToad: day depth
aCat: I know, but eval heavy ;p
aCat: day depth?
UndercoverToad: day depth
aCat: so you never finish your sim in the middle of the day?
UndercoverToad: no
aCat: I mean layer
UndercoverToad: absolutely barbaric
aCat: :D
aCat: so it is possible to generate all legal actions for the entire day at once...
UndercoverToad: no
aCat: so cut by actions normally, but do not consider states from unifiinished days as final
aCat: that was my first thought, but then I started wondering... ;p
none_: I don't think that's good idea. If you decide just at the beginning of day you won't react to your opponents moves. For example you might won't to change cell for your seed if you opponent seeds some other cell...
aCat: that's not about this
solistice: another day, same frustrations :D
UndercoverToad: ++
aCat: that's about returning as best state, the state from depth that finishes the day - even if you searched some more layers
KCrown: insanity is doing the same thing and expecting a different result
aCat: if this cat get this correctly
derjack: reinforcement learning experts disagree
none_: well going into future generated tons of options and it takes only one move of your opponent to destroy most of them...
none_: *generates
UndercoverToad: but do you have a better idea?
none_: assign priorities to possible actions and then pick best one based on current state of game.
UndercoverToad: minimax is too expensive, i even fail to find good moves in single player mode
aCat: given s fantastic eval you could make some shallow depth opponent prediction
UndercoverToad: i kind of do what you suggest
dbdr: also minimax is assymetric
derjack: this game is something like optimization problem, almost no opponent interaction
UndercoverToad: just hard to see what works well
aCat: and behave as he made this moves in your beam
UndercoverToad: which is why we try to look a few turns ahead to see it it might be a good move
UndercoverToad: i've seen wal a planting trees to shadow 2 of my large trees and then directly cutting them after
UndercoverToad: so there is a bit of interaction
UndercoverToad: placing a tree to piss off your opponent twice
aCat: ^^'
none_: especially at the beginning (with lot of possible moves) future has many possibilities. Most of them with similar result...:D
none_: what I've seen between Top 10, these guys focus primarily on tree placement (so tree has best chance of getting sun exposure), harvesting quite soon (to get bonus points), and saving some sun points at the end when it's not worth to upgrade/complete trees...
UndercoverToad: sounds simple but how to achieve this
none_: well, tree placemen -> pick place which will have most sun exposure (most directions without other trees)
UndercoverToad: check, the eval function will handle this
none_: harvesting -> some kind of optimization based on game 'day', you don't won't to cut to early, because bigger tree == more sun point, but you don't won't to wait too long, because your opponent will take bonus points. also you don't wont' to end up with forest of big trees and no time to cut them. also more tree you have, more expensive it is to get another...
none_: * won't = want
VizGhar: everything you saying should be handled by eval function
none_: no sure, what you mean by eval function, but my point is: it's not worth to look too far in future. good strategy can be based on current state of game.
none_: *no = not
KCrown: do you think you can get into legends none_?
none_: I don't know what's limit for these leagues. right now I am 78th.
KCrown: about 20
UndercoverToad: in the past it was even less than 20 but for gold CG was very generous
none_: well, probably depends. my best position was 30something yesterday. I still have some plans, don't know how they will work.
UndercoverToad: i think the TypeScript and Perl bot have a good chance to become the boss
KCrown: what plan?
none_: that's a secret...:D
KCrown: hehe
UndercoverToad: you can tell me, i don't even play no UndercoverToad on the leaderbaord
none_: sure, smurf account... :D
Astrobytes: good morning
KCrown: everyone is a blue smurf?
none_: Google: Noun. smurf account (plural smurf accounts) (Internet slang) An alternative computer account used by a known or experienced user in order to deceptively self-present as someone naïve or less experienced.
UndercoverToad: can you help me with Power of Thor please?
Ajaiy2: Oof
Ajaiy2: I know you are kidding
jrke: why legendary toad need help :thinking:
jrke: he is trying to be like new codingamers
Ajaiy2: Yeah.. with a really easy puzzle..
jrke: right?
derjack: if he does, why doesnt he clash
UndercoverToad: i just tried to fit into the role that wikipedia suggests
Ajaiy2: What role?
none_: :D
Astrobytes: go back 7 or 8 messages
UndercoverToad: "self-present as someone naïve or less experienced"
aangairbender: I really like how that TypeScript guy plays, so consistent
UndercoverToad: your future gold boss
UndercoverToad: to show everyone that it's possible without C++ they like to take bosses in a different language
none_: #1 right now uses Java... :)
UndercoverToad: i know, fighting him in IDE right now
UndercoverToad: losing big time but I want to understand why
VizGhar: can you understand search algo bot?
UndercoverToad: i can understand what's going on and try to grasp how
UndercoverToad: https://www.codingame.com/share-replay/553908931 e.g. check my tree on cell 4 early on
UndercoverToad: that's a conspiration
UndercoverToad: conspiracy*
UndercoverToad: he always make sure I get some shadow and then chops off the tree
UndercoverToad: as if he would care more about my sun points than his
dbdr: #sadistBot
hsm_akb: guys i have a q about my code , how can i share it to get hep?
none_: he also cuts really soon and gets all these bonus points... from there it seems like uphill battle...
UndercoverToad: i figured so much
UndercoverToad: hsm_akb is it code for the current contest? then no
LLG: my bot caps out at ~400 silver again
LLG: it seems to favor cutting very early and very late, and building econ midgame
LLG: instead of keeping a good pace like the top bots
Noyotens: https://www.codingame.com/replay/553951489
Noyotens: i need help
UndercoverToad: Noyotens the spawn at frame 10 is bad (both yours and the bosses)
UndercoverToad: find a spot that's not in line with your existing trees (like cell 18)
UndercoverToad: same again when you spawn at 8
UndercoverToad: pretty much any seed at the beginning is to be avoided
Noyotens: https://www.codingame.com/replay/553953507
Noyotens: like this
Noyotens: ??
UndercoverToad: no, you make the same mess again
UndercoverToad: https://imgur.com/a/wjlqAVf baaaaad
Noyotens: https://www.codingame.com/replay/553955475
Noyotens: now???
UndercoverToad: no
dbdr: 22 and 2 are in line
UndercoverToad: that's nothing you can fix in 2 minutes by playing with the same bot over and over again
UndercoverToad: SEED 22 10 would be a good move
Noyotens: but how i can is in line or not
NotSureWhyThisWorks: you can check if the position is directly next to one of your trees and start from there. Generally better to have your trees more spread out
UndercoverToad: kepps them safe from the bark beetle too
dbdr: legend rule?
Noyotens: NotSureWhyThisWorks how
UndercoverToad: oh, i shouldn't have mentioned that yet
NotSureWhyThisWorks: Noyotens if you use the game's representation of the board it gives you the indices of neighbouring places on the grid
NotSureWhyThisWorks: UndercoverToad you're trolling right? lol
UndercoverToad: with the bark beetle? I just like bad jokes
Noyotens: https://www.codingame.com/share-replay/553961590
NotSureWhyThisWorks: lmao I don't even know what a bark beetle is
UndercoverToad: regarding the spawn location i'm dead serious
UndercoverToad: it's a beetle that can make trees sick and die
NotSureWhyThisWorks: nice Noyotens
NotSureWhyThisWorks: much better
Noyotens: thx
NotSureWhyThisWorks: interesting UndercoverToad
UndercoverToad: it's not
Noyotens: UndercoverToad
UndercoverToad: *seeding is not much better now
UndercoverToad: race condition
NotSureWhyThisWorks: is there a gold boss?
UndercoverToad: not until tomorrow
Ziurke: Bosses are only present in some league if there is a higher league
LLG: https://www.codingame.com/share-replay/553948284
NotSureWhyThisWorks: enough time to fix my sim
LLG: I use the same heuristics throughout the game
LLG: idk why it plays the early game kinda well, but then completely blows the midgame
NotSureWhyThisWorks: LLG the trees look quite bunched together
LLG: they do
Noyotens: #UndercoverToad can u tell me how u cheek the tree is in line or not
LLG: but not at the beginning tho
Noyotens: Plz tell me
LLG: I didn't check if my trees block each other though
LLG: I just have a function called TurnsUntilShadowed
LLG: which I run for all of my trees
UndercoverToad: do you have a Cell class with an array of neighbors Noyotens?
Noyotens: yes
LLG: so if I have a size 2 trees that has TurnsUntilShadowed=5 I expect to gain 10 suns from it
UndercoverToad: great. then you have 2 spots (tree, seed) - do that for each of your existing trees
LLG: and that's part of my eval
UndercoverToad: or better start from seed, forget my previous line
LLG: with a decent weight, idk why my bot still bunch up my trees
NotSureWhyThisWorks: LLG do you factor in that trees will generally grow in later days?
UndercoverToad: so for each of the 6 directions you go 3 steps wide: seed.neighbors[dir], seed.neighbors[dir].neighbors[dir] seed.neighbors[dir].neighbors[dir].neighbors[dir]
UndercoverToad: then you count the number of cells where you already have a tree
LLG: I don't, but it should work for my trees anyway
Noyotens: #UndercoverToad can u tell me how u cheek the tree is in line or not
UndercoverToad: find a seed location with a low number of existing trees
UndercoverToad: i just did
Noyotens: u dont answer my ques
NotSureWhyThisWorks: LLG if you grow a tree then it will change the value you calculated
LLG: because if I simulated a GROW move on my own tree, then the shadow map should get updated
UndercoverToad: you don't try to understand my answer
UndercoverToad: god dammit
dbdr: he did answer
LLG: there are 2 ways
Lizerino: he doesnt want an answer he wants the code
NotSureWhyThisWorks: dude gave him the code as well basically
LLG: you either use cube coordinates and check if they're on the same axis
Noyotens: i dont want code
LLG: or check for neighbors in the same direction if you're using spiral coords
Lizerino: im still stuck doing the same true false kind of bot.. i want to try some kind of ga or nn
NotSureWhyThisWorks: Noyotens the direction of the neighbour is given by the index of it in the game's input at the start
LLG: I'm still doing a beam search, whose depth is continually getting gutted as my eval function grows heavier
NotSureWhyThisWorks: neighbour_0 will always be in the same direction regardless of where it comes from
UndercoverToad: from if-else to neural network? that's a huge step
Lizerino: is there a middle step
UndercoverToad: beam search is relatively straight forward
UndercoverToad: that's what i'm doing as well
LLG: also euler since you're also doing beam
Noyotens: #UndercoverToad u work with AI
NotSureWhyThisWorks: I am stuck on implementing beam search
Ajaiy2: I give up, im gonna just start working on bitboards
LLG: do you calculate the eval of a sequence of move
LLG: using discounted sum of differences in eval
NotSureWhyThisWorks: The number of seeding options is heaps and the number of possible turns in a day is crazy
UndercoverToad: no Noyotens, i mostly write Windows desktop applications at work
LLG: I tried that and it improves my bot a bit
Noyotens: me too
NotSureWhyThisWorks: How many possible combinations of turns are there for a day?
LLG: a lot
UndercoverToad: thousands if not more
NotSureWhyThisWorks: I don't understand how a search can be implemented that well because of this
LLG: exponentially so if you also do opponent sim
Lizerino: you prune the branches that are not going to turn out well
Lizerino: that narrows the search quite a bit
UndercoverToad: beam search = you generate all possible moves and try to give them a score depending on how good they are (e.g. counting suns after day 23)
NotSureWhyThisWorks: but even just generating the branches and evaluating them is heaps
UndercoverToad: then you keep the best and drop the rest
LLG: you can also prune sequences that lead to the same result
UndercoverToad: repeat a few times
LLG: for example seed 1 then seed 2 is essentially the same as seed 2 then seed 1
Lizerino: i find the biggest problem is to figure out a good way to evaluate a position..
LLG: and yeah
LLG: eval is the big problem
NotSureWhyThisWorks: like the number of branches that have to be generated at a depth of 1 day is still thousands in the middle game
LLG: depends on your beam width, but yes
UndercoverToad: it's normal that a bot analyzes tens of thousands of boards each turn
Lizerino: place 625 silver for an if else bot.. could be worse.. but yeah i need to write something that doesnt depend on me being the smart one
UndercoverToad: you still have to be smart when you write a search
NotSureWhyThisWorks: In my experience can't there easily be tens of thousands of different game states at a depth of one or two? And this is before pruning
UndercoverToad: the eval makes the brain
Lizerino: let me rephrase it.. that doesnt depend on me being a good photosynthesis player
LLG: euler do you only rely on the final eval to decide your move, or do you rely on a combination of each state's eval in the sequence?
Noyotens: :cry:
UndercoverToad: i keep a bit of score from the path, but mostly the final state
LLG: I see
Lizerino: ah wells.. thats a project for later.. good luck guys..
dbdr: I don't keep score from the path
UndercoverToad: mine is very minor. e.g. i check if a seed locations is good or bad only on seed action
LLG: I weight each state eval lower the deeper they are in the sequence
UndercoverToad: want to memorize that
LLG: not sure if that's a great idea
LLG: it worked in the potion game, but idk bout this one
dbdr: only one way to answer the question, try it
LLG: I am
LelouchVC2: dont try it
LLG: my logic behind the discounted weight is that if it finds a really good move later on, but has to make a bad move early
LLG: then if the game doesn't play out exactly as planned
LLG: I'm stuck with a bad move
Noyotens: https://www.codingame.com/replay/553948284
Noyotens: how u know is the best move
UndercoverToad: we don't, we try to approximate and avoid the stupid move
dbdr: yes, that's a reasonable way of thinking LLG
Noyotens: how u know is the stupid move
Noyotens: to avoid him
Kiat: you seed into cell surround by 6 tree that is stupid move
Kiat: define all stupid move and avoid those
Noyotens: ok
KayDai: I cant access the discord via the invitation.
KayDai: does anyone can help me for that?
LLG: if (bot.isStupid) bot.tryHarder
KCrown: did you just gave away ur secrets UndercoverToad ?
UndercoverToad: no, my copy-pasting from the local IDE ended in the web IDE and not the chat :)
LLG: I deleted a whitespace and now my bot is saving all trees until the very end of the game
LLG: what is this sorcery
VizGhar: Euler third... wp
Nerchio: hes there since a couple of days but ok :D
VizGhar: He was 4-8 mostly
VizGhar: I don't have enough mental energy to simulate opponent. so I'll end up in first 300-500... meeting my target for this contest. Learned a lot
Nerchio: you can be higher without simulating opponent
LLG: I did more bitwise operators in the past few days
UndercoverToad: i'm just drifting up and down while others are submitting
Nerchio: in fact probably top10
LLG: than I have my entire life
UndercoverToad: i don't simulate the opponent so I can confirm top10
VizGhar: Yes nerchio... but I lack skills :)
KCrown: wow there are prizes?
KCrown: T-shirts hehe
VizGhar: I have to see other peoples solutions for any board game bots
VizGhar: not sure where to find those
VizGhar: I simply cant write good eval function
UndercoverToad: tshirts and canvases with the contest artwork
LLG: in theory it's just [weight * state.some_info]
LLG: rinse and repeat, and tune the weights
LLG: but it's harder in practice
UndercoverToad: https://img.printfection.com/18/5645/Rajypem8uxCz4xz/Next+Level+3600+-+CodinGame+Robot+-+Black+%28Front%29.png
KCrown: what the heck is a canvas?
LLG: https://github.com/Agade09/Agade-Fall2020-Challenge-Postmortem I used this as a base for my eval
KelvinAndHubbles: KCrown a painting
UndercoverToad: a painting (printed), 40x30cm
KCrown: not that I think I can get into the top 3 top 20 maybe ...
KCrown: oh like art work? :P
UndercoverToad: the one you see on the contest startpage
UndercoverToad: that "animal" in the trees
KCrown: hehe cute ... its not ur typical computer contest prize ...
LLG: my sim count is nearly halved at the cost of slightly better heuristics...
VizGhar: What would you do with it? :O
ddreams: with what?
VizGhar: with that canvas (sry)
KCrown: no idea ... but a t-shirt you can show off ...
UndercoverToad: what is the typical prize? a raspberry pi?
ddreams: what do you usually do with paintings?
KCrown: a USB drive? :P
UndercoverToad: i don't know but the wall sounds like a good place for a painting
VizGhar: I'd use poster, but I won't hang this on wall
VizGhar: but sure... some may like it :)
VizGhar: wedding photo + CG art :D
KCrown: I have like 1400 lines of c++ code ... is the number of lines of code for other ppl listed?
DomiKo: 1500 c++
aCat: 1600c#
VizGhar: I have 565 lines of clean code, but obviously, being clean isn't all that helpful
KCrown: thanks ... just good info :P
LLG: 1300 lines of c#
solistice: 1400 c# (ddirtyyy)
Astrobytes: 236 lines of C++
KCrown: seems like everyone is about the same size
solistice: there's probably someone with a python 1-liner :D
KCrown: except for the 236 liner :P
Nerchio: 1300 java but too much useless code i stopped using
VizGhar: Astro1kbytes
AntiSquid: 600, is that what i need to do? add more lines?
VizGhar: ok 200 places improvement... one more such day and i'm at top
Ajaiy2: I am so glad I am using bitboards now, its a breeze to initialize them
KCrown: What did you do VizGhar?
VizGhar: rewrote it all and improved eval
KCrown: hehe
VizGhar: its funny... i see myself in top 50-100 in about year or so... slowly starting to understand it all
LelouchVC2: People still use Java?
KCrown: this one seems deeper than the older ones I tried
VizGhar: KCrown what are we talking about now? contests?
mhpd: https://www.codingame.com/clashofcode/clash/1749242a44a6141aba37a4f8b0dc79e9b911102
Michael_Howard: Why do people do that? :point_up:
Uljahn: they don't know about #clash channel
AntiSquid: even then why do they spam the links? nobody spam multiplayer links
UndercoverToad: https://www.codingame.com/ide/challenge/spring-challenge-2021
VizGhar: kick
UndercoverToad: 650 lines to answer a question from when I was eating lunch
UndercoverToad: but some dead code
UndercoverToad: oh, jolindien is submitting. there goes my reference if I improved
Astrobytes: Yeah, I could probably reduce mine by half by refactoring
AntiSquid: same :P
UndercoverToad: you still aren't in gold astro
Astrobytes: I'm playing slowly
Astrobytes: 274 in silver currently
UndercoverToad: fix it
Astrobytes: lol
AntiSquid: have same code repeated for each command
VizGhar: wow robo is fourth?
Astrobytes: Yeah same AntiSquid
AntiSquid: why is that a surprise VizGhar ?
VizGhar: wasn't he doing just heuristic?
AntiSquid: heuristics are very strong here either way
VizGhar: funny how my thrown away hardcoded early game is automatically solved by beam search :)
VizGhar: really? I can't imagine hardcoding midgame
VizGhar: just vague ideas
AntiSquid: anything can work
VizGhar: maybe thats why I'm ~200 rank
UndercoverToad: Robo is a strong player, he won a contest before
UndercoverToad: no need to be surprised about him at 4th place
AntiSquid: i am sure he can switch very fast to new code
RoboStac: I'm not, trying to convert to this new bitboard format for faster sun has broken everything
UndercoverToad: i broke my scoring. now I seed in turn 1
VizGhar: heh... gogo toad
AntiSquid: i mean why would heuristics be considered weak? good domain specific knowledge always helps .
RoboStac: I don't think I've said what I'm using other than talking about trying to solve endgames
UndercoverToad: a mix of domain knowledge and the possibility to try out things helps
RoboStac: which obviously isn't heuristics
AntiSquid: not debating your bot :)
UndercoverToad: end game solver sounds complicated
UndercoverToad: you surely have my admiration if you succeed
VizGhar: hmm maybe just my bad memory
KelvinAndHubbles: is the timeout timings different in arena? Have gotten losses due to timeouts multiple times, but send to IDE every time and can't replicate it
Astrobytes: best to leave a 5-10ms buffer if you want to avoid the time spikes
Nerchio: sad but true
AntiSquid: my new C++ code:
AntiSquid: http://chat.codingame.com/pastebin/483e6763-2719-4c83-8436-b534e4f1629f
jrke: looks great squiddy
Nerchio: lol
ddreams: you didn't forget the endl
ddreams: good job
VizGhar: clap clap
ddreams: found a nice little bug.. applying a seed move didn't mark the location as taken, so the search sometimes seeded the same location several times
ddreams: fix gave 60% wins in self play
schachmatt: morning all
schachmatt: damn did gold get bigger? just woke up and my bot dropped from ~200 to 83 overnight
schachmatt: congrats to the ~120 people who got promoted :laughing:
KalamariKing: gm peeps
KalamariKing: is language assist still down
KalamariKing: no? Epic
ddreams: isn't it annoying to use the web editor?
KalamariKing: Oh, very
ddreams: so why do you use it?
KalamariKing: It's all I got
ddreams: you can't install any software on your machine?
KalamariKing: Nope
KalamariKing: I mean, it's whatever, it works fine for me
ddreams: can you download and run programs without installing though?
KalamariKing: No
KalamariKing: Nothing
ddreams: School or work laptop, I guess
KalamariKing: Yup
none_: that's bad, once you get to higher leagues, it's really useful to be able to run you code against your code lot of times to compare it. You don't get good results by clicking in browser...
KalamariKing: I won't get good results either way so it's whatever
mhpd: https://www.codingame.com/clashofcode/clash/17492990e7d388b3144cb7be41ea27085202a6d
KalamariKing: #clash
KalamariKing: not world
Ajaiy2: I really can't find a way to store all 222 neighbours efficiently. How do you all store it?
AntiSquid: 222 neighbours?
Ajaiy2: Yeah, 37 cells * 6
AntiSquid: oh had no idea
none_: Cell { Map<Integer, Cell> neighboars} very efficient, I know... :D
KalamariKing: 1. Some cells don't have 6 neighbors (outside cells) 2. Why do you need to store all the neighbors? A simple bitmask shift will suffice
KalamariKing: none_ neighbors*
Ajaiy2: Oh, I forgot all of them don't have 6 neighbours
none_: I know... :D
KalamariKing: ok wtf? I'm printing an action but it's not picking it up
NotSureWhyThisWorks: is there a way to do a bitmask shift for neihbours that are two squares away?
none_: I envy you guys if you are able to live with bitmask shifts. I always hated them and probably always will...
JRFerguson: you are none alone
JRFerguson: too painful to debug
Numby: Can make some pretty printing/toString functions to make easier to debug
JRFerguson: yes, but still...
JRFerguson: i have enough trouble debugging my beam search without bitmaps
Numby: For next competition I'm definitely setting up IDE+unit tests though. This was painful debugging and always uncertain when I make changes if im breaking my code
Numby: I changed board representation few times
Nerchio: the only thing i'd like to figure out is how to easily copy 1 round into local ide
Nerchio: i've seen people say just print to error and copy as arguments?
aCat: yep
Nerchio: but if my bot uses previous rounds as information its kinda rip
aCat: or you can download from replay json
aCat: and simulate from the beginning
aCat: yes, that's harder to sim on local
JRFerguson: nerchio
JRFerguson: i have this code at the beggining of my local while(1)
JRFerguson: http://chat.codingame.com/pastebin/158c2ef0-5010-45d7-a8c4-7bcffd916651
JRFerguson: and then i just copy all err print from ide console to my input
JRFerguson: from start to the turn i want to test
Nerchio: hmm makes sense
dreadylein: @NotSureWhyThisWorks depends on how you desigend the data, but you allready do the math for it if you simulate shadows, just make sure to save the shadows of dist2 , they are also the dist2 fields of the board
dreadylein: well the fields with 2 distance to the target cell :)
RoboStac: there are fields dist 2 apart that aren't shadows though (eg 0 / 12)
dreadylein: ah true
solistice: what do you mean by IDE+unit tests setup? are there tools?
Nerchio: yeah
Chainman: hellloooo
Nerchio: but you need a little bit of a setup
solistice: are there resources on how to do it?
Numby: There are different IDEs and unit testing frameworks that are popular depending on the language you're using. There's a lot of resources yeah; what language are you using?
Numby: Actually screw this; I'm done trying to incrementally improve my mess of a code and failing miserably to add MCTS on top of it. Ill just start anew with IDE and tests and new representation
KalamariKing: gl Numby
Ajaiy2: Good Luck reaching Legend on time, Numby
Numby: Is legend a fixed cut off? (i.e. top 100)
KalamariKing: I don't think so
KalamariKing: Otherwise you might drop down a league which I've been told is impossible
linjoehan: man I forgot about this thing I gots to catch up
UndercoverToad: in the past legend usually was around top15
UndercoverToad: top 100 is not realistic, it will be less
AllYourTrees: wasn't it 80 in the last comp?
UndercoverToad: final size, yes
UndercoverToad: not on league opening
AllYourTrees: ahhhh
alchemsti: Ha, I'm also going to start somewhat fresh
alchemsti: Too annoying trying to coax my eval to plan in future stuff
Numby: Ah that's pretty brutal. I've seen other competitions with 100+ in legend but guess many of those were submitted after those competitions ended
alchemsti: Like not planting a seed so I can grow a tree
alchemsti: I kind of do it now, but it's just not reliable enough.
struct: I think it will be a bit more than 15 this time
struct: I expect 100 players in legend a few hours after it opens
alchemsti: FWIW I expect more than 15 as well with 1100 in gold at the moment
alchemsti: 100 (top 10%) seems not crazy
alchemsti: maybe 50?
struct: 100 is too high
struct: 25 max
struct: But I was wrong on silver so
struct: gold*
UndercoverToad: i bet against the 100 after a few hours struct. even if I was totally wrong on the last 2 leagues
UndercoverToad: the TypeScript bot looks like a good boss to me
solistice: hi Numby, I'm using C#
AntiSquid: ya well i guessed silver correctly, with aprox 25% :P
AntiSquid: 15 for leg my guess
itzluku: boss is always a player?
AntiSquid: maybe even 20 since it's big comp
AntiSquid: don't expect low numbers for silver / gold when only leg really matters, only leg gets recalc for example
KalamariKing: wdym recalc?
Lucky30_: Hello everyone
Lucky30_: عيد مبارك سعيد ✨🌙
Lucky30_: Aid Mubarak Said
KalamariKing: We're over 60% done with the contest, who's doing well
Lucky30_: #Fêtes musulmanes #Muslim holidays
Lucky30_: not me, KalamariKing
KalamariKing: lol neither me
alchemsti: not me
alchemsti: BUT THAT WILL CHANGE
Lucky30_: my goal for this contest what to get to silver
alchemsti: :D
AlMualem: guys, the map we are playing is called hexagonal grind?
Michael_Howard: Sorry for the nooby question, but can someone complete then seed on the same cell in the same turn? (Not day.)
alchemsti: No
Lucky30_: probably AlMualem
alchemsti: One action per day -- afterwards tree is 'dormant'
Michael_Howard: It's not a tree though. It's been completed.
Michael_Howard: It's an empty cell.
alchemsti: Ah sorry, misunderstood
alchemsti: Yes, I think so
AlMualem: technically you can yes
alchemsti: although....
KalamariKing: If you complete a tree does the CELL go dormant?
alchemsti: in the same *turn*?
KalamariKing: Or can you seed there next turn?
alchemsti: since you can't do two actions in one turn, no
AlMualem: i think only a "tree" can be called dormant
alchemsti: not sure if opponent can complete and you can seed...
KalamariKing: I think not
alchemsti: I'd have to read the ref code
alchemsti: If they verify moves, then apply then no
alchemsti: I suspect they do that, since otherwise the "simultaneous seed' rule wouldn't apply
alchemsti: someone would get there first
alchemsti: So, I suspect no, but would have to read the code to be sure.
AlMualem: guys, to my understanding,a good start to improve your bot is to seed at cell with distance >=2,does this make sense?
Michael_Howard: alchemsti it says "As long as you have enough sun points, you can take any number of actions." - I thought this meant same turn?
alchemsti: yes, and ideally where you don't shade yourself (seeding)
Michael_Howard: I was planning to rush harvests & stuff :)
alchemsti: You can take any number of actions in a day (given sun pts)
alchemsti: But you do one action after the other
AlMualem: but at some point you will shadow your self right?
Michael_Howard: Ah, OK. That makes sense. Thanks.
Ajaiy2: I think you can do multiple actions at a time in the next leagues
alchemsti: AlMualem sorta but not so much. Play against a top bot, and see how it plants. basically at a diamon offset.
alchemsti: diamond
alchemsti: e.g from hex 0 to hex 8
alchemsti: They will never shade each other
aangairbender: hey guys
DaNinja: referee marks completed trees as dormant until the end of the turn, then removes them
alchemsti: thanks DaNinja !
AlMualem: i observed the gold bot and it seeds at 8 specific indexes (depending on the first 2 indexes)..all of them have distance 2
AlMualem: if the abs(index_of_seeding_tree-index_seeded_tree) >=8 its always >=2 the distance
aangairbender: I saw dbdr on the 1st place, created game with him to see what smart things he does, and.. I won wtf
Michael_Howard: AlMualem can we borrow your time machine? I want to play the gold bot too :)
UndercoverToad: aangairbender try again on the same map with swapped positions
AlMualem: yes ofc
UndercoverToad: some maps are really unfair
AlMualem: true dat
aangairbender: how can do it UndercoverToad? you mena just swap players in IDE with same seed?
UndercoverToad: did you set the IDE to expert yet?
UndercoverToad: settings on the left => expert mode
UndercoverToad: then go to options => manual and just keep the existing seed
UndercoverToad: delete players and add them again in reverse order, hit "play"
aangairbender: its was on expert already, I see
aangairbender: first 5 days were totally symmetric:grinning:
AntiSquid: legend opens on 17 according to IDE
UndercoverToad: these symmetric opening moves are rather common
AntiSquid: so monday instead of friday
AntiSquid: or is mine bugged?
RoboStac: have you had the tab open for 3 days?
aangairbender: I have CG tab open from the start of contest
AntiSquid: new tab
RoboStac: hmm, mine still shows tommorow
RoboStac: I always thought that bug was based on when the tab opened
AntiSquid: ah did duplicate tab ... opened new one by pasting link shows tomorrow
KalamariKing: this tab has been open since the start of the contest, no bugs or anything
UndercoverToad: don't you guys turn off your computers?
UndercoverToad: i even sleep in that room, I always turn it off
AntiSquid: i put it in suspend mode
AntiSquid: when it's contest or stuff i don't want to reopen when i come back
AntiSquid: mine isn't that noisy either
UndercoverToad: right, that wastes at least 5 seconds
AntiSquid: multiboot isn't that fast or maybe my setup is wrong
AntiSquid: 10 seconds - 15
AntiSquid: and then opening all the individual things i had open
UndercoverToad: oh, i just considered opening browser+codingamer
UndercoverToad: -r
LLG: oh also euler
LLG: are you planning on writing a post mortem after this
LLG: usually I learn a lot from those blogs after contests
solistice: is there a smart way to count all set bits in an integer? or just loop and shift?
UndercoverToad: depends on my final rank. right now i tend to say no as i see myself dropping hard on the last weekend
RoboStac: solistice - which lang?
solistice: c#
solistice: sorry
RoboStac: I believe so - its usually called popcount. One of the c# users can probably help more
aangairbender: there is a way with time complexity O(amount of ones)
UndercoverToad: BitOperations.PopCount((ulong)number)
UndercoverToad: it's is System.Numerics
Marchete: I have big differences in performance
Marchete: between my computer and CG
struct: same compiler?
Marchete: my computer, release mode -> 700k sim
Marchete: CG IDE, 70k
Marchete: dotnet 3.1
aangairbender: also there is System.Runtime.Intrinsics.X86.Popcnt.X64.PopCount()
aangairbender: **some random stackoverflow copied answer**
UndercoverToad: right. that crashes on my machine (it's old and doesn't support the operation)
aangairbender: https://docs.microsoft.com/en-us/dotnet/api/system.runtime.intrinsics.x86.popcnt.popcount?view=netcore-3.0
aangairbender: seems pretty new
RoboStac: I'd imagine they're the same if supported, just the intrinsic only works on some cpus?
RoboStac: whereas the generic has a slower fallback
therealbeef: I tuned down the optimization options on my local build, but still: 3.5M state evals locally vs only 1.9M on CG :P
Marchete: intrinsic throws exception
Marchete: if you don't have it
Nerchio: Marchete idk if that helps but for me local is also faster but only like 2x in java
Marchete: thanks
Marchete: I was seeing 10x perf difference
reCurse: Maybe they forgot to turn on release mode again?
Marchete: I'll try LAHC instead Beam Search
UndercoverToad: because your local computer is so much faster than ours
Marchete: because why not
reCurse: 10x doesn't sound right
UndercoverToad: i saw some timeouts in IDE when I wanted to send an arena loss there
UndercoverToad: while arena seems stable
Nerchio: or well local 150k states in 68ms and CG 70k states 95ms
Marchete: shrugs
Nerchio: :p
Marchete: I "just" need a good eval :rofl:
UndercoverToad: ezpz
ZarthaxX: -3*suns
Marchete: thx ZarthaxX
ZarthaxX: yw
ZarthaxX: what is LAHC btw?
Marchete: simulated annealing for dumbs
reCurse: The physics thing
ZarthaxX: so simpler?
reCurse: Hadron Collider
Marchete: lol
ZarthaxX: wtf :rofl:
Marchete: yes, simpler
ZarthaxX: recurse still trolling in chat :P
reCurse: :innocent:
Marchete: it's like MC on steroids, not really good on search
Marchete: but it's not hard to get it running
ZarthaxX: are you really not participating?
ZarthaxX: oh okey
Marchete: I'm at my own pace
ZarthaxX: interesting
Marchete: it just took me 1 full week the sim
ZarthaxX: oh iwas talking to recurse on that one haha
Marchete: :D
dbdr: I need a good eval too, Marchete
ZarthaxX: but i get you, found a bug in sim yesterday
ZarthaxX: :D
Marchete: yeah, dbdr, sure
UndercoverToad: give me ideas about opponent handling
dbdr: mine is still crap
ZarthaxX: how are you high then
UndercoverToad: weed
ZarthaxX: are there many tricks beside eval?
ZarthaxX: damn
ZarthaxX: :rofl:
Marchete: dbdr, see replays from top 5 and copy them
Marchete: oh wait
ZarthaxX: lol
dbdr: :P
reCurse: See replays where you lose and copy the opponent then
RoboStac: yes, please do that so your bot is weaker :)
Marchete: that's true, you can learn from losses
Marchete: so improve
dbdr: except it's not symmetric reCurse
Marchete: I said that at first
Marchete: sun isn't symmetric
reCurse: Oh boy you're a needy one
dbdr: :P
reCurse: Alright, find replays where you lose matches on both sides
reCurse: And copy what he did on whatever side
dbdr: that said I see moves that are crap, that's not the problem
Wontonimo: you could play your current bot against itself with x10 time limit (if it can use the extra time)
Marchete: my idea dbdr
UndercoverToad: but when you fix one thing, it breaks somewhere else
Marchete: I don't mind to share
Marchete: because I dont case
Marchete: I see it as a management game
reCurse: Sunforest Tycoon
Marchete: maximize sun income, minimize costs, minimize enemy sun income
dbdr: :D
Wontonimo: nice
Marchete: I'm serious, damn
Marchete: I suck but maybe it's a thing
AllYourTrees: M A X I M I Z E S C O R E
Wontonimo: nope, maximize win
dbdr: https://www.youtube.com/watch?v=bG2OcW_Hwkg
AllYourTrees: def algorithm():
action = max(actions, key=action.score)
Marchete: ok ok, I shut up then
ZarthaxX: :rofl:
AllYourTrees: no i agree with you Marchete
AllYourTrees: lol dbdr
reCurse: Don't mix up trolling with making fun of you
AllYourTrees: yeah all i know how to do in this chat is troll
Marchete: "Winning Strategy: Drive Fast"
Wontonimo: lol dbdr ... love the onion
AllYourTrees: so whatre ppl up to this weekend
Wontonimo: coding
Marchete: being in the chat instead of coding
AllYourTrees: i'm going on vacation next week to the beach, pretty excited
Marchete: Estimated end sun:72,78
Marchete: DAY:23 TURN:32 Initial:78,72
Marchete: \o/
aangairbender: dbdr how did you improve so much? better eval or another approach?
Wontonimo: dbdr just hadn't revealed his true form before. Don't know if he has
Marchete: having a bad eval that works good
KalamariKing: Marchete jesus christ that's excessive
solistice: So I started using bitarrays for performance reasons, I'm stuck now on how to count the number of seeds I currently have
solistice: any tips in that direction?
KalamariKing: keep an external counter
aangairbender: Marchete why you are not in top10?
KalamariKing: that's what I did
solistice: that completely makes sense
KalamariKing: much easier (and potentially faster) than all the calculating
NotSureWhyThisWorks: can you find which tree a seed came from when calculating seeding positions with bitarrays?
NotSureWhyThisWorks: or you have to calculate tree by tree
struct: dont think its possible
struct: why just not check previous state and check which tree became dormant?
struct: maybe im missunderstanding
NotSureWhyThisWorks: its for simulating so I would need to change the tree to dormant manually
UndercoverToad: that's a terrible map to find spawn locations https://www.codingame.com/share-replay/554177091
ddreams: cool map
jrke: lots of 0 richness cells lol
ddreams: seed=-1946968077413975040
UndercoverToad: and at locations that make it hard not to place a tree in line of another tree even in the first few turns
Marchete: that's a good eval too :rofl:
Wontonimo: wow, my bot just falls apart on that map
Wontonimo: thanks for sharing!
UndercoverToad: falls apart in what way? let us see
Marchete: euler sortedset has any use?
ddreams: (almost) all data structures have their use
KalamariKing: which ones do you say don't
UndercoverToad: Lists are useless. Source: whoever created Pascal
ddreams: all data structures except lists are useless Source: whoever created Lisp
Marchete: :runner: Pascal
aCat: PriorityQueues are useless: whoever created C# ^^'
UndercoverToad: i remember who Marchete wanted to get the first in a language achievement and started with Pascal
Marchete: 77% of my sim is movegen
UndercoverToad: in the end he had a decent Dart bot
Marchete: ended with Dart
Marchete: it was a success
Marchete: lang achievement
UndercoverToad: turning in samples without analyzing
Marchete: yeah
Marchete: I have the reBless seed guesser replicated
Marchete: never used it, but it was fun
Marchete: so double blind analysis
UndercoverToad: i wrote something similar during the contest - or tried at least. had the java random converted already but failed to use it to my advantage
AntiSquid: groovy still up for those who need a language achievement :D
Marchete: reCurs_e work was genious
NotSureWhyThisWorks: I'll take any achievement. How difficult is groovy?
Marchete: I just did some tests on multi, like 10-20% guessed seeds
AntiSquid: Objective C also available, nobody took it
Whiskee: ^yeah, for a reason
kovi: can you guys guess seeding 10-20? ;)
Marchete: I had my badge, enough for "esoteric" languages
MateoS: Hi guys. Im excausted and a bit out of ideas? Do you have some tips on how to decide when to cut first trees?
Marchete: either C# for safenet or C++ for weeeee
Hasuzawa: personally, I am most surprised there is no fortran to choose from
MateoS: There seems to be battle a bit between those cutting early and those cutting late - if late cutters catch up to early cutters before end of the game
UndercoverToad: we even have a D competitor this time
AntiSquid: but TS and perl get you top 20
Marchete: 2 guys with D
Marchete: at gold
UndercoverToad: i mean one around 50 (last time I checked)
Marchete: unethical tip, reach legend and change to an language without anyone at legend, profit
Marchete: a*
struct: you can get disqualified
UndercoverToad: i love my bot too much for this
UndercoverToad: i think you are wrong struct
reCurse: Legalize bot marriage
UndercoverToad: back in the days when there were tshirts for the first in a language, you couldn't win by abusing the league system
AntiSquid: is it not legal yet? surprised
AntiSquid: people marry anime characters
reCurse: I don't think that exploit works anymore
reCurse: I vaguely recall Thibaud saying something about it
reCurse: Or did they just stop giving prizes to language firsts?
UndercoverToad: they explicitly disallowed it for tshirt
UndercoverToad: no idea about language achievement
reCurse: Oh, achievement, who gives a
struct: ah
struct: right
cegprakash: when u have a bug and tweak all weights towards the bug now u fix that bug and everything falls apart
struct: i have no idea in which language i placed top 3 tbh in a contest
ddreams: Is a t-shirt so much different from an achievement tho
struct: do hackathlon count?
reCurse: Yes
AntiSquid: yes ddreams
UndercoverToad: you can't wear an achievement in real life
UndercoverToad: it's just a useless flag on a server
ddreams: I don't care much about either tbh, but I do like winning
AntiSquid: with a t-shirt you can show it to your parents so they're proud of you
aCat: or not
aCat: cause you wasted time on some stupid ai games
aCat: ;p
AntiSquid: your parents don't like the tshirt aCat ?
UndercoverToad: my mom just reacts with "oh, it's black again"
reCurse: Life is a waste of time
aCat: that is complicated ;p
Marchete: again => euler flexing
UndercoverToad: :/
AntiSquid: a tshirt for each day of the week
Marchete: btw, how many tshirts?
Marchete: 38?
struct: 0
Marchete: 0 for me too
AntiSquid: from all contests or just CG ?
Wontonimo: ZarthaxX you have foiled me again! I will beat you next time! (or later this competition)
reCurse: The 5% controls all the tshirt wealth!
struct: all
ddreams: I got a tshirt in an acm contest once
Marchete: wait, no they sent me the mail once, and I just ignored it
ZarthaxX: Wontonimo haha :rofl: sure destroy me :P
AntiSquid: i have 3 then
UndercoverToad: did your tech.io shirt ever arrive?
UndercoverToad: or is it in Mexico now?
Marchete: a thsirt was to mexico, never arrived or I never claimed
Marchete: can't remember
Marchete: tech.io gave better stuff
Marchete: amazon gift cards or smth
AntiSquid: was used to wrap smuggled drugs ^
AntiSquid: so you won't see it again
Marchete: yeah, there must be someone at customs with a CG tshirt...
Wontonimo: wow, it's so tempting to just hang out on world chat and not actually code.... gotta close the window .... bbyyyyyyyeeeeeee
Astrobytes: Cartel leader sitting in his mansion with a CG shirt on
Marchete: flexing
Marchete: "like my hero euler", they said
Astrobytes: :D
AntiSquid: after shirt talk there's usually strategy talk about how to get them from contests Wontonimo, so stay a while and listen
Wontonimo: lol
Marchete: anyone have a good idea for better sorted lists/binary trees?
Wontonimo: (is it just me, or does lol look like someone throwing their hands up in frustration?)
reCurse: Why not both
ddreams: sort a list twice for extra power
AntiSquid: would have expected march to know that already he is quite knowledgeable
ddreams: better for what
AntiSquid: for speed
Marchete: better => avoid full sorting as much as possible
Wontonimo: pro tip : if you limit your list to 1 element you can use max() to sort
Marchete: but nvm
ddreams: implement your own red-black tree
struct: why full sort?
Marchete: C# doesn't have nth_
struct: ah
ddreams: so implement nth_element
Marchete: do you guys have some attempt to keep diversity at beam search?
UndercoverToad: yes
Marchete: like try to be more diverse on initial move
Marchete: because if not it ends up with the same "repeated" games
reCurse: Sounds like a question for HR
Wontonimo: oh, that's the second time i've heard that... interesting... diversity
Marchete: :D
Marchete: don't know the right termn
Wontonimo: thanks UndercoverToad for confirmation
UndercoverToad: i have a GROW quota. at least 20% of the positions have to be taken by GROWs
AntiSquid: why c# this contest Marchete ?
Marchete: dotnet 3.1 impressed me
AntiSquid: noted toad
Marchete: with some tests it was fast
Wontonimo: binning by action(like) thing ... nice
Marchete: but you can end up with a lot of candidates were all of them start with the same N moves?
ddreams: why not?
ddreams: it's very common
Wontonimo: alright ... AntiSquid you've successfully sucked me into another 10 min of chat, but i'm gone now. cya
miszu: good morning children
ddreams: good morning child
ClockSort: hi miszu, nice work reaching top 500
miszu: ClockSort thank you :)
miszu: I am pretty proud of myself. Those are my last efforts. This weekend there is a chess tournament in Canada that I want to participate
miszu: So I won't have time to code
ClockSort: nice. I am in Google Code Jam Round 2 this weekend, which will take some time too.
DomiKo: yap yap
reCurse: Isn't that just online because of covid?
ClockSort: finals are (probably) online, but Round 2 is always online
ZarthaxX: always has been right?
ZarthaxX: excepto for final, but thats online too
reCurse: I was talking about the chess thing sorry
miszu: reCurse yeah but there are strict rules like you need 2 cameras for zoom and stuff like that.
miszu: it's the Quebec organization that do it
reCurse: Oh ok
Vova_s: hi, I have found that it is possible to use my IDE for contest. Does anyone know if it is possible to retreave step data in my IDE?
miszu: I know you play chess so maybe you could give it a try? :)
ClockSort: what is "step data"?
reCurse: Hahaha
Vova_s: I want to have a possibility to debug...
ddreams: Help, step data, I'm stuck
AntiSquid: you can setup offline lol
reCurse: No I'm garbage at it but thanks for the offer
ClockSort: I don't think the Codingame IDE has a debugger.
ClockSort: I'm not garbage at chess.
ClockSort: @miszu want to play?
miszu: sure we can blitz
UndercoverToad: ClockSort 04:27PM nice. I am in Google Code Jam Round 2 this weekend, which will take some time too.
see you there
miszu: do you have chess.com account?
UndercoverToad: do you have the same nickname on codejam as here?
reCurse: Give link to game
ClockSort: https://lichess.org/FE3qZZmk
ddreams: lichess is much nicer
AntiSquid: hate that ... why do people love blitz? what's wrong with 30 mins / 1 h game?
ClockSort: @UndercoverToad yes
ClockSort: @miszu here's a lichess link
DomiKo: AntiSquid too long
reCurse: Stronger contrast between player strength
ClockSort: @miszu are you huspau?
miszu: yeah
AntiSquid: either you like chess or you don't . there's no too long
reCurse: I prefer 10+5 to blitz personally though
ClockSort: ok gl hf :D
miszu: gl hf
UndercoverToad: with that nickname you must have liked round 1B problem A, didn't you?
UndercoverToad: I hated it btw
AntiSquid: not necessarily, for blitz you need to memorize openings
reCurse: Oh huspau = miszu? I'm not too far from that level actually
reCurse: Like ~1700 lichess
ddreams: sameish
ZarthaxX: UndercoverToad you passed right?
UndercoverToad: yes, around 250 in 1B
ZarthaxX: wow, nice!
ZarthaxX: was it hard?
UndercoverToad: the tasks were doable
UndercoverToad: one was bruteforce. it just took me a bit to realize that it works
RoboStac: the third part of A was nasty
UndercoverToad: so i solved a corner case with math that could have been bruteforced too
ZarthaxX: you didnt check constraints at the moment i guess
UndercoverToad: the annoying clock and large integers
UndercoverToad: i didn't even feel like trying it after i passed the other tasks
UndercoverToad: i checked constraints but thought the solution numbers would be bigger
UndercoverToad: turned out you could just test everything up to 1000 and pass with ease
UndercoverToad: i found some CGD formula to prove if it's unsolvable
DomiKo: very nice
reCurse: Nice game
ClockSort: that's "how to win a draw"
ddreams: gg
UndercoverToad: then I was sitting there like "now i probably need binary search. But I can't start with any number as some will work and others won't"
AntiSquid: trade trade trade ... what most folks do in blitz ... lol win by time
miszu: gg
ddreams: sorted him out with the clock
miszu: time pressure killed me
UndercoverToad: so I did the interactive task first and then just ran my solution from the small testcase on the large one to see it succeed
reCurse: It takes a lot more skill than that AntiSquid
UndercoverToad: and the interactive had some randomness in generation and my solution was somewhere around the limit that you needed
reCurse: I completely crumble in 3+0 where I do fine in 10+5
UndercoverToad: I submitted 6 times the same code until I passed
struct: I also cant play 3+0
ddreams: Play a few hundred 1-0
miszu: tbh 3+0 I am very bad at it. I do 15+10 which is the tournament standard this weekend
AntiSquid: 1500 rating blitz
ClockSort: don't feel bad, I am ~2000 on lichess :)
miszu: HOLLY
AntiSquid: im not a pro but ...
ddreams: gj then
miszu: 2k is a good rating
AntiSquid: 2k in what ClockSort?
miszu: I'll analyse the game and see my blunders
ClockSort: @antisquid chess rating of about 2000
StyllyMyle: guys
StyllyMyle: why std::find giving me error
ddreams: 1715 blitz here
ZarthaxX: UndercoverToad 6 times? man that penalty
reCurse: Make sure to specify lichess or chesscom, the distribution is quite different
ddreams: lichess
miszu: lichess you rating is a bit higher
reCurse: Only at the lower levels
AntiSquid: ok but he is 1500 and you win by time, when it's almost a draw? i would expect more with 500 gap
miszu: chess.com is more close to what FIDE and other federations do
UndercoverToad: i take the penalty if I get 20 juicy points in return
UndercoverToad: looking at the scoreboard I wasn't the only one doing this
ddreams: he would likely have won the endgame there
ClockSort: @AntiSquid you sound like my monte carlo, trying to "win by more points" as if it were better :D
AntiSquid: how different is lichess and chess.com ?
reCurse: Different rating curve
reCurse: I had a google sheet somewhere
miszu: if anyone is interested in the analysis: https://lichess.org/FE3qZZmk/white#84
reCurse: One sec
ddreams: completely free
StyllyMyle: wth
StyllyMyle: huys
AntiSquid: you missunderstand, generally would expect 2k RP to know openings better and how to react to trades / lower RP
StyllyMyle: someone please tell me why cant i use std::fing here
reCurse: So for rapid, 600 chesscom = 1200 lichess
StyllyMyle: i did import algoritm module
StyllyMyle: std::fing
StyllyMyle: find
reCurse: But then 1600 chesscom = 2100 lichess
reCurse: And the spread diminishes
ddreams: StyllyMyle, when you ask for help about an error, include the error message instead of spamming
StyllyMyle: ddreams ok
StyllyMyle: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, http://chat.codingame.com/pastebin/3a088d63-6e74-4734-af18-1eb04d143a32
AntiSquid: 1900++ forgot exact ranking on chess.com, how does that compare to lichess, did mix of anything from 15 minutes upwards
reCurse: Around 2200-2300
reCurse: Roughly, it's harder to translate because of much lower percentile
AntiSquid: for real?
ddreams: StyllyMyle std::find takes iterators
AntiSquid: i would expect 2200 - 2300 to be pro on chess.com O_O
StyllyMyle: if (std::find(trees.begin(), trees.end(), &tre) != trees.end())
{ // Element in vector. }
miszu: 2200 in chess.com you are a master level
StyllyMyle: if (std::find(trees.begin(), trees.end(), &tre) != trees.end()){
// Element in vector. }
reCurse: 1900 chesscom = 2200-2300 lichess is what I meant
miszu: official master title have that rating
miszu: maybe 2400
reCurse: I'm also using rapid distribution
AntiSquid: ya that's why i am surprised by the difference
StyllyMyle: Anything wrong in that code? trees is Tree class object vector and &tre is pointer to my treee
reCurse: The biggest problem is chesscom gives all time distribution
reCurse: And lichess gives recent distribution
reCurse: So it's possible the translation isn't the best
ddreams: do you have pointers in your vector?
ddreams: if not, then don't try to find a pointer
StyllyMyle: Wait shit
StyllyMyle: Yea
StyllyMyle: Basically it was my mistake
StyllyMyle: but its giving another err
reCurse: I'm just mapping percentiles dumbly
StyllyMyle: http://chat.codingame.com/pastebin/5dae7174-7cb2-4377-9bda-150f5cdcf800
StyllyMyle: Wait lemme send err
ddreams: what's the definition of trees?
Astrobytes: what's a tree?
miszu: if you want to improve in chess, doing puzzles is the way to go
StyllyMyle: In file included from /usr/include/c++/10/bits/stl_algobase.h:71, http://chat.codingame.com/pastebin/1490a7ee-d826-493d-8f0b-174a0bca191b
Astrobytes: An int or a Tree instance?
ddreams: Astrobytes it's kind of a big plant that grows in the forest
StyllyMyle: Yea tree is your simple class object
StyllyMyle: Tree is class
StyllyMyle: its definition is same as from starterAI
Astrobytes: ddreams: :smirk:
StyllyMyle: https://github.com/CodinGame/SpringChallenge2021/blob/main/starterAIs/starter.cpp#L26
Digginwings: a
Astrobytes: hang on, const?
StyllyMyle: btw thanks ddreams, you even wasting this time for helping this fella :')
ddreams: error: no match for ‘operator==’ (operand types are ‘Tree’ and ‘const Tree’)
StyllyMyle: Whoa
StyllyMyle: Bruh
StyllyMyle: Im idiot
AntiSquid: maybe chess with random start would have been a more fun contest
ddreams: I saw Carlsen and Hikaru live playing the fischer chess world championship
ddreams: was fun
ddreams: err
ddreams: not hikaru
AntiSquid: anand?
AntiSquid: he Final Match! || Carlsen vs Wesley So || World Fischer Random Championship (2019) GAME 1 ? this ?
ddreams: actually, it was Hikaru in 2018
AntiSquid: isn't 2019 the first official one?
reCurse: I think random chess may be more interesting to computers than humans
reCurse: But shrug
ddreams: I think it's more interesting because there's less focus on preparation/memorization of opening
ddreams: s
reCurse: I heard good players comment on how some random openings were broken
ddreams: that's why they always play both sides
reCurse: Ah, right.
reCurse: Missed that thanks
reCurse: Still a point though
reCurse: You play both sides on UTTT but it's still a broken game
AntiSquid: look at that kingside castle :D https://youtu.be/spj5to6PgLI?t=183
reCurse: lol
Jameson.Bryant: RodCool
ClockSort: RodCool?
struct: coin toss
AntiSquid: Automaton2000 clean up chat
Automaton2000: i like how you can see other people's solutions
reCurse: Pervert
Astrobytes: :D
Astrobytes: alright afk, back later
Nerchio: cya astro
Digginwings: lets go
Nerchio: btw guys a tip
Nerchio: if you dont look at last battles history you usually win more
Nerchio: during a submit
AntiSquid: lol
Nerchio: idk maybe it helps someone
ClockSort: i found that if you don't submit your bot then you can imagine it doing really well!
struct: if you dont submit you cant lose
Smelty: wait wHat
reCurse: Schrodinger's submit
Smelty: well i was watching my bot and it won the first 17 battles, so-
Smelty: but then again now it lost a ton so
Nerchio: rip
Nerchio: now its too late you already looked at it
Smelty: oh no
Smelty: better resub
AntiSquid: where are you laptop cat ?
Smelty: h-hi mr antisquid
AntiSquid: ah still silver
Smelty: :(
Smelty: im getting close though, top 100
AntiSquid: go go laptop cat !
Smelty: i've already consistently beaten the boss but i lose against other s
Smelty: :0 thanks
Ajaiy2: My past code was on ~950
Smelty: length or rank
Ajaiy2: Rank
Smelty: ah
AntiSquid: if you promote everyone above you you can wreck boss and promote lol
Smelty: lol
Ajaiy2: But code is <400
Smelty: i literally won the first 17 battles-
Smelty: my code is 822
Smelty: 100 lines of code is dedicated to messages
Smelty: im gonna toggle around some scorings and hope that it will improvE
WolfDarrigan: I've found you typically only lose the first 10 battles if your bot crashes
WolfDarrigan: Pretty sure it starts you off at the bottom of the league then does some ELO magic to place you
AntiSquid: how much do the messages slow down your bot Smelty ?
Smelty: well its performing regularly 0-1 millis so i dont think time is a problem
reCurse: It samples every 10% of the leaderboard for the first 10 matches
Smelty: really?
Smelty: i won all first 10-
reCurse: Then uses that to give your starting score
WolfDarrigan: oooh, interesting
Smelty: yes, very interesting
Ajaiy2: OoOOooOO
Hasuzawa: because well the rank itself is a sorting algorithm
ClockSort: I am exceedingly interested.
Smelty: alr imma double the score bonuses for knight moves and seee what happens
reCurse: This is only based off years of empirical observation
ClockSort: I often lose the first n and win the first 10-n matches
Smelty: lol
reCurse: Exact algorithm has never been given out
Smelty: brev now my bot is tryna spam knight moves
ClockSort: consecutively, I mean. Which supports the idea of incremental opponent percentile bands
Smelty: interesting. https://www.codingame.com/share-replay/554270312
Smelty: red gives double the bonus for knight moves compared to blue
Smelty: more testing is needed to validate if it is actuallly better
Ajaiy2: Frame 116
Smelty: yes?
Ajaiy2: Did you just...?
Smelty: ?
Smelty: also my bot is playing based on the hueristics i gave it
Smelty: i don't actually know a good strat
Smelty: https://www.codingame.com/share-replay/554274044 huh a tie
Nerchio: there's a certain pattern in this game
Smelty: e?
Nerchio: the more stupid bugs and the dumber my evaluation i rank higher
Smelty: confused
Nerchio: don't ask me i don't understand either :D
reCurse: Quick add more bugs
Smelty: y'know what, im submitting my knight-crazy ai
Smelty: its a bug but i don't care
struct: oh no
Smelty: help! im being repressed!
**Ajaiy2 sees bugs flying all over the chat
**Smelty swats away a couple bugs
**Smelty dies in a writhing mass of bugs
Smelty: *game over8
AntiSquid: here's another one for you Nerchio: randomly add your sun count to your opponent sun count for the eval :D
Smelty: LOL
Smelty: randomly sell your trees based on a random number generator
Nerchio: AntiSquid that might actually work :astonished:
ClockSort: @smelty I'm doing that and it's currently rank 164
ClockSort: randomly selling your trees seems to be nearly optimal play
Cjx_1: tell the bot the game ends 2 days earlier :P
Smelty: clock lol
Smelty: cjx lol
Cjx_1: gotta really mess with these blasted spirits lol
ClockSort: set richness=0 for all cells. that might help
Smelty: such smart
ClockSort: because the center isn't as good as it seems
Smelty: welp my knight move algo doesnt really care about them nutrients no more
Chainman: debugging this :((((
Smelty: F
Cjx_1: anyone one find much success focusing on offensive or defensive play, or is everyone mostly focusing on self optimizing?
Smelty: or you can add more bugs
ClockSort: noobs debug. pros rebug.
Chainman: :innocent:
Smelty: Cjx_1: i focus on attacking with knights
Smelty: and other sh
Ajaiy2: I decide to go safe and optimize my previously "messy" code
ClockSort: see if you can promote your knight to a queen
Smelty: o.o
Smelty: yea thats real smart clockk
Smelty: lemme google
Smelty: "Can you promote knights in Photosynthesis"
- rofl:
Ajaiy2: NO
ClockSort: it took me two days to notice that knights can't move on hexagonal boards
Smelty: LMAO
Smelty: i do one in each direction
reCurse: hex chess :thinking:
Chainman: :thinking:
struct: its a thing
ClockSort: of course it's a thing. probably 4d hex chess is a thing too
Smelty: my rank just dropped by 400 :(
Smelty: https://www.codingame.com/share-replay/554284881 my trees barely shadow each other
Smelty: o.o
struct: just ignore shadows
Smelty: confused confusion
Chainman: I'm trying to grow dormant trees :(
Smelty: Chainman good bug!
LLG: I scrapped my beam search and wrote a quick if/else bot in 30 minutes
Smelty: only add them to your array of candidates if they are not dormant
Smelty: llg o.O
LLG: let's see this one get gold before my beam search does
Chainman: You mean feature
Smelty: rebug, my friend, rebug
LLG: imagine writing if/else bot with bitboards lol
Smelty: me who has a scoring depth 1 if/else bot
Ajaiy2: Which might just be the thing I am doing right now
Ajaiy2: @LLG
Smelty: c a y g h t
LLG: I already had bitboards from my beam search bot
LLG: I had a BeamSearch class that has a Run method, which returns a Move
Smelty: lol
LLG: so I just commented the whole class out
LLG: wrote an IfElse class that has a FindBestMove method which returns a Move
LLG: then plug it in the same place
LLG: already performing better than my old bot lmao
Smelty: tbh without comments showing me what is what i would have 0 idea what my code is doing
Smelty: it has been confirmed; my bot likes triangulating
LLG: https://www.codingame.com/share-replay/554286220
LLG: ok
LLG: what the heck is my if/else bot doing
LLG: and it still won lmao
Smelty: lmao
Smelty: i recommend that you do not plant next to urself
Nerchio: very impressive bot
pmor: LLG, I'm about to do the same. My beamsearch is horrid.
Smelty: also if my bot has 0 sim and tons of if/else does it count as if/else
LLG: pmor, yeah, my beam search can't go really deep nor wide
Smelty: methinks you stole the nutrients llg
LLG: and my eval is bad
BlitzProg: I'm trying to add more if/else things to check, but I'm running out of ideas
BlitzProg: am 230 gold
Smelty: wHat
ClockSort: try using else/if instead of if/else
Ajaiy2: Nope, if else did not work for me
Smelty: *cries in 300 silver*
Smelty: clock thats a great idea
Maliamnon: 77% and #9 in silver. What are my chances?
Maliamnon: :)
Ajaiy2: Never thought I would go into the pit of beamsearch
Smelty: sample of if/else here: https://snipboard.io/R27fqo.jpg
Smelty: *else if
BlitzProg: considering trying a beam search with all of the good ideas I have found so far
Smelty: maliamnon if you beat my bot first attempt i would say 80%
Smelty: else, 40%
Smelty: oop you lost https://www.codingame.com/share-replay/554292750
struct: 1 battle is the perfect benchmark
Maliamnon: ;)
Smelty: lols
Smelty: i normally fight 10 battles vs myself before sub
Smelty: but i beat him by a fair margin
struct: 10 is still low
Smelty: i dont have a battle sim so thats what i do
Smelty: i MANuaLly submit 10 times
struct: poor servers :(
LLG: I know what my bot was doing
Smelty: lol
Smelty: llg yes?
LLG: I miss a pair of parentheses
struct: cant relate LLG
LLG: so instead of (a + b) * c
Smelty: see? bugs make hte dream work
LLG: it did a + b * c
LLG: which messed up my COMPLETE eval
Smelty: BUGS MAKe the DrEam work
Smelty: lol
LLG: and it still performed better than my beam search
LLG: idek
Smelty: lol
Smelty: poor beam search
ClockSort: `i==19` should never exist in any code ever
Smelty: why not
ClockSort: too magical
Smelty: i have it in my code like 4 times
Smelty: if (i==19 || i==22 || i==25 || i==28 || i==31 || i==34) {
currentScore+=6; }
ClockSort: :laughing:
Smelty: basically if corner give point
LLG: why don't make a collection of corners
LLG: then if corners.contains(i)
Ajaiy2: You could have just written (i - 19) % 3 == 0 && (i - 19) > 0
LLG: to save yourself some headache
Smelty: too lazy
ClockSort: put those values in a vector. then... for(auto& v : vec) if(i==v) score+=6;
Maliamnon: or just the number of 'can't be interrupted' sun directions
Smelty: lolz
ClockSort: it would be nice to have all the corners in a vector, eh? seems like you could use that in a couple places.
Smelty: too lazy to write
Maliamnon: gotta account for the orange layer being all grey you know
Smelty: jsut like i dont write a neighbor calc
ClockSort: I made a vector of vector of vectors of all the distances any tile can reach from any tile
Smelty: nice
Nerchio: :fearful:
Smelty: i have a for loop in a for loop in a for loop in a for loop to eval if its a valid move
Maliamnon: i may or may not have hard-coded the seed-throwing array
Smelty: >:(
LLG: this submission looks promising
struct: :scream:
LLG: maybe I could hit gold with this
Smelty: ooh?
LLG: tfw 30 minute of work paid off more than 4 days
Smelty: imma resubmit as well
Smelty: lol llg
Smelty: i spent days writing an if/else
Smelty: then complete destroyed it and rewrote an if/else scoring
Smelty: it couldnt even beat my old bot for 2 dyas
actualCoderTrevor: ClockSort https://imgflip.com/i/59erhc
Nerchio: lol
LLG: my if else basically does
Smelty: actualcoder nice
LLG: if (canComplete && shouldComplete) complete
ClockSort: haha nice
Smelty: lol
LLG: else if (canGrow && shouldGrow)) grow
LLG: else if (canSeed && shouldSeed) seed
LLG: else wait
Maliamnon: else if (canWin) win
Smelty: if (canComplete && shouldComplete && opponent want complete) complete
Maliamnon: looks like i'm stabilizing in the top 10 of silver, and my lunch break is over. boo
LLG: competing with a few coworkers and some of them are in top 100 gold
Smelty: https://snipboard.io/DX9m6J.jpg
LLG: monkaS
WolfDarrigan: if (!giveUp(you) && !letDown(you) && !runAroundAndDesert(you))
Smelty: im losing ranks, in 800 now :(
Smelty: wolf yes my bot has monty python, quotes, and rickroll
Michael_Howard: Smelty ClockSort why are corners better?
Smelty: *by quotes i mean rick and morty
WolfDarrigan: I saw that, it is majestic
Smelty: Michael cuz they can have sun 3 days outta 6 at min
Maliamnon: your bot really likes those edges, huh Smelty?
LLG: I'm above silver boss
LLG: gold here I come
Smelty: Malia perhaps
Smelty: it likes triangulating
Smelty: llg u just got noped-
LLG: lmao
LLG: I'm at 26%
LLG: so I'll prob be fine
Smelty: o
LLG: my bot does really badly on the board with 2 massive unusable patch of soil
pmor: LLG youre really convincing me to go if/else...but I really want to know why my beamsearch is so bad :(
LLG: I lost 3 times to Konstanta
LLG: rip
Konstanta: :grin:
Smelty: F
LLG: if anything I could just leave my bot at top 10 silver and get pushed to gold
LLG: like I did last year
struct: its the wise choice
Queuebee: why can i only increment an int 500k times in a while loop in C# in 100ms when struct can sim 1M+ games in 100ms
struct: increment an int 500k times?
struct: something is wrong lol
Hugo-NL: :O
Queuebee: http://chat.codingame.com/pastebin/35987735-0eed-4453-958a-ecad69978811
Queuebee: ignore whatever the text says
struct: you are checking time every iteration
struct: thats expensive
Queuebee: a
Queuebee: that makes a whole lot of sense
Queuebee: thanks Lol
pmor: 1M+?!?
Smelty: ok thats it im making my bot less craz
Queuebee: do you then check time only every ?? 50k sims? but then you'd have to mod 50k your amtofsims every iteration
Nerchio: struct im checking time when processing every state if I run out of time
Nerchio: its bad?
struct: you dont want to check every state
struct: do it like N states
Nerchio: is it better to do count % 50 == 0 && timecheck?
alchemsti: yes
alchemsti: :D
alchemsti: checking time takes some time
LLG: modulo is cheaper than getting the current time yes
struct: (number of states & 4000) == 0 && checktme
alchemsti: You don't need to be that precise you should give yourself a little buffer
Nerchio: ok cool
Nerchio: i will do that although will not change my bot too much
Queuebee: is mod more expensive than &
miszu: I thought modulo is expensive
Queuebee: or is it just a synonym
struct: modulo is less expensive than checking time
struct: I use modulo on shadows
alchemsti: any simple math operation is pretty cheap
struct: and its fast
Smelty: yes.
miszu: I remember in UTTT you try to avoid modulus when you can
struct: bench/repeats:20_mean 12.9 ns 12.9 ns 20 bench/repeats:20_median 12.8 ns 12.8 ns 20
alchemsti: (mod, &)
Queuebee: I'm trying to put my trees in uints, one for each size and then 2 for each player but now idk how to make them grow l0l
RoboStac: mod to a constant is usually optimised to something much better too
alchemsti: I don't know what UTTT is but there's usually not a lot of reason to avoid module
alchemsti: modulus
miszu: Ultimate Tic Tac Toe
miszu: the OG for MCTS and optimization
Smelty: e
Smelty: llg be close
Smelty: to promote
LLG: I've been around top 10 since 15%
LLG: it's now 52%
miszu: breaking the top 100 is super difficult now
LLG: I consistently lose to Konstanta
miszu: masochism level
LLG: if Konstanta get boosted up I have a high chance of going up as well
LLG: I only lose to him and sometimes the boss
LLG: I just saw my bot cut every tree on turn 17 in IDE
LLG: maybe I should write another if to prevent that lmao
LLG: I should also make my bot say something
LLG: maybe the bee movie script
Queuebee: oh my lord the optimization on % is insane with constants LOL
miszu: struct only 20 pos difference ;)
struct: maybe I should stop chatting and start coding
Smelty: yes code more bugs
LLG: was there a win rate checker anywhere?
LLG: I vaguely remember seeing it in chat
mpoo: Any idea why I might not be able to join the Discord (I get "Unable to accept invite")
RoboStac: http://cgstats.magusgeek.com/app/spring-challenge-2021/
LLG: I want to see my 0% winrate against the boss lmao
LLG: ty Robo
RoboStac: might not pick you up if you aren't in gold
LLG: yeah I'm not in top 1k rn
Roxxx: hello world! ;)
mpoo: You must be eager to go gold LLG, I saw you at the top of silver.
LLG: I'm gold now
LLG: I also got a bug where it said I was top 2 gold
mpoo: yeah, you just disappeared. congrats!
LLG: when I was promoted and my medal updated, but not my rank
struct: rank only updates daily
miszu: struct do you use the number of trees of certain size in your heuristics?
struct: heuristic?
miszu: eval
struct: yes
struct: but my eval is simple
struct: I dont take into account shadowing myself
miszu: right
miszu: I haven't use frequency yet
miszu: I hope it will help bump my score a bit
King_Coda: KalamariKing
King_Coda: Where are you KalamariKing
King_Coda: I'm going to ping you as much as possible KalamariKing
King_Coda: Fine I'll just message you then, KalamariKing
elderlybeginner: anyone eager to point my bot weaknesses? https://www.codingame.com/replay/554348380
elderlybeginner: I'm out of ideas what can be fixed
UndercoverToad: can I get mean?
RoboStac: is opponent choice a weakness?
actualCoderTrevor: Mean and green
UndercoverToad: db dr doesn't even place the first tree near the center, wow
aangairbender: I dont get why dbdr is not the 1st place
UndercoverToad: he is
aangairbender: I meant why he is 1st place
aangairbender: I watch his games and I dont see anything special
reCurse: Rude
KCrown: UndercoverToad ! u were like 4th last night ... what happened?
dbdr: I carefully hide my strat ;)
aangairbender: thats really how master should do
UndercoverToad: others are getting stronger and I run out of ideas
UndercoverToad: (╯°□°)╯︵ ┻━┻
dbdr: UndercoverToad why would the center be better?
aangairbender: nobody should understand where that strength comes from:joy:
UndercoverToad: and codejam on Saturday, why don't I just dump this contest?
UndercoverToad: because of the richness
KCrown: and dbdr is hidng his ideas? :P
aangairbender: dbdr do you still have beam search?
kovi: dbdr to chop early and get more points
Whatar: I would say that you also cast more harming shadows if you have tree in the center
Whatar: *trees
UndercoverToad: but also receive
RoboStac: yeah, but he has more sun and still gets a t3 tree in the middle by day 7 which is well before it would be chopped
Whatar: true UndercoveredToad
Whatar: you are not chopping the tree, you are completing his life cycle
KCrown: i have a pretty good idea of hwo to sedd and grow ... but for chopping its basically random :(
Whatar: very important
KCrown: chopping at the end works sorta ... choping after the other guys chops sorta works too ... but I don't have a good idea other than that
miszu: and dbdr is winning by a lot. He has almost 2 pts true score
miszu: difference
UndercoverToad: elderlybeginner i don't even see anything really horrible from your bot. except the endgame where you upgrade to a size 3 tree directly before the game ends (2 points lost)
struct: dbdr is first because he did yavalath
UndercoverToad: the trees at 17 and 30 aren't perfect
elderlybeginner: this contest is all about tiny equilibriums, cost and incomes
reCurse: So where is MSmits then :thinking:
UndercoverToad: the maps are too random, he can't book the opening
reCurse: His kryptonite
elderlybeginner: UndercoverToad that's what bothers me - I don't see any big mistakes, would be easier it there is something obvious. I will look into endgame thou
dbdr: struct my yavalath is weak
struct: I think the game had a lot less richness 0 cells during testing
UndercoverToad: or share another game on a different map
struct: I know dbdr, I just wanted to advertise
UndercoverToad: and with a less cruel opponent
dbdr: :+1:
aangairbender: I have a feeling that there is a better approach than beam search
UndercoverToad: probably there are
aangairbender: it is basically greedy algo
UndercoverToad: i just don't see the approach or lack the skill to pull it off
struct: Is Illedan still participating?
dbdr: it's not greedy
aangairbender: with beam size 30 its pretty greedy:joy:
dbdr: greedy is best move at depth1
elderlybeginner: https://www.codingame.com/replay/554358461 me (330) against (100) went horrible - this can be material for analysing
dbdr: width 1 ;)
ZarthaxX: yep 1 :P
UndercoverToad: i see that you get your first lvl3 tree very early on
aangairbender: I dont know how to make eval for not planting seed when its not good, I mean planting seed should give some profit in future, but maybe its better to wait 1 day and seed in a lot better spot
Ajaiy2: Im really happy with my neighbor searching algorithm using recursion and greedy algorithm
UndercoverToad: and sell it in round 7 already
UndercoverToad: that's way too soon
ClockSort: round 7 is guaranteed too soon
KalamariKing: King_Coda I ran away
RoboStac: elderlybeginner - you fall way behind on sun generation (by day 12 you have gathered 59 sun to his 84)
UndercoverToad: even when it was 2 turns away from casting shadow to the opponent
KalamariKing: King_Coda but I am back now
KalamariKing: King_Coda I saw your dms thanks
KalamariKing: King_Coda
elderlybeginner: yes, have the same observation, growing 3 and complating is over-factored
King_Coda: LOL dude we're literally in dm's right now
UndercoverToad: oh, robo doing stats that aren't shown
KalamariKing: King_Coda it appears we are
elderlybeginner: i think I have to implement future shadow influence into scoring as well
aangairbender: anybody wanna share his beam width one again?
aangairbender: cause I am losing confidence
UndercoverToad: 40
KalamariKing: i think Nerchio was using like 200 or smth
aangairbender: I tried 30-50, have 30 in arena now
aangairbender: tuning the eval functions is so boring
aangairbender: I am even thinking about returning to heuristics bot:grimacing:
UndercoverToad: that's even more boring
UndercoverToad: if it wasn't a contest, i would have left the game 3 days ago
aangairbender: I wanna make it to the legend during contest at least once
Ajaiy2: Me too
UndercoverToad: that's also my goal
aangairbender: haven't you?
UndercoverToad: i always want to reach legend
aangairbender: day before this contest started, I writed MCTS for uttt and it went straight to the legend from bronze. No extra tuning/heuristics/teccles
UndercoverToad: that one was a nightmare for me, i'm bad at performance tuning
aangairbender: I was lucky, there was need to work on performance in my case
aangairbender: rust doest its job
aangairbender: does*
aangairbender: was no need*
Smelty: ugh rank 15, so close
aangairbender: my fingers are broken after fulltime typing the code jeez
miszu: I implemented a check so that I don't waste my grow moves on tree at the end of the game and I sitll have 50% win rate with my submitted bot
ClockSort: it's so difficult to tell what is an improvement
miszu: in theory it is an improvement
KCrown: ok time to submit hoping to get to about ~300
ClockSort: my new bot lost 9 out of 10 vs the old one
miszu: don't grow trees that will be impossible to chop chop
miszu: KCrown come get me bro
ClockSort: then it won 9 out of 20. it ended ahead 26 to 24
miszu: I am 343
ClockSort: i'm 196 now, dropped 30 ranks in an hour without a resubmit
Smelty: lol.
Smelty: *F
Smelty: sighs i still can't promote so close though
Smelty: 17
miszu: Smelty which league?
ClockSort: smelty if you wait long enough it'll happen randomly :D
ClockSort: when they opened gold I was 200th place silver. I did nothing, and an hour later I was promoted.
miszu: submitting now. Hoping that new logic will do wonders
XeroOl: can everyone please let me into gold, thanks in advance
miszu: BossBoot: You shall not pass
miszu: *throws seeds*
ClockSort: Fly, you fools! *falls into forest*
KCrown: well it must have been buggy seemed to have lost 300 ranks lol
Ajaiy2: Yes! My greedy algorithm doesn't have any bugs at first try!
Smelty: rank 7....slowly creeping up
miszu: BossBoot is getting nervous
miszu: or w/e his name
Smelty: bossoot is silver boi
miszu: Bossoot gonna do his magic tricks
Smelty: imma spam battles vs him to bring him down :)
XeroOl: boss out of time
Smelty: brev just beat boss by almst 30 points
Smelty: https://www.codingame.com/share-replay/554379231
miszu: GG
Smelty: eep just lost
Ajaiy2: What is your average points, Smelty?
Smelty: ~120-130
KCrown: well good news is the logs caught the error ... now I have to figure out why this var is 0 when it shouldn't be :P
Smelty: edit: 115-140
Smelty: and can go up to 170
Chainman: This is a bug day for me
Smelty: rebug good debug bad
Ajaiy2: This is a bugless day for me
Chainman: Now I'm seeding where my opponent is at lol
Smelty: lol
Smelty: i save possible moves in array and compare them to see if its valid
Smelty: :)
Chainman: and apparently that sets you to wait automatically for that day.
**Ajaiy2 has been saved by bitarrays
**Smelty has been killed by bitarray
Chainman: *how
Ajaiy2: Why tho
Chainman: I did bits something
Chainman: well the problem was I wasn't updating my opponent arrays every day.
Smelty: lmao oof
XeroOl: is anybody good at rust
Smelty: w
Smelty: die boss die
XeroOl: I've hit one of those rust problems
Smelty: im literally behind by only 0.5
XeroOl: I guess I need to go to the rust discord
Smelty: oof
Smelty: https://www.codingame.com/share-replay/554384125
aangairbender: XeroOI you can ask. What rust problem?
Smelty: yes
XeroOl: right now my function signature is this: fn validActions(self: &Self) -> impl Iterator<Item = Action> {
XeroOl: but I need to add a lifetime to that iterator
Smelty: yees
XeroOl: and I don't know how to do that syntactically
Smelty: this might help https://stackoverflow.com/questions/30422177/how-do-i-write-an-iterator-that-returns-references-to-itself
Smelty: idk though
KCrown: size0 size0 size0 size0
KCrown: should be size0 size1 size2 abd size3
XeroOl: it's not yielding references to itself
XeroOl: the moves aren't stored anywhere and I'm not returning references @smelty
Smelty: h m m
Smelty: i have no idea about rust, sorry
KCrown: ok cleared unit testing ... resummitting ... I dont know about you but Im sorta excited
aangairbender: so why you need to return reference?
aangairbender: and you can write fn validActions(&self) instead of fn validActions(self: &Self)
Smelty: o.O
XeroOl: oh you just saved me a bunch of time lol
XeroOl: I want to return an iterator that generates the valid actions
Chainman: My bot just seeds and waits lolol
XeroOl: but that iterator needs the lifetime to be tied to &self
Smelty: ;
ddreams: It's spreading its wild oats, Mr. Chainman
ddreams: it's just a phase
Smelty: lol
aangairbender: XeroIO it can be either lifetime of &self or lifetime of the function itself
XeroOl: how do I set it to either?
XeroOl: I just don't know syntactically where to put the lifetime on an impl return type
Smelty: herrrm
King_Coda: "There is only so much in the tank" -KalamariKing
aangairbender: XeroOl https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=03e2993a85d7a955cab7130dca4c99e3
aangairbender: why you need lifetime for Iterator abyway?
XeroOl: my iterator is more complicated
aangairbender: which type of Iterator do you have?
XeroOl: I'm using std::iter::from_fn
XeroOl: and I've got a closure that pulls in a reference to some of &self's fields
aangairbender: then of course you need lifetime of self
aangairbender: wait a minute
XeroOl: yeah I know that, I just don't know the syntax
XeroOl: `impl Iterator<'a, Item = Action>` didn't work
miszu: well my rank didn't move by a bit lol
Smelty: aaaaa rank 3
XeroOl: aha, the rust discord helped me with the syntac
Smelty: if i gain one rank ill be above the boss-
aangairbender: impl<'a> ?
miszu: eulerscheZahl grats being top 10 again
XeroOl: it's -> impl Iterator<..> + 'a
Smelty: o.O
aangairbender: oh I see
XeroOl: I would have never guessed it's a +
XeroOl: well, they told me '_
XeroOl: and the compiler can infer what lifetime to put, since there's only a &self in the arguments
aangairbender: nice
XeroOl: problem solved, thank you very much
aangairbender: its so much easier in c# lol
aangairbender: just return IEnumerable<Action> and call yield new Action(..) inside
XeroOl: yeah, yield would simplify the logic here too lolk
aangairbender: year ago I tried to use from_fn to generate actions and it didn't work for me
XeroOl: I have to use like a state machine
Smelty: huh
aangairbender: to play a random action I need to obtain all of them, so no difference to iter then collect or just push them to vec
aangairbender: Smelty rust is fun
XeroOl: yeah maybe I should be doing that lol
XeroOl: that would make things a lot easier
XeroOl: I was just thinking that I could collect later, but it's hard to go from vec to iterator
XeroOl: so I might as well do it the cool way first
aangairbender: just do some mut vec and provide enough capacity for not moving content around
aangairbender: (I dont do that yet tell to do so lol)
XeroOl: I'm fairly sure the iterator will use less memory since it never lists out all the actiuns
XeroOl: but I have no idea how much a closure costs, so who knows
aangairbender: but how you know amount of actions?
aangairbender: you need to do iter.count()
XeroOl: you could just iterate twice lol
XeroOl: stupid slow, but saves memory
aangairbender: iterate twice means apply action calculation logic twice
XeroOl: either that or iter.collect()
XeroOl: into a vec
aangairbender: I would go for generatig actions only once for the sake of perfomance
XeroOl: surely it's possible to count actions
aangairbender: I can reuse same vec for generation actions every time
aangairbender: so no memory overhead
XeroOl: ahh that's a good idea
XeroOl: I should just do that lol
XeroOl: screw this whole impl iterator nonsense
XeroOl: lol thanks
aangairbender: that was exactly my situation year ago
XeroOl: well, thanks for passing the wisdom forward lol
Whiskee: how long is the 407 timeout?
Whiskee: it's been a while D:
aangairbender: we need more rust in gold
jacek: you can get more rust in iron
aangairbender: true:smile:
XeroOl: technically I'm on the leaderboard right now for lua
XeroOl: which is really funny
XeroOl: according to codingame, that's my best language
Smelty: TwT my things still stuck in top 10
aangairbender: I guess its same as python? just for heuristics stuff, nothing perfomant
XeroOl: yeah just heuristics, and bad ones too
Smelty: im on the leaderboard for java
XeroOl: that's why I'm still in silver lol
XeroOl: java actually wouldn't be that bad for sim
XeroOl: I certainly would have an easier time writing it lol
aangairbender: I would choose c# over java, but actually rust seems pretty easy to use after a little experience. As a bonus we get performance like c++
ClockSort: is there a way to see how much I'm timing out in the league?
ClockSort: i'm stopping my search at 90ms but still seems to be intermittently timing out in the IDE
XeroOl: codingame's language server for rust is bad
aangairbender: I like that I can express my types very precisely in rust
struct: why?
XeroOl: doesn't show compile errors until you press play and wait 2 seconds
ddreams: ClockSort do you have any output after the timeout?
XeroOl: yeah the types are awesome
Smelty: [me to gold] lemme in.
Smelty: LEMMMEEE INNNN
struct: well it needs to compile to get the errors
XeroOl: other languages will red squiggly you when you have a syntax error
ddreams: true story
aangairbender: I just use VSCode and write my code in a lot of folders and files, then python script bundles everything into one file
aangairbender: dont use IDE at all
XeroOl: that's probably a good idea
aangairbender: CG IDE I mean
XeroOl: I just don't have the extension working
XeroOl: that links CG to the local file
Astrobytes: just copy paste it in
aangairbender: rust-analyzer is working for me
ddreams: I don't either, but I'm very fast at select all/copy/paste
ddreams: and it's relatively rare that I do it, compare to build and test it locally
struct: copy paste it until you paste it in chat
XeroOl: ahh, I should get all that working lol
XeroOl: lmao pasting it into chat
aangairbender: I wrote a task for VSCode that bundle all into a single file and then copies everything into my clipboard
ClockSort: @ddreams looks like no, it says this: http://chat.codingame.com/pastebin/db4b1142-7594-49b8-aaa0-811dfcb6fd11
ddreams: can you delete your own message? :p
Astrobytes: it's happened a few times
Astrobytes: Nope.
aangairbender: so I just need to press Ctrl+V on my CG IDE
XeroOl: how did you do that chat.codingame.com/pastebin thing
Astrobytes: It's automatice
Astrobytes: *automatic
ddreams: ClockSort might be a crash
ClockSort: maybe the "is waiting" means I sent WAIT?
aangairbender: if you paste a large amount of text here it will create pastebin
ddreams: when I do an exit in the code, I get the same output
Smelty: :(
ddreams: Game Summary: ddreams has not provided an action in time. ddreams was disqualified. Round 0/23 ddreams is waiting
ClockSort: whee! 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412
Smelty: oof
ClockSort: not enough digits :P
Smelty: p=pi
ddreams: not enough newlines
Astrobytes: ^
aangairbender: /me
Smelty: yes
ClockSort: interesting, thanks @ddreams
jrke: like this
jrke: http://chat.codingame.com/pastebin/73ffb58d-69a1-42ae-85e6-dfd3968eaec4
**aangairbender doing backflip
ddreams: nice little ascii representation
**Smelty hits head while doing backflip and dies
aangairbender: (╯°□°)╯︵ ┻━┻
**ddreams (╯°□°)╯︵ ┻━┻
ddreams: table throwing competition
Smelty: (╯°□°)╯︵ ┻━┻
**Smelty slaps himself around a bit with a large fishbot
**Smelty himself
Smelty: *dies*
Smelty: sighs i just can't get promote
Hugo-NL: :o
Hugo-NL: I am completely rewriting my code, will see if can promote :D
ClockSort: rewrite the rewrite
Smelty: lol
Smelty: yo dawg i heard you liked to rewrite..
Smelty: do ide battles affect boss score
Ajaiy2: I am rewriting a better and cleaner code
Ajaiy2: And I am liking it
Smelty: congrats
Smelty: my code is dirty
Ajaiy2: Thanks :smile:
Ajaiy2: I guess spring challenges need spring cleaning
Smelty: hi
Smelty: reeeeee i'm 0.2 below boss
Smelty: edit: 0.14
miszu: improve your code
miszu: it shouldn't be hard to beat silver
ItsNotABug: Just wait for other peeps to bump you above
Smelty: miszu :(
miszu: show me the reply of the boss
Smelty: i been trying...but i'm just a code noob
miszu: I'll find something that can help
Smelty: replay of boss vs me? ok
Smelty: https://www.codingame.com/share-replay/554428726
Smelty: erm
miszu: you won that example..
Smelty: yes
Smelty: i just took the one i had
miszu: ok show me a game you lost then
Smelty: im trying to find one
MSmits: lol
MSmits: doesnt sound you have a lot of problems :)
Smelty: ah https://www.codingame.com/share-replay/554439101
Smelty: well im stuck at 1st/2nd place rn
Smelty: and its very sad that i cant promote
MSmits: ah yeah that's annoying
MSmits: I'm in silver still also. Havent coded yesterday. WIll experiment more.
KCrown: are you not in this forest battle smelty?
Ajaiy2: Im coding right now
miszu: honestly I don't see any big mistakes
Smelty: yay i promote
Smelty: *happiness noise*
ClockSort: congrats!!
Ajaiy2: Congrats
Smelty: KCrown i am
Smelty: im the red boi
**Ajaiy2 pats on the back of Smelty
Smelty: im ahead of the bot by 0.01 haaha
KelvinAndHubbles: wait, did you just beat the bot because someone else also beat him down by a considerable amount lmao
Smelty: hol up https://snipboard.io/cwOREm.jpg
Smelty: yes kelvi
ClockSort: Legend, here we come!
miszu: yee boi
Smelty: tommrow
Smelty: i will probably get stuck in gold
Ajaiy2: REEEEEEEEE
Ajaiy2: OOF
Smelty: considerin how tuff it was for me to get in gold
Ajaiy2: MMM Yes
miszu: it's weird because I expected the silver bot to be dumber
bvego: mad kudos for you guys that have the patience to get to those high leagues
Smelty: lol.
Smelty: bvego i literally waited for 2 hours to get promote after i submit xD
miszu: are you gold now?
miszu: I want to try your bot
Smelty: yep
Smelty: rank 1130
Smelty: so u have to follow me or something
miszu: that's why
Smelty: here lemme resubmi and see
miszu: i am following you
Smelty: ok now saerch my name
Smelty: u r going to beat me
KCrown: does it take about 2 hours for ur new code to reflect in ur rankings?
miszu: I can't
Smelty: considering that your rank is way better
miszu: cuz you are below 1000
miszu: I mean abvoe
miszu: but you can play my bot
Smelty: https://www.codingame.com/share-replay/554448079
KCrown: hehe Smelty
Smelty: u should be able to go to "followed poeple" or friends or something
miszu: I did but it caps at 1000 ranks
Smelty: weird
miszu: my replay beat the s out of you :D
Smelty: yes
Smelty: after all i am rank 196
Smelty: *1186
miszu: yeah but I only do if/else
miszu: struct hum hum... ;)
Smelty: i do if/else score
Smelty: aaand i have 0 idea what it means
KCrown: looks like my new code is moving me on up ... 726 now
Smelty: hm yes if i am stuck in the depths of gold i can resubmit without fear
Smelty: i can't go lower than 1210
ddreams: as more people get into gold, you can indeed go lower
Smelty: yes
Smelty: but whatevs im stuck at the bottom
Chainman: I'm screwed, I can't go even depth=1 in my beam search now.
Chainman: I've made it slower I think.
Smelty: oof
Smelty: sucks
King_Coda: I see you all have gotten chummy with each other
ddreams: inadvertently made a heuristic bot
Smelty: o.o
Smelty: i should teach my trees how to dodge shadows
pmor: Chainman I'm having the same issue. :(
ddreams: give them red pills, smelty
King_Coda: Red p-pills :flushed:
King_Coda: https://lmgtfy.app/?q=red+hot+pill&iie=1
Smelty: oh my
Smelty: oh gosh
Maliamnon: Smelty - dodge shadows or create shadows, that is the question
Smelty: to be or not to be
Lucky30_: one mistake and i am back to the stone age
Smelty: the classic question
Maliamnon: currently have a bug
Smelty: oop
Smelty: bug good
Maliamnon: eval says score estimate is 160, then i complete a tree, then my eval says 128
Maliamnon: gotta go find those 30+ points. i dropped them somewhere
ddreams: King_Coda I was talking about the matrix, but I guess you have more experience with those?
Smelty: programmers debug, pro-grammers rebug
ClockSort: ^^;
KCrown: good news this time its not my code but my addition that is bad ...
King_Coda: Haha, not yet ddreams
Smelty: yep matrix
Smelty: red or blue pill.....
Smelty: default ai noob ;)
Smelty: https://www.codingame.com/share-replay/554461646 hmm yes
Maliamnon: ahhhh, my eval thinks i can chop the same tree twice
Maliamnon: silly self-replicating trees
Smelty: lol
KCrown: good way to get some extra points
ddreams: should get a job as a bridge salesman
Maliamnon: lol
Smelty: what does it mean when it says dead code
miszu: the flow will never reached there
ddreams: it's longing for the fjords, so to say
ddreams: it's not dead, it's just sleeping
Smelty: hmm
miszu: it's like coding this:
if (false){//dead code}
Maliamnon: http://chat.codingame.com/pastebin/3475a323-9980-4395-97c4-5a300cda2506
Maliamnon: i++ is unreachable/dead ^
Smelty: yess
Smelty: the weirdest thing is when i fix the dead code, my ai is worse
Smelty: ;-;
King_Coda: lol imagine incorrectly placing a semicolon
Smelty: cOuLdnT bE mE
Smelty: its because i put break in the wrong spot
King_Coda: lol imagine being in the top 1500
Smelty: is me
King_Coda: gg smelty
Maliamnon: does 1496 count?
King_Coda: yes
Maliamnon: if so, hello three.
ddreams: hi four
King_Coda: i'm uh
King_Coda: not
King_Coda: i'm 35541st
King_Coda: ...for now :smiling_imp:
ddreams: that's impressive, considering there's only 6511 contestants
King_Coda: I meant on the website dummy
Maliamnon: smallint underflow maybe?
Maliamnon: ah
King_Coda: 35541 out of 2.5 million
ddreams: not a very interesting statistic, imo
Maliamnon: I thought you meant contest. I'm 2037 on site
King_Coda: lol imagine not understanding what i was saying
King_Coda: :stuck_out_tongue:
Maliamnon: :)
ddreams: I imagine that happens often
Maliamnon: bazinga
King_Coda: Not really, you guys just assumed I was talking about the contest
ddreams: For obvious reasons
King_Coda: Eh....
King_Coda: I don't see it
ddreams: I'm not surprised
King_Coda: :cry:
Smelty: lol
Chainman: wth I'm getting some weird timings
Smelty: hmm really
Chainman: beam_search taking 0.01 ms, but for all of them it takes 98ms, but it's only like 15. Math doesn't add up.
Maliamnon: Chainman - I got smashed pretty hard over the head by GC taking 10ms every generation
Smelty: f in the chat
Chainman: Yeah the individual searches are fast, but the total is completely large. I don't know how to fix that.
Chainman: wdym Maliamnon
Chainman: Cause like this is just a simulation I'm doing in my beam search.
Smelty: weIrd
Maliamnon: do you create lots of objects?
ddreams: I like that I can tell my bot is doing something clearly stupid
ddreams: need to fix my last day
Lowz: lol
Maliamnon: i was creating too many game states, and it took too much time to deallocate all the failed beam children when i moved on to the next depth. Chinman
Maliamnon: Chainman, not Chinman lol
Chainman: hmmmm It's in python so far, was planning to rewrite in c++ later.
Chainman: OOOH, it's my generator creating the next states that is taking a lot of time.
Chainman: oops, cause I was starting the timer inside and it already generated the state oops.
ClockSort: relevant username
Chainman: :angry:
Foxboy: :grin:
Chainman: Is there another way besides making a deepcopy for the next state?
Chainman: only other option is to somehow make the state more efficient.
ddreams: depends on your algorithm, but sometimes updating/undoing state is possible and very fast
Chainman: But don't you need the states to be saved in every node individually in the graph.
Chainman: else if you alter a state in another node it will affect all the nodes in the graph.
Maliamnon: all the interface needs to know is your next move. up to you what other tracking you want to keep
A2CHisPerfect: Chainman, I am new to this kind of contests. Could you give me an advise. Do you generate board states for each possible actions and then select an action with results in a highest score/sun? Could you advise some algorithm to look at?
Chainman: I am also new lol
ddreams: A2CHisPerfect that's a good way to start
ddreams: generate all the states, and score them
Chainman: but yeah as a new person that is what I'm doing.
ddreams: you don't need to search into the future
ddreams: in this contest
ItsNotABug: Yh golden rule in these things tends to be avoid creating new objets as much as possible. Make everything you might need up front in the first round, and keep re-using them
Astrobytes: ^
LostDragon: New problem somehow: I'm getting timeouts from the verry start of the AI, and after benchmarking (read: printing the timeing after each and every line), i saw that the moment i start reading from standard input, i'm somehow blocking for 2500ms, and after that, it's a timeout... do you guys have any idea?
ItsNotABug: Im reworking mine atm to create all possible moves up front so I never create a new Action object :D
ddreams: LostDragon I assume it's something strange you're doing
Chainman: whoah, that does work for if just looking at level=1 search
Chainman: I could do that and it will work
Chainman: But I don't know how I would ever scale that to a larger depth in my search algo lol.
Chainman: But definitely will do that, thanks
Astrobytes: Yes, if you want to search deeper, you will need to create a pool of nodes/actions/states whatever you're using to be efficient. Memory alloc is slow and you don't get much time on CG, you want to avoid allocation during a search.
LostDragon: I'll try from that point of view for the sake of the argument: I narrowed down my prints to right before, and right after a `std::getline()`, and the time difference is now ~2411ms
reCurse: To be pedantic, it's not memory allocation that's slow, it's the garbage collection
Astrobytes: Yes, true
ddreams: LostDragon try the starter code and see if you have the same problem
dbf: LostDragon you need to start time measurements after first input line is read
Astrobytes: I don't mind a bit of pedantry where appropriate ;)
ddreams: Allocation is also kinda slow tho
reCurse: Not really
ddreams: Depends on what you call fast, I guess
reCurse: Most managed languages only allocate on a stack
OlivierRivoyre: Hi, noob question: does there is an interrest to go multithreaded for better perf? Or the CPU is limited to one core?
reCurse: So it's literally headPtr += size
reCurse: Compaction is where it gets dicey
dbf: OlivierRivoyre no
reCurse: literally = basically
OlivierRivoyre: thx dbf
ddreams: sounds strange, recurse
reCurse: Why
ddreams: my mental model is that the managed languages mostly allocate on a heap
LostDragon: I'm still blocking for about ~2251ms, but i'm not timeout-ed... i do realise the precomputations i was doing were kind of heavy, but that still sounds harsh
ddreams: could be wrong of course
reCurse: Stack as in method of allocation
reCurse: Not allocating on the stack
reCurse: Sorry for ambiguity
ddreams: Yeah, but still
reCurse: You can allocate as a stack on the heap
ddreams: I know
ddreams: So you're saying the "newest generation" is stack based, and then on compaction/gc it's going to a more heap-ish allocator?
Maliamnon: LostDragon - are you starting your timer after reading the first input? You might be timing the ref
Paluke: What position do you need to reach to advance to Gold?
reCurse: Details are usually implementation dependent
miszu: 1st in silver
reCurse: The gist is there's no point using a complex allocation scheme
reCurse: Since you're going to run through compaction anyway
reCurse: So might as well go stack based
GrekMaR: @Paluke above 'Bossoot" so not 1st but above him :)
reCurse: Now the devil is in the details, C# has 3 levels of object lifetime
reCurse: So that's where you need to dig deeper
reCurse: But the rule of thumb is allocation is cheaper than native languages usually
reCurse: GC however is where kingdoms burn
Foxboy: :grimacing:
LostDragon: I time before and after the very first read. in the starter code for c++, it looks like cin >> numberOfCells; cin.ignore();. And i time before and after that
ddreams: Well, the cheap part is that it doesn't need to ask the system to allocate more memory (if it has already asked for it)
Cjx_1: anyone trying homebrewed algorithims other than sims or searches? Like only first principle, static if elses?
reCurse: Same can be said for C++ though
ddreams: however, it still needs to manage pointers etc
LostDragon: would it be easier to talk on discord?
ddreams: and memory fragmentation etc
reCurse: Memory fragmentation is a collection concern
reCurse: Not an allocation one
ddreams: LostDragon before the first read is when you wait for the system/opponent to make his turn
reCurse: C++ has no collection so it becomes an allocation concern
Nerchio: finally
Nerchio: i gave my bot a tiny brain
ddreams: I mean, you don't get memory fragmentation on a stack
CPomSa: @Cjx_1 That's what I'm doing too. It took me as far as silver but I'm out of ideas now ;-) What about you?
ddreams: C++ "has" collection as in it's the job of the system to do it, but it can take a long time to free up memory
LostDragon: When i said that i time before and after, i meant that i take the high resolution time right before the first read, right after, and print the difference. Is that what my 2200ms were about? if so, i'll have to look elsewhere for the cause of the timeout
reCurse: Right. I should have said compaction.
ddreams: Yes, LostDragon, start your timer directly after the first read, before is meaningless
ddreams: It will look like it times out if you crash too
pmor: There's a trick you can do to determine if you crashed or not
King_Coda: it's called alt f5
pmor: ?
ddreams: ignore the troll, what's the trick?
LostDragon: i hate that i had to look it up, and still didn't get it after trying it out
King_Coda: or ctrl shift slt f5 if you're on chrome
Astrobytes: King_Coda: give it a rest will you
King_Coda: Astrobytes!
pmor: http://chat.codingame.com/pastebin/728d315f-d093-4769-be61-242a003e587e
King_Coda: I was just educating our fellow coders on the beauties of desktop shortcuts
ddreams: that's a nice trick, pmor
King_Coda: alt f5 force refreshes your page, that usually helps
pmor: codinggame doesn't have the debug libraries, so you don't get a usable callstack. But it does print out the offsets
Astrobytes: You're pushing a kick King_Coda
ddreams: nice just to know it was a crash vs killed by a timeout
King_Coda: :zipper_mouth:
Bigcodrrrrr: im so confused im new to codingggg
Bigcodrrrrr: can someone help meeee
ddreams: just keep at it and it'll get easier
Astrobytes: Trollometer go brrrr
ddreams: hmm.. ya
ddreams: just sitting here fiddling with constants and watching the brutaltester :p
ClockSort: @Bigcodrrrrr i think your keyboard is sticking at the end of words (another relevant username)
King_Coda: Don't worry Astro, I taught him how to correctly ask questions
Bigcodrrrrr: can someone tell me how to solve the descent?
ClockSort: try going down
King_Coda: ClockSort
King_Coda: Come on, at least TRY and be helpful
King_Coda: http://chat.codingame.com/pastebin/1a12393c-3b65-4778-bd88-f777c868d1ed
King_Coda: there's your solution
AntiSquid: that puzzle has hints
ddreams: yeah, not good to just throw solutions at people imo
Astrobytes: He got a kick for it
AntiSquid: if you cant do descent this site is way too advanced for you
miszu: he got kicked?
miszu: when can he come back?
AntiSquid: i mean its a for loop
Astrobytes: Yes. He was warned previously. Whenever he likes.
miszu: can't he simply refresh the page and be back?
AntiSquid: he can
Astrobytes: Kick is second warning, ban is a little more final.
AntiSquid: kick == disconect
AntiSquid: from chat
miszu: just little
Astrobytes: You can still use the site. Just not the channel you're banned from.
AntiSquid: how are your bots?
Scarfield: terrible :'(
Astrobytes: My bot's sore, been sat on this hard chair all day
miszu: my bot can't reach top 300
Scarfield: just finished a monte carlo, its worse than just doing first action (after wait)
Scarfield: xD
ddreams: My bot's has improved in self-play, just pushed it into the arena to fight it out
AntiSquid: with mc you got to do many rollouts and take averages
TobiasA: if i could reach silver league before the end i would consider myself a winner
Astrobytes: Still no search for me Scarfield
TobiasA: i am tired of bronze
Astrobytes: Trying to get gold. Only because euler forced me.
AntiSquid: ddreams what are you doing?
Cjx_1: keep pushing :D try watching the matches of some of the top guys for ideas <3
ddreams: TobiasA show us a replay
miszu: Astrobytes you can reach it easilly
TobiasA: hm lemme try
Astrobytes: I was very close earlier
Scarfield: finished bitboard sim ealier today, and decided just trying MC since i wont take the time to do any better, but its so slow for some reason
ddreams: I'm doing a beamsearch, but it's mostly fiddling with the evaluation function
ddreams: Scarfield profile it?
Scarfield: too lazy :p
Astrobytes: I just find it hard to concentrate since I'm not really into the game
ddreams: I think it's interesting that you can reach top 20 without a search
miszu: for me what I am discouraged is that there is no clear heuristics
TobiasA: how do i get my replays
miszu: you can cumulates sun poitns but.. it's the points who wins
AntiSquid: do you think its the art at all ?
miszu: and if you foccus on points then all you will do is chop chop as soon as you can
ddreams: TobiasA there's a share button
TobiasA: oh
Astrobytes: AntiSquid: what about the art?
AntiSquid: i dont like the game mechanics, but wonder if the art affects my opinion overall
TobiasA: should i show a replay with catboss or?
ddreams: sure
ddreams: whatever you think is intereting
ddreams: *interesting
ddreams: oh my, I'm timing out a lot now
AntiSquid: ok not the art, the theme . its pretty art after all
AntiSquid: maybe its for tree huggers?
Astrobytes: Hadn't really looked at it, it looks nice.
Cjx_1: https://www.codingame.com/contests/spring-challenge-2021/leaderboard/global
^^ go there tobias, you can access anyones last battles there
Astrobytes: Just had debug mode on the whole time
AntiSquid: but i wonder if a different theme would be more engaging
Astrobytes: For who?
ddreams: debug mode is not so nice to look at, no
AntiSquid: anyone .i am sure it has some impact
ddreams: I think it's nice
Nerchio: true this time i actually see more on graphial map
ddreams: I like the game too
AntiSquid: admitedly my main issue is how the trees are cluttered together ... not much you get out of it
AntiSquid: the original game was more tactical
Astrobytes: I like the theme/graphics, not fussed on the game. Can't please all the people all the time right ;)
ddreams: I like that it's challenging something that's not a strength of mine... heuristics
AntiSquid: the art is nice, the theme fits the game, but it can affect your perception of it
Scarfield: i actually like that you can be competetive this game without a search
AntiSquid: this contest is def heuristics focused
ddreams: I have a lot more experience with optimization etc
pmor: I'm about to throw away my beamsearch and go heuristics
ClockSort: why not both?
ddreams: I know many places where I could get more speed, but I don't think it helps more than figuring out a better eval
HackingHues: how many move up when legend opens? is that publicly available info...
Scarfield: usually between 10 and 20 afaik
Beekeeper525: Hey I just started learning python any good coding lessons
Astrobytes: ^
AntiSquid: not best site for it Beekeeper525
pmor: well, my beamsearch is pretty trash. I probably have an error with it and I'm not seeing it
Astrobytes: No lessons here Beekeeper525, just practice
AntiSquid: tutorialspoint if you want to learn as you go Beekeeper525
Cjx_1: college, cheaper the better
TobiasA: do i just put the link of the replay?
HackingHues: jeez. alright that number is a little small. probably just going to stop now that I hit gold lol.
AntiSquid: top have beamsearch too, but they apply correct heuristics for pruning nodes
ddreams: hit top 500 gold then, HackingHues
AntiSquid: i have chokudai search which is somewhat like beam search, my heuristics and pruning are both crap
TobiasA: https://www.codingame.com/replay/554528947
TobiasA: oh like that
TobiasA: that's it
Scarfield: Beekeeper525 https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g great channel for learning python
mybk: why beam search and not MCTS ?
mybk: is there some advantage in beam search ? compared to MCTS
mybk: ?
AntiSquid: MCTS is fine, depends how you apply it
AntiSquid: minimax is fine too ... anything is fine, just have good eval
mybk: I added a lot of heuristics to prune
LostDragon: sassy
AllYourTrees: mcts is good if you don't know a good eval function. it just explores the state space uniformly randomly via the random actions. if you have a good eval MCTS will still explore the space uniformly randomly, which will result in you spending time searching bad states
ddreams: TobiasA try to avoid planting close to your own trees
AllYourTrees: beam search searches the state space fully based on your eval function. so if you have a good eval function, then it will limit its search to good areas of the state space
King_Coda: Hah, I beat orangesnowf0x in wood league!
TobiasA: the bot does it it did hard code my own strategy the dumb bot uses minimax and is still dumb
King_Coda: take that!
TobiasA: bruh i can't type
mybk: yeah but in this contest, it's kinda not helpful to simulate the game until the day 24, that's why I'am using an eval function with MCTS
Astrobytes: EPT mybk?
AntiSquid: you can stop early
mybk: EPT == ?
Astrobytes: Sorry, early playout termination MCTS
Scarfield: ealy propagation termination
AllYourTrees: (stopping the rollouts before the end of the game is reached)
Astrobytes: PropagandaField
mybk: yes I am only simulating 6 days
Scarfield: xD yea that is not what its called
Astrobytes: Or even not rolling out at all in some games.
AntiSquid: rank mybk ?
Astrobytes: Just gone or going gold I think
mybk: 1 in silver league, still playing though
Astrobytes: I think that's a definite gold
AllYourTrees: hypeeeeee
TobiasA: my bot can't simulate a day without timing out
mybk: yes I think so
elderlybeginner: my code is something like starter + 30 lines
AlMualem: guys which do you think is the simplest way to calculate the distance of 2 cells?
elderlybeginner: I don't understand how you strugle with simulating days in silver league
AntiSquid: haha elderlybeginner nice rank
AllYourTrees: people have different backgrounds?
ddreams: TobiasA it's hard to do minimax here
elderlybeginner: AlMualem with 3D cell naming
AntiSquid: you found good heuristics
JustRadChippy: How do I use the 'GROW' action in JavaScript?
AlMualem: vectors x,y,z?
TobiasA: what method do you suggest?
ddreams: evaluate all moves and sort them according to the score
TobiasA: yea i did that
ddreams: you can get to top 20 that way
ddreams: do it better :p
Astrobytes: AlMualem: https://www.redblobgames.com/grids/hexagons/
TobiasA: wait what
AntiSquid: you can use your code for enemy prediction and write a search bot elderlybeginner
TobiasA: but it isn't working for me
AlMualem: ok thats exactly the page i am looking right now...so i suppose i am in the right way! :P
ddreams: then you have to debug/improve
Astrobytes: AlMualem: https://github.com/CodinGame/SpringChallenge2021/blob/af44a865f6814131d25edc29357fc2dba5cec4a6/src/main/java/com/codingame/game/CubeCoord.java
AlMualem: ty man
Astrobytes: (last link is the relevant part of the game code)
ddreams: for example, it's much easier to not plant all your trees on top of each other with a heuristic
TobiasA: what is the best thing to use as a "score" for a move
elderlybeginner: AntiSquid, I bearly undestand what you mean :wink:
ddreams: TobiasA what would you consider if you played the game yourself?
XeroOl: maybe we should play the game ourselves
TobiasA: i used the actual score + sun /3 as the game says
ddreams: yeah, that's good for the final round
AntiSquid: you found good if/else conditions (= heuristics, educated guesses ...)
XeroOl: if you were to buy this as a board game, would you only be thinking about actual socre + sun/3?
ddreams: but before that, maybe you think it's better to have some trees than no trees?
ddreams: then give points for having some trees
TobiasA: hm good idea
elderlybeginner: AntiSquid, by "bearly" I meant enemy prediction and search bot
AntiSquid: search bot = algorithm to find best moves
Chainman: I did that thing
elderlybeginner: oh, that's what i have, an evaluating function
AntiSquid: enemy prediction = you try to guess what the enemy will do and use this to improve your algorithm to find best moves
TobiasA: so you mean i should make it that actions that lead to more trees after evaluation are better actions than the rest?
elderlybeginner: and that's a tricky part :joy:
AntiSquid: but a mere evaluation isn't a search ...
TobiasA: then it will just seed forever
XeroOl: you've over adjusted your evaluation
elderlybeginner: no, I'm not looking for anything, I just rate possible actions rating them in accordens of income - cost
ddreams: TobiasA yep
ddreams: that's a start
ddreams: you need to give some score to everything you think is important
XeroOl: TobiasA if you do trees before all else, you've basically changed your evaluation to: number of trees * 9999999 + score + sun/3
ddreams: It's actually good practice to start doing something like that
XeroOl: but you don't have to put # of trees before or after your evaluation function
ddreams: like can you make your bot do only planting?
XeroOl: you can pick a reasonable factor and then actually have the values mix
TobiasA: so with this method you guys are suggesting it means i myself has to have a strategy for the game?
XeroOl: yeah
XeroOl: even the simulation people have strong heuristics like that
TobiasA: tbh i have been avoiding that all this while
TobiasA: but i guess it is time
TobiasA: i can't stop at bronze just like that
Chainman: Is silver boss even hard :::::: yikes
XeroOl: I'm stuck in silver, so I'd assume the answer is yes
TobiasA: i have never gotten out of bronze in any game on this site
Momtaz: I'm using rule-based bot no search at all and can reach top 250. Understanding the game is important
Chainman: Yeah I'm in silver too lol
XeroOl: I just don't have enough time
Chainman: You will get there
XeroOl: this is mixed in with college exams
Chainman: hahahahahaha my first turn 3000 ms
Chainman: and it doesn't timeout
TobiasA: goodluck with your exams
AllYourTrees: ^
TobiasA: and silver league too
lpellieer: hi i'm in bronze and i'm wondering if i should use some kind of genetic algorithm to get better, what do you guys think ?
Chainman: ^
XeroOl: getting out of bronze can be done with just heuristics
ddreams: lpellieer sounds interesting
XeroOl: whether or not you want to is a different story though
Chainman: I got out of bronze with if-else
BrunoFelthes: I think that genetic algo is hard to deal when one action invalidate another
Chainman: and not really complicated, I think like 6-8 of them too.
HackingHues: you can also get out of silver with heuristics
lpellieer: okay i'll look into it
AllYourTrees: why are you doing this competition? to get as high as possible or to try interesting stuff?
ddreams: both
XeroOl: Writing deep heuristics just feels draining though
Momtaz: I have 72 if statements haha
TobiasA: i just want to get better at coding to be honest
Chainman: I'm doing it to learn graph algorithms,
lpellieer: both! i'd like to learn some new things while improving my code
Chainman: But it is too slow.
XeroOl: yeah, writing this stuff for codingame needs to be fast
TobiasA: i know i don't have a single chance of getting into gold
pmor: are bitboards required for fast sims in this challenge?
XeroOl: The sim I'm working on right now isn't a bit board
XeroOl: but it's not done yet
XeroOl: so I dunno if it's fast or not
XeroOl: @tobiasA What is the bronze boss doing that you aren't?
XeroOl: that's usually a good way to get out of a league
XeroOl: figure out what it's doing that you aren't
pmor: I'm getting ~2k sims/ms. Not sure what other people are getting
TobiasA: the boss is planting and growing in the beginning then spamming complete towards the end
XeroOl: why not do that, but bias toward the center where there's more points?
xk9c: yo guys is the best way to improve programming skills (for me java) to play this coding game?
XeroOl: or cash out a daty earlier than the boss, to get the nutrient points?
AntiSquid: sure
Chainman: My bot harvested all trees and forgot to seed in middle of game ::
ddreams: xk9c if you enjoy it, yes
XeroOl: @xk9c I dunno about the "best" way, but it's certainly a good way to get practice in
xk9c: yes it makes fun if i can solve it :D
ddreams: then get going
XeroOl: okay I'll get going, goodbye codingame chat
TobiasA: thanks for the advice XeroOl and ddreams
ddreams: looking forward to see you in silver, Tobias
TobiasA: k i'll try my best
Astrobytes: Yeah, you got this
Chainman: let's goo
TobiasA: wait when is it ending i forgot that there is a time limit. remains 3 days
Chainman: Yeah ther eis a timer.
Chainman: need get gold today
Scarfield: you can change the date on your pc to get some extra time
TobiasA: woah
Chainman: ^ :grimacing:
Chainman: big brain time
Lysk: XD
TobiasA: i'm sure you are trolling
TobiasA: wait but that won't change when the contest ends
Scarfield: of course :)
Chainman: YOu need to change the time on the CG servers actually
TobiasA: what if someone uses tensorflow?
TobiasA: and deep learning
TobiasA: and just gets the whole screen
TobiasA: and maybe does reinforcement learning
TobiasA: so he/she doesn't need data
TobiasA: if only it was that easy
pmor: You would need the tensorflow libraries which codingame doesn't provide.
mybk: 100 ms and 100kb file size not enough for that
avdg: probably with pre training
baypoint1: c++ good to dive right into or is there something simpler i should master first?
TobiasA: c++ is the simplest you can find out there
pmor: c++ is anything but simple
TobiasA: hehe
TobiasA: i am joking
pmor: if you don't have much experience, I would suggest javascript or python
baypoint1: closes 10 hour c++ course vid*
TobiasA: haha i feel you
TobiasA: been there done that
baypoint1: yea i have none, tryna make a career change
AllYourTrees: whats stopping codingame from providing pytorch or tensorflow?
TobiasA: atleast they allow numpy
TobiasA: so maybe someone could make their own nearal network library
Astrobytes: They had TF before iirc AllYourTrees, and there was some kind of MNIST-ish puzzle to do
TobiasA: then be a bot programming god
Westicles: Isn't TF slow? At least it seemed to be when I tried it a few years ago
Lysk: there was a TF puzzle a long time ago, it got removed (outdated libs), there isn't any benefit in having TF or torch since you hava to submit a single file bot (no reading weights)
AntiSquid: just the one puzzle and that was restricted lol
Astrobytes: But it was python2 only, when they ditched that the python3 never got it
AllYourTrees: oooh interesting
Lysk: many have tried NN on the platform, I had a script to generate .h files out of a TF network
AntiSquid: good question though, why don't they have the libraries at least? i understand why they don't have multiple file submits
Lysk: how would you use it?
Astrobytes: And Lysk is correct, there's no use with the time limit, you have to scrape replays/self-play offline and figure a way to get the weights in to your CG bot
AllYourTrees: ya maybe you could submit a zip of main script & weights?
TobiasA: someone could make their own a deep reinforcement learning bot then after playing every game they print all the updated weights then copy and paste it to the bot then do that 10,000 more times
AntiSquid: you'd have ready trained models easier ported
Lysk: TobiasA, that won't work, the bot has no memory in between games
TobiasA: yea thats why you transfer the new weights into your bot after every game
AntiSquid: AllYourTrees they don't like multi file submits, we don't have this at all on CG, would be useful
Lysk: I was doing: train offline on my computer, put the weight in file along with the rest of the code
AllYourTrees: gotcha AntiSquid
AntiSquid: lysk well which is easier using the library or writing your own forward prop code to squeeze inside your code ?
TobiasA: after this contest i have to learn how to get replay data to use for bots
AllYourTrees: could you paste the compressed bytes into a string in your python file and load it that way?
AllYourTrees: bytes of your weights i mean
Westicles: Not for a contest. There is a rule against obfuscation
AntiSquid: even for NN weights? :D
TobiasA: what is obfuscation?
AntiSquid: i doubt it
AllYourTrees: "Obfuscating your code as well as creating obstacles to its reading and understanding. "
AllYourTrees: hmmm
AntiSquid: well others submitted NN bots before in contests so ...
TobiasA: what is obfuscating?
Lysk: AntiSquid, right, import torch/TF, define network, assign weights from hardcoded numpy array then call predict. Indeed that would work
AllYourTrees: obfuscating means to make something hard to understand
Scarfield: obfuscation is basicly making your code unreadable, make another person unable to understand it
AntiSquid: you need to squeeze it all in 100,000 characters
AntiSquid: AllYourTrees
TobiasA: understood
easdasd: guys who likes my profile
AllYourTrees: Lysk and if your neural net is pretty simple you could just implement it using numpy arrays, i don't think you'd even need pytorch
AntiSquid: actually probably less than 100k, more like 90k i think there's some bug with character count in the IDE
AntiSquid: Python3 3.9.2 Includes NumPy 1.20.2, pandas 1.2.4, SciPy 1.6.3 768
AllYourTrees: AntiSquid hmm 100 kb... that'd have to be a pretty small network
AntiSquid: https://www.codingame.com/faq
TobiasA: i like your profile
TobiasA: i've always wondered what it'd be like if rockets use AI
AntiSquid: like spaceX ? TobiasA
AllYourTrees: gonna head out, see ya'll later
AntiSquid: bye
TobiasA: exactly
easdasd: guys who can teach me how to hack the nasa
AntiSquid: wrong site easdasd
TobiasA: what if starship used AI?
easdasd: ok i go on ashjkdfhjjkhhackerpro.onion
TobiasA: would it be more or less succesful?
WolfDarrigan: Pretty sure starship uses MechJeb
Lysk: recent exemple https://www.youtube.com/watch?v=bzy7yf_QLl0&feature=youtu.be america's cup, assisted hull design with DL/RL
Scarfield: has there ever been a rocket not using AI?
TobiasA: waaaht
Porsuk: can you cast a spooky shadow on your trees?
AntiSquid: what if cars used fuel ?
WolfDarrigan: Yes Porsuk
TobiasA: so all rockets use AI?
Porsuk: fug
Porsuk: back to the lab
TobiasA: i mean like for controls
Scarfield: TobiasA 11:15PM i'm sure you are trolling
TobiasA: no no no
ClockSort: @Porsuk yes you can
TobiasA: isn't the trajectory of a rocket pre planned?
pmor: They were doing that back in the `60s with Apollo
TobiasA: hmmmmm so they do use AI?
TobiasA: wowowowow
TobiasA: i guess i am a boomer
Nerchio: i lost twice to a potato
Astrobytes: They used Prune Arrays and cegimax to get to Mars you know.
Nerchio: :thermometer_face:
pmor: lol
cegprakash: same bot can end up with 150 rank difference in gold?
Nerchio: if its bad sure
Scarfield: oof xD
Lysk: yeah variance can be really high
cegprakash: Thx Lysk
ClockSort: @cegprakash I was 200th Gold and I resubmitted it to test this theory. Now I'm 324th gold (same code)
ClockSort: so, yes.
cegprakash: thx ClockSort
AntiSquid: you should know, it's not your first contest, it's a bit random
cegprakash: differs with games
cegprakash: especially this game has no fog
cegprakash: so I expected a less random
AntiSquid: i argue that WAIT with no inputs after is fog-like
WolfDarrigan: Stupid question: for folks doing simulations, do you carry over explored states from one turn to the next?
TobiasA: google said most modern rockets only use ai for inspection and checking for malfunctions
cegprakash: WolfDarrigan u only need the previous state
WolfDarrigan: Do you just continue on your simulation from that state?
jacek: tree reuse?
Whatar: Guys I need help, I downloaded cg-brutal-tester, I have the Refee.java file, how do I compile it? With ecplise it gives me an error
Nerchio: WolfDarrigan no
Astrobytes: Cause you need Eclipse not ecplise. Also... ECLIPSE?
Whatar: bro, I just downloaded it
Whatar: I don't use java
Nerchio: intellij community edition
Nerchio: you're welcom
Whatar: thank you I guess
Nerchio: anyway
Nerchio: if you ask questions like "what do i do, it gives me an error"
Nerchio: i will ask if you tried to restart
Whatar: ok bro I am gonna post the 98 lines error if you want
Whatar: I just think that I am doing it wrong
Whatar: I don't even know if I have to build the entire project or just the referee
Nerchio: you need to compile the referee with mvn compile first
Nerchio: it will give you a jar that you use for brutal tester later
Whatar: thanks
Nerchio: anyway i think the official referee doesnt work with it right of the bat
Nerchio: if you are trying that
Whatar: mmh yeah I was trying that
Nerchio: i sent you a pm
Roxxx: evening guys, anyone familiar with mySQL here?
ClockSort: yes
Nerchio: yes im familiar
Nerchio: nice language
Astrobytes: I think it's public domain now Nerchio, the compatible brutaltester version/referee
Nerchio: sadly cant code a bot with this
Nerchio: ok nice Astrobytes
TobiasA: i am coding my bot with css
Nerchio: actually if they gave you a database with board state mysql could be pretty good
ClockSort: I am using HTML1 but I'm still in bronze
ClockSort: I am using HTML5 but I'm still in bronze
TobiasA: definite win for me
TobiasA: i am using microsoft word
ClockSort: ooh, nice, I'm using WordPerfect for DOS 6.2
dbf: ufff, gold finally :joy: :tada:
TobiasA: bruh i am using BASIC
Nerchio: gratz dbf
TobiasA: congrats dbf
TobiasA: i wish i were that smart
Astrobytes: nice one dbf :)
Astrobytes: Nerchio: what's the point when it's already in the input?
Astrobytes: I mean, the DB already struggles
TobiasA: imagine if this site had 3d games
MSmits: wow... well that explains why I am doing so badly this contest...
MSmits: I was messing up nth element
MSmits: confusing 2nd and 3rd param
Astrobytes: ah, copied from struct
TobiasA: goodnight internet
cegprakash: rank 400 bot resubmit -> rank 550 -> resubmit rank 660
Astrobytes: TobiasA it does have 3D games
Westicles: instead of nth element I use 5th element with multipass
MSmits: huh?
struct: whats hapening?
Astrobytes: M U L T I P A S S ! Multipass!
Nerchio: so why are you guys using it if performance is not crucial here
MSmits: i am guessing it's a 5th element movie reference, but not sure struct
Astrobytes: MSmits: I think that's the error struct had
Roxxx: @cegprakash i feel you lol
MSmits: ahh ok
struct: Which error?
Astrobytes: And yes MSmits, that was
MSmits: std::nth_element(children, children + BEAM_WIDTH - 1 , children + childCount, [](GS const& a, GS const& b) -> bool { return a.eval > b.eval; });
Astrobytes: struct: " I was messing up nth element confusing 2nd and 3rd param"
struct: ah
MSmits: I had beamwidth -1 and childcount the other way around
struct: my mistake was something else I think
Astrobytes: Similar iirc
struct: took me a while to get nth_element at first
MSmits: I used it several times before, which makes it worse :P
Westicles: Ever figure out why g++ and VS give different answers?
struct: different algo
struct: same algo different code
Astrobytes: Implementation details matter #IDM
Michael_Howard: Is there a way to get back the seed of a previous game? (Assuming you didn't copy it)
avdg: in the arena?
MSmits: if it's in IDE, just set seed to manual and it will use the same seed every time. I think you can also extract it from a replay
Astrobytes: ^
avdg: in the arena there is a send game parameters to ide button
Astrobytes: Just make sure you're in MANUAL mode
Astrobytes: hi avdg
avdg: hi
Michael_Howard: In practice, didn't realise I was on Auto. :sleeping:
Michael_Howard: I need sleep
avdg: making progress in small steps atm
Astrobytes: Easy enough to do. (The mistake and the sleep :D )
avdg: wow
avdg: jumped to 22
avdg: in brons :p
Nerchio: nice man
avdg: never got better than 200 for now
AntiSquid: now do it gold
Astrobytes: You should be in silver soon avdg
avdg: dunno, I didn't beat the ai yet
avdg: but my ai is slightly more aggressive in seeding now
AntiSquid: look avdg there's a TS on the 21st spot of gold, your's should be 22nd :P
avdg: I didnt expect to make it in the top 100 yet
Michael_Howard: Just realised I haven't played a bot yet. That's crazy.
avdg: ?
avdg: I didn't code for at least 3 days btw
Michael_Howard: They opened the leagues without gatekeeping, just pick the first n.
avdg: and wasn't a lot on the computer in the weekend too
Michael_Howard: To keep safe the squirrels running the servers.
avdg: dunno if they can do preselect
Astrobytes: Michael_Howard: the bosses are actual players other than the Wood league ones
Michael_Howard: They edit them a little I think.
Michael_Howard: Take out word bubbles & such.
Astrobytes: Sometimes, if there is some random in there or messages
avdg: I wonder if the bots have spaghetti code
Astrobytes: yeah
Michael_Howard: So everyone isn't rickrolled by the boss for a week.
MSmits: never gonna give you up :musical_note:
Astrobytes: /kick
Nerchio: its not a mess if its all global :sunglasses:
AntiSquid: there's confirmed spaghetti in top 200 avdg
avdg: must be delicious :-)
MSmits: :spaghetti:
Astrobytes: Never understood the fascination with that Rick Astley tune, I would have picked Fade To Grey by Visage
MSmits: Visageroll doesn't have the same ring to it
Astrobytes: Especially given the viewer issues for some people at the start of this contest
avdg: maybe pick trololo
MSmits: that one is pretty cool
MSmits: mmh well after my fix: submit has 18 wins out of 20 battles, 2 losses are time outs :)
Astrobytes: Viroll. There. Fixed.
MSmits: think i may get to gold before bed
Astrobytes: Don't get toooo confident. I was 3rd for a bit
MSmits: hmm, well i did two tests in ide and beat boss twice
MSmits: 2 is good statistics
AntiSquid: got a good bot now MBits ?
MSmits: at least i have less of an embarassment AntiSquid
MSmits: but need to fix this timeout thing
MSmits: i do a timecheck after every depth level in bs, which is stupid
MSmits: need to check more often
struct: I need to figure eval
struct: (╯°□°)╯︵ ┻━┻
AntiSquid: less of an embarrassment ? what was so out of order
avdg: I don't even do brute force..
MSmits: AntiSquid my bot didnt do nth element properly, so everything i tried failed. Have to retry all my ideas =/
avdg: would be fun if ai loads are posted as well
avdg: dunno
AntiSquid: MSmits i had a lot of weird bugs ... so eh
Queuebee: struct thanks for teaching me x&2^n-1 is way faster than x%2 :D
Queuebee: struct thanks for teaching me x&2^n-1 is way faster than x%2^n-1 :D
AntiSquid: but after fixing them my bot doesn't do better than bugged version
struct: I teached you what?
Queuebee: oh i thought I was going to edit that with arrow-up excuse me
MSmits: yeah, but i spent half the contest with this bug. I finished beamsearch on the 2nd day and never knew
AntiSquid: stuff like adding my sun to the opponent's sun for eval :D
MSmits: spent a lot of effort testing my sim, without ever testing the beamsearch
MSmits: bot with timeout bug may promote. 35 games so far, no losses, only 2 timeouts
avdg: I think I have the beamsearch implemented twice in my code now
MSmits: 10th now
Astrobytes: (he's been working at this for almost 3 days now you know)
avdg: didn't debug it a lot
AntiSquid: struct threw legend chance away
dbf: MSmith, fix timeout and re-submit to have 100% wins :)
MSmits: nah, i am not jinxing it
avdg: I have bfs, and I have 1 test for that (just checks output)
struct: What do you mean threw?
MSmits: also just got real loss
MSmits: 40th game
MSmits: and i am above boss now :)
avdg: but meh, good quality code alone doesn't make one win
AntiSquid: why there's no bits emote
MSmits: you can just use 1 and 0
MSmits: what would be bits emote?
Astrobytes: 0000 0000 0000 0000
AntiSquid: :one:
Kolo9: for the people using beam/chokudai, anyone willing to share the "next state" they generate? do you look at every possible move combination for the day (with heavy pruning?)
AntiSquid: something like 0101 i guess
Kolo9: finally decided to build a sim but can't get it anywhere near my simple heuristic bot
MSmits: Kolo9 people will be doing it differently. Try to look at how to play the game efficiently and then try to translate that to pruning rules
MSmits: if you're going to just allow everything, every time, it's not gonna be a good bot
Nerchio: Kolo9 i spent half a day trying to make my beamsearch reach the same level as heuristic bot with 3 ifs
AntiSquid: :zero::digit_one::zero::one:
MSmits: state eval is hard in this game
AntiSquid: yes
MSmits: if you compare it to hypersonic for example, where bs is also good
AntiSquid: that's what i spent most contest on, i have the search done too
Kolo9: haha thanks Nerchio and MSmits, gives me a bit of hope
MSmits: hypersonic, you just count boxes destroyed with some decay to prefer early boxes
Astrobytes: I'd say it has more in common with the previous contest than HS
Queuebee: return myScore + myTrees - TheirScore - TheirTrees;
AntiSquid: Nerchio did you get a working search bot yet?
MSmits: "their trees" which size?
Queuebee: AllTheirTrees
MSmits: also does the board distribution matter?
MSmits: does it matter which day it is?
AntiSquid: what just tree count?
Nerchio: AntiSquid i am top32 i guess thats kinda bad :confounded:
avdg: no tree size?
Kolo9: that's the thing though..considering trees for eval is only necessary to help prune the search right?
AntiSquid: and your score includes sun ?
Nerchio: i have the dumbest line in my evaluation but i cant remove it
Nerchio: or it stops working
AntiSquid: tell us after contest lol
Nerchio: i mean
Nerchio: i guess thats fine
Nerchio: long treeBonus = levelZeroTreeCount * 5L + levelOneTreeCount * 10L + levelTwoTreeCount * 20L + levelThreeTreeCount * 30L;
WolfDarrigan: // We don't know why, but when we remove this comment everything breaks
Queuebee: I can't figure out how to check, if I have 4 longs representing the 4 levels of trees, how to find the tree at tile X
Nerchio: i wanted my bot to make trees it didnt work even with overblown numbers
avdg: console.log(42)
Nerchio: but yeah its there now
Nerchio: but i added that line when i had multiple bugs in my code maybe i can remove it now
Nerchio: probably not though
cegprakash: http://chat.codingame.com/pastebin/95058e87-ac4b-4afa-86a2-a040754e58d2
cegprakash: I mean same day
cegprakash: 22 in both places
AntiSquid: maybe there's something else that's weird in your code
Nerchio: && in for loop damn
Nerchio: i have never done that before
Nerchio: but in this game small changes can lead to disaster
Nerchio: experienced it a few times so
Nerchio: guess not a surprise
MSmits: 5 points above boss :grin:
struct: o.o
Astrobytes: Smits go brrr
Astrobytes: gz
MSmits: thanks
struct: grats
cegprakash: I'm adding brackets for precedence lets see
struct: Do you have synced beam msmits?
MSmits: yeah
struct: ChokudaI?
MSmits: nah
MSmits: I doubt chokudai or bs will make much of a difference
Nerchio: i tried syncing my beam and it was worse by like 10%
Nerchio: now i sync only the end
struct: beam was must better for me
struct: sync*
MSmits: it's going to be eval and opponent prediction
struct: i have choku just in case, I dont think it will hurt
MSmits: do you keep states of every move?
MSmits: say best x state of each starting move
struct: I keep bestState of every move
MSmits: did you test if this was better?
struct: it was marginal gains
MSmits: ah ok
CouscousAgha: when nutrients == 0 the game ends?
struct: no
MSmits: you still get score for richness
struct: and suns
CouscousAgha: but you still can cut trees with richness 0 right?
struct: yes
MSmits: so nice to finally see my bot spread out seeds properly
MSmits: it was continously dropping them next to trees
struct: nice
struct: Im going to add that :)
struct: Still didnt do it :(
MSmits: i didnt "add it"
MSmits: it just comes out of the beamsearch
struct: well from eval right?
WolfDarrigan: I still have an ugly static seed check that is separate from my search because it blows up my search too much :(
MSmits: well sure, I do have some shading stuff. Similar to what euler described I guess
MSmits: WolfDarrigan it may be good to have something like that
MSmits: You could eval all seed locations and then prune some
NinjaDoggy: I'm pretty sure just about everyone has some seed pruning technique
MSmits: mmh well i forbid my bot to have 3 seeds at a time
MSmits: other than that no seed pruning
Astrobytes: seed pruning - that is amusing
WolfDarrigan: A fair number of seed locations are nearly equivalent to others
NinjaDoggy: MSmits try 1 instead of 3 :)
WolfDarrigan: I limit the number of seeds as the game progresses
Nerchio: not really but its hard to tell how good they are if you dont sim opponent
MSmits: NinjaDoggy read closely, i have 2 max currently
MSmits: 3 is forbidden
MSmits: 1 might not be good
WolfDarrigan: currentState.getNumberOfTrees(0)<((24-day)/6)
NinjaDoggy: nah 1 is good :)
MSmits: do the best bots never have more than 1?
NinjaDoggy: pretty sure
MSmits: gonna check that
MSmits: thanks for tip
NinjaDoggy: i'm one of the best bots and I never have more than 1 seed ;)
MSmits: hmm ok
MSmits: I'm on that then!
Nerchio: some time ago limiting seed to 1 gave me the best results
Nerchio: like 75% win ratio vs previous version
NinjaDoggy: and it makes sense intuitively
NinjaDoggy: grabbing territory is pretty bad this game
MSmits: yeah it does, but i figured maybe if you have a lot of suns it could sometimes be worth it
NinjaDoggy: compared to sun effeciency
struct: interesting
NinjaDoggy: yea but you shouldn't have lots of sun :)
struct: Ill try it o.o
MSmits: right
WolfDarrigan: Welp, limiting it to one seed seems better already
MSmits: NinjaDoggy creating more competition :)
WolfDarrigan: haha
geppoz: I had limit of 2
MSmits: same, in some versions
MSmits: i wasnt sure
WolfDarrigan: Might be time to add seeding back into my search if I only seed when there are none currently out
geppoz: and I tought already too strict
geppoz: let's try one
geppoz: but now im going gold, maybe better not touch now :D
geppoz: 3rd place :D
geppoz: looool just after the boos
geppoz: ok, if not promoted now I will try with one seed max ;)
struct: ty ninja
struct: https://i.imgur.com/hTN3oOJ.png
WolfDarrigan: I was ~900 in silver, swapping to limit to one seed put me up closer to ~600
WolfDarrigan: Thanks Ninja
geppoz: struct brutaltested max 2 vs max 1 ?
struct: no max vs max 1
struct: max 1 vs no max*
struct: so 79 vs 21
struct: 100 games
geppoz: uh you had no max still? and so high :O
struct: yeah
ClockSort: i've hit that point where everythign i do worsens my bot :P
struct: and my eval is bad lol
struct: I dont take into account shadows at all
struct: on eval
WolfDarrigan: Time for a new bot, Clock ;)
struct: does brutaltester have a thread limit?
Astrobytes: either 4 or 8? It's on the repo I think
Astrobytes: (check it, don't take my word, I've been awake since 04.30
Astrobytes: )
MSmits: 4 games i think, but that's 8 bots running simultaneously isnt it?
geppoz: the brutaltester compatible referee is public?
Nerchio: i can only run 1 game at a time properly
struct: Nerchio I just remove time contraints
WolfDarrigan: I have to update my previous statement: I was ~900 in silver, swapping to limit to one seed put me up closer to ~150
WolfDarrigan: That wasn't a dial I had thought to crank
Nerchio: struct i will try i guess :p
struct: and i run it on wsl which makes my machine not lag so much
Nerchio: how do you remove time constraints? do you just set it to large
Nerchio: numbers
Counterbalance: -timeout 2000 works without patching the engine
Lucky30_: quick question everyone, can cells with richness 0 ever be all the 6 center cells? (index 0 to 6)
Counterbalance: in theory, yes
Nerchio: maybe you can find it out in referee
Nerchio: idk
AntiSquid: just need to find the seed for it :P
geppoz: look at the referee if there is any constraint
Counterbalance: there's max 10 stone cells
AntiSquid: there were some silly maps in OOC so i imagine there might be some here too
Counterbalance: they come in mirrored pairs, except for the center one of course
Lucky30_: thanks for answering
Counterbalance: it's such a small chance you can probably safely ignore it
mybk: I hope one day, CG add a feature that let you write a note for any submit you do, I would like to know in history, what value I changed and what I get like result
Counterbalance: git log ?
avdg: github's gist?
Astrobytes: There is a plugin but it's buggy
Lucky30_: Counterbalance thanks for the info, but i ended up managing that small chance anyways
Lucky30_: i have even given it an unexpected message to make my day in case i got that lucky
AntiSquid: do you folks generate the actions yourself or process the input ones?
ClockSort: i generate my own
WolfDarrigan: Generate them myself
struct: generate
Lucky30_: i guess it depends on if are making simulations or not..
MSmits: generate yes
Lucky30_: *if you are
MSmits: action generation is the first part of a sim
Astrobytes: I *can* generate but I don't need to right now
AntiSquid: just wanted to confirm it's slower to use the ones you are given :D
MSmits: lol thanks AntiSquid :)
AntiSquid: thanks for what?
Astrobytes: Slower?
Notter: How do people make CoC with completely black background?
MSmits: for letting us know :)
cegprakash: https://www.chess.com/analysis/game/live/14687217601?tab=analysis I just had a super funny game :D
AntiSquid: i meant you confirmed it for me
Astrobytes: Notter: by playing the contest
aropan: I used cgbenchmark for spring-challenge-2021 and now I get An error occurred (#407): "You reached the limit of plays for a period of time." when run code in web IDE. When will the limit end?
AntiSquid: thought it's just my code
aropan: Somebody knows?
Astrobytes: Hey aropan :wave: Yeah they reduced the threshold
Astrobytes: I'm not sure how many plays per how many minutes it is now
AntiSquid: takes me about 1 hour aropan
Lucky30_: AntiSquid and Astrobytes, for some reason, every time i see one of your messages, i get the feeling that you guys are brothers :sweat_smile:
Nerchio: aropan move to local gaming its easy with referee
cegprakash: with precedence I got rank 405 back @AntiSquid so may be some precendence issue
cegprakash: always safer to add brackets
WolfDarrigan: Found a seed that is _nearly_ solid stone seed=1084716259133342590
AntiSquid: Lucky30_ we are triplets, me astro and aropa n
Lucky30_: oOOOO thanks WolfDarrigan
Nerchio: wala please stop beating my bot down :(
Astrobytes: cegprakash: always resubmit to be sure
Lucky30_: AntiSquid lol
cegprakash: haha
Astrobytes: I'm serious tho
wala: sorry
AntiSquid: your sins are forgiven, may Automaton2000 bless you
Automaton2000: no, but would there be a problem daninja?
Astrobytes: really cegprakash, otherwise you can fool yourself into thinking something was better than something else. Contest leaderboard etc
AntiSquid: sorry for what ? lol
cegprakash: I am gonna trust the leaderboard when it shows I'm higher
Astrobytes: AntiSquid: See Nerchio's earlier comment
aropan: Nerchio: I sure that my bot is bad opponent for my bot )
NinjaDoggy: I hate how small hard code can insanely improve your bot...
AntiSquid: ya .. i prolly should go sleep
Nerchio: aropan ok i see that makes sense :)
NinjaDoggy: just made it so my bot doesn't complete until day 12... and the performance change is HUGE
AntiSquid: noted thx
NinjaDoggy: :joy:
Nerchio: hmm i sometimes complete at day9 and i wanted to change it
MSmits: yeah, i have it at 10 :)
ClockSort: is it a good or a bad performance change?
MSmits: should maybe up it
Nerchio: seems kinda bad most of the time to complete so early
ZarthaxX: NinjaDoggy for real?
ZarthaxX: thought putting hard limits was bad long term
Nerchio: i think 12 and up might be too late
ZarthaxX: not flexible
aropan: AntiSquid: ok, I am ready wait one hour, thx
Astrobytes: I think it's strategy dependent but from what I see *usually* early completion is bad
Lucky30_: i complete starting from day 16
MSmits: ZarthaxX it depends, if you are 100% sure it is always bad to complete early, it's good to hardcode it
NinjaDoggy: @ZarthaxX yea same... I feel sketchy about this one
MSmits: it saves time for your search
NinjaDoggy: 12 feels late as a hard cap
NinjaDoggy: but jolindien never completes before 12 so :/
ClockSort: :/
ZarthaxX: MSmits seems like it based on millions of replays
ZarthaxX: NinjaDoggy i have seen that top never does
Astrobytes: Like I said, it depends on the rest of your strat
ZarthaxX: or has one ever?
ZarthaxX: gained many ranks dogo?
NinjaDoggy: who knows yet 23% :/
AntiSquid: don't ping the space cowboy NinjaByte
AntiSquid: NinjaDoggy
AntiSquid: oops
NinjaDoggy: also my constants were optimized without this so i'm rerunning my optimizations
ZarthaxX: ah okey
Astrobytes: Don't worry, I just talk and no one hears
cegprakash: NinjaDoggy I changed the constant from 10 to 12 for me and I lost first 9/10 games
ZarthaxX: you have a param fitter? :P
ZarthaxX: :rofl:
MSmits: I hear Astrobytes
NinjaDoggy: :D
Queuebee: where do you put these hardcoded rules? in the eval?
ZarthaxX: i guess it cant improve bad bots then, F
NinjaDoggy: genetic algorithm where the individual is simply the parameters XD
ZarthaxX: nice
NinjaDoggy: (locally ofcourse)
AntiSquid: MSmits hear an astro voice in your head? :P
MSmits: always
ZarthaxX: do you think that in this game comparing bot against old version always yields something better overall?
Astrobytes: "jobbyyyy, jobbbyyyyyy"
Nerchio: what do you guys think about leagues with so many players maybe we should get like gold1 gold2 :D
ZarthaxX: compared to other games where optimizing for yourself is bad
NinjaDoggy: the constant for sure makes me lose less vs weaker bots
MSmits: ZarthaxX it depends on how varied your bot playstyle is
NinjaDoggy: won the first 24 games
ZarthaxX: mmmm
ZarthaxX: okey
ZarthaxX: holy nice
AntiSquid: ya Nerchio suggested and even staff were thinking about it
ZarthaxX: it's like a good skip for middle league then ninja
ZarthaxX: :thinking:
AntiSquid: was sent to dev null i guess
Nerchio: AntiSquid happy to hear it
struct: damn chat bug
struct: I want to scroll
NinjaDoggy: yo what if... you made it so that the bot only has that during submit :O
Astrobytes: It's really annoying struct
AntiSquid: Automaton2000 scroll for struct
NinjaDoggy: like it gets the time and checks if it's > 1 hour after submit :O
Automaton2000: could it be that you are trying to make a chat
Astrobytes: Yes. So stop getting pinged by AntiSquid
ZarthaxX: thought about that NinjaDoggy lol
ZarthaxX: changing behaviour for contest end
ZarthaxX: :D
Nerchio: turn on what after 1 hour?
Lucky30_: what happens when you are silver 324 and you submit a bot that only works 1/3 of the time????
AntiSquid: Automaton200 was on topic :O
MSmits: NinjaDoggy thats cool. You can also do this to submit a different bot right before end of contest
ZarthaxX: MSmits hi btw
MSmits: instead of submitting, you measure the time and change your parameters
AntiSquid: got to fix this move struct somehow
ZarthaxX: contest is not suited for you?
NinjaDoggy: yea :O
Astrobytes: Nerchio: any feature you like
NinjaDoggy: parameters for stomping weak bots
Lucky30_: you get to be rank silver 1892
MSmits: ZarthaxX not sure, i had a nasty bug that kept me in silver
NinjaDoggy: and parameters for edging out an advantage vs strong bots
ZarthaxX: oh you are in gold nice!!
MSmits: but top half of gold now
ZarthaxX: i also had a bug
NinjaDoggy: ok this change was definitely really good...
NinjaDoggy: 33rd now 36%
ZarthaxX: not marking grown trees as dormant
ZarthaxX: but got to 300 with that bug
ZarthaxX: :/
MSmits: oh thats bad but mine was worse
MSmits: my nth element was bugged
NinjaDoggy: lol MSmits' but was tragic :joy:
ZarthaxX: comparing bug levels lol
ZarthaxX: nooooooooo
ZarthaxX: D:
ZarthaxX: picking worst move?
MSmits: i spent so much time checking sim, that I never bothered to check that
cegprakash: I had 500 rank difference with an f letter
NinjaDoggy: nah that would be better because he would have caught it earlier LOL
AntiSquid: but your's didn't yield positive ranks MSmits
MSmits: no i had 2nd and 3rd parameters backwards
ZarthaxX: ;(
ZarthaxX: how is the order then?
ZarthaxX: just to check myself now :D
cegprakash: 0.9f vs 0.9 changed me 500 ranks
Astrobytes: Did you submit that twice though cegprakash
MSmits: http://chat.codingame.com/pastebin/3bea2e53-ddcf-4934-a7fd-52cc88d255b4
cegprakash: yep Astrobytes submission ongoing
Astrobytes: that's a float vs a double
MSmits: thats the right way ZarthaxX
cegprakash: that 0.9f thing I tried many times
cegprakash: I had other bugs at that time though
Lucky30_: cegprakash you dont stream anymore??
cegprakash: Lucky30_ I only stream on day 1
NinjaDoggy: @MSmits is nth element faster than making a heap?
Lucky30_: ow
cegprakash: don't wanna leak my strats :D
MSmits: how do you mean a heap?
Lucky30_: hhhhh
MSmits: do you mean sorting the whole array?
NinjaDoggy: like making a min heap to find the worst element
Astrobytes: Well, I don't know what you're doing in your code cegprakash but if that's something that helps then I guess you're making dodgy comparisons
cegprakash: coz I usually decide strats on 2nd day of contest
NinjaDoggy: min heap datastructure
cegprakash: but this time I have just decided something
AntiSquid: Lucky30_ hextree is streaming daily and he is about same rank so ...
Astrobytes: MSmits: You didn't do heaps in your studying?
Lucky30_: coool
MSmits: not sure how that works NinjaDoggy, but nth element is prettty standard for beam search
MSmits: it's faster than sorting at least
MSmits: i didnt Astrobytes
Astrobytes: Seriously?
MSmits: well maybe by a different name?
MSmits: describe heap stuff
Astrobytes: Heaps!
cegprakash: if anyone is interested in a trashtalk array here u go
cegprakash: http://chat.codingame.com/pastebin/13b0d2ae-fbee-47dc-8d2f-327e05cbd2a3
NinjaDoggy: https://en.wikipedia.org/wiki/Heap_(data_structure)
avdg: k, finally can beat the ai
NinjaDoggy: wait... is this a top 10 submit? :O
struct: all I need is []
avdg: but only tried once
MSmits: don't worry :musical_note: be heapy
AntiSquid: binary tree
Lucky30_: oO i love it cegprakash
NinjaDoggy: hard coding the turn 12 thing cna't be that good...
struct: I dont need queue vector or anything like that
ZarthaxX: cegprakash why did you have a bug with that f ??
Nerchio: NinjaDoggy you probably jinxed yourself
NinjaDoggy: :D
cegprakash: no idea ZarthaxX
ZarthaxX: NinjaDoggy WHAT
ZarthaxX: WHAAAAAAAAAAAT
ZarthaxX: *OP*
ZarthaxX: your bot is beast tho
ZarthaxX: :)
NinjaDoggy: :)
ZarthaxX: mcts?
NinjaDoggy: yea
ZarthaxX: simu
MSmits: nope, never done that heap thing
NinjaDoggy: simul mcts :)
ZarthaxX: gz dogo!
ZarthaxX: well deserved
ZarthaxX: you crazy :P
AntiSquid: top 20 :o
struct: simultaneous mcts?
avdg: bot in top 10 being hardcoded?
NinjaDoggy: yeah really took a lot of effort adding that extra if statement :sweat_smile:
Astrobytes: Seriously MSmits? But you did binary trees etc?
cegprakash: u can get to rank 19 in 50%?
MSmits: well sure, but not in my studies
Nerchio: avdg bots in top10 are usually made with many small dtails
ZarthaxX: NinjaDoggy i meant your whole bot lol
Nerchio: details
MSmits: just came upon that through cg
MSmits: binary tree is just tree with 2 children every time right?
ZarthaxX: cegprakash you mean you wanted to use doubles for more precision and used float?
ZarthaxX: so weird, maybe random
Nerchio: NinjaDoggy im coming for you
NinjaDoggy: :D
Queuebee: Is the initial loop ever different? I mean the neighbours
NinjaDoggy: you can't, you're using java ;)
FerrusDude: :O
Nerchio: just wait
Nerchio: day >= 12 easy
NinjaDoggy: LOL
Astrobytes: No Queuebee
Queuebee: great :D
Lucky30_: AntiSquid is this his account?? https://www.twitch.tv/hextree
Astrobytes: Why would it be?
AntiSquid: yes
AntiSquid: no
AntiSquid: wait
Queuebee: No clue, just a worry :worried:
AntiSquid: hm different
Astrobytes: FerrusDude :wave:
Lucky30_: ok
MSmits: went from 700 silver to 350 gold in a few hrs :)
Lucky30_: coool
FerrusDude: @Astrobytes :wave:
NinjaDoggy: MSmits nice! :D
Nerchio: did you try day >= 12 Msmits already
MSmits: i had it at 10
NinjaDoggy: he has >=10
cegprakash: MSmits going all the way for T shirt
NinjaDoggy: probably why :(
MSmits: should i make it to 12?
Lucky30_: i did the same.. from 324silver to 1887silver
FerrusDude: I'm just lurking, laughing, and trying to get my humble bot to Gold
NinjaDoggy: 12 seems pretty good :)
FerrusDude: :D
Lucky30_: just the wrong side
MSmits: allright, i'll change it
Queuebee: im gonna hardcode completes <= 12 now to get all those nutrients >:)
Nerchio: story of every submit -> start losing games around 100 and slowly crawl to top~25 then get beatdown by almost everyone
Astrobytes: Same FerrusDude: I don't like the game but I'll scrape it into gold somehow
AntiSquid: but will you stop there?
AntiSquid: i am gold now, slowly rewriting the entire bot
FerrusDude: I want to know why I can't harvest my opponents trees.
FerrusDude: :innocent:
Astrobytes: I will stop in gold yes.
FerrusDude: :joy:
AllYourTrees: gz AntiSquid
AntiSquid: what for? lol
FerrusDude: I think I may be facing a refactor too
AntiSquid: i was there since opening hahah
AntiSquid: thanks
AllYourTrees: oh getting gold?
Astrobytes: he's been gold for a while
AllYourTrees: oh lol
AllYourTrees: NVM then
NinjaDoggy: lol
ZarthaxX: Nerchio is it working for you too? LOL
Nerchio: well we will see i can do it every submit
Nerchio: i will start losing soon
ZarthaxX: yeah here comes impact
ZarthaxX: :(
Nerchio: just need to beatdown day >=12 out of top20
Trottel-Nit: Somehow I find it harder this time to get ideas for improvements. I'm not getting a grip on this shadow stuff and its consequences.
Trigger_Unit_Blue: hello everyone
Trigger_Unit_Blue: is it me, or is 'There is no spoon' very confusing?
Astrobytes: Play the contest instead, far less confusing...
FerrusDude: which one? :)
Nerchio: maybe my mistakes is that i didnt do day >= 12 everywhere in the code ;)
Nerchio: and sometimes does complete earlier
Trigger_Unit_Blue: I get weird messages like 2, 0 is not the right of 1, 0. expected 3. 0
Trigger_Unit_Blue: 3, 0
MSmits: that is indeed weird
MSmits: who is sending you these?
Nerchio: alines
Nerchio: aliens
Astrobytes: :rofl:
Trigger_Unit_Blue: this is a message in console output in the game There is no Spoon
FerrusDude: which version of Spoon?
MSmits: thought you meant this guy https://www.codingame.com/profile/8a2661f2158ed393896abd7e74810e417239132
Trigger_Unit_Blue: episode 1
Astrobytes: Just accept that there is no spoon and do the contest instead :P
Astrobytes: 5 losses in 35 games :(
Astrobytes: Way more now
MSmits: so you beat jolin dien 30 times !?
Nerchio: NinjaDoggy ok you got me :D
Astrobytes: I'm out for tonight guys and gals, see ya tomorrow
AllYourTrees: cyas!
MSmits: gn Astrobytes
struct: gn
FerrusDude: later Astrobytes
FerrusDude: Trigger_Unit_Blue - look at the grid very carefully
avdg: top 20 in brons while I just made an improvement for my bot...
MSmits: grats
Trigger_Unit_Blue: I just checked the forums and found my problem. It's asking for the node next to it.
Trigger_Unit_Blue: sorry, I'm still new to this site
avdg: just small tweaks to make my bot slightly better chooses
MSmits: Trigger_Unit_Blue thats fine, dont worry about asking for help
MSmits: you caught us at a special time, so things are a bit different. Two times a year we have a 11 day contest
MSmits: normally there will be fewer people online, but they will be more helpful
FerrusDude: I feel like it used to be bi-monthly
MSmits: used to be 3-4 times a year
FerrusDude: yea
MSmits: we do have a lot of competition on multis though
MSmits: just not official like this
FerrusDude: I try to do most of them
ZarthaxX: MSmits is the competition
MSmits: guys, is beamwidth 2000 good?
ZarthaxX: i guess
AllYourTrees: i think it needs to be over 9000 MSmits
ZarthaxX: euler has 50 MSmits
ZarthaxX: :D
MSmits: ZarthaxX in board games i am good competition and in some others, but mostly board games :)
ZarthaxX: i know
Nerchio: Msmits i have width 750 :s
MSmits: ah ok
ZarthaxX: trying 400 here
struct: i have 1600
Nerchio: it kinda works for me but if i could i'd do more :P
MSmits: i mostly get to depth 30, meaning around 5 day
struct: with + 400 increase on chokudai
AllYourTrees: someone needs to do an in depth study of every width
ZarthaxX: nice
AllYourTrees: has anyone tried varying width during the game?
MSmits: i just thought about that
MSmits: late game you can have more width
struct: MSmits thats what chokudai is for
struct: also early game
MSmits: yeah, but you pay a very high price for chokudai
MSmits: better if you just estimate it properly
struct: high price?
MSmits: in redoing calcs
MSmits: iteratively
struct: ah
struct: right
AllYourTrees: what is chokudai?
MSmits: progressively widening beam search
AllYourTrees: ahhh
MSmits: performance is starting to matter for me
MSmits: raised width from 1k to 2k, lot better
struct: performance does not matter to me
MSmits: maybe because my eval is poor
MSmits: it has problems finding good states
MSmits: needs to keep more around
pmor: how many sims/ms are you getting?
struct: 1.5mill in 90ms +-
pmor: holy....
pmor: are you using bitboards?
struct: yes
MSmits: i am, i dont get this many though, 1.5 million is a lot
Nerchio: i get up to 100k
MSmits: my eval is expensive
struct: cant say the same
MSmits: it's around 100k probably
pmor: i'm getting around 250k
MSmits: let me do proper test
pmor: without bitboards
struct: total chokudais: 5 final width: 2800 plays: 1515520
Nerchio: i got lazy i guess
Nerchio: my state is now 9 bitsets
Nerchio: like 10 ints
Nerchio: 3 doubles
Nerchio: :joy:
Zenoscave: struct is that in 100 ms?
Theino: I made it to 1 state evaluated
Theino: #silver4life
ZarthaxX: Zenoscave dont compete with structo
struct: 90
ZarthaxX: lol
AllYourTrees: lol Theino
Zenoscave: hi Zarthie pewpew
Theino: oh wait! I evaluate all possible moves! That's so many states I evaluate
struct: but my eval is very light
struct: ultra simple
Theino: nevermind, gold here I come
struct: also ending the day is also very fast
struct: is like 11us
struct: my hotspot is getActions
MSmits: It depends a lot on the complexity of the states in my case. 200k-300k
ZarthaxX: pewpew Zenoscave :*
Zenoscave: Currently installing windows in a vm to do performance checks
MSmits: is my quick test
struct: why install windows for performance checks?
Zenoscave: does anyone score on each action?
Zenoscave: C#
struct: yes
struct: ah
Zenoscave: can't do a proper perfview on linux
ZarthaxX: i do
ZarthaxX: not c#
MSmits: Zenoscave what do you mean score on each action? Do you mean eval the resulting state?
struct: I think so, my yes was to that
struct: Evaling before applying is harder I think
Zenoscave: eval after applying
MSmits: well that's how you do beamsearch
MSmits: so yeah :0
Zenoscave: vs eval after only each day
ZarthaxX: i do
MSmits: ohh like that
MSmits: I think the days are too long to wait
Zenoscave: think of it like move ordering in the card one
MSmits: locam?
Zenoscave: yeah
MSmits: i do that in this game yes
MSmits: still eval after every move als
MSmits: also
Zenoscave: hm I think that will be my next project
MSmits: mmh i need a good way to fit parameters. Bot seems quite sensitive to them
cegprakash: I hear lot of ppl use the term "beam search" may be I should learn it after the contest
struct: param fiddler msmits?
MSmits: you mean the one euler made?
struct: cegprakash why not learn it now?
struct: yes msmits
cegprakash: struct coz am gonna write GA :D
MSmits: i dont have the brutaltester referee
MSmits: suck with java :(
MSmits: dont even know how to adapt stuff like that
struct: I can give you mine
cegprakash: don't wanna risk some new search
MSmits: that would be great
struct: but mine map generator is not great
MSmits: better than nothing I am sure :)
struct: also to run it on param fiddler you will need brutal tester 0.2
struct: because I used old style referee
struct: and you cant pass -o flag there
MSmits: is that to remove time limit?
struct: I just did it during testing because I had no access to referee
struct: also it removes time yeah
MSmits: thats fine
struct: its basicly my code but in java
struct: its like 400 lines
struct: do you know how to compile to jar file?
MSmits: no, thats my problem
Zenoscave: MSmits do you hava ajava with source
MSmits: NOPE
Zenoscave: Main source
MSmits: ops caps
MSmits: i really dont want to try compiling java again, i always fail
struct: Zeno cant you compile and upload to git?
MSmits: i;ll write my own arena before i try compile java :P
struct: because your referee should work on param fiddler on latest brutaltester
struct: since it doesnt need -o flag
struct: let me just see if Zenoscave can upload the jar to github, should be easier
MSmits: ok
struct: and referee will be accurate
struct: mine is, just map generator isnt great
struct: but my referee is faster
Queuebee: http://chat.codingame.com/pastebin/f684348f-24a8-481f-a904-43d432cebe3c
MSmits: lol adding 0 to bitboard??
NinjaDoggy: is 16th good enough for opening legend?
MSmits: R1 |= 0 << 1;
Queuebee: I can't even explain how bad my grasp of this whole thing with bits is lol
NinjaDoggy: probably not huh :(
struct: probably ninja
MSmits: NinjaDoggy just short, but you should get legend right after
MSmits: from submit randomness
NinjaDoggy: ok
struct: let me see if I can compile zeno one
struct: if I can ill send it to you MSmits
ZarthaxX: NinjaDoggy i belive you will
ZarthaxX: becauase it's like top 20 legend
MSmits: Queuebee if you do 1 << 5 it becomes 100000b
ZarthaxX: just hold rank
ZarthaxX: :)
Queuebee: yes I uhh
MSmits: if you do 0 << 5 it becomes 000000
MSmits: so still 0
Queuebee: I think? I fixed it?
Queuebee: http://chat.codingame.com/pastebin/402df615-ad5d-48a4-a55e-a529d7a4a890
NinjaDoggy: hm... i wanna do 1 more submit though :/
MSmits: struct thanks
MSmits: Queuebee i have a richness array instead
MSmits: not everything has to be on a bitboard
struct: i have richness array and mask
struct: for eval
MSmits: I guess i could turn mine into a mask for eval
struct: array for moves
Queuebee: Yeaaaaah I figured I won't make a sim that beats my dumb python heuristic so I'm just practicing bit thingies
MSmits: ohh ok
NinjaDoggy: @MSmits i have both :)
Queuebee: how does that work?? Array and masks
NinjaDoggy: array for complete and bitboard for eval
Queuebee: i thought you cant mask an array
MSmits: no
MSmits: they are separate things
MSmits: sometimes an array is more convenient
MSmits: and sometimes a mask is
MSmits: so why not have both
MSmits: since they are small
MSmits: no cache problems
Queuebee: but s p e e d
MSmits: if you are looping over individual trees for some other reason, then it doesnt cost you anything to use an array
MSmits: you already have the tree index
MSmits: so use it to lookup richness from array
Zenoscave: Yeah I can upload a jar
struct: ok im finishing compiling :p
Queuebee: Yeah next part would be figuring out how to get back the richness of a tile :joy::joy:
MSmits: in your case?
Queuebee: yeah, I have no clue yet how to do that
MSmits: well the R thingy should be like this: R[4]
Zenoscave: MSmits there's a fork of my fork that's a lot better
MSmits: then you can loop over it
Zenoscave: https://github.com/dreignier/SpringChallenge2021/
MSmits: loop from 0 to 3, check if the bit is set for the tile, if so, then thats your richness
Queuebee: there's no other way?
MSmits: if you want the richness of a single tile then no
MSmits: unless you do the array thingy
MSmits: int richArray[37] = { 0 };
MSmits: fill that, and you can look up every time
Queuebee: yeah I had that
MSmits: it is better in some cases
MSmits: but if you want to loop over all trees at once and add up richness, then the R thingy could be better
MSmits: what do i do with it Zenoscave?
Queuebee: mhm thanks :)
struct: ok i cant compile it sorry :(
struct: Zenoscave help :(
Queuebee: time to snooze
Queuebee: Good night everyone! <3
MSmits: gn Queuebee
Zenoscave: what are you trying to compile struct?
struct: spring-2021
Zenoscave: mvn package
struct: hmm, ill just give msmits the version of mine that is compiled
struct: it does half the job :p
MSmits: cool
cegprakash: new leader kovi
ZarthaxX: almost
NotSureWhyThisWorks: is there a way to watch games between the top players?
cegprakash: of urs or others?
cegprakash: yes
AllYourTrees: go to full leaderboard and there's a view last battles link
NotSureWhyThisWorks: ok thx found it
cegprakash: NotSureWhyThisWorks https://ibb.co/98MQ1wP
AllYourTrees: yep!
NotSureWhyThisWorks: thx cegprakash
Lucky30_: guys check this up..> https://www.codingame.com/share-replay/554730463
Lucky30_: when you are too sure of your self, that you just stop at mid game thinking you going to win...
Lucky30_: i am not sorry
MSmits: lol
AllYourTrees: lol
AllYourTrees: i like the trash talk
Lucky30_: no trash talk
NinjaDoggy: very nice trash talk :)
NinjaDoggy: get in your opponent's head
Lucky30_: #kind#happy#talk
AllYourTrees: lol
cegprakash: nice feature Lucky30_
Lucky30_: hhhh true NinjaDoggy
Lucky30_: thank cegprakash
FerrusDude: hahaha
FerrusDude: :laughing:
cegprakash: add more trash talks
cegprakash: http://chat.codingame.com/pastebin/9dbb2eef-cec8-47cc-b32d-03457e5ae598
AllYourTrees: 20 points to the first person who submits a bot that draws smileys with trees
Lucky30_: god i am so happy, i am going to be gold at last, this is my first gold ever
AllYourTrees: spread the happiness
AllYourTrees: nice!!!!
Lucky30_: cegprakash nooo #i did copy that # but no cant do
FerrusDude: nice!
cegprakash: lol wut
Lucky30_: 80% :flushed:
cegprakash: my rank is 350
cegprakash: same bot at 350 - 650
cegprakash: leaderboard definitely drunk
Lucky30_: lol
Lucky30_: i am rank 2 :p
cegprakash: may be the first 20 games in the calibration matters too much
AllYourTrees: Lucky30_ about to get drunk after they pop open a bottle of champagne to celebrate
Lucky30_: cant wait hhhh
Lucky30_: 88%
NinjaDoggy: rock paper scissor bots too random :P
Lucky30_: 93%
Lucky30_: 95%
cegprakash: Lucky30_I'm assuming u have already beaten the boss
Lucky30_: yes sir
cegprakash: congrats
cegprakash: trash talk helped u promote
cegprakash: told ya
Lucky30_: thanks alot :blush:
Lucky30_: i am gold
Lucky30_: trash talk is a weapon i dont want to over use
AllYourTrees: gz Lucky30_!!!
Lucky30_: :thinking:
NinjaDoggy: congratz! :D
Lucky30_: Thanks alot
FerrusDude: hehehe I see what you did there Lucky30
FerrusDude: totally gave me an idea how to tweak my guideline params
FerrusDude: muhahaha
Lucky30_: hhhhhh
Lucky30_: nooooo
Westicles: All this mask nonsense is finally over! Hooray!
Lucky30_: my trees are cooler :p
FerrusDude: cuz they in mah shade?
FerrusDude: jklulz
Lucky30_: noooo
FerrusDude: :upside_down:
Lucky30_: cause they are cuter :p
FerrusDude: #bonsai
Lucky30_: lol 64% rank 1000
CBORJDNHR: /message bledda
CBORJDNHR: /message bledda
KelvinAndHubbles: hitting almost top 10 in silver and have too much anxiety to look at the last battles tab :/
KelvinAndHubbles: ...and dropped back to hundred, welp probably gonna retire this contest, decently fun
Lucky30_: dont give up, some easy solutions do exist.. fairly easy solutions..
Lucky30_: good night everyone
NinjaDoggy: gn
NinjaDoggy: wow actually found a replay
NinjaDoggy: where limiting to 1 seed was bad LOL
NinjaDoggy: https://www.codingame.com/ide/challenge/spring-challenge-2021
struct: wrong link
NinjaDoggy: oops i'm a clown
NinjaDoggy: https://www.codingame.com/share-replay/554747330
struct: why do you think its bad?
struct: ah the end
struct: if round >= 23
struct: easy fix
NinjaDoggy: LOL
mybk: 02:57:37,438 ERROR [com.magusgeek.brutaltester.GameThread] Negative score during game 1 p0:-1
mybk: any idea ? why brutaltester show the error ?
mybk: http://chat.codingame.com/pastebin/42a3674f-2ca4-4c74-8263-135646e6f48c
mybk: "no main manifest attribute, in p1.jar\n",
-> there is something wrong, I think
mybk: maven problem, sorry, igonore
mybk: ignore*
KelvinAndHubbles: can you use cg brutaltester for other languages then Java? Always just run botched tests and anylsis on the website
Zenoscave: KelvinAndHubbles If the referee you write is in a different language but still uses the same output rotocol it will work
KelvinAndHubbles: ok, wacked, makes sense I guess
KelvinAndHubbles: gotta check that out
mybk: http://chat.codingame.com/pastebin/5e9e149f-9814-4835-bdeb-51906378cfd3
sina_magicer: http://chat.codingame.com/pastebin/3a826eac-b8c7-4b1c-81da-b1b99848b453
sina_magicer: http://chat.codingame.com/pastebin/9c6cb037-9260-48e5-9a6d-62dc1d5d6e63
FerrusDude: finally beat Bossoot in a test run
FerrusDude: whoop
FerrusDude: time for the real challenge ... into the arena
FerrusDude: :expressionless:
FerrusDude: thx :D
KelvinAndHubbles: well, problem is consistently beating Bossoot, but your on the right path :D
FerrusDude: let's see what happens in the churn
FerrusDude: Truth.
FerrusDude: :laugh:
FerrusDude: :smile:
FerrusDude: 833 -> 56
FerrusDude: I'll take it! that was a nail biter of a run
KelvinAndHubbles: frikkk, I submit a run for the night, get off, check my phone and it says I'm 3rd, get back on to see if I'm delusional, and my code instantly jumps back 100 places -________-
FerrusDude: zomg, I feel you
FerrusDude: I watched my bot bounce up and down the ranks.
KelvinAndHubbles: yea, too stressful, Imma sleep and then fix this buggy mess in the morning, gn yaal
FerrusDude: laters
KelvinAndHubbles: altho, bounced back up to top 10, so hopefully good run :D
FerrusDude: hahaha
FerrusDude: gg
FerrusDude: :)
Zandy156: I haven't experienced any jumping back in forth in this contest.
GarethEddies: whats your rating zandy ?
Zandy156: I thought it was because of the game but maybe its how my bot works
Zandy156: I'm 311 in gold
GarethEddies: nice, I guess up at that level things don't move too quickly?
Zandy156: maybe, I've only had one submission per league which is also new for me
GarethEddies: 1829 Silver, just now
GarethEddies: I've only been on codingame a week or so
Maliamnon: ugh. #2 in silver at 80% then lost to the boss 3 times in a row :(
struct: Maliamnon just wait
struct: even if you dont promote someone will push you eventually
R_Rex: does anyone finished the Puzzle of the Week (updated 3 days ago).I am traped in test 06.why the input line with header DEF but with END.
R_Rex: but without END
Smelty: o.O
dbdr: R_Rex, most people are doing the contest at the moment
dbdr: some new usual suspects in the top 10: kovi, nagrarok