Chat:World/2021-05-07
_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
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")
- pragma GCC option("arch=native","tune=native")
- 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.
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?
Mannava_Goblin7: https://www.codingame.com/clashofcode/clash/1737498bfc7576e0e5bd26618f2217713ed65a1
Marchete: this time wood leagues were easy, yes
Marchete: #clash
Zenoscave: Mannava_Goblin7 #clash
Marchete: top10 Zenoscave
Marchete: noice
Zenoscave: no we're saying go promote on that channel. not here
Zenoscave: thx marchete
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
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.
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?
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
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.
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
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.
rmuskovets: looks like bronze won't be hard too... i just wrote a rly simple heuristic that chooses actions from the list
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
rmuskovets: this game looks so much easier than previous challenges
Zenoscave: easier to start probably going to be a tough gold/legend
rmuskovets: 'simple to learn, hard to master'
rmuskovets: for me its a huge plus we get the action list every turn
rmuskovets: no need to calculate it myself
Zenoscave: 'back in my day...'
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
rmuskovets: well... im prob gonna just tune my heuristic until it
eulerscheZahl: you won't get too far that way
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
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
phord: Shut up! I broke 200 and I'm proud of it!
Zenoscave: Yeah. I'm beating euler even
eulerscheZahl: everyone is beating me
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
rmuskovets: eulerscheZahl: looks like even i do
Zenoscave: for now.
eulerscheZahl: you didn't beat me at NS Marchete, you beat NS itself
LordSkaven: eulerscheZahl you should go to the police if everyone is beating you, sounds painful and like assault
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. :)
rmuskovets: or you can battle the people in top 10
rmuskovets: you'll know then for sure
actualCoderTrevor: I already know that outcome :P
actualCoderTrevor: Damn I lost to me
Zenoscave: I broke something
Notter: Hey guys, apparently the default AI can beat itself.
icecream17: the game seems symettrical, but sunlight only goes in by one direction, so it's not
actualCoderTrevor: Oh the board is symmetrical but the shadows aren't so there is some luck involved
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
LordSkaven: struct is op pls nerf
Zenoscave: struct is just quick to the game. Other's will beat him soon
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
rmuskovets: my bot got 107 points in one run, thats gud
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.
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:
rmuskovets: lmao i removed one '+1' from my heuristic and now im top 300
rmuskovets: i was top 600 before
khalillamharchi20: hello
resty-daze: wow, just don't cut trees until end game entering the top 100
NotSureWhyThisWorks: top 100 gang
rmuskovets: top 300 gang is bette
rmuskovets: and it has 3 times more people
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
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
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
eulerscheZahl: in rare cases there are balancing updates for silver. but I don't think it will happen here
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 :)
rmuskovets: imagine if they delete the possible actions list
eulerscheZahl: just stronger players
NotSureWhyThisWorks: oh true lol
jrke: ask MS about balancing
NotSureWhyThisWorks: legend league full of if/else
ddreams: wouldn't make a difference if they deleted the possible action list at higher levels
rmuskovets: well i use it to simplify my code
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
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
rmuskovets: i went to bronze in under 3 hours this time
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
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
rmuskovets: rank 333... nice time for a new submit
rmuskovets: looks like this heuristic change is for good
rmuskovets: why does it move me to rank 3k+ when i submit>
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
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: 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
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
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
NotSureWhyThisWorks: yeah thats true
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
NotSureWhyThisWorks: just make the tuples (size, richness, index) and then sort. Not the best method but simple
ddreams: simple is good
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
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?
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
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 =)
Vischtor: Apparently i had hardware acceleration disabled, enabled it and things seem to work fine!
Marchete: :thumbsup:
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:
BoBot: hey, if I try to join Coding Escape, I get a message You are currently #492, want to get early access?
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
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 :(
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
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?
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 ;)
RezaSi: when will bronze boss be released?
Nerchio: monday
Tiramon: monday, wednesday, friday are the release dates
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
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
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
NotSureWhyThisWorks: struct what kind of alg did you use? If you don't mind me asking lol
Illedan: He said Bogosort
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?
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
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
NotSureWhyThisWorks: just algorithms that don't involve simulation or NN or anything
NotSureWhyThisWorks: just heuristics
AntiSquid: does checking shadows count as sim?
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
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 @_@
NotSureWhyThisWorks: I'm not submitting my better bots because its too early for this level of competition
AntiSquid: oh my
NotSureWhyThisWorks: I only have a few tricks left up my sleeve to implement
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
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
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
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
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
NotSureWhyThisWorks: you can verse yourself?
ddreams: if you're good at poetry
jrke: so nutrient will become 0 after 20 completion or anything else?
struct: yes
Marchete: note to self, use nutrient as signed
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
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
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?
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 :-)
StyllyMyle: Whats the use of nutrient
Marchete: ofc
KalamariKing: StyllyMyle its the base point value for completing a tree
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
StyllyMyle: SO its basically richness
KalamariKing: Yes and no
StyllyMyle: increase harvested point
KalamariKing: Richness is per cell
KalamariKing: Nutrient is per game board
KalamariKing: Richness can't change, nutrient does
StyllyMyle: The tree planted on cell have varying points?
Marchete: richness change
KalamariKing: Depending on the cell's richness yeah
StyllyMyle: which is variable of nutrient?
ddreams: so if your opponent completes before you, they receive more from the nutrient points
KalamariKing: Each CELL has richness. Each GAME has nutrient
KalamariKing: The score for completing a tree is nutrient + richness score
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 ;)
StyllyMyle: I know both c++ and python
KalamariKing: Epic
Marchete: but with cellID it seems faster
Marchete: useful for what?
StyllyMyle: but currently im doing python as i like it better
struct: eval
Marchete: ahh
Marchete: true
Marchete: yes
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
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
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 ?
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
StyllyMyle: I somehow thing slowness of python will be neglected
ddreams: I predict the language distribution will be like the last contest
MSmits: ^
KalamariKing: StyllyMyle right, but if it is TOO slow, it will time out, limiting what you can do to simpler algos
StyllyMyle: Python is born slow
ashelkov: lets go to legend with javascript
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
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
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
struct: So from i read now it reaches end then increased with
struct: then go again
struct: and so on
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
StyllyMyle: I am using c++ template, and in the compute_next_action the first time func is called, all values and data is invalid
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
adamek123123123: add me on discord
adamek123123123: WolfGamer#0027
AntiSquid: no
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?
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
NotSureWhyThisWorks: can you plant on richness=0 squares?
ddreams: nope
NotSureWhyThisWorks: didn't know that
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
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
StyllyMyle: i understand the meaning
ddreams: or you output more than one line
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
casmith789: save the actions to a string then output it at the end
ddreams: what?
Illedan: thx dbdr. Nothing good yet
StyllyMyle: I am so wasting my time for this template
ddreams: I used the starter code and had no such problems
StyllyMyle: thanks for tellin theres bug
jacek: oO
ddreams: yes
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
AntiSquid: there's a d starter :o
Tiramon: for some languages ...
StyllyMyle: Starter code aint there for higher leagues?
wlesavo: oh, they added cpp starter, yeasterday there were only 4 starters i believe
StyllyMyle: i though they are giving templates
StyllyMyle: so i can code without doing those boilerplate stuff
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
GeRiY: i have problem with test video
GeRiY: its stop playing, but the code is executed by the way
ddreams: gray?
GeRiY: someone knows hot to repair it?
GeRiY: if you said to me ddreams its not gray
ddreams: tried to reload the page?
jacek: do you get gray replay
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
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
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
MrFruit: http://chat.codingame.com/pastebin/027800c2-d8cf-4e2c-8e71-eeb6b8deff87
Marchete: how many actions, Smits?
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
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 ;)
eulerscheZahl: oops, I implemented that wrong
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?
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 ?
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
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
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
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?
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
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?
actualCoderTrevor: You can cast a shadow on them
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.
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
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
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 ;)
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
StyllyMyle: Hey i cant find make_tuple in compiler
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: ;-;
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
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.
StyllyMyle: made pr to add these two annoying commands :(
jacek: pr?
AntiSquid: public relations
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
elijah.toppo: Any ideas of finding all spooky cells?
Maliamnon: elijah.toppo - i'm using linked lists of neighbor cells
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
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
StyllyMyle: I totally love this contest
cegprakash: without trees what's there to seed, grow or complete? RoboStac
KalamariKing: ┬─┬ノ(ಠ_ಠノ) no need for that
KalamariKing: cegprakash trees as in search trees
StyllyMyle: How do you basically get the trees and action?
KalamariKing: wdym
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
KalamariKing: Or synonymize
AllYourWhat: G R A P H
StyllyMyle: Is that a language?
jacek: tree is graph eh
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?
StyllyMyle: biz1 are you using cpp?
StyllyMyle: or theres some problem with your data parsing/ cout
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?
cegprakash: StyllyMyle search for graph datastructure in wikipedia
v1993: phrod what does "Console output" tab say?
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.
JP7: No, u?
struct: saved
StyllyMyle: a sapling, a seed is also counted as tree r8?
ddreams: yep
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
StyllyMyle: Hey so i have a question
ddreams: click Delete under the default AI icon
StyllyMyle: I somehow made program which im confident will pass bronze league
Over9000: you can also compete against your own old code
v1993: Ohh, thanks for the tip! Didn't knew this.
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
StyllyMyle: what should i opt for?
ddreams: I don't understand the question
StyllyMyle: I totally beat this ai boss by double of its point
StyllyMyle: i think time to go?
ddreams: the default ai is not the bronze league boss
StyllyMyle: Im testing in arena, screw it :)
ddreams: you probably have to beat one of the people who are the top players now
StyllyMyle: Dont we need to just outrank bot?
v1993: Nope, one of stronger bots will be used as a boss
StyllyMyle: wait does it take time to test in arena?
v1993: So yeah, but boss will be different from current default AI
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
StyllyMyle: Its taking kinda time to jump up the ranks
ddreams: so?
StyllyMyle: cant i see it quickly? :D
v1993: Servers are busy running all those bots, be patient :)
elderlybeginner: when silver opens?
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.
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?
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?
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
elijah.toppo: What happens when you don't make the cut-off? are you disqualified or can we keep trying
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
Zenoscave: the sooner you enter a league the easier it is
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
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
elijah.toppo: Hmm.. I was harvesting all in the end.
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
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
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?
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
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
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
ZarthaxX: you can submit that :D
AllYourTrees: oh yeah good idea
ZarthaxX: YEAH JBM TELL HIM!
ZarthaxX: lol it worked
AllYourTrees: very convincing JBM
JBM: :glasses: My Job Here Is Done
MSmits: You can submit a wait bot and then test vs the wait bot in your IDE
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
Donald_D._Doge: and stop pinging me on both accounts
Omar_ALearningProgrammer: :grimacing:
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
DomiKo: you can do max_element with lambda
AntiSquid: sort()[0]
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
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
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
FunkyNoob: few people shares the code after a clash, should there be some revard system implemented?
AntiSquid: for not playing clash during contest definitely
FunkyNoob: what i was there 504
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
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
elijah.toppo: finally, I'm getting in the top 500s..
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
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
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
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
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
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?
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
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
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
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
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.
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
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
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:
7amasa: Wontonimo Thank you :D :D
Kolo9: Seems like anything I try to do with shadows makes my bot worse. Best to keep it ignorant of shadows
Kolo9: haha I'm so garbage at strategy
Wontonimo: my bot is completely blind to shadows
Kolo9: people in here generally already have simulators running?
Wontonimo: i think in the top 200 it is likely but not for sure
Kolo9: oh hey I've actually been testing my alst few runs against you haha
Smelty: xD
Smelty: kolo try testing vs me
Kolo9: at 182 right now with very simple heuristics from last night
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
Kolo9: it's like I watch the replays of top players destroying me
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
Kolo9: damn it Smelty I just started a game against your bot
Smelty: xD
Smelty: 100% you win
Smelty: i used if/else, so
Kolo9: with your messages it feels like a loss
Smelty: wh
Wontonimo: oh, i gotta add messages!!
Kolo9: also if/else? yeah that's my bot too
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?
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
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
Chainman: haha nice
Smelty: lol
NotSureWhyThisWorks: you can get top 100 without simulation
Smelty: bruh why my tree growing -s
Smelty: negatives
Smelty: sad face
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
Kolo9: can even delete yourself too and watch others' bots play
Kolo9: nice NotSureWhyThisWorks
Smelty: yes
Smelty: also, you can test vs ur arena bot
Smelty: i do that for testing for improvements
StyllyMyle: nvm, im trying to rank up
StyllyMyle: nowhere happy with top 1000 :/
Smelty: lol im in 5-- somehow
Smelty: *500
Smelty: used to be 100
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!
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
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
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?
Chainman: My rank increase while I'm not doing anything lol
DetoBot: :joy: aiming high makes you earn well
StyllyMyle: Theres always someone better
Smelty: Wontonimo its if/else :))
icecream17: smelty doesnt search
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)
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
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?
StyllyMyle: Seed cant cast shadow r8?
Smelty: yep
Smelty: to both of your questions
StyllyMyle: and trees have size that define how much shadow they cast
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
StyllyMyle: but once again i think before my seed grow, the sun direction might change :(
icecream17: :eyes:
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
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
Smelty: oh god
Smelty: monty python go brrrr
Smelty: i got an idea. monty python quotes for first 12 days, then rickroll
StyllyMyle: 146-67, your bot really rickrolled me smelt :)
actualCoderTrevor: Optimizing what your bot says > Optimizing what your bot does
Smelty: :))
Smelty: xDD
Smelty: wise words, actualCoderTrever
Smelty: mostly because idk how to improve my bot does
Smelty: xD
StyllyMyle: you have these lines in wait
StyllyMyle: fk its so hilarious
StyllyMyle: Never gonna tell a lie and hurt you :)
icecream17: :)
Smelty: LMAO
DetoBot: (╯°□°)╯︵ ┻━┻
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
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
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
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
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 ^^
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
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
actualCoderTrevor: Smelty hmmm yeah that could work, if it's one of mine
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*
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-