Chat:World/2021-05-13

From CG community
Revision as of 12:06, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/15695581430629> FerrusDude: heh, I remember when Rust was exotic. <img src=/a/15695581430629> FerrusDude: :upside_down: <img src=/a/61677668562388> XeroOl: it st...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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? :)

Default avatar.png actualCoderTrevor: I remember when flipping switches on the front of the Altair was exotic.

Default avatar.png 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

Default avatar.png NoDanCoder: how can i go to the next problem?

XeroOl: @NoDanCoder what do you mean?

Default avatar.png NoDanCoder: i just finished tutorial, where is the next excercise button?

FerrusDude: Go to Practice Tab

Default avatar.png NoDanCoder: sortof leetcode

XeroOl: The exercies aren't ordered, but you can find them under `Activities > Practice` at the top

Default avatar.png NoDanCoder: ohhh thanks

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

Default avatar.png Greg_3141: just got my gold promotion in 3 hours

Default avatar.png NotSureWhyThisWorks: nice

Default avatar.png 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

Default avatar.png 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

Default avatar.png IronJelly_e821: hi

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

Default avatar.png 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

Default avatar.png NotSureWhyThisWorks: Noyotens if you use the game's representation of the board it gives you the indices of neighbouring places on the grid

Default avatar.png 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

Default avatar.png 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

Default avatar.png NotSureWhyThisWorks: nice Noyotens

Default avatar.png NotSureWhyThisWorks: much better

Noyotens: thx

Default avatar.png NotSureWhyThisWorks: interesting UndercoverToad

UndercoverToad: it's not

Noyotens: UndercoverToad

Default avatar.png NotSureWhyThisWorks: lol

UndercoverToad: *seeding is not much better now

UndercoverToad: race condition

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png NotSureWhyThisWorks: How many possible combinations of turns are there for a day?

LLG: a lot

UndercoverToad: thousands if not more

Default avatar.png 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)

Default avatar.png 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

Default avatar.png NotSureWhyThisWorks: like the number of branches that have to be generated at a depth of 1 day is still thousands in the middle game

Default avatar.png NotSureWhyThisWorks: right?

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

Default avatar.png 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

Default avatar.png KayDai: I cant access the discord via the invitation.

Default avatar.png 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?

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png Dragonlong: 1

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

Default avatar.png NotSureWhyThisWorks: can you find which tree a seed came from when calculating seeding positions with bitarrays?

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png DCarrillo123: RodCool

Default avatar.png LariosSantos: RodCool

Jameson.Bryant: RodCool

Default avatar.png Tevin_G: RodCool

Default avatar.png bkinney0514: RodCool

ClockSort: RodCool?

Default avatar.png rodrigof: RodCool

Default avatar.png christianchrr: 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

Default avatar.png Cjx_1: tell the bot the game ends 2 days earlier :P

Smelty: clock lol

Smelty: cjx lol

Default avatar.png 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

Default avatar.png 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.

Default avatar.png Cjx_1: ^^

Default avatar.png Cjx_1: add features

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

Default avatar.png 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 :(

Default avatar.png actualCoderTrevor: lol

Default avatar.png actualCoderTrevor: Hey me too

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?

Default avatar.png 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 Nerc​hio 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..

Default avatar.png actualCoderTrevor: lol

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

Default avatar.png CFIX: hello

Smelty: hi

Smelty: reeeeee i'm 0.2 below boss

Default avatar.png CFIX: :grimacing:

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

Default avatar.png Cjx_1: grats

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)

Default avatar.png 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:

Default avatar.png Bigcodrrrrr: im so confused im new to codingggg

Default avatar.png ReaListik: benimde

Default avatar.png 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

Default avatar.png 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

Default avatar.png Bigcodrrrrr: :joy:

King_Coda: http://chat.codingame.com/pastebin/1a12393c-3b65-4778-bd88-f777c868d1ed

King_Coda: there's your solution

Default avatar.png Bigcodrrrrr: ok thank you

AntiSquid: that puzzle has hints

Default avatar.png DutchYY: easy

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?

Default avatar.png 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

Default avatar.png BishopD: SUCK Mii NUTS

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.

Default avatar.png 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

Default avatar.png 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

Default avatar.png Beekeeper525: ok

AntiSquid: tutorialspoint if you want to learn as you go Beekeeper525

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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,

Default avatar.png 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?

Default avatar.png 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

Default avatar.png xk9c: yes it makes fun if i can solve it :D

ddreams: then get going

XeroOl: okay I'll get going, goodbye codingame chat

Default avatar.png xk9c: bye

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

Default avatar.png 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

Default avatar.png baypoint1: ok thanks

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

Default avatar.png baypoint1: closes 10 hour c++ course vid*

TobiasA: haha i feel you

TobiasA: been there done that

Default avatar.png 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:

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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?

Default avatar.png 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

Default avatar.png TheBioTopHat_7b70: hehhehhehe

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

Default avatar.png NotSureWhyThisWorks: is there a way to watch games between the top players?

cegprakash: of urs or others?

cegprakash: yes

Default avatar.png NotSureWhyThisWorks: others

AllYourTrees: go to full leaderboard and there's a view last battles link

Default avatar.png NotSureWhyThisWorks: ok thx found it

cegprakash: NotSureWhyThisWorks https://ibb.co/98MQ1wP

AllYourTrees: yep!

Default avatar.png 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

Default avatar.png sina_magicer: http://chat.codingame.com/pastebin/3a826eac-b8c7-4b1c-81da-b1b99848b453

Default avatar.png 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:

Default avatar.png Cjx_1: <3 big grats

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:

Default avatar.png LUAcoding: (0-0)

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