Chat:World/2021-07-17

From CG community
Revision as of 05:29, 18 July 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/66135488073161> GGGFreshy: https://www.youtube.com/watch?v=b07yAyaOg7s&list=RDb07yAyaOg7s&start_radio=1&ab_channel=NititadAOAOfficial <img src=/a/63052365393434>...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

GGGFreshy: https://www.youtube.com/watch?v=b07yAyaOg7s&list=RDb07yAyaOg7s&start_radio=1&ab_channel=NititadAOAOfficial

jacek: ja_fica maybe theres something about encoding https://www.codingame.com/playgrounds/58137/alphazero-like-implementation-for-oware-abapa-game-codingame/environment-preparation

jacek: also, happy Caturday

sakuraiuto001: https://www.youtube.com/watch?v=58J5LyaZ1oo

Marchete: happy caturday :kissing_cat:

Marchete: btw converting data to base65535 is worse in CG, some UTF takes 2 chars. I used Base16k and it seems better

Marchete: either:

Marchete: https://github.com/JDanielSmith/Base16k

Marchete: or

Marchete: https://github.com/marchete/Codingame/blob/master/BinarySend/ENCODER16k.cs

Marchete: or

Marchete: https://qualapps.blogspot.com/2011/11/base64-for-unicode-utf16.html

Marchete: probably some of these

PaarthThePro: What is Caturday?

PaarthThePro: :smiley_cat:

Thyl: :cat:

Thyl: :cat: :point_right_tone2: :clock12:

PaarthThePro: :cat: :point_right_tone3: crying_cat_face:

pouting_cat: :point_rightt_tone2: :heart_eyes_cat:

PaarthThePro: :point_right_tone2: :crying_cat_face:

pouting_cat: :point_right_tone2: :heart_eyes_cat:

PaarthThePro: :cat: :point_right_tone2: :crying_cat_face:

pouting_cat: :point_right_tone2: :heart_eyes_cat:

PaarthThePro: --------------------------------------------------

PaarthThePro: :cat: :point_right_tone2: :crying_cat_face:

pouting_cat: :point_right_tone2: :heart_eyes_cat:


PaarthThePro: OK, what is :Cat:ur:day:???????????

PaarthThePro: :Cat: ur :day:

PaarthThePro: :cat: ur :sunny:

Default avatar.png xanthopsia: damn, pretty hard challs at clash

Default avatar.png xanthopsia: can't really get any haha

KiwiTae: clash of codes are really hard its normal xanthopsia

Default avatar.png xanthopsia: gotcha, thanks

PaarthThePro: I just played my own clash!!!

PaarthThePro: BTW what is caturday?!?!?!?!?!?!?!?!??!

KiwiTae: it must be easy for a greek god

KiwiTae: PaarthThePro its a stupid tradition when you post cat memes on a saturday

Marchete: whaaat?

Marchete: I'm completely offended

KiwiTae: :grin: oupsi

Marchete: :pouting_cat:

PaarthThePro: That makes so much sence

KiwiTae: :heart_eyes_cat:

PaarthThePro: :cat: :heart: :pouting_cat:

Marchete: no, you can't fix that

Marchete: https://imgflip.com/i/5gri7d

KiwiTae: :joy_cat:

KiwiTae: /\_/\ ( o.o )︵-┻━┻

> ^ <╯

PaarthThePro: Something that never happens:

heart_eyes_cat: :dog:

PaarthThePro: Something that happens:

pouting_cat: :dog:

Default avatar.png jxsxtx03: why this page does not reconogize the %, for example in order to know the divisors. I use C

jacek: % in C is modulo. should work in C regardless if its CG or not

KiwiTae: maybe he thinks he is using C but he isnt

KiwiTae: hehe

Default avatar.png jxsxtx03: ey

Default avatar.png jxsxtx03: im using c xd

KiwiTae: wanna share your code ?

Default avatar.png jxsxtx03: but this dont reconogize% ( modulo) , it shows me an arithmetic error

Default avatar.png jxsxtx03: yep, sure

Default avatar.png jxsxtx03: http://chat.codingame.com/pastebin/0ee8856f-cdf4-4e43-8a92-fd2e1565e235

jacek: and what a i b did you try

KiwiTae: that code runs well in c

Default avatar.png trizin: '<script>alert(1)</script>

Default avatar.png jxsxtx03: but not in this page

Astrobytes: Hi

jacek: :scream:

Tellishappy: Hey

DarkLord__28: heya

VinhDaDen: i use Pascal hehe

Astrobytes: "hehe"

Dragon84: https://www.codingame.com/clashofcode/clash/1869659623ac17af393f6b4a176101c41c80f19

nulte: on ept should I return the state evaluation or should I return 1 or -1 if my state is better/worse than opponent?

AstroHydes: Depends. Using the eval is jacekmax-y

AstroHydes: I use the eval in Oware, scaled to between 0 and 1

AstroHydes: Or something like that

nulte: guess ill try both ways

AstroHydes: Yeah, experiment with it

Default avatar.png Saint_Rose: hi everyone

69razer69: hi

Default avatar.png NguyenPhong2: hi

Default avatar.png NguyenPhong2: hello

Default avatar.png Matsuuu: Is it just me or are some of the task skeletons written with OOP languages in mind

Default avatar.png Matsuuu: Doing clojure, the example skeleton just doesn't really yell functional lol

1mmunity: amogus

Noyotens: CODINGAME FALL CHALLENGE 2021 date ???

inoryy: between 01/09/21 and 31/12/21

Astrobytes: Might not be bot programming though . . .

inoryy: what?!

Astrobytes: The decision has not yet been "made"

Astrobytes: From the forum: "The format of the challenge hasn’t been decided yet."

inoryy: :(

Astrobytes: Not particularly encouraging. We can hope though I suppose.

inoryy: what's the reason?

Astrobytes: No reason given afaik

martinpapa69: maybe its getting hard to come up with something fresh, new

Westicles: highly skilled bot guys don't need help getting jobs

inoryy: but they do need a place to have fun though

martinpapa69: working in ai development is not more entertaining after a few years, than cleaning toilets

inoryy: not sure I agree in general, but I'm sorry to hear if that was your experience

MSmits: I did not know toilet cleaning could be that much fun

Marchete: a wild Smits appeared!

inoryy: I went from literally cleaning toilets to working in AI, can confirm AI is a bit more fun

MSmits: indeed, i was on vacation last week, if you're wondering :)

Marchete: back from holidays?

Marchete: ok

MSmits: my wife doesn't want me to tell you when I am leaving, cuz you'll break into our house

MSmits: so that's why i just disappeared :P

Marchete: oh, I'm comfortable breaking in with you two inside :eyes:

MSmits: lol

Marchete: ok that was a bit creepy, jk

inoryy: you're joking that it was a bit creepy?

MSmits: i knew that :P

nulte: damn, I missed a chance on getting the c4 book :(

MSmits: hey I made my nim solver for D&B about 20 times faster

nulte: 20 times?

Marchete: only 20x?

MSmits: (not score solver, nim solver)

MSmits: yeah, it's still a magnitude slower than rank 1

MSmits: but i easily beat everyone below me

MSmits: so at least I am a comfortable rank 2 for now

MSmits: but not done yet

nulte: I finished the 1st version of bt, full rollout is not that bad

nulte: At least ranking wise

MSmits: you mean random rollout?

nulte: yes

MSmits: so no eval

nulte: yeap

MSmits: ah good to know. I never tried it

nulte: But it plays bad

nulte: It sacrifices to many pieces

MSmits: https://www.codingame.com/replay/570667881 my bot starts crying when it's a solved nim-loss. See how much slower it still is compared to nr 1

nulte: Whats the difference between "Win" and "win"

MSmits: not sure, i think he accidentally capitalized it somewhere

inoryy: Marchete please don't take it the wrong way but I found it hilarious you figured out all the bits and pieces behind your CGZero work but couldn't figure out what regularization is

MSmits: happens to me all the time, doing a ton of smart stuff and getting tripped up by something basic.

inoryy: "So I assembled my own car but this cup holder thing I couldn't figure out so I threw it out"

MSmits: thats what happens when you figure out everything yourself

Daporan: Isn't regularization pretty much a field on its own? Not so simple then in my opinion.

inoryy: there's layers to it of course but even majority of experts don't really think about it beyond "just stick L2 norm to the loss and forget about it"

inoryy: i.e. this is sufficient for majority of practitioners https://developers.google.com/machine-learning/crash-course/regularization-for-simplicity/l2-regularization

Daporan: I knew about L2, but thanks ;)

Marchete: now I know what it is

Marchete: and how to use it

Marchete: well

Marchete: in my own words

Marchete: L2 reg is to avoid overfitting / complex models

Marchete: and it's via weight->artificial loss

Marchete: the car pretty much works without that bolt

Marchete: at least I was honest

Westicles: weight loss and occasional irregularity... oh dear

inoryy: Marchete again I don't mean to criticize you, it just seemed funny you've figured out all the really complex stuff but then threw out the "extra bolt" :)

Marchete: not considering the current bias due to submit spams, my current bot was 2nd in oware (much much lower than Robo's bot)

Marchete: yeah, I know my turorial is funny from a ML point of view

MSmits: it's hard to go by rating because of determinism

martinpapa69: you were even first Marchete for few minutes

Marchete: yay! \o/

martinpapa69: BiG

nulte: oware getting dangerous

Marchete: I have 0% winrate vs Robo

inoryy: is oware the most popular for NNs?

Marchete: so I can't deserve that

Marchete: is the simpler one

nulte: I think so inory

Marchete: but the simulation, damn..

Marchete: so many endgame issues

nulte: on connect 4 there are 2 NNs, on breakthrough there are 3 I think

Marchete: I think it's because it's hard to get an heuristic in oware

inoryy: what about UTTT, any NNs there?

MSmits: yeah

MSmits: 3 of them i think

inoryy: oh recurse did one I think

MSmits: also robo and jace k

nulte: on othello there are 3 I think

nulte: on yavalath 1 that I know

MSmits: robo

Marchete: recurs_e won last challenge, by a big margin, with a NN

inoryy: yeah, I remember that

inoryy: it's very impressive progress as a whole

inoryy: When the pandemic clears up and hiring picks up the pace I'd be happy to give a reference to anyone who independently reaches the top of a multi with a NN if they're interested to work in AI for a living. My reference doesn't really mean much but eh you never know until you try.

**Marchete screenshots oware leaderboard

inoryy: by top I mean top~10 or so, you're definitely in the group :)

Marchete: I'm 1st until Robo resubmits

Marchete: so I'll capture the moment

inoryy: ah, congrats!

nulte: grats

Marchete: just rock, paper, scissors

martinpapa69: I think my (copy of your) bot is forever 9th. I keep removing the stuff i dont like and getting almost exactly the same result. I think the net size is a bigget limiting factor here

nulte: I also have rank 1 screenshot before robo improved his NN

nulte: https://i.imgur.com/8KSJOiB.png

Marchete: what net size?

Marchete: I used a bit bigger

Marchete: I have 96,48

Marchete: maybe it's something else

martinpapa69: ahh that was the question, didnt understand

martinpapa69: so i could fit only 80, 32....

Marchete: Dense(96), Dense(48)->policy/value

martinpapa69: ye and i have 2 more layers in the common part of the netwrok

Marchete: you can always use the float32to16

martinpapa69: maybe i could remove them

Marchete: I've put functions elsewhere

nulte: you need to make your bot play worse to beat robo

martinpapa69: ye float16 conversion is a good idea, gonna try it

Marchete: minimal loss

Marchete: if size it's the problem

Marchete: my problem now is more about performance

Marchete: or amount data to fit in the model

martinpapa69: tensorflow even has byte conversion, with minimal precision loss

martinpapa69: havent tried it tho, only read about it

Marchete: quantization too

Marchete: robo uses it

Marchete: I'm still dumb for that

martinpapa69: one thing is interesting for me that, with training only selfplays, the network never overfits

martinpapa69: It reaches its final performance in like an hour, and it stays there, even if i train it for one more day

kovi: not deep enough for overfit?

Marchete: try with more neurons csip

Marchete: I think it's noticeable

martinpapa69: ye i think that will be my next mission

martinpapa69: to fit bigger network in

nulte: only 1 hour to train?

martinpapa69: il lstart with adding #ifdefs to the code

martinpapa69: to only compile necessary parts for inference

martinpapa69: ye i changed the pipeline a lot

martinpapa69: nulte

Marchete: add the option to convert from and to float16

Marchete: make a bit bigger the NN model

Marchete: preference on the first layer

Marchete: as it's "cheaper"

Marchete: due to one hots

martinpapa69: ye, and thats the biggest "bottleneck" in the net

martinpapa69: from 372-> 96

martinpapa69: biggest data loss

martinpapa69: I usually dont make bigger steps, than halving the output in one layer

martinpapa69: but here, we have to

Marchete: I don't know

Marchete: data loss is not from 372->96

Marchete: but from the amount of data to predict

Marchete: 372 are in theory 14 inputs

martinpapa69: my idea is that you compress you data from 372->x in a layer

martinpapa69: umm actually

martinpapa69: because its encoded in one hot, the first layer cointains much less information, than the 2nd

martinpapa69: in cumputer vision i always used the halving the layers in thumb rule, but maybe it's not so good here

Default avatar.png Michael1998: hello to all !

martinpapa69: float16 header for c++: 200 kb. bruhh

RoboStac: float16 header?

martinpapa69: ye. im i overcomplicating something ?

martinpapa69: am*

martinpapa69: http://half.sourceforge.net/ btw

RoboStac: yeah

RoboStac: just do _cvtss_sh to convert them to 16, store them and then convert them back to 32 bit on cg servers using _cvtsh_ss

RoboStac: don't do any maths with the 16bit versions

martinpapa69: aa sure, tx for the suggestion. i wanted to do the conversion in the binary, but ye its unnecessary

RoboStac: If you are writing your weights from python you can do it in numpy too

nulte: so you train with 32 float and then convert the weights right?

martinpapa69: ye in numpy, its simple

nulte: or do you train with 16?

RoboStac: training is 32 bit

nulte: makes sense

Marchete: martinpapa69 https://github.com/marchete/CGZero/blob/master/src/CGZero.cpp#L2663-L2723

jacek: maybe instead of bigger net, try bigger replay buffer

Marchete: also that

martinpapa69: bruh

martinpapa69: ye thats a good idea jacek, gonna try

Marchete: check these files functions

jacek: for bigger net then theres too little data

Marchete: I sometimes had some problems with the filesize detection

jacek: and afaik cgzero has low defaults

Marchete: how low?

jacek: you said 800k for buffer? or something

jacek: while i use 12m

Marchete: 12M?

Marchete: then yes :D

martinpapa69: okay, 96->64 net: 70kb cool.

Marchete: float32 to 16 isn't that hard, no?

martinpapa69: ye i thought it was gonna be pain in the arse

Marchete: I even found that AVX function

Marchete: that does it nicely

martinpapa69: btw, why is that, the caching is turned off by default ?

jacek: win to 12 https://www.codingame.com/share-replay/570679151 :tada:

RoboStac: stop bullying my bot, it did nothing to deserve that :(

BlaiseEbuth: You did.

jacek: son carries on father's sins

BlaiseEbuth: Carry on my wayward son...

martinpapa69: okay so i kept sending my "best.txt" instead of the "actual.txt" to cg, thats why my result didnt change in the past 2 days XD wp

Marchete: ohmy

Marchete: for real?

Marchete: note to self, clean up folders

jacek: oO

Marchete: if you have checkpoints you can try to get the best model

Marchete: at some point

martinpapa69: I dont. and i just moved to float16 and changed the model, so my old model is gone anyways

jacek: so low

Marchete: do you have samples?

Marchete: well

Marchete: anyways

Marchete: if it only takes 1 hour

martinpapa69: ye I'll se. I made like 10+ changes in the past two days, so probably something is broken atm

Marchete: maybe do some tests at some point, pitplays are good for initial tests

Marchete: something <99% vs random is not good

jacek: after 3 days

BugKiller_328: hi

BugKiller_328: I have class A and B in a single cpp file.

BugKiller_328: A uses B and B uses A

BugKiller_328: so I did like

BugKiller_328: class A; class B;

BugKiller_328: at the top

BugKiller_328: but I'm getting error like 'invalid use of incomplete type class 'B'

mrfoo: use them as pointers

BugKiller_328: using as pointer

darkhorse64: you have a circular definition. Change your design

Astrobytes: im too slow :(

BlaiseEbuth: Astrosnail

MSmits: I prefer kinetically handicapped

darkhorse64: make more mistakes to recognize them fast enough

Astrobytes: lol MSmits

MSmits: jeez look at this submit: http://cgstats.magusgeek.com/app/multi-dots-and-boxes/msmits

Astrobytes: nah, not that I didn't see it, my hands didn't move fast enough

MSmits: mikla too strong :(

darkhorse64: clear second

Astrobytes: aw shush, you're second by a long chalk

MSmits: yeah

MSmits: I made my bot around 400x faster

MSmits: for solving nim

Astrobytes: oof

Astrobytes: Nice

MSmits: but need another 400x i think :P

ANONYMOUS42: why is the winrate 0%

MSmits: my winrate vs nr 1 is 0%

MSmits: my winrate against everyone else is 100%

ANONYMOUS42: oh i see

jacek: there is 95%

MSmits: yeah royale

Astrobytes: with cheese

MSmits: he rarely beats mikla too

MSmits: for some reason

MSmits: well... i found the one win vs mikla anyways

Default avatar.png jxsxtx03: is c++ better than c?

MSmits: has more options

MSmits: same speed i suppose

MSmits: I guess you could say it's better

ANONYMOUS42: C is for masochists

Default avatar.png jxsxtx03: should i learn c++ in order to do this kind of things?

Default avatar.png jxsxtx03: i know C quite well

MSmits: depends

Astrobytes: C has its place

Default avatar.png jxsxtx03: but doing this tasks with C is kinda hard

Astrobytes: Plenty people use C on here

ANONYMOUS42: i'm guessing it comes from french schools teaching C mainly

MSmits: if you want to do complex bot games with 1k line bots and have an easy time writing a sim and still have good performance I would say c++ over c

Astrobytes: If you find it easier then use C++, use the features you like and write the rest in C

MSmits: 1k line code

Astrobytes: tell that to trictrac!

Default avatar.png jxsxtx03: ok ty!

MSmits: yeah you can start writing a bot in c and if you miss features, just copy it over to c++

Default avatar.png jxsxtx03: c++ has sth to do with c?

Default avatar.png jxsxtx03: or are completely different

MSmits: c++ is an expansion of c

MSmits: it's a superset of c mostly

Astrobytes: You can write C code in C++ no worries.

Default avatar.png jxsxtx03: ahhh

Default avatar.png jxsxtx03: okk

Default avatar.png jxsxtx03: well

Default avatar.png jxsxtx03: im trying to learn c++, ty guys

MSmits: good luck

darkhorse64: the first C++ compilers were actually translating C++ to C and compiling the result

Astrobytes: Interesting. Didn't know that one

jacek: how 1st compiler was compiled

MSmits: it was done by a chicken

Astrobytes: In some kind of assembler language iirc

darkhorse64: Which is to say anything you write in C++ can be done in C but with great effort

MSmits: does c have structs?

Astrobytes: Yes

MSmits: then i guess i can mostly translate my bots to c without too much effort

RoboStac: they're just data containers though, you can't have functions

Astrobytes: Please do.

RoboStac: so you end up with lots of functions that take that struct as the first parameter

Astrobytes: What robo said :D

MSmits: yeah

MSmits: I guess it's just another layer of headache that I already feel using c++ :)

Astrobytes: Pick the tool for the job. If you have a bunch of stuff already implemented in C and it's good, use it. Otherwise, C++ probably has stuff you could use. Some hardware you can't use C++, etc etc

Westicles: I read other people's C++ and I can't follow it. All this auto business

MSmits: me neither

Astrobytes: Would you rather a huge line of iterator-based nonsense?

MSmits: and not just auto, C++ has tons of stuff i never use and would not recognize

Astrobytes: Like what?

Westicles: classes and templates and lambdas

Marchete: and templated classes :D

MSmits: that sort of thing. It's hard for me to even name examples because when people share their code I often don't know what I am looking at :)

Astrobytes: classes are not hard to get your head around, nor templates (until you start getting *into* template metaprogramming I guess) and who doesn't love a lambda?!

BlaiseEbuth: classes? You're just doing C in a C++ environment...

Westicles: yeah, I just use the containers

MSmits: same

BlaiseEbuth: :no_mouth:

MSmits: I mean i can use a class i suppose, but i dont do much with it

Marchete: O_O

MSmits: in c++ that is

MSmits: in C# I used more features

MSmits: virtual and abstract stuff

Astrobytes: Yeah, CG isn't really the place to use that stuff generally though

MSmits: it is nice sometimes for those complex contest games

MSmits: like kutulu

Astrobytes: Or what I mean is, you can get away without it

BugKiller_328: C is way more faster than c++ even for same code ?

MSmits: no

Astrobytes: It's as easy to do that in C++ as it is in C# though MSmits

MSmits: sure, i just never have

Astrobytes: Try it, learn the features

ubap: good evening friends

MSmits: and it's not exactly as easy, you got the forward declaration

Astrobytes: good evening ubap

MSmits: C# doesnt care where you put stuff

Marchete: that's true

Astrobytes: Plan and organise better :P

Marchete: C++ is a pita

Marchete: with all .h and double definitions

BlaiseEbuth: -> shit is shit everywhere...

MSmits: I try to put things in the right order so i dont have to forward declare, but sometimes you have stuff referencing eachother and then you have no choice

Astrobytes: It is, I admit. But it comes down to design and planning ateotd

Marchete: it's not about design, it's cumbersome

Marchete: for todays' standards

MSmits: old languages have to try too hard to be backward compatible

MSmits: like the weird typing c++ has

MSmits: long long = ?

MSmits: I doubt rust has this problem

Marchete: unsigned long long but not that long you undestand me

ubap: long long = at least 64bit ?

Astrobytes: yeah

Astrobytes: lol

jacek: uint64_t [solved]

Astrobytes: ^

MSmits: thats what i do yeah

Astrobytes: Specify what you need

Astrobytes: And don't assume a damn thing

Astrobytes: You have to be explicit or C++ will piss in your chips

MSmits: eww

Astrobytes: Especially going between different platforms/test environments

Astrobytes: Be specific as to what you want and need, make sure you test whether you're getting what you want or need

BugKiller_328: dummy question to create object array in c++

BugKiller_328: Dog *data = new Dog[5];

BugKiller_328: this will generate 5 object of Dog

BugKiller_328: what I want to know is Is there a way to call constructor which has parameter during making array with dynamically using 'new' keyword ?

nulte: new Dog[5]{ {1}, { 2 }, { 3 }, { 4 }, { 5 } };

BugKiller_328: for example ? Dog::Dog(string name, int age);

nulte: new Dog[2] { {"a", 9}, {"b",10} };

BugKiller_328: If I want to pass same parameter for all objects though

MSmits: Or just do it like the CG Pros: Dog dogs[1000000]

BugKiller_328: Is it ok? MSmits ?

BugKiller_328: creating fixed size of array ?

MSmits: hmm

MSmits: yeah

MSmits: just keep a count of how much of it you're using

MSmits: and make sure the size is enough

MSmits: I often have 20 million nodes for a tree or something

MSmits: most i will not be using

BugKiller_328: yeah, of course I need to have like num_of_dogs ..

MSmits: if they're that big, they have to be global though

MSmits: or at least forced to be on heap somehow

BugKiller_328: now trying to do mcts but when I make expansion, it will have different child..

MSmits: yeah

Marchete: it's for CG?

Marchete: then forget new

MSmits: what i do is i give a Node 2 things: a childindex and a childcount

BugKiller_328: so I was going to make array in dynamic size

MSmits: childindex tells you where in the massive array the set of children starts

MSmits: and childcount tells you where it ends

nulte: BugKiller_328 you dont want to initialize memory during search

BugKiller_328: and then loop by child++ ?

MSmits: yeah for example

nulte: You must create a pool of objects on first turn

BugKiller_328: ok ..

MSmits: just loop on the part of the array you need

BugKiller_328: and creating object with new keyword (probably will be generated on heap) is not good in CG bot programming ?

Marchete: https://github.com/marchete/CGZero/blob/master/src/CGZero.cpp#L1004-L1013

Marchete: I do use new

MSmits: http://chat.codingame.com/pastebin/53e871e5-913f-447b-a2a3-ec2874e4f2fb

Marchete: for tree reuse purposes

Marchete: imo maybe not worth it

Marchete: it's slow

Marchete: Smits is hardcore, he doesn't even save the parent pointer

Marchete: I prefer to do it

MSmits: BugKiller_328 this is an example of a loop

MSmits: http://chat.codingame.com/pastebin/6d69e3c7-6a11-441f-baa4-b0cc2e2d64b3

BugKiller_328: MSmits it's not even pointer ??

BugKiller_328: :D

MSmits: what is?

BugKiller_328: int childIndex;

MSmits: yeah thats just an integer

MSmits: Node* children = nodes + temp->childIndex;

MSmits: nodes is the object pool

MSmits: i add the childindex and that gives me the start of my set of children

BugKiller_328: makes sense..

MSmits: it's like a subarray

BugKiller_328: yeah, totally understand

BugKiller_328: childIndex // where my child starts in pool

Astrobytes: Yeah. It's pretty useful

BugKiller_328: my purpose was to learn algo enough.. but I realized that I'm even weak in data structure than algo.. :D

BugKiller_328: struggling how to manage data ...

Marchete: ..manage data in CG constraints

Marchete: just make a difference vs other environments

Marchete: outside CG I would never make that big static array

nulte: Check memory pool

nulte: is the same concept

MSmits: it's pretty much the only data you store BugKiller_328 in mcts that is

BugKiller_328: you're making big static array for only speed thing..

nulte: ofc

MSmits: depending on how you store the gamestate, it's either on the node, or it's modified when applying moves and reset when the rollout is done

BugKiller_328: like to make more simulation within limited time ?

nulte: I dont use a brain i use speed

Marchete: optimize to win

nulte: yes

MSmits: yes BugKiller_328, but also it's simple

MSmits: no need to worry about running out of memory except for managing the object pool. there is no other memory use

MSmits: unless you count the small stacks that come and go

BugKiller_328: Thanks ..

MSmits: good luck, ask any time. This sort of thing is discussed a lot here

MSmits: when people are not talking about neural networks that is

MSmits: or doing cat emotes

BugKiller_328: thanks MSmits.

MSmits: np

Astrobytes: EPT working nulte?

nulte: I think my eval might be bad

nulte: I just threw random stuff

nulte: But my bot plays different now

Astrobytes: nulte: I beat Crazy_Remi so I'm done for tonight in BT, do your worst!

nulte: grats

Astrobytes: It's a damn tough top 20

nulte: https://www.codingame.com/replay/570701005

nulte: what is my bot doing

Astrobytes: Sign error?

Astrobytes: It looks like it wants to have less pieces than the opponent

nulte: maybe

Astrobytes: Output the values of your eval and look for strange things

Astrobytes: *values of the features in your eval

linjoehan: I finally learned some python now I can play golf

nulte: I think ill create local referee or something

nulte: just to test faster

Astrobytes: It's on my list.

Astrobytes: Anyway, out for tonight. Take care dude, and everyone else too

nulte: gn

FalINTOblivion0112: im a rusty programmer

FalINTOblivion0112: oh no not the tech lead again

FalINTOblivion0112: imma lose

Default avatar.png Menium: i am a noob programer

Zenoscave: Meta-mcts question here

Zenoscave: opening book keeps using same replies and I can't seem to change that even by changing exploration constant

Zenoscave: Any ideas?

Westicles: nobody here but us clashers