From CG community
Jump to navigation Jump to search

eulerscheZahl: oh, another hypnotoad

hydroglicerol: there multiplying I thought he was you

hydroglicerol: you have to pronounce your dominance to attract mates its what all toads do

hydroglicerol: also what happens when I invite you to clash of code

eulerscheZahl: i will hate you forever

hydroglicerol: that doesnt sound horrible I was expecting instant death

LelouchVC2: I still can't believe its not butter


LelouchVC2: Same

LelouchVC2: I tried it, it definitely does not taste like butter

Nerchio: euler you're not coming back to PR2?

Default avatar.png NicatSadiqov: 15 xfb1111o17

Default avatar.png NicatSadiqov: is it not pointer?

Default avatar.png NicatSadiqov: in reverse question, 15 ---- xfb1111o17

LelouchVC2: A pointer would not be the same every run

LelouchVC2: So it wouldn't make sense for a pointer to be the output since it can't be confirmed

Default avatar.png NicatSadiqov: thanks guy

JKSTUDIOS2020: :wink:

Illedan: Nice rank Nerchio

Astrobytes: ooof yeah, grats Nerchio

WINWINWIN: Nicely done Nerchio, gl Illedan hope you win :)

WINWINWIN: PHP bots cannot come first :P

Nerchio: thx :P

kovi: great improvement nerchio!

Nerchio: :)

Nerchio: or maybe lucky submit

MSmits: PR-2?


Nerchio: ye

MSmits: cool, gj Nerchio

Nerchio: you will try MSmits?

kovi: well, being only specator i cant tell

MSmits: I like the game, but I don't have much of an idea of where too start. I talked to Thiesjoo and his ideas where also my ideas and after he implemented them he got stuck

WINWINWIN: Doesnt it seem a lot like GitC?

MSmits: I mean, when he explained them to me, i thought, well... that would be what I would have tried first

MSmits: yeah, WINWINWIN, that is the problem :P


Nerchio: only a little bit similar

MSmits: also, believe it or not... i am still doing uttt :P

Nerchio: since your units don't really get stuck if you send them somewhere

WINWINWIN: Arent you 1st?

MSmits: not atm

MSmits: I could cheese my way to 1st if i want to, but i want a bot that is significantly better

MSmits: so i am rewriting it

MSmits: different searches etc.

WINWINWIN: Full rewrite to minimax?

MSmits: no

MSmits: mcts variant

MSmits: I think I have a good evaluation function, so trying various ways to put that in

WINWINWIN: Isnt the only important part of the search the eval function?

MSmits: you can use an eval function in many ways and that is pretty important

MSmits: but sure, if its bad, the whole bot is bad

WINWINWIN: Good luck :)

MSmits: it's like this: If you're doing a running competition and you're training hard and you're super fast, you'll still lose if you run in the wrong direction

WINWINWIN: Makes sense

eulerscheZahl: "Nerchio 11:51AM euler you're not coming back to PR2?" probably not

eulerscheZahl: i know 2 or 3 things to improve. but not really motivated

Csar00: /me

Csar00: /me

**Csar00 slaps enulerschezahi around a bit with a large fishbot

**Csar00 slaps csar00 around a bit with a large fishbot

eulerscheZahl: you spelled that wrong

Csar00: lol

Csar00: (╯°□°)╯︵ ┻━┻

WINWINWIN: Is FluentAssertions available in C# here?

Default avatar.png journeyvivek: hello

hydroglicerol: hew

hydroglicerol: winwinwin

hydroglicerol: I am not 100% sure

hydroglicerol: but I think they have it

Hjax: i havent come up with a good way to decide when to re-explore areas in PR2 yet

Hjax: right now my pods just head to the enemy base if they dont see anywhere obvious to go

Hjax: but sometimes that results in the enemy retaking a lot of space on the map and killing me

eulerscheZahl: how mea

eulerscheZahl: n

Hjax: yeah people should just let me win

BigUP: seem's the best to do

IamTheSmix: what is the best structure to choose for storing data in the UTTT contest ?

Hjax: bitboards

Uljahn: for storing MCTS tree nodes you mean?

Hjax: oh i interpreted it as for a single position,

IamTheSmix: for nodes yes

Uljahn: some sort of an array of structs perhaps

IamTheSmix: I use this

IamTheSmix: class Node():

IamTheSmix: Its cost me like 2 ms to create one node

ZarthaxX: python is not the right choice :sweat:

Uljahn: you have 1 sec on the first turn, so create a pool for nodes and reuse them later without creating new ones

Uljahn: ZarthaxX: i agree it's nearly impossible to reach legend with python but still you can learn MCTS with it

IamTheSmix: My idea is just learn MCTS and reach Gold iwth python

Hjax: id be pretty impressed if someone reached legend with python in uttt

Uljahn: IamTheSmix: for python i'd go with numpy -- it has nice structured arrays

IamTheSmix: I used numpy

MSmits: IamTheSmix dont store the boardstate on the node

MSmits: just the move is enough

MSmits: when you go down the tree, you apply the moves

Uljahn: also gold can be reached without trees with plain UCB1 like in MAB

IamTheSmix: @MSmits I agree I can remove the boardstate

IamTheSmix: for example : if I want to get available moves from board I use : np.argwhere(board == empty)

IamTheSmix: that cost me 1.9 ms

MSmits: I have a minimax tic tac toe bot in python that uses bitboards

MSmits: maybe you can walk through it for some performance improvements?

IamTheSmix: Yeah I would like to


MSmits: there's a lot of draw functions and such, minimize that

MSmits: not sure if it is helpful, but it works quite well

IamTheSmix: thank you

MSmits: np... this is just an experiment of mine to practice python. I needed to learn it for teaching

MostComplicatedUsername: msmits you're not part of the pr2 contest?

MSmits: not atm no

MSmits: maybe later

MostComplicatedUsername: Why?

MostComplicatedUsername: Okay

MSmits: it's not an official contest so it's not really enough to draw me away from uttt :)

MostComplicatedUsername: Only 7 days left...

MostComplicatedUsername: Still doing uttt?

MSmits: yup

MSmits: well it's not just uttt, i am also experimenting with different mcts stuff. If I make something work, I can use it for other multis

MostComplicatedUsername: AH

MSmits: I used what worked for me in oware, in onitama and got nr 1 there

MostComplicatedUsername: Ah*

MostComplicatedUsername: :thumbsup:

IamTheSmix: MSmits I read somthing like hybrid MCTS

IamTheSmix: you know about this ?

IamTheSmix: any thoughts ?

MSmits: it's a bit vague. Have to know what you're hybrid-ing

Uljahn: solver? MCTS with minimax?

MSmits: probably using an evaluation function

IamTheSmix: MCTS with minimax

MSmits: right, you can do that

MSmits: a solver is not really a hybrid though

IamTheSmix: and mabye they add also multi MCTS

IamTheSmix: like two agents exploring two trees

MSmits: oh

MSmits: that exists

IamTheSmix: but this can't work on CG

MSmits: DUCT

MSmits: works on CG

MSmits: jolindien won xmas rush with it

inoryy: do you know if anyone used AZ for UTTT?

MSmits: whats AZ again?

inoryy: alphazero

MSmits: dont think so

MSmits: I was thinking about trying it, but you need so much calc time

IamTheSmix: I was hoping to train my NN on it

IamTheSmix: but can't on CG

Uljahn: i heard reCurs e have failed with NNs for uTTT

MSmits: re curse did try a nn yeah

MSmits: I think if you want to try a nn for it, you should try offline first, without the limitations of CG, to see if it is even viable

MostComplicatedUsername: I like your pfp ulj ahn

MSmits: there's so much room to experiment with NN's, I am pretty sure one is possible for uttt

MostComplicatedUsername: Imagine not just randomly placing

MostComplicatedUsername: smh

MSmits: I am also sure that any bot that is somewhat deterministic (doesnt have to be fully deterministic) can be beaten 100% when they are p2

MSmits: at least... I am 99% sure this game is solved as win for p1

Uljahn: MSmits: is you meta-MCTS still going?

IamTheSmix: maybe drawn !

MSmits: yeah

MSmits: it is

IamTheSmix: SmitsMax

IamTheSmix: mine is SmixMax

MSmits: IamTheSmix, I haven't succeeded in finding a path to draw that works

IamTheSmix: oh what was the problems ?

MSmits: I can take any series of moves of a game that I lost or drew as p2. Put it into mcts and then work back along the game until i find my mistake

MSmits: if i correct that mistake, i win as p1

MSmits: as p1 i mean

MSmits: I havent found a draw i couldnt solve that way

MSmits: the current line of play of karlis o I solved from ply 25 or so

MSmits: he always plays the same moves up to 25 as a reaction to my moves and then he loses

MostComplicatedUsername: just add an if statement for that one situation :)

MSmits: this version is not on the leaderboard though... I want a real improvement, not a cheesy opening book one

IamTheSmix: how about making two algorithms : minimax for like 25 moves early in the game and then switch to MCTS after ?

MostComplicatedUsername: And pretty soon your code becomes an if jungle

MSmits: I dont need an if statement

MSmits: I have an opening book. Every turn i check the book, if the gamestate is in there, i play from there

MSmits: ok, so 1 if statement :)

IamTheSmix: oh like Alpha-zero

MSmits: no alpha zero is completely a different thing

MSmits: it's a mcts with a neural network

IamTheSmix: he uses also opening book

MSmits: sure, it can do that, but thats' just a bonus, it's not the actual alpha zero

MSmits: you can use opening books with any algo

IamTheSmix: is it possible on CG ?

MSmits: what is

IamTheSmix: use openning book ?

MSmits: yes

MSmits: i have it on uttt and yavalath

MostComplicatedUsername: lots of typing...

IamTheSmix: how to get data on CG ?

MSmits: just part of the code

Hjax: got to be careful about the code size limits though

Uljahn: it's more like hardcoding, ye

IamTheSmix: ah but it souldn't over pass 50k !

Hjax: cant just export a massive tree

MSmits: for uttt mine is 8 kb and not even efficiently compressed

Hjax: how deep is it MSmits

MSmits: depends, as i said, against karlis o I go extremely deep, i just follow his moves. Maybe I use 50-100 moves just for his line of play. Probably 35 plies deep, some of them

IamTheSmix: I see intresting

Uljahn: does it account for symmetry?

MSmits: yes

MSmits: even symmetry between players

IamTheSmix: you took acount of reflexion too ?

MSmits: so an inverted board will have the same move

MSmits: with all Xs being Os

MSmits: reflection and rotation yes

IamTheSmix: did you get real bonux for rotation and reflection ?

MSmits: not that much

jacek: ohai

MSmits: well

MSmits: it does for the start

MSmits: because the first move of p2 has only 2 real possibilities

MSmits: corner and side

MSmits: without the symmetry it would be 8

IamTheSmix: I see

MSmits: jacek hi

MSmits: other types of transpositions are super rare though

MSmits: like, doing moves in a different order and coming to the same gamestate

MSmits: doesnt happen much in uttt

Nerchio: do you guys have any idea why i time out in the arena and never in the ide

IamTheSmix: hmm but it does for chess

MSmits: it does yes, but in chess you can also go back. Uttt is always progressive

Hjax: theres different computers running the games Nerchio, maybe you are getting a slower one sometimes in the arena?

Hjax: i dont think theres any performance different for java between ide and arena

Nerchio: my turns are usually like 10 ms there shouldn't really be timeouts ;s

MSmits: also ide runs without optimizations for some rlanguages

IamTheSmix: does mini-max can lead to legend ?

MSmits: sometimes optimization introduces bugs... it does in c++.

MSmits: I should say: optimizations reveal bugs

Hjax: i dont think theres any difference in optimization for java between ide and arena though

MSmits: probably not

MSmits: rust has it though

Hjax: rust is a neat language, i keep meaning to learn it

MSmits: Nerchio it might also be that the arena tests your bot against many different players and some play in such a way that causes timeouts

Hjax: but then i decide to do C++ instead, get frustrated with C++, stop, and the cycle continues :D

MSmits: the timeouts might not be actual timeouts due to calctime, but an infinite loop somehow

jacek: i did it!

jacek: darn reBless

MSmits: first win or did you make a better bot?

MSmits: better than re curse

jacek: first win and probably last one

MSmits: these NN's are ridiculously hard to beat

MSmits: I spent many weeks tweaking eval

jacek: got to tune the eval

jacek: still cant get the mcts with ept working

MSmits: my experience was that i would random rollout to depth 5 at first and slowly lowered it as the eval got better

jacek: do you use eval directly or if eval > 0 return 1 else return -1

MSmits: there's different ways to do it, but for onitama and oware i set a maximum/minimum

Nerchio: it says reading input takes 180 ms =/ is it possible that PR2 is an old game and is running different jvm than new games?

MSmits: so, say the maximum is 10k, then i divide the score by 10k and cap it to -1/+1

jacek: no tanh?

MSmits: should i do that?

jacek: sounds fancy

MSmits: I didnt get this from some paper, tanh would probably be better

MSmits: I should probably try that

MSmits: the danger of capping is that when you're ahead, all moves will count as a win

MSmits: but, that is what i am doing now

jacek: thats my problem probably

jacek: if locally eval says its win, all moves are win apparently

MSmits: could be. I have a parameter for the cap and i just fitted it till it worked

MSmits: the 10k i divide by

MSmits: the reason it is so large is because then i can use integers for all the features i calculate

MSmits: i am trying to google how to use the tanh, i remember seeing it in the context of training NN

jrke: astrobytes ;)

jacek: tanh or sigmoid(eval) should give you percentage of winning.

MSmits: sigmoid yeah, i found it

jacek: though you should scale your eval. i.e. sigmoid(0.003*eval)

IamTheSmix: you have choice sigmoid or ReLu

MSmits: yeah, that scale parameter is what replaces my hard cap

jacek: i.e. if you want being 10 seeds up should give 90%, scale accordingly

MSmits: it's just a different parameter to fit

jacek: if eval returns 0.1 do you backpropagate 0.1 and -0.9?

jacek: or 0.1 and -0.1.

MSmits: i have scores between -1 and 1

MSmits: so 0,1 and -0,1

MSmits: meaning the sigmoid needs to be shifted

jacek: ahh right

MSmits: i got that

MostComplicatedUsername: I have a question about pr2

MostComplicatedUsername: Does your hq start out owned by you?

Hjax: yes

MostComplicatedUsername: Hmmm

MostComplicatedUsername: odd

MSmits: would be weird if it didnt

MostComplicatedUsername: true

Hjax: you also get vision of your opponents hq on the first frame

MostComplicatedUsername: This is happening tho

Hjax: well, starting from the first frame

Hjax: so you can detect your opponents location

MostComplicatedUsername: I set my bot to move pods toward zones that arent mine

MostComplicatedUsername: And that happened

Nerchio: in private chat there is no pastebin automatic?

MostComplicatedUsername: yep

MSmits: nope

MSmits: just world chat

MSmits: it's to protect vs spam mostly

MostComplicatedUsername: msmits double negative = positive :)


MSmits: yes, i am a positive person

MostComplicatedUsername: No, I mean-

MostComplicatedUsername: You answered his question with "No", meaning that

MostComplicatedUsername: THere is pastebin in private chat

jacek: we dont need no education!

Nerchio: for anyone who has 1 minute and understands java, my last printline says 180ms sometimes and this is just reading input there is nothing there that can take that much time

MostComplicatedUsername: jacek you just said that you do-

IamTheSmix: I saw red discussion sometimes is it private ?

IjustKilledutoo: hello guys i am back

MSmits: jacek, I am going to try to see if my oware bot is better with your sigmoid idea

MostComplicatedUsername: IamTheSmix red means your name was mentioned

MSmits: have to code it first

MSmits: should not be too hard

IamTheSmix: Ok okay thanks

Nerchio: guys timer starts when you read first input right?

jacek: is this in while(true) loop?

MSmits: float sigmoid = -1.0f + 2.0f/(1.0f + exp(SCORE_REDUCTION * evalScore));

MSmits: is this correcT?

Nerchio: yeah reading every turn jacek if you were asking me xD

jacek: sounds like tanh

jacek: which should be in math.h

MSmits: hmm ok

jacek: Nerchio well it starts timer before first input from server

jacek: or this.startTime != startTime?

Nerchio: in some other challenge guys from chat told me to start the timer after first input

Nerchio: just to make sure it doesn't start during referee time or something

MostComplicatedUsername: sigh...

ganond0rf: for clash of code, how do you get your ranking up :0

MostComplicatedUsername: Win more

MostComplicatedUsername: :D

Default avatar.png Qass: 와우 친구들

Default avatar.png Qass: 빡빡이 아저씨야~

ganond0rf: it's based on a score right?

ganond0rf: does the score go up every time you win?

ganond0rf: does anybody know how it's calculated lol

wlesavo: MSmits i also use tanh if i want a f(t) between 0 and 1, brillouin is also nice but its kind of not a standart one

Hjax: @ganond0rf yes it goes up when you win, i believe its similar to trueskill

Hjax: it takes the rating of the people you played against into account

MSmits: wlesavo yeah it seems nice. Weird that I didn't think of it before

MSmits: testing my sigmoid version on cg bench now

Astrobytes: thanks jacek, now look what you've done :P

MSmits: capping it between two values is really ugly

MSmits: :grin:

jacek: Astrobytes thats making it more challenging

jacek: maybe i should show him my prune array

Astrobytes: :D

Astrobytes: lol, absolutely

jacek: and im finally top 10

jacek: though barely above agade

Astrobytes: Yeah I saw, gj man

MSmits: whats your prune array

Astrobytes: An array of prunes

MSmits: agade's bot is pretty strong

MSmits: so thats cool

jacek: used in cegimax

MSmits: I had versions of my bot that won 70% vs robo and re curse, yet lost half vs agade... some RPS going on

Astrobytes: Yeah, that's params for you MSmits

MSmits: right

Astrobytes: I had weird values that kicked robos ass and no-one elses lol

MSmits: yeah

MSmits: this leads me to think an opening book would be really strong in oware

MSmits: jacek, dont you have one?

Astrobytes: iirc it was the 1 or 2 seed params for some weird reason

Astrobytes: jacek has endgame book right?

MSmits: seems hard to write those

MSmits: game can end in so many ways

Astrobytes: Yeah I was saying that the other day, not the best idea. Opening book would be more useful imo

MSmits: I was thinking about end game books for checkers. It's really useless there

MSmits: but they use them in real competitions

MSmits: just too little codesize on CG

MSmits: you can do it in bandas though

Astrobytes: yeah, we play special CG versions of games due to platform limitations

MSmits: true

MSmits: brb

Astrobytes: k

LelouchVC2: Not as true as our quality service since 1992

jacek: i has opening book for oware

jacek: it goes around 10-18 plies against you

Astrobytes: Oh you do? And endgame too no?

jacek: no endgame

Astrobytes: I swear you said endgame, must've been someone else

LelouchVC2: What is this? Chess?

jacek: trictrac has endgame

Astrobytes: Oware Abapa/Awalé

LelouchVC2: oh

Astrobytes: Might have been him, I've had a few Oware convos this past week or so

Astrobytes: Yeah I think you're right jacek

MSmits: cg bench is going well

MSmits: and this is just my first guess for that parameter

MSmits: -- TOTAL -- GW=64,29% [ W=52,38% L=23,81% D=23,81% ] [42 games]

MSmits: vs my arena version

MSmits: so... thanks jacek :)

Astrobytes: Whatcha doing? tanh(evalScore) ?

MSmits: for now this:

MSmits: float sigmoid = -1.0f + 2.0f/(1.0f + exp(SCORE_REDUCTION * evalScore));

MSmits: but its equivalent to tanh

MSmits: i guess

MSmits: tanh will maybe be faster


jacek: what have I done...

MSmits: yeah because my eval has like 3k

MSmits: so has to be reduced

Astrobytes: Ah OK gotcha

MSmits: could be my new version is Rock vs my old versions Scissors

MSmits: oware is like that

MSmits: but the sigmoid thing can only be an improvement

MSmits: good news, i can also improve my Onitama bot with this

jacek: x_X

Astrobytes: rip everone

Astrobytes: *everyone

jacek: ban him before its too late

Astrobytes: Hey MSmits, spoke briefly with Thiesjoo, says your an awesome teacher :+1:

Marchete: by inviting euler or recurs3

Marchete: ups

MSmits: ah cool he is an awesome student though

Marchete: nvm

Marchete: old chat

Astrobytes: :P

Astrobytes: Yeah, seems so MSmits!

MSmits: next schoolyear i will only be teaching 11 50min classes a week or so

MSmits: I get a reduction because of studies

Astrobytes: Compared to how much right now?

MSmits: 15, but I also have some other tasks besides teaching

MSmits: basically it's a 30 hr a week job

MSmits: 75% of full time

Astrobytes: Cool, good you get a reduction for your studies and don't have to burn the candle at both ends too much

MSmits: I teach 4 50 min classes of CS next schoolyear and the rest is physics or physics-adjacent

MSmits: yeah

MSmits: i got a 20k scholarship basically

MSmits: so i use most of the money for that

MSmits: the work-reduction

Astrobytes: That's pretty sweet"physics-adjacent"

Astrobytes: oops

Astrobytes: "physics-adjacent" - ?

MSmits: yeah we have some subjects that are not called physics, but the stuff i do for that subject is basically physics

MSmits: like a class about solar cells

Astrobytes: Ah OK, specialised ones

MSmits: or a class about astrophysics

MSmits: yeah kinda

Astrobytes: Gotcha

MSmits: I have to do some design/research project next year and it's gonna be about teaching AI in CS

MSmits: design teaching materials and research the effectiveness

MSmits: I am going to do something with machine learning too... Great excuse to dive into it myself

Astrobytes: Nice! Do you need test subjects? CG might be useful

MSmits: well, it's going to be Dutch mostly, but if I write any software, I'll share

Astrobytes: As in for a population to study your teaching material effectiveness on

MSmits: yeah, but my teaching material will be in Dutch mostly

Astrobytes: Plenty Dutch on CG, sure they can put the word out for you

MSmits: ah yeah, i can show it to counterbalance or something

MSmits: might do that when the time comes, I will work on some project over the summer first, probably will try alpha zero. Just to do something practical with machine learning

Astrobytes: Nice. God help us all :P

MSmits: I doubt i will be making good bots with it. Robo is pretty good at stuff like this and he had most success with oware

MSmits: failed on some other multis, at least compared to his usual success

MSmits: i dont think it is easy

Astrobytes: Yeah, doesn't suit every domain, or requires a different approach

MSmits: I was thinking bandas might be good

Astrobytes: I think Csipsirip (sp. ?) is doing AlphaZero on Oware now too

MSmits: oh nice

Astrobytes: *Csipcsirip

MSmits: I am imagining you doing bird noises

Astrobytes: lol

Astrobytes: And Tiramon is working on NN with it too

MSmits: it seems natural, considering the parameter hell

MSmits: let the NN figure it out

jacek: also its simple game for input and only 6 outputs

MSmits: the depth of an alpha zero bot is crazy though

MSmits: they have like 30+ layers

RoboStac: the ones on cg don't

MSmits: oh

MSmits: just because you cant do that or because the games are simpler?

RoboStac: size limits

MSmits: ah I see

jacek: and computation

Astrobytes: Tiramon was tring some DQN with PER

MSmits: robo did you try training a bigger NN offline and test that?

Astrobytes: woops, chat scroll

jacek: google can afford that in minutes what normally takes years

MSmits: i think the CG size limit actually helps you in this regard, with a lower NN complexity, you need less training

jacek: but saturates quickier

MSmits: your bot will be weaker, but google wont do any better either, if they have to squeeze it into a small size

MSmits: right

RoboStac: I'm not actually at the size limit on oware, smaller / faster was working better than using all available size

jacek: TIL what was doing was stochastic gradient descent, not gradient descent

jacek: i was just too dumb for matrices

MSmits: RoboStac I imagine it's hard to say anything definitive with so many degrees of freedom in using a zero isnt it?

RoboStac: whereas my yavalath has had to be minified to fit

MSmits: ah yes, much more input and output

MSmits: more states

MSmits: statespace

MSmits: didn't you also do one for Bandas RoboStac?

RoboStac: proper alphazero has a much more complicated network structure too, I'm just using simple dense / convolution layers

MSmits: no residual?

MSmits: and skipping layers

RoboStac: oware/bandas/yava/breakthrough

MSmits: and such

RoboStac: no

Astrobytes: Did you get around to using hexagonal convolution on yava?

MSmits: I see

RoboStac: yeah, yava is hexagonal conv

Astrobytes: Nice.

RoboStac: it worked much better once I got that working

MSmits: hmm isn't it just a convolution NN that uses PUCT?

MSmits: with policy and value both drawn from the network

MSmits: seems more like halfa zero :)

MSmits: using a zero as inspiration but turned into your own coctail

RoboStac: yeah, you put inputs in and get a single score for that state and a policy score to guide the tree exploration for every child

RoboStac: if you ignore all the internals between the inputs and outputs it exactly matches alphazero :)

MSmits: nice

MSmits: well yeah

jacek: roboZero

Astrobytes: HalphaStac

MSmits: Arena GW=61,40% [ W=51,75% L=28,95% D=19,30% ] [114]

MSmits: pretty sure the sigmoid works

Astrobytes: Damn you jacek

Hjax: are you only doing selfplay MSmits?

MSmits: before i wasn't with oware

MSmits: i trained vs darkhorse, agade, recurse and robo

MSmits: well trained as in, fit params

MSmits: but shifting to a sigmoid doesnt require different opponents i think

MSmits: like fitting an exploration parameter doesnt

jacek: (should I tell him about texel tuning method for eval?)

MSmits: it's a pretty strategy-neutral change

Hjax: if you add enough params, it basically becomes a neural network anyway :P

MSmits: feels a bit like that

MSmits: texel tuning

MSmits: googling

jacek: :scream:

Hjax: texel is a rather strong chess engine

Hjax: that optimized its parameters in a specific way

MSmits: i would like auto fitting. But selfplay wont work in oware

MSmits: need opponents and thats a slow process with cg bench

Hjax: convince top players to send you their code for science

Hjax: that will surely work

MSmits: lol

jacek: you dont have your local 'arena'? without CG stuff?

LelouchVC2: What works every time is just looking at nothing intensly, and when they turn to see what you're looking and you snap a shot of their code

MSmits: I have one for 3 games, not for oware, because selfplay wasnt working to fit params

MSmits: so i never bothered to write a local arena

MSmits: wait

MSmits: did I?

jacek: i know! download the replays of tops players and make NN learn their moves

MSmits: ah no, i was working on a meta mcts for oware, not an arena

MSmits: supervised learning?

Astrobytes: I didn't finish my local arena for Oware

MSmits: jacek btw, i do something weird in self-play for meta mcts

MSmits: for efficiency, i let both players use the same search tree

jacek: oO

jacek: hm?

MSmits: so i dont have two instances of the game

MSmits: of the bot i mean

MSmits: just one bot playing moves from both perspectives

MSmits: saving the tree between turns

MSmits: that way i dont need two node pools and such

Astrobytes: Nice

MSmits: doesnt work when you are testign two different bots obviously

MSmits: i am not 100% this doesnt introduce some kind of bias

MSmits: but it worked so far

appel: lmao ndc

appel: i've not seen anyone this high of a level

appel: we're fucked

jacek: :?:

appel: a lvl 31

MSmits: where?

Hjax: smits is level 34

Hjax: assuming you are talking about profile level

appel: in our clash

Hjax: ah

MSmits: I've never done a clash

MSmits: and i would suck at it

eulerscheZahl: you didn't miss anything

MSmits: level doesnt mean that much

Hjax: yeah level doesnt mean much

Illedan: Clash is ok

MSmits: except in eulerscheZahl's case

MSmits: he can do everything

eulerscheZahl: except nintendo

jacek: even accept clash invitation!

Hjax: yeah but euler is also rank 1 on the normal leaderboards

Hjax: which is far more relevant than his level

MSmits: yeah

Astrobytes: Oh hey "enulerschezahi"

eulerscheZahl: the leaderboard for individual contests is what matters most to me

MSmits: say it enough and it might throw automatonnn off the scent

AutomatonNN: maybe i could have been that interesting

eulerscheZahl: hey anstrobits

Astrobytes: :D

eulerscheZahl: i saw that wrong ping some hours ago. missed the trailing i though

Astrobytes: I almost spat my coffee out, and I was on a phonecall at the time

MSmits: allright gotta finish some work. TTYL

jacek: dont forget to submit your bot

appel: there aren't an infinite amount of challenges

appel: the higher the level

appel: the more chance they did it before

appel: also the more experience so yeah...

eulerscheZahl: you don't rank up in levels for clashing

eulerscheZahl: so it's possible that a level 1 player knows (alomst) all problems

eulerscheZahl: or a level30+ user barely knowing any

eulerscheZahl: there is absolutely no correlation

Illedan: Wow, I didn't even manage to win vs a crashing player in PR2 -.-

Astrobytes: Not finished then Illedan? :smirk:

Illedan: Just tested 1 tiny little thing :innocent:

Astrobytes: :P

Illedan: I saw a stupid loss vs wala

appel: wait you don't get any experience for clashing

Astrobytes: Ah ok

appel: thats stupid

Astrobytes: Where did Nerchio's top 10 bot go?

Illedan: Hiding!

Astrobytes: lol

Nerchio: i don't like to sit in one place

Nerchio: so i submit whole day

Nerchio: xD

Astrobytes: Sima n has been creeping up slowly

Nerchio: also i had problems with garbage collector =/

Astrobytes: You use a pool? Allocate all resources on first turn?

Nerchio: not really

Astrobytes: JVM warmup issue?

Nerchio: hard to say but it got better now after i called System.gc() first turn

Nerchio: not sure if it does anything xD

Illedan: Sure it does if you you do some precalc which uses a lot of objects

Nerchio: yeah i did 160k objects first turn for path calculation :s

Illedan: :P

Nerchio: on the biggest map with 400 cells

Illedan: Then it helps

Astrobytes: calculate some dummy stuff first before your real stuff. And try without the gc

Astrobytes: See if it helps

Illedan: hmm, wonder if sneaky tactics helps on this one :thinking: hide a Pod in a corner and take all territory when enemy is not watching

Nerchio: i thought about it but

Nerchio: you need to get there somehow and you leave a trail

Astrobytes: Sure I saw that in a replay, pod skulking around near a high value zone and then essentially flanking opponent and stealing the territory

Nerchio: but maybe it's worth playing with some random single pods doing havoc :D

Hjax: i was happy that my python bot was able to bfs the whole map on the first frame without timing out

Hjax: i didnt have high expectations

Nerchio: :D

Astrobytes: :

Astrobytes: :)

Hjax: usually i write my first bot in python and then rewrite in java

Hjax: but python has been fast enough for pr2 so far

Astrobytes: Considering PHP in top 10, you should be OK :P

Hjax: is php slower than python somehow?

Hjax: thats impressive

Astrobytes: I thought they were around the same or PHP was worse. Caveat: my PHP knwoledge is a little out of date

Astrobytes: *knowledge

Astrobytes: I'm happy to be corrected if I'm wrong on that

AbundantPuddle: Are you talking about runtime?

inoryy: assuming it's purely language itself (e.g. no numpy), PHP should be faster afaik

Astrobytes: Cool, thx inoryy

Astrobytes: They've evidently improved it a lot in the last few years :)

AbundantPuddle: What inoryy said. However, Python is still better. :stuck_out_tongue_winking_eye:

inoryy: yeah, they're even adding JIT to PHP8

Astrobytes: I remember when python was a seldom used little scripting language and perl was king AbundantPuddle

Astrobytes: Oh nice inoryy

AbundantPuddle: I actually took asp in university so...

AbundantPuddle: Lmao

Astrobytes: Now if only they'd do something about the syntax :P

inoryy: I think it's fine-ish; the stl API was a mess when I worked on it, I assume they've improved it

inoryy: type system in PHP is much better than in python

Astrobytes: Honestly been yonks since I worked with it. Maybe I should look into it again.

jacek: yoink!

Astrobytes: jacek "noun, informal British: a very long time"

jacek: ooh

inoryy: same for me, last line of PHP code I wrote was over 5 years ago; I hear about it from time to time when I meet (ex-)colleagues :)

AbundantPuddle: My focus was in Java when I went to college for software development. On here, however, I've been trying to focus on Python. It is a very versatile language.

Astrobytes: I think my last PHP was around 2008-9?

inoryy: wow that's the dark ages

Astrobytes: Yes. We called them that at the time.

Astrobytes: I was only working with it informally but I was glad I had a good working knowledge of perl at the time

Astrobytes: Made old PHP look like VB or something

Astrobytes: And don't get me started on security issues

inoryy: I think I was lucky enough to start right when PHP5.3 came out which was the first good patch

Astrobytes: When off-the-shelf PHP CMS's became usable again :P

Astrobytes: I think I did some updates around 2009-2010 but my memory is a bit sketchy

Default avatar.png IgorKoval: guys, is anyone here?

Astrobytes: Nope.

Default avatar.png IgorKoval: look, It says there was a failure, but the found value is the same as Expected, how is it possible?

Default avatar.png IgorKoval:

Astrobytes: Been a looong time since Idid that but you need either spaces or a newline, I forget

Default avatar.png IgorKoval: yea, I tried both of them but looks the same

Default avatar.png IgorKoval: you see that I have the right amount of spaces

Default avatar.png IgorKoval: and if I append \n it also does not help :S

Astrobytes: Do you need a newline first? I honestly cannot remember

Default avatar.png IgorKoval: am I able to print while scanning?

Default avatar.png IgorKoval: or do I need to scann all and only then print?

jacek: you can print to stderr

Default avatar.png IgorKoval: yes I can, thar what I did with L H and Msg

Default avatar.png IgorKoval: it is really wierd, because It says That it found the same as expected, but still is a failure xD

Default avatar.png IgorKoval: ok guys, thank you anyways

Default avatar.png IgorKoval: ok, I think the problem is that I can't print before scanning every argument

Astrobytes: Ohhh yes you print debug to stderr

Astrobytes: not to stdout, only print the answer to stdout

Astrobytes: System.err.println(whatever);

Default avatar.png IgorKoval: yes, that's what I was doing, but that is for debug

Default avatar.png IgorKoval: for the answer I print to stdout

Default avatar.png IgorKoval: System.out.println(answer_string);

Default avatar.png IgorKoval:

Astrobytes: Oh I see, yes, don't print to stdout until after you've read everything in

Default avatar.png IgorKoval: oh ok, I print only after reading everything?

Astrobytes: Yes

jacek: eeyup

Default avatar.png IgorKoval: ok, so I need to store the string

Default avatar.png IgorKoval: and print in the end

Astrobytes: "eeyup"

Default avatar.png IgorKoval: hehe

Default avatar.png IgorKoval: thanks, I'll try

Default avatar.png IgorKoval: lol

Default avatar.png IgorKoval: still the same problem

Default avatar.png IgorKoval:

Default avatar.png eriko: elo

Default avatar.png IgorKoval: hey

Default avatar.png eriko: co tam Igor

jacek: ohai

Default avatar.png IgorKoval: co tam? xD

Astrobytes: It's like what's up/what's happening in Polish

Astrobytes: like "wassup"

Default avatar.png IgorKoval: ah haha ok, I dont speak Polish xD

Astrobytes: I don't either, just worked with a few guys :P

Default avatar.png IgorKoval: I'm fine, just a bit sad that the code is not being accepted xD

Default avatar.png IgorKoval: as they say, "the machine is always right"

Default avatar.png IgorKoval: it only does what we say to do

jacek: AutomatonNN is that true?

AutomatonNN: for now i want to see the code and i didn't even know that the end of the game

Default avatar.png IgorKoval: haha how he appeared here right after your comment xD

Astrobytes: What do you think Automaton2000?

jacek: AutomatonNN is addict

Automaton2000: what do i do this?

Default avatar.png IgorKoval: hahaha

AutomatonNN: eulerscheZahl is there a way to see a replay of your code and i can't see the result

Default avatar.png IgorKoval: is he a BOT? xD

Astrobytes: AutomatonNN are you a bot?

AutomatonNN: why do you think it's the best to get in the contest ?

Astrobytes: What about you Automaton2000, are you a bot?

Automaton2000: except if you do it right

Default avatar.png IgorKoval: yes AutomatonNN is a bot, just answers random stuff xD

struct: IgorKoval you are printing an extra soace

Default avatar.png HaZardous: hey everyone , im new her, hope youre having good day

struct: space*

struct: I think

Astrobytes: I said that originally but where?

Astrobytes: (well I said space or \n)

Default avatar.png IgorKoval: hmm I don't think so

Default avatar.png IgorKoval: he is asking for an extra space

Default avatar.png IgorKoval: if you see the quotes

Default avatar.png IgorKoval: it contains an extra space "### "

Default avatar.png IgorKoval: @struct thank you anyways for the review xD

Default avatar.png IgorKoval: hey HaZardous! ça va?

jacek: good good Astrobytes, keep pushing me up

Astrobytes: fk off jacek :P :D I'm just testing some eval params

Default avatar.png HaZardous: @igorKoval what? im sprry i speak english and urdu

Default avatar.png HaZardous: sorry*

Default avatar.png IgorKoval: ahah it was just a joke, it means how are you in French xD

Astrobytes: Be pulling you back down soon jacek :D

jacek: evil params

Default avatar.png IgorKoval: what are you talking abou guys? Astrobytes

Default avatar.png HaZardous: oh im good :p, how you doing??

jacek: multiplayer game, oware-abapa

Astrobytes: A multiplayer game IgorKoval, Oware Abapa

Default avatar.png IgorKoval: I'm fine to :) just thinking what's wrong with my code -.-

Default avatar.png HaZardous: haha arent we all

Astrobytes: Nope. I know exactly what's wrong with mine.

Astrobytes: It's s**t :)

Default avatar.png IgorKoval: haha I know that game Oware abapa

Default avatar.png HaZardous: oh here comes the bragger, haha good for you

Default avatar.png IgorKoval: hahah xD nice one

Astrobytes: lol no, not bragging HaZardous, it's completely true

Default avatar.png IgorKoval: it is really wierd, it accepts the answer if I just hard coded, but if I print the variable with the same string it is not accepted -.-

MostComplicatedUsername: My pr2 bot is now winning consistently against the ai

Default avatar.png HaZardous: im happy for you astrobytes :)

Astrobytes: IgorKoval stderr your hardcoded result, stderr your generated result and check the difference


Astrobytes: I'm not HaZardous, I'm losing!

Astrobytes: :d

Astrobytes: gj MCU :)

MostComplicatedUsername: It's random movement unless there's a zone I don't control right next to it or the enemy's hq is right next to it

Default avatar.png IgorKoval: Astrobytes, I find no difference

Default avatar.png IgorKoval: congrats MCU xD looks nice

jacek: does the answer += "\n" make unnecessary new line for printLN?

Astrobytes: aha

Default avatar.png IgorKoval: haha yes it does, but I print it all in one command

jacek: but then you would print 2 new lines at the end instead of one, no?

Default avatar.png IgorKoval: yes, but it puts \n in the end of the string, so if you have a string like "potato\n apple" it will still have 2 lines,

jacek: what about "potato\n apple\n"

Default avatar.png IgorKoval: it will end up with 2 lines, and 2 emplty lines in the end

Default avatar.png IgorKoval: like:

Default avatar.png IgorKoval: oops xD

jacek: ok

Default avatar.png IgorKoval: do you know if answer_string += String.valueOf(answer); affects the string?

Default avatar.png IgorKoval: I mean if it changes the characters in some different way xD

jacek: what if you used new StringI(answer)

Default avatar.png IgorKoval: answer is an array of char

Default avatar.png IgorKoval: cannot be printed directly

Astrobytes: valueOf can convert char array to string tho

Default avatar.png IgorKoval: yea, thats what I did

Astrobytes: Sorry, doing about 4 things at once here :/

Default avatar.png IgorKoval: np

Astrobytes: You can just paste your whole code if someone has time to go through it?

Default avatar.png IgorKoval: sure, its not that long

Illedan: PR2 froze again? :(

Default avatar.png IgorKoval:

Astrobytes: Illedan, please do me a favour and confirm that in the debug channel on Discord, they don't seem to take it seriously

Nerchio: I don't think you should Astrobytes

Illedan: hm?

Astrobytes: I shouldn't what Nerchio?

Illedan: Works again now

Nerchio: i think you were talking about pasting whole code :D

Nerchio: thought*

Astrobytes: Yes, just for ASCII Art

Illedan: w00t, won re Curse on submit :tada:

Astrobytes: Easy puzzle, we're helping him debug :)

Astrobytes: Nice Illedan

Nerchio: I didn't get a single game vs marchete or recurse yet ;pp

Illedan: It's no fun

Illedan: Straight into lose streak

Nerchio: ;(

Illedan: Easy to beat re curse on small maps :D

jacek: IgorKoval the string is length of 100 :o

Default avatar.png IgorKoval: hmm is that a problem?

Default avatar.png IgorKoval: I was just thinking abou that

Default avatar.png IgorKoval: -.- yes, it was accepted if I define the string as 4 lenght

Default avatar.png IgorKoval: so it means that it was copying the null characters too :S

Default avatar.png IgorKoval: thank you jacek

Astrobytes: oh lol, I forgot to put your code inside the Solution class :facepalm:

Astrobytes: Anyway, that's only gonna work for that one testcase

Default avatar.png IgorKoval: hahaha

Default avatar.png IgorKoval: yea, I know, it was just a test code xD

Astrobytes: Cool.

Default avatar.png IgorKoval: now its progressing :P

Default avatar.png IgorKoval: thanks

Default avatar.png IgorKoval: done the first 3 cases

Astrobytes: Thank jacek, I can't even paste code correctly :P :D

Default avatar.png IgorKoval: DONE :)

Default avatar.png IgorKoval: another 100% :)

Default avatar.png IgorKoval:

Default avatar.png IgorKoval: thank you guys

Default avatar.png IgorKoval: heres the code if you want to use it

Default avatar.png IgorKoval:

Astrobytes: No I did it already, just not in Java

Astrobytes: Congrats IgorKoval :)

Default avatar.png IgorKoval: do it in Java for another achievement :P

Astrobytes: I try to do as little Java as I possibly can :P

Default avatar.png IgorKoval: thank you :)

Default avatar.png IgorKoval: why? you dont like java?

Astrobytes: Hehe, not my thing no :)

Default avatar.png IgorKoval: what language you use?

Astrobytes: C++ mostly, depends what I'm doing

Astrobytes: I'm not getting into a "my language is better than yours" fight btw ;)

Default avatar.png IgorKoval: I usually prefer C, but it have been a lot since I programmed in C so I forgot the rules about the pointers and some funcions

Default avatar.png IgorKoval: haha I'm not a programmer, so I have no opinion about the languages xD

Astrobytes: Yeah I'm actually a biologist, not a programmer by trade

Default avatar.png IgorKoval: I like Java, and Python seems nice from my little experience

Default avatar.png IgorKoval: :O nice :)

Default avatar.png IgorKoval: so why do you need programming in biology? run simulations?

Astrobytes: lol, well, there is bioinformatics which deals with that, but I don't do that. I'm assistant manager at my local wildlife conservation centre and I do pharmaceutical regulatory affairs part-time

Astrobytes: CG & programming is just a hobby these days

inoryy: assistant to the manager*

Default avatar.png IgorKoval: hehe that's a nice hobbie :P

Astrobytes: More of a case of manager to the designated manager inoryy (all industries are the same)

Astrobytes: Things are a bit messed up now though since the COVID outbreak

inoryy: it was a reference to the best tv show of all times :P

Astrobytes: ohh, never watched the American series

Astrobytes: Did you watch the UK series?

inoryy: it's one of the rare cases where the remake is better

Astrobytes: That's so *not* the UK opinion

inoryy: yeah, re-watched both multiple times

Astrobytes: lol, I'm not the biggest fan but I'll maybe give the US version a go

Astrobytes: Working through Better Call Saul rn

inoryy: I think if we go by S1 vs S1 then UK one is a bit better because the US one just tries to replicate it but the deadpan jokes don't land as well

Default avatar.png FriendlyFire: hey guys I have serious question

Default avatar.png FriendlyFire: what the imax function excatly do ?

Default avatar.png FriendlyFire: does*

inoryy: but US series has the benefit of developing

Default avatar.png FriendlyFire: help?

Astrobytes: See that's what I worry about with the US ones, is that British humour is what makes The Office the Office (if you get me)

inoryy: FriendlyFire can't answer without knowing more context, e.g. what language

Astrobytes: Anyway, the best judge is the viewer so I'll give it a go at some point

Default avatar.png FriendlyFire: oh sorry C++

Astrobytes: grrrrrr a leaderboard freeze when I'm right under jacek in Oware

Astrobytes: One is not amused

Default avatar.png FriendlyFire: what 'imax' does jesus TELL ME

DestroyTasmania: yo chill

Default avatar.png FriendlyFire: man I NEED TO KNOW MENTALY

inoryy: well, it's not part of C++ STL so still missing context

Astrobytes: imax? You're doing The Descent?

Default avatar.png FriendlyFire: yea

inoryy: if I were to guess I'd say it casts vars to int and picks a max from there

Astrobytes: There's a button to the left. Says 'Hints' on it or something. Read them.

Default avatar.png FriendlyFire: hmm makes sense

Default avatar.png FriendlyFire: at list that.. thanks man

Astrobytes: I mean *read*

Default avatar.png FriendlyFire: I read them but I didnt figure it out and I did

Astrobytes: As in process it in your head and understand it. Otherwise you'll get nowhere.

Default avatar.png FriendlyFire: sure I will try it again tommerow

Astrobytes: Cool. Don't give up.

Default avatar.png FriendlyFire: thanks yt

Default avatar.png FriendlyFire: by the way

Default avatar.png FriendlyFire: which language you learn or learned?

Astrobytes: I mostly program in C++ but that's not relevant

Default avatar.png FriendlyFire: sure just curious bro

Astrobytes: I can use a lot of languages depending what I need to get done

Astrobytes: I'm not a dev btw

Default avatar.png FriendlyFire: why not

Default avatar.png FriendlyFire: you should

Astrobytes: I already have 2 jobs! :D

Default avatar.png FriendlyFire: sounds great

Astrobytes: It's not.

Default avatar.png FriendlyFire: hope to get a job it will keep me motivate to learn more

Default avatar.png FriendlyFire: why not

Astrobytes: No, your motivation comes from you

Astrobytes: Don't expect it from a job, you are your own master

Default avatar.png FriendlyFire: yea but if I have a "code enviroment" it will help me a lot

Default avatar.png FriendlyFire: to get better for my economy.. and life

Astrobytes: Depends on the environment. Not all working environments are created equally ;)

Astrobytes: Motivate yourself to learn and you'll go far

Default avatar.png FriendlyFire: yea I starting now with 20 min every day

Default avatar.png FriendlyFire: lol

Astrobytes: Better than 0 minutes a day right? :)

Default avatar.png FriendlyFire: YEA

Default avatar.png FriendlyFire: thats the nice think when I start its easly comes to an hour lol

Astrobytes: Shows you have interest. So learn and don't give up, every problem is an opportunity to learn - don't forget that one

Default avatar.png FriendlyFire: yea mistakes its good if you learn from it :sunglasses:

Astrobytes: Yes, 100% I gotta go now, take care dude and good luck :)

Default avatar.png FriendlyFire: ok I go now bro add me I new here

Default avatar.png FriendlyFire: yt

Nerchio: ranking stuck (

Default avatar.png JBM: time for moar tvc

Default avatar.png journeyvivek: hello

Default avatar.png journeyvivek: hello

Default avatar.png boom69: i really suck at coding

Crypticsy: hey the leader board for Spring Challege 2020 is bugged, i don't get any score after i submit neither does my score changes while the battles are working fine

jrke: seems CG leaderboard stucked for a while not computing for PR2 and Bit runner also