Chat:World/2021-06-16

From CG community
Jump to navigation Jump to search

Default avatar.png Codify: Hey Westicles! I resemb..er...I resent that remark!

Default avatar.png micheealjackson: hey, i want to remind you your yogurt isn't tasty at all

Default avatar.png charlie_79: .

derjack: :upside_down:

sprkrd: guys guys guys

sprkrd: I know this isn't practical for codingame

sprkrd: but wouldn't it be fantastic? https://www.kfchess.com/

sprkrd: :joy: :joy:

ableflyer: that's a pretty interesting idea

ableflyer: ngl

derjack: nice

sprkrd: now that i think about it, it could be practical :thinking:

sprkrd: maybe at some point i'll dust my java compiler and create a multi during the summer, could be fun

derjack: dont dust your compilers

sprkrd: why not?

Default avatar.png raiz_rizon: WORK

Default avatar.png raiz_rizon: :sunglasses:

Haramaru: hello

5alid.js: Hi

5alid.js: is there anyone who knows javascript and wants to play coding escape with me?

5alid.js: https://escape.codingame.com/game-session/LMT-F1j-zAs-Lnp

5alid.js: https://escape.codingame.com/game-session/LMT-F1j-zAs-Lnp/in-game

5alid.js: this one: https://escape.codingame.com/game-session/GyB-ulW-5ta-cYn

DarkLord__28: :smirk:

AntiSquid: that's quite a bit of spam mate, you probably have more luck going to discord in the escape room channel and ask there 5alid.js

AntiSquid: but then again you'll have an easier time with friends

PanGami: :smiley:

Hackercodehp: hi

Hackercodehp: Guys

Default avatar.png dsmlih: k;>>

Default avatar.png FallenWings: @5alid.js are you planning to start this session?

5alid.js: which one?

Default avatar.png FallenWings: the escape room

Hunter64TheOne: #fr

Hunter64TheOne: #jn

Hunter64TheOne: #jp

kyoya34: hello guys

theonlyjt: #Clash

Wontonimo: hey sprkrd, i don't know how your could implement chess without turns in CG, but you could play around with something like energy point budget per turn and a limited ability to accumulate unused energy

derjack: there are simultanous games on CG no?

Wontonimo: yes there are simultaneous games. is that all kfchess is? I thought it was more than simultaneous, it was free-for-all

derjack: i think this could be made as simul game with multiple possible moves per output

derjack: and cooldown lasting for few frames

Wontonimo: that sounds good

Wontonimo: i have no idea what algo would work well with that. the branching factor would be super high

Wontonimo: all pieces not needing cooldown could move at once

eulerscheZahl: let's call them pseudo-simultaneous. The bots are still executed in sequence, even if their actions are applied on the same turn

MiyamuraIzumi: don't understand what game are you talking about?

MiyamuraIzumi: a new idea?

Wontonimo: it's not a game yet. just an idea

derjack: :panda: :cheese:

MiyamuraIzumi: oh

MiyamuraIzumi: I see

derjack: https://www.kfchess.com/

derjack: how this could work on cg

Wontonimo: sprkrd mentioned he's interested in implmenting https://www.kfchess.com/

eulerscheZahl: Kentucky Fried Chess?

Wontonimo: yeah, pretty much

MiyamuraIzumi: this is greate

Wontonimo: the pseudo-simultaneous is a good hack ontop of the turn-based CG platform to make games seem simultaneous

AntiSquid: the king can completely ignore the check status and step right into it ?

derjack: probably

AntiSquid: playing the campaign

AntiSquid: https://www.kfchess.com/game/QYKD0T?key=c32ab046-f203-4cbf-bc8c-8e11adf60170 heh

Default avatar.png kresteodymium: hi AntiSquid

Chonapatc: ้ร

Chonapatc: hi

Default avatar.png Wrinklycow: Can someone help me with my code on the "Coders Strike Back" game?

Uljahn: does it bite you?

Default avatar.png Wrinklycow: okay

Wontonimo: yeah, sure Wrinklycow, I'll DM you

ahmd66699: hellol

Default avatar.png QuickMathzs: ez

Default avatar.png QuickMathzs: dubs

Default avatar.png QuickMathzs: ygottem

AntiSquid: was that talking with an accent or spam?

AntiSquid: typing with an accent *

CircuitKid: Hello

CircuitKid: anybos

CircuitKid: d

CircuitKid: I mean anybody wanna be friends

TobiasA: :raised_hand:

sprkrd: yo

sprkrd: actually I thought about something simpler

sprkrd: (regarding kung fu chess)

sprkrd: A simultaneous game in which you can move any piece that is not in cooldown every turn. Obviously, you can spend some turns without doing anything

sprkrd: A piece takes as many turns to move to its destination square as the distance from source to destination

sprkrd: and once it reaches its destination, the cooldown begins

sprkrd: logically some rules have to be defined regarding what happens if two pieces land on the same square on the same turn

sprkrd: and yeah, there are no checks, the game ends when the king is captured

sprkrd: and I guess it would be a draw if both kings are captured at the same time

Wontonimo: no draws plz. Make something else decide, like piece count, or piece worth count

Wontonimo: so, first to kill king, or if that happens at the same time then piece count

sprkrd: To avoid draws, I'm thinking it could be a battle to the end

sprkrd: Because if it's just piece count, it can end in a draw too

sprkrd: So it can be until the opponent has no pieces at all

Wontonimo: also keep track of total time used by each player, the one who uses the least ms wins

sprkrd: That's the only way I can think of avoiding draws entirely

sprkrd: That hasn't been done before, and I think it'd be dangerous

Wontonimo: danger ! danger !

sprkrd: Normally people use their entire time budget to calculate

sprkrd: factoring that into the winning condition can be troublesome

sprkrd: Anyway, if I happen to work on that, it'll probably be later in the summer. Currently I have a deadline and I won't be able to spend much time with personal projects :(

struct: beware that cg sdk doesnt support mirrored games

struct: so you either make them play 2 games

struct: in the same replay

sprkrd: what do you mean exactly when you say it doesn't support mirrored games? :thinking:

struct: on cg games you get 2 matches

struct: against the same player

struct: one has player 1 and one has player 2

struct: with sdk this isnt possible

struct: but you can do what re curse did for chess

sprkrd: ah, i understand

sprkrd: but in the case of chess it makes sense because it is not symmetrical. My intention was to work out a way of making the two players exactly equal, with no advantage whatsoever

struct: ah

sprkrd: Does it still make sense to do two matches?

struct: then it should not be needed

elisaado: doe nog een ballontje of twee

elisaado: bokke 8

AntiSquid: your explanation still sounds like kung fu chess sprkrd

jacek: tracking time is unreliable

sprkrd: yeah...? that's what i'm seeking to implement?

jacek: im not sdk expert. you want to track total time used by player?

sprkrd: time is quantize into CG turns, there's no way around that, and in each turn a sliding piece moves one square closer to its destination. Of course, the bot cannot move a piece while its en route

sprkrd: no no, sorry jacek, I was replying to AntiSquid

jacek: ah

sprkrd: I don't want to track total time

sprkrd: I think that'd be troublesome

jacek: eeyup

jacek: whats with that aversion to draws

sprkrd: In each turn each player can move any piece that is not already in movement or in cooldown

sprkrd: So there would be many turns in which the players wouldn't be doing anything at all, until the pieces complete their movement/cooldown

sprkrd: I think this is one of the few sane ways of implementing this

Default avatar.png Riwara: :four_leaf_clover:

jacek: implementing chess isnt sane

struct: yeap you cant really track time

Marchete: https://distill.pub/2017/momentum/

Marchete: wow, an interactive way to understand some hyperparameter

Marchete: it's kind of cool

BlaiseEbuth: distill... pub... :beer:

BlaiseEbuth: Very disapointing link... :(

Marchete: why?

BlaiseEbuth: No beer

jacek: because its distilled

BlaiseEbuth: Right... But there's no whisky either...

nulte: my bot must be drunk

Marchete: it's still 2nd, doesn't seem drunk...

jacek: youre 2nd, go home

nulte: no i can improve it

nulte: https://i.imgur.com/PQKgTGU.png

nulte: as you can see its bugged

nulte: i found the win on turn 35

nulte: something must be messing it up

jacek: w00t

nulte: 36*

Marchete: well, there are plenty of bots with bugs around there

Marchete: :sweat_smile:

Marchete: my oware never gives the last move

Marchete: I have an ugly hack

nulte: yeah ill just hack it too

nulte: if has winning move play it

nulte: :p

nulte: I think its because I didnt add the move to the tree

nulte: yeah that must be it

Marchete: probably I have that kind of bug, an isEndGame before expanding or smth

dbdr: wow, connect4 grew quickly

Wontonimo: Hey nulte. I see you are new here, have you tried CSB?

Wontonimo: lol

nulte: yes, we even have a random on rank 2

Wontonimo: yeah, i know who you _actually_ are

dbdr: 200 players in wood 1. need more leagues

nulte: Maybe my first bot version can be the boss

nulte: oh wait

kovi: dice dual is not a duel any more...gg dbdr

dbdr: it's a trial? ;)

nulte: is Dice duel also bit board friendly?

kovi: not really

nulte: oh :(

AntiSquid: try to think of how you'd implement bitboard for it

Runner87: I accidentally opened it today

nulte: I dont know, im not that good with bitboards

AntiSquid: you can do bitboard for dice duel, but ... at what cost?

Runner87: coincidence?

jacek: and it didnt crash your gpu?

Runner87: move STEAL is a rule of the official game?

dbdr: no

AntiSquid: it's to balance player 1 advantage supposedly

jacek: 9x7 size isnt official neither

jacek: but memes are official :smirk:

Runner87: :grimacing:

dbdr: kovi back to invicible? :)

kovi: found a bug..,but now timeouts...


Marchete: what game?

kovi: dice duel

jacek: should get into it one day

nulte: oh grats on rank 1 btw dbdr, only saw now

YurkovAS: :tada:

YurkovAS: smart rollouts not working for me in c4

YurkovAS: or it stupid rollouts :smile:

nulte: nooo you pushed me down :(

YurkovAS: oh, i'm resubmit 1h later

jacek: :scream:

Marchete: :cold_sweat:

uiyhacan: guys

uiyhacan: can we filter the clash code

uiyhacan: like

uiyhacan: I just want to compete with those who are using C

uiyhacan: can I adjust it

jacek: only private clashes

AllYourTrees: what NN structures are people using for C4?

MSmits: not sure what jacek and robo are doing

AllYourTrees: bigger networks i get way less nodes searched but they can fit value function better

nulte: MSmits is your bot stronger than darkhorse without the book?

MSmits: thats always the case

MSmits: it is similar nulte, but very hard to test as even without a book, these bots get pretty deterministic

MSmits: so you will see a lot of the same games

nulte: I see

MSmits: but my bot is definitely not better than his

AllYourTrees: what is your bot in C4 doing MSmits?

MSmits: it's just that I added 10k hardcoded moves, calculated locally

AllYourTrees: ahhh

MSmits: mcts with smart rollout AllYourTrees

MSmits: and simd

AllYourTrees: oooh gotcha

AllYourTrees: how many rollouts do you get first turn?

MSmits: depends on your definition of a rollout

AllYourTrees: nodes searched?

MSmits: we do multiple random playouts for each selection + expansion

MSmits: each time we expand, all children get their own rollout

MSmits: it's 30k of these iterations on turn 2

AllYourTrees: gotcha

MSmits: which is probably around 200k playouts

MSmits: turn 2 that is

AllYourTrees: is that so all the children are next to each other in your node list?

AllYourTrees: memory wise

Marchete: *and 40billion opening moves

MSmits: well not necessarily, i could do 1 playout and still have them next to eachother

MSmits: (just 10k )

nulte: So many games vs you...

PatrickMcGinnisII: 10k is only like depth3 with some winners noted on depth 4 me thinks

MSmits: AllYourTrees when selection and expansion become somewhat bottleneckish, it can simply help to do more than 1 random playouts

MSmits: PatrickMcGinnisII not exactly

MSmits: if you play poorly vs me, it's around depth 3 or 4 yes

nulte: I think this bot is a bit better

nulte: but hard to say

MSmits: but the better you play, the deeper the bot goes

nulte: I only added reuse

MSmits: book that is

MSmits: it prefers good branches

MSmits: can sometimes go to ply 20

PatrickMcGinnisII: how did you fit 72 bits in 64 bits tho?

MSmits: what do you mean 72 bits?

MSmits: 9x7 = 63

jacek: my NN for C4 is just pieces MLP

Marchete: pieces?

jacek: inputs

PatrickMcGinnisII: well the quick bitwise math online shows an extra line of 0 bits for it to work correctly

MSmits: just the disks

jacek: eeyup

MSmits: PatrickMcGinnisII that just depends on how you do your bitboard

Marchete: no jacekmax?

jacek: PatrickMcGinnisII you can use mask

AllYourTrees: are you doing -1 for opponent jacek?

AllYourTrees: in your input i mean

jacek: Marchete it is used either for jacekmax or mcts-ept. mcts-ept in C4

MSmits: the search probably matters a lot less than the nn structure

MSmits: you could do ab minimax with it

MSmits: eval = everything

jacek: no, one-hot everything. 3x63 (x2 for side to move) possible inputs, where exactly 63 inputs are activated

AllYourTrees: whats the 3rd channel? valid moves?

jacek: channel?

MSmits: nulte, your bot might be better with tree reuse but still end lower, a submit is a poor statistical test

AllYourTrees: err the ->(3) x63

AllYourTrees: i have 2x63 so i'm wondering what the 3rd one is

jacek: each square is either empty, red or blue

AllYourTrees: ooooooooh

PatrickMcGinnisII: I'm only getting depth 4 with some 7380 nodes (full tree) with evals, it sucks

MSmits: if you want to have a good benchmark, play games vs your old bot and give both bots a small random variation

jacek: and x2 for side to move, so basically i double the possible inputs

Marchete: kind of one hot

Marchete: each cell has 3 states

nulte: I guess ill just submit on struct

nulte: and then improve it from there

Marchete: better do it

jacek: 1st or delete

Marchete: I don't understand the alt accounts

MSmits: ohh, so you are struct, I wasnt sure

MSmits: makes sense

PatrickMcGinnisII: i guess the bit shifts would auto fill the 0s, hmmm

MSmits: Marchete me neither

MSmits: i one time used an alt account because CG bugged my main account and i couldnt use IDE

jacek: shadow ban eh

PatrickMcGinnisII: no they wouldn't

MSmits: some people use alts to not publicly fail at anything

MSmits: but thats not why struct does it i think

AllYourTrees: ty for details jacek!

struct: I was getting spammed on pms

MSmits: everyone can see me fail at sht, i dont care

struct: by a guy I banned

PatrickMcGinnisII: smh, yall must be doing 9 bit shifts after isolating the column, is that right?

struct: So i was on the other account

MSmits: ahh ok, good reason struct

MSmits: PatrickMcGinnisII yeah 9 bit shifts happen

MSmits: several places

MSmits: but we use simd so it's all pretty weird code

Marchete: yeah, good reason for alt account

PatrickMcGinnisII: the memory usage isn't that bad, so I just store each column

AllYourTrees: only 9 bit shifts?! i'm doing 12 :O

MSmits: yeah there's 2 reasons to use bitboard. 1) for faster board manipulation with simd and bit ops and 2) in case you store the board on your nodes

struct: 12?

Marchete: 12? I'm doing 34!

AllYourTrees: don't you need 3 for each {vertical, horizontal, d1, d2}?

MSmits: no he means you shift it 9 places for a row

struct: 9 vertical 1 horizontal then 10 and 8 for diagonals

MSmits: thats what i assumed anyway

AllYourTrees: oh

MSmits: we check 4 directions at the same with simd, in this case you need the 9,1, 10, 8 shift amounts

struct: mine was based on this function

struct: http://blog.gamesolver.org/solving-connect-four/09-anticipate-losing-moves/

struct: But now is quite different

struct: I do the same number of shifts thats in that example though

Marchete: this is like connect 4's bible, isn't it?

MSmits: well your bot is very similar in strength to darkhorse's and mine

struct: Yeah I just need to fix my expansion

struct: and add the smarter rollout

MSmits: whats wrong with it?

struct: its kinda messy

MSmits: ah

struct: Due to the solver

MSmits: what is your rollout doing now?

struct: I need to fix some things

MSmits: is it just fully random?

struct: It still checks for win

struct: no

AllYourTrees: what are the hardcoded opening moves again? only on 1 or 7 if first, and if you're 2nd then steal anything else?

MSmits: ohh ok

struct: It blocks opponent wins

MSmits: no, dont steal corners AllYourTrees

struct: but the block can still create a win for opponent

MSmits: steal the middle 5

AllYourTrees: kk ty! MSmits

struct: I have new rollout that fixes that

MSmits: 2,3,4,5,6,

MSmits: play 1 or 7 at start

struct: But im not using it yet because I want to update the expand function

MSmits: dont play nor steal 0 and 8

struct: Also when I solve a node im still creating a child despite not needing to

PatrickMcGinnisII: php on CG only just recently upgraded to 64 bit ints, so I'm trying to figure it out, c4 wasn't as friendly with only 32 bits

MSmits: ahh ok

struct: lots of small things

MSmits: i tried to think of ways to early-solve with lookups

MSmits: doing pext and then lookup the remaining two columns

MSmits: but there are too many possibilities

struct: yeah

MSmits: you get 24 bit arrays or so

MSmits: too slow

MSmits: millions of possibilities

struct: Do you store the state on node?

MSmits: i do, but i did not try otherwise

MSmits: i generally do this when the state is < 128 bit

struct: mine is 16 bytes + current player

MSmits: so not for uttt

MSmits: why store current player?

struct: I dont need I guess

MSmits: nope

MSmits: you just do selectedCount & 1

MSmits: and you know which player it is

MSmits: or if you dont safe state on node you can just do player ^= 1 all the time

MSmits: save

struct: I will check

MSmits: possibly you wont see a difference in performance whether you save state on node or not. It's probably not a bottleneck

MSmits: especially when you do like 7 or 8 rollouts at once

MSmits: then selection is not going to be very expensive

MSmits: i just find it convenient. It simplifies things

struct: jacek bot also is quite strong

struct: at least vs mine

MSmits: he's strong

MSmits: but it's a nn, so hard to compare

struct: Maybe he is weaker vs weaker opponents

MSmits: yeah that's the annoying thing with nn's. That often happens. Depends on what kind of states it encounters during training and how well it generalizes

MSmits: seems like C4 was a good addition to CG

struct: yeah

MSmits: and well chosen size of 9x7. I have a hard time solving this thing locally. Not even close

struct: Its just a bit hard the start of the game

struct: its a bit random

struct: hard to make a mistake early

MSmits: I mean it's not hard to find likely good branches, but solving is another thing entirely

struct: easy*

MSmits: yes, i suffer a lot less from that problem

MSmits: complexity seems similar to uttt and such

MSmits: maybe somewhat simpler

MSmits: but same branching

MSmits: solves a bit sooner

struct: maybe

struct: also more friendly for begginers

MSmits: hmm, well it's friendly in the sense that people can see when their bot does good moves

MSmits: i think the simulation is not a lot simpler. Uttt is also quite simple to sim

MSmits: you just dont know when your bot is doing good moves

PatrickMcGinnisII: branching factor would determine c4 is simpler me thinks

PatrickMcGinnisII: anyone beam search c4?

PatrickMcGinnisII: I gove for now

PatrickMcGinnisII: er give

PatrickMcGinnisII: up

jacek: oO

PatrickMcGinnisII: my eval would work for alpha beta instead of win/loss

jacek: you have eval?

PatrickMcGinnisII: I just add the current token move to the score, it's additive but it works. win determination is easy too, but I have to make it faster

PatrickMcGinnisII: bonus for open ends

BugKiller_328: Is there a way to chat directly with specific user ?

PatrickMcGinnisII: '/msg

jacek: or click their names

BugKiller_328: '/msg jacek

PatrickMcGinnisII: no '

BugKiller_328: sorry I've tried to test..

jacek: oO

BugKiller_328: I want to chat with someone I'm following. he's not here though

PatrickMcGinnisII: glhf

struct: is he following you back?

BugKiller_328: no, I think..

jacek: do you have button private message on their profile page

BugKiller_328: I don't have :(

BugKiller_328: I wanted to know how to use opponentX, opponentY in bot programming called 'Coders Strike Back'. I'm in bronze league now but I have no idea.

Wontonimo: ah

Wontonimo: I can give you a hand

Marchete: noice I trained from scratch and in 3hrs it can win top 10 players

struct: which game marchete?

Marchete: oware

struct: grats

struct: How long did it took before?

Marchete: a lot :D

Marchete: because I was tweaking too much at the same time

Marchete: I'll release it on github

Marchete: only without the train/weights

Marchete: neither the exact model

Marchete: that's why I wanted to retrain from 0

Default avatar.png Prensapjaimo: hey how yall doin?

struct: could be better if I was .04 points higher

MSmits: Marchete let me completely remove book so you can see if you beat all non-NN's yet

MSmits: it doesnt help me anyway

MSmits: i have the same rank with or without

Marchete: no

Marchete: http://cgstats.magusgeek.com/app/multi-oware-abapa/Marchete

MSmits: you dont want me to remove?

Marchete: I already did

struct: you are very close to the other NNs

struct: good job

MSmits: oh, then i should remove

Marchete: remove what?

MSmits: because you are facing a deterministic bot now

MSmits: the book

Marchete: ahh

Marchete: then no, don't remove it :D

Marchete: anyways that was the original training

MSmits: just temporarily, see what happens :)

Marchete: not the last 3hrs training

MSmits: o

Marchete: I think my submitted bot was "blind"

Marchete: on some positions

Marchete: esp. against Agad_e

Marchete: many moves with 0% tree reuse

MSmits: just be careful about drawing any conclusions from this. Agade always plays the same moves

Marchete: i.e. I didn't see it coming

MSmits: well almost always

MSmits: jacek is the only fairly random NN

Marchete: it's "irrelevant"

Marchete: I mean that his moves are unknown to my bot

Marchete: so it struggles

MSmits: sure but it may just hinge on 1 decision somewhere

MSmits: it was like this for me

Marchete: it's self-trained

MSmits: sometimes i added just 1 move

MSmits: and it went from 0% to 50%

MSmits: or something

Marchete: so I'm trying to add more diversity before turn 15

Marchete: but nothing specific

Marchete: just "expand more"

MSmits: ah

Marchete: my goal is zero domain knowledge

MSmits: mmh not sure thats a good goal though

Marchete: full self train

Marchete: why not?

MSmits: well if your intent is to make the strongest bot i mean

MSmits: of course if it's just about learning, then thats different

struct: does it have 0 domain knowledge atm?

Marchete: pure self learning bot

Marchete: it only have a minimal knowledge

Marchete: I'll show it

MSmits: strongest bot should be a strong nn, but also use as much domain knowledge as possible

MSmits: like endgame db

Marchete: http://cgstats.magusgeek.com/app/multi-oware-abapa/Marchete

Marchete: lol

Marchete: not that

Marchete: wrong copy

MSmits: just dont let the domain knowledge be restricive

Marchete: Score = -0.85f //BASE_WIN_SCORE - (float)(MAX_TURNS - turn) * 0.0006f //Estimated range 0.85 to 0.97 - 0.0026f * (float)score1 + 0.0020f * (float)score0;

Marchete: that's the most domain knowledge

Marchete: "win faster"

Marchete: "get more score"

MSmits: well thats not really domain knowledge

MSmits: all games have a turn limit

MSmits: on CG at least

Marchete: it knows that there is some kind of score

Marchete: and 200 turns

Marchete: other than that

Marchete: only gamestate and legal moves

Marchete: I think

struct: very nice

MSmits: submitted bookless, just to see if this version of your bot still gets 100%

Marchete: well Smits, with these premises it can win some top 10 players...

Marchete: I doubt

MSmits: well it should, i mean the other bots also lack domain knowledge mostly

MSmits: the nns i mean

MSmits: so that should work

MSmits: i am just saying they would be better if they had endgame books for example

Marchete: probably

Marchete: you can "skip" learning that

Wontonimo: I applaud the purity of your bot Marchete !!

Marchete: but then

Marchete: you need to invest human time on that

MSmits: yes

Marchete: pure selfplay don't

MSmits: thats why i said, if it is a learning exercise for you, anything goes

Marchete: thanks Wontonimo :D

MSmits: you did well in any case. Do remember that these other nn's had several iterations also

MSmits: jaceks and robos have been much weaker in the past

Marchete: learning but at the same time it went top 6th

Marchete: so I won't say it's a bad thing

Marchete: I'll put it in github/tech.io

MSmits: nooo

Marchete: and I'll accept PR and changes

MSmits: not the full thing

MSmits: or everyone will steal

Marchete: steal is a bad wording

Wontonimo: haha ... MSmits is sweating

MSmits: :)

Marchete: you need to setup a sh*tload of things

MSmits: he already shared mokka which is a treasure

Marchete: I had a bad time trying to understand that ML jargon

Marchete: it's not easy at all

MSmits: there's a lot of it

Marchete: or even plain wrong in some cases

MSmits: yeah, as long as you dont make it too easy, it's ok to share a framework.

MSmits: not the full bot with weights ofc

Marchete: of course not!

Marchete: well

Marchete: the bot yes

Marchete: but not the NN model

MSmits: thats the weights right

Marchete: nor the weights or anything

Marchete: no

MSmits: you mean the layers then?

Marchete: the NN design

Marchete: yes

MSmits: ah ok

Marchete: also it's probably "subpar" to ML standards

Marchete: I did my "way"

MSmits: no bot is perfect

Marchete: mine gives "no move" on last move

MSmits: why is that?

Marchete: so I tweaked it

Marchete: to give one

Marchete: dunno

MSmits: what is last move btw?

Marchete: never wasted time on that

Marchete: at turn 200

MSmits: oh ok, thats an off by 1 error somewhere

Marchete: probably because I don't expand or smth at turn limit

Marchete: yes

MSmits: off by 1 errors are the worst

Marchete: the worst?

MSmits: even if you do it correctly, you're always worried you did it wrong

Marchete: no no no

Marchete: the worst for me was

Marchete: the whole oware rules

Marchete: then the whole sign on evaluations

MSmits: ah well yeah the signs are always annoying

Marchete: dunno why, but I had a hard time

MSmits: for simple mcts it is the same

Marchete: like root node in MCTS

MSmits: yea

Marchete: it should be -sum(children)?

Marchete: or sum(children)?

MSmits: root should have a minus sign

MSmits: because your first move is one of the childrne of the root

MSmits: and those have a positive score, because they are your moves

Marchete: but it's not the turn of the enemy

MSmits: no but the children are the moves

MSmits: the root is not

Marchete: yes

Marchete: but as I needed some score for a gamestate

Marchete: for the NN thingy

Marchete: what I put?

Marchete: -(sum)?

Marchete: +(sum)?

MSmits: not sure why you sum btw?

Marchete: it was a mess for me

MSmits: why sum anything?

Marchete: what's the score of the root?

MSmits: well i am thinking of basic mcts here

Marchete: like, how good is that state?

MSmits: and then its just a backpropagated value

Marchete: imagine you have a sure win

Marchete: all children are +1.0

Marchete: then your root is -1.0

MSmits: why all?

MSmits: only 1 needs to be

Smelty: hmm

Marchete: just for the sake of vanilla mcts

MSmits: ok

Marchete: or just 1 children

Marchete: with +1.0

Marchete: your root is -1.0?

Marchete: then that gamestate is the worst?

MSmits: what do you mean the worst?

MSmits: there is only 1 root

Marchete: a sure loss

MSmits: sure

Marchete: no

Marchete: it's a sure win

Marchete: because any move you do (a single possible move)

MSmits: if one of the children is a sure win, then the root is a sure loss

Marchete: leads you to a win

MSmits: the root is always an opponent move

Marchete: because you assume the root as the opponent

MSmits: yes

Marchete: but Alphazero needs a score for the current player for the current gamestate

MSmits: well then you just negate

MSmits: everything

MSmits: seems easy to fix

Marchete: I did that

Marchete: weirs minus signs

Marchete: weird*

Marchete: until it worked out

Marchete: but it wasn't trivial to me

MSmits: well it's really just a matter of definition. I am sure you could code azero the other way around if you wanted to

MSmits: convention. I should say

Marchete: wow you beat Agad_e really easily

MSmits: 88% and 0 games vs you Marchete

Marchete: I'm seeing that :D

Marchete: finally one

MSmits: my bot tends to gather up a ton of seeds in a single pit

Marchete: and I lost :(

Marchete: the it was due to the book

MSmits: ah well, i wont end above you thats for sure

Marchete: that was more repetitive

Marchete: hence the 100% winrate

MSmits: might be. Books make my bot deterministic and it already has the tendency to be deterministic due to fixed eval, no random

MSmits: i play poorly vs royale

Marchete: so my bot isn't that bad \o/

MSmits: its great

Marchete: to be the only and first one I did it worked out :D

MSmits: thats why you start with oware. It's doable :)

MSmits: though probably not easy

Marchete: that's why I didn't want to go "easy" mode

MSmits: the only people that tried are good at this stuff

Marchete: like supervised or anything else

MSmits: well, in my case the nn part of that is indeed easy mode

MSmits: getting the data is a huge undertaking

MSmits: still working on book 34 :)

Marchete: you are mad

MSmits: yes yes

MSmits: you know what it is with my bot. It does ok vs agade and recurse probably ok vs yoiu

MSmits: but those NNs get nearly 100% against lower ranked

MSmits: and mine does not

MSmits: better with book, but still not nearly 100%

Marchete: I almost achieved that

Marchete: 100% except top4

MSmits: yeah

MSmits: I only have 9 params or so

MSmits: and those are fitted to do well in pro-play or whatever you call it

MSmits: with weaker players, they make my bot act overfitted

Marchete: I have 24,759 + 30 more :D

MSmits: yeah

MSmits: well i had a couple thousand with book i suppose :P

MSmits: but i doubt you can call them params

Marchete: only 1 match against me

Marchete: how?

MSmits: but as you see, book or not doesnt matter for my rank

MSmits: random i guess

Marchete: well

Marchete: you lose like 2-3 pts

Marchete: you were 40

MSmits: yes, but the distance between the bots is too great to matter in terms of rank

MSmits: the nns are soooo much stronger

Marchete: the NN wall :D

MSmits: exactly

Marchete: but you were above all heuristics

Marchete: by a big margin

MSmits: yeah

MSmits: book does help

MSmits: though it would never beat robo and jacek without serious cheesy counterbooking

Marchete: will you resubmit the original?

MSmits: if you want me to, sure

MSmits: i dont mind either way

Marchete: at some iterations I got like 50% vs robo

Marchete: but it was probably some luck

MSmits: robo is super easy to counterbook usually. I did not do it on this version, because i stopped doing that

MSmits: he's very deterministic

Marchete: jace_k is the one that adds noise

Marchete: I did it too for the selfplay

MSmits: yeah, robo did too at some point i think, but i never saw that much variation

Marchete: I noticed it ended playing the same again and again

MSmits: jace k has a ton

Marchete: very low diversity

MSmits: takes me like 500 hardcoded moves, maybe 1k, to get 50% WR

Marchete: maybe it's due to the bot nature

MSmits: could be

Marchete: so you can beat all of them?

MSmits: right now? No, jacek and robo are new

MSmits: but re curse and agade, sure

MSmits: should be good

MSmits: unless re curse also has a new version

Marchete: from march

MSmits: march this year hmmm, that seems new yes

MSmits: i havent touched it for a while

MSmits: so just agade then, but the book is not just cheesy counter stuff. It is also just good openings in first 10-20 plies

MSmits: but your bot may be able to counter those which is why you get 100%

MSmits: let me submit my old version, should push you again

Marchete: I won't move in rankings

Marchete: like you

MSmits: you might

MSmits: depends on how many games i get vs agade/re curse /you

MSmits: robo and jace k dont matter in this, they'll wreck me anyways

MSmits: oh, a draw

MSmits: and another vs re curse

MSmits: 3 draws in a row :)

Marchete: draws are counted?

Marchete: moves the score?

MSmits: yeah, it does

MSmits: by a small amount

MSmits: you have red downward arrow

MSmits: because of draw

Marchete: I see it

MSmits: oo i won vs robo

MSmits: rare

MSmits: yeah, book is pretty strong when i look at the games now

MSmits: a lot more wins

Marchete: 1 vs robo

MSmits: loss streak now

Marchete: top3 players mostly

MSmits: yeah, with those huge ratings, a loss barely matters

MSmits: it;s like losing to a grandmaster :)

MSmits: royale did really good on this multi

MSmits: the top 10 put a lot of effort in their bot to try and beat nn's. Not easy to do well in oware

Marchete: yes, but yours is better

MSmits: it's one of the bots i spent a huge amount of time on though, like uttt and yavalath

Marchete: I spent weeks trying to get all the pieces together

Marchete: bugs, sign errors etc

Marchete: also the NN are resilient to many bugs

MSmits: next game will be easier

Marchete: so it seems to "work" but it doesn't

MSmits: the other guys had those issues too. It has been several times that re curse said here that he found a bug after using a version of his nn for months

Marchete: I don't understand most of the stuff

MSmits: like what?

Marchete: the cpuct coeff

Marchete: it's like the coeff for the UCB1 formula

MSmits: mmh but thats not nn stuff

MSmits: is it?

Marchete: also batch normalization

Marchete: what the hell is a minibatch

MSmits: thats a small batch

Marchete: regularization losses

Marchete: etc etc

MSmits: thats just a consequence of you trying to eat the whole pie in one bite

Marchete: temperature on move selection

Marchete: I don't know

Marchete: a lot of stuff

Marchete: I've been eating it for literally years

Marchete: the forum post of Agad_e, pb 4 and fenri_r ?

MSmits: what smaller nn projects have you done?

Marchete: I don't understand half of it

Marchete: MNIST :D

MSmits: but you can do mnist in a week or two

MSmits: afaik

Marchete: 10 minutes on jupyter notebook

MSmits: i mean including the understanding of it

DomiKo: talking about NN I got top150 with NN on CSB :D

MSmits: gj DomiKo

struct: nice

Marchete: congrats

struct: two runners?

Marchete: what kind of NN?

MSmits: i dont think nn is that easy in csb

Marchete: neither me

DomiKo: simple blocker :D

DomiKo: CSB is more about RL

BlaiseEbuth: Good. Now give us back AutomatonNN DomiKo. :rage:

DomiKo: :crying_cat_face:

DomiKo: one day I will try doing some board games too

MSmits: you mean with nn

DomiKo: yeah

MSmits: because last time i checked you're in several :)

MSmits: Marchete book does not seem great at all. It's probably got something to do with you being part of the list of opponents now

MSmits: gives me motivation to turn it off entirely

Marchete: :(

Marchete: sorry?

MSmits: no no, thats fine

MSmits: I dont like using it in oware, it's tainted by cheesiness :)

Marchete: imo sometimes the NN get some weights that are perfect counters to your moves

MSmits: yes

Marchete: so win/draws always

MSmits: makes sense to me

Marchete: change some slight thing and you'll turn tides

Marchete: like Agad_e

Marchete: I never ever win once

MSmits: while running meta mcts, i did find some plays that went like 100 plies deep and solved as draw vs re curse for example and i never found alternative moves that were better

Marchete: like perfect plays

MSmits: yeah it seemed like that

Marchete: you just need to find it

MSmits: but if a player deviates from this, in one of the 100 plies, my bot would be back to relying on its 9 params

Marchete: the perfect win

Marchete: :D

Marchete: I'd like to be able to do that

Marchete: being able to analyze that way

Marchete: I have no clue what my bot does

Marchete: I only have a % of tree reuse

Marchete: if it's near 0% that's a bad thing

MSmits: well i have no clue why some states are good or bad, i just have statistics that say they do and a good solver

MSmits: because you get so much rollout and solving with a good c++ bot and a game with such a small branching factor, it becomes easy to analyze some states, provided you have some serious calc time

MSmits: nn's are not that great for this

Marchete: how many rollouts do you have?

MSmits: lemme check

Marchete: my NN does the incredible of

Marchete: 5000

Marchete: more like 4500

MSmits: 50k times x children (5 on average?), so i guess 200-300k at turn 2

MSmits: this is mostly because no random playout

MSmits: so i should say 200-300k evals

MSmits: and 50k backprops

Marchete: two lines of the NN takes like 70% of cpu time

MSmits: I went nuts trying to mini-bitboard this. I fit everything in 64 bit

MSmits: (except score)

Marchete: I have 2 uint64_t

MSmits: yeah most people do

Marchete: nothing fancy

MSmits: I use 5 bit per pit and then the last 4 bit is a single 31+seed overflow

MSmits: because you only ever have 1 pit with more than 31 seeds

Marchete: have you tested the seed count?

MSmits: what do you mean

Marchete: like seeing in real games what is the real limit?

MSmits: i did go over 31

Marchete: in your metamcts

Marchete: yes?

MSmits: yes

MSmits: in one pit

MSmits: rarely though

Marchete: that's a problem for me

MSmits: my game would crash because i used 5 bits

Marchete: I only have a limit of 27

MSmits: so i added the overflow thingy

Marchete: or 24?

Marchete: I think 24

MSmits: it does not matter if you only use it for eval

MSmits: but if you have a limit in sim, it could be bad

Marchete: so if you achieve 24+ it will probably fail

MSmits: what will fail? the eval or your sim?

Marchete: I have a NN limit

Marchete: the eval

MSmits: ahh that might be ok

MSmits: robo has his limit at 31

MSmits: you should just clamp it

MSmits: or cap it, or whatever

Marchete: I do that

MSmits: I might do that in my supervised learning thing

MSmits: varying data labels between -48 and +48 might not be good

MSmits: probably will do -31 and +31

Marchete: I'm doing what I understood from jace_k

Marchete: one-hot encoding

Marchete: from 0-24 to cells

MSmits: yeah that works well, as confirmed by robo

Marchete: and 0-27 score¿?

MSmits: but robo made a really strong bot without it

Marchete: something like that

Marchete: yes

MSmits: 0-27 seems somewhat arbitrary

MSmits: unless it's a fitted param

MSmits: why not 0-25 or 0-29

Marchete: completely invented

MSmits: yeah i guess so

MSmits: also, isn't it -25 to +25?

MSmits: oh right, it doesnt use relative score

MSmits: personally I would use relative

Marchete: no, for each one

MSmits: dont see why you would input two values

MSmits: when only the difference is meaningful

Marchete: 20-20 is like 0-0?

MSmits: 20-20 is like 0

MSmits: 24-20 is like 4

Marchete: 25-20 is like 5?

MSmits: yep

Marchete: but with 25-20 I win

MSmits: that doesnt matter

MSmits: you could keep playing

MSmits: the only reason the game ends is because there is no way to catch up

MSmits: that should not matter for the nn

Marchete: 24-20 == 4 but 25-21 != 4

Marchete: I don't know

MSmits: hehe i remember having this discussion with you before :)

Marchete: yes

Marchete: so I won't do it again

MSmits: hehe its ok

MSmits: it's a subtle argument

Marchete: I won't change the inputs anyways

MSmits: nah no need

MSmits: if it works, it works

Marchete: I truly hate that game

Marchete: at the same level than PCR,CSB and UTTT

MSmits: i have no strong feelings for it one way or the other, but i dislike the 200 turn ending

MSmits: it feels messy

Marchete: it is

MSmits: it makes the entire game different

Marchete: sometimes you get the seeds (no available moves)

MSmits: and makes ingame end books really complex

Marchete: then on 200 you don't

Marchete: dunno

MSmits: i literally have a different value for looking up with 1 turn left or with 20 turns left

MSmits: or 100 or whatever

MSmits: all the way up to 185

MSmits: (since i assume games wont get that low in the first 15 turns)

MSmits: my old meta mcts does this too, being turn sensitive

MSmits: my new one for supervised learning will ignore turn limit

MSmits: makes you have 200x less unique states

Marchete: I hope you make it work

MSmits: i am pretty sure it will work to some extent

MSmits: just dont know how far it goes

Marchete: good to be that confident

MSmits: well the hardest parts are the things i always managed to do

Marchete: I had 0 (nein, none) expectations to be able to make it top20

MSmits: i already managed i mean

MSmits: i was pretty confident you could do it

Marchete: if I do something is because I kept trying for months

Marchete: when others did in a couple of dayts

MSmits: you did some hard stuff for CG before and most people that tried oware NN succeeded. So if i see someone else smart try it, I will assume they succeed

MSmits: now try convolution and stuff

MSmits: and do some othello :)

Marchete: :scream:

struct: I doubt others did it in a couple of days

MSmits: no they didnt

MSmits: they all spent months

struct: maybe I could do it in 1 day /s

MSmits: you said you write 1 function in a day

Marchete: it took me like 1 full week to have a sim on the last challenge...

struct: my c4 didnt take much

struct: like 4-5 days

Marchete: you had it in 2 days, top

Marchete: I remember it

MSmits: mmh that sim took me a few hrs only

struct: even with simd?

MSmits: no i had no simd for the last contest

MSmits: my c4 bot including simd was less than a day

MSmits: wrote meta mcts the next day

struct: tbf i also waste a lot of time in pre optimization

struct: The first thing I did was rollout

MSmits: well i think i was lucky on c4, generally these things take me a week

MSmits: because of bugs

JimmyJams: anybody here know how to code a hentai girlfriend? asking for a friend

struct: Marchete I was beta tester for the contest

MSmits: I spent most time in last contest just trying different things for beamsearch

struct: sim was quite simple yeah

MSmits: glad i got to legend with that, but wasnt a huge success

MSmits: i am proud of the sim verifier i wrote though

MSmits: sim was perfect, but my beamsearch had a huge bug for half the week :P

MSmits: something was wrong with nth element

Marchete: do you ppl have some ELO tool

Marchete: ?

MSmits: no, re curse uses one

Marchete: or a way to simply calc that?

Marchete: I remember

struct: no

Marchete: but it was like a complex tool

struct: my elo tool is an excel spreadsheet

MSmits: no i have never tried. This should be google-able though I think?

Marchete: I did

Marchete: it was just in case you had some single function

Marchete: or smth

MSmits: nope. I usually just test only 2 bots against eachother and just calc WR

MSmits: super simple

MSmits: but i guess with NN you want maybe 10 versions and do an elo thingy

Marchete: I'm trying to have 2 "best" models

Marchete: to compare against

Marchete: the last two

MSmits: ah ok

Marchete: to avoid overfit

MSmits: more is better

MSmits: but takes more time to check

MSmits: when i find articles they usually do some huge 20 x 20 table or something

MSmits: with a lot of versions

MSmits: might not be practical

Marchete: well, bed time

Marchete: it's kind of late

Marchete: cya

MSmits: yeah. same here

MSmits: gn!

struct: gn

Default avatar.png Risheq12: hi

Default avatar.png Risheq12: i am new here is this really helps?\

struct: depends

struct: new to programming?

Default avatar.png Risheq12: not really i am 3rd year software engineer

Default avatar.png Risheq12: but i found some of these games hard

Default avatar.png cho_q: Has anybody done coding assessment in this website?

struct: Risheq12 it can be a bit overwhelming at the start

struct: UndyingScone_406b no but it should be in https://www.codingame.com/work/

struct: They recomend doing easy puzzles to practice for it iirc

struct: just to get an idea on how the site works

Default avatar.png FHQ35: hI

Default avatar.png FHQ35: HI

Wontonimo: hey Risheq12, these games ARE hard

Wontonimo: wow, i've been on this site for 8 months and I've not seen https://www.codingame.com/work/ until today

struct: need to fix my expansion

struct: but my brain cant click

struct: oh my

Wontonimo: oh what?

Wontonimo: my brain hasn't clicked for about a month

struct: I forgot to change current player

struct: before i started the rollout :D

struct: So same player would be making 2 moves in a row

struct: now I must find if this was a feature

struct: :)

Wontonimo: resubmit and find out

Wontonimo: i really can't imagine that bug improving your code. i'm really surprised you got to 3rd with that bug

struct: same

struct: But I checked and it was happening :p

struct: but I think I created another bug

struct: but will see

Wontonimo: y u go mak bug?

struct: mak?

struct: make

struct: ah

Wontonimo: not a single loss so far

struct: not looking bad

struct: how did this bug

struct: made to 3rd and 2nd is ridicolous

Wontonimo: the rest of your code is just that good

struct: omg

struct: i beat msmits 2 times

struct: o.o

Wontonimo: yeah, i see that

Wontonimo: you are pulling down his trueskill score

struct: I need to improve next thing now

struct: :)

Wontonimo: i don't get it. how did this bug even let you get into the top 10

struct: well the solver was saving me

Wontonimo: but the solver assumes you get 2 moves in a row at the beginning, which is wrong

struct: no

struct: the rollouts does

Wontonimo: oh

struct: I would apply the move

Wontonimo: it's just in the rollout

struct: and then rollout without changing the player

struct: its still a big bug

Wontonimo: okay, yeah, that wouldn't kill your bot, just make it underperform

struct: yeah

struct: I knew I should have an applyAction function

struct: :p

Wontonimo: basically hurts your probabilities in the beginning

struct: yeah but the beginning is very important

struct: imo

Wontonimo: oh, i saw your bot jump to 2nd a couple times

struct: yeah I just need to pray to get p2

struct: player 2*

Wontonimo: praying wont help. Hold a cup of coffee over your computer and threaten it instead

struct: now msmits is taking his revenge

struct: 3 matches in a row vs him

struct: :(

struct: Same rank

struct: .04 points exactly the same difference

Wontonimo: very interesting

struct: but now it never loses in under 40 tunrs

struct: before it did

Wontonimo: nice! The MCTS solver is slick

struct: My next version should solve sooner

Wontonimo: i remember when i added it to my UTTT bot it made quite an improvement

Wontonimo: how is it going to solve sooner?

struct: because currently I dont do 1 check

struct: if I do a move and opponent could win after i made that move

Wontonimo: ah

struct: Like he could place a piece on the top of the one I played

struct: To win

struct: I dont take that into account

struct: But I have function for that now

Wontonimo: so, a 1 move minimax

struct: yeah but is actually like 2 moves

struct: mine and opponent

Wontonimo: 1ply

Wontonimo: and are you planning on doing that on every Node ?

Wontonimo: to reduce the branching

struct: yeah

Wontonimo: oh neat.

Wontonimo: there will be a computation tradeoff

struct: yeah I get slightly less rollouts

Wontonimo: and i'm interested to see how it works out

Wontonimo: cost/benefit

struct: because I also added this to the rollout

struct: Also with this you dont need to check for a win

struct: because you know every outcome from your moves

Wontonimo: wow, you already do that in the rollout! How many rollouts are you doing in 100ms?

struct: not in this rollout but this rollout is also smart

struct: 1 sec

struct: after fixing the bug I get slightly less

struct: but is around 285k now

struct: on 1st turn with 99ms

struct: but I rollout for every expanded child

struct: So it gets a bit more

struct: But I expand less

Wontonimo: why wouldn't you rollout for every expanded child?

struct: Some people select a random child and rollout only that one

struct: the still create the others

struct: but dont do rollout

Wontonimo: oh

Wontonimo: got it

struct: it makes it so it expands the tree more

struct: Its good for solver

struct: Maybe I can try it after N turns

Wontonimo: and do you use parent->parent->score to init the score of of a Node?

struct: the child?

struct: after i expand all the childrens start at 0

struct: or w/e the rollout score was

struct: -1,0,1

Wontonimo: ah. So, like the UCT score (regret), there was this paper I read where they also added a grandparent factor

struct: But do you add it to all the children?

Wontonimo: the idea is that a new nodes score is probably going to be very close to the grandparent.

struct: I see

struct: because the distance of the diff from -1 to 1 is greater than 855 to 857 with uct

struct: right?

struct: if node had 2 childs

Wontonimo: no, but it is in the equation. It's something like + grandparentScore / visits^2

struct: hmm, i dont quite get it why it works

Wontonimo: sorry, i should have said grandparentAvgerageScore

Wontonimo: so, imagine the grandparent (the previous move for this player) has been doing really well, with an average score of -0.7

Wontonimo: sorry +0.7

Wontonimo: the children will LIKELY also do well

struct: yes

Wontonimo: hmm ... as i'm thinking it through, i'm questioning it... let me check my UTTT code and see if I even use it

struct: ok thanks for taking the time to try and explain

Wontonimo: yes, i do use it and it made a difference

Wontonimo: okay, so here is the second attempt at trying to explain it (it's a bit fuzzy in my head)

Wontonimo: The regret term UBC1 is there to encourage exploration, but ... ah, i don't know why I'm having trouble explaining it. maybe i don't get it

Wontonimo: let me see if i can find the paper

struct: its fine

struct: dont stress about it :p

Jakaria: hey guys

struct: hi

Jakaria: so, i was doing clash of code

Jakaria: it was shortest mode

Jakaria: so, this chinese dude wrote code in chinese, then encoded in utf-16

Jakaria: which saved him like 10 characters

Jakaria: just, wow

Wontonimo: ah, so in a nutshell, if the Node is initialized with nearly the correct win/loss, then your regret term does not have to be a big, and since it doens't have to be as big, you go deeper with the same sim count

struct: hmm, yeah

struct: I kinda have to agree

Jakaria: still could beat me XD

struct: so you must have a regret term per node?

Wontonimo: no, why would you need a regret term per node?

struct: ah so the regret term is based on the parent

struct: ?

Wontonimo: the regret term is UCB1.

struct: ah

Wontonimo: just regular old UCB1

struct: im sorry, im not really familiar with the terminoligy

struct: i never read mcts paper

Wontonimo: sorry, i read it somewhere where it was called that. i don't know if it is "the name" for it, but it sure makes a lot more sense to me so i use it

Wontonimo: yeah, so my constant for UCB1 is "lower" than normal because of the initialization

Wontonimo: mind you, you destroy me in UTTT, so maybe it's a bad thing :D

Wontonimo: good night

struct: gn

struct: and thanks

nuggetbucket54: how do you guys feel about encoding code to get better results for code golf

nuggetbucket54: it seems so broken

Jakaria: yeah man

Jakaria: i got a dude who used encoding 2 games earlier

JohnCM: should ban encoding code, cause we won't learn anything from it

Westicles: you learn how to win

JimmyJams: misses the spirit of code golf

gon: wtf is encoding the solution legal

gon: just lost a golf to this exec(bytes("㵉湩異ੴ㵮湩⡴⡉⤩愊䤽⤨戊䤽⤨椊⁦╮㴲ㄽ਺映牯椠椠慲杮⡥ⰱ⭮ⰱ⤲猺⠽⵮⥩⼯㬲牰湩⡴⩢⭳⩡⭩⩢⥳攊獬㩥 潦⁲⁩湩爠湡敧渨ㄫ〬⴬⤲猺⠽⭮ⴱ⥩⼯㬲牰湩⡴⩢⭳⩡⭩⩢⥳","u16")[2:])

Jakaria: :)

gon: pretty annoying :c

Jakaria: there's no way to counter it except doing it

gon: is there like a built-in report system?

Default avatar.png Togarashiiii: gon is being a sore loser

JohnCM: if i see exec(bytes(<nonsense>)) in a code again, probably going to ban that person

JohnCM: lol.. but i can't ban oh well

Jakaria: haha

JohnCM: but it's ok, rarely see those ppl anyway

JohnCM: most ppl play fair

Default avatar.png Togarashiiii: to you what is "fair"

Default avatar.png Togarashiiii: to me it sounds like "fair" is just an imaginary standard you setup

Westicles: Yep. These godless kids these days are all screwed up when it comes to differentiating right from wrong

Default avatar.png hoangjunokatte: hi

Default avatar.png hoangjunokatte: vietnamese

Default avatar.png hoangjunokatte: and you