Chat:World/2021-03-12

From CG community
Jump to navigation Jump to search

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

Default avatar.png Nick_Svaki: the problem description is hard to understand.

ZarthaxX: which one Nick_Svaki?

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

Default avatar.png MahadyManana: Hi Coder

BlaiseEbuth: Hi test000000001

Nick_Svaki: hello world

Default avatar.png NoahCode: Hello

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

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

Default avatar.png gue88: l

Default avatar.png Naitwa-Alexandre: Hello World

Default avatar.png Naitwa-Alexandre: =P

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

Default avatar.png lets_think: let's think

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

Default avatar.png hasan_kh: hi

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

Default avatar.png IgnacioGb: hi

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

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

Default avatar.png UnnamedCodinGamer: darkhorse64, which #pragma goes with __builtin_ctzl?

ZarthaxX: you dont need a pragma for that

Default avatar.png UnnamedCodinGamer: hm

Default avatar.png UnnamedCodinGamer: it did not want to compile otherwise

ZarthaxX: o ctz

ZarthaxX: the other one

Default avatar.png UnnamedCodinGamer: ?

ZarthaxX: thought about fsl

ZarthaxX: anyway

struct: UnnamedCodinGamer doesnt compile locally or on CG?

Default avatar.png UnnamedCodinGamer: locally

struct: compiler?

ZarthaxX: weird

struct: msvc doesnt have __builtin_ctzl

ZarthaxX: oh no LOL

ZarthaxX: forget about visual studio

Default avatar.png UnnamedCodinGamer: and on CG

ZarthaxX: :D

BlaiseEbuth: forget about ms

ZarthaxX: you can try compiling manually with g++

ZarthaxX: or use for example dev c++

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

  1. pragma GCC option("arch=native","tune=native","no-zero-upper") //Enable AVX
  2. 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

Default avatar.png UnnamedCodinGamer: darkhorse64, thanks will test it

ZarthaxX: wont work in visual studio UnnamedCodinGamer

Default avatar.png UnnamedCodinGamer: I do not use it

Default avatar.png UnnamedCodinGamer: I use kate

Default avatar.png UnnamedCodinGamer: :)

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

Default avatar.png UnnamedCodinGamer: yes, it is a text editor

Default avatar.png UnnamedCodinGamer: struct, I am looking into it

Default avatar.png UnnamedCodinGamer: it compiles

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


Default avatar.png UnnamedCodinGamer: ahaa, I see

Default avatar.png UnnamedCodinGamer: it is not __builtin_ctzl it is _pdep_u64

ZarthaxX: makes sense

Default avatar.png UnnamedCodinGamer: sorry, my bad

ZarthaxX: you need certain flags to compile that one, which is what pragma does

Default avatar.png UnnamedCodinGamer: so i found #pragma GCC target ("bmi2,tune=skylake") , which works

darkhorse64: bmi2 handles pdep/pext

Default avatar.png UnnamedCodinGamer: thanks

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

Default avatar.png UnnamedCodinGamer: nice tool

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

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

Default avatar.png ccplus: Yeah, hi =)

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

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

Default avatar.png ccplus: But what is it about? How can I compete?

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

Default avatar.png ccplus: Yeah

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

Default avatar.png ccplus: Oh, damn. It starts in May. I thought it started this month :laughing:

Default avatar.png ccplus: Thanks =)

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

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

Default avatar.png samg11: hello

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

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

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

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

Default avatar.png JonPinneyBrown: okay, thank you

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

Default avatar.png thanveershah: I need helo with a question

tutubalin: what is code size limitation in classic puzzles and optimization puzzles?

jacek: 100k characters

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

Default avatar.png daviskz: this is weird because all the solution is correct before l send it, can l report this ?

Default avatar.png daviskz: its a practice puzzle

therealbeef: which puzzle is it?

Default avatar.png daviskz: Shadows of the knight ep 1

Default avatar.png daviskz: with python

therealbeef: with that one you can check the replays of the validators I think

Default avatar.png daviskz: yes but they say i'm wrong after i send

therealbeef: you mean when you submit?

Default avatar.png daviskz: yes

Default avatar.png daviskz: that's the code https://pastebin.com/aemuYcNF

Default avatar.png daviskz: with python3

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

Default avatar.png daviskz: ok ,thank u

DannyHatcher: is it just me or as a beginner the learn sections are really hard even the easy ones?

Default avatar.png Cyotyc: some are a bit challenging

Default avatar.png Tuo: in c++ how do i get the call stack in CG when throwing an error?

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

Default avatar.png Tuo: arccos(((checkpoint - current_pos).units_vec()).dot_product(current_velosity)) i think

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