Kamikaze: im on wood league, its the clasic tic tac toe still haha
jacek: good morning
jacek: what a busy day here yesterday
jacek: perhaps ill take another look at yavalath
ScarletPhoenix: hi guys
ScarletPhoenix: i joined this yesterday, it's so cool
YodaMaster123: You printed output before reading input/
sirsatan: or you printed 2 times output
YodaMaster123: pls stop spammingg
jacobisnaughty: :joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy: http://chat.codingame.com/pastebin/bad0fd7d-94ff-48e5-b88c-56b40888e1de
jacobisnaughty: :joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy: http://chat.codingame.com/pastebin/8a7797f0-7590-430d-928a-0f70259de9bb
jacobisnaughty: :joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy::joy: http://chat.codingame.com/pastebin/4679a643-7e44-4f0e-b0b1-50819d68d3f5
YodaMaster123: Man... what did I just say?
Stilgart: seems no better on #world :/
struct: ill cleanup Stilgart
struct: just ping me next time
Stilgart: struct: nice :thumbsup:
VizGhar: Not if you expect to win
Westicles: These are the guys who will one day write self-driving car SW
Westicles: Hi Robin_Hood
YodaMaster123: Hey, anyone written a search for Tron?
struct: YodaMaster123 I didnt write, but what is your question?
YodaMaster123: Is a voronoi heuristic sufficient?
struct: for legend?
YodaMaster123: Damn, it didnt even get out of W2
YodaMaster123: 1st in W2 below boss.
struct: voronoi should be more than enough
YodaMaster123: Oh.. timeouts. Not bugs.
Uljahn: we are noobs, the only pro is Automaton2000
Automaton2000: that's how i do it
MSmits: professionally Automaton2000?
Automaton2000: so what i do now
MSmits: you're the pro Automaton2000
Automaton2000: and there are no more moves
MSmits: we are not weried
Uljahn: hi Rockstar555
struct: When you register all mods get an alert saying you are rockstar
jacek: new moves, MSmits?
struct: Where jacek?
struct: Only lost vs royale
MSmits: this is a real book war now :)
MSmits: hes got some of you booked too
MSmits: maybe i should check out those royale games while i am at it
MSmits: otherwise I'm going to be pushing him above you guys with these book war submits
struct: The war is against old john right?
jacek: yeah hes abive dbdr
MSmits: i have no clue how good his bot it
MSmits: because of the book
MSmits: my bot is around trictrac's without book
MSmits: i think i have 10-20% winrate vs dbdr
MSmits: without it
MSmits: but it's an unfair comparison, he has 300k parameters saved in his codesize :P
MSmits: codesize is a resource you can use for various things. A NN will likely have a built in book somehow
MSmits: so do ntuple bots etc, it's not explicit but hidden in the parameters
mikestratton: Remote Meetup - working on ASCII Art https://www.meetup.com/social-coding-virtual/events/275180988/
MSmits: if the book war goes on long enough, me and oldjohn will draw every game
MSmits: in that case, you guys can just copy our playline and draw against us
MSmits: everyone will have the same rating :)
MSmits: or maybe its like the rock paper scissors tournaments
MSmits: if you want to have a 50% winrate, you copy the playline, if not, you win against others who do not
dbdr: sounds fun :D
MSmits: it's fun to me. I was hoping someone would join me to get to that point. Then I can work backwards along the tree and find a different branch. Othello is suspected to be solved as a draw, but maybe we can prove otherwise
MSmits: your bot almost plays perfectly already dbdr
MSmits: it's like 1 mistake max per game
MSmits: but it's hard to be sure of course
dbdr: so I would just need a touch of randomness, right?
MSmits: yeah, assuming you also use it in training
MSmits: otherwise you might get some problems with overtraining
MSmits: mind you, jacek has randomness and has a stronger bot than mine
MSmits: but, i still beat him with a book
MSmits: it just took a very long time
dbdr: I don't know, sometimes the second best move is probably very close in value to the 1st
MSmits: yeah, but they both may lead to a draw
dbdr: so not a loss
MSmits: sure yeah, i think there are many paths to draw
MSmits: many paths without a mistake i mean
jacek: remember at the beginning it eas the war me vs tric trac
jacek: every day vast improvement over previous day
MSmits: tric trac also has some random I think
MSmits: took me a while
jacek: if we kept this up, we would solve othello in 150ms
MSmits: nice :)
struct: I ported Othello for pieces, not war
MSmits: my bot doesn solve that great. It never makes a mistake with less than 19 squares left
MSmits: so my book never goes deeper than 41
MSmits: when left alone, I think my bot plays an inferior move one out of 6 times or so
MSmits: dbdr prolly 1 out of 20
MSmits: maybe less even
MSmits: sorry struct, old john started it :P
MSmits: well the war, not the booking :P
MSmits: tric trac started that actually, but he did it for like 3 plies
MSmits: which seems pointless, most bots will do those moves right on their own
MSmits: allright sermon done, i need to get some bread
struct: I wonder if its worth to store depth > 4
struct: on STC
MSmits: does the game not start randomly?
struct: Well you can see the next 8 pieces
struct: im not talking about books
struct: Just trying every single move until depth N
struct: Obviously I cant allways do depth 5, because its 22^5 states
struct: But there are position where at depth 4 is under 20k states
MSmits: ahh ok
MSmits: well do what you can
14jblackburn: how do i create ai
jacek: prune array
jacek: delete system32
struct: GhostCoder9 when you dont output anything on time
struct: you might have infinite loop
struct: Robin_Hood using SDK?
struct: stop spamming
struct: We cant see
Westicles: maybe ask on #FR
mzbear: euler is mean. testcase 22 of space maze lol
RoboStac: if thats the only one you are stuck on you can probably submit and get 100%
Westicles: I never tried the non-validators. How many moves is it?
mzbear: well, i implemented BFS ... and every other testcase is super fast, but that one goes hundreds of thousands of steps in and then timeouts
eulerscheZahl: space maze testcase 22: https://www.codingame.com/share-replay/516347734
eulerscheZahl: and another solution: https://www.codingame.com/share-replay/516347995
RoboStac: it isn't very long, but there are a lot of valid moves - my search tests 94000 routes before finding that one and no other test case goes over 10k
mzbear: i suppose i'll submit this to get a partial score ... oh, 100% ... hmph
eulerscheZahl: congrats for solving it :tada:
eulerscheZahl: testcases are generated but i ran my own solver which might be a bit biased on difficulty and i discarded those testcases where mine struggled too much
mzbear: i started on this 10 hours ago, and getting all other testcases solved took only a few hours
Astrobytes: haha awesome, 8 people! Well done :)
RoboStac: my original solution used to move the car around on the platform in order to get more time
RoboStac: though I did manage to optimise it to work on turn 1 in the end
mzbear: that's hilarious
Westicles: Doing them manually, validator 27 was by far the hardest
wlesavo: oh, skrill also got space maze, and the second solution is in python. probably hardcode, right?
RoboStac: oh, that actually failed evn then
mzbear: anyway, a naive breadth-first search goes totally nuts on 22 because there are opportunities to keep moving several pieces back and forth for no good reason
mzbear: it's also possible that i have a bug in my code that only appears on that level
eulerscheZahl: better that way then 100% testcases solved and 1 evil validator
Westicles: No, skirll published... it is a real solution
mzbear: i just typically don't submit until i have 100% done
wlesavo: Westicles wow, nice
mzbear: my code is a horrible mess compared to skril's c++ solution
eulerscheZahl: python makes it even more impressive
eulerscheZahl: good news for wlesavo, now you can try it too
wlesavo: nah ill probably do a c++
wlesavo: after raic though
eulerscheZahl: of course after RAIC
eulerscheZahl: space maze won't run away
wlesavo: and ill hardcode python to check skril solution :smiley:
Westicles: love the comments
Westicles: # My C++ version run in some tens of ms, so I decided to give Python a try
- Disclaimer, I'm a total Python noob, please do not mind obvious mistakes :-)
eulerscheZahl: sadly only very few users will get a chance to read it
reCurse: MSmits: "A NN will likely have a built in book somehow" That's a myth according to experience with lc0.
Uljahn: could be kinda true for an overfitted NN
reCurse: A net trained on endgames with less than 18 pieces still develops strong opening preferences
reCurse: So it could not possibly have memorized or overfitted opening moves
MSmits: what i mean is, you keep training it and training it and in games where it has a bad opening, it will have parameters adjusted so that the bad opening will disappear, that's all
darkhorse64: Not to say that MSmits is right but the goal of an opening is to seize a space advantage and limit opponent moves which is also true in middle and endgames
reCurse: So how is that different from scoring heuristics that would make openings disappear? Would you call those as having a built in book?
MSmits: all I meant was that if you use a meta mcts to find the best openings, the result is similar.
reCurse: Yeah but I'm taking specific issue with "book", if it's not a specific tree of hardcoded moves it hardly counts as a book.
MSmits: there are differences and similarity. The similarity I was pointing to is the fact that a NN on CG specifically, uses codesize as a resource to play better
reCurse: I'm just reminded of a debate surrounding whether leela has an implicit opening book and whether SF should be allowed one or not for fair comparison.
VizGhar: happiegamer567 which game?
MSmits: they should, imho
MSmits: it's a clear advantage
reCurse: Funny, I think they shouldn't
reCurse: Probably why it's a debate :P
MSmits: personally I will concede that it's not really fair to target specific players with a book
MSmits: but it *is* fair to create a generalized opening book to counter a NN
reCurse: I don't see any such distinction
reCurse: A book is a book
reCurse: NN has no book embedded, just features that guide openings much like scoring heuristics would
MSmits: true, but codingame has a small set of players. It is really not that hard to counter them all individually
MSmits: that would never happen in a larger setting
MSmits: NN's are more general
MSmits: their benefits translate to a larger setting
reCurse: If I train a NN on games vs those players, how is that different from countering them individually
MSmits: but you dont do you?
MSmits: you self train
reCurse: Yeah but it's not because it's a NN
reCurse: It's because of the training regiment
MSmits: ah but you can overtrain with a NN, its dangerous
reCurse: Is it
MSmits: yeah if you overtrain vs me, you tend to become weaker against different players dont you?
reCurse: If I overtrain against top 20 who happen to cover most bases, it's not necessarily bad
reCurse: It's like that tic tac toe leaderboard
reCurse: A bit like overtraining to rank high isn't it
MSmits: mmh i think TTT is a bad example, books are quite poor there
MSmits: othello is better
reCurse: Did I say tic tac toe
reCurse: My brain is still in bed
reCurse: I meant rock paper scissors
MSmits: ohh ok
MSmits: yeah thats an interesting game
MSmits: pattern recognition
MSmits: perfect for NN's i guess?
reCurse: If you have enough samples of leaderboard, maybe
reCurse: But ranking high there is clearly from exploiting other knowns
reCurse: So like overtraining I would say
reCurse: So not necessarily bad
MSmits: yeah, i should be careful to state whats fair and whats not. When it's not that clear what the game is
MSmits: is it coming up with good heuristics yourself, letting a NN do it, or hardcode specific moves
reCurse: So if the game is relatively well covered by top 20
reCurse: It's possible overtraining against them isn't that bad either
reCurse: Much like tweaking to batching
MSmits: i guess so
reCurse: There's nothing magical about NNs
MSmits: i know
reCurse: It's just an eval with more parameters
MSmits: I do a class on NN tomorrow
reCurse: Oh cool
MSmits: as a teacher
MSmits: using playground.tensorflow
reCurse: High school students?
MSmits: I build up the example slowly
MSmits: it has a lot of features you can turn on and off
MSmits: i put a lot of different versions of it in iframes with lots of exercises
reCurse: Is it just a class where you briefly expose things or an entire course
MSmits: to try to classify the datasets that it gives you
MSmits: it's 1-2 hrs, before this they did minimax, travelling salesman, bfs/dfs
reCurse: That's intense for high school, or maybe it's just the education here that sucked
MSmits: there's no coding involved
MSmits: they learn the algorithms
MSmits: without the coding
MSmits: so lots of unplugged exercises
MSmits: this is what i like about playground.tensorflow, it really gives you an idea how NN's work
MSmits: when you try to fit the spiral and *need* hidden layers
MSmits: because the pattern is too complicated
MSmits: at the end they are only allowed to use the x and y inputs
MSmits: and they need multiple hidden layers
reCurse: Part of my brain clicked when I saw an example training a NN directly on a 2d image
reCurse: It behaved exactly like compression
reCurse: Well, exactly...
reCurse: Scratch that word
reCurse: You clearly have less parameters than pixels so it has to generalize
reCurse: Thought it was another good perspective
MSmits: this doesnt use filters does it?
reCurse: No just x/y position and color as output
MSmits: ah ok
MSmits: btw, i start with "isthisacat"
MSmits: you probably know that
MSmits: it's a nice data classification example to show students
reCurse: I wonder if it came before or after hotdog or not
MSmits: oh i should look at that too
reCurse: You've watched silicon valley?
MSmits: just a few episodes
reCurse: First 4? seasons are great tv
MSmits: i should watch it fully at some point
MSmits: i guess you find a lot more recognition when watching it than i would
reCurse: Still has enough humor for those who don't
reCurse: Just has more layers when you do
MSmits: yeah it was nice
reCurse: Then it started sucking after
MSmits: it's like big bang theory when you're a physicist
MSmits: fun show but more so when you know the physics they use
MSmits: and that is actually correct
reCurse: I skipped on that show for a silly reason, much like many others
reCurse: I can't stand laugh tracks
MSmits: ah yeah, it's annoying when you pay attention to it. I tune it out mostly
MSmits: hey I remember there being a page with lots of examples of AI abusing simulation errors
reCurse: More specific?
MSmits: and there's also one where a ship keeps going in circles collecting coins, never going to the finishline
reCurse: Oh that's different
MSmits: yeah but i think you know what i mean
reCurse: It's reward shaping in reinforcement learning and how a bad one can lead to unintended behavior
reCurse: Well like a bad eval function
MSmits: if you have the link, i will use it tomorrow
reCurse: One sec
MSmits: ahh yeah
reCurse: And I believe this is the page you were referring to
MSmits: thats it exactly, thanks!
AntiSquid: so what fun stuff did you create in tensorflow MSmits ?
MSmits: i didnt create anything, i just used the excellent example made by the tensorflow guys
AntiSquid: wasn't that on sick-it learn website? feels like i remember a different past T_T
AntiSquid: accidentally clicked on this through google, hah https://www.codingame.com/playgrounds/29924/computing-with-data/the-scikit-learn-package
reCurse: 321k views :o
struct: I was shocked too
eulerscheZahl: half of them might be the googlebot
eulerscheZahl: that playground has 300 parts, not sure if stepping through generates 300 clicks
reCurse: Oh so it's a 90's hit counter? Hmm.
struct: Maybe its because its embeded here
eulerscheZahl: i don't know, just speculating
struct: Not sure if it counts for views
eulerscheZahl: https://tech.io/playgrounds/14213/how-to-play-with-strings-in-c/what-is-a-string-in-c this seems to be the most popular playground
struct: 1 Mill, damn
eulerscheZahl: and #2 https://tech.io/playgrounds/213/using-c-linq---a-practical-overview/using-linq
struct: Ok, the bfs for depth N on stc is working now
player_one: That looks familiar...
player_one: I still should publish Pt3 of that C# LINQ series one of these days.
eulerscheZahl: congrats on your viral hit ;)
geppoz: wtf this outputs "false"
eulerscheZahl: and if you do (char) instead of (Character)?
geppoz: can't cast to primitives I think
eulerscheZahl: '0'+1 is an int btw
twitlydoof: clashofcode need to fix their bug, when people get 100%, sometimes it still gives people less than 100% ignoring the last case
geppoz: you right euler
struct: testcases are different from validators
eulerscheZahl: not a bug
geppoz: this is true
struct: Just poorly implement clashes
mzbear: given a list of bitfields, is there an elegant way to locate a bit that's only set it one of the bitfields and none others?
twitlydoof: well my code was the same as another person's he got 100% while I got 80%, not sure how this is caused by validators
struct: Paste both codes here
struct: a ^ b mzbear?
eulerscheZahl: struct a *list*
eulerscheZahl: your code finds any odd number of appearances
struct: Sorry my brain is fried from STC
twitlydoof: Here's one: https://www.codingame.com/clashofcode/clash/report/1506498e24bfd5194f32ddb6028a7a603eec0ff, compare tuan's with mine
mzbear: struct: let's say bitfields 6,3,11,7 ... the third one is the odd one out
struct: We cant check codes, because we were not on clash
twitlydoof: alright I'll put it on pastebin
eulerscheZahl: i see a way with squared runtime
eulerscheZahl: a & ~b & ~c & ~d ~a & b & ~c & ~d ...
eulerscheZahl: IDE link https://www.codingame.com/ide/demo/8529019b65424818efe7d399bb4d1db2d94649
eulerscheZahl: last validator has a trailing whitespace
eulerscheZahl: your input parsing crashes on empty string
eulerscheZahl: i consider that a bug in the clash but don't have moderation rights there
SBtree-bit: I'm ready!!!
eulerscheZahl: https://www.codingame.com/contribute/view/53556efd919aee3f5685e1a21d86388044ec can anyone edit the last validator please?
twitlydoof: alright thank you for explaining
SBtree-bit: 2 more
struct: Ok I edited it
struct: Thanks for spotting it euler and twit
eulerscheZahl: didn't even know you played that many clashes, thanks :)
struct: I played on early days
struct: I have over 3k
mzbear: ... next up: given a list of bitfields, how to find a pair of bits that are set in exactly two of the bitfields. my brain isn't working today at all :D
mzbear: no, wait, i actually need something different
mzbear: i have a feeling that if i could describe what i want, i would know how to get it. lol
jacek: rubber duck debugging to the rescue
mzbear: i'm solving that tufoshiki solver and testcase 1-4 and 7-11 can be solved with extremely simple rules ... testcases 5 and 6 are more annoying. i can reason out a logic in my head to solve these, but i can't describe it correctly, so i can't write it into code
mzbear: of course, i could write a super simple search to give me the answers, but no way i'm resorting to that :D
mzbear: i may have been slightly traumatized by Blocking
jacek: youre blocking your memory
Westicles: 1000 nails here all waiting to be hit with the same hammer
eulerscheZahl: do i want to ask what that metaphor means?
Westicles: well, if mzbear is easily bored using the same approach twice he is in trouble
mzbear: even if hammers aren't made of gold, they can be too heavy to be wielded casually
jacek: you want to do every puzzle of the week?
AntiSquid: gold bends easily
mzbear: puzzle of the week has a time limit, so it's nicely constrained. i like constrained things
eulerscheZahl: paper soccer promo campaign jacek?
jacek: it was puzzle of the week in the worst possible week :(
Astrobytes: set yourself a time limit mzbear
eulerscheZahl: contest week
struct: Guess you will never play a multi ported by me
struct: mzbear if he keeps playing puzzle of the week
darkhorse64: mzbear: play yavalath. Please struct and try a very nice board game
struct: It was a failed attempt at a joke, none of my ports made it to puzzle of the week
eulerscheZahl: yavalath by unknown
mzbear: darkhorse: i'm worried that the tone for the words "very nice" aren't carried over the internet
struct: Thanks darkhorse
eulerscheZahl: i still wait for space maze, 2048, sokoban and minesweeper potw
VizGhar: Why is everybody obsessed with "puzzle of the week"? Is there any benefit from solving it?
jacek: i think yavalath was puzzle of the week?
eulerscheZahl: just a massive player boost if your contribution gets chosen
struct: no jacek
Astrobytes: what euler said, other than that, no
darkhorse64: There was no joke. I am serious. After UTTT, it's the multi I spent the most time with
eulerscheZahl: you were gone for 4 months, how should you know?
struct: notifications euler
struct: I checked them when I loged in again
darkhorse64: You need to add a league to become potw
mzbear: 114 players in the Yavalath arena ... and the top players have some scary names :D
Astrobytes: yes ofc, that's how you get the achievement
eulerscheZahl: yavalath has no leagues? that explains it
struct: penguins has no leagues
Astrobytes: scary names?
eulerscheZahl: it has
struct: I cant edit Yavalath
jacek: paper soccer has no leagues
Astrobytes: Penguins does
eulerscheZahl: pushing in higher league
struct: oh it has
struct: Just my followed list is all on first league
struct: so I thought there was only 1 league
darkhorse64: Not everyone with sufficient level can modify a community multi ?
struct: I think last time someone tried, it didnt work
mzbear: astro: scary names as in people whose bots are likely to be much stronger than mine :D
eulerscheZahl: i failed to edit langtons ant
Astrobytes: It caaaan be done right? Langton's was fixed eventually iirc
eulerscheZahl: thibaud did it
Astrobytes: ah gotcha mzbear
Astrobytes: then we petition him to add a league to yavalath
Westicles: There is much glory to be had in seeking 2nd in 2048
Astrobytes: darkhorse64 can write the boss
eulerscheZahl: petition him for community contest first please
Astrobytes: still nothing?
jacek: maybe its bad
darkhorse64: Can we ask politely to thibaud to give yavalath back to struct ?
Astrobytes: I guess they're too busy with That Thing
eulerscheZahl: he wanted to message me till yesterday
eulerscheZahl: to let me know if a any kind of promotion is possible
eulerscheZahl: they seem to be pretty settled on 2 contests per year
Astrobytes: Meh. Well, unofficial it must be then :/
darkhorse64: Astrobytes: I am 5th in Yavalath. It'll leave not many people in the top league
struct: I can write a bot
struct: that maybe places in top 20?
IfIHadATail: unofficial contests still get a pretty good turn out no
Astrobytes: was just a joke referencing your othello boss darkhorse64 ;)
eulerscheZahl: nah, unofficial is boring
IfIHadATail: but unoffical has always just been reruns of past ones though
jacek: he could just use less time
Astrobytes: not if you set the Hype Train in motion
eulerscheZahl: just to the multiplayer arena where it gets burried
struct: No, I dont want any strong bot
struct: Not even with less time
jacek: i think 3-ply bot that just avoid loses would be good filter
Astrobytes: sounds fair
struct: ill just make 61 ply book
eulerscheZahl: ArianPunk for the ordering?
ToshiTuringMachine: ArianPunk they are sorted for upvotes
eulerscheZahl: community upvotes, then date of submit
struct: Still should take me a while to do a bot for Yavalath
struct: Still have some work to do on STC
eulerscheZahl: planned completion: 2026
mzbear: ... only one testcase in futoshiki solver left unsolved...
jacek: the suspence
jacek: test cases and validation cases are not always the same
jacek: so you dont hardcode solutions
mzbear: sometimes validation tests are a bit easier. sometimes they're a lot easier
mzbear: ... and in case of futoshiki solver, it seems one validator test case is more difficult
MSmits: struct if you need help with yavalath we'll help you. Top 20 possible for sure
jacek: use MSmits bot as boss
eulerscheZahl: without book and less sim time
MSmits: that would work i guess
MSmits: do you want to go mcts or minimax for yavalath?
MSmits: either works
eulerscheZahl: nothing deterministic. would to easy to beat the boss that way
MSmits: unless it's deterministically bad
eulerscheZahl: minimax with a small random value in eval
MSmits: i think minimax is easier
struct: I might try minimax
MSmits: plain mcts doesnt work
MSmits: you need a heavy rollout
MSmits: it has some good ideas for eval
eulerscheZahl: and boss isn't supposed to consume much CPU time
jacek: i have rather plain MCTS, well aside for 1-ply win/loss check
MSmits: like check all possible 4 in a row patterns
MSmits: yeah win loss check works is the minimum
MSmits: but i am sure you have more dont you?
MSmits: oh, i do seem to remember you made a pretty extensive opening book here
MSmits: that could offset having a relatively simple rollout
MSmits: I check for traps as well
jacek: yeah, anime taught me that too
MSmits: missing that reference
jacek: maybe its good
struct: I want to try top 10 on STC
struct: So it might take a while
struct: unitl i go for yavalath
MSmits: i kinda want to try more breakthrough
MSmits: I like the game a lot. Sucks when you 're not good at a game you like :)
MSmits: that jacek, always teaching us things
Astrobytes: +to avoid
jacek: MSmits already avoid traps
MSmits: not this kind of trap obviously
MSmits: but I am forewarned
jacek: another approach at yavalath, i have more experience this time. 2-ply minimax vs 10ms mcts bot https://i.imgur.com/5tHh2mh.png
jacek: maybe jacekmax will be feasible this time
MSmits: yavalath is a very different beast from most games though
MSmits: it has an early and late game. you might need a completely different bot for either
MSmits: there's always a point where it becomes impossible to force a trap anywhere because there isnt enough room left on the board
MSmits: then you win if you managed to fill the board more efficiently
MSmits: this happens around halfway through the game or so
MSmits: mcts does a great job at filling efficiently, because the random rollout probes this feature well
MSmits: minimax is better at finding early traps
jacek: only few games get past 30 moves, let alone fill the board
MSmits: but if an opening book makes sure you dont fall into any traps, the only games you can still lose are the longer games
MSmits: so games I lose are usually long ones
MSmits: but you're right in general, the trap thing prevents long games mostly
MSmits: which is also why there are so few draws
jacek: unless you prove game is a draw
jacek: we're counting on you
MSmits: I proved only 2 out of 9 starting hexes
MSmits: out of the other 7, 2 are obviously bad for p1 and 5 are pretty balanced
struct: you proven that 2 are win?
MSmits: yeah center 7 squares, but thats 2 moves
MSmits: center and the 6 around them that are symmetrically identical
MSmits: swap rule prevents it though
MSmits: you just give away the win
struct: yeah, gomoku might be interesting too
struct: with the swap2 rule
MSmits: center square is wayyyy easier to prove btw
MSmits: hex i mean
MSmits: the other 6 take maybe between 100k and a million games depending on how good your solver is
struct: thats a lot of games
MSmits: a few days if you havent done it before
MSmits: i started over a few times
MSmits: then i knew which moves to pick
MSmits: can do it in an hour or two then
MSmits: btw, if you're goal is just to solve these moves, you can also just minimax it
MSmits: that will be much much faster
MSmits: I think dafish can do it in an hour
MSmits: but i did it inside of a meta mcts, which is not particularly efficient
SBtree-bit: I AM SO HYPED FOR THE CLASH
MSmits: I sense British sarcasm
Astrobytes: Your sarc-y sense is tingling MSmits.
MSmits: it is!
jacek: i sense notEu member
Astrobytes: Scottish is not British in my view. But that's my opinion.
MSmits: but they may still have British sarcasm
MSmits: I have German hair
Astrobytes: It's just sarcasm tbh.
Astrobytes: What accent does it have?
MSmits: I guess so
MSmits: it's mostly just not there
MSmits: so i cant talk to it
Astrobytes: In what way is your hair German though
MSmits: mmh I always imagine them as bald
Astrobytes: lol, what?
MSmits: it's not accurate ofc
MSmits: it's imagination
jacek: euler hair?
Astrobytes: Almost every German I've met has a full head of hair
jacek: i thought you meant gray hair
MSmits: which country is full of bald people then
jacek: AutomatonNN whats german hair?
AutomatonNN: who knows why my bot does not know what to do
MSmits: I have tibetan hair then
Astrobytes: England? Well, not entirely I guess to be fair to them.
MSmits: is it erosion? From the rain?
Astrobytes: The beer and lack of brain cells.
Astrobytes: (that's just a joke before an Englishman jumps in)
Astrobytes: Y'know, the fat bald, drunk English guy stereotype
MSmits: so English self-deprecate but don't suffer insults?
Astrobytes: The ones who won't suffer insults are incapable of self-deprecation
MSmits: so you're saying not all English are the same, noted
jacek: so far so good. yellow uses symmetries in training https://i.imgur.com/w5OYRoi.png
Astrobytes: Nah, English people are fine, I lived in England over half my life so they must've been doing something right
MSmits: oh, this is a neural network then?
Astrobytes: for which game?
jacek: nearly 12x more posiitons
Astrobytes: I guess n-tuples fits the bill for yavalath
MSmits: yeah it does. I guess my minimax used them
Astrobytes: surprised you didn't do it sooner jacek
MSmits: I was 8th ranked with it
Astrobytes: ah right, you had patterns encoded then
MSmits: yeah all 4 in a row patterns
jacek: i did, but apparently i need something more than TD learning
jacek: as in, more plies than one ahead
Astrobytes: that would figure for this game tbh, what with the traps and all
jacek: you contributed clash?
Astrobytes: Guillermo.: if you mean to choose it in a clash, you can't
Astrobytes: No, it's supposed to be random.
Astrobytes: Sorry :shrug:
jacek: well my n-tuple is all possible row of 4. won state is always 4-in-row and two 3-in-row. in next game it would pick up that 3-in-row because it had nice score
MSmits: thats annoying
mzbear: eh, i had a bug in my futoshiki solver. that's why it failed the one validator, it timed out. fixed now, and solves annoying test cases in 0.5ms
mzbear: but when i look at other people's solutions, i cant help to think that i seem to have overengineered mine
MSmits: reminds me of when my bot would prefer hexes on the edge of the board, to minimize losses in the random rollout from 3 in a row
jacek: mzbear maybe they use... the search
mzbear: what, i can upvote my own solutions
mzbear: accidentally hit the button
MSmits: jacek how do you solve the problem of having to pick a starting move for yavalath
MSmits: you need to take into account swap ruke
MSmits: and you need to train against other starting moves
MSmits: I would guess you train for each start you'll steal and the one you pick yourself as p1
jacek: i pick random 1st move
MSmits: mmh ok
MSmits: 1 out of 9 or 1 out of 61?
MSmits: oh right, you added symmetry so i assume 9
jacek: 1 / 9
jacek: otherwise technically some moves are more frequent than others
MSmits: yeah, that might not even be bad
MSmits: since center 7 squares *should* be rare
mzbear: the pastebin here doesn't let me paste code, says invalid paste id when i try it in a private channel
jacek: sometimes its broken
MSmits: not sure if it works in private channels
mzbear: just wanted to show eulerscheZahl what i used the bitfield thingie i asked for :D
MSmits: he;s sleeping
Astrobytes: Yep. Ol' Gramps Euler has been asleep for some time now
Astrobytes: link him with it tomorrow
mzbear: oh dear, yavalath looks harsh
MSmits: because of the hex board?
jacek: try that without search
mzbear: the hex board and the rules
mzbear: yeah, i dont think this is going to work with heuristics of any kind
MSmits: there's some
MSmits: check for wins, check for traps etc.
MSmits: but to use a heuristic to make a plan consisting of multiple parts, seems impossible yeah
MSmits: board games arent great for simple heuristics usually
MSmits: if you like heuristics, do code a la mode
MSmits: its fun
struct: one advantage that Yavalath has is that easy for human to see if its winning
MSmits: othello and uttt are much worse that way
MSmits: oware too
MSmits: well in oware you got your seed score, but its hard to see whats gonna happen on the board
jacek: for othello, even pros can do mistakes when doing move
jacek: as in legality
MSmits: wow really?
jacek: rarely but they can forget to flip some stones
MSmits: I saw a YT earlier where magnus carlsen accidentally gave up his queen in a blitz game :P
mzbear: code a la mode ... only 4 people in silver league, 148 in legend out of 874 ... hmmmmm
Astrobytes: it's tough to keep track, ever played it? As a human I mean
MSmits: i havent, but seen plenty of games
MSmits: between pros even
MSmits: dbdrs bot, jaceks bot etc.
jacek: magnus blundered in tactics but didnt make illegal move
struct: Well online its hard to make an illegal move on chess
jacek: though i think there was one game when in check he moved other piece and opponent and refereee didnt notice
struct: if not impossible
MSmits: hey any of you play chess occasionally?
MSmits: I've been playing it sometimes lately
Astrobytes: not for a wee while tbh
struct: I played a bit, but im not very good
MSmits: whats you're rating at, if you know?
MSmits: it's all relative
struct: I think it was 1200-1300 in chesscom
struct: on rapid
MSmits: same as me then, also rapid
MSmits: I do 30 min matches
struct: I do 10
struct: or 15
MSmits: but so far i played only 16 games
MSmits: and none in the 30 years before that
MSmits: i was pretty good as a kid though
MSmits: 10-15 min is too quick for me
MSmits: i almost run out of time already with 30
Astrobytes: Used to play clubs and my grandad organised chess conferences here in my town
MSmits: ah sounds fun
Astrobytes: I kinda stopped after my mid-late teens
MSmits: i only stopped because i went from primary school to high school
MSmits: on my primary school we played chess alll the time
MSmits: it's what they did for kids that got their week's work done
Astrobytes: that's cool, half the kids in my class had never even heard of it
MSmits: I was usually done by tuesday
MSmits: if i had chess.com back then i doubt i ever would have stopped
Astrobytes: Yeah I was like that in primary. Highschool I'd usually do it in the morning it was due or the class before :P
Astrobytes: *homework that is
Astrobytes: I see you said week's work
MSmits: ahh ok
MSmits: yeah we had a week thingy
MSmits: when that was done they had to think of something else
MSmits: I remember they also gave me little booklet thingies
Astrobytes: Yeah, similar-ish here
MSmits: with stupid assignments
MSmits: I remember one was basically sex education
MSmits: so they didnt even realize they gave me that
MSmits: I was like, wth
MSmits: next time i'll work slower
Astrobytes: Well... you *hope* they didn't realise they gave you that
MSmits: right, that
MSmits: well it was basically stack
MSmits: to keep me busy
Astrobytes: yeah, had the same with reading. Could churn through books in no time so used to get a load to get through
MSmits: my problem was that I didn't like all that many things
MSmits: I preferred math problems and such
MSmits: but most of that stuff was language/poetry/essays etc.
Astrobytes: Same with maths puzzles, I used to do them relenlessly
struct: Time to finish Yavalath saga and release Yavalanchor and Yavalax
MSmits: I didnt really know i could just ask for specific stuff
Astrobytes: Primary and early highschool I used to be really hot on maths, competitions and stuff. Until I got The Bad Teacher
MSmits: probably if i had said, yo gimme math stuff, they would have
Astrobytes: yeah, you don't realise these things at the time though
MSmits: in primary school i had no competition basically
MSmits: but high school i did plenty
MSmits: but it was so stressful, i was just happy to get home
Astrobytes: They wanted to skip me ahead a couple of years but there was no provision to do so in the educational system at the time
MSmits: well it's never a complete solution anyway
MSmits: you get problems socializing
Astrobytes: Only people with a lot of money can do that kinda thing anyway.
Astrobytes: And yeah, exactly what I was about to say
MSmits: we had a 10 year old in between 14 year olds at work, some years ago
Astrobytes: I had a lot of fun without too much pressure
Astrobytes: how did that go?
MSmits: i mean, he wasnt just 10, he was obviously also very weird for a 10 year okd
MSmits: otherwise he wouldnt be there
Astrobytes: yeah ofc
MSmits: basically whenever one of the students did something wrong or even got a question wrong
MSmits: he would tell on them or ridicule them
MSmits: think sheldon in BB theory
Astrobytes: yeah, I get it
MSmits: so one day they kicked him naked out of the gym dressing room and he had to switch class, its kinda sad
Astrobytes: He didn't have the social skills to realize that he was being a dick
MSmits: in the end he was ok, but took a while
MSmits: yeah he was both too young and handicapped in that regard
Astrobytes: It's a double edged sword isn't it. I think the only thing you can do is nurture the talent as much as you can
Astrobytes: whether it's academic, sporty, whatever
MSmits: funny thing is, there were two other students from the same family, that were also 3-4 yrs ahead
MSmits: one was 4th year university at 18
MSmits: genetics i suppose
Astrobytes: And pushy parents most likely
MSmits: that too
MSmits: it helps to a degree, but it makes me sad to see parents push a student that doesnt have strong talents
MSmits: it gets stressful and ruins your childhood
Astrobytes: It happens so much. They need to encourage and nurture whatever the kid *is* good at - there's always something
Astrobytes: Not everyone is academically-minded
MSmits: yeah, and often if the parents apply enough pressure, they can convince a school to let them try at a higher level
MSmits: which can cause a lot of failure and self esteem problems
Astrobytes: So a bit of academic material in the context of something practical is wayyyy more beneficial
Astrobytes: Yes, 100%
MSmits: i dont know how it is in the UK, but here you can fail a year
MSmits: and you have to redo the entire yhear
MSmits: never happened to me, but i bet it feels really crappy
Astrobytes: yeah, you can do that in highschool and certain years of primary iirc
MSmits: in the level i teach about 30-50% of students lose a year at some point in their high school career
MSmits: usually only 1
Astrobytes: we had a guy who was held back 2 years - he was only dyslexic, but there was no support. He disappeared from school around 14 and went to work in his parents hotel
Astrobytes: But that was back then
MSmits: that sucks :(
Astrobytes: 30-50% ? Seems pretty high
MSmits: yeah but it's out of 6 years
MSmits: its a long high school
MSmits: so instead of 6, some of them take 7
struct: Same thing here
struct: % checks out
MSmits: the lower levels have a lot less of this
MSmits: only about 10% there
struct: I found perfect game
struct: re curse will love it
struct: "Maphex is a derivative of the masterpiece HEX (Piet Hein 1940) where your opponent's move determines which sub-board you can play on (mechanism from Ultimate Tic-Tac-Toe)."
MSmits: 3x3 hex?
struct: 3x3 sub-boards
MSmits: i am trying to imagine the 3x3 shape
struct: But they say 16x16 is more "balanced"
MSmits: is there any difference with uttt?
MSmits: ahh yes
struct: you need to connect your sides
struct: like a bridge
MSmits: 1 missing diagonal also
Astrobytes: (wrt previous topic we have 6 years in Scottish highschool too btw)
MSmits: we have 4-4-4-5-6
struct: here is 1-4 grade, 5-6th, 7-12th
Astrobytes: surprised no-one ported hex already
MSmits: highest levels are longer
struct: or its 5-9, 10-12
struct: cant recall
Astrobytes: 6th year here is like university preparation
Astrobytes: well, 6th year studies
struct: my last year was php
MSmits: ohh you dont win miniboards in maphex?
Astrobytes: well, that was in my time, I don't know what it is now
struct: no MSmits
struct: you place pieces and need to build a bridge
MSmits: got it
struct: See the red and blue corners in the pic?
MSmits: yea i understand now
MSmits: this is a more complex game I think
Astrobytes: you never did original hex?
MSmits: i didnt
struct: Yeah its inspired by hex
Astrobytes: I think these simpler games should be ported also
Astrobytes: For people to try stuff on
MSmits: there should be some interest to a leaderboard though
Astrobytes: Hex I mean, not maphex
MSmits: if its solvable its no good
Astrobytes: Practice section would be nice
MSmits: yeah it would
struct: yeah I was joking about Maphex
Astrobytes: (other than the puzzle section I mean)
MSmits: well its not a bad choice struct, i think there's better out there but still
struct: I want games that are easy to see whats happening
MSmits: gomoku has that
Astrobytes: hex isn't solved is it?
struct: it is until certain size
Astrobytes: or weakly solved for some board size or something
Astrobytes: well, big hex it is then
MSmits: 10x10 is solved
MSmits: 11x11 is not
Astrobytes: more or less the same objective as twixt, just a different way of playing
MSmits: twixt is so weird
Astrobytes: get to the other side
MSmits: it seems to me to be the worst game for a computer vs a human
MSmits: humans can play it easily
Astrobytes: I get ruined everytime I play a decent bot
MSmits: in twixt?
MSmits: hmm then i just havent figured out how to code one
jacek: yellow - symmetries is good. https://i.imgur.com/Mp56MZb.png green is against 100ms mcts instead of 10ms
Astrobytes: I meant as a human
jacek: why havent i tried it sooner
MSmits: it;s weird that it would help so much
MSmits: it's only a factor of 12
MSmits: thats less than a ply
jacek: more data, and more balanced weights
MSmits: then again that calculation time is a factor of 10
jacek: and hex is solved ultra weakly - its been proven 1st player can always win but there is no strategy to that
MSmits: I'm looking forward to trying your board on the leaerboard
MSmits: your last version gave me some new interesting lines of play
MSmits: from the 3 2 start
MSmits: your bot i mean
jacek: its still fixed plies. i have some ideas how to make it more fast with n-tuples
MSmits: yavalath is the game i enjoy the most to search with meta mcts, because I really understand what is happening
MSmits: othello is a mystery
struct: I dont even know why I ported Yavalath
MSmits: cuz you are a stable genius
struct: I guess I wanted to try SDK and game looked simple enough
MSmits: I might look at your code
MSmits: I have to port it to unity
struct: No, there are better examples
jacek: see what you have done. people spend time and $$$ to do the computation
struct: Yavalath code is a mess
struct: but you can check it sure
struct: its on github
MSmits: it's not wasted $$$, it's pretty cold here in my attic
Astrobytes: port hex, after Amazons
MSmits: I like to get heated by Yavajoules
struct: Ill search papers about Amazons
MSmits: oh right, must not forget the volcano
struct: To see if add something new
Astrobytes: You had a prototype?
struct: I have yes
Astrobytes: I don't think anything new is required for amazons
struct: I guess the voronoi part
struct: is something not used on a lot of games
Astrobytes: see, Smits will love it
struct: Maybe voronoi is not used
MSmits: maybe I can place more solar cells on my roof and power a threadripper
struct: Threadripper might be overkill
Astrobytes: well, it is a territory control game
struct: But if you want to warm the house, you might want to go intel
MSmits: i could put a tube to my neighbors house and give him some free heat
struct: Otherwise go AMD :)
MSmits: I got intel
struct: new ryzens seem good
MSmits: didnt re curse buy one?
Astrobytes: Intels inside, AMDs outside
struct: He wants one I think
struct: But cant find it
Astrobytes: the ryzens are looking ridiculous
MSmits: i am not good enough of a coder to properly use it
MSmits: i;d just waste tons of power
Astrobytes: nah, you'd be able to get something out of it man
MSmits: let me mess around on 1 core, thats safer
struct: Well if you can use 2 then you can use 12
MSmits: i mean sometimes i find a bug after 1 week of running
AntiSquid: ya i got myself a ryzen from 2k series though
MSmits: what do you do with it/
AntiSquid: before 3k was announced, but no regrets considering all the drama surrounding its release
Astrobytes: you'd find it in less time with multi-core msmits
AntiSquid: some ML stuff for fun
MSmits: mmh doubt it, it's not my brain thats multithreaded
AntiSquid: picked it best on what others recommended / use
Astrobytes: Well, it is
struct: 16 cores 32 threads
struct: too much
Astrobytes: There is no Too Much
MSmits: i wonder if for some applications a good GPU will be faster than those 16 cores
Astrobytes: Think of the combination
MSmits: its not that easy to combine them, i tried it once
struct: for rendering mostly
AntiSquid: my pc is similar to this guy's, i picked and built mine before this video came out though :P https://www.youtube.com/watch?v=uAv2hHCwcP0
MSmits: i meant for computation
struct: Maybe for calculations
Astrobytes: Well you delegate responsibilities to the appropriate components no?
MSmits: I did some terrain generation on cpu and gpu. Same algorithm to generate a chunk
MSmits: gpu did it 20x faster
AntiSquid: it's more a matter of having both for both scenarios whenever you need them
MSmits: but there was a delay in transfering the data
MSmits: bit annoying
AntiSquid: you can cheap out on one thing but then might regret later or not be able to upgrade something if you want to
MSmits: makes sense
Astrobytes: always the way with any hardware
struct: One thing good on Amazons
struct: Is that you need to choose good moves
struct: Search space is massive
Astrobytes: yes, I picked it for a reason. It's in many, many papers. I think it'll be interesting on CG
Astrobytes: Also a fun game btw
Astrobytes: (as a human)
AntiSquid: you're doing a game astro?
Astrobytes: no, it's one I suggested to struct ages ago
Astrobytes: But I wanted to port Morpion Solitaire when I have time
Astrobytes: (not a card game)
Astrobytes: aka Join Five
AntiSquid: i have some fancy game in mind ! (not saying it to brag) just no time and worried about how people might react ... very fussy crowd
Astrobytes: well, when you have the time just throw it out there
Astrobytes: I mean, if the idea works it works, if it doesn't it doesn't right
Astrobytes: If it's got fog tho' I KEEEEL YOU
MSmits: now I am imagining you as a skeletal puppet Astrobytes
struct: jrke submit a contribution
struct: but no statement yet
AntiSquid: fencing game looks nice
Astrobytes: at least you got it MSmits
Astrobytes: Not played the fencing one since the update(s)
struct: Whats fencing game?
Astrobytes: yeah I saw that struct
Astrobytes: we might need to help him a bit with the english for the statement, he speaks well but will need some assistance
Astrobytes: it's somewhere in the contribs struct, Fencing Championships or smth
MSmits: gonna get some sleep gn!
Astrobytes: gn :)
struct: I go too, gn
Astrobytes: gn struct
Astrobytes: yes there is a chat
Astrobytes: Yeah, I think it unlocks at level 3, after you solve 1 or 2 puzzles
LastRick: Welcome to Codingame
Astrobytes: cool, welcome to CG
Astrobytes: oh hey LastRick
Astrobytes: there's a lot of different problems
Astrobytes: Requiring many different algorithmic approaches, some very mathematical puzzles indeed.
Astrobytes: There are multiplayer bot programming games, optimisation games, code golf games... and clashes too
Astrobytes: DEpends what you like/what you're interested in, recommendations are quite subjective
Astrobytes: codegolf-wise your best score will obviously be your least chars solution, but you get points for golfing in other langs too
LastRick: And recommendations are subject to change
LastRick: when i first got here, all i wanted to do was puzzles, couldn't stop
LastRick: after that fall contest, i got hooked on Compete for a while
Astrobytes: Oh SR
Astrobytes: 15-minute timed sessions when you try to solve a problem via opponents either faster than them, with less chars than them or reverse-engineer it faster than them
Astrobytes: The problems vary in quality
LastRick: ^ boy do they
Astrobytes: Clash isn't my thing, but some of the stuff I've seen recently...
Astrobytes: Anyway, do check out all parts of the site, not just the puzzles!
Astrobytes: How's your GA coming along LastRick?
LastRick: I enjoy clashes as a change of pace from the drudgery of a puzzle or the complexity of a Compete. But yeah lately oof
LastRick: I want to finish Texas Hold Em puzzle (medium) tonight and then I will go back to Search Race. Illedan was so nice to post some generic GA code last night and I was going to use it as a starting point
LastRick: Genetic Algorithm
Astrobytes: Yes I saw that. I think you'll have fun with it.
LastRick: not always
Astrobytes: You can start with just pure random, then introduce mutation. Then after create populations with crossovers
Astrobytes: No, unfortunately the difficulties can be variable
Astrobytes: Which puzzle did you do?
LastRick: When I went through all the Easy puzzles, I found probably a dozen that should have been shifted up. Likewise, I've seen a few Hards that are not very difficult at all.
Astrobytes: Yeah. Especially when they merged community with official puzzles
Astrobytes: Though there are a few official which are easier than their category too
Astrobytes: Again, that's subjective. Depends on your experience of whatever the problem is
LastRick: I have said for a while, the problem is they haven' done a good job codifying what determines a puzzle's difficulty level. They leave to the user base, which is the worst group to leave it to. :)
Astrobytes: Yes, that's true to an extent LastRick, doesn't account for the official ones though.
Astrobytes: well, regarding the facing vector: think that one through for a second
Astrobytes: It's a direction vector so...
Astrobytes: ah cool, yeah sometimes you have to extrapolate from the description, fair play
Astrobytes: yes there is
Astrobytes: settings on the left of the IDE
Astrobytes: no worries
Astrobytes: Anyway, late here, I need to sleep. Goodnight all. LastRick, I hope chat is OK in the next few hours ;)
Rock-Lee: is the site slow for you guys?
Rock-Lee: i cant test my code
Jasperr: It basically happens every night around this time
LastRick: Oh yeah its that time of night
LastRick: Flaming: What game are you playing?
Rock-Lee: well, time to logout
LastRick: Yeah, I think that is common to the puzzles here at CG
LastRick: On search race, you are talking about the races after you hit submit?
elderlybeginner: servers seems to be slow now, am I right?
LastRick: always this time of night (day)
LastRick: it is when they update the rankings I believe
Jasperr: this is CG's way of telling Europeans its time to get to bed ;)
LastRick: yeah, convenient for europe, they should be sleeping. But screw the Americas! :)
LastRick: Texas Holdem finally done. That was something. Probably took only 15 minutes to code if someone has a specific winning hand and 5 hours to format the output.
Noo8: hi coders