Chat:World/2021-07-30

From CG community
Jump to navigation Jump to search

Peached: and first time 2nd les go

phoenixcrow: i dont understand how all game work

Default avatar.png FleuryBoy: guys, i already beat the first bot in the spring challenge contest

Default avatar.png FleuryBoy: but they didnt upgrade my league

Default avatar.png FleuryBoy: i already battled multiple times

Default avatar.png FleuryBoy: won all my battles

KiwiTae: u need to submit

KiwiTae: your code in the arena

Default avatar.png FleuryBoy: i already did

Default avatar.png FleuryBoy: in te arena

Default avatar.png FleuryBoy: beat everyone

Default avatar.png FleuryBoy: im on top of my league

KiwiTae: nop

Default avatar.png FleuryBoy: im second

KiwiTae: you are 2points behind Benoi

KiwiTae: and whats the boss score?

Default avatar.png FleuryBoy: but that shouldnt matter

Default avatar.png FleuryBoy: because they say that the ones better than the bot will upgrade

KiwiTae: whats the boss score?

Default avatar.png FleuryBoy: less than mine

KiwiTae: how much? hehe

Default avatar.png FleuryBoy: 6 points

Default avatar.png FleuryBoy: i have 25

Default avatar.png FleuryBoy: the bot has 19,52

KiwiTae: :fearful:

Peached: finally im off 8k on clash of code

derjack: :tada:

Peached: now imma try to solve this ascii art

Peached: puzzle thing

Peached: (instant confusion)

Peached: YOO ALL OF A SUDDEN IM 5K WHAT

BlaiseEbuth: Hey there.

Peached: hai

Peached: im on a impossible clash rn it has problems so bad

Peached: imma just get 20% of it and S U B M I T

Peached: and i got 0% wtf

Peached: weirdo clasher

Peached: dawdsjdowldmadkdce

KiwiTae: time to give up

Peached: right, forgotten that opton

Peached: *presses 5th button on mouse*

Peached: how the hell do i do this potato buy or sell think i know nothing about it

Default avatar.png jedi_jkjkjk: act;;

Peached: a

Peached: imma just p w a c t i c e

Peached: lets start this wonderful ai journey of tower defence

Peached: oh no

Peached: *dies

derjack: tower dereference?

Peached: yea

Peached: my brain cant handle

Peached: imma play something more simple

derjack: onitama from the same author :v

Peached: a

Peached: wow i finally got py3 regular hahahaha

Default avatar.png UncertainLeo: amogus

astrabug: chungus

Default avatar.png JonathanBoto: pero nkita nko ako acct dati:

struct: hi

KiwiTae: o/

struct: hi KiwiTae are you still working on hypersonic?

Nguyen_SoCute: hello

Wontonimo: oi

struct: hi Wontonimo

Wontonimo: hey struct !

Wontonimo: I have successfully converted 3 CoC'ers to multis this week. I should get a badge

struct: lol nice

Illedan: :star:

struct: yesterday i sucesfully revived my c4 bot

Wontonimo: look at it, proudly high on the leaderboard. What the heck is Robo doing different?

struct: he has NN

Wontonimo: I'm a bit frustrated that I can't get my UTTT bot any higher. I'm kinda out of bullets. Perhaps a transposition table or node reuse table?

struct: node reuse?

Wontonimo: an inferior version of transposition tables, which only looks at exact board/move matches

Wontonimo: i just made up "node reuse", it's not an official term

struct: i feel like its one of those games where its hard to improve

Wontonimo: it is, for sure. it's been a crazy amount of effort to climb from 38th to 28th

struct: if I were you I would try another multi

struct: Sometimes you might get another ideas and then apply them there

struct: its what happened for me on c4

struct: I found this when I was doing breakthrough

Wontonimo: you and me are thinking the same thing

struct: then I aplied it on c4

Marchete: :notebook::soccer:

struct: :fire:

Wontonimo: are you using transposition tables for C4?

struct: no

struct: mcts solver with smart rollouts

struct: and higher rollout count than the average

Wontonimo: thanks

struct: and opening book that is book = {7} :)

struct: just 1 move for first turn

struct: cant really be called a book

Wontonimo: yeah, i saw that. It would be great if UTTT also had that steal option to balance the opening

Wontonimo: more like a leaflet

struct: Im sure if you port your uttt mcts to c4

struct: you get top 20

Wontonimo: yup

derjack: node reuse? like tree reuse from previous turn?

martinpapa69: or more like a node storage where you put back nodes you dont need anymore

derjack: node pool?

Wontonimo: in the event you've come to the same board configuration, reuse the cooresponding node in your MCTS

Wontonimo: it therefore benefits from not having to divide the learnings from rollouts between two areas of the tree

derjack: so, transposition table

Wontonimo: right, but without symmetry transformations

Wontonimo: i thought transposition tables usually included symmetry transformations

Wontonimo: or do you skip that?

Wontonimo: or is symmetry transformation usually considered "extra" on top of transposition ?

RoboStac: extra - lots of games have no symmetry but benefit from transposition tables (eg chess)

Wontonimo: excellent, thanks

martinpapa69: I've too thought about that kind of node reusage. doesn't look trivial to implement tho

struct: i would not try it on c4

Peached: hi

RoboStac: I would have thought c4 would be good for it, it has a lot of reused positions

derjack: the are not many transpositions in uttt anyway

struct: maybe, but I still think its not trivial to use with mcts

Peached: i finally got off 6k place in clash of code

martinpapa69: one thing is cool about it, it could be merget with the neural network cache. the outputs could be stored on the nodes

martinpapa69: oh, i dont even need nn cache in that case. nvm

martinpapa69: one thing i dont know if i backprock. i would be smart to count all parants

martinpapa69: and backprop to all of them

martinpapa69: so instead of having a Node* parant, having a vector<Node*> parents, and call backprop on every parent

derjack: afaik robo is using nncache in oware

derjack: well if nn stuff is expensive, why not reuse it

derjack: no transpositions in oware until endgames loops though

RoboStac: yeah, but I still have separate nodes for each state

Wontonimo: hey Peached, have you tried competing in the bot battles?

Wontonimo: Peached , do you think you could steer a pod better than these guys https://www.codingame.com/replay/572892061 ?

Peached: yea i did

Peached: im in liek bronze league rn

Peached: lemme see the link

Wontonimo: yeah, you are higher than them

Peached: yep

Wontonimo: what do you think you could do to predict that your pod is about to hit the checkpoint, and if so to target the next checkpoint?

Wontonimo: so as to drift into the current checkpoint by turning in advance

derjack: -3vel eh

Wontonimo: oh, that too

Wontonimo: but i usually try and get people to use -1vel first and have them find 3 by themselves

jrke: -3vel easy pzy top gold

jrke: top gold like top 1000 i think

Wontonimo: Peached, have you heard of -3v ?

Wontonimo: PM me if you want more details

Peached: no clue

Peached: probally shouldnt do clash of code rn and ruin my ranking imma message u

schachmatt: did the power of thor golf challenge get re-run recently?

antiwonto: why you ask?

schachmatt: my solution went from 100% to 75% without me changing anything

eulerscheZahl: and i climbed a lot of ranks

Astrobytes: Yeah I think it was rerun a few weeks(?) ago

eulerscheZahl: sometimes CG adds/changes validators to prevent hardcoding

schachmatt: ahh gotcha

derjack: checkmate!

Default avatar.png AcHik: hey

Default avatar.png TheFunkySuperstar_5f63: hello

wild: yh

Default avatar.png ericmp33: hi

Nxnn: hi

Default avatar.png ericmp33: what's this chat?

Default avatar.png ericmp33: im new

jacek: a chat

ericmp33: bruh

AlecMan: Yeah it's a chat

ericmp33: but if u ask what is this chat, u can't answer is a chat

ericmp33: is redundant

eulerscheZahl: it's a chat for the whole website

eulerscheZahl: there are others for certain languages such as #rf #ru #de

ericmp33: thanks

eulerscheZahl: and there is a discord independently from this chat

Default avatar.png ricknardo: Greetings, just a friendly reminder to stay hydrated. Please, drink wanter now if you are able to.

eulerscheZahl: uhm, thanks. my bottle is right next to me

Astrobytes: same

ericmp33: xd

dbdr: what's in your bottles though?

eulerscheZahl: tap water

AstroHydes: Also tap water for me

AstroHydes: woops, wrong window :D

eulerscheZahl: why the account switch?

eulerscheZahl: :D

ericmp33: if i drink the tap water we have here, i die in 15 days xdddd, not drinkable

AstroHydes: I'm doing stuff in this one and tabbing between them, gets confusing at times!

eulerscheZahl: is it me or is the user info on mouse-over not working?

Astrobytes: Getting the same actually

struct: in chat yeah

struct: i guess we all tried to mouse-over the same person

ericmp33: how can i check my previous solved puzzles?

ericmp33: puzzles/exercises idk how u call them

struct: go to the dificulty and scroll to the bottom

ericmp33: hmmmm

ericmp33: cant find it

eulerscheZahl: https://www.codingame.com/training/easy at the bottom?

eulerscheZahl: or did you play clashes? then you can't see it

ericmp33: i think i did both

ericmp33: thanks btw

ericmp33: in this one, when the loop breaks? like i see while true in java, but no break (https://www.codingame.com/ide/puzzle/onboarding)

ericmp33: http://chat.codingame.com/pastebin/424c9209-06e7-4930-b3e5-f237a7c13be0

eulerscheZahl: while(true) is fine here on CodinGame

eulerscheZahl: in each iteration you will read input and write output

Astrobytes: it runs as long as it receives input from stdin

eulerscheZahl: an external program will feed your code. and kill the process when it's done

ericmp33: oh

ericmp33: but wouldnt be better use sc.hasNext() in java for example? or how could i stop it?

eulerscheZahl: you don't have to stop it. CodinGame will do this for you

ericmp33: okay yeah, but was an assumption of how could i do it coding it in my machine

ericmp33: a guess*

dbdr: imagine the millions of bots still running

xxd: i have this odd issue where in CoC where the page freezes when a clash starts, i need to refresh the page to view the problem/IDE

eulerscheZahl: only Stilgart's bot refused to die at some point

dbdr: how could he tell?

Stilgart: \o

ericmp33: i solved it, just changed while (true) to while (sc.hasNext()) c:

Astrobytes: that was tricky to get to the bottom of iirc

Astrobytes: Something to do with threading?

dbdr: ssh my_bot@codingame.com

Stilgart: not my fault if CG does weird things with threads :)

Astrobytes: hehehe

Husoski: Coffee!

dbdr: error: garbage option Usage:

ps [options]


dbdr: how rude

jacek: oO

Default avatar.png ricknardo: ey guys there is any way to get back to a past clash to finish it in your own?

jacek: no

jacek: you can try to find it https://eulerschezahl.herokuapp.com/codingame/puzzles/

Astrobytes: https://eulerschezahl.herokuapp.com/codingame/puzzles/

**Astrobytes is a slowpoke

Default avatar.png ricknardo: thanks guys

Default avatar.png ricknardo: ive found it

Astrobytes: :+1:

jacek: :tada:

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/b1b968c3-ed1d-4151-a870-c46f0e01c5b8

aetrnm: Oh Astrobytes, you are still alive UwU

Default avatar.png Maxim251: Please read that, There is question wht array cant be initiate

aetrnm: Haven't been for 3 month on a website

Default avatar.png Maxim251: If I want initialise "MARK place[3][3] = { none};" then why I get wired output?

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/42875bdb-7a16-4ab3-a59c-379b8afbc05d

ANONYMOUS42: is that in C?

aetrnm: If it's C, then None with capital, but I am note sure whether it exists in pure C...

struct: thats how it works

struct: if you do int arr[6] = {1};

struct: only the first 1 will be 1, rest will be 0

struct: which is the default value

Default avatar.png Maxim251: C++

struct: you can do enum MARK {none, X, O };

struct: then 0 will equal none

Astrobytes: ^

Astrobytes: that will work, anything else you risk garbage

Default avatar.png Maxim251: Thats wired, I always was sure that it will initiate all array

Default avatar.png Maxim251: @struct yeah, I think this could be easy solution, is good that is initializing with 0 value and not mess leaved from memory.

Default avatar.png Maxim251: Now I know, to never again do it like this int value[8][8] = {3}; and I will do it manually from for loop

struct: for loop works

jacek: does it work for other things?

Astrobytes: 'other things'...

jacek: other than loop

Astrobytes: hm?

Astrobytes: what do you mean?

jacek:

jacek: ok ill shut my mouth :no_mouth:

Astrobytes: were you trolling?

jacek: no

Astrobytes: do you mean the {} initializer syntax?

Astrobytes: Oh well. Unexplained questions never get answered :P

jacek: initializing 2d array with {} is more tricky no?

juice0: you have to do {{}} right?

jacek: i think so?

Astrobytes: For anything other than 0 value it's safer to use a loop

Astrobytes: There are ways

Astrobytes: But it depends what you want the value to be

Astrobytes: iirc memset works for 0 or -1, anything else needs a loop

juice0: yep i do Template:0 with maximum confidence for me, which is about 1%

aetrnm: *int arr[6] = {1}; only the first 1 will be 1, rest will be 0 which is the default value* Values that are not defined can contain garbage, which is rare, but can happen. For newbies such a details are important, as it is a basis for understanding of evething

Astrobytes: Yeah, I would definitely recommend looking into memory allocation and memory in general, since it fundamental for arrays

aetrnm: Tbh, I have been solving programming tasks with C++ for 3 years so far, and I am always using vectors. Even though they are slower, if you don't want to fk brains with memory, it's really a good option, especially because Codingame does not have 1s time limitation

Astrobytes: It's different when you're doing bot programming

Astrobytes: I mean STL vectors are fine if you reserve the size and don't change it

Astrobytes: but when you have 50-100ms per turn and no command line optimization, you have to use the pragmas

Astrobytes: and sometimes arrays too

Astrobytes: implement your own vector class or whatever

aetrnm: Nah, once I tried to override standard vector in C++, according to my task, that was crazy

aetrnm: Just C++ is not for everyone :)

Default avatar.png Maxim251: I have another problem, in Montecarlo tree search, I have base class on wich I will generate child class, in my mind is like multiverse in LOKI series in Avengers, My question is that when I create obiect in side obiect, it will happen for ever. How I can limit that, or how I can track multilayer arrays of class?

jacek: you have nodes in your node class?

Astrobytes: You may be overcomplicating things a little

Astrobytes: @Maxim251

Default avatar.png Maxim251: That class is a node, but this node is base node, because I am create it, but in side that class I want create copy of its one, where will create copy of that board and fill up next choice.

therealbeef: sounds like composite design pattern

Default avatar.png Maxim251: that class is... I try explain as easy as posible how I try desighn that class...

Default avatar.png Maxim251: struct MAP

Default avatar.png Maxim251: create board[3][3];

Default avatar.png Maxim251: vector< pair<int, int>

jacek: time flies eh https://img-9gag-fun.9cache.com/photo/axMex3n_460svav1.mp4

Default avatar.png Maxim251: as avaible moves

Astrobytes: Right, so you have a Node class. Your root node is an instance of that. From there you expand that node - you give it children, more instances of that same Node class, who are created from applying available moves

Default avatar.png Maxim251: yes...

Default avatar.png Maxim251: I never do that previously, and I am bit confused how I should do that...

Default avatar.png Maxim251: I know that clas should contain whole logic to figureout next move and if is win or lose

Default avatar.png Maxim251: Or do I need move all functions out side of node class and inherit them apart?

jacek: logic is done outside the class

Astrobytes: ^

jacek: class is has just state/move, wins/ visits, children and optionally parent

Default avatar.png Maxim251: Do someone can help me in C++ ... help me write base code? On private chat, that I will get glimps of how that desighn should look? Because now I feel like I go thru black room,

sapfeer0k: the website's js is broken.

sapfeer0k: Possibly unhandled rejection: {"id":-2} undefined in browser console

Default avatar.png Maxim251: I want learn Montecarlo tree search on Ultimate Tic-Tac-Toe because board is small and I think it will be easier to me to understand

Astrobytes: http://chat.codingame.com/pastebin/c565ae3d-f476-45cc-9730-7c94b761f7e0

Astrobytes: there is a naive example

Astrobytes: Maxim251: I would try to learn it on regular TicTacToe first

Default avatar.png Maxim251: Ok, then I go first there, if I found...

Astrobytes: We don't have it on here, other than a puzzle version. But it's easy to code by yourself

Default avatar.png Maxim251: Ok, logic it self is easy . But that game give me 2 moves of O, and my answere should be where is the winning move, But I need something to start from scrach using Montecarlo, like Othello game, where I try use old fashion code. And I get only 111 in ranking, and i think others was using tree search to predict future moves.

Astrobytes: I am suggesting to code tictactoe and use monte carlo tree search to play it.

therealbeef: the wood league of UTTT is regular tic tac toe, no?

Astrobytes: Hm yes, I think so

Default avatar.png Maxim251: Yes, I have wood tictactoe only 1 board... Thats why I did not write simple code to pass wood league, and thats why I want learn tree search on that simple board.

therealbeef: good idea

Astrobytes: Yes stay with the simple board

Default avatar.png Maxim251: In othello board is to big, and I leaved that , because I want first learn how code tree search.

Astrobytes: have you learned minimax w/ alphabeta pruning, and even random (monte carlo method, no tree) searches?

jacek: start with the simulation: board state, list all available moves, makeMove, undoMove, isGameOver, getWinner

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/7b54a29e-533d-4f45-a8e8-0ce3d1fb8476

Astrobytes: Are you familiar with tree data structures in general?

Default avatar.png Maxim251: NO

Astrobytes: OK, well I'd get learning about binary trees first and work your way from there. It will help a lot

Default avatar.png Maxim251: ps, I know that node should contain array? Because board have 9 fields, and each choice begins from diferent field?

TobiasA: what is the largest depth you guys have ever used for minimax on coding game? that actually works?

jacek: i think i had around 14 in oware when using negamax

jacek: and more near endgame

Astrobytes: No idea. Mostly I use iterative deepening, I don't always check the depth

TobiasA: 14:fearful:

TobiasA: i see

jacek: welp there are at most 6 moves

Astrobytes: and higher yes, depends on pruning tricks and other search techniques

TobiasA: that means it is me who is doing something wrong

Astrobytes: which game?

TobiasA: depth of 1 times out for me

TobiasA: tron

Astrobytes: You're doing something wrong

TobiasA: mhm

Astrobytes: Maybe another game is better to try minimax first

TobiasA: any suggestions?

Default avatar.png Maxim251: ok, I have node based at using pointers and 'new' key word

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/c3be42ae-afcc-427d-8982-b427960d8bb9

Default avatar.png Maxim251: But when I think about it, there should be posible to use vector?

jacek: depth 1 timeouts? then it is likely some crash

Default avatar.png Maxim251: vector will alowed me to iterate from all instances in simpler way.. I am going in good direction?

Default avatar.png Maxim251: This site show me basics how manually create tree of nodes, https://www.geeksforgeeks.org/binary-tree-set-1-introduction/

Default avatar.png Maxim251: how I can create automatycally growing node untill some rulls will stop it?

Astrobytes: but have you practiced that?

Default avatar.png Maxim251: To practice, first I need to know how do it, other wise I will code blindly and waisting a lot of time, where at the end it will be so simple...

Default avatar.png Maxim251: I dont want lern it in hard way, thats why I try ask You gus for help

Astrobytes: Sorry but you really need to learn the basics of building tree data structures

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/0794f50d-801c-4348-8b22-26f6564fc74d

Astrobytes: there's no quick fix

Default avatar.png Maxim251: this is simple. But I never do auto growing node,

Astrobytes: afk, back later

Default avatar.png Maxim251: This link show manually creating tree, like: node = create node, node->node->node->node = create new node.... In auto growing node this type is without sense... And function to create node should be in side of that node,

Default avatar.png Maxim251: then I will get problem, how to prevent to growing tree for ever,

Default avatar.png Maxim251: Also coming to my head is problem of counting deph,

Default avatar.png Maxim251: My aproach was something like this:

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/857166e6-284e-43ae-ba7f-419bf648e4a4

Default avatar.png Maxim251: This aproach will be good?

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/cfbf62a2-2895-4f1d-b924-8948128d12bd

Default avatar.png Maxim251: I try play with nodes, And happly I get what I want, but more interesting is that output what I get is something what I was suprised.

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/e5ad8b1c-40fd-4a1e-90ce-9d0ee07fef09

Default avatar.png Maxim251: This line is very interesting, left = new Node( layer ) Is creating new nodes until reach desire amount, and then next line is outputted, Is going in oposite direction

Default avatar.png Maxim251: Output looks like that :

Default avatar.png Maxim251: http://chat.codingame.com/pastebin/027db5c2-2da4-40d7-84e6-499d0954869d

Default avatar.png Mochlek: so

Default avatar.png Mochlek: how is your life

jacek: :upside_down:

Default avatar.png Maxim251: By accident now I know to make all logic before creating next layer, and use that last line to return interesting me value? Or I can do logic after creation of node, but that will happened bacuard?

Default avatar.png Maxim251: Ps, I should use also delete ? because I use pointers and new keyword/

Default avatar.png Maxim251: ?

struct: usually you do

struct: but on cg I dont use delete

struct: I create a memory pool for the nodes

struct: and then use the nodes in that pool

Default avatar.png Maxim251: I was just reading about chunk alocation... I think I understand how You use in Your code... Hmmm... Interesting aproach.. Rather to delete every seccond 1 node, You delete whole chunk at the end... Do I am corect?

Default avatar.png Maxim251: sorr, memory pool

struct: yes when program ends

struct: This is used mostly for performance reasons

struct: at least here

struct: If you are starting to learn how to program

struct: You dont need to do this

Default avatar.png Maxim251: Only problem is that when I want create size for my nodes, I need first know how many of my nodes will be sored, ?

struct: yes, usually I store like 40'000'000

struct: I never end up needing all of them

Default avatar.png Maxim251: Yes, of course, is good to know that stuff...

Default avatar.png Maxim251: :blush:

Default avatar.png Maxim251: Its like array and moving 1 pointer in fixt amount of bits

Default avatar.png Maxim251: uff, Thanks for help, now I understand how create tree of nodes. :)

Default avatar.png leechmanz: im back!

BENTALLAH: .

Default avatar.png Proktophantasmist: nice

Gameonn: Hey guys, I am looking for a job in reactjs. Can anyone share some references?