Chat:World/2020-12-18
Robin_Hood: please use english
Robin_Hood: ouldn't understand
eulerscheZahl: now he has to create a new account
eulerscheZahl: his approval vote for my blockout puzzle is gone
Westicles: hii
eulerscheZahl: good morning
SanJJ: good morning !
jacek: good morning Sir/Madam
B00M3RiNGU3: jesus lord, why couldn't this site just have videos to teach us
Damaxal: what should they teach you?
B00M3RiNGU3: like, is there a way to learn where goes what and why it goes there without having to look it up on external sites?
Westicles: teach you not to blaspheme!
mzbear: programming always involves having to look things up from external resources
B00M3RiNGU3: then what's the point of this site being here if itself is supposed to be an "external source"?
B00M3RiNGU3: seems kinda counterintuitive
mzbear: you work on the puzzles here, learning by doing, and the site verifies your answers. it's quite nice, really
B00M3RiNGU3: it's legit just throwing me into a pit and expecting me to know how to climb out after having me input one number
B00M3RiNGU3: havent found one puzzle yet that is explanatory or easy to understand
mzbear: well, why aren't you climbing? :D
mzbear: try writing some code, see what you can do with the input you got
mzbear: it doesn't have to work the first try
mzbear: the important part is being able to see what your code does
Westicles: the world needs fry cooks as well
B00M3RiNGU3: its not knowing where stuff goes and why it goes there that it needs to teach someone like me
darkhorse64: This site is not about teaching, it is about competitive programming. You will learn something by programming puzzles or bots but it will not give you the basics.
mzbear: everything's difficult in the beginning. it'll get easier once you get started
mzbear: if you haven't decided on a programming language, i recommend python 3. then google some resources about "conditions" and "loops" in python 3 to get started.
mzbear: and start with this puzzle: https://www.codingame.com/training/easy/power-of-thor-episode-1
situu: but if u want to master game development i recommend lua
mzbear: any language is fine, as long as you can find resources that teach you the basics about it
mzbear: anyway, that Thor puzzle is quite easy. It only requires you to know variables and conditions.
situu: I couldn't see the video tho
situu: so i died multiple times
mzbear: oh wow, didn't know intel had such useful interactive guide for their special instruction sets: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#cats=Bit%20Manipulation
jacek: :thinking:
mzbear: oh, it spells out "boobs"
situu: what's with the numbers
mzbear: 13 = B ... that's with the numbers. it's a highly intellectual joke
jacek: 80085?
Astrobytes: wtf
NorwegianMori: hello from the other side
struct: enough with the spam
JKROwling: how to become a moderator?
JKROwling: what is the criteria?
Astrobytes: Can see where that was headed
mzbear: not spamming "boobs" is a good start
Astrobytes: hey, that got me my moderator status
MSmits: thats how i did not :(
Astrobytes: :D
mzbear: alright, second iteration of Yavalath bot done. still no search, but now i'm taking forced moves too
mzbear: seems to do a bit better than pure random
Astrobytes: oh your doing yava, nice :)
situu: right about to solve Futoshiki Solver
Aayush.Curious: oh..puzz of week
MSmits: yeah, nice one mzbear
MSmits: would be cool to have more players
MSmits: btw, get your steals set up correctly. Steal all center squares. dont steal the corners and the mid hexes on the edges
MSmits: (center = 7 hexes)
mzbear: i've kinda started preparations for making search, by optimizing the heuristics as much as possible
mzbear: i'm only stealing centers currently, since i have no idea what moves are good moves yet
MSmits: well basically i just told you :)
MSmits: corners and mid edges are bad
MSmits: centers are good, so steal. Rest is pretty balanced
MSmits: I simulated around 4 million games, so I'm fairly confident :)
mzbear: wait, all 7 center hexes are good? mmkay
MSmits: yeah i solved them as awin
MSmits: so you can technically always win if you take them
MSmits: you do have to have a good bot of course, but it should increase your win chances at the very least
mzbear: alrighty then, i'll write down a TODO comment and do that a bit later, right now the stealing is a hack and i need to rearchitecture the code first :D
MSmits: sure, if you want to get a good bot fairly quickly, probably go minimax
MSmits: it's not worse than mcts
MSmits: and much easier to code
mzbear: mcts isn't that hard either, it's just more annoying to tune
MSmits: it's reasonably difficult here
struct: on yavalath is harder
MSmits: because fully random rollouts dont work
mzbear: my biggest problem is that i dont feel like setting up a local testing environment
MSmits: if you random rollout, almost every game ends because someone suicides with a 3 in a row
mzbear: so i'm coding in this web editor ... and my display is fairly small, so that code editor is 60x25 characters large only :D
MSmits: eek
mzbear: i already have fairly fast heuristics to prevent 3 in a row etc
MSmits: yeah, if you put those in the rollout, it should do ok
MSmits: also try to take the win automatically in the rollout
struct: are you doing bitboards mzbear?
mzbear: i go through all 61 moves in ~0.015ms currently, testing for 3-in row and 4-in-row
mzbear: yep, bitboards in BMI2
MSmits: you mean you use intrinsics
MSmits: ?
MSmits: I would guess pdep, pext, pop count and ctz/clz
mzbear: http://chat.codingame.com/pastebin/7707c253-909f-4fbf-aba9-9a8fee6e07c2
mzbear: there's an example
MSmits: well close enough, thats 3 out of 5 guessed right :)
mzbear: i do use popcounts for other tests
MSmits: ah ok, yeah you kinda need it to generate a random number
MSmits: btw, if you go further into it, it can be worth checking for traps
mzbear: oh hey, i didn't even think of that yet
mzbear: popcount + pdep to pick a move, yes yes yes
MSmits: but ofc first just get something working :)
MSmits: this sort of thing is very bug prone, small steps
mzbear: right now i'm just looping through all moves and doing reservoir sampling
MSmits: whats reservoir sampling
mzbear: if(rand()%n++==0)
MSmits: no idea what that does
mzbear: so i dont need to store the moves anywhere, i just iterate through them all
MSmits: randomlu?
MSmits: u=y?
MSmits: seems weird to iterate over all and yet use random
mzbear: well, that provides an uniform distribution
MSmits: ohh right
MSmits: this is monte carlo
mzbear: except without search
MSmits: good way to start
mzbear: :D
MSmits: it's kind of a search
MSmits: it's MC search
mzbear: well, kind of. i just discard bad moves and pick decisive moves, otherwise it's random
MSmits: ah ok
mzbear: since i dont evaluate any future states yet
MSmits: big difference between this game and uttt is the early ended games
MSmits: if I do a mcts and i get to ply 10 or so, often 80% of nodes are immediately solved
mzbear: it would probably be more efficient to do the 4-in-row and 3-in-row tests after mutating the board
MSmits: because they fail to block some trap
mzbear: looks like i got rank 50 with this
MSmits: over halfway up the ladder
struct: fish is the highest minimax right?
MSmits: tric trac
MSmits: but basically just as good
MSmits: the only reason tric trac is up there is probably because i got dafish's tree solved better
MSmits: also
MSmits: dafish both experiments more with bad moves
MSmits: bot
MSmits: tric trac has a tiny opening book i think
MSmits: there's also a neural network
MSmits: rob
MSmits: +o
struct: is it strong?
MSmits: he thinks he failed, but it actually makes good moves
MSmits: its just super deterministic
MSmits: I had to work pretty hard to find the correct counters
MSmits: maybe jace k can make a better NN or his ntuple bot, he always uses random so that will be interesting :)
MSmits: anyway have to walk the dog, ttyl :)
struct: cya
Westicles: struct, if you get control again you should change it to octagons. kill 2000 hours of work for him :)
Westicles: well, of course octagons don't tile...
mzbear: change it to penrose tiling
MSmits: lol
MSmits: he could also just remove the center hex
MSmits: that would do the job as well
MSmits: maybe put a volcano there and call it Lavayath (trademark Astrobytes)
hbq123-boop: devalaya patlayam
situu: anyone finish the clash of code??
jacek: still working on that n-tuples. quick testings show 65% winrate against the mcts
MSmits: nice
jacek: actually i tried mlp n-tuples. with fixed nodes it is better but too slow
MSmits: what is mlp again?
darkhorse64: all 4 n-tuples for Y ? Using symmetry ? Yes, I read all your references papers and I think I could write one now. The training part is less clear in my mind
jacek: multi-layer perceptron MSmits
MSmits: ahh yes
jacek: yeah, i use all 4-in-rows
MSmits: funny thing is, i have a bot thats all set up to do that
jacek: no symmetries in the n-tuples
MSmits: but no way of training the params
MSmits: so i have some set params
MSmits: handpicked
darkhorse64: I mean using board symmetry to divide the # of 4-tuples by 6
MSmits: he does use that
MSmits: by 12 actually I think
jacek: no, i use 102 n-tuples uniquely
MSmits: not to train though?
jacek: it is just i use symmetries for training so i have 12x more data
MSmits: yeah
MSmits: I guess it's not exactly divided by 6 or 12.
MSmits: some ntuples are 6-symmetric, others 12 or even 3
MSmits: mmh no 3 doesnt seem possible
jacek: im too dumb to make symmetries of them and to make them efficiently
MSmits: me too
MSmits: doubt it will be worth it
MSmits: I only do it in meta mcts
jacek: do you know how many unique of them are?
MSmits: not sure, but i guess around 16?
darkhorse64: Too much to do. I have some ideas to improve my score at AC, now that I understand BeamSearch, I want to get Legend at HS and reach level 40, ...
MSmits: you never did beamsearch before?
MSmits: it's one of the easiest algorithms to figure out
darkhorse64: no, first on FC2020
MSmits: well cool, another tool
struct: me too
struct: Icebox teached me
MSmits: i used it in ooc, HS, probably others
jacek: FC2020?
MSmits: stupidly named contest
DomiKo: Fall Challange
DomiKo: 2020
darkhorse64: I did a BFS for FC without realizing I was not going deep enough (I made the wrong tests). I also realize that I should have tried that at SC2020
MSmits: oh right, i did beamsearch there too!
MSmits: the pacman
darkhorse64: I move from 140 to 50 with BS and a better scoring
darkhorse64: pacman was a disaster. I knew my search was poor but I did not know how to focus on rewarding paths
MSmits: a lot of players viewed it as a disaster, but i think it's mostly because it was just a hard game
MSmits: there were 5000 contestants, remember that when you look at your 140 rank
darkhorse64: A disaster for me. I do not blame the game
MSmits: me neither, the game was ok
MSmits: but because its so hard, its easy to think its your own fault for not getting a neat/clean search going
darkhorse64: at SC, I was 350 but I am slowly sinking
MSmits: while really, most players were flailing in the dark
MSmits: ohh ok i thought you meant SC 140
MSmits: i have no idea about FC, didnt have the time :(
struct: my code is a mess
MSmits: btw darkhorse64, I am testing that full rollout thing for uttt again... hope this time you're right and it works
darkhorse64: FC 140/7000 is a decent result for me
MSmits: yeah seems good
darkhorse64: I have drifted to 16th at UTTT, Time for a revisit
darkhorse64: ?
MSmits: depends, there are probably some things you can improve
MSmits: public knowledge has changed
jacek: full rollout thing?
MSmits: just simulating from each child, instead of just one
MSmits: i didnt get it to work for uttt
MSmits: but use it almost everywhere else
MSmits: somehow it was always worse with uttt
darkhorse64: The only quick win I think of is to add a multiply bonus in my nodes for the value and classify nodes against wins, free moves, and teccles strategy
MSmits: yeah
MSmits: those should be tried
MSmits: remember, you can also use teccles inside the search
MSmits: not just when picking a move
MSmits: expansion will give you 1 child then
darkhorse64: inside the rollout not only during selection ?
MSmits: if you do it in expansion, you can for sure do it in the random rollout
MSmits: since the demand for accuracy is even lower there
MSmits: so just do it everywhere. I lowered it to end at ply 20 just in case
MSmits: so i only do it before 20
MSmits: in endgames it's sometimes a bad choice
MSmits: also look at the center move if you want
MSmits: it's almost always bad, especially when the board is nearly empty
darkhorse64: Biasing the selection is one thing, biasing the rollout is more dangerous. Apart from book things, is there other "public" knowledge that I should know of ?
MSmits: these are the main things I think
MSmits: currently i have a better way of testing new bot ideas
MSmits: i add + random(0,01) to every move
MSmits: so that i dont overfit
MSmits: that way no submit is needed
MSmits: or CG bench
jacek: bonus for win small board and penalty for ending up on solved small board
MSmits: yeah i dont currently use the bonus for winning small board
MSmits: it didnt work for me
MSmits: but the other one did
MSmits: clear advantage (55%)
MSmits: I just add 0.2 to avoid rree moves
MSmits: free
MSmits: err subtract
MSmits: from UCT score
MSmits: that's a big penalty
MSmits: it's like you're saying this node has 10% less winrate
darkhorse64: I was thinking UCT like bonus * value + regret, bonus being 0.85 or 1.15 or 1.0
MSmits: but all of these bot tweaks interact. If you add one, the other becomes worse
MSmits: hmm thats dangerous
MSmits: because if you do bonus * value, then when the value is negative, the bonus hurts you
MSmits: I just add the bonus
MSmits: in your case, if a node has winrate 50%, then the value is 0 and there is no bonus either
MSmits: inline float Value() { return wins / (float)visits + bonus; }
MSmits: inline float UCT(float sqrtLogVisits) { return Value() + sqrtLogVisits * rsqrt_fast(visits); }
darkhorse64: I was thinking of a mutiply factor because the regret is unbounded. Yeah, quick/easy/cheap fix to the engine
MSmits: you could also use progressive bias
MSmits: bonus reduces with more visits
MSmits: but you need to have *a lot* of visits before a free move node is properly valued
MSmits: there are so many moves and most of them are bad
MSmits: so it has a low value for a long time, until some of the board-winning moves get selected and significantly raise the node value
MSmits: needs thousands of visits
darkhorse64: From my archives, the Russians and Ukrainains are using a constant bonus
MSmits: yes, thats where i got it from
MSmits: but they did it weirdly
MSmits: they added it to the backpropagation
MSmits: but thats the same as just adding it in selection
MSmits: this way is cleaner
darkhorse64: You are almost tempting me. :slight_smile:
MSmits: not really trying to. I just like to talk about it
MSmits: i can tempt you to try other board games as well
MSmits: just let me know which you want and i'll boost your motivation by spamming about it
MSmits: i've been thinking about breakthroughm but i am stuck as much as you are
MSmits: I really want to try a meta mcts for it, but i need a good bot first, my bot is crap
darkhorse64: I'll stick to my plan. Legend HS and level 40.
MSmits: HS is fun
MSmits: legend should really be doable
MSmits: legend itself is a mess
MSmits: good idea to stop when you get there
darkhorse64: I want to be above the clones.
MSmits: oh, then you're entering the mess
MSmits: submissions will tell you nothing
MSmits: because the ratings are too close
jacek: clones?
MSmits: yeah 3rd in contest shared his bot on gith
MSmits: so its full of clones
darkhorse64: Which rank is above the clones ?
jacek: :no_mouth:
MSmits: dunno exactly, but probably around 20
MSmits: well
MSmits: 60 if you dont count improved clones
MSmits: the funny thing with HS is that you dont need to really worry about performance too much
darkhorse64: OK. Scoring 4K + CP is not going to be easy
MSmits: once your bot is fast, you can go very deep with only like 10 ms
MSmits: what is 4k + cp?
MSmits: oh
MSmits: thats what you need for some rank?
darkhorse64: Same for FC. More than 4000 CP
MSmits: the grap is pretty steep isnt it
MSmits: graph
darkhorse64: In a way, yes, I have an internal competition with daaskar e.
MSmits: do you know him personally?
darkhorse64: Yes
MSmits: wait a min
MSmits: you're like 1 rank below me
MSmits: yeah
MSmits: so i'm gonna be dropping further :P
darkhorse64: steady and stubborn progress. Code golf, optims point by point
MSmits: yeah if you focus on it, rank is pretty easy to get
MSmits: i got some good boost from quest progress
MSmits: hardcoding code of the ring :P
MSmits: reeeally should have beamsearched that
darkhorse64: I did too. Beam Search CotR ? I did something simpler, Bruteforce on the four next chars but it's not very good but sufficient to be above many and benefit from all other contestants
MSmits: I went through every case by hand
MSmits: took the entire afternoon
MSmits: at the end i was ranked 50 :P
MSmits: one case is horribly long but i made it
darkhorse64: 2K steps difference with me. Huge gap
darkhorse64: I did not try searching because clearly "functions" are the only way to score well
MSmits: shows how difficult it is to search
MSmits: if you can do better by hand
MSmits: like numbershifting
MSmits: some got to level 100, i had great trouble getting past 61 at first
MSmits: with a search
darkhorse64: You know Marchete's LAHC NS ?
MSmits: nope
MSmits: whats that
jacek: hill climbing variant?
darkhorse64: sec
darkhorse64: https://github.com/marchete/Codingame/blob/master/Optimization/Number Shift/NumberShift_LAHC.cpp
MSmits: is this basically a freely shared solver?
MSmits: or?
Westicles: yep. he changed some things to TODO, a teaching thing I guess
MSmits: ohh ok
MSmits: well that's ok
MSmits: as long as it's not too easy to copy paste
darkhorse64: I used that LAHC on A*C to improve my scoring. It's a bit crippled but the algorithm is interesting
Westicles: xevi used LAHC as well.
MSmits: i favorited it, maybe i'll try it some time
UnnamedCodinGamer: you can see the exchange here: https://www.codingame.com/forum/t/community-puzzle-number-shifting/152425/25
UnnamedCodinGamer: I tried it myself but it did not perform better than SA in my case
darkhorse64: I mean LAHC can be applied on other problems and the implementation is clear enough to be reused
MSmits: I loved the dancing links algo
MSmits: too bad it capped at the low 200s
darkhorse64: It also tempts me to give a go at NS. I just solved 16 levels by hand
MSmits: it's fun
Westicles: Yeah, I think I'll make a run to 700 just to keep xevi interested
darkhorse64: by hand ? by search ?
Westicles: Good weather now for it :P
MSmits: lol by hand at 700 :P
MSmits: you cant even look at the board
darkhorse64: new computer for Xmas ?
MSmits: you need toprint it yourself
Westicles: Just SA. It is really slow at these levels, maybe a day each
MSmits: Westicles how do you keep SA running?
MSmits: doesnt it have a temperature scheme that ends?
MSmits: and then you start over?
MSmits: it's not like minimax where you can keep it running forever and it will keep getting closer to the answer
MSmits: or mcts
MSmits: I guess you can set it to run for a day and hope it hits on the right answer?
Westicles: Well, it runs for a few minutes each and finds a bunch of decent ones, then sends it off to an optimizer that tries for maybe an hour. Then starts over
MSmits: ahh ok
MSmits: and you just experiment with these parameters
MSmits: x minutes, y hours
MSmits: i suspect you need to set them higher for higher levels to solve more quickly
MSmits: I recently did my first SA on the travelling salesman for a teaching project
Westicles: Yeah. I was kind of disappointed, my theory was at some level they would get easier to solve. More solutions available
MSmits: yeah but also more restrictions i guess
MSmits: i mean
MSmits: a greater space, so the fraction of solutions gets smaller
Westicles: right
MSmits: thats why level 61 was so hard
MSmits: there's like 2 solutions, so even if the space was small, the fraction is tiny
jacek: oh my
tarikyildiz: Hi, I started learning algorithm very difficult, first I learn big o
tarikyildiz: thx
mzbear: ... third version of my Yavalath bot submitted. Now it also takes moves that open multiple 4-in-row opportunities. I suppose I should've made it also block enemy from taking those
jacek: noice
jacek: still no search
mzbear: yep, unless you count iterating through all currently possible moves and picking decisive ones as a search :D
mzbear: hmm, actually blocking enemy traps is harder than making traps, because enemy trap move might be 3-in-row for us, and traps can potentially be broken at any of the following winning moves as well
jacek: yeah thats common. keep trapping until you trap means 3-in-row for opponent
mzbear: alright, preliminary trap blocking implemented... somehow the code is cleaner than before implementing it, too, lol
mzbear: this forced me to setup a uint64_t filter for currently valid moves, which cleaned up a lot of other code
mzbear: oh yeah, this is doing much better
mzbear: i might have to start doing a search soon
mzbear: rank 39 ... oh, my bot is buggy, it doesn't understand when enemy steals my move!
mzbear: rank 28 after fixing that bug
mzbear: that's higher than i expected to get without search
struct: Nice
mzbear: my bot only does traps when it guarantees victory. it only does detected decisive and forced moves, the rest is random
jacek: :tada:
MSmits: what did you do jacek?
jacek: it was for mz :bear:
MSmits: o
ROMZAB28: za warudo
MSmits: indeed
mzbear: ugh. there's still a category of trap-leading losing moves that i'd like to detect before i start writing search, but i dont know if i should. it might be better to just mutate the board and detect it at next step
ROMZAB28: yes
MSmits: make the search work
MSmits: then worry about that
MSmits: brb
jacek: mutate board? :thinking:
mzbear: mutate, as opposed to detecting the traps without changing the board
jacek: oh, for a moment i thought about genetic algorithm :o
mzbear: nah. it's just that i can e.g. test up to 6 different 3-in-rows in parallel with pext etc
mzbear: so of course it's better to do it without descending into search
mzbear: oh, ffs, i have a bug. it still improved my ranking, but i'm taking a decisive move when it's not actually decisive
mzbear: let's see if my ranking drops because i fixed the bug :D
mzbear: yeah, my bot is playing weaker now. being decisive about blocking traps was good, even when forcing the enemy to move elsewhere would've also been valid
mzbear: oh lol, i've written my code to not check if winning condition was reached, because referee ends the game before that. not good for search ;D
tarikyildiz: hello clash of code questions sound very confusing, what should I do?
MSmits: better just read them
MSmits: the computer voice won't help
jacek: sounds clashy
jacek: spring challenge live action movie https://img-9gag-fun.9cache.com/photo/a3w9yXv_460svav1.mp4
tarikyildiz: thx
MSmits: thanks jacek, this is excellent for making fun of other people's pacman bots
jacek: ahh those amsterdam people
MSmits: yeah
jrke: level wise statement not working - https://pastebin.com/ESAFMv6x anybody who is free can tell
jacek: AutomatonNN where is eulerscheZahl
AutomatonNN: file score at the end of the day
jrke: euler is busy in doing RAIC
eulerscheZahl: adding my final cheese
MSmits: :cheese:
Martime: hello
jacek: xDDD
jacek: oO
JKROwling: https://www.codingame.com/training/easy/mountain-map
struct: (╯°□°)╯︵ ┻━┻
Astrobytes: ┬─┬ノ( º _ ºノ)
struct: I made my code such a mess
struct: Its impossible
Astrobytes: ezpz
VizGhar: delete it
struct: Not again
suleyman-kutukoglu: PUSSY HUNTER
struct: Chill with the spam
struct: :tada:
Uljahn: no sleep till legend
Uljahn: raise an exception and call Automaton2000
Automaton2000: of course i had to add a few more times
toosumit: how to become moderator?
VizGhar: eat a lot of brocolli
VizGhar: I think you have to be not idiot for 5 years straight to earn such accomplishment :)
toosumit: 5 years!! I can hardly make it to 5 minutes
MSmits: but when you manage it, you'll be the best moderator ever
MSmits: If you can moderate yourself, you can moderate anyone. Think about that
ian173: Why does clash keep making me do harder and harder captchas
ian173: *captchas
ian173: Does it think I am a bot?
MSmits: are you?
MSmits: AutomatonNN is ian173 a bot?
AutomatonNN: I'm just checking my code for some reason
ian173: Bro I hope not, itd be hard to break to my parents
MSmits: I'm guessing they already know
MSmits: they coded you after all
MSmits: AutomatonNN did you code ian173
AutomatonNN: *couch*
ian173: So clash didnt alway ask me to do a bot check every single time
ian173: And now it is
MSmits: you just did too many clashes
ian173: Ah, that might be it then
MSmits: probably you need to take a break
MSmits: CG worries about your health
struct: Im currently storing states until depth N, now I started reusing them.
struct: I was thinking on doing also this for states and include skulls
struct: So I would do like State at depth 1-N add 1-12 skulls
struct: But the skulls could be added in any depth of the state
struct: Was wondering how I should store it
MSmits: no idea sorry
MSmits: STC not my specialty
struct: np
struct: Im not even sure its worth to pre compute skull states
struct: Maybe just compete skull states that my bot can do in depth N
MSmits: or maybe sleep and solve the problem in your dreams
struct: What if I solve it thenforget it
MSmits: notebook next to bes
MSmits: bed
MSmits: wait no
MSmits: a DREAM journal !
MSmits: better name for it
MSmits: though, if you dream about skulls it's technically a nightmare
struct: Thats good, I might wake up and ill remember
MSmits: let me know how that goes :P
struct: My arena bot is so bad that my bot with no eval beated it 1 time :(
MSmits: is this your new bot?
struct: no
struct: I dont have anything yet to submit
MSmits: is your new bot the bad one?
MSmits: oh
struct: My arena is around 2 years old
MSmits: ah I see
struct: Both are bad, but the ide one is currently worse since it has no eval
struct: Its just debug stuff for now
SupSon: Does anyone know which version of the JDK works for brutal tester I'm seeing some weird errors running https://github.com/dreignier/game-ultimate-tictactoe
struct: 8
SupSon: alright thanks
MSmits: SupSon if you use a solver, you can very easily create an arena yourself
MSmits: just trust the bot when it says it won
MSmits: no need to sim
SupSon: But if I want to test the strength between the two?
SupSon: two different versions*
MSmits: if they both have a solver its fine
MSmits: it will output the move + "WIN"
MSmits: then you know it won
MSmits: if not, pass the move on to the other bot
MSmits: and if that one says it "WIN's then trust that one
SupSon: but it's running as an exe
SupSon: then i'd need to write some management code
MSmits: yeah, you need a framework for starting two processes and sending input and receiving output
MSmits: i use a windows form
MSmits: pretty easy
MSmits: my point is, you can use this for any game that has a bot with a solver
MSmits: since you dont need to sim the actual game
MSmits: the bots do this for you
SupSon: mmm ok i see
MSmits: just dont have a bug in your solver :P
SupSon: I never would
MSmits: good :)
MSmits: oh and if you run vs yourself, be sure to add some random to the bot
MSmits: 0,01 to node value randomly
MSmits: when it makes a move
MSmits: otherwise it's likely very often going to play the same games
MSmits: you get overtraining
MSmits: even in utttt
SupSon: yea I have randomness
MSmits: kk
struct: So with solver you can also not run the game until the end right?
MSmits: yeah if the solver is good this can shave off 15 plies
MSmits: 30% speed bonus to your brutaltesting
MSmits: mmh maybe i should not be running 3 meta mcts's at once :P
MSmits: stuffs starting to lag
struct: You are doing 3 matches at once?
MSmits: yes, for 3 different games
MSmits: each running 1 instance of bots playing themselves
struct: Poor cpu
MSmits: uses 3 cores, but a small cost for the meta mcts part that starts the bot processes and handles the results
MSmits: + a small cost i mean
MSmits: i have 4 cores so...
MSmits: i'll turn off my uttt one, it's the least important
struct: What other games are you running?
MSmits: currently, yavalath because i lost some games to robo earlier
MSmits: and oware, cuz i still need to beat those NN's
MSmits: well i already fixed the robo part mostly, but then i noticed some other lost games and before long i am trying to plug those holes too :P
struct: lets see what jacek comes up with
MSmits: yeah I am curious
Illedan: Hi
Illedan: Anyone have an idea iif it is worth to have 32 GB on a macbook, or if 16 GB is enough :thinking:
Illedan: memory that is
Westicles: Worth and macbook shouldn't be in the same sentence
Illedan: That is another story :P
HuynhNgocHai: Hello mother fucker
HuynhNgocHai: What can i do? I'm nebie
HuynhNgocHai: newbie\
z64555: never enougn memory. Load it up to the max
ChampionCoder: I use some 50 windows ay a time with 8 GB
ChampionCoder: Ok that's a exagerration :sweat_smile:
ChampionCoder: maybe 15 windows
ChampionCoder: So don't waste money on that much memory
ChampionCoder: Unless you use a lot of high-priority applications
mzbear: 16G isn't enough on my osx box, it always gets out of memory and start lagging
mzbear: firefox in particular likes to regularly start eating 8G+ of ram all by itself