Chat:World/2021-03-12
MSmits: it's in permanent zugzwang
MSmits: the only feature you could evaluate is whomevers turn it is basically
MSmits: even the score is useless, because the score has no bearing on what the best move is
MSmits: you can supposedly count chains and get a likelyhood that you will end up ahead, but it's basically a halfassed nimstring analysis
EmbeddedIs77: https://www.codingame.com/clashofcode/clash/1634293c8c92adc0b0de4e5c3845ea517cc6045
struct: MSmits do you think NN would work on STC?
ZarthaxX: shouldnt you ask recurs?
AntiSquid: why would it not struct ?
struct: I think it should
AntiSquid: i am assuming #1 on stc is NN
AntiSquid: #clash EmbeddedIs77
MSmits: it might be a bit complicated. the interaction between player and opponent is weird in stc
MSmits: same as with hypersonic. If you use a NN there, you lose the powerful beam search that ignores opponent
MSmits: using a NN in boardgames is just different
MSmits: might be that it's useful to use a NN partially, in a bot. Do some parts with pure math or brute force and do other parts with NN
Kyuujin: hello to night coders
Nick_Svaki: the problem description is hard to understand.
ZarthaxX: which one Nick_Svaki?
Nick_Svaki: I don't know how to seek the problem that I can't solve.
ZarthaxX: what problem is it
Surya9971: http://chat.codingame.com/pastebin/f5e76260-a70e-4e64-afca-7b65f92f7356
257832: Yeah ! You copied a statement in the chat ! :clap:
BlaiseEbuth: Hi test000000001
Nick_Svaki: hello world
YurkovAS: can anyone help me find a referee for the penguins?
jacek: https://www.codingame.com/contribute/view/53562a316b11e28d18dc14eab7f5ae0e0185
Astrobytes: damn, beat me to it
jacek: astroslow
Astrobytes: fastcek
YurkovAS: jacek thanks
Paskalya: i dont know anything
Astrobytes: Well don't tell everyone, they might want to know your secret.
jacek: oO
AntiSquid: (O)___(O)
MrPizzadur: zzzzzzzzzzzzzzzzzzzzz
BlaiseEbuth: :clap:
MrPizzadur: A table!
Imsure1200q: there should be a coc catergory
Imsure1200q: for optimize
DaNinja: for speed, memory use, executable size, or LOC?
darkhorse64: loc=golf
DaNinja: yep
Astrobytes: given who's asking, I'd say numbers of rays cast vs number of neurons vs how many successful testcases in Space Maze...
Astrobytes: Solved it yet Imsure1200q?
darkhorse64: #rollouts
jacek: :?
Astrobytes: rollout golf? I'm good at that. I can minimise rollouts really easily
jacek: what about trollouts
DaNinja: Space Maze was tough, had to hardcode one validator to ignore a couple of platforms because it timed out
Astrobytes: jacek :rofl:
Astrobytes: DaNinja: Good job on solving it though. I've still to get around to it. Our friend Imsure1200q here once spent 2 weeks here in chat talking about his raycasting NN space maze solver :P
Astrobytes: Much to eulers amusement
DaNinja: impressive :D
darkhorse64: #BringBackEuler
jacek: i advanced 1 league in tryangle catch
Astrobytes: ^
jacek: there are only 2 ppl here now
Imsure1200q: so just because i've spent May 2020 talking about a raycasting NN that means there will absolutely not be an optimizing category?
Imsure1200q: guess im the center of the solar system now
DaNinja: need euler back to finish Space Jam https://www.codingame.com/ide/demo/8261396e8df5c5414061da3c4310edb6b343d6
Astrobytes: Ah he stopped because he couldn't solve it either :D
Imsure1200q: or perhaps i do not deserve to know how to optimize code just because of those two weeks of at least trying to take on the challenge to solve it?
Astrobytes: Learn how to optimise your code outside of CoC
DaNinja: I solved his test cases, now I want more :)
Imsure1200q: obviously there are the other puzzles but i did see one CoC with optimization in it so why not have a category like that
Astrobytes: There's an optimisation category.
Astrobytes: It's about optimising your score though.
Imsure1200q: as in how much time it takes for the program to run
Imsure1200q: *complete its task
Astrobytes: Well there are time limits too.
darkhorse64: Try board games for that
Astrobytes: Try bot programming
Astrobytes: 50-150ms execution time limit per turn
Astrobytes: 50ms for most
jacek: or 200ms for :soccer:
Astrobytes: And that.
jacek: 50ms for chess, 150ms for othello
jacek: :tada:
Imsure1200q: ill probably try othello i suck at chess
Astrobytes: https://www.codingame.com/multiplayer/bot-programming/othello-1
Imsure1200q: got defeated just because i didnt know 1 ture
Imsure1200q: rule*
jacek: i probably couldnt play othello on real board, i wouldnt be sure of legal moves and flipping
Imsure1200q: what
Astrobytes: It takes practice jacek
KelvinAndHubbles: isn't othellos catch phrase "5 minutes to learn, lifetime to master" or is that like Triominos or something wack?
Astrobytes: I think that's Othello yeah
Astrobytes: It applies to many games generally speaking
jacek: nyoro~n
bigmazi: I've just had a clash where the system didn't accept correct answers despite there were always exact match with every single sample
struct: DaNinja you solved testcases and validators?
bigmazi: it kept saying "Found nothing - expected 1" despite 1 is the first line printed everywhere
jacek: additional/missed new lines?
bigmazi: can I post a screenshot?
struct: yes
DaNinja: in Space Maze, yes
bigmazi: won't I be autobanned by a bot for external link?
struct: nice, what language did you use da ninja?
struct: no bigmazi
DaNinja: c++
bigmazi: https://imgur.com/a/7fxZX3z
bigmazi: the clash: https://www.codingame.com/clashofcode/clash/report/16351202b2f7dbe777919d7506523fa0862a04a
struct: code
hooshemadhoosh: Hello World! I'm a new user for this site... what is this chat about?
struct: anything related to cg
struct: or programming
bigmazi: code: https://pastebin.com/zHLPG1gx
hooshemadhoosh: I can't reply anymessage.yes?
struct: I guess you can
jacek: hmm.. does [] work with +?
hooshemadhoosh: How?
jacek: []+number
bigmazi: it's []+tuple, not number
bigmazi: as you can see on screenshot, it prints everythin correctly
struct: hooshemadhoosh just type the person name it will ping them
struct: bigmazi i think it prints trailing space?
bigmazi: struct, no it doesn'e I double-checked it
bigmazi: doesn't*
bigmazi: the error is "found nothing" whilst "1 expected"
hooshemadhoosh: struct let's test it thank you
bigmazi: 1 is the first line but it sees nothing
hooshemadhoosh: it didn't work:joy:
struct: ah
struct: I see the problem bigmazi
bigmazi: what's it?
struct: http://chat.codingame.com/pastebin/0cb040fd-af19-4e3e-84ef-3964b1d1e90b
struct: http://chat.codingame.com/pastebin/7e78978c-17bc-49cc-9de1-ea049edaac72
struct: the first time you print is empty
bigmazi: lmao, why doesn't it show empty line then
hooshemadhoosh: is CG related to olympiad?
bigmazi: thanks, sctruct
bigmazi: struct*
struct: I dont know why
jacek: olympiad? w00t?
hooshemadhoosh: Do you know what student olympiad is? jacek
jacek: no :o
hooshemadhoosh: so, you don't know IOI
hooshemadhoosh: take a look at here https://ioinformatics.org/
jacek: i would say CG isn't related to olympiad
hooshemadhoosh: but it is ralated to Algorithms:smile:
Imsure1200q: othelo is
Imsure1200q: scary
jacek: hm?
hooshemadhoosh: thanks for news Imsure1200q
Uljahn: we had some sprint contests though
Uljahn: but they are rare
struct: Servers cant handle it tbh
Imsure1200q: what
Imsure1200q: if othello is 8x8 why is there board size s
Imsure1200q: but ok i guess
jacek: so you know its 8x8
jacek: i think during contribution there was idea if to make it 10x10
Imsure1200q: but it has to be an even number right or not necessarily?
jacek: yes
jacek: well nothing is 'necessary' but how would you place the 2x2 starting square on odd sized board
struct: Uljahn you might want to ping thibaud :p
hooshemadhoosh: :yin_yang:
darkhorse64: #ru is on fire ?
struct: dont think so, is just that he lost mod tag due to bug
jacek: huh
BlaiseEbuth: Oh. Uljahn too ?
MadKnight: me too
MadKnight: was
Nick_Svaki: I am not robot.
darkhorse64: How can we know ?
DaNinja: click [ ] here
BlaiseEbuth: Prove it
Nick_Svaki: so how can I prove?
struct: blaise check on discord channel
MadKnight: ping Automaton2000 to prove
Nick_Svaki: no click
Automaton2000: you can start with a simple ga
MadKnight: Automaton2000 doesn't respond to bots
Automaton2000: i think that i know of
BlaiseEbuth: I have not discord. What does he say ?
MadKnight: i don't have*
Uljahn: BlaiseEbuth: "following the chat reboot after a certificate update, it seems all the changes in mod rights and banned list from the previous months have been erased"
MadKnight: u can use discordapp.com in your browser
BlaiseEbuth: Ok. Nothing new. Thx Uljahn
MadKnight: oh i think i heard that their banned list is only stored in RAM and not anywhere on disk
MadKnight: so a server restart resets it
jacek: do they do backup on ramdisks too? AutomatonNN what's your opinion on it
AutomatonNN: why do you think what does this mean?
BlaiseEbuth: AutomatonNN is there a way to call euler ?
AutomatonNN: eulerscheZahl is there a way to see the code on the next contest of the contest?
BlaiseEbuth: :3
DaNinja: :D
Astrobytes: To summon him these days you must shine the 'e' signal up into the sky
ZarthaxX: LOL
BlaiseEbuth: Nam gloria Lucifer.
Astrobytes: Pretty decent song.
BlaiseEbuth: Beelzebubs is cool.
BlaiseEbuth: :metal:
MeSeet: http://chat.codingame.com/pastebin/a53dc937-1264-415d-992f-956ec1c6d741
MeSeet: (my mind is messy, sorry for that)
Cdude: hi all
ShortBaited: @MeSeet already looked on Electron combined with Js?
ShortBaited: or i mean not js i mean Angular
BlaiseEbuth: :unamused:
BlaiseEbuth: I meant :nauseated_face:
ShortBaited: ?
BlaiseEbuth: I have not said anything.
Cdude: ok
BlaiseEbuth: MeSeet : that totally depend of what you want to do. There's no good answer, your question is too generic.
eulerscheZahl: AutomatonNN summoned me
AutomatonNN: (╯°□°)╯︵ ┻━┻
BlaiseEbuth: :o
Astrobytes: It was either that or the 'e' signal in the sky
BlaiseEbuth: A toad ! Shiny day tomorow !
Astrobytes: Nice to see you either way :)
eulerscheZahl: topcoder contest is over, now i'm bored
eulerscheZahl: and I missed you
Astrobytes: We miss you too!
Astrobytes: Place just isn't the same without the resident Toad.
eulerscheZahl: https://imgur.com/a/d2oig6w
Astrobytes: hahaha
Ordonnateur: Is the easy puzzle Chuck norris is bugged ? the third test don't work for me but when comparing manually the binary value and the expected unary it don't respect the rules (or we need to use something else than Integer.toBinaryString(int) to convert the char ? it work for the test 1 and 2 so it seems weird)
Cdude: hi
Astrobytes: btw, TC is POTW euler
eulerscheZahl: illedan shared a screenshot with me
BlaiseEbuth: *ez
MadKnight: there's a character that is 6 bits long Ordonnateur your converter probably only did 6 bits instead of 7
eulerscheZahl: didn't get much boost from it
MadKnight: u have to do all 7 bits Ordonnateur
Astrobytes: That must be the Disappointment part of it euler :P
eulerscheZahl: nah, was dead on arrival. too complex for a multiplayer game that you try for a weekend
Astrobytes: It does need some time investment, that's true
struct: euler, DaNinja solved space maze 2
struct: and hi
eulerscheZahl: oh, nice
eulerscheZahl: he has my absolution to publish under his account
eulerscheZahl: also: https://imgur.com/a/u972VVE i got liked from a bot?!
Imsure1200q: lol
Astrobytes: Hm, it's achieved sentience
struct: all bots seem to like you
eulerscheZahl: i'm still stuck on space maze 2 and probably won't try it again and won't publish anything that I can't solve myself :(
Imsure1200q: i did othello on a website and i won ._. and you know what that means
Astrobytes: Raycasting.
eulerscheZahl: :D
eulerscheZahl: "i did othello on a website and i won"
i have that crazy idea: allow the user to take over during a game and play from a given state against himself or a basic JS opponent
Astrobytes: Manual override?
Astrobytes: Would be intriguing.
eulerscheZahl: just pause the game and then take over
Imsure1200q: well i mean against a bot but yeah that could be one way of doing it
Imsure1200q: provided that you can make a turn in 150 ms
eulerscheZahl: sometimes i try to play those moves in my head to understand why my bot makes a decision
eulerscheZahl: would be entirely on the user-side. no time-limit there
Astrobytes: Hm, depends on the game. And your solver. Can't always figure it out.
Imsure1200q: this game is very neural network able
eulerscheZahl: but there is no way to play vs arena bots
eulerscheZahl: i'm not talking about othello specifically
Imsure1200q: it says that im expected to use monte carlo s tree
Imsure1200q: wait
Imsure1200q: tree search
Astrobytes: Well, I guess you could play manually offline using replays.
struct: you can play manually vs js bot
Astrobytes: So you can almost play against an arena bot
Astrobytes: afk for a bit, shopping waits for no man.
eulerscheZahl: ok, bye
jacek: :O
jacek: we missed you
jacek: (with every bullet)
Imsure1200q: there has to be at least like some way to win the game every time
Imsure1200q: like tictactoe
Imsure1200q: well at least not lose
jacek: yeah. just be better
aCat: ok, my newest puzzle ready to upvote and approve ;-)
eulerscheZahl: i just saw it
jacek: is this :cheese:
eulerscheZahl: first impression: giving a full sequence while there is an opponent moving in a way we don't know?
aCat: cooperative
aCat: Its just bfs
kovi: i really like the idea to interact with ongoing game
aCat: there will be adversarial version soon
kovi: welcome back euler btw
eulerscheZahl: :wave:
aCat: its for basic AI course ^^'
eulerscheZahl: so we control both black and white?
ZarthaxX: toooooooooooooooad
aCat: first bfs - then minmax ;p
ZarthaxX: you are alive
aCat: yes euler
eulerscheZahl: polar beea..ox
jacek: but minimax is already there
ZarthaxX: lol :rofl:
jacek: rebBless made it
aCat: bfs also ;p
ZarthaxX: took me some time to get that
eulerscheZahl: topcoder ended, have to wait 12 days till next contest :(
ZarthaxX: was it cool?
jacek: rare contests... what site is that?
eulerscheZahl: should have tried that website earlier. i always failed to find the running contests there
eulerscheZahl: such a mess from a web-design point of view
ZarthaxX: it has an app too
ZarthaxX: but it's also messy
aCat: I was doing topcoders in high school ;p
aCat: with not much success :P
aCat: but this was fun and exciting
eulerscheZahl: i want that tshirt :P
eulerscheZahl: and their system is complicated
eulerscheZahl: you get points for high ranks. and those add up to a 3-month leaderboard
Imsure1200q: playin othello with an actual player hes been thinking for like eternity
Imsure1200q: imma do this thing later
Imsure1200q: for a MCTS that has 4 branches, simulation cap is 10 how much time do you think that will take
Imsure1200q: well i mean its just 4 branches but uh maybe change that to 10 or something
struct: so 10 or 4?
Imsure1200q: 10
struct: also it depends on the sim speed
struct: i should be 10^10
struct: if you stop at depth 10
Imsure1200q: if sim speed is 1ms whats that
struct: 1ms to reach depth 10?
Imsure1200q: yeah for the simulation
struct: 1000000000 ms
Imsure1200q: thats hard
Imsure1200q: idk how in the world all of you manage to get < 150 ms
struct: well with mcts you dont search all paths
struct: you do but you dont explore it fully
Imsure1200q: is your sim depth small like 5 or very big
Imsure1200q: like all the way to the end of the game or something
struct: on vanilla mcts you only stop once the game ends
ZarthaxX: struct why that 1000.. ms thing?
Imsure1200q: so some people use vanilla and they still get 150 ms
Imsure1200q: meaning the speed is entirely based on how good or bad your simulation is
Imsure1200q: *simulation function
struct: ZarthaxX he was asking how much time it would take to reach depth 10 with all explored if each step would have 10 options
struct: and each depth 10 sim would take 1ms
jrke: optimization is main thing in simulation
Imsure1200q: haha i have no idea how to optimize the othello thing because every step in the simulation it has to get the valid spots means a lot of scanning
Imsure1200q: find the valid spots*
jrke: which lang are you using?
Imsure1200q: nevermind i found a way to optimize it but it still took me 1 hour and will probably be a very minimal optimization
Imsure1200q: jrke: js
Imsure1200q: javascript
jrke: but why simulation in othello?
jrke: try minimax
Imsure1200q: yeah should probably try that a s well lol
ZarthaxX: struct okey, but it's true tho
ZarthaxX: not true*
ZarthaxX: it isnt that linear
struct: why not?
jrke: pruning helps a lol in minimax
ZarthaxX: you start going through branches each time larger
ZarthaxX: iterating takes more
ZarthaxX: so it's even worse than that
struct: 10^10
ZarthaxX: that's the amount of times you will rollout
ZarthaxX: i meant the other stages of mcts
struct: yeah
ZarthaxX: the other stages get each time worse
ZarthaxX: worser every time :P
Imsure1200q: im gonna watch some tutorial for minimax or smth
Imsure1200q: idk about minimax in othello cuz in the beginning less is more
Imsure1200q: but in the end more is actually more
darkhorse64: If you really want to searching, do not js, python, ... It's just a waste of time and effort
darkhorse64: do not use
darkhorse64: It's like trying to perform in a race car with a bicycle
Imsure1200q: how bout c++
ZarthaxX: thats the way
ZarthaxX: :)
darkhorse64: Rust, C++ excellent choices
Imsure1200q: welp time to meet my nightmares again
darkhorse64: C also but C++ has more powerful features
Passifi: yo c++ ain't so bad once you get to know it a little better
Imsure1200q: i mean i have been using c++ for a long time now especially to help me sort my files
Imsure1200q: but i kinda forgot it lol
Imsure1200q: idk ill see if i can recall stuff
Passifi: interesting I've read that
Passifi: you tend to forget c++ very fast
Passifi: given how much effort one usually puts into learning it that seems pretty unintuitive ^^
Imsure1200q: just the stress levels in life man :ok_hand: :pensive:
Imsure1200q: idk c++ was pretty easy for me or at least the way i used it was easy idk'
Imsure1200q: or maybe its just bias because i've also been working c++ and vulkan stuff and comparatively vulkan is a lot harder
Imsure1200q: idk ill try c++ with the othelo proble
Imsure1200q: whats not easy about c++ tho is optimization definitely and now it's time to watch The Cherno videos till 3AM
Imsure1200q: whatever
darkhorse64: For CG, you don't need to do fancy stuff, inheritance is nearly always useless, some bits of STL, no templates
Imsure1200q: yeah templates dont deserve a place in my life
Imsure1200q: so thats good advice
Imsure1200q: or info or advice
darkhorse64: do not forget the pragmas
Imsure1200q: whats that is that basically the () => {} in javascript
Imsure1200q: or is it macro
Imsure1200q: oh nvm i remember now
IgnacioGb: Hi guys, is there any forum about using CG efficiently? I just tested CG local and I don't find it fascinating. Anybody knows if I can use breakpoints. Note aside, I just discovered the "expert" mode in settings, which allows to test your code with custom tests. And that is going to make my CG life so much easier. Any other tips?
darkhorse64: No, by default, your code is compiled without optimization. Adding a few #pragma usually gives a 3x-5x speed boost. It also gives you access to bit manipulation function and simd for firther speed boost
darkhorse64: No debug apart from print
Imsure1200q: is that like compiling options but in the code
darkhorse64: Search for "pragma" in the forum
darkhorse64: Yes
darkhorse64: Important, this must be the first lines in your code
UnnamedCodinGamer: darkhorse64, which #pragma goes with __builtin_ctzl?
ZarthaxX: you dont need a pragma for that
UnnamedCodinGamer: it did not want to compile otherwise
ZarthaxX: o ctz
ZarthaxX: the other one
ZarthaxX: thought about fsl
ZarthaxX: anyway
struct: UnnamedCodinGamer doesnt compile locally or on CG?
struct: compiler?
ZarthaxX: weird
struct: msvc doesnt have __builtin_ctzl
ZarthaxX: oh no LOL
ZarthaxX: forget about visual studio
ZarthaxX: :D
BlaiseEbuth: forget about ms
ZarthaxX: you can try compiling manually with g++
ZarthaxX: or use for example dev c++
UnnamedCodinGamer: It does not compile on CG also
struct: #include <iostream> int main() {
std::cout << __builtin_ctzl(2) << std::endl;
}
struct: this compiles
darkhorse64: #pragma GCC optimize("O3,inline,omit-frame-pointer,unroll-loops","unsafe-math-optimizations","no-trapping-math")
- pragma GCC option("arch=native","tune=native","no-zero-upper") //Enable AVX
- pragma GCC target("sse,sse2,sse3,ssse3,sse4,mmx,avx,avx2,popcnt,rdrnd,abm,bmi2,fma") //Enable AVX
BlaiseEbuth: error: the chat is not an IDE.
darkhorse64: The full monty
ZarthaxX: lol
UnnamedCodinGamer: darkhorse64, thanks will test it
ZarthaxX: wont work in visual studio UnnamedCodinGamer
UnnamedCodinGamer: I do not use it
ZarthaxX: hope it doesnt do the same as vs then
struct: does it compile the code I pasted?
ZarthaxX: ah it's a text editor, whatever
UnnamedCodinGamer: yes, it is a text editor
UnnamedCodinGamer: struct, I am looking into it
UnnamedCodinGamer: it compiles
UnnamedCodinGamer: it seems i can not copy the error message from the IDE
struct: yeah its kinda broken on cg I think
struct: unless they fixed it
struct: i mean errors are broken
ZarthaxX: copy the error from the html :P
UnnamedCodinGamer: ahaa, I see
UnnamedCodinGamer: it is not __builtin_ctzl it is _pdep_u64
ZarthaxX: makes sense
UnnamedCodinGamer: sorry, my bad
ZarthaxX: you need certain flags to compile that one, which is what pragma does
UnnamedCodinGamer: so i found #pragma GCC target ("bmi2,tune=skylake") , which works
darkhorse64: bmi2 handles pdep/pext
Binary_Sky: is it possible to find the name of the puzzle you just completed on the report screen https://www.codingame.com/clashofcode/clash/report/16355687fc317a38aded9ff503865ed8eb580e6
eulerscheZahl: shameless advertising: https://eulerschezahl.herokuapp.com/codingame/puzzles/ search for the parts of the statement that you remember
Binary_Sky: nice, found it easily
Imsure1200q: why cant i see anything at codingame // home
Imsure1200q: like its just blank
Imsure1200q: well i mean the sidebars and navigation are still there but not the main content
Passifi: hmm a quick search through the language options has shown that CG doesn't support QuickBasic. A shame really :thinking:
Imsure1200q: why
ccplus: I registered for https://www.codingame.com/contests/spring-challenge-2021 . How can I start a relevant problem? Or will the problem arrive later?
eulerscheZahl: hi ccplus, are you the one from topcoder?
eulerscheZahl: last contest: https://www.codingame.com/multiplayer/bot-programming/fall-challenge-2020
eulerscheZahl: the one before: https://www.codingame.com/multiplayer/bot-programming/spring-challenge-2020
eulerscheZahl: you can still play them, just without prizes
eulerscheZahl: expect something like that in May as well
ccplus: Thanks! So Major Community Event May 6, 2021 05:00PM just ment that the registration starts then? But the actual event happens "at some point"?
eulerscheZahl: that's the start of the contest. it lasts 11 days
ccplus: But what is it about? How can I compete?
AhmedWA: http://chat.codingame.com/pastebin/3b3fae03-2888-4ddc-a252-ec75e896bb0b
eulerscheZahl: https://www.codingame.com/contests/spring-challenge-2021
eulerscheZahl: does it say "You are registered!"?
eulerscheZahl: then come back in may or use the time to play previous contests and practice. when the contest starts, it will be hard to miss
eulerscheZahl: you'll also receive an email reminder
ccplus: Oh, damn. It starts in May. I thought it started this month :laughing:
eulerscheZahl: CG only has 2 contests per year anymore :(
eulerscheZahl: used to be much more frequent
struct: lets hope it doesnt get delayed :(
ZarthaxX: be prepared for the worst outcome
ZarthaxX: well, scenario
ZarthaxX: structo how is uni :thinking:
eulerscheZahl: a delay sounds unlikely to me, what makes you even think about that?
eulerscheZahl: the way I know CG, they'd rather host a contest with a halfway finished game than changing the date :imp:
ZarthaxX: he has a catastrofic vision
ZarthaxX: lmao
struct: its good
struct: not the first time they change
ZarthaxX: and fix it in those 10 days
eulerscheZahl: true, i remember a contest where i was glad that i didn't take off early
eulerscheZahl: so i could still adjust my plans to take the delay into account
aCat: yeah, on my side we're again incorporate CG contest into classes :P
eulerscheZahl: class Board class Cell class Player
ZarthaxX: lol
aCat: class Student
aCat: rather
aCat: ^^
eulerscheZahl: unlikely that I will create such a class in my bot
ccplus: Guess I'll probably try https://www.topcoder.com/challenges/de291e9a-995b-4661-948d-952ee5433a4e?tab=details
AntiSquid: communitybot was some guy who spammed alts, instant ban when i saw the Hii
Westicles: poor rockstar
MSmits: eulerscheZahl !
MSmits: working on bender 4 atm. It's fun
kovi: oh, forgot to comment on that one
kovi: i remember you wrote design some days ago
kovi: it is good, but maybe there is a flow
kovi: flaw
MSmits: whats that
MSmits: still have to code it mostly
kovi: your position matters
kovi: if the tree handles that as well
kovi: than it is ok
MSmits: sure, but isnt your position the spot where you last switched a toggle
MSmits: if you dont consider the boulders i mean
MSmits: (consider them as walls)
kovi: boulder i think
MSmits: I mean, i only consider map changes as states
MSmits: and if boulders are walls, the only way to change the map is using a switch
MSmits: you can always floodfill from the last switch to find your next possible map changes
kovi: i had simpler approach but afaicr player relative position caused troubles
MSmits: yeah, my approach shouldn't have this problem
MSmits: the hard part is expanding to include moving boulders
MSmits: because there are many ways to do this and the positions will be variable
MSmits: will require some pruning (removing useless boulder locations)
kovi: yes. only a few options are needed
MSmits: recognizing the options on an arbitrary map is pretty hard
MSmits: and of course when all that is done there are the functions
MSmits: it seems pretty easy to find repeating patterns in solutions and turn them into functions, but functions calling functions will be complicated
kovi: i cant remember that part well
MSmits: also functions calling themselves means an infinite loop (the description mentions this). So you can only use that at the end
MSmits: I am guessing there's also ways to use functions even when they are bad fits. Say when you're in a long corridor going upward and the function includes moving left, which does nothing
kovi: i remember. there is the option to add useless blocked movements which may make better repeats
MSmits: yeah
kovi: ...
MSmits: so in your solution, you should also track blocked movements
kovi: i was not trying too hard, roi is low because of possible hardcoders
MSmits: this way a longer solution in squares moved could be a shorter solution in characters
MSmits: roi?
kovi: return on investment
MSmits: ahh and you refuse to do that?
MSmits: top 10 is probably doable without hardcoding
kovi: yes
MSmits: oh lol, didnt see you were 11
MSmits: I have no problems with the hardcoding part, but i doubt i will spend enough time for those last few ranks
MSmits: maybe i will just solve it and move on
kovi: anyway, im clobbering
MSmits: fun :)
kovi: but it seems hard to get heuristics
MSmits: yeah, i just have a completely random rollout and mcts
kovi: hmm...how many playouts?
kovi: top is really doing much better
MSmits: hmm not sure, i think somewhere in the region of 100k/200k sims
kovi: :o
MSmits: i do a full rollout
kovi: 2nd turn?
MSmits: so all children for 1 expansion
MSmits: it gave me 1600-2000 rollouts, but thats * 100 something sims
MSmits: yeah 2nd turn
kovi: you do 100 sim per children?
MSmits: no it's just 1 sim per child
MSmits: but the early game has 100+ children
MSmits: per parent
MSmits: i dont know if this is good or bad, i wrote this bot in half a day
kovi: hmm. i do 40-50k but playout - select - expand both takes approx equal time
MSmits: Actually it's half a day for the bot and half a day for the meta mcts
MSmits: i did some testing to see if it could be hardcoded
MSmits: pretty sure it can't, not meaningfully, unless bots get much much better
kovi: not sure why it is slower that yours (or yurko-s)
MSmits: well if you do 1 sim, its gonna have less sims
MSmits: because you have more selection overhead
MSmits: could easily be a factor of 2
kovi: i also do full playout
MSmits: ohh ok
MSmits: well i already shared my sim with others
MSmits: did you get that?
kovi: nope
MSmits: allright sec
kovi: started yesterday
darkhorse64: MSmits: we have approximately the same code; 120k 2nd turn
MSmits: http://chat.codingame.com/pastebin/89f75378-b16e-46b1-9d90-6b7f4f80455d
MSmits: sounds right darkhorse64
kovi: i c. tracking possible move all along
darkhorse64: I have a bit further than that with SIMD but it was actually slower
MSmits: what do you mean tracking kovi?
darkhorse64: I have gone
MSmits: I just get it from the bitboard
MSmits: darkhorse64 yeah thats why i didnt even try
kovi: ah sorry just treating options separately
MSmits: i didnt think it would be worth it and you trying it was enough for me
MSmits: kovi yeah, you need to popcount the moves anyway,
pardouin: Hi, only 15h remaining on my contrib to be accepted, I'm a bit worried. If you have time to take a look at it, it would be much appreciated <3
kovi: i have same logic, but first picking item, merging bits then made random direction choice
MSmits: ah, i have no idea what it would do to pick the direction randomly
MSmits: biases some moves
MSmits: but that may actually be better, who knows
kovi: i tried both collection and random
MSmits: you didnt notice anything in my sim that makes my bot faster than yours kovi?
kovi: but the whole thing is probably slower than yours
MSmits: mine is mostly the conditions. It has 1-3 conditions depending on where the random falls
kovi: well, not 2-3x and as I mentioned playout it takes <30% of my time
MSmits: ah then your expansion must be slow
MSmits: wait huh, you do 100 sims
MSmits: and then thats < 30% ??
MSmits: crazy..
MSmits: in uttt, i do 1 sim per expansion and its 50% +
kovi: 50k sim and time is 33% expand, 33% select, 33% playout
MSmits: ohh, you tested this throughout the game i bet?
kovi: no. it is start
MSmits: seems really weird
MSmits: even selection should be much lower
MSmits: you dont get very deep at all
kovi: yeah, for other games it was 50% playout
MSmits: so not much selection happening
kovi: (after proper bitmagic)
MSmits: my meta mcts after 100k visits, went like 4 deep max
Wontonimo: pardouin you can always resubmit if it expires. It's super easy, in your contribution there will be a big button "resubmit". you don't have to type anything back in.
kovi: oh yeah...and i run out of nodes in this one :)
MSmits: hmm
MSmits: http://chat.codingame.com/pastebin/b90bfb49-f7d5-4a79-b383-0e612fa5197c
kovi: but it has nothing to do with slowness
MSmits: my node
MSmits: its almost always like that. I have the state on the node in most simple boardgames, uttt excepted
MSmits: not sure if i run out
Westicles: pardouin, turn it into a WIP and back before it expires so you don't lose your approval
kovi: this is the first game i run out (on cg)
MSmits: you would run out in bandas I think?
pardouin: ok thanks for the advice
pardouin: but it's so damn long to get accepted unless it's an easy puzzle, it's discouraging
pardouin: the fact that thre's a constant amount of 100+ contribs doesn't help
kovi: bandas: was probably close, but didnt notice bumping into it anyway, time to sleep. thx for tips
MSmits: gn np
MSmits: i just noticed that in early game i usually lose my whole tree
MSmits: in clobber i mean
MSmits: because 100 children make another 100 children = 10k+ children. But the search is not uniform so some children of children never get expanded
MSmits: which means there is no tree to retain
MSmits: reuse
MSmits: well not always, but mostly. I dont run out of nodes though, not even close
darkhorse64: Same. I wonder sometimes if a pure random would not be enough for the 10 first moves. Most of the times, my eval is close to 50% until the solver catches on and finds the win/loss
MSmits: yeah might be
MSmits: do you think kovi runs out of nodes because he reserves a full set of nodes for each child he creates?
MSmits: if you do this, for children you're never going to actually expand, you will run out
AntiSquid: how do you run out of nodes?
MSmits: node pool not large enoguh
MSmits: const int NODE_MAX = 25000000;
AntiSquid: create new ones?
struct: reserving for every creation is expensive
MSmits: AntiSquid there's like a 780 mb limit
struct: On uttt i reserve like 13mill on one turn
struct: with 25k rollouts
MSmits: unless you mean dynamically creating nodes *horrified*
AntiSquid: reuse reduce recycle
AntiSquid: :thinking:
AntiSquid: https://happylearning.tv/wp-content/uploads/2017/05/reduce-reuse-recycle.jpg
MSmits: what i do is at the beginning of my turn i check if i am near the limit and if so, i just dont reuse the tree and start at index 0 again
darkhorse64: Yep, not enough rollouts to empty the pool
MSmits: yeah so i think kovi is doing something wrong there
darkhorse64: MSmits: stop reading my code
MSmits: heh, we just talked of mcts too much
MSmits: then you get similar code
AntiSquid: so instead of keeping part of the tree you chop the entire tree down? because of a few dead branches ?
Westicles: If CG made a new puzzle type where you get 10s a turn, would all these same approaches still apply?
AntiSquid: maybe they'd recycle a lot more than running out of nodes
darkhorse64: reallocating would cost too much.
MSmits: AntiSquid think of it like this. If you're really really lucky, reusing the tree may save you 10% calculation time. How much do you lose by going through 780 mb and reducing the pool?
MSmits: i doubt its even possible
MSmits: if you're creating a dedicated solver locally and you are memory limited, then this is worth it
AntiSquid: let the tree grow more rings
thanveershah: Is GPT-3 going to take over?
AntiSquid: it's not even accessible to everyone lol
MSmits: I'm putting my money on GPT-2
MSmits: what's GPT by the way?
AntiSquid: do you have access to gpt-3 ? thanveershah
darkhorse64: Resetting the index does not mean you cannot reuse the tree
Astrobytes: GPT-n access if you donate to Patreon
AntiSquid: it's like asking if electric cars will be the norm
MSmits: darkhorse64 thats true, with uttt i used to keep reusing it even after reset
MSmits: thats scary though :)
MSmits: you * probably* wont overwrite a node you were still using :)
Astrobytes: *shudder* my oware issues
MSmits: i dont run out of nodes in uttt anymore
Astrobytes: (when I was trying to reuse nodes)
darkhorse64: It's only when you allocate faster than you "freé" that you run into issues
thanveershah: I'm a contributer to GPT
darkhorse64: bandas is the only example I know
MSmits: darkhorse64 not necessarily, with a very small exploration parameter, your search can go 20 turns deep or something and if you follow that route 20 turns long you will be using a very old ndoe
MSmits: node
MSmits: so then the question is wether you will go through your full pool in 20 turns
MSmits: btw oware is a game where tree reuse is very important actually. I noticed most gamestates have only 1 or 2 good moves, so the chances of your opponent picking the move most of your tree comes from is very high
AntiSquid: oh someone already doing a 9 men's morris
MSmits: yeah it's cool
AntiSquid: was considering to do that as a quickie few days ago ... nvm, glad i didn't start it :D
darkhorse64: Yeah, bandas goes deep. That may explain why I have to be cautious with this one
MSmits: yeah
darkhorse64: AntiSquid: If you need suggestions, I can give you some
MSmits: sometimes the game is solved for my at ply 10 or something
MSmits: for me
MSmits: so, super deep
AntiSquid: no i don't
AntiSquid: need motivation and a clear goal :D
darkhorse64: With endgame tablebases and shorter rollouts
AntiSquid: well clearer *
Wontonimo: go AntiSquid go!
Wontonimo: how's that for motivation?
AntiSquid: to the bathroom i go
Wontonimo: bad squid bad!
AntiSquid: i am not a squid jeez
darkhorse64: YurkovAS was kind enough to give me back the lead
MSmits: seems fairly random?
MSmits: now he's below me again
MSmits: he was like 2-3 pts above me before
AntiSquid: anyone seen volcanoes? first impression makes me think wtf is that
MSmits: it makes me think, whoa i need to stop looking at this or get obsessed before i finish other stuff :P
darkhorse64: I have at least 60 % against all. Strange leaderboard
Westicles: You guys should take time out to approve these four great cribbage clashes
MSmits: what is it your bot does that is better than my bot btw darkhorse64?
MSmits: is it just a bit faster or ?
aCat: approve my chess puzzle ;]
darkhorse64: I tune some parameters
MSmits: did you ever upload your pic here aCat ?
MSmits: https://isthisacat.com/
MSmits: AND HI :)
aCat: nope
aCat: hello ;-)
AntiSquid: trained with lobe?
MSmits: no idea, but i uploaded that cat that looks like a crow pic and it failed
Westicles: aCat, that darned 66% at parsing context-free grammar stares at me every time I login
MSmits: like most humans
aCat: :D:D
aCat: I'm sorry Westicles
aCat: I have similar thing with nicola parentheses puzzle
aCat: just copypaste my solution, lol ^^'
MSmits: Westicles would never do such a thing
JonPinneyBrown: is there a way to look at a previous clash of code you have done?
MSmits: aside from playing another 400 till you get it again? Nope
JonPinneyBrown: okay, thank you
snoyes: You just want to see your code? You can click the notification bell that tells you what place you took. Click that notification to go back
Westicles: Nah, though I am not against adapting a non-CG solution to solve
Westicles: For example I already had a sokoban solver from years back that wasn't my own
thanveershah: I need helo with a question
tutubalin: what is code size limitation in classic puzzles and optimization puzzles?
jacek: 100k characters
daviskz: I check all the questions in a puzzle, take it for granted, but when I send the answer, it shows as if I had one of them wrong, what should l do?
therealbeef: your solution may not be generic enough
therealbeef: or if you use c++, the input sometimes doesnt fit in an int but needs a long, and sometimes the tests dont cover that case. but this is not very likely
daviskz: this is weird because all the solution is correct before l send it, can l report this ?
daviskz: its a practice puzzle
therealbeef: which puzzle is it?
daviskz: Shadows of the knight ep 1
therealbeef: with that one you can check the replays of the validators I think
daviskz: yes but they say i'm wrong after i send
therealbeef: you mean when you submit?
daviskz: that's the code https://pastebin.com/aemuYcNF
therealbeef: yes, the tests that are run after you submit are usually called validators (and are called tests before you submit). those validators also have replays so you can analyse the failures
therealbeef: you can see them when you click 'details' next to the score circle
DannyHatcher: is it just me or as a beginner the learn sections are really hard even the easy ones?
Cyotyc: some are a bit challenging
Tuo: in c++ how do i get the call stack in CG when throwing an error?
Tuo: some other way of crashing the bot would work too but often i dont get any output just "did not output in time"
Nachosauce: Man I'm strugglebussing hard in coders strike back gold league.. I cannot for the life of me properly calculate the angle to the next checkpoint. They gave it to me in the previous leagues haha.
Nachosauce: Thankfully the rest of my bot is good enough to carry me almost to legend league but I think if I got that angle calculation down I'd make legend for sure.
Tuo: arccos(((checkpoint - current_pos).units_vec()).dot_product(current_velosity)) i think
Tuo: ah also need to take unit vector for current_velosity
Imsure1200q: isnt arccos the same for like example 315 deg and 45 deg
Imsure1200q: like ive had problems with that before in my games i think