Chat:World/2020-07-02
tiwariji264: hi
mandajm: Salut
TheZombiePony_36a9: dance to this bitch if u gang bang
TheZombiePony_36a9: i dont give a fuck if we dont bang the same thing CRIP
TheZombiePony_36a9: duh aint fookin wit members FR FR
KrasserTyp: oi m8 u talkin smack rn fr
KrasserTyp: u rly wanna be fightin rn?
TheZombiePony_36a9: 1 thang an am pullin up wit da cripz no cap
KrasserTyp: imma bust yo ass eZ clap, no kap
TheMightyChild_7770: yo krassertyp
TheZombiePony_36a9: wie findet man den chat? bei meim main gehts nicht
TheMightyChild_7770: durchn wandschrank
KrasserTyp: in my crib, we dont talk shit like dat
TheZombiePony_36a9: fr jetzt ich kann auf meim main nicht aufn chat xD
Uljahn: AutomatonNN: moin
AutomatonNN: eulerscheZahl is there a way to see a replay of your code
crix443_13LOOD_1N_13LOOD_OUT: tryhards
crix443_13LOOD_1N_13LOOD_OUT: driveby wit da choppa rrrrrre re
crix443_13LOOD_1N_13LOOD_OUT: :skull_crossbones:
crix443_13LOOD_1N_13LOOD_OUT: gang gang 4 life
crix443_13LOOD_1N_13LOOD_OUT: do tha crip walk
crix443_13LOOD_1N_13LOOD_OUT: do tha crip walk
crix443_13LOOD_1N_13LOOD_OUT: do tha crip walk
crix443_13LOOD_1N_13LOOD_OUT: do tha crip walk
crix443_13LOOD_1N_13LOOD_OUT: do tha crip walk
crix443_13LOOD_1N_13LOOD_OUT: do tha crip walk
crix443_13LOOD_1N_13LOOD_OUT: :bomb: u finna die tonight
oetzi: you dont have to, belive me
mattnguyengit: very easy for my very old professor
jacek: good afternoon
tanmaycodernovice: @rafaelSorel bro help
rafaelSorel: help ?
rafaelSorel: code shared
000918881337: What a funny website this is
caubeloatchoat24: Hello y
caubeloatchoat24: https://www.codingame.com/clashofcode/clash/1278437a1be34fc1c4b10efbad165e1263bd213
caubeloatchoat24: Let clash bro !
000918881337: okay bro
leduyquang753: The wait time for a clash to start is usually longer than the time in-clash itself LOL.
HelloWorld183L: hi guys, I'm confused with the ASCII Art puzzle because it gives me the widths and heights of the letters as input, but it claims that all letters are the same height and width. What is the point of these inputs if they're meant to be the same (or is it meant to be the heights and widths of ALL letters in the input)?
jacek: its per input
jacek: different test case will have different width and height
HelloWorld183L: ah right, thanks for clarifying
jacek: i think i invented new game tree search
jacek: jacekmax
dbdr: it's the fashion, jacek :D
dbdr: what does it do?
jacek: no really, whats im using for othello isnt minimax nor mcts
Astrobytes: prune array?
jacek: it mostly resembles mcts w/ 0depth ept
jacek: but i expand every children, make eval, then backpropagate eval to parents in negamax way
dbdr: negamax backprop in MCTS is not new
jacek: oh?
jacek: i have no rollout, no 'score', only eval and visits
MSmits: thats what I do in Oware and Onitama jacek
Astrobytes: ^
jacek: so its nothingn new? :scream:
Astrobytes: (but Smits' is better than mine :P)
MSmits: nope, but dont feel discouraged, it's pretty cool if you came up with that on your own
MSmits: i didnt
MSmits: but, read more of my spamwalls, saves some time :P
MSmits: i guess you can look them up now that chat is saved
jacek: i thought you were talking about replacing rollout with just eval
MSmits: what is the difference?
jacek: nothing about backpropagating negamax way
MSmits: oh I see
MSmits: you're right that is somewhat different
MSmits: but also not new, i've read about that
MSmits: you need to be careful with the horizon effect
MSmits: if depth varies
dbdr: depth always varies in MCTS, no?
MSmits: yeah, but his is not mcts
MSmits: he's doing a minimax backprop thingy
dbdr: it's a mcts variant
MSmits: not exactly though
MSmits: he's overwriting scores, not adding up
dbdr: the depth variation comes from the exploration
MSmits: with mcts the node gets multiple scores backpropagated to them and they average out to a bad or good value
MSmits: he does a negamax backprop thingy and keeps the best/worst scores in minimax fashion
MSmits: horizon effect might be much stronger in that case
dbdr: the depth variation comes from the exploration
dbdr: backpropagation is othogonal
jacek: yeah, horizon effect, my bot is stronger against strong but weaker against the weak
MSmits: what i mean is, eval goes up and down hard depending on whose turn i tis
MSmits: if you backprop with ordinary mcts, this averages out
jacek: odd-even effect
MSmits: yes
MSmits: i am wondering how this affects your backprop
MSmits: you can include "who's turn it is" in your eval
MSmits: mitigate this effect
voidasi: http://chat.codingame.com/pastebin/a4431c3d-4b7a-49d1-bcee-3f54f8e507bf
MSmits: thanks voidasi
MSmits: now he's spamming me emotes :P
jacek: hm?
MSmits: it's what I get for responding to the troll
dbdr: you got yourself a fan
MSmits: yep, they are all positive emotes though
MSmits: if I want to feel happy, I can just click on his tab
MSmits: just finished converting my oware endgame DB
MSmits: 4 GB
MSmits: hope there's no bugs :P
dbdr: wow
MSmits: took 30 mins to generate in C++, then an hour to convert to something I can put in a C# persistent dictionary
dbdr: fixed number of seeds left?
MSmits: yes, 15
MSmits: any more than that and I get RAM-issues
jacek: 15 seed left solved?
dbdr: nice
MSmits: yeah
dbdr: now fit 4GB in 100K chars ;)
MSmits: I did this taking the 200 turn limit into account btw
jacek: how many states is that
MSmits: otherwise it's actually harder due to loops
MSmits: lemme check
dbdr: so how do you plan to use it? for meta-mcts?
MSmits: 17383859 * 180 turns
MSmits: so 3 billion
jacek: i wonder if you could use supervised learning for NN for the endgame. you get perfect labels for endgames
MSmits: dbdr yeah meta mcts
jacek: and NN would 'compress' that
dbdr: lossy compression
MSmits: jacek, I suggested something similar to re curse before
MSmits: just using the meta mcts states for supervised learning
MSmits: so not exactly end game, but similar
MSmits: he said it wouldnt work
MSmits: dunno why, he didnt explain
dbdr: he's using it now and doesn't want you to ;)
MSmits: hehe maybe, he doesn't lie I think though, just keeps some things to himself :)
MSmits: which is fine
dbdr: yeah, that's reasonable
dbdr: lying would be very unethical
MSmits: i can't really do that. I can barely keep things to myself
MSmits: this meta mcts is messy though. I am using 3 different trees
MSmits: top tree which is meta mcts, middle tree, which is my bot, then bottom tree which is the end game db
MSmits: i guess that would work for any game which converges and has a fixed start
MSmits: think this is how they solved checkers also
dbdr: yes, they use endgame DBs
MSmits: yeah, up to 10 pieces I think
MSmits: crazy big end game db
MSmits: btw dbdr, as for coding it into my oware bot. I do have a endgame db, but it's not hardcoded. I generate it in the first 1 second.
MSmits: just 6 seeds
dbdr: yes, had to be smaller :D
dbdr: still nic
dbdr: nice
dbdr: does it make a big difference?
MSmits: yeah, it helped a little bit i think, didnt hurt at least
MSmits: sometimes I see re curse or another NN actually make a mistake according to the DB
MSmits: i will draw a game i should have lost
MSmits: or something like that
MSmits: 6 seeds can be hard to solve still, because of the infinite loops
MSmits: also I don't think they have a solver
MSmits: and if they do, it just goes a few layers deep
Hjax: hello everyone
MSmits: hi
Hjax: https://www.codingame.com/replay/475427702 the boss timed out
Hjax: that doesnt seem good
MSmits: darkhorse did say he had a timeout bug and he fixed it
Hjax: can the boss be updated
MSmits: probably
MSmits: how often does it happen\/
Hjax: not very often
Hjax: it just seems like something that should never happen
MSmits: well i always get *some* timeouts due to timing inaccuracy on CG servers I think
Hjax: i only search for 100 of my 150 ms
Hjax: because i time out otherwise
MSmits: wow that's a big buffer
Hjax: i get huge GC pauses
Hjax: which kill me
MSmits: mmh you can try and use an object pool to avoid GC?
Hjax: when i tried that it was super slow
Hjax: like, 1/5th the speed
MSmits: how is that possible?
MSmits: you sure you did it right?
MSmits: it should not be slower
MSmits: unless java does something weird
Hjax: java does many things weird
Hjax: this is why im trying to port to rust
MSmits: but I mean... an object pool is generated before the game starts
MSmits: after that you're just referencing it
Ashraful: Why rust over python?
darkhorse64: For the boss, I removed the solver. The timeouts I had were related to pass moves. This is not the case in the replay. I set my time limits very high 1000ms/150ms. May be a hiccup.
Hjax: Ashraful python is horrifically slow
Hjax: and yeah thats what i did MSmits, im not sure why it was so slow
Hjax: java has to chase more references around i guess
MSmits: Ashraful: Python = fast development, slow program. C++ or Rust or similar = slow development, fast program.
MSmits: speed is not always important. But for multiplayer arena's it often is
Hjax: fast development fast program when?
MSmits: never ?
Hjax: :(
MSmits: It helps if you're really good with rust I guess
MSmits: skill also speeds up development
Hjax: yeah rust seems like its possible to develop somewhat quickly in if you are good at it
MSmits: well faster than in C++ no doubt
MSmits: c++ is a horrible language
Hjax: closures are really powerful, and lots of safe guards to prevent you from doing stupid stuff
MSmits: as long as the safeguards arent slowing you down
Hjax: become one with the borrow checker
MSmits: whats that
Hjax: the bit of rusts compiler that enforces the ownership rules that make rust safe
MSmits: ah ok
Hjax: new rust developers (like me) get into fights with it
MSmits: thats ok, as long as you win
eulerscheZahl: yay, no more CoC invites!
tomatoes: :tada:
Hjax: i see euler has already changed his status
eulerscheZahl: :P
Hjax: did automaton actually call you a noob?
eulerscheZahl: yes, do you think my new tagline is a lie?
eulerscheZahl: AutomatonNN what's your memory on this?
AutomatonNN: game is something to do
Hjax: AutomatonNN is euler a noob?
AutomatonNN: efficiency to work with a hard time to use contest code
Hjax: wow it didnt even ping you
Hjax: maybe its reformed
eulerscheZahl: it got some updates
eulerscheZahl: initially it pinged me in 1 out of 4 sentences maybe
boinkus: why does js do this to me
boinkus: Found: "-0" Expected: "0"
icecream17: Technically, -0 has a different "signed bit" than +0....
boinkus: yeah but i want to die
Hjax: thats not true for twos complement binary numbers
Hjax: which is the representation most (all?) programming languages use
Hjax: do floats use a sign bit?
Hjax: i guess its true for floats, not for ints
eulerscheZahl: CG is just comparing by characters, not actual values
icecream17: https://en.wikipedia.org/wiki/Floating-point_arithmetic
icecream17: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
I guess javascript uses the system usually called "double" in Java or C# (because it says)
boinkus: man idk anymore I found a way around it tho
icecream17: that's nice
icecream17: wow that sounds ridiculous =D
icecream17: don't know why im smiling
struct: hello
icecream17: oh no
MSmits: :scream_cat:
icecream17: my input is bad and i dont know why
MSmits: :crying_cat_face:
icecream17: http://chat.codingame.com/pastebin/91b88c9b-c176-4723-a908-3fba63dcedd2
icecream17: Oh I figured it out now
MSmits: why would the opponent input be "oh wait" ?
icecream17: no no no lol
icecream17: ah. i see, i output '1 ' + sorted.join(' 1 ')
icecream17: Yes! I'm gonna beat wood 2!!!!
Ashraful: Search on google "Bangla meaning of huga"
icecream17: hmm. i've never heard of bangla or huga...
struct: Hjax where is the rus t bot?
struct: tomatoes what are you currently using?
Hjax: the rust bot will be done when i understand enough rust to finish it
Hjax: this weekend probably
Hjax: i didnt feel like working on it last night
tomatoes: mcts with evals
icecream17: everyone's spawning in exactly the same place as me =/
Ashraful: Everyone is spawning on huga
tomatoes: not sure what's important and how much
tomatoes: eval kinda manually bruteforced
jacek: thats minimax :v
tomatoes: but it has ucb1
jacek: then tomatomax
struct: so you go to certain depth and eval?
Astrobytes: minimato
Hjax: i think tomatoes is doing 0 depth evals now
Hjax: just replaced the rollout with the heuristic function
DiL: hi! disableChat is back! very apreciated! :-)
tomatoes: yes, and eval normalized to -1;1 and used as wins
tomatoes: somehow it works
Hjax: yeah i normalized to 0/1
Hjax: i was wondering if its better to not normalize, and convert to some win %
Hjax: to make the algorithm favor paths that give bigger heuristic scores
Astrobytes: Oware all over again
jacek: well it starts with o
jacek: as well onitama
Astrobytes: Still to do Onitama
MSmits: oltimate tic tac toe
Astrobytes: ffs lol
tomatoes: ucb skewed without normalizing
MSmits: the exploration parameter can be used to normalize any score
MSmits: the only reason to do something like this inside the eval is to cap the score so that it doesnt go out of hand in some specific situations
tomatoes: i also have preffered and penalties there :expressionless:
tomatoes: which decrease over visits
MSmits: ah yes, well you'll need 1 less parameter than you have terms in your UCB
MSmits: one can be 1, the others can be fitted
MSmits: no point to having a constant in front of all of them
tomatoes: and there is almost no random with eval, hard to bench locally vs old version
Hjax: tomatoes you beat me in ide
Hjax: with 3k playouts
Hjax: :(
tomatoes: and i hardcoded first turn and set first to 2s
tomatoes: no need to explore other
struct: do the 2 sec help anything?
struct: or would 1 sec be neough
struct: I just added it because Im bad and 1 sec isnt enough time for me
Hjax: its nice for tree reuse
tomatoes: initialization is very fast, almost all 2s are usual mcts stuff
jacek: yay for lucky oware resubmit
Nazrul: okay, got it
Astrobytes: nice jacek
Spacekiddx: Any resource for learning DFS? anyone?
jacek: https://www.geeksforgeeks.org/depth-first-search-or-dfs-for-a-graph/
Spacekiddx: Other than "geeksforgeeks"?
JBM: oddly specific requirement
JBM: what other reasonable resources should we exclude?
Astrobytes: CLRS. Definitely don't consult that tome.
PatrickMcGinnisII: othello is being pain in my butt. I can only get 3k nodes somewhere in the middle of depth 5 before timeout
Astrobytes: Add an eval
PatrickMcGinnisII: and it plays horribly compared to my board score (no deepth) evaluator
Astrobytes: Use that eval at depth 4 and backprop it
Astrobytes: Or write in C :P
PatrickMcGinnisII: White is Arena code (0 depth), black is min/max w/ max nodes at 2,837
PatrickMcGinnisII: https://www.codingame.com/replay/475457018
Astrobytes: Oh sorry, I thought you were doing MCTS
PatrickMcGinnisII: depth 4 @ 1,144 nodes still loses https://www.codingame.com/replay/475457481
Astrobytes: Well, something is wrong
PatrickMcGinnisII: min/max might work at late game, but decisions in early mid game might as well be random
struct: minmax depth 4 should always beat depth 0
Astrobytes: https://www.codingame.com/replay/475457734
Astrobytes: a/b minimax depth = whatever it reaches
Astrobytes: You may be evaluating the wrong things, or evaluating the right things wrong
jacek: or evaluating wrong things right
PatrickMcGinnisII: yea, i think my board scoring is a little wonky
PatrickMcGinnisII: but its not getting deep enough
PatrickMcGinnisII: so i guess I'll see how many i can get at MC
Astrobytes: There's a guy in Wood 1 who had depth 4 minimax and was top in Wood 2
jacek: plot twist: its aztrobytez
Astrobytes: Nope
PatrickMcGinnisII: I've optimized the board and move finder routines ... i don't think alpha-beta is gonna get me any better
Astrobytes: So don't give up on it Patrick
Hjax: yeah if alpha beta is making your bot worse, you have a bug
jacek: passing moves error?
PatrickMcGinnisII: no was trying to think of new diresction...min/max is failing... I'll redo the eval, I'm using a weighted board
Hjax: if your eval at depth 1 wins games, then minimax at depth 4 should win more games
Astrobytes: You can use the weighted board but definitely 100% don't make that your only eval
PatrickMcGinnisII: Hjax I would think so too, hmmm
PatrickMcGinnisII: I'm using a 16x8 board to weed out the movefinder better
Hjax: wut
PatrickMcGinnisII: eg. if (($bindex&136)^0) break;
PatrickMcGinnisII: http://citeseerx.ist.psu.edu/viewdoc/download?rep=rep1&type=pdf&doi=10.1.1.144.543
PatrickMcGinnisII: page 30
Hjax: hmm, i see
Hjax: my movegen is just dumb7fill https://www.chessprogramming.org/Dumb7Fill
Hjax: i mask off the edges from the propagator when doing horizontal directions
Astrobytes: ^same
PatrickMcGinnisII: tx for showing u kicking my ass Astrobytes
Astrobytes: PatrickMcGinnisII osrry bud, just to remind you not to give up on alpha beta ;)
Astrobytes: *sorry
PatrickMcGinnisII: it works for all directions
Hjax: i love how these bitboard things end up with magic numbers that you would never see otherwise
PatrickMcGinnisII: don't be sorry i was actually thanking you, it shows me that i give up corners too easily
Astrobytes: Yup
Hjax: how else would i encounter a number like 9114861777597660798
Hjax: which is essential to my move gen
PatrickMcGinnisII: i started with 8x8, but too many comparisons
Hjax: 8x8 is nice, fits in a nice 64 bit long
jacek: jacekmax is ridiculus
Astrobytes: You're used to bitwise manipulation Patrick, you'll love bitboarding
jacek: some tweaks in eval + jacekmax = profit in onitama
Astrobytes: Aha, going round updating all your bots eh jacek :)
PatrickMcGinnisII: I am wasting storage 3k nodes take up 768k at 1 byte per cell
jacek: this shit works and i dont know why
Hjax: its very convenient that theres so many 8x8 board games, nice and processor friendly
Astrobytes: Don't question it jacek
PatrickMcGinnisII: but i timeout before hitting mem max
jacek: well thats the essences of machine learning eh
Astrobytes: Indeed
Hjax: add enough constants and tweak them by hand and you have a really crummy neural network :D
Astrobytes: more of a neurosis network by the time your finished tuning by hand :P
Astrobytes: *you're
PatrickMcGinnisII: mcts has got to be better, if i dump everything into 3 stacks and cut the OOP, maybe i can get 20k sims. Who's doing MC, how many u get?
Hjax: me, about 10k in java
Hjax: about 30k with EPT
Astrobytes: OOP? What for?
PatrickMcGinnisII: if i drop the node class structure
PatrickMcGinnisII: really kills cpu cycles in php
PatrickMcGinnisII: EPT = GA?
tomatoes: some sort of procrastination, tuning constants again and again instead of doing something useful
tomatoes: happened in pacman's
Astrobytes: That's a familiar story tomatoes :)
tomatoes: ept = early play termination
Astrobytes: PatrickMcGinnisII: EPT = early playout termination
PatrickMcGinnisII: google, wth - EPT= Emerging Pandemic Threat
PatrickMcGinnisII: WTH
Hjax: i make 6 random moves, and then just return the result of an eval function @PatrickMcGinnisII
Hjax: it made my program considerably stronger than full random rollouts
Astrobytes: (within an MCTS framework that is)
Hjax: yes
PatrickMcGinnisII: well at least I'm pinching those in the top 10 for info. ;)
jacek: so the entire league?
Hjax: big benefit of multis over contests
Hjax: people dont keep as many secrets
tomatoes: https://www.codingame.com/share-replay/475376559 47-48
Hjax: fox blundered?
tomatoes: maybe bot shouldnt give up when solved for opponent :thinking:
tomatoes: solved for his win, but then he made mistake
Astrobytes: Yeah, don't assume perfect play
jacek: *game theorists triggered*
Astrobytes: :)
jacek: hmm hmmmm
jacek: i had this game->makeMove(moves[moves.size()%rand()]);
jacek: can you spot the thing?
Hjax: shouldnt it be rand()%moves.size()
tomatoes: swap
Astrobytes: lol
jacek: yes
jacek: but it didnt crashed or anything. just some garbage board
Hjax: i like how me and tomatoes point out the mistake
tomatoes: last
Hjax: and Astrobytes just laughs
Astrobytes: It's jacek, ofc I must laugh
dbdr: lol
tomatoes: or not last. next after :thinking:
Hjax: its amusing that C++ will happily just go off into memory somewhere and send you whats there
Astrobytes: 'cause you told it to!
Astrobytes: It's a feature :sunglasses:
eulerscheZahl: python is boring, no fancy memory access at random locations
Hjax: how about a more fun variant, a language that automatically takes % length of your index
Hjax: then youd never go off the end
Hjax: youd just get the wrong value from your array, and spend hours hitting your head against the wall
eulerscheZahl: Java2K is fun
tomatoes: its useful, but not auto
eulerscheZahl: only performs your commands with a certain probability
Hjax: lol, havent heard of that one
Hjax: what does it do otherwise?
eulerscheZahl: no idea
eulerscheZahl: functions returning incorrect results it seems
Astrobytes: So you have to write your program to account for the fact that everything you call might be wrong. Hmm.
Astrobytes: Intriguing exercise.
Hjax: "The language uses a base-11 number system to approximate base 10"
Hjax: oh no
Astrobytes: Grim.
dbdr: exercise: what's the distribution of N%(rand()%N) ?
tomatoes: error and 1..N-1 :thinking:
Hjax: i would a script to test
Hjax: wrote*
Hjax: and i have no idea what this result is
jacek: i bet it has something to do with modulo vias
jacek: bias even
eulerscheZahl: dbdr asking almost the same question that i was asking myself :D
eulerscheZahl: i was thinking about rand() % rand()
PatrickMcGinnisII: dbdr only uniformly distributed in Java ... everything else g/l
Hjax: so i wrote a script to count how many times each result of 100 % i comes up in range 100
Hjax: and i got a sequence ive never seen before
Hjax: and it isnt in the oeis
tomatoes: rand % rand should be some gradient i think
PatrickMcGinnisII: mind the gap https://www.youtube.com/watch?v=_YysNM2JoFo
struct: dbdr do you still have any plans for othello?
MostComplicatedUsername: Why does no one have a cotr bot?
POWERHAWK: Good morning
something_ok: :kissing_smiling_eyes:
Crypticsy: hey, anyone is willing to give my puzzle a try? It's been in the contribution section for 12 days now and has only upvotes with no approvals
https://www.codingame.com/contribute/view/5140c0ddef4c6cac9083c94a8aa02626bf7d
LelouchVC2: An easy puzzle shouldn't be so wordy.
LelouchVC2: I don't think it would be hard to code, just hard to get to get through the description
LelouchVC2: Those upvotes are going to be people who saw it and thought it might be a cool puzzle, but, like me, weren't really interested in coding it
MarlynMatematico: how
thienok: Come from Viet Nam ? tell me know