Chat:World/2021-05-07

From CG community
Revision as of 12:06, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/43658466845414> _Lupus_: by search they mean explore a tree that is more than one level deep. So think about the future rather than making a local decision <img s...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

_Lupus_: by search they mean explore a tree that is more than one level deep. So think about the future rather than making a local decision

Atatakakatta: ah, right

_Lupus_: And because of the time limit, you have to "search" in that tree by pruning or prioritizing because otherwise you will never be done in time

icecream17: "Mr. Tree uprooted himself :(" - wait...

XeroOl: have you ever wanted to install some software, and that software is conveniently in the AUR

orangesnowfox: "conveniently" what *isn't* in either the AUR or arch repo?

XeroOl: lmao nevermind it failed to build I'm not going to praise this anymore

XeroOl: okay too bad

Smelty: alr, submitting with new if/else algo, hoping for best

Smelty: icecream17 LMAO

Smelty: shhh

icecream17: _idea_

Smelty: also WHAT WHEND U GET TO 60

icecream17: =(

PatrickMcGinnisII: crap i got my rewrite all wrong

icecream17: wait wrong emoji

Smelty: u demolished me by 20 points

icecream17: typo

Smelty: lol

PatrickMcGinnisII: u get input multiple times per day unless you wait

icecream17: i meant to do a smiley fac

Smelty: rip my noob bot

icecream17: the improvement was very simple: http://chat.codingame.com/pastebin/39f05797-e0f1-442c-a164-f91f71eb662c

Majeck: TOP 100 WITH A TINY IF/ELSE BOT

Majeck: I FEEL AMAZING

Atatakakatta: I'm beginning to suspect most of the top 100 are >_>

Atatakakatta: but yeah, it feels nice

icecream17: inspired by struc who delays completing

Zenoscave: struct isn't a heuristic bot. He doesn't have any logic he controls

Zenoscave: ...

Zenoscave: it's a full search bot

icecream17: yeah but against smelt_ struc doesnt immediately complete. instead his bot generate 7 trees somehow. but i don't do that, so yeah

Zenoscave: lol well gz

Default avatar.png BigFatDecker: hi

Default avatar.png actualCoderTrevor: I can't tell if my bot is getting worse or if it's moving down the ranks because other bots are getting better. It was about 110 6 hours ago now it's about 160

Zenoscave: karliso yes

Zenoscave: ah weird chat scroll sorry for ping

Hjax: i think trying to search this game is going to make me sad

icecream17: im going to copy https://github.com/CodinGame/SpringChallenge2021/blob/517645b1b41879f41a03d852abdf2cddb4be73b8/src/main/java/com/codingame/game/Game.java#L272 for search

Atatakakatta: most of the top contenders seem to be patient in some way

Atatakakatta: whether it's programmed in like mine (now) or a search function says that's better

icecream17: because i tried to do it myself but ended up with an immediate nested nested nested for loop

Smelty: nooo im in 130 now :((

Smelty: me noob

XeroOl: you're ahead of me, at 165

Smelty: sighs

Smelty: wait how about we test our bots on each other and improve based on it

XeroOl: meanwhile I'm learning a new language because lua isn't good enough

XeroOl: my current bot is a wait bot

geio: how can a read array in bash :slight_frown:

XeroOl: you can test against my arena bot if you want

geio: *i

XeroOl: $arr[index]

XeroOl: I'm fairly sure

Smelty: rip

Smelty: ok

Smelty: i mean like i can only test against ur arena bot

XeroOl: oh you need curly braces

Smelty: -

Smelty: u beat me xD

XeroOl: ${arr[index]}

geio: <3

XeroOl: lmao

XeroOl: I am lower ranked but I beat you

XeroOl: link the game please lol

Smelty: https://www.codingame.com/share-replay/547521386

Smelty: my bot aint agressive enough

Smelty: altho that was hte first time in 5 times i lost

Smelty: just realized i was defining the wrong value bru

Smelty: fixed https://www.codingame.com/share-replay/547522525

XeroOl: yeah that looks about right

Smelty: that probably explains my huge rank drop..

Smelty: xD

Smelty: well just resubmitted

Smelty: 100% winrate so far..

Atatakakatta: they always get your hopes up~

Smelty: ikr, just lost one

Smelty: i think it would be cool if it could be like more than 2 players

Smelty: omg just won 169:14

icecream17: :eyes:

Atatakakatta: it's funny when someone submits and you see them battle you like 4 times in a row

XeroOl: what is a bitboard and how do i make one?

icecream17: a board represented by bits

icecream17: for example

jrke: each bit represents a part of game state

XeroOl: so would that just be a 148 bit array in this case?

Smelty: rip ranking fell even more

XeroOl: where every 4 bits represents a tile's tree state?

XeroOl: regardless of whether or not there's a tree there?

Smelty: *le me realizing there are 36 tiles not 37*

XeroOl: it's definitely 37

Atatakakatta: ...there are 37 tiles

LLG: yes

LLG: from 1 to 37

Atatakakatta: ooh, 121-121 tie

Smelty: wait what

LLG: or if you look at the board

Atatakakatta: from 0 to 36

Atatakakatta: actually

Smelty: oops

LLG: 4 + 5 + 6 + 7 + 6 + 5 + 4 = 15 + 7 + 15

Smelty: thats what got me confused

Smelty: xD

LLG: indexed from 0 to 36 yeah, but I was referring to the image guide

Smelty: the whole array starts at 0 thing

XeroOl: the indexing system makes it a pain to do shadows with bitshifts on a bitboard

Smelty: o.o

XeroOl: we might just have to upgrade this to an 8x8

Smelty: F

fvla: 8x8 is great

XeroOl: and come up with a separate indexing system

fvla: 64-bit integer

fvla: you can hashmap or something, idk

XeroOl: ooh that's nice

XeroOl: 64 bit integer for who owns each tile

XeroOl: 64 bit integer for which tiles are occupied

fvla: http://chat.codingame.com/pastebin/a1ffecb4-5f5e-4639-a79e-5c388aea3eda

XeroOl: 64 bit integer for which shadows are covered by a 1-high shadow

XeroOl: yeah this is looking nice

fvla: crap, i formatted it for chat, not monospace

XeroOl: that's 9 wide

Smelty: aaaugh rank 150 now

fvla: i know, let me try again

fvla: http://chat.codingame.com/pastebin/09401f9a-64ea-4c98-871e-fdf7ce4b45e5

XeroOl: yeah that's what I was imagining

XeroOl: then you can do bitshift magic

fvla: axes of travel are n-s, e-w, nw-se

Smelty: me a noob, me no understand bitshift

icecream17: 121 to 120 https://www.codingame.com/replay/547514339

XeroOl: I still have the paste from earlier

icecream17: close game #2

fvla: m a s k s

Atatakakatta: oh, just in case people missed it

Atatakakatta: Players gain an extra 1 point for every 3 sun points they have at the end of the game.

XeroOl: #pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")

  1. pragma GCC option("arch=native","tune=native")
  2. pragma GCC target("avx2","popcnt","rdrnd","bmi2")

Smelty: yay....rank 2939/2940

XeroOl: for bitshift magic being fast

LLG: what's your eval function like atm?

icecream17: hmm, smelt_ said once about having 300 sun

Smelty: if/else

icecream17: which = 100

Smelty: xDDD

LLG: I'm still at work, will get to simming this afternoon

Smelty: i didnt uproot any trees tho

Smelty: so i still lost

LLG: like, what things do you take into account when doing eval

XeroOl: I'm concerned because I haven't done a basic search algorithm before

XeroOl: and this one seems non-standard and non-trivial to debug

Smelty: F

LLG: I'd imagine points, suns and heuristic(tree)

XeroOl: the bitboard sounds super complicated

Atatakakatta: was at 52, making a small change

Smelty: i feel like im going to just rewrite everything tommorow

PatrickMcGinnisII: I think there is some game stages that need serious consideration

XeroOl: should I go back to if/elsing?

PatrickMcGinnisII: like endgame...no point seeding

Atatakakatta: mhm, that's why I posted that!

Smelty: send help my ranking is at 200 no

Smelty: 220

Atatakakatta: wasting sun points decreases your final score

Smelty: i stop planting at 18

PatrickMcGinnisII: i chose day 20

PatrickMcGinnisII: of course i'm rank 500, have no shadow adjustments, etc.

Smelty: THATS IT IM RESETTING

jrke: yesterday something happened to my visual studio code and it got uninstalled but now i fixed it back to work!!

XeroOl: I'm at 172 with no shadow adjustments @patrick

Smelty: i was at 100 with no shadow

Smelty: but now im at 360

Smelty: and just reset code

PatrickMcGinnisII: I'm just paying for the most expensive stuff i can afford

XeroOl: that's a bit too simple

XeroOl: maybe try to favor planting in the middle

Smelty: yes..

XeroOl: maybe try keeping a big tree alive for longer to save up more sun points

XeroOl: maybe keep track of the sun points you have to make sure you can complete everything on the last turn

PatrickMcGinnisII: yes, but my structure is setup

XeroOl: some ideas for improvement

jrke: valid actions are varying from 10 to 100+

Smelty: i just resetted code, and now idk what to do

Smelty: :((

Atatakakatta: start from the beginning

Smelty: yes but idk what is beginning xD

Atatakakatta: harvesting trees

Smelty: hm yes

IrisOnTheWay: rerun again.

Atatakakatta: I was briefly #23

Atatakakatta: then big losing streak ><

Smelty: oof

Atatakakatta: my code is still so simple lol

Atatakakatta: still haven't taught the trees how to throw seeds

Atatakakatta: further than 1 space

Smelty: what

Smelty: then howd u get to 23-

icecream17: just keep going until you hit -1

Smelty: hh-

PatrickMcGinnisII: i do kill trees too early

icecream17: the power of if-else and coding at 11pm

icecream17: super late

Atatakakatta: because it's not that important I guess, I dunno

icecream17: i dont actually do anything with the shadow information

Atatakakatta: I don't think even struct does

Smelty: xD

icecream17: i still calculate it though

Smelty: im stuck, dangit

Atatakakatta: ooh I'm right below someone I've actually heard of

Atatakakatta: or at least I was

icecream17: i just figured the best way to format long if statements

Smelty: o.o

Atatakakatta: how did I fall from 23 to 40 without doing anything ;(

Smelty: f

PatrickMcGinnisII: early game, maximize sun ramp...mid game, more strategy, endgame, eat trees...wierd

Smelty: hm

Smelty: imma sleep, its late for me

Atatakakatta: honestly

Atatakakatta: don't overcomplicate it

Atatakakatta: my strategy is extremely simple and I'm top 40

icecream17: http://chat.codingame.com/pastebin/808e13b9-8769-4e50-8db1-c78eb6ed668f

Atatakakatta: basically that yeah

Atatakakatta: I have 1 single If statement that decides whether to complete

icecream17: i was talking about formatting long if statments

Atatakakatta: ~~that's actually what my code looks like though~~

icecream17: what!? as a js person, this is very unintuitive

icecream17: amazing

icecream17: i wish to learn another language other than js and python (and typescript)

PatrickMcGinnisII: acorns are like blockers

PatrickMcGinnisII: so wierd

Atatakakatta: soooo many bots are wasting all their sun points in the last couple turns

phord: Woof! I did something right, just mucking with simple if/switch and not considering scores. Jumped from 2500 -> 624.

phord: -> 500's

PatrickMcGinnisII: minor change, 100 ranks better, so wierd

Atatakakatta: there's a lot of submissions really close together

Atatakakatta: a small change can make a big difference

Atatakakatta: most high-level games end up really close

PatrickMcGinnisII: ok, ended up 150 rank better

PatrickMcGinnisII: smh

PatrickMcGinnisII: i basically sim one day, spending as much as possible...i don't do any benefit analysis

phord: So. Codingame tries to sign me up for a job search, but the max gross salary is $200k. Do they only find jobs outside the Bay Area?

Atatakakatta: lol oof

Atatakakatta: I just moved out of there

PatrickMcGinnisII: sleeptime, glhf

phord: :night:

phord: I might as well not be here for the past year with wfh. But still, that range was peanuts. Oh, but minimum could go as low as $20k.

Marchete: 200k is peanuts?

Marchete: I'll take the peanuts plz

pmor: it is in the bay area unless you live in your parents basement

phord: It's median tech income in the bay area.

icecream17: gn

phord: Basically only "entry level" positions at FAANG for that much. https://www.levels.fyi/?compare=Amazon,Apple,Google,Facebook&track=Software%20Engineer

Marchete: damn :S

YKY: I'm participating Spring Challenge 2021. But video doesn't play so that I can't see real time progress. How do I do??

phord: Restart your browser. Switch browsers (firefox). I hear they're working on it. Known problem.

Notter: Hey guys, I just got randomly promoted to bronze league in a bot programming game again.

phord: Randomly? Your bot keeps going after you're promoted to Wood league. Probably you just leveled up twice. Congrats.

Marchete: or someone else beat the boss

Marchete: and you go over the boss

Marchete: you just need to be above the boss at any time (after your submit is 100% calculated)

Notter: phord That does not make sense because I only programmed my bot to wait each turn.

Default avatar.png actualCoderTrevor: that's the pro strat

Marchete: Spring Challenge?

Marchete: just pick possible moves and give some ordering

Marchete: I mean, most bronze is that

phord: Notter that's pretty weird. Check your last battles. Did you win any?

Atatakakatta: I mean, almost 90% of people are in bronze league >_>

Atatakakatta: just not timing out might be enough?

Default avatar.png Mannava_Goblin7: https://www.codingame.com/clashofcode/clash/1737498bfc7576e0e5bd26618f2217713ed65a1

Marchete: this time wood leagues were easy, yes

Default avatar.png Mannava_Goblin7: pls join

Marchete: #clash

Zenoscave: Mannava_Goblin7 #clash

Default avatar.png Mannava_Goblin7: #clash

Marchete: top10 Zenoscave

Marchete: noice

Zenoscave: no we're saying go promote on that channel. not here

Zenoscave: thx marchete

Default avatar.png Mannava_Goblin7: https://www.codingame.com/clashofcode/clash/1737501556bc4e8cbd79203e8271499dfa254b8

ZarthaxX: if else spaghetti?

Notter: phord No, I only won against people with -1 score

Zenoscave: Not spaghetti. organized

Zenoscave: But yeah complete if-else. Tried a search need to optim before it's ready

ZarthaxX: i see :P

Marchete: sun calculation seems the hardest part

Zenoscave: for shadows?

Marchete: yeah

Zenoscave: it's the slowest for sure

Marchete: but overall rules seem logical

Marchete: not like other games

aCat: meh

aCat: because they copied finished product

phord: Didn't know you could get -1.

aangairbender: true

Marchete: neighbours with -1, yes

Marchete: a bit confusing and crashes a lot of bots

Marchete: aCat oware abapa is copied too

Marchete: and imo rules are sh*t

Default avatar.png actualCoderTrevor: score of -1 means your code is broken

aCat: because it is not a modern boardgame

dbdr: I even heard chess might be copied

Marchete: heresy!

aCat: and chess are enough balanced and complex

Illedan: Mornin

aCat: hi

mzbear: i went from wood to bronze with a WAIT-only AI, so, yes, it's quite easy...

ZarthaxX: hi illo:*

Illedan: :)

phord: I definitely did not advance to bronze with WAIT-only. I think I did advance to Wood, though.

Default avatar.png actualCoderTrevor: "6 neigh variables, one for each direction, containing the index of a neighboring cell or -1 is there is no neighbor." When is there no neighbor?

Thienu: at the edge of the board

phord: actualCoderTrevor On the edge of the easrth.

aangairbender: sides of the map?

Default avatar.png actualCoderTrevor: Oh Oh Oh

Default avatar.png actualCoderTrevor: smh I'm dumb :)

aangairbender: why do we need that info at all?

aangairbender: I mean isnt the map always the same?

Thienu: I used it to precompute where trees can seed

Default avatar.png actualCoderTrevor: You can use it to calculate the distance from a space (at least that's what I'm trying to do). Yes but I think getting it from the problem is maybe more convenient.

Default avatar.png actualCoderTrevor: And you can use it for shadows

Maliamnon: shadows as linked lists of neighbors :)

Marchete: or encoded in uint64

Marchete: 1 << cellid

ANONYMOUS42: is it a good idea to make a look up table for all the neighbors for all the cells

Marchete: lookup shadows for each sun direction

aangairbender: it might be helpful as an optimization

Marchete: and tree size

aCat: ok, so what is actually faster?

aCat: arr[index] or num >> index*2 & 0b11

aangairbender: I would say second

XeroOl: it depends on how much is in the cache

aangairbender: cause no RAM access

aangairbender: but it really depends on context

XeroOl: cpu performance is a pain to understand

aCat: Illedan I;m in c# so the bit is faster than array ?

Marchete: what array size?

XeroOl: the first one can be faster, and the second one could be faster

aCat: 37 ^^

ANONYMOUS42: would cache really be an issue here if there is only 37

XeroOl: well, it depends

MoMaT: it probably doesn't matter which is faster aCat, but rather if it fits in cache or not.

Marchete: what I know it's faster is to avoid loop traverse

MoMaT: so your data alignment matter the most.

aCat: Hi MoMaT welcome back ;-)

Marchete: like for shadows and stuff

XeroOl: if you only have one globally, 37 isn't a cache issue

ANONYMOUS42: yeah it depends on how big each cell is in memory

aangairbender: premature optimizations seem fun

XeroOl: if you're building a tree of gamestates

Illedan: AHH, caching of shadows :O But my calc is fast enough

XeroOl: it's going to matter what the size is

MoMaT: it's not 37 :) especially not in C#...

Marchete: shadows encoded as uint64 bitmask

Marchete: so you just calculate 1 by height

XeroOl: if it's 37 * number of turns, then you can probably just store them as bytes

Marchete: then apply to all these trees

Illedan: does it take into account the heights of the target cell?

Marchete: like is bitmask & (1<<cellid) != 0

XeroOl: yeah shadow is 2 bits per tile

Marchete: by height

Marchete: first 3

Marchete: then 3+2

Marchete: etc

aCat: but this is just shadow Marchete not its strength

ZarthaxX: shadows hardcoded ??

Marchete: bitmask are useful there

Marchete: strenght?

Marchete: strength*

ZarthaxX: size matters

XeroOl: you need 2 bits of shadow info per tile

ZarthaxX: for the shadow

Marchete: 2 bits?

ANONYMOUS42: could there be a systematic way of arranging the cells so that you can figure out the indices of the 6 neighbors directly?

aCat: aaa ok, I get your idea

XeroOl: for height of the object casting the shadow

ZarthaxX: shadow is dependant of height

Marchete: you start with 3

ZarthaxX: you want to encode in a bitmask the actual shadow ?

Marchete: do shadow 3

Marchete: -> bitmask

ZarthaxX: im confused

Marchete: applied to tree 3

XeroOl: @anonymous42 yes

Marchete: then go to 2, calc shadow2

XeroOl: someone made this diagram http://chat.codingame.com/pastebin/09401f9a-64ea-4c98-871e-fdf7ce4b45e5

Marchete: shadow3 | shadow2

Marchete: apply to tree 2

Marchete: etc etc

XeroOl: it's better to pack it 2 bits each

XeroOl: than to do 2 shifts to read one value

Zenoscave: Well that helps my bitboards a lot

aCat: the more I think about it the more I like Marchete idea more

aCat: you don't have any comparisons of heights

Default avatar.png rmuskovets: wood league is so easy...

Zenoscave: that's why it's the first league ;)

aCat: for tree of size k you just kall bitmak for sizes k and higher

aCat: :kiss_cat:

XeroOl: yeah I like that

XeroOl: are y'all using the game's tile coordinate system?

XeroOl: or an easier shape to bitmask

Marchete: 1ULL << cellID

Zenoscave: index in a flat bit line

Zenoscave: ^^^^ that

Marchete: you can precalc all

aCat: you dont need coordinates system as there is no real movement

Marchete: no coord at all

XeroOl: it's not fun to precalc the shaows

Marchete: just some precalc

ANONYMOUS42: i still don't get how you get the neighbors' indices from that diagram

Zenoscave: All that BFS for nothing T.T

aCat: yep Zeno

XeroOl: the game feeds you the neighbor indices

XeroOl: it's one of the inputs

ANONYMOUS42: i was more curious if you can figure them out analytially, like some magic formula to get them lol

ANONYMOUS42: not necessarily how i'd implement them

XeroOl: not really, because it's a spiral

XeroOl: which is a pain

ANONYMOUS42: yeah which is why i though it's a cool problem

ANONYMOUS42: i wonder if it's even possible

XeroOl: well, theoretically

XeroOl: I don't know if it's possible to get the runtime to be linear on it

ANONYMOUS42: yeah proving that would require some graph theory magic

ANONYMOUS42: or something else who knows

phord: It would be more practical on a larger spiral. But only three layers is kinda meh.

Default avatar.png rmuskovets: looks like bronze won't be hard too... i just wrote a rly simple heuristic that chooses actions from the list

Default avatar.png rmuskovets: or it might be, actually

phord: Ar255 crushing it. Saving his tree harvest until the last days, the sweeping the floor with my ass.

Marchete: top10 has many python players, so heuristics are good in this game

Illedan: Meh, this is as search heavy as you can make it

phord: I got into bronze by basically choosing actions at random.

Marchete: but in this case heuristics can have a chance

Default avatar.png rmuskovets: this game looks so much easier than previous challenges

Zenoscave: easier to start probably going to be a tough gold/legend

Default avatar.png rmuskovets: 'simple to learn, hard to master'

Default avatar.png rmuskovets: for me its a huge plus we get the action list every turn

Default avatar.png rmuskovets: no need to calculate it myself

Zenoscave: 'back in my day...'

Default avatar.png rmuskovets: yeah

Marchete: and turns are not just player 0 then 1

Zenoscave: Oh god the horror of turn orders

Marchete: it's simultaneous and in some cases a player can have more moves

Marchete: that complicates some searches

Default avatar.png rmuskovets: well... im prob gonna just tune my heuristic until it

Default avatar.png rmuskovets: 's perfect-ish

eulerscheZahl: you won't get too far that way

Default avatar.png rmuskovets: im already better than where i was last challenge

eulerscheZahl: in the end simulation almost always wins

Zenoscave: top silver maybe gold if your heuristic is decent

Default avatar.png LordSkaven: I havent used or looked at the possible moves at all yet

kovi: yeah, search heavy :(

eulerscheZahl: it's not even 24h into the contest, current ranking is meaningless

Default avatar.png rmuskovets: true

phord: Shut up! I broke 200 and I'm proud of it!

Zenoscave: Yeah. I'm beating euler even

eulerscheZahl: everyone is beating me

Default avatar.png LordSkaven: doesnt most game AI just come down to simulation tho?

Zenoscave: sssshhhhh ;)

kovi: and once again limited interaction

BlueArtemis: guess at least we're having fun with it

Marchete: I beat you a NS, that was more important to me :D

Marchete: at*

BlueArtemis: even my dumb AI beats people xd

Default avatar.png rmuskovets: eulerscheZahl: looks like even i do

Zenoscave: for now.

eulerscheZahl: you didn't beat me at NS Marchete, you beat NS itself

Default avatar.png LordSkaven: eulerscheZahl you should go to the police if everyone is beating you, sounds painful and like assault

Default avatar.png rmuskovets: lmao

Default avatar.png actualCoderTrevor: OMG I just realized I can battle my IDE bot vs my arena bot. Now I won't have to wait an hour to figure out if my tiny tweaks were an improvement or not. :)

Default avatar.png rmuskovets: or you can battle the people in top 10

Default avatar.png rmuskovets: you'll know then for sure

Default avatar.png actualCoderTrevor: I already know that outcome :P

Default avatar.png actualCoderTrevor: Damn I lost to me

Zenoscave: I broke something

Default avatar.png rmuskovets: maybe

Default avatar.png rmuskovets: maybe you did

Notter: Hey guys, apparently the default AI can beat itself.

Default avatar.png rmuskovets: huh. cool

icecream17: the game seems symettrical, but sunlight only goes in by one direction, so it's not

Default avatar.png actualCoderTrevor: Oh the board is symmetrical but the shadows aren't so there is some luck involved

Default avatar.png actualCoderTrevor: right lol

Default avatar.png rmuskovets: lol im place 666

icecream17: struc gets 204 pts! https://www.codingame.com/share-replay/547576289

icecream17: *207

Zenoscave: 207 you forgot sun bonus

icecream17: 3000 players inbronze

jrke: exact 3000 coders in bronze

Default avatar.png rmuskovets: noice

Default avatar.png LordSkaven: struct is op pls nerf

Default avatar.png rmuskovets: yes

Zenoscave: struct is just quick to the game. Other's will beat him soon

Default avatar.png rmuskovets: everyone above me is op

icecream17: me too

jrke: people will get him soon cause its the 1st day of contest so wait until everybody codes the algo

phord: I thought you went to bed, icecream17. lol

icecream17: oh yeah

phord: I gotta go put in gf time. My bot is going to crack 100 while I'm away, I think.

icecream17: gn

Default avatar.png rmuskovets: my bot got 107 points in one run, thats gud

Default avatar.png rmuskovets: lets see how it competes in arena

Tiramon: some nice bot improvements over night ... droped from 2 to 17

phord: How I do vs. my own IDE code? I forgot again.

Default avatar.png rmuskovets: you delete the opponent below your code

Tiramon: there is a delete button below the players and you can choose a new one phord

phord: :ok_hand_tone4:

Default avatar.png rmuskovets: lmao i removed one '+1' from my heuristic and now im top 300

Default avatar.png rmuskovets: i was top 600 before

khalillamharchi20: hello

Default avatar.png rmuskovets: hi

resty-daze: wow, just don't cut trees until end game entering the top 100

Default avatar.png NotSureWhyThisWorks: top 100 gang

Default avatar.png rmuskovets: top 300 gang is bette

Default avatar.png rmuskovets: im in there

Default avatar.png rmuskovets: and it has 3 times more people

Default avatar.png NotSureWhyThisWorks: ok top 30 gang now and my code is digusting

Zenoscave: new submit NotSureWhyThisWorks

Zenoscave: ???

LouisLOurson: is there a way to force a battle against a specific oppenent?

Zenoscave: only in testing LouisLOurson

eulerscheZahl: delete default AI

Default avatar.png rmuskovets: delete your current opponent and choose the one you want

phord: That's how you know you're almost finished. NotSureWhyThisWorks

Sakisan: can't be top300 without including the top100 though

eulerscheZahl: you can only seelct top1000 as opponent

ddreams: you can also search

Default avatar.png NotSureWhyThisWorks: I wonder what the next set of rules will be

Zenoscave: none bronze is final rules

resty-daze: no new rules imo

jrke: yup no new rules just increase in difficulty level

Default avatar.png rmuskovets: is good

eulerscheZahl: in rare cases there are balancing updates for silver. but I don't think it will happen here

Default avatar.png NotSureWhyThisWorks: how will difficulty increase without extra rules?

jrke: ya the game look balanced

Zenoscave: opponents are also writing better bots

Sakisan: we are the difficulty :)

Default avatar.png rmuskovets: imagine if they delete the possible actions list

eulerscheZahl: just stronger players

Default avatar.png NotSureWhyThisWorks: oh true lol

jrke: ask MS about balancing

Default avatar.png NotSureWhyThisWorks: legend league full of if/else

ddreams: wouldn't make a difference if they deleted the possible action list at higher levels

Default avatar.png rmuskovets: well i use it to simplify my code

Default avatar.png StyllyMyle: can someone expain me league system?

ddreams: if you want to search, you need to be able to generate the possible actions yourself

resty-daze: get a higher elo than boss to next level

ddreams: wood leagues: tutorials

jrke: rmuskovets in higher leagues difficulty increases or new set of rules are intruced or even both

ddreams: bronze and higher: real opponents

Default avatar.png rmuskovets: i wonder how many people use the starter kit

Zenoscave: at least 4

MoMaT: @StyllyMyle, in this contest, the early leagues are not really important. you go through wood to learn the rules.

phord: 57

MoMaT: then you start playing for real.

MoMaT: to move from bornze to silver you need better score than the boss.

jrke: last time 3000+ bronzies became on silver opening day and this time under 24 hours of launch of contest

Default avatar.png rmuskovets: i went to bronze in under 3 hours this time

Default avatar.png MaslowP: can i check how to resolve the warning where my code is not reading all available input?

I have tried resetting to default code then inserting back all my code

ddreams: do you output more than one action?

ddreams: do you output an endline?

MoMaT: then you can fight further to get to gold, and legend.

jrke: tally your code with given input protocol

ddreams: are you certain you read all the input before you output?

MoMaT: @Jrke, unfortunately that's what happens when you use very weak bosses in wood.

Zenoscave: I'm off to bed. didn't realize how late it was gn

MoMaT: in contests with well constructed leagues it took some effort to get to bronze. not one line of logic.

Tiramon: MaslowP you must have missed something ... if you send me your code i will have a look at it, else it is guessing probably more than one output per loop or really not reading everything

resty-daze: just don't break or return when reading inputs

Tiramon: nice bot Zenoscave you did it =)

Zenoscave: thx Tiramon

jrke: what he did?

Zenoscave: beat tiramon

Default avatar.png MaslowP: okay ur right for the more than one output, thanks, i found it

Tiramon: top 10

Tiramon: and beat me ...yes

Zenoscave: lol I just hope it doesn't degrade too much by silver

jrke: and making you out of top 10

jrke: zeno is that algo bot or simple heuristic

Tiramon: i hate it when ide looses against arena bot ...

Zenoscave: ply 0

resty-daze: when will we have silver?

ddreams: you just sort the actions?

Zenoscave: No search but there is a scoring mechanism

Zenoscave: yeah

Zenoscave: monday resty-daze

resty-daze: thx cool

Tiramon: resty-daze monday ... click on the league in the ide and it shows you the dates of league openings

Default avatar.png rmuskovets: rank 333... nice time for a new submit

Default avatar.png rmuskovets: looks like this heuristic change is for good

Default avatar.png rmuskovets: why does it move me to rank 3k+ when i submit>

Default avatar.png rmuskovets: ?*

Default avatar.png NotSureWhyThisWorks: will gold and legend leagues open a few days after each other like silver?

jrke: yes

jrke: silver then gold then legend

Tiramon: i think it was monday, wednesday, friday

Default avatar.png NotSureWhyThisWorks: ok thx

Illedan: (╯°□°)╯︵ ┻━┻

geppoz: hi, bronze rules are the final ones?

Illedan: Bugs all over

ddreams: In your code or the contest?

Illedan: My code

ddreams: Yes, bronze rules are final

geppoz: ty

ddreams: Should be some way to pin answers here

geppoz: :D sorry

ddreams: Np, not your fault

itzluku: how can i do the following in python: list of tupels (x,y) ; sort list by 1st by getvalueofindex(x) and 2nd by getvalueofindex(y)

ddreams: probably a great answer to that on stack overflow

itzluku: meaning x and y have to be piped into a function first to get the value that i want to compare

ddreams: put basically that question into google

itzluku: bro

itzluku: im searching since hours

itzluku: i gave up

ddreams: ok, let me try

ddreams: https://stackoverflow.com/questions/25046306/sort-a-2d-list-first-by-1st-column-and-then-by-2nd-column

ddreams: sorted(l,key=lambda x: (x[0],x[1])))

ddreams: except instead of x[0] x[1] you use your function

schachmatt: does the referee in the github link work with brutaltester?

ddreams: that's the top link for "python sort 1st and 2nd"

itzluku: basicly i have x

itzluku: and i need to check (f1(x),f2(x))

itzluku: i guess

ddreams: Python is pretty cool

Default avatar.png NotSureWhyThisWorks: can't you just generate the tuples first and then sort?

ddreams: That's probably a good idea if your function is heavy, because it'll probably be called several times for the same x

ddreams: or you could memoize it

Default avatar.png NotSureWhyThisWorks: is anyone actually using the shade?

ddreams: since struct is searching 20 levels deep, certainly

itzluku: trying

ddreams: if not you're gonna get the wrong sun value

Default avatar.png NotSureWhyThisWorks: yeah thats true

Default avatar.png NotSureWhyThisWorks: I thought most people would be using heuristics at this stage

ddreams: generally you want that for searches too

itzluku: dude

itzluku: im so lost

itzluku: ill post what i got

itzluku: given a list of strings with numbers

itzluku: iGrow

itzluku: iGrow_t=map(lambda x:(x,x), self.iGrow)

itzluku: iGrow_t_sorted = sorted(iGrow_t, key = lambda x : (self.hexagon[int(x)].size,self.hexagon[int(x)].richness), reverse=True)

itzluku: and now i have the problem, i lost the index in that new tupel

itzluku: -.-

itzluku: prettymuch given a list of indices as strings ( possible cells to grow a tree) -> sort that by treesize then richness both in desync order

itzluku: prettymuch coding since 16h straight yikes

Default avatar.png NotSureWhyThisWorks: just make the tuples (size, richness, index) and then sort. Not the best method but simple

ddreams: simple is good

Default avatar.png NotSureWhyThisWorks: 16h is about 10 hours too long

ddreams: and in this case probably faster too

itzluku: yeh i know its not productive

itzluku: but fuck it its a jam

itzluku: iGrow_t=map(lambda x:(x,x,x), self.iGrow)

itzluku: iGrow_t_sorted = sorted(iGrow_t, key = lambda x : (self.hexagon[int(x)].size,self.hexagon[int(x)].richness,x), reverse=True)

Zanoshky: What is this game about?

Zanoshky: BFS?

itzluku: self.iGrow=map(lambda x: x[2], iGrow_t_sorted)

itzluku: like that?

itzluku: @Zanoshky na

ddreams: don't use functions in your sort

itzluku: there is a 8min vid on yt

Zanoshky: @itzluku which algorithm is this about?

itzluku: given a list of indices as strings ( possible cells to grow a tree) -> sort that by treesize then richness both in desync order

itzluku: but i just cant get these 1 line sort functions to work

ddreams: make the tuple with those values first

ddreams: then sort simply

ddreams: now your tuple is three times the same value, for no reason

itzluku: iGrow_t=map(lambda x:(self.hexagon[int(x)].size,self.hexagon[int(x)].richness,x), self.iGrow)

itzluku: like that?

ddreams: print it and see?

itzluku: well

itzluku: map objects

itzluku: aha

itzluku: wtf

itzluku: haha

TobiasA: can actions only be performed on trees once a day

TobiasA: ?

itzluku: depends on your div

TobiasA: i'm in wood 1

Developer.py: How can I change the possible actions?

itzluku: in bronze u can make as many moves as possible turn based, if both players WAIT then the next day begins

ddreams: you can still only output one action per round

itzluku: hm

itzluku: i think ill just do 69 for loops now

Developer.py: Can I not give my own output? Do i have to print the output that is given to me as `possible_actions`

Tiramon: you can create your own output as long as syntax is right

itzluku: u parse the output in a given format, so the game works ;)

Developer.py: oh okay

Developer.py: thanks a lot

JormaW: Can someone help me with the Enigma Machine decoding? I got the encoding right but not sure about the decoding part

Marchete: in fact you should check possible actions given by the game with your calculated possible actions, to validate that your simulation is right

jrke: can a tree casted in shadow can cast shadow?

Thienu: yes

Tiramon: sure

Default avatar.png Vischtor: Has someone else experianced rendering issues with the graphics window in the spring challenge? For me, there's only a greyish window with no graphics in it :( (Other games/challenges work fine)

Tiramon: Vischtor are you using chrome?

Default avatar.png Vischtor: yes

Default avatar.png Vischtor: latest version on windows

Tiramon: tryy another browser

Tiramon: there seems to be an outdated animation lib

Tiramon: should be updated soon, but currently it is a bit bugged

Tiramon: ff worked fine for most

Marchete: graphics are very cute, I like it

Default avatar.png Vischtor: Ok, will try :) Is there a ff plugin as well (I like the chrome plugin)

Marchete: I use chrome, version 90.0.4430.93

Marchete: maybe disabling GPU acceleration or smth

Tiramon: for cg local? yes there is a ff plugin for that =)

Default avatar.png Vischtor: Apparently i had hardware acceleration disabled, enabled it and things seem to work fine!

Marchete: :thumbsup:

Default avatar.png Vischtor: Thank you @Marchete for the tip :)

Tiramon: it is possible to disable hardware acceleration ... ok ...

Marchete: yeah, on some computers chrome crashes hard when hardware acc is on

Marchete: blue screen

Marchete: based on a true history

Hoyer: there are so many possible actions per turn damn

Tiramon: yes ... else it would be far to easy to make the 'perfect' bot

Hoyer: someone will still manage to get close :smile:

Default avatar.png BoBot: hey, if I try to join Coding Escape, I get a message You are currently #492, want to get early access?

Default avatar.png BoBot: does that mean I am that far down the line of applicants? also there is no mention that I can see of what I need to do to get the early access

mybk: checkout your email

Marchete: I have some doubt

Marchete: sun->2->3->1

Marchete: hmm nvm :D

LLG: still have no idea how to go about implementing eval function yet

ddreams: return game.score;

ddreams: add on from there :p

LLG: that's exactly where I'm at lol

Marchete: sum(w * bunch_of_data_from_board)

Marchete: try a lot of w coeff

Marchete: until you win

Default avatar.png BoBot: @mybk hey, do you know if they will send the e-mail immediately?

Fluxor: I do not see anything anymore when I log on stderr. Does anyone has this issue? Was stderr disabled?

ddreams: writing endline?

Fluxor: yes

ddreams: stderr works as always

Fluxor: strange, it was working yesterday indeed

Marchete: flush?

Fluxor: I will try and restart the browser...

ddreams: stderr generally flushes on endline

Fluxor: cerr << "TEST" << endl;

       cout << "WAIT" << endl;


Fluxor: stdout is properly read, but I do not see anythign on stderr

ddreams: probably something else in your code

Fluxor: even with a dummy test program like that...

Fluxor: I mean I reproduce with these 2 lines

Machinist: Hi

Code_Guy123: heyo

Machinist: I am new to programming

Code_Guy123: dw, u will catch the pace

ddreams: Fluxor, I reset to the default code and did it, worked well

Machinist: Thank You.

ddreams: Standard Error Stream: TEST Standard Output Stream: WAIT

Fluxor: ok I will try that

Illedan: Hm, games are so fast I get blocked from running :(

Default avatar.png NotSureWhyThisWorks: If I update code in the IDE and play the code without testing in the arena, will it affect the version in the arena?

ddreams: no

VizGhar: no

Tiramon: arena will always be effected when submited

Default avatar.png NotSureWhyThisWorks: ok thx

LLG: oh btw is it just me or is the Bronze boss really weak?

Marchete: yes

LLG: I'm still on my Wood code and it beats the bronze boss no problem

Tiramon: there is no bronze boss ...

Tiramon: and yes default is pretty weak

VizGhar: because that boss isnt cutting trees

Marchete: well, wood boss

LLG: oh wait yeah Default is not actually a boss lmao

Tiramon: oh yes wood bosses are also pretty week

LLG: somehow I thought it was

Tiramon: *weak

VizGhar: bronze boss will be introduced in moday (not sure about specific time) based on some player's implementation right?

Marchete: yes, probably at 50% bronze or smth like that

VizGhar: 50% seems too much, id go for 30% at max

VizGhar: we will see

Hasuzawa: If I can reach silver I am satisfied, never reached even 1 silver in bot programming

VizGhar: gl Hasuzawa

LLG: I spent the last couple hours getting the bitboards to (supposedly) work 😩

Hasuzawa: thx

LLG: I don't usually work with bitwise ops so it was a challenge

VizGhar: isn't it too early for bitboards LLG?

VizGhar: you already got some nice eval?

LLG: I just wanted to get it done first so I don't have to worry about it later on

LLG: last contest my BFS was slowed down because my bot took a very long time trying to generate game states

Marchete: what kind of bitboard

LLG: wdym what kind

Marchete: full board representation?

LLG: I have uhhh

VizGhar: what you are trying to represent with that bitboard

LLG: one for the soils

LLG: one for the trees

kuhnchris: I just noticed that my code is so bonkers that I just used random moves due to an comparision error

kuhnchris: still reached Silver :notLikeThis:

ddreams: silver opens on monday though, was a bug that made people silver

VizGhar: ++

kuhnchris: So we need to re-evaluate for silver then, or is it just carrying us over as soon as ilver opens?

LLG: I ended low gold last contest

LLG: if I have enough time to spend on this I'd probably shoot for high gold

ddreams: as long as your code beats the boss, you don't need to do anything

Marchete: just stay above the boss

kuhnchris: :thumbsup:,

Tiramon: atleast my bot stays in the top 20 :)

Hoyer: if i complete a tree is the ground underneath it still dormant until next day?

Default avatar.png NotSureWhyThisWorks: I don't think a cell can be dormant

Tiramon: only a tree

kuhnchris: Only the tree can be dormant

Tiramon: you can complete and directly reseed a cell

Hoyer: okay nice, that's what I wanted to know

Tiramon: if your opponent isn't trying to seed the same cell ;)

Default avatar.png RezaSi: when will bronze boss be released?

Nerchio: monday

Tiramon: monday, wednesday, friday are the release dates

Default avatar.png RezaSi: ok tnx

Q12: How do you calc the index on the grid of the neighbors of a given index on the grid? Do you built a dictionary for this?

Cukinoden: what does it mean dormant in the game please ?

Cukinoden: what the utility of it in bronze league

LLG: if a tree is dormant, you can't perform any action on it until the next turn

wlesavo: Q12 you can just make an array 36x6

Default avatar.png Prss: hi, any help in spring chellenge why i dont see game ? do i don't have plugins or smth ?

KiwiTae: Prss use another browser

Mark_Davis: uwu

Q12: Okay, I thought maybe there is a way of calculating the index, Thanks wlesavo

LLG: Cukinoden for example you can't GROW a dormant tree, you can't COMPLETE a dormant tree, you can't SEED from a dormant tree

Q12: " A dormant tree cannot be the subject of an action."

Cukinoden: ahh okey that's interesting

Cukinoden: because i wasn't take it in consideration in the past 2 leagues

Tiramon: Zenoscave stop beating me ;)

KiwiTae: struct bot gonna be gold boss? hehe

AntiSquid: bronze boss

Default avatar.png LordSkaven: I see a lot of people are doing the strat of only completing at the end of the game, interesting approach

struct: im still first?

mybk: ofcource

Asterixk: for now...

struct: yeah

struct: it wont last much longer

AntiSquid: nothing prevents you to improve

Default avatar.png NotSureWhyThisWorks: struct what kind of alg did you use? If you don't mind me asking lol

Illedan: He said Bogosort

Default avatar.png NotSureWhyThisWorks: Bogosort is too OP

struct: beam search, the only reason im first is because I tested the game

AntiSquid: that doesn't make any sense

AntiSquid: (bogosort)

ddreams: how long were your headstart though?

Default avatar.png NotSureWhyThisWorks: yeah fair enough. Just wondering how many people are using some kind of search alg

LLG: I know your depth is 20 struct

LLG: how about beam width?

struct: I started like 2 weeks ago, but I did not started instantly

struct: So I would say this bot is like 6 days or something

LLG: also the 4 numbers your bot says, what do they represent (if you don't mind me asking ofc)

struct: bot represents tree height for each height

struct: Also I wont reveal everything sorry :p

struct: beam width is a bit large though

Default avatar.png NotSureWhyThisWorks: I wonder if the if/else bots will last until the end of the contest

Hoyer: Hm why can you compete if you had a 2 week headstart?

Hoyer: Isn't that a bit unfair? Sorry for asking

LLG: if (winning) keepGoing else tryHarder

AntiSquid: depends what you mean by if else

AntiSquid: you can have a sim and good if/else and beat everyone

Default avatar.png NotSureWhyThisWorks: just algorithms that don't involve simulation or NN or anything

Default avatar.png NotSureWhyThisWorks: just heuristics

AntiSquid: does checking shadows count as sim?

Default avatar.png NotSureWhyThisWorks: I wouldn't count it as sim by itself

Tiramon: only if you check the shadows for the next turns ;)

LLG: ^ this

LLG: otherwise it's just using existing information, not simulating anything

AntiSquid: ok then your definition of if else can reach #1 at the end of contest

Default avatar.png NotSureWhyThisWorks: nice

AntiSquid: but that's why you check shadows Tiramon to see if you mess things up next turn lol

AntiSquid: man the goal post keeps moving @_@

Default avatar.png NotSureWhyThisWorks: I'm not submitting my better bots because its too early for this level of competition

AntiSquid: oh my

Default avatar.png NotSureWhyThisWorks: I only have a few tricks left up my sleeve to implement

Default avatar.png NotSureWhyThisWorks: lmao

Tiramon: i only check shadows to see the amount of days a specifc cell is in shadows

struct: I dont do that at all

AntiSquid: so fix it

Default avatar.png RezaSi: Is coding escape good? who tested it here?

AntiSquid: funny, ValGrowth wrecked the gocoder one contest and those guys wonder what hit them

eulerscheZahl: saw that too, congrats to ValGrowth

eulerscheZahl: but watching the replays is boring

struct: euler i made it past the 12 hours :D

eulerscheZahl: congrats

Marchete: link?

eulerscheZahl: at kutulu my nerfed version of my bot (wait every 10 turns, low depth) was silver boss. try to beat that

struct: :(

eulerscheZahl: https://www.twitch.tv/videos/1014023664

eulerscheZahl: i still don'T understand the mode how they determine the winner :D

eulerscheZahl: and chat is back to laggy, was fine at 5:30am

Developer.py: my output stream keeps giving me this warning " Warning: your code did not read all available input before printing an instruction, your outputs will not be synchronized with the game's turns and unexpected behaviour may occur." even though my code is at the very end

Default avatar.png LordSkaven: I beat euler, my life is complete

ddreams: you output more than one action probably

ddreams: or miss a newline

dbf: Developer.py do you use 1 command per turn?

Marchete: I beat it too

Marchete: and I remember everytime I can :D

Marchete: him*

eulerscheZahl: "it", how nice

Default avatar.png LordSkaven: you are a toad after all

eulerscheZahl: i just submitted my first dumb monte carlo

Marchete: full simulator?

Developer.py: thanks @ddreams

Marchete: you guys are fast :)

Tuan2.le: how many action can i act in a turn?

eulerscheZahl: yes, pretty much complete sim

ddreams: one per turn

eulerscheZahl: will probably step up for speed

ddreams: many in a day

eulerscheZahl: but features are there I think

Marchete: good

dbf: omg, mcts! eulerscheZahl do you have a holiday today? :)

Tuan2.le: and a day may have several turns right?

Marchete: mcts != monte carlo

eulerscheZahl: i took off the whole contest period

dbf: yep, monte catlo

eulerscheZahl: now that i know the game i see it as a mistake

ddreams: why?

eulerscheZahl: spent half the morning on youtube and watching Monk :D

dbf: will your boss aprove cancel of part of your vacation? :)

eulerscheZahl: somehow i'm still not convinced that I like the game

Marchete: why not

RockyMullet: it's kind of boring tbh...

eulerscheZahl: i think i could cancel it but I won't

Default avatar.png Tibu_9405: tennis

RockyMullet: I only coded for an hour so far, cause I'm not motivated, another mostly optimisation contest with very little interaction between players

eulerscheZahl: after all we have a release at work soon, end of beta testing (completely new program)

eulerscheZahl: best time to take off

dbf: yes, wise decision in this case

eulerscheZahl: i'm the only programmer :rofl:

RockyMullet: oh god only programmer

dbf: so release will be postponed? :)

eulerscheZahl: it's on 21st I think

kovi: i wonder why there was no additional element of poison tree or something

struct: How long will the backlog be once you come back?

eulerscheZahl: contest ends on 17th

kovi: all of us see it so similarly: optim with low interaction

eulerscheZahl: may future me deal with this, i'm on holidays

RockyMullet: kovi yeah would be nice to have some kind of pvp

eulerscheZahl: afk, getting hungry

struct: I agree with you rocky

Marchete: how's that different from UTTT?

Marchete: for example

struct: its just a different type of game

AntiSquid: so like last contest kovi

Marchete: but it's about placing stuff to cancel other's placement

Q12: yeah

kovi: exactly AntiSquid

RockyMullet: yeah I didnt like last contest either lol

RockyMullet: I was kind of hoping this one would be different

AntiSquid: well last contest didn't have so much crap to take into account

Marchete: mullets with lasers or similar?

ddreams: last contest you needed to think about your library of spells though

RockyMullet: a mullet with lasers ??? :O

AntiSquid: the shadow mechanic is the most annoying bit

ddreams: this seems simpler than the last one

LLG: have anyone tried to sim the opponent as well?

RockyMullet: yeah much easier barrier of entry for sure

Q12: I like the game - "A code of ice and fire", very nice thinking game and it is not about building a good sim

LLG: or is it just more time optimized to sim your moves

AntiSquid: haha, ddreams how so? you need to take into account costs and shadows and day cycle and tons of other stuff and you have to sim !!!

RockyMullet: much easier to visualize also

AntiSquid: you need sim for ice and fire too

ddreams: I mean, checking for shadows is a few lines of code

ddreams: cost is very simple

ddreams: no need to get different types of resources

Marchete: it's costly on cpu time

Q12: AntiSquid, I am in place 57 and not simulating a few turns ahead

Q12: Maybe I should? :sweat_smile:

DomiKo: Marchete shadows are very simple

DomiKo: if you do it right

Marchete: bitwise?

struct: mine is under 10 loc

DomiKo: ofc

AntiSquid: Q12 contest time is less than 24H, also i guess you found some good basic move selection

Marchete: then it's not "simple"

Marchete: staggering bitboard

Marchete: shifts etc etc

DomiKo: very simple not easy :sweat_smile:

AntiSquid: can't wait to see PM on bitwise approach, it seems really frustrating to me

Q12: AntiSquid Yeah

AceTea: la richesse des cellules est fixe aussi ?

Marchete: AntiSquid I'm trying https://www.researchgate.net/figure/Staggered-hexagonal-encoding-inherently-separates-each-row-in-the-bitboard_fig3_279031895

AntiSquid: #fr monsieur AceTea

AceTea: sorry

Marchete: shadows are shifts with || operators

Marchete: but I won't say that's simple

Nerchio: this is one of those games where getting legend will require reading research papers

Marchete: for top50 players? yes

Nerchio: :joy:

ddreams: funny, I went to uni with the guy who wrote that paper

AntiSquid: that one isn't less confusing than what i am tryng to do Marchete :/

ddreams: we played Hex

Marchete: it's confusing?

DomiKo: you need to map hex to 2D and it will be much simpler to think

kovi: rotating shadow is hard, but i think seeding is harder for bitboard

AntiSquid: complicated, hard to keep track of variables i mean

DomiKo: kovi true

struct: kovi create masks for seeding

DomiKo: struct you can't do random seed move really fast :(

Marchete: why not

Marchete: smits shared some random bit selector some time ago

Marchete: from uint64_t, pick a random 1

kovi: yeah, that is easier part

Marchete: what's the hard?

kovi: generating 3 range seed field

Marchete: ahh

Marchete: ok

TobiasA: ayyyy i am now in bronze league that took so long

struct: so create a mask for the middle

struct: it can seed everywhere at size 3

struct: and then shift it << or >>

struct: and then you create the lookup :)

Marchete: but how do you move the mask?

Marchete: to N bits?

struct: I dont anymore

struct: I use lookup for masks

kovi: but than you should check each slot

kovi: you cant do it for the whole board once

struct: yeah, I check every bit

struct: is it possible to do all the board at once?

kovi: or vica versa...you can shift boards of tree3 in all directions, but that requeres dozens of steps

Marchete: even if you do

Marchete: you'd need sourceID

Marchete: no?

DomiKo: "is it possible to do all the board at once?" for range 1 yes

kovi: you can get id "late"

DomiKo: for range 2? yes too

DomiKo: for range 3? not really

struct: What is different for range 3?

DomiKo: you can do it but it's slow

kovi: yes. shadow goes in only one direction. but this 6^3

DomiKo: yap

struct: wait we are talking about seed or shadow?

kovi: so probably better handling onebyone (as struct mentioned)

Marchete: seedmask << bitTree

Marchete: probably simpler

kovi: yes. either way its much slower than the usual x*x game bitboarding

Marchete: I thought shadow will be expensive, but you are right, seeding is

Marchete: and I need to avoid overlap on borders

Marchete: I don't have dist 3 on edges

kovi: that might be masked somehow

kovi: 8x8 has no dist either

Marchete: are you ignoring the enemy?

Marchete: as some are using beam search

struct: yes

DomiKo: that could change in future

Marchete: that's a bold move let's see if it pays off

struct: it probably will

struct: As I mentioned before, I tested in the void

jrke: struct are you using beam search?

struct: yes

kovi: beam is good in case of low interaction..,like for fall contest

jrke: ^+1 i agree

jrke: only learn and brew were affected

struct: also algos like smitsi are impossible here

Marchete: nothing is impossible

kovi: but im sure top will need more...because tiny differences in shadow can change total outcome

yoannCaplain: I loose because I timeout :(

yoannCaplain: that's harsh

Hasuzawa: consdiering the game is deterministic, wouldn't the only deciding factor for neraly perfect bots be the only random factor: i.e. starting terrain and shadow direction

kovi: i would opt for smitsi ...

ddreams: smitsi is what?

jrke: btw how can we prove that more than 20 trees can't be completed?

yoannCaplain: all my looses are timeouts, so my AI is not bad, I need to optmize

Marchete: UCT forest

struct: jrke it can be completed

struct: I did it before

kovi: in my precalc, 20 is possible

kovi: (theoretical precalc)

struct: https://www.codingame.com/replay/547788229

jrke: so why they just provided 20 nutrients if more than 20 can be completed? struct

struct: because its fine

ddreams: richness is always valid

struct: ~

Marchete: +richness

struct: ^

Marchete: v

Default avatar.png NotSureWhyThisWorks: you can verse yourself?

ddreams: if you're good at poetry

Default avatar.png NotSureWhyThisWorks: lmao

jrke: so nutrient will become 0 after 20 completion or anything else?

struct: yes

Marchete: note to self, use nutrient as signed

Default avatar.png Vimes: anyone else having problems with the c++ starter code? its not reading all inputs it seems

ddreams: no, it worked fine

ddreams: you probably output more than one line

ddreams: or don't read all the input

Default avatar.png Vimes: i'm using the blank starter kit and get the warning where it says that not all input is read

Nerchio: guys don't say you need to predict your opponent dont have time to write that :

The_ZimaBlue: when will silver league come to the spring challenge?

Nerchio: The_ZimaBlue Monday

DomiKo: 5/10/21

Nerchio: Domiko how many states you calculate in connect4?

RoboStac: Vimes - looks like the starter only handles wood 2, the part where it reads possible actions doesn't read the extra indexes on "GROW" / "SEED" actions

Tuan2.le: i cant understand what happens in Spooky Shadow

ddreams: nothing happens in the shadow

struct: you dont get sun points

Marchete: spooky == no sun points

Tuan2.le: can i grow up the tree lane on the spooky cell>

Tuan2.le: ??

ddreams: yes

Tiramon: spooky just effects gettings suns

ddreams: sorry, my joke might have been confusing

CylonSpace: will there be another rule in silver ? or bronze rules are the last ones ?

Tuan2.le: so, just no sun point right

Tuan2.le: thanks

DomiKo: Nerchio i'm not prting it?

Tuan2.le: this game is so fun

DomiKo: Nerchio i'm not printing it?

Tuan2.le: sun direction will change in next day right?

DomiKo: yes

Default avatar.png NotSureWhyThisWorks: I only just realized it gives you a list of possible actions. I have been coding the whole day

KalamariKing: Does the list persist in higher leagues?

Default avatar.png NotSureWhyThisWorks: no clue

Marchete: yes

Marchete: bronze rules are final

Tuan2.le: should i collect Size3 ASPS?

Tuan2.le: ASAP

ddreams: no

Marchete: I don't think so

Nerchio: in wood2 or wood1 why not

struct: my vs is all messed up after power went out :/

KalamariKing: awwh rip

Illedan: Send me your code and I can test it

ddreams: generous offe

struct: Do you also need the referee?

ddreams: r

struct: :)

KalamariKing: don't do it it's a trap

struct: Im sure you will beat it soon enough

struct: If you already didnt

struct: new meta https://www.codingame.com/replay/547818141

struct: ?

ddreams: nice

kovi: heuristic meta

kovi: lets wait for search based metas

jacek: :scream:

kovi: oh jacek is here, than i ping: nn based meta ;)

jacek: could be first contest when i bother writing simulator

Marchete: what meta?

kovi: keeping suns

KalamariKing: Why would you write a simulator from scratch tho? Isn't the source on github?

Marchete: ahh

Marchete: I see

jacek: KalamariKing you still need make move and undo move

ddreams: or put the entire state on stack

jacek: still you need to see how state changes after making move

ddreams: yeah, but you don't need to undo it :p

Marchete: I almost never undo in gamestates

KalamariKing: But couldn't you modify source? instead of writing from scratch?

struct: I have undo but dont use it

Marchete: you can

Marchete: but you get what you see

ddreams: source is in Java though, and not optimized

OldJohn: So struct do you have copy :-)

jacek: eeyup

struct: What do you mean OldJohn?

OldJohn: If you are not undoing perhaps you are copying states ?

struct: yes

KalamariKing: How complex would it be to write the sim?

KalamariKing: I haven't done anything like this before and I don't wanna start if its too complex and would take me a few days

Marchete: Buffer.MemoryCopy(A, B,sizeof(Board),sizeof(Board));

Marchete: problem solved

OldJohn: I hope you do not have pointers in A :-)

Default avatar.png StyllyMyle: Whats the use of nutrient

Marchete: ofc

KalamariKing: StyllyMyle its the base point value for completing a tree

Default avatar.png StyllyMyle: Wait whtaT?

Default avatar.png StyllyMyle: KalarmariKing wa

ddreams: when you complete a tree, you get nutrient + richness score

KalamariKing: If you have 20 nutrients, completing a tree yields 20 points plus the tree's richness score

KalamariKing: And then nutrients -= 1

Default avatar.png StyllyMyle: SO its basically richness

KalamariKing: Yes and no

Default avatar.png StyllyMyle: increase harvested point

KalamariKing: Richness is per cell

KalamariKing: Nutrient is per game board

KalamariKing: Richness can't change, nutrient does

Default avatar.png StyllyMyle: The tree planted on cell have varying points?

Marchete: richness change

KalamariKing: Depending on the cell's richness yeah

Default avatar.png StyllyMyle: which is variable of nutrient?

Default avatar.png StyllyMyle: Now i see

ddreams: so if your opponent completes before you, they receive more from the nutrient points

KalamariKing: Each CELL has richness. Each GAME has nutrient

Default avatar.png StyllyMyle: Uh i see

KalamariKing: The score for completing a tree is nutrient + richness score

Default avatar.png StyllyMyle: Richness of single tile

OldJohn: nutrient is decreased after the two players moves ?

KalamariKing: Nutrient is decreased when a tree is finished

Marchete: no I'm wrong

ddreams: richness never changes, apart from being unusable, right?

KalamariKing: Right

Marchete: I thought richness changed

OldJohn: Yes you are wrong !

struct: only nutrients change

KalamariKing: As far as I'm aware richness does not change

struct: if 2 players complete in same turn it decreases by two

struct: but both players get full points

KalamariKing: Richness is the color of the cell (more rather, vice-versa)

OldJohn: ok @struct it makes sense

Marchete: so I don't need richness bitboard

KalamariKing: I store the richness in the individual cells

struct: I have richness bitboard anyways

struct: but is static

Marchete: I can set as static

Marchete: that

struct: it might be usefull ;)

Default avatar.png StyllyMyle: btw

Default avatar.png StyllyMyle: I know both c++ and python

KalamariKing: Epic

Marchete: but with cellID it seems faster

Marchete: useful for what?

Default avatar.png StyllyMyle: but currently im doing python as i like it better

struct: eval

Marchete: ahh

Marchete: true

Marchete: yes

Default avatar.png StyllyMyle: should i change to cpp for future leagues?

Tuan2.le: So, any ideal which turn should collect Size3?'

KalamariKing: Depends

KalamariKing: That's the strategy part

ddreams: Tuan: the turn that gives you the most point over the entire game

Default avatar.png StyllyMyle: Someone care to tell me? Should i program this in cpp if i am aiming for top 10 and under

KalamariKing: Depends

KalamariKing: There are a LOT of python players

Default avatar.png StyllyMyle: Ye

KalamariKing: And python is slower, so something like a nn would time out

Tuan2.le: so, i must predict that turn-most point over the entire game ?

Default avatar.png StyllyMyle: But basically there is so many variables and so much actions

Nerchio: my prediction is it will be hard to be in legend with python

Default avatar.png StyllyMyle: I somehow thing slowness of python will be neglected

Default avatar.png StyllyMyle: think*

ddreams: I predict the language distribution will be like the last contest

MSmits: ^

Default avatar.png StyllyMyle: Hm

KalamariKing: StyllyMyle right, but if it is TOO slow, it will time out, limiting what you can do to simpler algos

Default avatar.png StyllyMyle: Hm yea

Default avatar.png StyllyMyle: Python is born slow

ashelkov: lets go to legend with javascript

Default avatar.png StyllyMyle: like 100x slower

Marchete: top10 and under won't have doubts about what lang to use

KalamariKing: Tuan2.le Yes, but also your future strat depends on your current strat (shade, sun points, etc) so you have to evaluate that too

ddreams: there was a python bot in the 34th spot

Default avatar.png StyllyMyle: hehe marchete :)

Default avatar.png StyllyMyle: Ok im changing language

MSmits: top 10 and under is everyone... ?

Recovery_disaster: Will the grid layout (index, richness) always be same same? So does it make sense to hardcode the graph ?

ddreams: yes

jacek: index yes. richness is per game

ddreams: or initialize it first round

MSmits: graph?

MSmits: who needs graph :)

Nerchio: richness is the same always except richness 0 isnt it

ddreams: yeah

KalamariKing: Recovery_disaster it will be different between games, but it is static per game

Hoyer: MSmits how's your bot coming along

MSmits: the difference in richness and starting positions is just enough so you can't hardcode your starts

MSmits: Hoyer it's ok, just working on my search. Hopefully have a fully working bot at the end of the day

Recovery_disaster: the distance is important for me :)

MSmits: think it'll be good enough for gold then

Marchete: hows your bitboard going, MSmits?

Thiesjoo: MSmits are you doing a full sim?

MSmits: bitboard was done last night

MSmits: easily

Marchete: seeding too?

Marchete: wow

MSmits: Thiesjoo yeah

Thiesjoo: Hmmm

MSmits: Marchete how do you mean seeding?

MSmits: I just have a cell lookup

MSmits: to look up where i can seed

MSmits: it returns a uint64_t with all locations that are seedable

Marchete: but then you need to traverse tree by tree

MSmits: of course

MSmits: there is no way to avoid that

Marchete: maybe you could

jacek: you can make lookups for that no?

Marchete: I mean you as bitmaster :D

MSmits: there are too many possible tree configs and seed sources

MSmits: it wont fit in 800 MB for surre

jacek: "hold my hex beer"

Marchete: you are fast :D

MSmits: I just wanted to avoid using a graph

Marchete: I'd finish by june

MSmits: and easily counting trees

MSmits: _builtin_popcountl

MSmits: the graph should work fine though, it's not like my way of doing this is a big deal in winning chances

Illedan: Random Forest algo should work here :D

Marchete: I just keep a count[] array :D

MSmits: it's more about the search and eval here

KalamariKing: How much memory can you use

MSmits: 780 MB or so

struct: I use __builtin_ctzll with masks for seeds

jacek: 768mb

Tiramon: KalamariKing https://www.codingame.com/faq

MSmits: struct i use that to loop over trees

Marchete: yeah, the loop using ctz

struct: and to extract the bits indexes?

MSmits: honestly, dont worry too much about bitboarding this. It's not worth it if you're not familiar with it

MSmits: struct yes

Tiramon: nice struct you still have 90% wins :)

MSmits: just make your state somewhat compact so you can have many of them and not be too slow

struct: thanks

struct: It wont last much longer

Marchete: compact like 80bytes+?

Tiramon: yes bots are improving fast

KalamariKing: Tiramon thanks

MSmits: Marchete my state is around 60 bytes, maybe a little less

MSmits: didnt check how its packed with the uint8_ts and all that

MSmits: but if you make it 120 bytes or something it should not matter that much

MSmits: memory wont be limiting here, its just caching will be a bit slower with larger states is all

Marchete: I won't pack a lot

struct: mine is 120 I think

struct: I didnt really care about size

Marchete: like uint8_t :1 nor anything near

Marchete: going C#

MSmits: yeah i just naturally make things small because i am used to that.

struct: my scores, suns, nutrients are all floats

MSmits: from all the boardgaming

MSmits: it's all uint8_t for me :0

Marchete: int8_t wait0;

Marchete: :sunglasses:

Marchete: let's waste bits!

MSmits: i actually have bools for those currently

MSmits: but i guess they can be 1 bit :)

Marchete: I also will have counts[8];

Marchete: maybe I can popcount

Marchete: but maybe it's more expensive

MSmits: I have counts[4] with uint64_t owner

MSmits: = smaller

MSmits: brb walking dog

kovi: illedan: i like random forest idea

kovi: but monte carlo tree search is also good

Illedan: :)

ddreams: in what game would using random forest be more appropriate?

struct: I also have mcts implemented

struct: but didnt work aswell as bs

Murat_Eroglu: what is bs?

Illedan: bullshit

struct: beam search

kovi: yes, smitsi is the way to go, between bs and mcts

struct: I think MSmits will disagree

Tiramon: oh nice some small adjustment with shadows put me back in the top100

Tiramon: *top10

Marchete: struct, you are 2nd

struct: :'(

Tiramon: :eyes:

Thiesjoo: :eyes:

Tiramon: and just because you got divided by zero

Nerchio: :eyes:

Tiramon: hey almost 24h

Sakisan: :eyes:

Marchete: people are fast

struct: Guess its time to start coding again

Nerchio: 3 pythons in top6 is nice to see, it wont last long though

Marchete: I'm still at hello world

struct: Guess its time to submit my better version :evil:

Marchete: this isn't your final form

Default avatar.png Shadowcool: hi

Dr-D: The final forms are submitted on the last hour or so =D

struct: I dont really have another version :(

struct: I have but has similar win ratio

Thiesjoo: Time to write one than

Dr-D: 2nd is fine ;)

Marchete: lol

struct: its like 50 vs 50 against this one

Marchete: CGBenchmark then

Dr-D: To make you feel better struct: I m #2353

Dr-D: ;)

Marchete: playing against yourself sometimes is overfitting

struct: at least I was beaten by a c++ bot

Illedan: lvl 3 smurf?

Illedan: reCur se again?

Dr-D: The game is on! There are 10 Dart solutions O.o

struct: Maybe

Marchete: I'd say no

Marchete: smurfs use weird countries

struct: is germany weird?

Dr-D: It is!

Dr-D: I should know =/

struct: Ok, its finally over

struct: I was hoping my bot would last 8 hours it passsed

kovi: chokudaisearch is taking over

struct: chokudai is like expandable beam search right?

DomiKo: yes

Bleki: does anyone having issue with the visual game part not loading in the browser but having a gray rectangle?

DomiKo: struct fixed depth, not width

struct: ok I might give it a try

Default avatar.png StyllyMyle: Hey

struct: So from i read now it reaches end then increased with

struct: then go again

struct: and so on

Default avatar.png StyllyMyle: anyone having problem with c++ template code

struct: is that it?

Marchete: that makes any sense?

KalamariKing: Bleki yeah, what fixed it for me was force-closing the browser and force-clearing its cache

kovi: bleki, try with different browser maybe?

KalamariKing: other people suggest turning off and then back on hardware acceleration

Tiramon: bleki is a problem with an outdated animation lib and chorme that should be updated soon

Marchete: it isn't a worse MCTS-EPT?

struct: https://github.com/mayoko/library/blob/master/ChokudaiSearch.cpp

Default avatar.png StyllyMyle: I am using c++ template, and in the compute_next_action the first time func is called, all values and data is invalid

Default avatar.png StyllyMyle: or null ptr

Tiramon: yes also heard that hardware acceleration should be a solution

KalamariKing: are you running your search algos on every possible move? (or at least ruling out horrible moves?) Or are you running only a subset, like only a few cells or only 'complete'

eulerscheZahl: hey struct you are at 2nd place

struct: I know euler :(

Tiramon: yes he got divided by 0

AntiSquid: oh another alt

KalamariKing: anti whom

KalamariKing: Also, with your search algos whatever they may be, do you play out to the end of the game, or only n days ahead

Default avatar.png adamek123123123: i need help

Default avatar.png adamek123123123: add me on discord

Default avatar.png adamek123123123: WolfGamer#0027

AntiSquid: no

Default avatar.png adamek123123123: yes

eulerscheZahl: at the moment I play to the end to count my suns

eulerscheZahl: but will probably change that

eulerscheZahl: applying actions in the current + next turn only

AntiSquid: call your doctor instead

Tiramon: ask your question or you will still need help, else ask your question in the cg discord channel adamek123123123

KalamariKing: So what's the difference between monte carlo and beam? correct me if I'm wrong but isn't beam just monte carlo, but only keeping the n best moves?

AntiSquid: @_@

Marchete: monte carlo = do n random moves keep the best score

Marchete: beam search = play 1 turn, sort all sims by score, keep N best

Marchete: repeat N times

eulerscheZahl: repeat M times

AntiSquid: Kalamari http://i2.wp.com/www.russianfilipinokitchen.com/wp-content/uploads/2015/04/crispy-fried-calamari-01.jpg

Marchete: M

Marchete: true

Marchete: I think I confused you more

AntiSquid: you answered your own question

KalamariKing: Could you create a pseudo-blend with beam search, but going a few turns into the future

KalamariKing: Marchete surprisingly I'm keeping up

AntiSquid: where's your bot?

Marchete: just go beam search

KalamariKing: mine? not on the leaderboard, probably

Marchete: play all moves, keep N best

Marchete: then go to the next depth

Marchete: and do the same

KalamariKing: I had one in Python but Python sucks for search algo's so I switched to java. since I'm having trouble implementing the python code into java, I'm rewriting but this time with a search algo

KalamariKing: By play moves, you mean actions, right? and keep whatever gets the highest arbitrary score, determined by suns, actual score, etc? Do other factors go into determining the 'best' move, like future shade potential?

KalamariKing: I'm way overthinking this aren't I

Marchete: it could be

Marchete: like directional neighbours

Marchete: eval is a tricky thing

KalamariKing: I think I'm gonna start simple and I can add params later

Marchete: exactly

KalamariKing: I haven't gotten out of wood 1 yet so I think I've got a while to go

Marchete: it seems that turn==0 is grow tree 1

shashwat986: Do all the good players run something like monte carlo?

Marchete: then go to center

shashwat986: I'm building a simple rule-based scoring engine

KalamariKing: Alright well thank you all, this has been very informative

eulerscheZahl: monte carlo is a very primitive search, it will get more sophisticated at the top

eulerscheZahl: currently you can probably still climb up without any search

eulerscheZahl: but it will definitely change during the contest

eulerscheZahl: 9 days to go

KalamariKing: I just don't wanna pour hours into building a bot, just to have to scrap it and pour another 3 days into it

klmn: how did they manage to print info (the coordinates)?

KalamariKing: I'd rather grind it now, improve it later

klmn: https://www.codingame.com/replay/467342481

KalamariKing: klmn if you add anything after the command and potential info, it will get displayed there (e.x. "WAIT info" will display "info", "GROW cellid info" will display "info", etc)

KalamariKing: oh youre in a different game

Recovery_disaster: Just put it at the end of your commands

klmn: yea, different game, but should be same idea

klmn: oh ic, thx

KalamariKing: idk, debug mode maybe? its in the game player window thing settings if its available

Scarfield: many games on CG has the option to output "expected output" + " " + "your message"

KalamariKing: Oh sick

KalamariKing: I thought that was unique

Erzow: Hey, i have a problem with the 100 ms limit per turn. I reset my timer at 0 every turn but at 0,070 ms it "crash" because i exceeded the time limit ? Any idea ?

Scarfield: when do you start your timer?

struct: you dont start the timer at the right place

Scarfield: it should be started right after reading the first input

Erzow: I start it just before the parsing every start of turn

KalamariKing: Are the cells in the middle always safe or will they get blocked up

Scarfield: thats why then, start it after reading the first input :)

Erzow: Well, if i start earlier i should have less time so doesnt really make sense

KalamariKing: Erzow I think there's a little overhead with whatever language you're using

KalamariKing: try starting it as soon as you can in execution

Scarfield: 2 bots compete, your time starts when you get the input, if you start a timer before that, you are starting the timer before the referee thinks its your turn

Erzow: Scarfield, if i start the timer before the parsing, than it mean that i will stop my simulation at 99 or less. I can put it just after i read the first input but it will be worth

Erzow: worse*

v1993: I'd like to ask - where can I suggest improvements to template generation for specific language?

Default avatar.png ErrorRazor: You're starting your timer before your turn has actually started

KalamariKing: Your timer could also just suck

jacek: lets build it into vacuum cleaner then

Scarfield: hm misread your first comment Erzow, to utilize all the time you get, you should change when you start the timer. but this could maybe be you hit an infinite loop after 70ms. But i guess you errorprint a lot, that takes time and might be the issue

ntsd: What happen to go starter on spring challenge

KalamariKing: they probably decided go was gross

struct: losing points for winning matches :(

jacek: and yet theres js starter

KalamariKing: You have a point

jacek: struct i know that feel from stome games

jacek: some even

Scarfield: some odd

Zanoshky: Hey struct, what kind of algo did you fo with?

struct: beam search

Erzow: Yeah it might be errorprint, i dont think i hit an infinite loop after 70ms because all 20 first round are fine, thx for the help Scarfield ^^

Zanoshky: thanks mate!

jacek: youre welcome, check

Scarfield: np :)

darkhorse64: I thouught there was too much interaction between players for it work (shadows, seed planted = void space taken) ?

CEE-JAY: hi

struct: I ignore that enemy can make actions darkhorse64

ZarthaxX: darkhorse64 maybe its true but for now you can get high ignoring him

CEE-JAY: hello

Scarfield: thats some blissfull ignorence getting from it

Scarfield: *high from it

darkhorse64: for a bs, i guess so. Like the previous contest, you don't need to go too deep because the sim is completely unvalid after a few moves

AntiSquid: ignorance* ScareAByte

AntiSquid: Scarfield

AntiSquid: funny username though, accidental ping sorry

Scarfield: sorry for being ignorant

CEE-JAY: hahaha

Scarfield: np, muted the site long time ago :)

darkhorse64: Sunny here, code will have to wait

CEE-JAY: let have a clash guys

eulerscheZahl: during a contest?

darkhorse64: :scream:

Illedan: Ever?

eulerscheZahl: treason!

AntiSquid: ban ?

darkhorse64: :hammer:

ZarthaxX: darkhorse64 you are crazy

Astrobytes: Did someone say ban?

ZarthaxX: social life = null by these times

darkhorse64: why

darkhorse64: ?

ZarthaxX: Astrobytes get him!

Scarfield: xD

ZarthaxX: darkhorse64 im kidding, i would do the same

Astrobytes: :grin:

ZarthaxX: its also sunny here, perfect for taking a walk

ZarthaxX: contest drains your life

darkhorse64: fresh air is good for brain cells and growing trees

ZarthaxX: this man got a point

darkhorse64: I'll write the code while cycling

Astrobytes: It was sunny here but then I washed some clothes. now it's raining.

darkhorse64: afk

Scarfield: yea weather here is trolling as well

jacek:

ill-be-waiting-outside: hi

martinpapa69: the dormant flag is cleared when day % 6 == 0 ?

martinpapa69: i cant find it in the source

eulerscheZahl: what are you talking about

ddreams: dormant is cleared every day

Scarfield: "Performing this action impacts both the source tree and the planted seed. Meaning both trees will be dormant until the next day."

eulerscheZahl: dormant is when that tree alraady had an action on the current day

ddreams: there are many turns in a day

MSmits: or 1

eulerscheZahl: chat is so laggy i'm tempted to create an alt account

ddreams: worked well after refresh here

RoboStac: moderators get extra laggy chat as a bonus

martinpapa69: oh 6 x gameturns != 1 day. 1 gameturn == 1day

struct: I just keep a tab just for chat

eulerscheZahl: https://imgur.com/a/BmQQwpa find the scrollbar

RoboStac: no, you can have many gameturns in a day - a day ends when both players wait

struct: avatars donot even load for me

struct: dont*

eulerscheZahl: take your time and read the statement again Csipscirip

kovi: nice new name csipcsirip! mc = heur

kovi: mc ~= heur for eulerscheZahl

martinpapa69: i never read the statement

jacek: are you ceg alt?

struct: Never read the statement

cegprakash: lol

AntiSquid: is that csipcsirip ?

miszu: hello all

cegprakash: eulerscheZahl u don't have to reply here if u don't want to answer

cegprakash: I don't know what u guys get by insulting someone

cegprakash: if u can't help

cegprakash: please stay out

jacek: oO

struct: who insulted who?

miszu: the spring challenge looks like a Catan game

ddreams: both have hexes

geppoz: miszu it was the same my first tought

ddreams: anything else similar?

miszu: resources gathering by quickly surverying the info

ddreams: not really

miszu: some richness going on there

geppoz: richness of territory

Default avatar.png NotSureWhyThisWorks: can you plant on richness=0 squares?

ddreams: nope

Default avatar.png NotSureWhyThisWorks: oh wow

Default avatar.png NotSureWhyThisWorks: didn't know that

Default avatar.png NotSureWhyThisWorks: no wonder my bot is shit on those maps

ddreams: 0 for unusable cells. Nothing can grow on them.

miszu: people will think I am old school but it's good to read the rules before starting to code

geppoz: uhm not clear what happens to input when you sleep

jacek: :unamused:

ddreams: no need, chat will explain everything

martinpapa69: ye but its rly long

ddreams: it's clear, if you read it

geppoz: next data received is the "day" int of the next day?

ddreams: Players that are asleep do not receive input.

geppoz: so after outputting "WAIT", your read action will unblock on the next "day" int, correct?

miszu: btw any chess players that plays regularly on ches.com

miszu: chess.com *

martinpapa69: when both the game recieved a wait action from both players, the new day begins. IMO

martinpapa69: -both

Hasuzawa: I like this challenge, even crappy programmer like me who cant implement any algorithm can just plant and grow at best spots.

DevLorenzo: A question

ddreams: but from the perspective of your player the next day begins immediately

jquivogn: miszu yes sure

miszu: challenges are made for everyone, but you have to be a pro to reach high leagues

DevLorenzo: On the game: CODERS STRIKE BACK - I just started playing. I'm Rank 1 in Wood 2. How can I rank up to Wood 1?

DevLorenzo: Thank

miszu: git gud

ddreams: Try writing code

miszu: but being git gud is superior than writing code

DevLorenzo: I'm first

ddreams: It should bump you up automatically soon

casmith789: you have to wait until 100% of your games have been played if you are beating the boss then you will be promoted

Scarfield: your score has to be higher than the boss score when at 100% submit

dbdr: nice Illedan

Mourfette: I've found a problem with the csharp starter kit, don't know if it's known. the sun and score inputs were reversed, so I started the game with a score of 0 and myu sun at 2

Mourfette: inputs = Console.ReadLine().Split(' ');

           game.mySun = int.Parse(inputs[0]); // your sun points
           game.myScore = int.Parse(inputs[1]); // your current score

DevLorenzo: So if I'm first should I update my code or just continue to test in arena?

ddreams: wait until all your matches have finished

Default avatar.png StyllyMyle: Guys

Default avatar.png StyllyMyle: Im using started cpp template and the player is saying ```Warning: your code did not read all available input before printing an instruction, your outputs will not be synchronized with the game's turns and unexpected behaviour may occur. ```

casmith789: it is because you are printing out before reading all the input

Default avatar.png StyllyMyle: Yea

Default avatar.png StyllyMyle: i understand the meaning

ddreams: or you output more than one line

Default avatar.png StyllyMyle: but im using starter cpp template without any modification

RoboStac: the cpp starter has a bug once you get past the first league - it doesn't read the possible actions correctly

Default avatar.png StyllyMyle: Exactly

Default avatar.png StyllyMyle: sit

casmith789: save the actions to a string then output it at the end

Default avatar.png StyllyMyle: shit

Default avatar.png StyllyMyle: :(

ddreams: what?

Illedan: thx dbdr. Nothing good yet

Default avatar.png StyllyMyle: I am so wasting my time for this template

ddreams: I used the starter code and had no such problems

Default avatar.png StyllyMyle: thanks for tellin theres bug

jacek: oO

Default avatar.png StyllyMyle: Cpp?

ddreams: yes

Default avatar.png StyllyMyle: weird

casmith789: I used the cpp code and had that issue but it was because I was doing that

struct: Illedan stop :(

ddreams: however, I got that error when I made a mistake

AntiSquid: the IDE starter RoboStac ?

RoboStac: not the ide stub, the starter you can download from github

ddreams: Oh, ok, I don't know about that

RoboStac: https://github.com/CodinGame/SpringChallenge2021/blob/main/starterAIs/starter.cpp#L94 <-- only handles "COMPLETE" so when GROW/SEED are possible it fails

ddreams: IDE stub is fine

Default avatar.png StyllyMyle: Eh

Default avatar.png StyllyMyle: Now i see

Default avatar.png StyllyMyle: welp

AntiSquid: there's a d starter :o

Tiramon: for some languages ...

Default avatar.png StyllyMyle: Starter code aint there for higher leagues?

wlesavo: oh, they added cpp starter, yeasterday there were only 4 starters i believe

Default avatar.png StyllyMyle: i though they are giving templates

Default avatar.png StyllyMyle: so i can code without doing those boilerplate stuff

Default avatar.png StyllyMyle: nvm, i guess its time to PR the repo! Bye :)

ddreams: First attempt at search: bot sleeps 100% of the time

ddreams: sleepy boi

Majeck: Could somebody link me to the CG calendar?

Rag: we only get bronze boss the 10?

ddreams: until then, you have struct as the boss

Rag: true

struct: im not first anymore

struct: illedan should be

ddreams: you'll always be first in my heart

Illedan: Soon struct.

ZarthaxX: tm

Illedan: Just found a bug

ZarthaxX: already on second day??

ZarthaxX: this dude and his GAs

Illedan: Correct

eulerscheZahl: he learned that from MK

struct: I dont know GA :/

jacek: i wonder if ms has nice way to print the board

ZarthaxX: just use spaces

AntiSquid: wow this code is ugly

Default avatar.png GeRiY: Hey gyus

Default avatar.png GeRiY: i have problem with test video

Default avatar.png GeRiY: its stop playing, but the code is executed by the way

ddreams: gray?

Default avatar.png GeRiY: someone knows hot to repair it?

Default avatar.png GeRiY: if you said to me ddreams its not gray

ddreams: tried to reload the page?

jacek: do you get gray replay

Default avatar.png GeRiY: nope, i dont think so its needs

Q12: I had it a bunch of time also, I click on the REPLAY AND SHARE button to open the test video on a new page

ddreams: first rule of computer fixing: turn it off and on again

miszu: and first rule of debugging: print statement everywhere with word ("HERE")

Zanoshky: Can you find out if you and opponent targeted the same field?

Mourfette: HERE1 HERE2

Q12: :joy:

ddreams: I guess you can tell that you didn't plant a tree there

miszu: BAD HERE

miszu: REAL HERE

Mourfette: I nezed to find a better way to check adjascent cells at distance X because using the neighbors thing is aweful

Mourfette: need*

LePrat: Can a shadow of one of your tree cover another of your own tree ?

Mourfette: yep

miszu: Mourfette, you could precompute all distances given X

LePrat: dammit

Tiramon: Zanoshky you seed a tile and next turn it is not seeded

Mourfette: shadows do not disciminate

Mourfette: +r

miszu: like a function that takes a grid and an X that returns a list of valid grids

miszu: and you precompute all

KalamariKing: Mourfette find some way to turn the spiral-indexing into 3d hexagon space; the cell adjacent to cell (x, y, z) is (x+1, y, z) or (x, y+1, z), etc

ddreams: do you do that, Kalamari?

PatrickMcGinnisII: dropped 300 rank overnight, expected

KalamariKing: ddreams planning to

PatrickMcGinnisII: Illedan makes an appearance

KalamariKing: just gotta find the algo to transform between the two

ddreams: you could also just precompute all the distance2 and distance3 neighbors on startup

KalamariKing: should I factor in sun cost into my eval function or not?

ZarthaxX: makes sense

AceTea: is the cpp started kit working for you ?

AceTea: *starter

ddreams: the IDE stub code worked well, but several have reported a problem with the starter AI code

AceTea: that's what I thought

ddreams: something about not reading grow/seed actions properly

AceTea: I also have a similar issue with IDE stub code.

ddreams: then you probably do something wrong

ddreams: like outputting several lines, or no lines, or no endline

ddreams: or breaking before all the input is read

AceTea: Well, I was printing in the console the command´, I was sending GROW 26 but it was receving SEED 26 **

AceTea: really strange

ddreams: probably looking at a point after you have sent two commands already

emh: hmm I actually donated to tree planting in India once. it's called Chauvery Calling and Sadghuru is the main advocate. so maybe it will help me win the contest ehehe

dbdr: :+1:

wlesavo: the question is if you xor and byte shift the seed will you get a pseudo tree

ZarthaxX: :rofl:

TobiasA: i am using sublime text so how can i print the debug stuff to the sublime text console

-oa-: hi all!

DevLorenzo: hi

KalamariKing: TobiasA I really don't know

KalamariKing: I didn't think sublime could RUN the code

struct: What is this stuff called, I cant remember. "#define _DEBUG" "#define _MSC_VER"

ddreams: preprocessor directives?

KalamariKing: it says something to the preprocessor

struct: thanks

ddreams: I'd probably call them "defines", but that seems too obvious

struct: yeah, but I want to set them on project level and couldnt remember the name

KalamariKing: If I remember correctly, every time that 'variable' comes up it gets replaced with the constant it corresponds with

KalamariKing: right?

Nagatwin: it's a plain text replacement

KalamariKing: Yeah

Nagatwin: could be macros

KalamariKing: That

ddreams: more complicated than that too

ddreams: as in the defines above

ddreams: no replacement

Nagatwin: true

Default avatar.png AeroFufel: Sometimes I get lower just by resubmiting the same strat. Which gives anxiety to touch anything... it's pain for my mind :(

JohnnyLuke: find an opponent better than your bot that uses a static algorithm and just replay against them over and over changing your params

Marchete: go Ille go!

Maliamnon: AeroFufel - I went from 140 to 399 overnight by doing nothing - gotta improve!

KelvinAndHubbles: yea, last night I lost like 600 places from 600 to 1200

Default avatar.png MrFruit: yikes

MSmits: mmh i think my action generator works now, tried a random action selection and all actions are legal. It just never completes a tree because there are so many seed actions

MSmits: and grow too

jacek: MSmits you have any neat way to print the board?

Nagatwin: Got the samme issue

ZarthaxX: i dont get how you do an action generator of this lol

Nagatwin: I had to add some weight to grow wait and complete

jacek: i have action generator too. now i need to make state change on action

MSmits: just a neat way of printing a uint64_t bitboard in the shape of this map

Default avatar.png MrFruit: http://chat.codingame.com/pastebin/027800c2-d8cf-4e2c-8e71-eeb6b8deff87

Marchete: how many actions, Smits?

Default avatar.png MrFruit: Oh the heck

MSmits: in my case only 20 or so

Nagatwin: you can have up to 37*37 ish seed actions

MSmits: but thats because it never gets big trees either

ZarthaxX: MSmits move generator doesnt fit in one variable i guess

MSmits: with big trees, you can seed all over the place

ZarthaxX: as there are 3 types

MSmits: i just have an action type + action index

ZarthaxX: lots of loops

ZarthaxX: okey

MSmits: enum for type

ZarthaxX: but seeds needs 2 things

ZarthaxX: action indx is both i guess

Marchete: enum is for weaks :D

ZarthaxX: :rofl:

MSmits: seedChild.actionIndex = seedOrigin + 37 * seedTarget;

ZarthaxX: yeah thought so haha

Marchete: type + idx0 + idx1 for me

Marchete: each one 1 byte, I'm lazy

MSmits: could put the type in there too i suppose

MSmits: trying to keep it readable. Can always compress state further if i need to

Marchete: to save 1 byte?

Nagatwin: I mean, actions ain't too lmimiting in memory usually anyways

ZarthaxX: but you enjd populating an array

ZarthaxX: right

Nagatwin: limiting*

ZarthaxX: and then you just iterate it

MSmits: yeah for now

ZarthaxX: isnt it better to play actions on the moment you gnerate them?

MSmits: i will convert this to a system where i generate child states for beamsearch

ZarthaxX: i always thought it added complexity

ZarthaxX: i see

MSmits: sure yeah for a tree based search

Marchete: any kind of pruning?

ZarthaxX: you want to prunne moves before applying?

MSmits: i dont know yet, maybe

Marchete: or letting the beam do the job?

MSmits: can always hash stuff to remove duplicates

ZarthaxX: aight

Marchete: I see zobrist here

ZarthaxX: but it was more of a general question, if you generally play the m,oves as you generate them

ZarthaxX: or you do the array approach

ZarthaxX: :thinking:

Marchete: like a big game state

Hjax: good morning

ZarthaxX: hi Hjax :*

Marchete: with few changes

MSmits: ZarthaxX i play them as i generate them in minimax

ZarthaxX: excellent

MSmits: but for bs you need to make a list and do nth element

ZarthaxX: have you tried both alternatives?

ZarthaxX: yes yes

MSmits: for this contest i havent tried anything yet

ZarthaxX: i mean beam search is done after you have the states tho

ZarthaxX: but well

MSmits: you get the states for many depth levels

Marchete: do you prefer beam search over smitsi!?

Marchete: sacrilegy

MSmits: in this contest, probably yeah

ZarthaxX: i dont get you lol

ZarthaxX: i meant that in each depth you throw some states

MSmits: yeah you do

ZarthaxX: but thats AFTER applying the actions to actual state

KalamariKing: What's smitsi

MSmits: i copy state and apply action

ZarthaxX: so i dont get why you say the list thing here

Marchete: jk, smitsi is hard because of the move generation

MSmits: well say you have 1000 states

ZarthaxX: it can be done on the fly as you generate moves right?

MSmits: and they generate 40k children

ZarthaxX: sure sure

MSmits: you dont know where the cutoff is

MSmits: so you just store them

ZarthaxX: but you mentioned a list

ZarthaxX: thought list of actions

struct: you cant beam and prune while applying

MSmits: oh noes

ZarthaxX: but you meant of states

MSmits: not actions

MSmits: yes

MSmits: i dont make an action list

MSmits: thats pointless

ZarthaxX: you confused me coz you said

ZarthaxX: http://chat.codingame.com/pastebin/45d0dcbf-fed4-4b30-9c8b-ee06df9e11c9

MSmits: yeah sorry

ZarthaxX: you changed the thing you were talking about haha

MSmits: probably yeah

Nagatwin: MSmits is non deterministic

Nagatwin: that's why

ZarthaxX: okey

MSmits: you mean fundamentally?

Nagatwin: :nerd:

MSmits: I have a fixed seed though

Nagatwin: That's convenient

MSmits: allright, now the scary part... coding the actual BS

MSmits: It always feels messy, keeping two arrays and swapping pointers and such

Hjax: i was messing with bitboards yesterday and just ended up frustrated with how messy it ended up

Hjax: not as easy as bitboarding othello

MSmits: takes a lot of getting used to Hjax.

MSmits: othello isnt easy either

MSmits: at least generating the moves isnt

jacek: othello has bitboards codes and tutorial everywhere

MSmits: if you want, i'll share my bitboard stuff after contest

v1993: Is there actually much of a use for list of valid actions? It seems easier to just ignore them and compute thing yourself.

AntiSquid: ok MSmits

Hjax: my move gen for othello is pretty simple, its just dumb7fill

AntiSquid: setting reminder

Marchete: I can share if I ever have one working

Marchete: but it won't happen in a long time :D

MSmits: it's not really anything fancy, my bb for this game. But it works and I like it. Most of you probably wouldnt like it

AntiSquid: struggling a bit with shadow removal @_@

KalamariKing: v1993 I am by no means good at this stuff, but I personally use that to evaluate valid moves. there's no use making your own if its already done for you

Hjax: this game just seems like theres a lot of state, 8 bitboards just to represent trees, plus score, dormant trees, and sun points

ZarthaxX: just some bytes

ZarthaxX: :P

Marchete: 4 tress + 1 playermask

ZarthaxX: ^

Marchete: trees

AntiSquid: don't think they had bitboards in mind for this Hjax

jacek: everything can be bitboarded if youre brave enough

ZarthaxX: might not be efficient

Marchete: bitboard PCR :D

Hjax: if i want to do any sort of reasonable search i need a fast board representation

MSmits: Hjax compared to other community contests the state is quite simple

MSmits: but compared with boardgames it isnt

AntiSquid: quite sure crystal rush was worse for bitboards

Hjax: crystal rush was also worse for search

Hjax: at least i wasnt doing any

MSmits: CR was worse for sure

kovi: hjax fast or compact?

Hjax: i often think of those as the same thing

kovi: (ok bb usually have both, but may not here)

kovi: and for bs compactness is also not so important than for tree searches

MSmits: depends on the treesearch too

MSmits: for minimax you dont need compactness

MSmits: generally

AntiSquid: hah even kovi calls this game bs

MSmits: because you're not storing states

MSmits: (like in mcts)

MSmits: i should say nodes

MSmits: that sometimes have states

MSmits: I guess it's different with TT, then you need to store stuff with minimax as well

MSmits: but TT often isnt worth it

Hjax: you dont necessarily have to store state in mcts either, in othello i only store the move on my tree

MSmits: right

MSmits: i store the state on my tree in othello

MSmits: because it's 128 bit, so pretty small

kovi: yeah, it depends on cost of play action

MSmits: yeah

Machinist: Hi. I am new to programming

MSmits: hi new to programming

Default avatar.png AeroFufel: Hi new

Machinist: I am stuck in Coders Strike Back Bronze League

Machinist: Can't get above rank 20,000

ZarthaxX: Machinist playcontest

MSmits: Machinist i would suggest you join he contest. Everyone is talking about it here

AntiSquid: everyone is busy with contest

Machinist: Any suggestions?

ZarthaxX: leave that game

MSmits: it's not really harder than csb

Machinist: Okay

AntiSquid: which makes CSB look like cake walk

ZarthaxX: MSmits hex boards can scary people

ZarthaxX: turn them off etc

MSmits: hmm

AntiSquid: lol def harder than csb

MSmits: well the wood leagues are easy

ZarthaxX: its easy for someone like u lol

ZarthaxX: well...

MSmits: you just loop over cells

Thiesjoo: MSmits your simultion done yet? (:

ZarthaxX: at least u got valid actions

cegprakash: hi all

AntiSquid: there's far less stuff to take into account in CSB

struct: the game is not that hard

MSmits: Thiesjoo yes sim is done, have to start on search

Thiesjoo: Nice!

Thiesjoo: That's pretty fast

struct: Even I that dislike hex liked the game

AntiSquid: we're comparing csb and the hex game

MSmits: this game is not hard to sim compared to some

gwolpi: Haai @Thiesjoo

Thiesjoo: Heya Gwolpi

ZarthaxX: MSmits agree :P

ZarthaxX: excepto for shadows maybe

AntiSquid: ok that's def not true struct, you do like hex

ZarthaxX: tho traversing a hex board is annnoying too

struct: Saying that csb is easier to sim than this is ridicolous

MSmits: yeah thats true ZarthaxX, but i made lookups for shadows early

ZarthaxX: same

AntiSquid: mmm ok w/e

ZarthaxX: easy life

ZarthaxX: :D

dreadylein: @struct depends, before refrees were published ? harsh hehe

KalamariKing: watching the people in my rank go up as my ranking goes down

KalamariKing: why is beam search so freaking hard

ZarthaxX: shouldnt be

ZarthaxX: baby steps KalamariKing

ZarthaxX: test each part that you code

jrke: struct you got broked a lot

jrke: 1st-6th

KalamariKing: ZarthaxX I am but its taken me like 4 hours so far

struct: it was a matter of time jrke

KalamariKing: knowledge I now know: don't implement a complex search algo if you've never heard of them before the previous night

ZarthaxX: KalamariKing i also take hours to do stuff

MSmits: KalamariKing i spend days on some search algos. This beamsearch may also take me 4hrs if i get some hard to spot bugs

ZarthaxX: but take it easy

ZarthaxX: use the debugger

ZarthaxX: check what you are doing

ZarthaxX: use prints

Joe_Mamba: dick bug

ZarthaxX: ban

Joe_Mamba: no

Joe_Mamba: pls

TiopazHc: banealo!!

TiopazHc: xd

KalamariKing: ZarthaxX MSmits yeah but y'all know what you're doing, I don't

ZarthaxX: oh peru boi

ZarthaxX: KalamariKing we didnt know at some point

ZarthaxX: you just have t persist

MSmits: KalamariKing exactly, so thats why you should expect to take a bit more time :)

Smelty: wait what i leveled up overnight

VizGhar: to top guys already have their own referree implemented?

MSmits: also, i didnt do beam search 100 times. I think it's 4 so far?

VizGhar: (game turn simulation)

MSmits: not a referee no... just the sim steps for my bot

VizGhar: thats what I meant

struct: I only did it previously on Fall challenge

MSmits: yeah, but thats really not that hard

VizGhar: I started today, so I want to know how far behind am i

ZarthaxX: KalamariKing ask anything you want in chat

Joe_Mamba: :poop:

ZarthaxX: many good coders will help you

Smelty: aaugh i still dont know what to do

MSmits: some people will start on wednesday and zip past most players. "being behind" is relative

jrke: so MS did you started coding your algo?

VizGhar: sure... I need to evaluate those shadows and then some super duper searching

VizGhar: hope I can get to first 100 (and stay there)

MSmits: jrke not yet... because i am chatting :P

MSmits: but ... no sleep till beamsearch

VizGhar: MSmits chat for another 10 days :)

MSmits: even if it has a bad eval or something, i want to get top 100 or so

jrke: oh so you are starting with beam search

ZarthaxX: same smito

VizGhar: Going for beam too...

MSmits: yeah

jrke: what about minimax

ZarthaxX: delete account if we dont

MSmits: it's a nobrainer imho

struct: I just want legend

struct: But I dont think I can

VizGhar: jrke too much nodes maybe? :)

MSmits: the problem with minimax here is that this game requires some long term planning

VizGhar: Even top bots doesn't seem legendary now

VizGhar: smits ++

MSmits: beamsearch sacrifices on opponent prediction, but player interaction is weak in this game

MSmits: like in HS

ZarthaxX: you think so?

Smelty: im trying to rewrite my whole code xD

Marchete: triggered

jrke: i calculated today and got to know there could be maximum of 38 unique moves

VizGhar: week? u kidding?

ZarthaxX: jrke minimum ?

ZarthaxX: :thinking:

jrke: maximum

MSmits: it's weak yes.... mostly shadows and occupying hexes

eulerscheZahl: weak*

ZarthaxX: many trees can throw seeds to same cell

LeviathanProgramming: the emojis quality is sad

LeviathanProgramming: so blurry

ZarthaxX: idk how you get 38

struct: jrke you are wrong

ZarthaxX: :P

jrke: maybe

VizGhar: ok weak :D but that weak interaction will be most crucial

ZarthaxX: anyway its a big branching

struct: If there is a middle tree of height 3 and o more tress

struct: is a total of 39 actions

kovi: getting into more deep - biggest interaction is completion (decrease of nutr.)

struct: no more*

jrke: but i calculated as you can't grow where you can complete or seed and vice versa = 1 for waiting

MSmits: VizGhar indeed, when everyone does a beamsearch, the small additions they write to incorporate some opponent prediction will mean the difference

Bennywinny: how i play

struct: ah wait is 38

ZarthaxX: really?

jacek: 38, too much stargate eh

eulerscheZahl: there are 37 tiles struct

struct: 36 seedable + complet + wait

eulerscheZahl: 36 SEEDs, 1 complete

VizGhar: I can't imagine simply ignore enemy... maybe thats way it takes me so long

ZarthaxX: seedable

eulerscheZahl: 37 in total

eulerscheZahl: oh WAIT

ZarthaxX: but deciding which tree throws it

MSmits: https://github.com/Agade09/Agade-Fall2020-Challenge-Postmortem

ZarthaxX: DOES change

VizGhar: *why

eulerscheZahl: facepalm

ZarthaxX: struct

MSmits: I wasnt even in that contest, but Agades PM will help you

struct: yes ZarthaxX?

ZarthaxX: if you got 2 tree that can seed same cells

ZarthaxX: you dont account once

jrke: but the matter is the tree you used to plant a seed also matters

jrke: cause it becomes dormant then

ZarthaxX: that's what im saying..

ZarthaxX: cant be 38

struct: I know its more

struct: I saw 80 actions + when I tested the game

ZarthaxX: oh god.

ZarthaxX: but those are memes games maybe..

MSmits: thats because when you get big trees, they can almost seed the entire map

jrke: i saw 100+ yesterday in one replay

ZarthaxX: O.O

MSmits: and you can have like 5 big trees or so

MSmits: typically

ZarthaxX: was it a realistic scenario jrke?

ZarthaxX: mmm

Joe_Mamba: bruh

ZarthaxX: scary

Joe_Mamba: bruh

ZarthaxX: beam search save us!

AntiSquid: msmits you were in fall contest, Automaton2000 tell him

Automaton2000: to check if there is a chance of getting a good eval

jrke: what about MCTS

MSmits: AntiSquid not really, i did 4 hrs on the last day i think, just to get bronze

Joe_Mamba: bruh

jrke: though forgot that

ZarthaxX: idk if it fits..

ZarthaxX: i mean solo player mcts maybe?

ZarthaxX: :thinking:

VizGhar: 3 level 3 trees in center gives you like 80 actions right?

MSmits: yeah

Joe_Mamba: bruh

eulerscheZahl: more

ZarthaxX: holy molly

KalamariKing: Does it make sense that, in the very last day, that you complete all the trees you can

Marchete: theorically

Smelty: o.o

Joe_Mamba: im to dum for this chat

geio: stop spamming Joe

VizGhar: I've only thrown some number

eulerscheZahl: Joe_Mamba stop that "bruh"

MSmits: KalamariKing you might want to complete them sooner for more nutrient

VizGhar: Joe_Mamba I was too once :)

AntiSquid: nothing to brag about Joe_Mamba

KalamariKing: MSmits does the nutrient go up?

Joe_Mamba: well then

MSmits: but yeah it seems wasteful to have many halfgrown trees in the last day

jrke: i am again confused like FC2020 that which algo to choose

MSmits: goes down

VizGhar: KalamariKing I'm at 421rank just growing trees and cutting them down in last turn

Joe_Mamba: :expressionless:

KalamariKing: VizGhar that was my plan, kinda

KalamariKing: So it's not horrible? great

Tiramon: damn you were faster

MSmits: allright back to coding

AntiSquid: well was going to do it last time, but hesitated

eulerscheZahl: i was about to type that too

eulerscheZahl: already had the /kick

VizGhar: It's first algo I did when went to bronze... So it's poor in a way

VizGhar: I wouldn't kick him... I don't understand why

ZarthaxX: jrke try many

AntiSquid: well i get bs PM now so ...

joniebear: anyone else just getting grey screen instead of the game?

eulerscheZahl: congrats, taking one for the team

eulerscheZahl: try another browser or changeteh hardware acceleration in your settings joniebear

Bennywinny: bruh

VizGhar: wonder how MCTS would perform here :) but you can most probably write some good evaluation for midgame too... I believe Beam is really way to go

Hiboia: jesus

KalamariKing: joniebear I did, fixed by disabling and then reenabling hardware acceleration

jrke: the game really has lot of woodwork

Hiboia: amunguusssssss

VizGhar: ok, so good luck everybody... I'm gonna socialize

KalamariKing: glhf

KalamariKing: ggez those convos

Hiboia: omg guys smash like button right now or i will smash ur mom

KalamariKing: Hiboia can you not

Hjax: a lot of real geniuses in chat today

Scarfield: xD

KalamariKing: lmao ye

AntiSquid: same guy for sure

eulerscheZahl: i had the kick in my clipboard already and still lost :/

Tiramon: school time in us right now? that would atleast explain it ...

KalamariKing: yep

Tiramon: i had it in the text field ;)

KalamariKing: its 11:30 on the east coast

KalamariKing: so its like 8:30-11:30 across the us

Hiboia: <^..^>

Bennywinny: UNBAN JOE_MAMBAUNBAN JOE_MAMBAUNBAN JOE_MAMBAUNBAN JOE_MAMBAUNBAN JOE_MAMBA

Bennywinny: UNBAN JOE_MAMBAUNBAN JOE_MAMBA

Bennywinny: UNBAN JOE_MAMBA

Tiramon: and again a teacher that is not watching what his class is doing

ZarthaxX: wth

Marchete: lazy teachers

Marchete: ;)

Hjax: or study hall

Tiramon: what i banned him before your mesaage appeared in chat .. :(

Beerus: 'Any tree impacted by one of your actions becomes dormant for the rest of the day. A dormant tree cannot be the subject of an action.' that includes shadowing?

joniebear: Alright, hardware accel off/on does it.

Hjax: Beerus does not include shadowing

ZarthaxX: Beerus shadowed cells dont product sunpoints

ZarthaxX: produce*

ZarthaxX: only that

KalamariKing: Beerus no, only the subject of a complete, grow, or seed

eulerscheZahl: "have you tried turning it off an on again"

Tiramon: shadowing is not a action Hjax

AntiSquid: ok i see any bruh i autokick @_@

eulerscheZahl: IT crowd uses that line for a reason

Beerus: ok thanks

Hjax: i know that Tiramon

eulerscheZahl: bruh

Tiramon: ups wrong name ...

geio: lol

AntiSquid: doesn't work, you lucky

Hjax: :P

Tiramon: atleast i didn mix it up while kicking ;)

eulerscheZahl: i'm kick-proof

Hjax: lol please dont kick me

Hjax: no "accidents"

geio: hurb

AntiSquid: don't test my dyslexia geio

Tiramon: kick is harmless ... bans not ;)

geio: :) cool

KalamariKing: oof gotta take a test, brb

Tiramon: calcing suns to gain is the hardest part to sim ...

Marchete: it isn't the move generation?

Marchete: the seeding part

Hjax: one of the benefits of bitboarding is calcuating sunpoints isnt that hard

Tiramon: ups i missed the range check in seed, but that is easy to add ... atleast only one check

Hjax: popcount(trees & !shadowed) * tree_type_income

kovi: told you....chukodai is taking over :)

Marchete: chokudai

kovi: 4 japan in top10

eulerscheZahl: the user or the algo?

Tiramon: sure if you got the shadows and source of shadow it is easy to calc suns

dbdr: the algo IS the user

Tiramon: but since a size 2 tree does not make a size 3 tree spooky it's a bit more complex

kovi: when i saw first japanese, i assumed chokudaisearch

Marchete: go 3 to 1

AntiSquid: say his name 3 times and he'll appear on the leaderboard personally

eulerscheZahl: *and he will tweet about it

ddreams: Tiramon: a size 2 tree shadows a size 3 tree

Hoyer: do u guys hold trees in a vector or in an array the size of the board

eulerscheZahl: for now: List<T>

Tiramon: but it doesn't make it spooky ... so 3 will generate suns

eulerscheZahl: working on bitboards right now

ddreams: pretty sure that's wrong

AntiSquid: check statement

Tiramon: just look at the picture at sun&shadows ... the right one

ddreams: hmm

Tiramon: that's what is making it more complex ;)

Default avatar.png giorgi1911: this is too hard

eulerscheZahl: oops, I implemented that wrong

Default avatar.png giorgi1911: like I am stuck on first step

ddreams: oh, wow

eulerscheZahl: thanks Tiramon

Tiramon: np =)

Scarfield: forgot about that part, ty xD

Tiramon: oh got an idea that should work easier

optplx: hi guys do we know when silver opens?

Scarfield: on monday, click the league next to your rank top left to see when next league opens

optplx: ah thanks for the tips

v1993: Woah, battling takes a real while

v1993: Looks like contest is pretty popular, after all

Wontonimo: just logged in and see that there are a lot more contestants. Nice, that's good to see. Yesterday I was thinking 2,200 contestants was kinda small

Tiramon: ok shadow and sun isn't that complex ...

eulerscheZahl: will grow further, don't worry

eulerscheZahl: 4k already

ZarthaxX: 4k people?

ZarthaxX: wow

eulerscheZahl: i'M not talking about my screen well, resolution

Wontonimo: c++ rewrite and bitboarding here i come

olaf_surgut: why i can't play with plp with < 1000 ranking?

eulerscheZahl: that "well" was supposed to be at the beginning

eulerscheZahl: laggy chat results in blind typing

olaf_surgut: *> 1000

eulerscheZahl: CG added that 1000 constraint so the list will load faster

eulerscheZahl: was a quick fix that somehow remained

Wontonimo: haha eulerscheZahl - i got it the first time

Smelty: hi mr euler

Tiramon: hm never wrote a sim that fast ...

eulerscheZahl: hi Smelty

Smelty: owo

Smelty: completely rewrote my code from scratch, discovers its worse than my original

Tiramon: you mean fix a bug, drop 50 ranks ... thats normal ;)

Smelty: no i reset my code and rewrote it

Smelty: and it loses against my bot from before

Smelty: soo

emh: hmm.. it doesn't remember my code. I have to Send to IDE from last submission

Smelty: hmm

Tiramon: that happend yesterday when silver was opened by accident

Smelty: switch to another lang and back

Smelty: wait what

Tiramon: emh they had to do some hard fixing ;)

Smelty: silver got opened? xD

emh: ahh that worked. switching and back

Tiramon: yes and everyone with a stable rank got promoted

Smelty: lol

Smelty: perhaps thats why i leveld up overnight

Smelty: the exp from league promotion?

Default avatar.png TheScreamingMonk69: hey everyone im new here and would like some help with coders strike back i dont rember how to code c++ its been a few years

Smelty: first off, offset where you are going by 3 times your velocity

Smelty: second, thrust 100

Amanojaku: Hi

Smelty: or slow down as you approach

Smelty: hi amonojaku

Smish314: how was 3x the velocity determined?

Smelty: take ur velocity

Smelty: if ur in lower leagues, just compare your current position to last times position

Hiboia: sup

Smelty: hi

Hiboia: hi

eulerscheZahl: thanks again Tiramon, that bugfix pushed me up a bit

eulerscheZahl: now I can see you without scrolling

Tiramon: glad i could help =)

Tiramon: hope i get my sim running soon ... currently trying with a simple state and no bitboarding

eulerscheZahl: too early in the contest for bitboards to take over

ZarthaxX: are you challenging smito?

ZarthaxX: :D

eulerscheZahl: but I like the layout i've settled on :)

Tiramon: yes i guess a simple slow sim should still be better than my current bot ;)

Smish314: I guess what I'm asking is how was it determined that the radius is 3x the velocity, not 3.2x? Was it done by testing? I was frustrated that there was no indication on how steering worked.

eulerscheZahl: i have a simple slow sim. and poor scoring

Tiramon: i got some ideas for a bitboard ... but first i want 'something' working ;)

Gagat: Not sure a bitboard will be that much faster

Gagat: woops

Gagat: wrong account :)

AntiSquid: you're at 24 you seem to do well tiraptor

Smelty: hhhhhhh

Smelty: dang

Tiramon: Smish314 there was a name for that thing if i got it right PI was even better than 3

AntiSquid: tiramon *

emh: Smish314 I guess it was done by experiments. I did a test once for different values and made a graph and stuff, it wasn't exactly 3 that was the best

pb4: https://www.codingame.com/share-replay/548138701

pb4: I'm having trouble right at the last step

Smish314: Tiramon and Emh, thanks.

eulerscheZahl: pb4 = gagat?

Tiramon: AntiSquid it's still only simple sostring and 1 if per command

pb4: The referee tells me I have only one valid command

pb4: (yes)

Tiramon: *sorting

pb4: Shouldn't the COMPLETE 36 be valid too ?

Default avatar.png klopp: wow it's so funny

Smelty: pb4

Tiramon: only if there is a size 3 tree pb4

Smelty: *hi

King_Coda: Hello Mates!

Tiramon: and it is yours and not dormand

King_Coda: Greetings Non-regulars!

eulerscheZahl: that complete looks valid to me, yes

King_Coda: (And regulars alike)

pb4: It is mine, not dormant and size 3

Tiramon: enough suns?

pb4: complete doesn't require suns

Tiramon: 4 suns

Smelty: 4 sun it requires

pb4: uh ?

pb4: sorry :D

Tiramon: Completing a tree's lifecycle requires 4 sun points.

Scarfield: " Complete action Completing a tree's lifecycle requires 4 sun points."

Smelty: *quote*

struct: complete requires 4 suns yeah

AntiSquid: ah got anotjher one not reading statement

Tiramon: i also always miss some parts ;)

Gagat: Damn, it's even the first sentence -_-

eulerscheZahl: but you have 12 suns?

Smelty: r i p

Smelty: thats weird-

eulerscheZahl: oh, i checked the wrong frame nvm

emh: Smish314 http://emh.lart.no/publish/csb/3vel/1.png

Gagat: Yeah, 1 sun in inputs

Gagat: Thanks :)

Tiramon: any got an idea how many suns a player got theoretically gather? so how many bits i need?

Tiramon: *could

Smish314: woah, emh, hardcore

struct: well 2^16 is safe

struct: 2^8 is not

eulerscheZahl: you only need as many bits as YOU can gather

eulerscheZahl: as long as you don't sim the opponent

ddreams: 2^9 is safe, afaict

ZarthaxX: is there an opp in this game?

ZarthaxX: i dont see him

Gagat: Do you really want to optimize for just a few bits ?!

Tiramon: yeah guess 9 or 10 bits should be enough even for worst horder

struct: Isnt this bit stuff more epensive?

fvla: ^

Gagat: It can be :)

fvla: saving bytes makes sense. saving individual bits really doesn't

Tiramon: no not that relevant i use it for my state serializer to test states locally

struct: yeah

struct: ah

ZarthaxX: oh lol

Gagat: BitStream(c)

Tiramon: the one that recurse wrote in a stream some time ago ;)

eulerscheZahl: i still don'T get the hype about it

Tiramon: think it was him ...

eulerscheZahl: it was, locam

Gagat: same euler

Tiramon: yes right

Tiramon: i like it to copy a state i see ingame to my local machine to debug, especially if it is in a rand game so not reproducable

eulerscheZahl: just print the stdin directly to stderr, works fine as long as you don't have an internal state (fog of war)

ZarthaxX: yep

Smelty: dangit code is still failing

ZarthaxX: literally that haha

eulerscheZahl: and it's even readable and editable

ZarthaxX: ^^^^{

ZarthaxX: do it all the time haha

Tiramon: i just remember it was important in locam because the err was truncated and there was alot of input ...

Tiramon: also i don't want to type all those cell neighbours ;)

ddreams: how many nodes are you guys evaluating?

Tiramon: none right now

Smelty: :(( i cant seem to get my trees to plant farther than 1 grid

Tiramon: if you have a size 1 tree thats normal

Tiramon: range = tree size

TobiasA: what is the distance between two cells that are directly beside each other

Tiramon: 1

TobiasA: is it 0 or 1

TobiasA: oh ok thanks

therealbeef: when you are asleep, you do receive sunpoints, correct?

ddreams: you only receive sunpoints on a new day

ddreams: so only after you have slept, yes

Tiramon: which happens when both players waited

cegprakash: ddreams I woke up from my bed today but I didn't get any sun points

cegprakash: I was sleeping in shade got it

Tiramon: your bed must have been spooky

cegprakash: no Tiramon coz I was sleeping in shadow

Tiramon: you would have gotten suns if you were in shadows as long as it wasn't a spooky one

fvla: get SPOOKED

fvla: but yeah, your walls and/or curtains must have been large enough to cast a spooky shadow on you

KalamariKing: What happens if you print "wait" and then "wait" again

KalamariKing: does the second "wait" count for the next day

Tiramon: you skip 2 days

KalamariKing: oh ok

fvla: not quite

ddreams: when you wait you don't get any input or chance of output until the next day

fvla: your code will desync with input

fvla: undefined behavior

Tiramon: well ok 2 outputs without reading in between will give you a 'you didn't read input' warning

ddreams: from your bot's perspective, after wait it's instantly the next day

Default avatar.png actualCoderTrevor: I thought the next day only happens when both players wait. You could potentially go again if the other player didn't wait I think. Not sure why you'd want that though.

ddreams: no, you can't

Default avatar.png actualCoderTrevor: Oh okay

ddreams: when you wait, you sleep

Tiramon: yes but if you wait and the opp didn't your bot will not recognize it

KalamariKing: so if you wait twice in a day, you'll skip the next day too

Tiramon: in theory you could use the time between your wait and until the input (so opp waited) to calc some stuff ...

Tiramon: but that is risky because you don't know when he is done waiting ;)

Tiramon: you can't wait twice in a day .. only with double output that will give you an error

ZarthaxX: Tiramon i think your process is put into sleep

ddreams: I guess technically you could poll the input buffer

ZarthaxX: so you cant do those things

Tiramon: my what?

Tiramon: oh after the wait ... maybe .. not sure

cegprakash: i tried to understand this function in the referee but unable to understand it https://github.com/CodinGame/SpringChallenge2021/blob/2785b58e5eb136fdc5349825c33454fa7838270b/src/main/java/com/codingame/game/Game.java#L170

cegprakash: STARTING_TREE_DISTANCE is 2

cegprakash: not sure what it means

ZarthaxX: Tiramon i think this has been mentioned in the chat and is a thing sadly :P

Tiramon: cegprakash guess it chooses the location of the start trees

Nagatwin: Tiramon thought the proccesses were halted in-between inputs

cegprakash: Nagatwin but what does the distance mean

KalamariKing: Does it have something to do with the starting distance a tree can 'throw' a seed

KalamariKing: or is that different, idk I'm not there yet

Tiramon: why is the init code important?

ddreams: it's about how close the trees can be initially

martinpapa69: maybe your first two trees cannot be closer than STARTING_TREE_DISTANCE ?

cegprakash: does it mean they can never be closer than distance 2?

martinpapa69: im just guessing tho

jacek: well you dont want shadow at turn 1

KalamariKing: what

KelvinAndHubbles: is there a capped amount of submissions per day?

cegprakash: jacek makes sense

KalamariKing: what's 'dead code' in java it just means its unreachable right? the code throwing it is inside a if(false)

martinpapa69: there is a soft cap. if you submit too much, youll be blocked from submitting for few minutes

martinpapa69: and youll get qannoying captchas

Tiramon: if (false) can never be true

KalamariKing: Yeah

Tiramon: so code can never be reached

KalamariKing: I need the placehodler

Default avatar.png actualCoderTrevor: Oh they use xyz to differentiate the hex directions. That's clever; I might use that :)

KalamariKing: So that's all it means? That its unreachable, nothing else sinister?

Tiramon: make if (0==1 ) he doesn't recognize it ;)

KalamariKing: that worked thanks

cegprakash: @actualCoderTrevor like a cube?

Default avatar.png actualCoderTrevor: Yeah like a cube but not a cube https://github.com/CodinGame/SpringChallenge2021/blob/2785b58e5eb136fdc5349825c33454fa7838270b/src/main/java/com/codingame/game/CubeCoord.java

fvla: "Warning: your code did not read all available input before printing an instruction, your outputs will not be synchronized with the game's turns and unexpected behaviour may occur." Any advice on diagnosing this?

Tiramon: 2 outputs without readin inputs ...

ZarthaxX: restart code and check how input is read :P

ddreams: are you using starter AI?

eulerscheZahl: no

Tiramon: oh or starter ai and not all input read ;)

v1993: nope

fvla: I have a simple if/else C++ bot in bronze

jacek: c++ starter?

geio: yes

ddreams: you may output twice in a round, or not read all input, or fail to send an endline

ZarthaxX: is server dying?

fvla: I've already checked all that, but the problem isn't obvious

Default avatar.png actualCoderTrevor: Comment out different branches until it goes away. That's always worked for me.

fvla: And my program seems to work correctly to the end vs Default AI

ddreams: then copy the parameters of the game it's breaking in to the IDE

fvla: What do you mean/how do I do that?

ddreams: in last battles, under the TV, there's a big blue button

v1993: There's Send to IDE button

fvla: I've gotta submit again, I fixed a real issue regarding input (2 outputs on last round from 1 read)

v1993: Can you act on your opponent's trees?

Default avatar.png actualCoderTrevor: You can cast a shadow on them

Default avatar.png actualCoderTrevor: Otherwise I don't think so

v1993: Can I grow/complete them for whatever reason I may want to do that?

v1993: I'd guess not, but wanna be sure.

Default avatar.png actualCoderTrevor: :thinking:

Scarfield: can only grow trees you own

UndercoverToad: now I created a smurf, chat is much faster :)

Scarfield: xD nice avatar

AntiSquid: now i can kick !

UndercoverToad: don't you dare

AntiSquid: ok that's a ban then

ZarthaxX: :rofl:

UndercoverToad: calm down satan

UndercoverToad: the contest doesn't even show on my start page

Zenoscave: Welp I dropped

Default avatar.png RDty: I'm rank 1 of wood 1 right now, how do i promote to bronze?

ZarthaxX: Zenoscave python n1

UndercoverToad: got you Zenoscave

fvla: RDTY patience

Zenoscave: T.T

Default avatar.png RDty: gotcha

fvla: I discovered my issue!

Zenoscave: Sim yet euler?

UndercoverToad: stupid monte carlo

Zenoscave: Gotcha

UndercoverToad: i won't waste time with heuristics that I don't want to use in the end

fvla: Basically on last day, I kept on waiting and reading in a loop rather than terminating

UndercoverToad: MC is nice to test if the sim works

Zenoscave: Well I doubt I'll have time today to do anything. Work calls...

Tiramon: yay my sun generation and spooky shadow sim works ;)

Default avatar.png jc725: has anyone been given codingame as a technical assessment?

phord: They wish.

phord: I mean, I think Codingame sort of does that.

Donald_D._Doge: Hi I am new and I am here for context

jacek: hello am here for context

Zenoscave: I'm dad

Tiramon: guess we all know he means contest ;)

ZarthaxX: gz Tiramon :O

Zenoscave: based on the context yes

Westicles: I am here for the buggy, and not user friendly mess

Tiramon: exactly

phord: I'm hungry.

ddreams: Hi hungry

ddreams: I'm Dad

Zenoscave: Donald_D._Doge are you going to use DLang?

Donald_D._Doge: wow, how did you guess?

Zenoscave: can't tell if sarcasm.

Donald_D._Doge: fake surprise

Zenoscave: It's real surprise here since no one uses it since all of your foundation complained to get it added and ditched the site

Donald_D._Doge: i mean i was faking my surprise

Zenoscave: And I wasn't

Donald_D._Doge: ya i think i should have done contest in D, don't really like it

Zenoscave: You would be the 7th to chose D. out of ~3500

Zenoscave: Maybe you could even break to the top 1000

Donald_D._Doge: no alts allowed

Smelty: guys for "possibleAction" does it include platning seeds farther than 1 grid from the parent

Westicles: hah, now you see what it is like for all those poor newcomers

ddreams: yes, you need a size N tree to plant N away from the tree though

Smelty: oh..!

Smelty: didn't know that lol

Zenoscave: Westicles was that you ;)

Donald_D._Doge: no that's me

Default avatar.png StyllyMyle: Hey i cant find make_tuple in compiler

Default avatar.png StyllyMyle: c++

Donald_D._Doge: what do you mean Westicles ? new comers can't spam alts ?

Zenoscave: I'm not pissed at newcomers I'm pissed at the D Language Foundation

ddreams: what do you mean by "they abandoned the site"?

phord: #include <tuple>?

Smelty: resubmitted my now-working code after completely redoing it....hoping for best

Zenoscave: ddreams they spammed a vote to add D to the site, and then never really used it here after the initial contest

Smelty: ;-;

Default avatar.png StyllyMyle: phord man ty so much

ddreams: just as many D users today as OCaml/Lua etc though

Smelty: interestin

SuperStreet7: How do you go from one league to the other?

Zenoscave: fair. but we had a choice to get a different language and the vote was given to D

Smelty: you get...promoted

Smelty: superstreet7

v1993: You beat the boss to do that

ddreams: which other language?

Smelty: you have to have a higher elo than the boss

SuperStreet7: Ah right, thank you

Zenoscave: SuperStreet7 score higher than the boss and wait for the matches to complete

v1993: Make sure to select "test in arena"

Smelty: which is compiled from win/loss ratio

Donald_D._Doge: Zenoscave i agree they should have stuck around more

Zenoscave: ddreams let find the list. Sorry if that was harsh earlier. DLang just hits a nerve

PatrickMcGinnisII: My trees are made of hemp, the spirit keeps cutting them down, smoking them, and taking a nap

jacek: yeah, contest should start at 20th april

Donald_D._Doge: well next in line was TypeScript and we have that now so ...

Zenoscave: lol jacek

Smelty: lol, my bday is 19th april

PatrickMcGinnisII: 420 ... tc jacek, had to use my brain lol

PatrickMcGinnisII: tc=tx

Smelty: patrick :rofl:

phord: I never sleep if there are more actions available. That seems like a bad strategy.

Smelty: oh...!! struct got kicked out of top 3

Default avatar.png StyllyMyle: Why?

Smelty: phord sometimes you have to save up energy to complete a tree

PatrickMcGinnisII: looks like Illedan figured out how to ramp up sun production

phord: Exactly

Donald_D._Doge: would you use Julia if it was added ? most languages aren't used Zenoscave

ZarthaxX: smalltalk

phord: I mean, my "never sleeping" seems like a bad strategy.

Default avatar.png StyllyMyle: Finally

Default avatar.png StyllyMyle: made pr to add these two annoying commands :(

jacek: pr?

AntiSquid: public relations

Default avatar.png StyllyMyle: Pull request

Default avatar.png StyllyMyle: LOOOL

Westicles: Ah squid, you missed out. We know you love talking about the D

Nerchio: struct 8th :O

AntiSquid: that wording ...

ddreams: accidental, I'm sure

struct: Nerchio my bot didnt even made it to 24 hours :(

Tiramon: phord if you have no actions left you sleep automatically

ddreams: you still have to output wait

Tiramon: if you output something else it sleeps anyway because it will be an invalid action

khirshah: hi all :) is there a timetable of some sort of the live streams somewhere?

jacek: hm?

Westicles: streamers are barely coordinated enough to keep a steady supply of cheetos around

khirshah: last fall we got info on who is going to livestream their coding and when, which language, etc, I can't seem to find that info now

Default avatar.png elijah.toppo: Any ideas of finding all spooky cells?

Maliamnon: elijah.toppo - i'm using linked lists of neighbor cells

Default avatar.png elijah.toppo: Great idea. Thanks.

elderlybeginner: where is an info, which constest leagues starts when?

Tiramon: ok state should by usable, sim should be working .. .now i 'just' need a algo to use all this ...

phord: Spooky shadows are spooky even if they come from your own tree, right? The examples show opposing-color trees.

ddreams: yes

Tiramon: yes phord

Default avatar.png elijah.toppo: yes

Tiramon: trees are no racists .. color doesn't matter

phord: I heard they're colorblind, anyway.

Tiramon: maybe thats the reason ;)

v1993: Maybe make wooden2 boss a bit less dumb? It seems way to easy to beat even with simplest algorithm.

jacek: wood is just tutorial

Tiramon: thats what a wood boss is for

KalamariKing: yk the bug where chat will slowly scroll down with no way to take manual control

KalamariKing: if you collapse and reopen its at the bottom

v1993: Wait, I meant wood 1 boss, sorry. In wood 2 the entire algo is very simple, wood 1 allows more freedom but very easy boss.

Tiramon: wood = tutorial ... so if you want' more evil bosses join us in bronze ...

ddreams: the point is to teach the rules, not to provide a challenge

Tiramon: still without boss, but it will be more evil ;)

v1993: Also oh boy, battles are really slow rn, on my way to bronze ofc

KalamariKing: battles take forever

KalamariKing: especially as games get longer

Michael_Howard: Hmm. Guess a score-all-your-moves-and-pick-one strategy aint gonna cut it this time.

KalamariKing: Are you using a search algo to pick the best

KalamariKing: Or just picking one of them

Michael_Howard: I haven't done a tree yet.

KalamariKing: I think you gotta go a few moves into the future

KalamariKing: trees suck

selindoga: (╯°□°)╯︵ ┻━┻

RoboStac: yeah, if we banned trees from this contest it'd be much easier

cegprakash: (╯°□°)╯︵ ┻━┻

**selindoga slaps around a bit with a large fishbot

selindoga: /me

Default avatar.png StyllyMyle: I totally love this contest

cegprakash: without trees what's there to seed, grow or complete? RoboStac

KalamariKing: ┬─┬ノ(ಠ_ಠノ) no need for that

Default avatar.png StyllyMyle: :)

Default avatar.png StyllyMyle: Tress are best

Default avatar.png StyllyMyle: uh btw

KalamariKing: cegprakash trees as in search trees

Default avatar.png StyllyMyle: How do you basically get the trees and action?

KalamariKing: wdym

Default avatar.png StyllyMyle: do you maintain array for that or use possible actions?

cegprakash: I wouldn't be surprised if someone actually uses graphs and reaches legend in this problem

KalamariKing: Wdym graphs

KalamariKing: Explain

Default avatar.png StyllyMyle: Same

Default avatar.png StyllyMyle: i wana ask

Default avatar.png StyllyMyle: what is graph

KalamariKing: Or synonymize

AllYourWhat: G R A P H

Default avatar.png StyllyMyle: Is that a language?

jacek: tree is graph eh

Default avatar.png biz1: why do I always get Warning: your code did not read all available input before printing an instruction, your outputs will not be synchronized with the game's turns and unexpected behaviour may occur.


v1993: Why would you need a graph that is not a tree for this contest?

Default avatar.png StyllyMyle: biz1 are you using cpp?

Default avatar.png StyllyMyle: starter code

Default avatar.png StyllyMyle: or theres some problem with your data parsing/ cout

Default avatar.png StyllyMyle: output*

Default avatar.png biz1: pretty much using python starter rn

cegprakash: StyllyMyle graphs are like roads and houses in the road.. roads connect path to the houses in the city.. Similarly in this problem u have roads where u can travel and move to tree locations.

phord: When my cpp aborts, there's no indications. Game over. Any common way to get a stacktrace or something?

Default avatar.png StyllyMyle: OHH

cegprakash: StyllyMyle search for graph datastructure in wikipedia

v1993: phrod what does "Console output" tab say?

Default avatar.png StyllyMyle: Ok! Thanks for some extra knowledge, i m gonna read that thing

cegprakash: @StyllyMyle: https://en.wikipedia.org/wiki/Graph_theory

jacek: :+1:

v1993: "Jumping from tree to tree salesman problem"

phord: Nothing except what I printed to cerr.

phord: It's not crashing now. Yesterday it did for a bit. I just had to diagnose it with printf-debugging.

phord: Too lazy to build locally.

Tiramon: then how do you know it aborts? maybe you added a return or break in the wrong spot?

phord: It was def. aborting. Printed the first line in my loop, but nothing else. I forget why, now, but I found what I was doing wrong.

Default avatar.png alskdjfhgbhuvfr: fuck u

JP7: No, u?

struct: saved

Default avatar.png StyllyMyle: a sapling, a seed is also counted as tree r8?

ddreams: yep

Default avatar.png StyllyMyle: Tenks!

v1993: Yup, it's mentioned in rules

ddreams: Welkms

Tiramon: StyllyMyle it's a tree of size 0

jacek: it should use the Happy Tree Friends theme

AntiSquid: :o

ddreams: ?

AntiSquid: look it up

jacek: you never watched it?

ddreams: nope

jacek: kids these days...

AntiSquid: ya i was a teen and they were streaming it during day time lol

Counterbalance: i have the original flash files somewhere...

v1993: Is it possible to have less dumb bronze AI, please? I can hardly fine-tune my settings when even the easiest setup beats it.

v1993: And contending in arena takes forever.

RoboStac: you can delete that ai and replace it with any other player

ddreams: you can choose my bot :p

ddreams: it's pretty dumb

Default avatar.png StyllyMyle: Hey so i have a question

ddreams: click Delete under the default AI icon

Default avatar.png StyllyMyle: I somehow made program which im confident will pass bronze league

Default avatar.png Over9000: you can also compete against your own old code

v1993: Ohh, thanks for the tip! Didn't knew this.

Default avatar.png StyllyMyle: It is not that complex, and tbh is random and prioritize some actions before another, I could still perfect it or just jump league

Default avatar.png StyllyMyle: what should i opt for?

ddreams: I don't understand the question

Default avatar.png StyllyMyle: I totally beat this ai boss by double of its point

Default avatar.png StyllyMyle: i think time to go?

ddreams: the default ai is not the bronze league boss

Default avatar.png StyllyMyle: What?

Default avatar.png StyllyMyle: Im testing in arena, screw it :)

ddreams: you probably have to beat one of the people who are the top players now

Default avatar.png StyllyMyle: Dont we need to just outrank bot?

v1993: Nope, one of stronger bots will be used as a boss

Default avatar.png StyllyMyle: Ah i see

Default avatar.png StyllyMyle: wait does it take time to test in arena?

v1993: So yeah, but boss will be different from current default AI

Default avatar.png StyllyMyle: will my code be compiled against all those present there?

ddreams: you can just test in the arena, doesn't cost you any time

ddreams: and it saves your code in case you mess it up later

v1993: It will run in background

Default avatar.png StyllyMyle: Its taking kinda time to jump up the ranks

ddreams: so?

Default avatar.png StyllyMyle: cant i see it quickly? :D

v1993: Servers are busy running all those bots, be patient :)

elderlybeginner: when silver opens?

Default avatar.png StyllyMyle: Okk

ddreams: click the Bronze League on top and it will show you

elderlybeginner: @ddreams : thanks

v1993: By the way, is this contest based on some other media or is it its own thing?

ddreams: there's a boardgame

Wontonimo: what's the name

ddreams: photosynthesis?

RoboStac: https://boardgamegeek.com/boardgame/218603/photosynthesis

geio: how can i get input without printing all the stuff

v1993: Cool, thanks!

Noyotens: hi guys

geio: o/

Wontonimo: thanks RoboStac !

TobiasA: it took me a whole day just get the spots a tree can plant a seed and now i have forgotten why i even wanted to do that

TobiasA: i couldn't get any dumber than this

ddreams: if you want to generate your possible actions, you need to know that

TobiasA: yes yes yes yes

TobiasA: you were sent from heaven

v1993: My favorite part of previous contest was how my bot lost to low-ranked ones but performed much better in middle segment.

Default avatar.png TheScreamingMonk: hello all i am new here and i am having trouble with coders strike back, i can figure out the angles i need to be useing can someone help me ?

WesCraterMadman: the best swordsman in the world fears the complete beginner more than the second best swordsman, because the beginner can't be predicted

ddreams: lol, yeah, that's so untrue though

WesCraterMadman: not really. At least in swordfighting, it's really easy to kill someone if you don't care that you die too

cegprakash: guys I searched in problem statement already but I can't find anywhere where it say we can only control the trees/seeds that we own. Can we control opponent trees/seeds?

ddreams: try it, report back

Scarfield: xD

v1993: I think not

ddreams: have you ever done any swordfighting, like fencing or something?

WesCraterMadman: a little bit

WesCraterMadman: but I was more responding to v1993

Smelty: my ai sucks :(

v1993: Yeah, I got it was directed at me

v1993: I'm still not sure how that happened given how simple my bot was

Zenoscave: has there been a brutaltester compatible ref yet?

Zanoshky: is silver league open?

Default avatar.png Over9000: it says 10th of march

WesCraterMadman: says it opens the 10th

WesCraterMadman: ^

Zanoshky: if you are under 300 , will you be promoted to next league?

Smelty: idk

ddreams: unlikely

Smelty: i used to be top 100, but now im 500 :(

Zenoscave: depends on where they set the league cutoff

struct: I hope I make it

Zenoscave: I dropped about 50 ranks too

WesCraterMadman: is there a bronze boss ai yet?

Smelty: nope

Zenoscave: struct sshhhhh

xdcomrade: when will the silver league open?

Default avatar.png Over9000: I got these weird notifications yesterday: "You have been promoted to Silver league."

Smelty: 10th of march

Zenoscave: Over9000 there was a bug

jrke: it will drop more if you didn't update your bot

Smelty: over9000 they accidentally opened silver league

Default avatar.png elijah.toppo: What happens when you don't make the cut-off? are you disqualified or can we keep trying

Default avatar.png Over9000: ah ok

Zenoscave: they sent people to silver and reverted

Smelty: you have to keep going until you can beat the boss in promotion..

Zenoscave: elijah.toppo you can keep trying it just is a little harder

Default avatar.png elijah.toppo: OK

Zenoscave: the sooner you enter a league the easier it is

Default avatar.png elijah.toppo: Hmm.. got it..

Default avatar.png elijah.toppo: My ai sucks too.. :D

WesCraterMadman: haha yeah. I started around 100 and I'm sitting around 500 now

Zenoscave: submitting right before a league open is always a bad idea though

ddreams: I don't think that makes sense

Zenoscave: ddreams

Zenoscave: the boss gets pushed up and inflated after opening

Zenoscave: even if you can beat it alone, others are strong too

Default avatar.png elijah.toppo: Does the boss have a rank as well? How to check that if so?

ddreams: If you say so

Zenoscave: He's on the leaderboard once the boss is chosen

olaf_surgut: is it common that first battle gives timeout?

ddreams: not unless you don't write a command or a newline

Smelty: hmm....

Smelty: which strat is better overall, keeping trees to harvest at end or harvesting as you go

UndercoverToad: somewhere in between

ddreams: The top players harvest around day 12 or so

Default avatar.png elijah.toppo: Hmm.. I was harvesting all in the end.

Default avatar.png elijah.toppo: Will try playing with that now

Smelty: hmm....ineresting

Smelty: a version of my bot that harvests on the go consistently beats a harvest at end version of my bot

Smelty: :/

Zenoscave: nutrient scores matter

Zanoshky: I am kind of new to the .... advance algorithms

Can someone give me a help or advice or links how to write beam search or a* when you do not know the end goal / destination?

Smelty: if you are looking for any type of simulation, i can't help you lol My bot is if/else

UndercoverToad: you solved last crusade episode 3, you clearly know some advanced path finding algos

Smelty: xD

Smelty: caught

Smelty: i prefer to use if/else though

Astrobytes: 'UndercoverToad'

UndercoverToad: chat was too laggy

UndercoverToad: i'm sure you still know who I am

Astrobytes: Considering similar myself

Smelty: lag chat, again?

UndercoverToad: for moderators it's horror

ddreams: what's the difference?

Astrobytes: No, for moderators there are so many people in chat it lags during contests

UndercoverToad: when you are fast at typing, you can see 2 letters per second appear

UndercoverToad: https://imgur.com/a/BmQQwpa

Smelty: yea, happens

UndercoverToad: find the scrollbar

Smelty: sometimes i start typing too soon and then the first half of my message doesnt show up

UndercoverToad: the lag is proportional to the number of users it seems

RoboStac: moderators get to see the full online user list, it gets cut down for normal users

ddreams: could you perhaps just delete the member html?

UndercoverToad: haven't tried but i fear it will just update again

UndercoverToad: and the new account was a matter of minutes in a one-time action

Smelty: lolol

Smelty: mAn my code sux

UndercoverToad: and now i can say "hi i'm new" and ask for help

RoboStac: have you updated thors position?

UndercoverToad: i'm sure the puzzle has a bug

Astrobytes: Did you remember your newline?

cegprakash: focus ceg focus

Smelty: sighs

Smelty: I Swear I improve my code and get kicked down a couple hundred places

cricri10000: Ah much easier to chat here

miszu: do your unit tests

Theino: Does anyone know if you can use Microsoft.ML on here?

miszu: you will save time debugging

WesCraterMadman: I think it resets you every time you resubmit, smelty

Theino: I'm in C#.NET and "using Microsoft.ML;" gives "are you missing an assembly reference"... I was wondering if there's a fancy way to get the site to use the package

Smelty: wes ik

Smelty: but it just peaks at 500 now

Smelty: used to be in 100 and 200

Smelty: xD

WesCraterMadman: lol me too. I just assumed it's because all the good bots are hanging out in bronze

Smelty: yea

Uljahn: Theino: https://www.codingame.com/faq

Smelty: oh-?

Smelty: ay my bot can now rack up 170 points vs an afk opponent https://www.codingame.com/share-replay/548329237

GuillaumeBardy: verry good game :) 15 actually without an huge algorithm

Smelty: w-

Smelty: wow.

Smelty: currently have a winstreak from 2-23

Smelty: (lost first battle lol)

UndercoverToad: first is against top10% of the league

Smelty: yea

Smelty: and then u get sent down to 3000 and fight against noob bots, getting a lot of wins

Jason_Down: Is there a way to see any of your battles from the previous league as well as the rules? I forgot to grab them for a blog post for my coworkers.

Smelty: currently i start losing in the 20s

Smelty: nope...

Smelty: you can create an alt and go thru them though

AstroHydes: Hii. Send help. I am new.

Smelty: not sure if illegal

Smelty: lol astro

Uljahn: astrobruh

Zenoscave: something tells me your father is a penguin Astrobytes

Smelty: "Astro alt account for testing things"

Zenoscave: it wouldn't even auto complete right

Smelty: hmms

Jason_Down: I guess that's one option. Option 2 is wait for the contest to end and do it when it becomes a multiplayer game.

Zenoscave: that detirmins it

Smelty: true

AstroHydes: Yep. And contest chat. I should add that

Smelty: although you can ask other people for footage

Smelty: ALSO remember to save bronze for later

Zenoscave: bronze is final rules

Smelty: still

Smelty: later matches have more games

Smelty: *days

Smelty: possibly

Zenoscave: nope

Smelty: oook

SirLoxley: when does silver open?

Smelty: 10th of marc

Smelty: *may

UndercoverToad: wood rules: https://www.codingame.com/ide/demo/8824954ce73a2d6ac78458c945ac20f0303ef8

Smelty: dang so many ppl be askin this

Zenoscave: unless I missed something silver will be exactly the same

UndercoverToad: Jason_Down

UndercoverToad: switch leagues at the top right

AstroHydes: But it opened yesterday... :P

WesCraterMadman: no new rules going forward, afaik

Smelty: oo oo o oo

Jason_Down: Thanks UndercoverToad

Smelty: i have decided to make my character spew nonsense

AstroHydes: Same. The nonsense mine spews is called an action

Counterbalance: any rickroll bots yet?

dbdr: how does that look like Counterbalance?

Scarfield: saying the lyrics turn for turn

WesCraterMadman: now I kinda wanna do that

WesCraterMadman: it might give me the psychological edge

SirLoxley: it's sad the spirits can't hurl gnawing insults at each other. I liked that a lot during the last contest

fvla: But they're robots, Morty!

Smelty: rickroll bots xDDDDD

Smelty: what if i do that

ddreams: then you'll rickroll yourself while writing it

Smelty: yep

casmith789: you can still give messages

WesCraterMadman: jokes on you I love that song

ddreams: top bot keeps telling me it think it's losing

Smelty: yep

ddreams: but it's not

Smelty: xD same

yonder83: how to model this for search algo

Smelty: is there a puase between verse 1 and pre-chorus

yonder83: everything is easy without the sun

Smelty: xD

dbdr: silver will introduce sun eclipses

Scarfield: interesting the shadows always have the same legnth, flat earth confirmed

Smelty: yep

Smelty: or its too small an area

yonder83: can I ignore sun

ddreams: yes

ddreams: you won't reach legend though

Smelty: ok finished righting rickroll

Smelty: *writing

Smelty: https://www.codingame.com/share-replay/548350759

AstroHydes: Flatfield

Scarfield: xD

Smelty: xD

Smelty: Astrofield

Scarfield: nice nick!

LePrat: anyone else got to bronze league directly after wood 2 ? u_u

Smelty: uh...no-

Scarfield: yup, even got silver

Smelty: i spent 30 mins in wood1

Smelty: xDDDD

Smelty: and then ja got demoted

LePrat: i don't know if i'm really in bronze tho

AstroHydes: Had to do something about the chat lag Scarfield, figured I better change my alt acc nick to something people might get :P

Smelty: I literally spent 50 lines of code writing rickroll...what am i doing with my life

Counterbalance: :D

dbdr: cricri10000

WesCraterMadman: great things

AstroHydes: Yes dbdr

LePrat: can somebody know what is added in bronze ?

LePrat: does*

Scarfield: yea its apparently very laggy for mods. but CG is going to remove you as mods since you are breaking the rules :p

WesCraterMadman: trees have shadows and you can throw trees

AstroHydes: Nonsense Scarfield.

WesCraterMadman: if a tree is in the shadow of a bigger tree, it doesn't collect sun points

dbdr: your popup says AstroHydes

LePrat: ok i'm indeed in bronze without doing wood 1

Zenoscave: I made a brutaltester

LePrat: wtf

struct: nice Zenoscave

AstroHydes: dbdr: I changed it so it was recognisable

AstroHydes: Using this one for chat only

struct: Did you use official referee zeno?

Zenoscave: yup

AstroHydes: dbdr: Astrobytes has his ?disableChat on

Zenoscave: with a modified magus cli

Dr-D: I got promoted to bronce as well with my wood2 Ai @ LePrat

struct: I hope the refree I made works

struct: At least I used it for a while

Rag: I am very lost with seed placement, I guess always aiming for the top soil is not worth it =/

Zenoscave: I can send you my fork once I push

AstroHydes: I want your spoon tho

Zenoscave: I'll spoon you

Dr-D: Guess we got lucky to get pushed beyond the boss with those ties

struct: sure

Zenoscave: ...r eyes out

**AstroHydes runs away

struct: I can also check if mines faster by any big margin

struct: if it is ill sed you mine

Zenoscave: sure thing

AstroHydes: sed eh

NinjaDoggy: struct why does your sim bot lose to python bots :rage:

struct: chat so laggy I cant fix typos

struct: NinjaDoggy because I only tested vs myself

AstroHydes: Who were the other testers other than T zupy?

Rag: how do I go about testing locally? I would need the game source code right?

AstroHydes: Yes, it's on the linked github repo Rag

struct: Konstan t and jmpe g

struct: some cg staff was also on the leaderboard

AstroHydes: cool

miszu: struct, I see you changed your profile pic

Thiesjoo: Does a dormant tree not cast a shadow?

JeanpierCalderonPuente: im new on this

Scarfield: all trees casts shadows

jacek: Thiesjoo it does

SirLoxley: Can I select a specific player/bot to my IDE as opponent?

jacek: yes

jacek: just click delete under the avatar

Thiesjoo: Ahhh but if i grow the tree in that turn, it doesn't count for the shadows on a current turn

MSmits: you get sunpoints at the start, so nope

Thiesjoo: Hmmmm

SirLoxley: thanks

MSmits: even if it did count for shade, sunpoints are already handed out

AstroHydes: Oh Thiesjoo is competing too MSmits, nice. Any others?

MSmits: you mean from my school? Not that I know

Thiesjoo: Ohhh wait shadows are only calculated at the start of a day

MSmits: yeah i think so

MSmits: you can look at the referee too, it's java

AstroHydes: Ah. You should bribe them next time.

Thiesjoo: Yeah i looked into the referree

MSmits: it was actually a surprise to me that Thiesjoo joined. He didn't tell me he would (and he doesnt have to)

Thiesjoo: But it didn;t work with my local program

Thiesjoo: MSmits yeah i always find these contests fun, so i joined

MSmits: its cool

Thiesjoo: But it's right before my exams

AstroHydes: That's cool MSmits and Thiesjoo

MSmits: yeah thats one of the reasons i am surprised

AstroHydes: Exams are WAY mroe important Thiesjoo

AstroHydes: *more

Thiesjoo: Hmmmm

AstroHydes: But you can spend downtime on this ;)

MSmits: I am not worried about Thiesjoo passing them, but higher grades could be nice

AstroHydes: Yes. Always aim high.

Scarfield: wait, growing a tree doesnt change its shadow until next day, weird

Thiesjoo: Yes scarfield. Its pretty weird

Thiesjoo: I will pass just fine, and my study is not selective. So high grades do not really matter

Scarfield: i just assumed it did, thanks for saving me the time finding that bug :)

MSmits: it's confusing when you look at replays

MSmits: because a day is kind of a turn yet it's not a turn

dbdr: and it

AstroHydes: Just don't compare the game with reality and you'll be fine.

Maliamnon: you don't get sun points until the next day, so it's fine

dbdr: 's called a round too :D

Scarfield: does a tree cast a shadow if you are not there to see?

fvla: would be nice if days had an indicator on the timeline, like completions do

MSmits: Maliamnon yes, it works fine, but it can lead to problems when you are testing your sim or something

kovi: msmits, yes. i debug say the days...

fvla: otherwise, I'm not confused by days vs turns

AstroHydes: Scarfield, of course.

MSmits: me neither, but replays have always been problematic when testing things, they often have off by 1 errors when comparing frames with the debug output

fvla: that can be confusing

MSmits: so you're looking at the frame with the debug output from previous turn, that sort of thing

Default avatar.png Francis69: julle almal se poese stink

MSmits: if your cat stinks, just bathe it

MSmits: cant believe I am giving pet grooming advice here

fvla: you could just not give any advice at all

MSmits: true

Default avatar.png vagos: yea dummie

fvla: i've wasted too much time in the past giving advice

MSmits: it's different here

MSmits: i often get information back

fvla: true

MSmits: just dont share things during contests that you dont think anyone else has thought of

Astrobytes: Unless you're euler

gd1035: Anyone use Groovy here? With the autogenerated code it keeps timing out

cegprakash: is it safe to keep the trees inside player class or better to keep it outside?

MSmits: anyone else check if Groovy was in the list of languages?

fvla: me

MSmits: kinda cool

MSmits: or... groovy

Thiesjoo: Noice i got the shadow simulation working!

MSmits: gd1035 the autogenerated code is probably ok

dbdr: if you did more golfing you would know ;)

Astrobytes: No Groovy is there. I did some golfing in it? Or maybe just language achievement. That's all I know.

MSmits: sure

MSmits: Thiesjoo gj

gd1035: I would think that it should be ok

gd1035: but it keeps failing and timing out

Astrobytes: All I know is I was listening to Earth, Wind & Fire and had my flares on

gd1035: without modifying it

fvla: perl -pe '/C(\+\+)/ or die "You're using the wrong language lol"'

fvla: oh, forgot a question mark

Astrobytes: Someone ping my AstroHydes nick if any spammers/trolls appear please

fvla: What languages do you use/recommend for code golf?

AstroHydes: Java

fvla: I occasionally dipped my toes into code golf and used exclusively perl

fvla: ...

AstroHydes: :grin:

fvla: lol

AstroHydes: perl yeah, ruby, python

SirLoxley: Anyone else finding it odd that the sun rises in the east and sets ... in the east?

Default avatar.png vagos: no

Default avatar.png vagos: just you

jacek: ask Celestia

AstroHydes: Sounds like a new Jeru the Damaja album SirLoxley

fvla: precession of the earth do be weird like that

Smelty: lolxi

BlaiseEbuth: Someone ping my AstroHydes nick if any spammers/trolls appear please ... You're the worst troll here.

AstroHydes: I wasn't earlier BlaiseEbuth, and now you're here I am not any more.

jacek: oO

BlaiseEbuth: :flushed:

Smelty: o . zo

fvla: tfw saying a correct statement makes it wrong

AstroHydes: Troll-in-Chief! jacek, respect his authoritahh

SirLoxley: Ok, something more serious, though, a tree in shade ... does it cast a shade?

Smelty: yes

Smelty: or mp

Smelty: *no

fvla: yes

AstroHydes: I believe it does yes

fvla: "Each tree casts a shadow" means each tree casts a shadow.

fvla: no but really, it wouldn't make sense otherwise

fvla: shadowed objects irl DO, in fact, cast shadows too

AntiSquid: plant Jack's bean stalk for 100 suns

AntiSquid: beanstalk *

fvla: lmao

Smelty: lmao

Smelty: antisquid this u? https://www.codingame.com/share-replay/548389482

MSmits: dont bait the AntiSquid

MSmits: it's dangerous

MSmits: I bet he's now stocking up on replays where you lose :)

jacek: it would be easy eh

struct: MSmits have you finished bs?

ZarthaxX: whats up with bullshit

MSmits: lol

MSmits: well I was no longer bs-ing, but if you want, i can do some more bs

MSmits: but no, my beamsearch is not yet done

MSmits: i am going to try just finishing the day first, like euler mentioned

MSmits: see if that works

struct: using beam to finish the day?

MSmits: bs is a bit more complicated in this game because of turns vs days

MSmits: yeah just eval the next few turns till the day ends

MSmits: so depth 2-3 probably

MSmits: to get the bugs out for that

MSmits: then add more days

AntiSquid: smelty ? why ping @_@

struct: I just add the finished to the queue

struct: Might not be the best way though

MSmits: hmm, the queue?

MSmits: dont you need to beam them?

struct: yes

struct: I beam them anyways

MSmits: oh ok

struct: all mixed up

AntiSquid: i don't get what's special about that reply lol @smelty

MSmits: i just generate wait children and if a state is already a wait state i duplicate it

AllYourWhat: B E A M S E A R C H

struct: I can be beaming turn 19 and 23 at the same time as far as I know

struct: yeah its similar to what I do

MSmits: i have 2 arrays i swap back and forth between children and parents

MSmits: so wait parents get copied to the other array

struct: ah

AllYourWhat: you guys used beam search for the last comp too right?

struct: I see

MSmits: i didnt participate in it, but i sure would have done that yes

struct: I did

Smelty: hmm

kovi: all your trees

MSmits: are mine?

Counterbalance: all your trees are belong to us

MSmits: kovi blacked out halfway through his evil villain speach

Smelty: *our tree

MSmits: speech

AllYourWhat: true i should change my name to that

MSmits: Counterbalance i thought that :P

AllYourTrees: OKAY IM READY

MSmits: wasnt sure if that reference was international

AllYourTrees: jk NOW IM READY

ZarthaxX: Counterbalance !! :*

kovi: (it was. i remember halite...)

Counterbalance: it's japanenglish so I gues so

AllYourTrees: AllYourTurtles </3

Default avatar.png Omar_ALearningProgrammer: ok then

Wontonimo: all witness the mighty if/else bots! wow, i really didn't think not having a simulation would get this high

ZarthaxX: python n1 :D

ZarthaxX: Wontonimo it just started anyway

ZarthaxX: they may drop by the end

AstroHydes: AllYourForest, AllYourSeeds, AllYourTrees etc

Default avatar.png Omar_ALearningProgrammer: :neutral_face:

AllYourTrees: :scream:

ZarthaxX: AstroHydes too many ppl for a mod=? :P

Wontonimo: ZarthaxX yeah, i hear that. Silver hasn't even opened yet.

AstroHydes: ZarthaxX: Yeah man, was getting really laggy

AstroHydes: So I renamed my testing account

AllYourTrees: to what?

ZarthaxX: like toad :P

Donald_D._Doge: i hope these alts get banned or something, they're out of control

ZarthaxX: ?

AstroHydes: AllYourWhat: To this!

Smelty: xDDDDD

AstroHydes: Donald_D_Doge: That's GOT to be a Westicles thing or someone is ripping the piss

icecream17: 50ish to 261 in a few hours !

AstroHydes: #winning

AntiSquid: laptop cat don't you have piano lessons to attend? ascend to a piano cat

AstroHydes: I Am The Seal of Approval

Donald_D._Doge: ripping a piss? that would take quite some ingenuity

AllYourTrees: can someone add a WaitingBot that just waits every turn

ZarthaxX: for what

Default avatar.png JBM: y not u

ZarthaxX: you can submit that :D

AllYourTrees: oh yeah good idea

ZarthaxX: YEAH JBM TELL HIM!

ZarthaxX: lol it worked

Default avatar.png JBM: just did

AllYourTrees: very convincing JBM

Default avatar.png JBM: :glasses: My Job Here Is Done

MSmits: You can submit a wait bot and then test vs the wait bot in your IDE

Default avatar.png vagos: no its not

AntiSquid: ask top 10 they'll do it AllYourWhat

AstroHydes: Donald_D._Doge: Fix your UK/Irish informal phrase knowledge.

Marchete: just play against yourself

Westicles: AstroHydes, that is some inception level depth if you are just pretending not to know him

Default avatar.png Omar_ALearningProgrammer: :')

Donald_D._Doge: and stop pinging me on both accounts

Default avatar.png Omar_ALearningProgrammer: :grimacing:

Default avatar.png Omar_ALearningProgrammer: lol

AstroHydes: Always a laugh a minute in here.

AntiSquid: that's just another spam emotes person

icecream17: https://www.codingame.com/share-replay/548423162

Smelty: hi icecream how u doing

icecream17: im good

AstroHydes: Melting currently.

icecream17: well i just came back to 281st

AstroHydes: gj

icecream17: but that isn't too bad

Smelty: o.o

icecream17: i was ~50th ~1am today

Smelty: imma fightyo

icecream17: now its 3:36pm here

MSmits: quick c++ question. I know how to do nth element, but is there an easy function to get the maximum item out of an array according to a property of that item?

AntiSquid: icecream17 take leaderboard screenshot while you're above m smits and post it in your postmortem end of contest

Smelty: icecream17 WHAT A BEAUTIFUL TIE https://www.codingame.com/share-replay/548425098

AntiSquid: or save replay

icecream17: !!!!

icecream17: bookmark!

Smelty: same points, same treeees

icecream17: i've never done a postmortem before

AstroHydes: MSmits, you can sort with a lambda

MSmits: i dont need to sort

MSmits: i just want the 1 maximum item

Smelty: hm

RoboStac: max takes a comparison function too

Default avatar.png deoignition: ok bro

DomiKo: you can do max_element with lambda

AntiSquid: sort()[0]

Default avatar.png deoignition: sure it does

AstroHydes: well select whatever with a lambda

MSmits: ah ok, thanks RoboStac and DomiKo

AstroHydes: [](){}

MSmits: and astrosmurf

AstroHydes: sorry I misread your max_element bit

MSmits: np, it's a weird question, you'd expect i know this

AstroHydes: you do now

MSmits: yup

MSmits: i generally always write a whole loop for this sht

MSmits: which is why my code is always too many lines

AllYourTrees: click the language dropdown, select python3, convert all your c++ to python, add max(items, key=lambda i: i.property), search for a python -> c++ transpiler online, transpile your python code to c++, copy new c++ code to ide

KnightMoves: Going straight for C++ this time, huh?

MSmits: I usually do, these last few contests

AntiSquid: so easy AllYourWhat :O

MSmits: nice one AllYourWhat :)

KnightMoves: I thought you did C# first last time

TheLuckyMagician: Hello guys are there any simple (easy puzzles that uses DPS algorithm , I want to practice it but i dont want to spend more than an hour trying to figure out the puzzle by itself).

Wontonimo: excellent AllYourWhat , but what if I'm coding PHP?

AllYourTrees: :sunglasses:

KnightMoves: I decided to do the opposite and start in Python instead of C++

MSmits: hmm, that might be true KnightMoves, thats what i used to do

Default avatar.png TheScreamingMonk: hey can anyone help me with this code?

AllYourTrees: then just convert your php to c++ first and then continue with my instructions

MSmits: yeah, pacman i had C# for a day or two i think

AstroHydes: Wontonimo: then I suggest you get the tacos and kebabs in and don't worry about anything

Wontonimo: hmm tacos!

MSmits: this game is so much simpler than pacman though, sim-wise

AntiSquid: KnightMoves python for quick bronze to get all rules @_@

Thiesjoo: Even i can get a sim working!

Wontonimo: wow Thiesjoo

Wontonimo: jk

Smelty: eeee

MSmits: you solved bender4, it should be easy

Smelty: well i cant

TheLuckyMagician: Hello guys are there any simple (easy puzzles that uses DPS algorithm , I want to practice it but i dont want to spend more than an hour trying to figure out the puzzle by itself).

Wontonimo: i don't have a sim running yet

Smelty: *i ahvent

Thiesjoo: A good eval function is next!

KnightMoves: In that last witches brew contest i started in C++ and over-optimized my code too early, instead of focusing on writing a better algorithm.

Wontonimo: hey TheLuckyMagician , give i a min to search ...

AstroHydes: Wontonimo: Thies joo is/was a student of MSmits ;)

AllYourTrees: optimization is the root of all trees?

MSmits: well he is until the summer

AllYourTrees: is that the saying?

KnightMoves: :D

Wontonimo: oh, so he knows his true identity!

AstroHydes: Evil is the root of all tree optimizations AllYourWhat

bluehipy: how do you make them say the extra stuff in the preview?

AntiSquid: yes Wontonimo, but he doesn't say much about his teacher atm

MSmits: it's not like i am too secretive

Thiesjoo: :eyes: i know his real identity

Default avatar.png WaitEveryTurn: AstroHydes :scream:

AntiSquid: Thiesjoo what happened to his other students ?

MSmits: they didn't make it :P

AstroHydes: Chat's just too much fun tonight

Wontonimo: haha AntiSquid ! :D

Thiesjoo: They didn't have a big enough brain to understand MSmits (:

AntiSquid: woah :o

AllYourTrees: agree AstroHydes

gwolpi: I'm here thanks to you though Thiesjoo :p

Wontonimo: hey TheLuckyMagician , i couldn't find anything. google a simple tutorial in your lang of choice

gwolpi: even though I am no student

Jackalabrute: When does the next league come out ?

Thiesjoo: Gwolpi you better have a silver bot by tommorrow

Wontonimo: Monday

gwolpi: No worries.

MSmits: oh cool, you're a friend of Thiesjoo gwolpi?

AstroHydes: Yesterday Jackalabrute

AstroHydes: :P

MSmits: need more Dutch on this site

AstroHydes: Thiesjoo is recruiting too? Awesome!

gwolpi: Yeah, pretty much MSmits. We know each other through the internet :D

Westicles: What is DPS?

gwolpi: But I'm like 10 years older than him

MSmits: ahh ok

Wontonimo: Dammage Per Second

gwolpi: Same interest in programming though

AntiSquid: d stands for double, figure the rest out yourself Westicles

MSmits: I see, well have fun here

MSmits: plenty to do

gwolpi: Cheers :D

AstroHydes: MSmits: Geest. That's Dutch for ghost. More Dutch on the site.

Wontonimo: DoublePercisionSandwiches

Thiesjoo: Nice!

AllYourTrees: is discord more active than the chat here?

AllYourTrees: or what do ppl even talk about on the discord

AntiSquid: usually not

AstroHydes: It depends. If the webchat is full of children then usually discord is the best bet, but it's prudent to check both.

AllYourTrees: :ok_hand:

AstroHydes: And discord is a little more permanent, you can still reply to stuff you didn't read. We do have webchat history though

dreadylein: DoublePrecisionSandwiches ? ... Nice

Wontonimo: dreadylein like a taco in a taco, but done carefully

AllYourTrees: now i want a taco

AstroHydes: I want taco sandwiches

AllYourTrees: WHOA

AllYourTrees: describe your ideal taco sandwich

Wontonimo: https://www.food.com/recipe/taco-sandwich-141546

AntiSquid: mayo sweetcorn

Wontonimo: mmm , that sounds great AntiSquid

AllYourTrees: yum

AllYourTrees: wait does a taco sandwich have bread AND a tortilla, or just bread?

Westicles: burrito burgers are better

DevLorenzo: What is the best bot game?

DevLorenzo: Other than coders strike back

DevLorenzo: here at codingame

Counterbalance: whichever one you enjoy the most

Theino: Spring Challenge 2021

Theino: because its the newest!

DevLorenzo: Other?

AntiSquid: https://www.youtube.com/watch?v=hIoCn_9QTVU

KnightMoves: Code of Ice and Fire is pretty dope

NinjaDoggy: code of ice and fire best game :)

Wontonimo: Westicles "burrito burgers" sounds better also

AstroHydes: It depends on state of inebriation and/or hunger + storecupboard ingredients if at home

AntiSquid: Botters of the Galaxy , DevLorenzo

AllYourTrees: have a good weekend ya'll :wave:

AntiSquid: bye

AstroHydes: Later AllYourWhat

AstroHydes: AllYourTrees

AntiSquid: i do like fireworks should i recommend that too ?

KelvinAndHubbles: the Spring Challenge mentions you can only do one of four possible actions, but is there no action limit?

KelvinAndHubbles: per turn that is

Nagatwin: 1 action per turn

KelvinAndHubbles: I mean per day

Nagatwin: as many action as you want per day

KelvinAndHubbles: ahh, thx

AstroHydes: One per turn, just don't mix turns up with days

Nagatwin: the only limit is your sun points

KelvinAndHubbles: and your dormants mostly too I'm guessing

AntiSquid: oh i thought he meant possible actions for a given turn, no idea how to calculate that

KelvinAndHubbles: no, just me misreading the rules and read playing one of four possible commands to playing one to four commands

Nagatwin: 37 source tree for see * 36 target cells + 37 grow action / complete action + 1 wait action gives an upper bound at leasty

Nagatwin: seed*

AntiSquid: Nagatwin with max bound i found out a level 3 tree can cast up to 3 cells of shadow * 6 directions * 37 cells = 666 @_@

Nagatwin: that's some deep thought

Smelty: eee

AntiSquid: illuminati confirmed, say it Automaton2000

Automaton2000: my guess is that it is

Astrobytes: Alright, chill time, gn all

AntiSquid: gn

AstroHydes: gn from him and gn from me

DevLorenzo: Thx AntiSquit

Westicles: What is the worst bot game?

struct: yavalath, yinsh, othello and amazons

AntiSquid: including community games ? if not then either UTTT or Crystal Rush (ya i am close to legend but i hate it, why i gave up on it)

jacek: oO

AntiSquid: tell us your least liked games jacek

Marchete: UTTT, PCR, PR2, CSB and many more

Default avatar.png FunkyNoob: few people shares the code after a clash, should there be some revard system implemented?

AntiSquid: for not playing clash during contest definitely

Default avatar.png FunkyNoob: what i was there 504

Default avatar.png FunkyNoob: ahh ok, lets see the contest

Smelty: . . .

Rilesworth: Are there any TypeScript/Angular stuff here?

mybk: TypeScript it's a language that you can use to solve problems, contest, clash of code...., Angular is a ui framework, you can practice that if you have an idea to create a tool , but if you want to practive angular, not the right place

AntiSquid: :relieved::point_up:

Nerchio: :point_up_2:

Rilesworth: Understood. I just know that TypeScript is used in tandem with Angular. I just didn't see any TypeScript on here.

mybk: go to any problem and change the language

mybk: select TypeScript

Westicles: Except Nintendo

Rilesworth: Ahhh I was looking under the learn section

Rilesworth: TY

mybk: ;)

mybk: have fun

Nerchio: new mod when

Rilesworth: I will. I just got handed a project and I have zero xp with it

cegprakash: https://ibb.co/WKpD3zG what just happened

AntiSquid: you posted a dodgy looking link

Smish314: who's gonna take the risk and click it?

jacek: its legit

cegprakash: okay I'm unable to penetrate through top 500 may be something is happening out there..

BlaiseEbuth: Does the top 500 want to be penetrated?

Maciulis: pass

Westicles: Oh, now I get DPS!

AntiSquid: it's dangerous out there, lock doors so the outside doesn't penetrate

Illedan: Hi

BlaiseEbuth: Hiii

AntiSquid: Hii

Smelty: hiiii

Default avatar.png Kumbi: is it possible to get to silver? or only on monday?

Nerchio: starting from monday yeaj

Nerchio: yeah

AntiSquid: silver was yesterday

AntiSquid: you're too late

Nerchio: antisquid is your bot made with jokes from chat

Smelty: hmm

AntiSquid: no, didn't add any yet

Smelty: mine is made up of rickroll

Nerchio: oh god i didnt see any yet but a bot that sings rickroll is a great idea

Smelty: x

Smelty: xD

Smelty: battle mine

Default avatar.png elijah.toppo: finally, I'm getting in the top 500s..

Default avatar.png elijah.toppo: xD

Smelty: ...oh you're higher rank then me nerchio

Smelty: about...100 ahead

AntiSquid: Nerchio it only works well if you bot is very high and you keep submit spamming dragging others down, then they are forced to chec replays

Nerchio: yeah still i can play it in the ide... it sigs..

Nerchio: sings

Smelty: here nerchio https://www.codingame.com/share-replay/548500355

Nerchio: now i've seen everything

Smelty: lol

Nerchio: AntiSquid just wait for me to write my uber optimized bitset search in java

Smelty: oh lawd

Smelty: im using java xD

AntiSquid: how do i add messages?

AntiSquid: oh it worked

Nerchio: you don't read game statement?

Nerchio: :sunglasses:

AntiSquid: no, i read chat, people ask so many questions for you ...

Nerchio: what happens if i paste code is it going to create a link

Nerchio: or i will get ban hammered by antisquid

AntiSquid: chat has pastebin

Nerchio: http://chat.codingame.com/pastebin/92984f95-759f-4e09-8c59-0402ecaed816

Nerchio: how do you like that

AntiSquid: omfg ...

Nerchio: pretty? :grinning:

AntiSquid: there got to be a way to refactor that

Nerchio: do i need to though

AntiSquid: are those your row / columns? lol

AntiSquid: i see where your bots become successful, you have the "JUST DO IT!" approach

Nerchio: haha lol true

Nerchio: domiko used BFS i chose a more straighforward approach

Nerchio: don't need BFS in this game :innocent:

Counterbalance: I also use bfs, but the assembly kind

AntiSquid: "it's not much, but it's honest work"

ZarthaxX: Counterbalance huh

Counterbalance: bit scan forward

AntiSquid: i don't have BFS btw, but why would you need BFS?

Counterbalance: uint64_t todo = d1mask; while (todo != 0) { int idx = bsf(todo); todo &= ~(1ULL << idx);

ZarthaxX: ah yeah

ZarthaxX: using the variable as a queue

ZarthaxX: know that one :)

ZarthaxX: is that it?

Counterbalance: yes

ZarthaxX: bfs using var as a queue

Nerchio: AntiSquid to calculate distance 1..2..3.. from a cell to do seed lookup

Counterbalance: uint64_t neighbourCache[4][MAX_CELLS];

AntiSquid: i have a shortcut to that

ZarthaxX: we allhave that haha

Nerchio: :pizza:

fvla: Does anyone know if the servers have AVX/SSE capabilities?

struct: yes

struct: avx2

fvla: thanks!

fvla: guessing that also implies sse

struct: yes

fvla: and is the compiler GCC?

struct: yes

therealbeef: See FAQ

fvla: oh dear, it was all in the faq

fvla: thank you so much

fvla: ...sorry I have to ask, but where is the FAQ?

Mistblinde: https://www.codingame.com/faq

fvla: Thanks! I only just found out that the link was all the way at the bottom...

Smelty: sigh-

Smelty: uh hi

Smelty: [silence]

Nerchio: :mouse:

Smelty: e

Smelty: just resubmitted hoping for best :pray:

Nerchio: how many lines u got

Smelty: uh lemme c

Smelty: he actual code with comments is 113

Smelty: and then another 50 lines is rickroll code

Nerchio: O.O

Smelty: lol

Smelty: lemme delete comments and shorten code, just a sec

Nerchio: i have 750 but current submit is probably more like 300

Smelty: lol

Smelty: im still playing matches, at 650 rn

Tiramon: damn simulation bot should be working but i don't get enough sims done to get good results ...

cegprakash: Tirasim

Smelty: Rip

Smelty: smelse

Nerchio: how many states you got tiramon

Smelty: also nerchio after comment deletion its at exactly 100 lines

Nerchio: short :)

Smelty: add the rick and its 152

Smelty: ye short

Tiramon: to less to talk about ;)

Nerchio: i only need to add shade logic

Nerchio: move generation is done

Smelty: congrats.

Tiramon: simulation shoudl be completly done ... algo is just to slow

Smelty: i don't even consider shade or neighbor cells...

Smelty: dang

Smelty: v.1.9.6 just beat v.1.9.4 by 50 points....dang

Tiramon: k currently i simulte between 3 and 7k turns

Tiramon: *simulate

Smelty: thats a large margin

Smelty: 3-7000

Tiramon: 3k-7k

Smelty: ah

Smelty: makes more sense lol

Smelty: also i just take the "possible moves" and compare them to my optimal planting spots to see if it is possible xD

Tiramon: and i'm still wasting more than 30ms ... no idea why ...

Smelty: interesting.

struct: days or turns Tiramon?

Tiramon: turns

Tiramon: days is a to abstract measurement ;)

Smelty: xD

Tiramon: k between 5k and 12k better ...

Smelty: noice

Tiramon: still the results are totaly stupid

Marchete: on 100ms?

Smelty: e

MSmits: well i dont have performance issues, but my bot plays like crap, probably due to bugs and/or bad eval

struct: MSmits eval is hard

Smelty: F

struct: my bot played like crap for a long time

struct: Took me more than 1 day for a decent eval

Smelty: struct u twelfth now :((

Smelty: you still smash me though

MSmits: I use 10 ms of runtime for a beamsearch with a beamwidth of 5000 and 20 turns depth

MSmits: though i am not ruling out that i get this good perf. due to bug

Smelty: hmm

struct: that must be a bug

MSmits: yeah its probably bug

MSmits: because i get 14 turns in one day at some point

MSmits: thats not possible

Smelty: wwwwwhhat

Smelty: yea thats probably bug

Marchete: are you sure depth 20 has any useful data?

Marchete: I don't know

Marchete: in HS I get it

struct: Mine is depth 20

struct: but is bad

Marchete: 8 turns to bomb

Marchete: but here...

MSmits: struct yours is not bad

struct: meh

Marchete: here enemy actions matter faster

MSmits: exactness is not much of a big deal though, who cares if one hex get blocked, you can get another one

struct: Yeah I lowered depth and my bot seems better I think

Smelty: normally before i upload i play a couple games vs my old bot to see if i improved

struct: I havent tested it much though

struct: I added chokudai

Marchete: how exactness is not a big deal

struct: But havent tested much

MSmits: because the biggest factor in winning is deciding when to seed and when to grow and such

MSmits: that wont change just because 10 turns from now some specific hex is blocked

Smelty: j,,

Marchete: you decide to grow at depth 15

Marchete: and imaginary tree

Smelty: lol

Marchete: that enemy took on 10

MSmits: yeah doesnt matter

MSmits: because the imaginary tree could be somewhere else

MSmits: and do just as well, or nearly as well

Mourfette: Do you guys use the given possibleActions or do you compute your own actions?

Tiramon: it might be important for shadows etc

Smelty: i generally try to have around 5 non-fully grown trees at once

struct: compute my own

Smelty: Mourfette i evaluate my best planting positions to see if they are valid using given actions

Marchete: I imply "simulation doesn't matter"

MSmits: just like in HS you'd be blowing up boxes 40 turns from now that are long gone before you actually get there

Smelty: but then again i use if/else and am ranked 400 so

Marchete: I had 12 depth

MSmits: i tried in HS, depth 40 or depth 70. Gave same result

MSmits: 70 wasnt worse

Smelty: . 0 .

Marchete: 8 turns to explode

Smelty: hrmm

MSmits: yes, but... depth 70

MSmits: long depth with a lot of inaccuracy doesn't necessarily hurt you

MSmits: depends on the game. Just a matter of trial and error

Marchete: MCTS style

Marchete: but I don't see it here

Mourfette: Yeah I'm trying to compute the best seeds actions but I need to find a better way to travel between cells in a direction because using neighbors indexes is terrible

MSmits: my gut feeling says it doesnt hurt you in this game. But it will help to incorporate some early depth opponent prediction

Marchete: as much as I agree on HS

Marchete: at least

MSmits: it's simply impossible to predict far ahead here

MSmits: for the opponent

MSmits: not doable

Illedan: No need for 20 depth here :P

Marchete: how deep then?

Marchete: Ille ?

Marchete: being 5th

Marchete: congrats btw

Illedan: Me? I'm at 4

Marchete: 4 depth?

MSmits: well there's a python bot at rank 1

MSmits: so...

Marchete: I think beam depth 20 is just noise

Marchete: a wishful thinking

MSmits: i think it depends on the quality of your eval

Illedan: ^

MSmits: if your eval incorporates long term planning

MSmits: then you dont need as much depth

MSmits: but thats not necessarily easy to do

MSmits: in HS it's impossible

MSmits: maybe here it isn't

Marchete: more with 4 players

Marchete: time to explode etc

Marchete: but here it's more doable to take enemy into account

Marchete: at least some basic one

Marchete: even heuristic, I don't know

orangesnowfox: ... What do people do on their last day at a job, with no tasks left but to answer questions from the person you were training?

Marchete: assert dominance

ZarthaxX: Illedan beamsearching with 4 depth??

Marchete: don't tell Ille :D

Illedan: GA.

Marchete: ahh

ZarthaxX: i hope you are memeing

Marchete: always GA :D

Illedan: SGA*

ZarthaxX: is this not a meme?

Marchete: SEGA?

Marchete: good games

ZarthaxX: Simulated Genetic A star

ZarthaxX: D:

Illedan: Nah, from my last Post Mortem

Illedan: 3 pod thing

Marchete: my brain filter out any GA wording

ZarthaxX: dude loves evolution haha

ZarthaxX: are you considering actions inside a day?

ZarthaxX: or already doing through days

ZarthaxX: nice results btw

Marchete: I'll review your PM

ZarthaxX: everyone will

ZarthaxX: :D

Marchete: but if I can change it to smitsi, I'd do it

Marchete: GA waste a lot of statistical info

Marchete: just because

Illedan: Hard to model this into smitsi

jfaixo: 4 turns or 4 days ? :P

Marchete: and not in GA?

Illedan: I'll keep specifics a secret ;)

Marchete: well done

ZarthaxX: beast

jfaixo: haha

Marchete: but I'd code the gene on high level actions maybe

MSmits: i wouldnt bother with smitsi here Marchete

Marchete: why

MSmits: you run into issues with shading and sunpoints

MSmits: some iterations, some actions will be available and sometimes you wont have enough points

MSmits: hexes being blocked as well

struct: ok

Marchete: GA is M-M-M-M-M-M

orangesnowfox: "what is smitsi"

struct: Im testing lower depth and is better

struct: :/

Marchete: GA enemy is M-M-M-M-M

ZarthaxX: struct :D

Marchete: smitsi is mostly the same

struct: I increase beam width though

Marchete: wishful thinking

struct: with chokudai

ZarthaxX: ah

struct: 70% vs current submit

orangesnowfox: "what's chokudai"

Marchete: wow

Marchete: 70?

ZarthaxX: https://github.com/mayoko/library/blob/master/ChokudaiSearch.cpp

struct: yeah

struct: same eval

ZarthaxX: just a beamsearch with increasing width

Marchete: lel

Marchete: that's not a "tiny" improvement

ZarthaxX: submittttt

orangesnowfox: So, like a funnel beam?

struct: Maybe if I change to depth 1 I can get rank 1 back :D

ZarthaxX: funnel?

ZarthaxX: idk tha

ZarthaxX: lol

orangesnowfox: like, it funnels out

AntiSquid: what width are you using struct ?

MACKEYTH: Where are you now struct?

ZarthaxX: dont get it orangesnowfox :P

struct: more than 1k less than 10k

Marchete: between 0 and yes

MSmits: with chokudai, dont you repeat the same states every time you increase width?

orangesnowfox: ZarthaxX, think of a cone, (like, the shape), it starts at one width (that happens to be 0 in a real cone, but that doesn't matter) and ends at another width

ZarthaxX: ahhh

struct: yes MSmits

orangesnowfox: wait what?

ZarthaxX: you can look at the code but its basically this

struct: But it can stop repeating

ZarthaxX: you have beam, you run it with certain widfth to certain depth

MSmits: i dont get it

struct: if you start finding better states

ZarthaxX: then after that you increment width

MSmits: oh ok

ZarthaxX: and run it again

MSmits: seems as easy as regular beamsearch

ZarthaxX: orangesnowfox basically run beam search over and over increasing width, but beam HAS to finish until depth X and then restart

struct: yeah, I just changed my beam search

struct: to increase beam width

ZarthaxX: you dont increase width as beamsearch is working

orangesnowfox: ah

ZarthaxX: you increase it as you search struct?

MSmits: i'll put it on my list

MSmits: thanks

ZarthaxX: i dont get it

ZarthaxX: are you doing choku or not lol

struct: I complete Depth N and then increase width

struct: then run again

ZarthaxX: ah okey

ZarthaxX: sure thing :)

MSmits: it's like iterative minimax

ZarthaxX: yep

struct: Repeat

ZarthaxX: nothing more

MSmits: basically, if you were to guess the optimum width before you started, regular beam search would be much better

struct: Well that is not always possible

MSmits: wait, maybe not

MSmits: sometimes smaller width gives a better result no?

struct: Bigger width at mid game is harder too reach

struct: then on early game

struct: it can give yes

MSmits: then it's worth doing it multiple times

MSmits: the difference with minimax is that the next iteration is usually 10x slower or something

MSmits: wheras with chokudai it's only a little slower

MSmits: and you do it many more times compared to just 1 beamsearch

MSmits: so the price of doing chokudai as opposed to bs is quite high

struct: also some codes of it are not 100% right

MSmits: do you reuse any information from last iteration?

AntiSquid: chokudai should get his own anime and theme song

struct: no but I will now

MSmits: how would you reuse ?

MSmits: there's no ab pruning in chokudai

struct: sorry I mean

Default avatar.png MrFruit: Man, why do I always lose the first three battles

struct: I will use best state at N width

struct: I dont do that currently

MSmits: oh ok

MSmits: how about hashing

MSmits: are you hashing your states to avoid duplicates?

struct: no

MSmits: might be necessary because grow x then seed y is the same as seed y, then grow x

Mourfette: How do you seek the best seeds? do you travel from neighbor cell to neighbor cell to travel the X distance or do you have a better thing? (or a global list of best cell to seed for each cell/distance...)

MSmits: Mourfette not doing anything like that yet

struct: if you ignore enemy yes

struct: you are right

MSmits: yeah thats what i meant

AntiSquid: maybe restrict seed placement to a single diagonal to make it a proper beam search? get it?

MSmits: got it :P

MSmits: getting started on that right now

ZarthaxX: optimizing that far may not help as you are seeing struct say less depth better

AntiSquid: it's a good idea

ZarthaxX: and ille too

ZarthaxX: maybe just focus on eval

NinjaDoggy: yea eval + opp sim seems really important compared to depth this game

MSmits: ZarthaxX even with a depth of 6 or 8, transpositions from ordering can hurt a lot

MSmits: can easily make branching 10x larger

NinjaDoggy: adding hashing also easily decreases state search by a factor of 10 though

MSmits: if you're doing 3 things in a day, you can do them in 6 different orders

miszu: is it beam search like previous competition?

ZarthaxX: if you are beamsearching i doubt it

ZarthaxX: we are not playing the exact game

struct: yeah ill try to focus on eval

struct: i dont really cared about performance so far

struct: I only did bitboard because its easier

Default avatar.png cahyudin: hey bro

ZarthaxX: yeah :P

cegprakash: wow I think I submitted a good bot :)

miszu: bitboarding? *hearing helicopter flying with PTSD of UTT bitboarding*

cegprakash: i constantly beat a rank 300 guy

AntiSquid: that's really good

orangesnowfox: UTTT bitboarding is a sad state of affairs :c

Marchete: :thumbsup:

miszu: orangesnowfox, I reach legends thanks to taht

miszu: and MSmits optimization in my eval

MSmits: orangesnowfox how do you mean sad state of affairs?

AntiSquid: i think he doesn't like the game

MSmits: uttt has some weaknesses as a competitive game, but other than that there is nothing wrong with it

miszu: game is fun, is just the anal optimization to reach legendary was the pain

MSmits: p1 advantage is annoying.

ZarthaxX: anal? D:

miszu: bitwise operations

Default avatar.png Kolo9: is there any sort of strategy discussion thread for the challenge? or does it all happen in here until the end

BrunoFelthes: MSmits, why do you count in turns not in days?

miszu: xoring, oring and anding

MSmits: either way is good BrunoFelthes, i just do turns because thats what my beamsearch does

BrunoFelthes: the deep

BrunoFelthes: ok

AntiSquid: i guess everyone's mother second cousin neighbour uses bitboards now

MSmits: oh, when Illedan said depth 4, he meant 4 days !?

miszu: sometimes you don't need bitboarding

MSmits: cuz that is a lot of depth

MSmits: AntiSquid you dont need bitboards here

MSmits: it's just convenient for me, because I am used to it is all

dreadylein: well bitboards never hurt tho :P

Marchete: first 2 players are python

miszu: I remember you used a ternery instead of bits

MSmits: oh for uttt

BrunoFelthes: MSmits, because if you do more expenses thinks, you do more days, in 20 turns... and get more sun points, and you board score will be better than turn with less days

AntiSquid: they use bitwise numpy

MSmits: still do, i use many systems in a single bot

Marchete: even bitwise numpy, python perf is low

MSmits: ternary, binary and a system that is even more compact than ternary

miszu: is the challenge fun/complex? I haven't start to read the rules

rafaelSorel: since when we have this kind of limitation:

"You reached the limit of plays for a period of time."


MSmits: challenge is ok

dreadylein: is numpy vectorized ?

AntiSquid: they have a ported keras bot

struct: I would rate it 6/10 so far

MSmits: rafaelSorel not sure, i noticed it with cg benchmark too. I would start it and after 30-40 games it would stop

BrunoFelthes: miszu, the rules are simple, but the game play is not trivial

rafaelSorel: MSmits: OK

miszu: is it doable in java or performance will be an issue once you reach gold+

miszu: thanks BrunoFelthes

RoboStac: It's not new, but I'm pretty sure they've reduced the number of games before you hit the limit

MSmits: yeah

AntiSquid: i don't like the game annoying imo

MSmits: in cg bench you can set time between games

BrunoFelthes: I think that for this game, search will be very important miszu

MSmits: i think if you set it high enough it still works

Illedan: Agreed RoboStac. Never hit it this much

RoboStac: yeah, I doubled my oware and was still hitting the limit whereas in the past I'd never hit it before

miszu: do it in java and avoid all mem issue or go for C++?

MSmits: i think it's a good idea for them to lower the limit

BrunoFelthes: C++ is always better...

MSmits: i always found it weird i can abuse their servers so much

MSmits: as long as it doesnt hurt casual testing

miszu: write unit tests and test all your little functions

miszu: let's see if my master degree in CS will help me to solve wood 2 league

Marchete: ok seeding always center is a bad idea

AntiSquid: tile 0 is deadly

MSmits: why?

Marchete: I mean always

Marchete: like packing all in center

MSmits: oh yeah, you're shading yourself

Marchete: it seems better to avoid directional

AntiSquid: so you don't get sunburn

miszu: hold up

struct: best cells are probably the ones who cant be shadowed by middle cells

miszu: there are shadows to consider?!?

MSmits: yeah from bronze and up

MSmits: your tree gets shaded

miszu: rip

MSmits: ohhh!

MSmits: I forgot this

MSmits: in my BS :)

Marchete: what

Marchete: shadows?

AntiSquid: don't waste too much time in wood or you will miss full picture

MSmits: yeah i have it all coded, just forgot to call the function :P

ZarthaxX: LOL

MSmits: well i'll go work on that then

Marchete: :unamused:

miszu: does considering the enemy move helps your eval?

Marchete: it should

MSmits: depends on how well you do it

miszu: in theory it shouldn't make it worse

Marchete: at least some fast heuristic

miszu: we all know theory performance = practice performance right?

AntiSquid: heuristic : opponent always builds mid

Marchete: not that

miszu: feed mid

miszu: enough trolling, time to read the rules... sigh

AntiSquid: ok gn

miszu: score more points than your opponents

miszu: mmm sounds easy

miszu: good night!

MSmits: gn

MSmits: still ridiculously fast. Shade takes time to calc, but also gives me less sunpoints, so less actions. Same speed

MSmits: probably still bugged

miszu: but same accuracy?

MSmits: i dont know the accuracy

miszu: well can it beat your previous submission?

MSmits: probably, it would be slightly less crappy

Marchete: 2000?

CouscousAgha: hey guys, anyone knows what does "unusable cell" means? what underline meaning does it have on the gameplay?

NinjaDoggy: you can't seed it

miszu: is the nutrient value shared accross all grids?

miszu: or each grid has its own nutrient value?

CouscousAgha: ah thanks ninja but how does a cell become unusable?

NinjaDoggy: it's given in input

NinjaDoggy: soil richness doesn't change

Default avatar.png actualCoderTrevor: *It goes down by one each time a tree is completed.

miszu: yeah I am seeing that

NinjaDoggy: the soil richness doesn't change

miszu: so all tree with same richness will give the same amount of points

NinjaDoggy: nutrients(the global variable) changes

miszu: ok so wood 2 seems easy

miszu: look for the richest richness and pop it

Default avatar.png actualCoderTrevor: Oh hm so there's some benefit to harvesting early

miszu: suffering from success

Xenoid: I'm not sure such an advanced strategy is necessary for Wood 2 this contest

NinjaDoggy: lol

miszu: advanced is when ternary datastructure is introduced

miszu: I guess poping 1st tree that you see is good enough

Marchete: people passed to bronze by picking the last move

miszu: if Totoboss sucks so bad

Marchete: or smth like that

cegprakash: top 200 :)

cegprakash: only if else

Marchete: no loops nor anything?

cegprakash: I mean loops with if else

ZarthaxX: :rofl:

Marchete: I have 200 too with a simple heuristic

Marchete: just to see the game

miszu: I guess breaking your head deciding int vs int16 is not worth it

Marchete: for wood2? absolutely

KnightMoves: go with int

KnightMoves: shorter to type

miszu: so I can profit of that 0.3s that I saved

cegprakash: 0.3 impossible

miszu: write 10 times word 10 and time it and do the same with int16

miszu: then take average and see how much extra it takes to type 16

miszu: word int**

itzluku: how do u guys consider shadows

itzluku: for what case

rafaelSorel: good question :)

rafaelSorel: I have no clue, for now I don't use it

rafaelSorel: what are the strategies for that....

itzluku: maybe when deleting a t3 tree

itzluku: also: when are the best times to delete t3 trees

rafaelSorel: the thing is the sun keeps turning

rafaelSorel: so it hard to monitor, predict the while thing

itzluku: yup you need to calculate some resulting board structures and weight them

RoboStac: pretty sure that last question is basically 'Also how do I win the game?'

rafaelSorel: yes I guess

miszu: git gud

itzluku: well

rafaelSorel: RoboStac lool

itzluku: if u observer some to10 players u can find some explicit strategies

itzluku: like, for day0 and day1 for example

miszu: hint: it's not spamming the wait command

itzluku: just asking what explicit rules u guys implemented:)

itzluku: testing my new bot rn , 54% #160

miszu: I need to check my UTTT code to refreshen my c++ skillz

itzluku: iom not that off alrdy without shadows xd

itzluku: what place are u guys?

rafaelSorel: As you've said, watching top players game may lead to some explicit strategies, but be aware that may be some kind of simulation implemented out there

itzluku: even for simulations

itzluku: first few days can still be the same everytime

itzluku: almost

itzluku: maybe some rock patterns yoik even that

itzluku: yoink*

itzluku: uh i might make top100

itzluku: surpassed eulersche zahl :D

rafaelSorel: I think from what I ve watched, taking shadow into the calculations may be handy in the final days

itzluku: if i have more than 6 t3 trees i start deleting some

itzluku: maybe i shoudl only delete t3 trees that are useless anyway for the next view days

itzluku: sth like that

itzluku: but it shouldnt be such a huge factor

itzluku: i think

itzluku: also: do u like to build seeds near an enemy?

Default avatar.png MrFruit: I try to build seed towards the middle

MSmits: holy sht, my nth element sign was off

MSmits: < instead of >

MSmits: yeah keeping the 5000 worst states instead of 5000 best

MSmits: nice bugs today

struct: :D

ZarthaxX: :F

ZarthaxX: imaghine getting first with that

MSmits: well i was 1800th so not reall y:P

struct: maybe I have that bug

struct: I can only hope

MSmits: doubtful :)

ZarthaxX: lol

MSmits: well higher than 1800 already at 20%

MSmits: I guess you get about 130 points with a good bot right?

MSmits: I am at 80-90 now

itzluku: how is the first always winning with deleting everythin after day 16

Wontonimo: i left for a few hours and went from being in the top 2% to 2.7%.

itzluku: hahaha wtf

Wontonimo: oh how the competition is growing

ZarthaxX: like your trees

ZarthaxX: THEY ARE DED

Marchete: simplistic heuristic is 200th

rafaelSorel: :laughing:

ZarthaxX: win() ?

Notter: What are heuristics?

MSmits: if else rules

MSmits: and maybe some loops

miszu: and some calculations

Marchete: and my sword

miszu: and a wait command

MSmits: if (I have sunpoints) grow/seed/complete

ZarthaxX: and a ban

MSmits: else wait

rafaelSorel: wait is pretty handy :)

miszu: as a pro, you should wait on 1st turn

Wontonimo: Notter an example of a heuristic for chess is that a knight is worth 2 pawns (I don't know if that is correct but you get the point)

rafaelSorel: naaaa

miszu: then if you beat the AI after then it means your AI is superior

Wontonimo: Notter basically anything that is a proxy for an informed decision

ZarthaxX: i think you killed him with that terminology :P


miszu: wait till you tell him about A*

rafaelSorel: miszu if we consider a bunch of if else an AI, so yes

miszu: your machine is just of is else

miszu: if*

Wontonimo: sigh ... my kids talk like nerds also and complain their friends need simpler words of every other sentence

rafaelSorel: basically yes :D

MSmits: this is what my beamsearch looks with time/depth/states

MSmits: http://chat.codingame.com/pastebin/57af1fe0-4757-4d5c-ad6d-076d47df2d5c

ZarthaxX: broken asf?

MSmits: time is microseconds so 16 microseconds

MSmits: milliseconds i mean

MSmits: I think this is normal

ZarthaxX: 4 actions constantly per turn?

ZarthaxX: day

MSmits: mo

MSmits: no

MSmits: this is the state with the most actions

rafaelSorel: you've already implemented a beamsearch ?

MSmits: so there is at least one series of 4 actions

MSmits: but most will have less

rafaelSorel: it is not overkill at this stage ?

ZarthaxX: okey

MSmits: if course it is overkil

ZarthaxX: rafaelSorel you should do what you like

ZarthaxX: and it may the best later

ZarthaxX: :D

ZarthaxX: also

MSmits: i just know i will be doing it anyway, so why not start with it

ZarthaxX: beamsearch depth 1 with big width = your if else stuff

ZarthaxX: so who cares

rafaelSorel: looool, correct

Wontonimo: for perspective, at this point i'm 125th and all i have is if/else statements

ZarthaxX: Wontonimo gg you beated me

Wontonimo: no search

MSmits: i think if else stuff might be better than depth 1 bs, if else is smarter than just looking at next turn

ZarthaxX: i will retire crying

ZarthaxX: MSmits ye

Wontonimo: lol

ZarthaxX: i think its cool to do if else and then use that knowledge for a search

MSmits: yes, there's good reason for making a heuristic bot first

ZarthaxX: which im not doing anyway

struct: Too bad I cant write them

ZarthaxX: :DDDDDDDDDDD

MSmits: often you can use the heuristics for pruning or eval

ZarthaxX: yup

miszu: serious question: what you do with trees. Do you make a list of trees for each player or what?

MSmits: uint64_t trees[4];

miszu: I have a struct for a tree

miszu: but yes, an int is good enough

MSmits: i am not using an int for a tree

Smelty: wha-t

WolfDarrigan: had an object, but switching over to int[37] for now

MSmits: i am using a uint64_t for all trees for size 0,1, 2 and 3

MSmits: so 4 uint64_t for all trees together

miszu: that int for each size is a bitboard of their location?

MSmits: yes

miszu: bruuuh

miszu: is that useful?

Zaphus: anyone using C++ and timed the reading of the trees? I'm just doing: cin >> cellIndex >> size >> isMine >> isDormant; cin.ignore(); and it is taking up to 50ms on some turns with just 9 trees on the board. (and as low as a few ms on other similar turns)

MSmits: for me it is, but i like using bitboards, for most it will suck

MSmits: zaphus you probably start the timer too soon

RoboStac: Zaphus - if you start the timer before reading the first line of input you'll include the time taken for the server to prepare the input

RoboStac: (which includes the time taken by the other player)

Wontonimo: Zaphus they speak wisdom. so many of my timeout issues has come from this

Zaphus: I'm starting this timer right after reading the number of trees - was trying to narrow down wher the time is going

RoboStac: hmm, that should work fine then

MSmits: i usually just start the timer after reading last input

Wontonimo: isn't the day the first input? i thought timer should start right after 1st line?

Zaphus: yes, I'm moving my start/end around to find which bit is slow

MSmits: reading input is negligible Zaphus

MSmits: or it always was for me in every arena

Zaphus: same here, until today

Zaphus: ah well, I'll ignore for now

miszu: I was thinking to make a list of my trees that I owe and if I harvest it, remove fro mthe list

miszu: but forgot that removing an item from list is.. not obvious

Smelty: e

ZarthaxX: https://www.codingame.com/profile/03d2ad6ea94045173c082d2352146e238925183

ZarthaxX: scary legend boss

Smelty: lol

ZarthaxX: i saw it and got scared

ZarthaxX: sheez

Smelty: oof..?

ZarthaxX: roblox?

Smelty: lol

RoboStac: theres a bronze boss in the top 100 too that gave me a shock earlier

Smelty: xD

miszu: bruh, Totoboss is the scary boss name

MSmits: lol

JohnCM: hello everyone

ZarthaxX: haha RoboStac :P

Smelty: xD

ZarthaxX: i will check that guy

ZarthaxX: JohnCM HAI

JohnCM: i'm back again to win

RoboStac: #37 at the moment

ZarthaxX: keep walking JohnCM

JohnCM: starting at Wood2 lol

MSmits: remember this guy?

MSmits: https://www.codingame.com/profile/bbeb5e76ecd668684edf4c4b0410c9be5601772

Smelty: wow

ZarthaxX: saw him RoboStac, at least he didnt edit the face

Smelty: lol he lok funeh

ZarthaxX: we need silver and gold

JohnCM: now it's up to Bronze right?

BlitzProg: I'm struggling to understand which AI approach is best

Default avatar.png NotSureWhyThisWorks: went from around 40 to 143 overnight rip

ZarthaxX: yes JohnCM

BlitzProg: how can you tell if beam search, minimax or genetics is going to make the difference?

Smelty: well i went from 100 to 500 overnight

MSmits: experience mostly BlitzProg

Default avatar.png NotSureWhyThisWorks: damn smelty

Smelty: f in the chat for m

Smelty: rn im at 488

MSmits: and even then people with experience are often wrong on what the *best* way is, they just dont try the obviously bad ways

Default avatar.png NotSureWhyThisWorks: oof

RoboStac: some of it's knowing what the strengths of each are and what the game involves (eg beam search is usually terrible when opponent moves have a big impact on you), part of it is just trying things and seeing if it works

Wontonimo: so true MSmits

MSmits: and RoboStac

RoboStac: and the other part is lurking in chat to see what people say and stealing it

Wontonimo: it's humbling at times when you think you know but you arn't

Marchete: ^

BlitzProg: lol

BlitzProg: you can only scroll so far in the chat

Smelty: xD

BlitzProg: well, I'll have a go with beam search first and see what happens

JohnCM: oh this is new: we have access to game's source code now

Smelty: xD

BlitzProg: It's been here for a while

BlitzProg: years in fact

Smelty: Blitz try doing if/else first xD

BlitzProg: i did a if (mine) complete;

BlitzProg: and I got into bronze

BlitzProg: i'm ready for the big AIs now

itzluku: lol i didnt realise nutrient

itzluku: thats why i lose if they sell before me

itzluku: xd

miszu: I think I am ready to best the mighty Totoboss

miszu: beat*

Wontonimo: best also works. sounds more fancy

miszu: yeah I realized

miszu: the battle to the wood 1 will be legendary

miszu: having a master in CS was very useful in wood 2

miszu: GG boyz

miszu: wood 1 here we go

itzluku: i hope thatw as a joke xd

Wontonimo: woot, i finally coded an ability for my bot to throw seeds 3 squares. lol

Wontonimo: got into the top 200 without being able to do that. let's see what changes with range of 3

miszu: I hope no disaster

Wontonimo: no, it's doing better for sure. allows to get out of your own shadow

Wontonimo: especially if you prefer "knights moves"

miszu: should you spend all your sunpoints whenever you can in a day or no?

Wontonimo: no

DetoBot: let's test against Illedan

DetoBot: hmm... clear KO for my bot

DetoBot: :stuck_out_tongue:

Wontonimo: miszu look at some replays of the top bots. you see lots of them save from round to round to do bigger projects like buying a 5th Big tree

Default avatar.png cleverusername82: im going to say it

Wontonimo: say it

Zenoscave: say it

miszu: if I understand the game, it's not worth to complete your tree until the last day

miszu: well at least in wood 1

itzluku: in bronze nutrition comes to play

itzluku: =)

miszu: oh right

miszu: rush size 3 and chop

itzluku: also shadow might be a factor to determine when to sell

DetoBot: a simple "NO-AI" strategy is not to harvest before you have enough

miszu: no shadow in wood 1 yet

itzluku: get to the chop er :^)

miszu: Rush B

itzluku: just lost 118 to 119

itzluku: XD

Rag: sad

miszu: opponent be like: I owned you man.

Wontonimo: well, it ain't false

Wontonimo: :)

miszu: owned is when you beat opponent by like 15 points

Zenoscave: how are you guys doing the shadow bitboards? int64's?

Wontonimo: i'm not.

miszu: shadow clone jutsu

Wontonimo: i will if i end up writing a simulator

klforthwind: i dont think you need int64s for shadow bitboards, but I have yet to fully implement it right now

Zenoscave: something like long[6][37][4]

klforthwind: so I could be very wrong ;p

miszu: do you compute multiple moves in advance?

miszu: or just the best next move

Zenoscave: ply 0 currently

Wontonimo: you need to have enough info to keep track of the height of the shadow

Zenoscave: Working on sim today

Zenoscave: that's the [4] part

miszu: most AI games is all about the sims

Wontonimo: Zenoscave what's the [6] part for?

Zenoscave: day rotation

itzluku: i wonder how hard it will be to get from score 50 to 60

Wontonimo: hmm... so you calculate ALL the days in advance? it's that too much that gets thrown out

itzluku: how much it increases by adding shadows to the equation

Rag: I wonder how many from bronze will go to silver

Zenoscave: why do people throw it out?

Zenoscave: Wontonimo is there a better way you've heard of

itzluku: @Rag alot, the bronze ai is really bad

Wontonimo: what i mean is, you'll have to load all that data from ram across the bus to the cpu. How expensive is it to create the days data when you need it?

itzluku: i wonder how many bots skip silver xd

Zenoscave: hmmmm. but forward day sim caching no?

Rag: Maybe bronze boss is hard =P

klforthwind: none of them will skip silver, since silver will come out, and gold will come out another day I thought

Zenoscave: cpu cache should beable to store 3.5kb

klforthwind: wait, how much memory are we allowed to use? does it say anywhere?

itzluku: there is no more tick after silver

itzluku: maybe after silver is released there will be no time barrier

Zenoscave: https://www.codingame.com/faq

Zenoscave: klforthwind

Wontonimo: how many copies of that data structure are there? are you using something like beam, minimax, or mcts where you save copies?

klforthwind: tyty

Zenoscave: Ah true. Forgot it isn't global or stationary

Zenoscave: good point wontonimo

itzluku: what the sim depth ? maybe just one sun rotation ?

Zenoscave: 600B is much easier to swallow

Wontonimo: i got hammered in UTTT about having too large of a data structure ... so it's fresh in my memory Zenoscave , that's all.

Zenoscave: Good to know!!

mybk: Oracle JDK 1.8.0 / OpenJDK 11.0.2 (depends on played game)

mybk: what does that mean ?

Zenoscave: some of the newer games have been upgraded to openJDK 11

Wontonimo: and the older ones will still use the old jdk so that the old bots still work

mybk: so right know (with this contest) openJDK 11

DetoBot: An error occurred (#407): "You reached the limit of plays for a period of time.".

DetoBot: :grin: Even this error exists

mybk: good practice / clean code

DetoBot: How long to wait now?

mybk: emm I don't know :p never happened to me, seen someone mention it before that's it

Zenoscave: DetoBot about 4-5 min

DetoBot: thanks

Zenoscave: if you wait 20 seconds between each match click the cooledown timer resets enough to avoid that forever

DetoBot: okay :grinning:

DetoBot: glad it's working again

Wontonimo: oh, i'm close to your bot Zenoscave!

itzluku: what place

Zenoscave: That's my bot from yesterday ;) was 7th 20 hours ago :laughing:

Wontonimo: 100-115

itzluku: damn

Zenoscave: doing a mass rework for sim organization now

Wontonimo: cool

itzluku: i alrdy have classes etc for that

Wontonimo: i look forward to seeing your sim bot crush Zenoscave

Zenoscave: let's hope

Zenoscave: might make the whole state one flat long array

Zenoscave: easy to pass and avoids heap allocation i *think*

Wontonimo: i had an if/else bot for SC2020 (the pacman game) and then wrote a MCTS sim. The sim did worse. It was very demotivating.

Wontonimo: but this competition is way more like UTTT than SC2020, and UTTT was all about highly optimized sim

Zenoscave: does a struct stay in stack in C#?

KelvinAndHubbles: welp, fix bugs, resubmitted, went down a hundred places, hmmm

Wontonimo: i don't have any recent experience with C#

Zenoscave: bah array's of struct means heap

Zenoscave: struct change your name or I'm gonna keep pinging you

Wontonimo: Zenoscave are you making your own heap mem allocation via array indexing?

Wontonimo: or do you plan on it?

Zenoscave: I don't understand

Zenoscave: array indexing like int parentIndex in the struct?

Wontonimo: so instead of using new/malloc/alloc for each time you need a new node,

JohnCM: you know this game reminds me of a tree based game i played, i think it's called photosynthesis

Zenoscave: JohnCM it's an adaptation

Zenoscave: Oh yeah I plan on that Wontonimo

JohnCM: i see.. yea i didn't like that game

Wontonimo: upon startup allocate an array that can hold 100,000 or so. keep a variable called next_available=0, and increment it to "allocate" another

Wontonimo: cool cool

Zenoscave: yup I plan it ;)

JohnCM: too complex and growing trees to destroy them isn't my kind of thing

fvla: just use c++ for that lol

Wontonimo: i've tried it a couple times but don't really know if it helped that much. just blindly did it without benchmarking.

fvla: looks like c# doesn't want you doing that

Wontonimo: please let me know how it goes

Zenoscave: will do.

Default avatar.png 7amasa: Anyone has a link to a code bundler for java pleae

Wontonimo: www.python.org

Wontonimo: lol

Zenoscave: funny

Zenoscave: Most of the bundlers are made by the users on the site. if you can't find one in the forum it probably isn't available 7amasa

Wontonimo: no , but seriously 7amasa , i ran into that problem before and i just wrote a python script to bundle

Zenoscave: At least for code used by this sight

Default avatar.png 7amasa: Alirght thank you so much guys, ill write one then :( xD

Wontonimo: it really shouldn't be too hard. how's your python/perl/awk/sed skills?

mybk: if you find something (code bundler), tag me please @7amasa

Wontonimo: really it isn't much more than concat all the files. right? am i missing something? perhaps 2 passes, 1 pass to get all the imports and output them, then a second pass for everything else

mybk: it's about static class

mybk: if I find something professional it's better

mybk: but you are right I can right it

mybk: but I am lazy person

Default avatar.png 7amasa: My python is okay, but as @mybk said its a hustle kinda

mybk: the other day I found this: https://gist.github.com/Ohohcakester/58a8b59f397505ef6bea but I didn't try it though

Enknable: so if you grow a tree, it wont cast a shadow immediately..

mybk: doesn't matter because you get sun point at the first of the day, and you grow your tree in the middle of the day

Wontonimo: http://chat.codingame.com/pastebin/ae4c81d4-4f9e-4a59-963c-71e4f9e5ef84

Wontonimo: try that ^^ 7amasa and mybk

Wontonimo: it will read in files "first.java second.java ..." and output it into a file called "combined.java"

Wontonimo: with all the import statements at the top

mybk: emm interesting

mybk: thank you Wontonimo, I will try it right away

Wontonimo: it may not run first go ... i just copied it from one of my scripts and edited it down quickly.

itzluku: would be cool if the UI would show the day ...

Wontonimo: it does, turn on debug mode

Wontonimo: there is a gear symbol, which opens up options like debug

Wontonimo: it's beside the share link and window maximize

mybk: thank you Wontonimo, it works perfectly

Wontonimo: :D

mybk: :innocent:

Default avatar.png 7amasa: Wontonimo Thank you :D :D

Default avatar.png Kolo9: Seems like anything I try to do with shadows makes my bot worse. Best to keep it ignorant of shadows

Default avatar.png Kolo9: haha I'm so garbage at strategy

Wontonimo: my bot is completely blind to shadows

Default avatar.png Kolo9: people in here generally already have simulators running?

Wontonimo: i think in the top 200 it is likely but not for sure

Default avatar.png Kolo9: oh hey I've actually been testing my alst few runs against you haha

Smelty: xD

Smelty: kolo try testing vs me

Default avatar.png Kolo9: at 182 right now with very simple heuristics from last night

Default avatar.png Kolo9: and I just don't know what to do

Chainman: In the wood levels are you playing against other's code?

Smelty: even though your bot is way better than me

Default avatar.png Kolo9: it's like I watch the replays of top players destroying me

Default avatar.png Kolo9: and I have no idea where the points came from

Chainman: Cause I just keep doing simple if else and get rank 1 lol?

Smelty: chainman yes, although teh majority of players are in bronze

Chainman: Yeah I just started this hour.

DetoBot: :laughing: just KO Illedan in 1 or 6 matches

Default avatar.png Kolo9: damn it Smelty I just started a game against your bot

Smelty: xD

Smelty: 100% you win

Smelty: i used if/else, so

Default avatar.png Kolo9: with your messages it feels like a loss

Smelty: wh

Default avatar.png Kolo9: rickroll

Wontonimo: oh, i gotta add messages!!

Default avatar.png Kolo9: also if/else? yeah that's my bot too

Default avatar.png Kolo9: like 4 if statements.

Smelty: xDDDDDD

Smelty: rickroll go brrrrr

Smelty: ive probably rickrolled myself in testing like 100 times by now

Chainman: in bronze league now, so it will be hard I'm guessing from here.

Smelty: lol

Smelty: lmao my bot tried to grow in -1

Chainman: how do you choose to battle a specific person?

Default avatar.png Kolo9: interested to hear what sorts of things people are seeing success with, if anyone's sharing. I see MCTS and GA thrown around all the time on here but familiar enough with them to understand if this game is a good candidate

Smelty: ..y'know, i spent 50 lines of code writing a rickroll

Default avatar.png Kolo9: @Chainman at bronze you have all the rules! it's currently the highest open league so all of the top players are in it

fvla: I'm seeing a lot of success with if/else /s

Smelty: ikr

Default avatar.png Kolo9: ditto dudes

Chainman: haha nice

Smelty: lol

Default avatar.png NotSureWhyThisWorks: you can get top 100 without simulation

Smelty: bruh why my tree growing -s

Smelty: negatives

Smelty: sad face

Default avatar.png Kolo9: oh also Chainman in the IDE, at the bottom you can "DELETE" the default AI and search for whoever you want to play against

Smelty: yep

Default avatar.png Kolo9: can even delete yourself too and watch others' bots play

Default avatar.png Kolo9: nice NotSureWhyThisWorks

Default avatar.png StyllyMyle: so

Smelty: yes

Smelty: also, you can test vs ur arena bot

Smelty: i do that for testing for improvements

Default avatar.png StyllyMyle: nvm, im trying to rank up

Default avatar.png StyllyMyle: nowhere happy with top 1000 :/

Smelty: lol im in 5-- somehow

Smelty: *500

Smelty: used to be 100

Default avatar.png StyllyMyle: OOOH nice

icecream17: i havent changed my code today

Smelty: bruv i keep losing=

Smelty: hi icecream

Smelty: hows the code lol

icecream17: well i kinda tried to implement the whole game

icecream17: and i do have some success!

Default avatar.png StyllyMyle: How many times does our player turn before sun direction changes?

icecream17: possibleMoves always includes 'WAIT'

icecream17: and the 'GROW' also matches

icecream17: although it thinks i can seed across half the board whenever i want

Smelty: wow.

Smelty: xD

Default avatar.png NotSureWhyThisWorks: will possible moves remain in the higher leagues?

icecream17: floodfill is famously hard for me to implement

Smelty: alright submitted new algo, hoping for best

Smelty: tbh im often too lazy to implement simulation

Smelty: i prefer to stay in if/else gang if possible

Smelty: NotSureWhyThisWorks Hopefully, currently im using it to evaluate if my planting positions are ok

icecream17: although the first time it worked was on platinum rift which is ridiculous

Default avatar.png NotSureWhyThisWorks: I'm worried I will have to switch from if/else to simulation to stay in top 100

Smelty: o.O

Smelty: we'll see

Smelty: i just resubmitted

Smelty: currently 700 altho still battlin

icecream17: since that grid is also hexagonal and much more complicated too

Chainman: nice

Smelty: true.

Smelty: 22%, 591

Smelty: hoping for best

Smelty: bruh i just got kicked down

Wontonimo: hey Smelty, what's your search? minimax, mcts, something else?

Default avatar.png NotSureWhyThisWorks: rip

Chainman: My rank increase while I'm not doing anything lol

DetoBot: :joy: aiming high makes you earn well

Default avatar.png StyllyMyle: Theres always someone better

Smelty: Wontonimo its if/else :))

icecream17: smelty doesnt search

Default avatar.png NotSureWhyThisWorks: test the new algo against current bot in arena first lol

Wontonimo: oh hahaha

DetoBot: My bot proved that

Smelty: lol

Wontonimo: i thought you were submitting a simulation

Smelty: its just a complicated algorithm with if/else and move eval

Smelty: like i evaluate which planting is best and which grow is best

Smelty: but in the end its just if/else

icecream17: oh yeah, 346 > detobot (399)

Default avatar.png StyllyMyle: bunch of if else is better than randomized stuff

DetoBot: yeah eval is the root

Wontonimo: well, make it complicated enough and it will become a simulation

Smelty: ixD

Smelty: haha just broke 500 barrier

DetoBot: icecream17 getting closer to you

Default avatar.png NotSureWhyThisWorks: nice

Smelty: but wow wontonimo is 125-

DetoBot: but this isn't that I am working upon

KCrown: if you submitted a new bot does it take while for you to climb the leaderboard?

Default avatar.png StyllyMyle: Seed cant cast shadow r8?

Smelty: yep

Smelty: to both of your questions

Default avatar.png StyllyMyle: lOool

Default avatar.png StyllyMyle: and trees have size that define how much shadow they cast

Default avatar.png StyllyMyle: im thinking of algo to plant trees to block my opponent

icecream17: is there an easy way to determine distance on a hexagonal grid?

DetoBot: near you icecream17

Default avatar.png StyllyMyle: but once again i think before my seed grow, the sun direction might change :(

icecream17: :eyes:

Default avatar.png actualCoderTrevor: icecream17 look at how the source does it: https://github.com/CodinGame/SpringChallenge2021/blob/2785b58e5eb136fdc5349825c33454fa7838270b/src/main/java/com/codingame/game/CubeCoord.java

DetoBot: once it was 311

Default avatar.png actualCoderTrevor: Pretty clever I think

Smelty: yay thanks for the follow wontonimo

fvla: source method is weak sauce

DetoBot: Hopefully let's code a new logical bot

fvla: you need to use template metaprogramming to precache every possible result

Smelty: there's this map with a wall in the center-

Wontonimo: don't let it go to your head. this way you show up on the filter "Codingamers you follow"

Wontonimo: lol

Smelty: ah-

Smelty: sad noise

fvla: no but seriously, a pre-calculated table might be pretty fast

Smelty: beware that my bot will rickroll you in a fight

Wontonimo: i'm about to unleash random monty python quotes with my bot

Default avatar.png StyllyMyle: Lets go

Smelty: oh god

Smelty: monty python go brrrr

Smelty: i got an idea. monty python quotes for first 12 days, then rickroll

Default avatar.png StyllyMyle: 146-67, your bot really rickrolled me smelt :)

Default avatar.png actualCoderTrevor: Optimizing what your bot says > Optimizing what your bot does

Smelty: :))

Smelty: xDD

Smelty: wise words, actualCoderTrever

Default avatar.png actualCoderTrevor: :)

Smelty: mostly because idk how to improve my bot does

Smelty: xD


Default avatar.png actualCoderTrevor: lol same

Default avatar.png StyllyMyle: Smellt

Default avatar.png StyllyMyle: brooo

Default avatar.png StyllyMyle: you have these lines in wait

Default avatar.png StyllyMyle: fk its so hilarious

Default avatar.png StyllyMyle: Never gonna tell a lie and hurt you :)

icecream17: :)

Smelty: LMAO

DetoBot: (╯°□°)╯︵ ┻━┻

Default avatar.png StyllyMyle: I can play against your bot :D

Smelty: styllymyle i do the intro then loop the chorus

Smelty: sure

Wontonimo: why DetoBot why?

**DetoBot named his bot ICECREAM17

Smelty: just do it in idea and stuff

Default avatar.png StyllyMyle: I gotta go cya all

Smelty: "Nobody expects the spanish inquistion"

Smelty: cya

icecream17: i should've screenshot that "who.. who's ..." comment from awhile ago

Wontonimo: by StyllyMyle

Smelty: lol

Smelty: imma make a randomizer for hte first 25 rounds

Smelty: and spew monty python

Default avatar.png StyllyMyle: m

Wontonimo: i wanted just holy grail quotes, but there isn't that many

Smelty: lol

Smelty: i really am dedicating 100 liens of code to what my bot syas.

DetoBot: will the Silver league be having rules like, "A COMPLETE TREE will make CELL richness 0" :joy:

icecream17: is there a way to map index into (x, y, z)?

Wontonimo: oh crap, i go so carried away with adding the quotes I forgot to do version control and track my ranking :/

Wontonimo: what you mean icecream17 ?

Xenoid: icecream17, there are only 37 indices, so yes

Smelty: Black Knight: “Tis but a scratch.” King Arthur: “A scratch? Your arm’s off!”


icecream17: the game code uses (x, y, z) for distance internally

Smelty: yes

Smelty: sorry im dying to hte quotes

Numby: Is Bronze League the full game rules?

Wontonimo: yeah, that's what i've been told Numby

Numby: Cool, thanks

Smelty: yep

Default avatar.png actualCoderTrevor: icecream17 IDK how the game maps them. I thought it was clever but I never implemented it like that myself. Like Xenoid said it's only 37 spaces so you can hardcode them pretty easily.

Xenoid: Writing a 37-case switch statement is faster than trying to do something clever. For better or for worse

Wontonimo: i just use the neighbour list that is provided at the beginning of initialization

fvla: 37-case switch statement??? That's why I brought up template metaprogramming

Smelty: hmm

Wontonimo: traverse it

Smelty: i just use available moves

Wontonimo: ^^ that works!

icecream17: i calculate the literal cost it would take to plant a seed and grow a tree

martinpapa69: you can implement a simulator by ignoring the fact, that the game takes place in a hexagonal map. all you need is the cells neighbours

icecream17: and add the bonus

Wontonimo: that's what i do also icecream17

fvla: neigh0-5 is decent enough for a theoretical graph approach indeed

icecream17: wonton... !

icecream17: i should've used a pun for my username

fvla: iscream17?

icecream17: *gasp*

icecream17: that's amazing

icecream17: especially since i 1st parsed it as "is cream"

hexa8: ??

itzluku: @Wontonimo do u consider shadows alrdy?

Wontonimo: nope.

Smelty: ok finished monty python quotes

Smelty: ted

Smelty: *submitted

itzluku: i think our 1v1s are 50 50 shadow luck xd

fvla: what is a shade? a miserable pile of secrets.

Wontonimo: okay, so in a couple days Silver will open up then gold then legendary. You can bet I'll be writing a full simulation to get into those that takes into account shadows itzluku

icecream17: idea: spend sun to remove shadows

Smelty: ooof

Smelty: icecream hhmmmmm

Smelty: legend league stuf right there

Smelty: ok so for around 30 turns i spew monty python

Smelty: then its rickroll

Wontonimo: excellent!

fvla: great!

Smelty: try fighting me

Smelty: some of the quotes are too long to fit though... :(

fvla: now keep spamming quotes so that i can eventually catch up

Smelty: lolll

Smelty: i think im done there

Smelty: "Black Knight: “Tis but a scratch.” King Arthur: “A scratch? Your arm’s off!”"

icecream17: spooky shadows is a silly reason to not help...

itzluku: smelty i cant find your bot

itzluku: :o

Smelty: :00

Wontonimo: it's on! https://www.codingame.com/replay/548694095

Smelty: let me fight you

Smelty: and send u recording

Smelty: ..oh? rock paper scissors?

Smelty: https://www.codingame.com/replay/548694268

itzluku: damn close :P

Smelty: best quote competition confirmed Wontomino?

Wontonimo: i approve your bot! thanks for the inspiration Smelty

Smelty: no problem xD

Smelty: ...my bot is very lacking in terms of doing stuff thoguh

Smelty: he just likes talking

itzluku: guys if u want to win 100% .. just play against yourself LOL

Smelty: xD

Smelty: but- i tied

Smelty: ;-;

icecream17: i have a very very interesting idea

itzluku: thats possible? :D

fvla: then you win twice!

Smelty: icecream17 remember this? the legend tie https://www.codingame.com/share-replay/548425098

Smelty: itzluku this is for you

icecream17: yeah yeah iremember

Smelty: same points, same trees

Smelty: that was before the bot learned monty python thoug

JohnCM: wonder if i can monte carlo this one

KCrown: there's so many branches ...

JohnCM: maybe with a heuristic that is strictly good

KCrown: this game was easy yesterday but the more I think of it the harder it got :P

JohnCM: it's tricky to keep growing size 3 trees, because it gets more and more expensive

Smelty: john just kil them

Smelty: ez pz

JohnCM: and you can block yourself

icecream17: i have an idea

Smelty: solves all your problems KILL THEM

icecream17: ignore the opponent

JohnCM: kill the trees?

Smelty: yes

Smelty: complete em

icecream17: so "first player" search

Smelty: that's what i do

JohnCM: but if you complete them, you miss out on your 3 sun spots

Smelty: not immediatly but whatever

itzluku: new features in silver?

JohnCM: it's a long run horizon planning game

icecream17: try to find the combination of moves that results in the best score, ignoring your oppoent!

KCrown: it has elements of go in it ... in that the placement of the tress is super important if you want t win :P

Smelty: ...and then the opponent blocks you lol

JohnCM: i played this game before in real life

Smelty: ooh...strategy

icecream17: i hardcoded the opening: don't seed on turn 1 or 3

icecream17: *0 or 2

JohnCM: the spreading of seeds is very important

JohnCM: maximize sun coverage across the sun positions

JohnCM: though that time when i played, it was with 4 people, the board was super crowded

Smelty: I'm going to be honest with you, I rickrolled myself so bad i've been humming the song the whole afternoon

Smelty: :((

JohnCM: we were just like blocking each other lol

icecream17: it's very awesome

JohnCM: growing trees just to block others

Smelty: lol

Smelty: thats the point sometimes

Default avatar.png actualCoderTrevor: Is there any feedback to let you know if you and your opponent tried to seed the same space?

JohnCM: in the end the sun go one cycle i only got 5-6 sun points

KCrown: like i said it's like go only harder ...

Smelty: well, you tried to plant and there isnt a seed there

icecream17: sun is refunded

Smelty: thats enough

Smelty: that tooo ^^

Default avatar.png actualCoderTrevor: icecream17 That's what I'm trying to keep track of

icecream17: oh wow!

Wontonimo: so here is a bit of heuristic fun : if you plant on the outside you are guaranteed 2 days of sun out of 6

icecream17: i thought of just throwing the seed and colliding forever as an infinite loop

Smelty: actualCoderTrever just check hte next turn if there is a seed there

Default avatar.png actualCoderTrevor: I want to know if my bot is correctly predicting how much energy it should have at the end of the match

Smelty: if not, then it was blocked

icecream17: but the tree is disabled after a throw

Smelty: yep

icecream17: imagine the contest with leagues like this

Default avatar.png actualCoderTrevor: Smelty hmmm yeah that could work, if it's one of mine

Default avatar.png actualCoderTrevor: thanks :)

icecream17: but the contest is rock paper scissors

icecream17: only the very lucky get to move on

Smelty: actual :))

DetoBot: yup

Smelty: took wonton's advice and decided to uproot center plantsfirst

JohnCM: imagine if we do 7 wonders in codingame

KCrown: never thought of the edge as important thanks wontonimo

JohnCM: the strat is in the centre grow big trees, at the side you can maintain small trees

JohnCM: but the centre trees give the most nutrients

JohnCM: it's a tradeoff

Smelty: lol

Smelty: i decided to uproot center trees more than outside trees

DetoBot: :confused: lost a 100 ranks in minutes of no-work

Smelty: RIP

DetoBot: well doing Smelty

Smelty: lemme fight you

Smelty: we are similar ranks

Smelty: im 458

DetoBot: let's have a match 3 2 1

Smelty: https://www.codingame.com/share-replay/548699396

Smelty: hah

Smelty: https://www.codingame.com/share-replay/548699497

Smelty: i think i might have rickrolled your bot to death

DetoBot: Noice

Smelty: https://www.codingame.com/share-replay/548699833

Smelty: 3/3 matches i win??? wow

DetoBot: https://www.codingame.com/share-replay/548699622

Smelty: .O

Smelty: i lose this one?

Smelty: *i presume

DetoBot: Well you are beating my bot

DetoBot: for most of the times

Smelty: xD

DetoBot: just a few +- scores

Smelty: good job beating me once

Smelty: xD

DetoBot: equally strong

Smelty: yep

Smelty: draw!

Smelty: are you using if/else?

Smelty: or simulate

Wontonimo: hey Smelty , i was looking at https://www.codingame.com/replay/548699622 and see on move 16 your throw a seed into your future shadow

Smelty: yes, i dont calculate shadows

DetoBot: trying to simulate a few turns only

DetoBot: days seems like nightmare

Wontonimo: i don't either, but when throwing a seed you can prefer knightmoves

Smelty: what dat

Smelty: *cries in noob*

DetoBot: calculating shadows?

DetoBot: oh there are shadows too

DetoBot: I am dumb :joy:

Smelty: whats a knightmove

Wontonimo: knight moves means like a knight in chess, 2 straight then 1 to the side

Smelty: ahhh

DetoBot: let's improve my bot

Wontonimo: or 1 straight, then 1 to the side

Smelty: hexagons confuse me

hexa8: me?

DetoBot: lol

Smelty: um, no

Smelty: you are a good hexaboi

hexa8: okay

Smelty: *pat pat*

Default avatar.png actualCoderTrevor: https://www.youtube.com/watch?v=thOifuHs6eY

Smelty: so how do i even calculate knight moves

Smelty: currently my algo is try to throw towards nutrient rich

Wontonimo: using the neighbour mapping that is provided at init, you can look up your neighbours

Smelty: ye?

Smelty: so save them in arrays

Wontonimo: oh yeah

Smelty: hm?

Wontonimo: http://chat.codingame.com/pastebin/5d556a8c-8fa8-415a-82b4-1f22b77fe187

Smelty: o basicall-