Chat:World/2021-07-21
ShadowTaz: How do yoy play the clash battle?
derjack: good morning
struct: hi
Benedikt.Huber: Morning everyone
TK-421: Greetings
BlaiseEbuth: Happy caturday.
Marchete: MSmits: https://www.codingame.com/share-replay/571294311
Marchete: I sometimes can win
Marchete: but I have many timeoutes
struct: nice
MSmits: Marchete how do you win exactly?.
MSmits: is it when scores are nearly equal?
Marchete: I got more points
MSmits: yeah i see, you actually didnt beat his nim calculator
MSmits: this is an example of mikla not knowing how the endgame works
MSmits: he says "win"
MSmits: because he got control over the endgame
MSmits: but he sacrificed too many boxes
MSmits: and plays out the endgame poorly
derjack: he says win to discourage opponent
MSmits: that would be funny
derjack: if only the referee could give the name of the opponent
MSmits: Marchete check how he says win at frame 36
MSmits: that's when he won the nim game. But he doesnt realize there's 2 4-loops there and other relatively small objects. So he loses on score
MSmits: this is why your idea of setting up the board unfavorably for the person in control is a winning strategy vs him
MSmits: he gave away all the 4 loops to you when he should have just taken them and given you control
MSmits: Marchete did you do this on purpose? Getting the board like this?
Marchete: nope :D
MSmits: oh ok well you should
Marchete: I'm in early tests
MSmits: ahh ok
Marchete: https://www.codingame.com/share-replay/571295887
Marchete: :)
Marchete: you seem better at counting
MSmits: yes my score counting is perfect, but i sacrificed that box and it made you win
Marchete: I mean I hardly win you
MSmits: the nim game is risky
Marchete: it's your fault
MSmits: if the board has too many small objects it can make you lose if you also sacrifice boxes
MSmits: yes it s
Marchete: you know I didn't want to go D&B
MSmits: oh ok, yes
Marchete: I mean talking about D&B
MSmits: it's fun :)
derjack: you keep using that word
Wontonimo: "i don't think it means what you think it means"
Wontonimo: https://www.youtube.com/watch?v=dTRKCXC0JFg
MSmits: heh that movie
MSmits: i watched it because someone said it is a classic
MSmits: but it was pretty crappy
MSmits: willow is a far better movie
MSmits: nice to see grand nagus zek in there though
Wontonimo: i'm sorry MSmits, we can no longer be friends
MSmits: lol
MSmits: you don't like willow?
Wontonimo: willow was awesome
MSmits: good
MSmits: you have taste
MSmits: maybe it's because i saw princess bride when i was 30+
MSmits: and willow when i was 10 or something
MSmits: nostalgia did not enter into it with me with princess bride
Wontonimo: age plays a big part for sure. I remember "Highlander" as an awesome movie. I rewatched it a few years back and man it's shit
MSmits: ah yes highlander too
MSmits: the worst part of highlander is when they made the sequal and suddenly they're all aliens from some planet
MSmits: sequel
MSmits: made no sense at all
Wontonimo: yeah, that was just horrible
MSmits: I preferred the series to the movies tbh
MSmits: they even made a 3rd movie with actors from the movies and series together
Wontonimo: there was a series?
MSmits: yes
Astrobytes: It was far better than the movies at least
MSmits: reminds me of stargate
MSmits: series >> movie
MSmits: people forget there is even a movie
Wontonimo: avatar
Astrobytes: didn't really get into SG tbh, movie or series
MSmits: SG is one of the all time great series
MSmits: over 10 seasons i think? Or exactly 10
Wontonimo: the avatar air bender series >> >> movie
MSmits: oh you mean that avatar
MSmits: not the giant smurf one
Wontonimo: i couldn't make it through 1/2 of 1 episode of SG
MSmits: sometimes it takes a bit
MSmits: i could not make it through breaking bad the first 2 episodes
derjack: 10 seasons, 5 seasons of atlantis and 2 seasons of universe*
MSmits: and it's the best series of all time
MSmits: derjack i liked universe too, was sorry to see it go
MSmits: atlantis got a bit lame
derjack: and yes, many episodes from first seasons are cringy
Astrobytes: SG used to bore me to tears
derjack: :rage:
MSmits: farscape was pretty cool too, it might have been more your thing
MSmits: actually 2 of the actors went into SG1 at the end
Astrobytes: I mean, there were far (far, far) worse series out there, but it just did nothing for me
MSmits: babylon 5 was my favorite sci fi when i was young
Astrobytes: Never got into Farscape either
21stCenturyPeon: The apex of Series > Movie is still Buffy
derjack: never watched babylon 5, but watched deep space 9
Astrobytes: B5 was OK, preferred the ST universe though
Astrobytes: 21stCenturyPeon: you are not wrong
MSmits: personally I felt only ds9 was as good as the best of the other sci fi out there. TNG was good but it was mostly good because it had no competition. DS9 trumps it i think
MSmits: voyager is worse than either of them i feel
Astrobytes: When it eventually gets going yeah. Last series or 2 of TNG was amazing though
MSmits: i agree yeah
MSmits: I liked St enterprise too
MSmits: it's not that well known
Astrobytes: I can take or leave Voyager, some good characters but never really was fulfilling enough
MSmits: yeah i watched it for the doctor :P
derjack: or 7
Astrobytes: Never got into Enterprise tbh, saw a few episodes but just didn't grab me
MSmits: yeah 7 was cool, but came in later
derjack: ive only seen the bashed final episode of enterprise
Astrobytes: 7 eventually became a good character
MSmits: yeah
Astrobytes: Cool when she came back in Picard
MSmits: there was apparently a lot of conflict about her character
MSmits: on set i mean
Astrobytes: Indeed there was.
Astrobytes: Kate Mulgrew hated her
MSmits: but they made a good decision bringing her on
MSmits: right
Astrobytes: They got rid of Kes for 7 right?
MSmits: kate mulgrew was a bit like william shatner on the original star trek I think
MSmits: i know she left, not sure why
Astrobytes: Male and bad at acting?
MSmits: did you hear will weathon talk about william shatner?
MSmits: he's a reall ass
Astrobytes: lol no
MSmits: wants to be the center of attention
Astrobytes: I've heard it from some of the other cast though
Astrobytes: George Takei and William Shatner absolutely detest each other
Astrobytes: oh lol, found it. "The William F**king Shatner story"
MSmits: thats it
MSmits: he also tells it on video
Astrobytes: Wil Wheaton is a legend
MSmits: https://www.youtube.com/watch?v=r7cwz7DJ4N8
MSmits: I love him yeah
MSmits: he does a channel on boardgames and such i think, not sure if he still does
Astrobytes: He used to yeah, I remember that
derjack: shut up weasley
MSmits: heh thats a ST meme though
MSmits: right?
MSmits: well unless you mean harry potter and its not a spelling error
Astrobytes: Could be either, this is jacek after all
MSmits: true
MSmits: do you think he's different when he's on his upside down pony?
derjack: personnaly i dont know why, but weasley crusher was most hated character
MSmits: pony did not catch on to the spelling error i think
Astrobytes: Indeed
MSmits: unlucky
Astrobytes: Good for you.
derjack: oh i was reading about weasels
MSmits: as one does
The_Camoflauged: IKR 13 unlucky number
Astrobytes: Video's great MSmits
MSmits: yeah that's why i remembered it
Wontonimo: just state your age in hex and it just doesn't seem unlucky anymore The_Camoflauged
Wontonimo: you are D years old
MSmits: I knew it
MSmits: he appeared and I thought: This person is a D
Wontonimo: Dangerous, Dubious, Deadily. That's what I'd always tell my parents what D means when i gave them my report card
The_10x_Engineer: Hello chat 😀
martinpapa69: hi
MSmits: now here's an obvious A
Wontonimo: he he
Wontonimo: There are 10 kinds of people in the world. Those who understand binary and those who don't
The_10x_Engineer: good one
Wontonimo: hey The_10x_Engineer , check out the multis (bot battles) and challenges. There is way more than just Clash of Code
Wontonimo: This was the last multi that you can still play https://www.codingame.com/multiplayer/bot-programming/spring-challenge-2021
Wontonimo: *contest
The_10x_Engineer: Wontonimo I do a lot besides Clash of Code lmao
The_10x_Engineer: But thanks lol
Wontonimo: no problem. you can count on me for useless and unneeded suggestions. just drop me a line anytime and I've got plenty. Flush even
Tiramon: always fascinating when you watch a NN learn and see the results improving =)
ThereIsFunInFuneral--Jewelery: ls -l
Marchete: yours?
Tiramon: just tried to set up a little backend i can run on one of my servers and monitor from outside and currently started training a NN from scratch =)
Wontonimo: nice
**Wontonimo i wish i had "servers"
Tiramon: agent is playing against himself and had an avg score of 45 for quite some time on oware
Tiramon: but he still has a 6% chance to end the game with an invalid move :(
Wontonimo: valid move constraint should not be up to the NN.
Tiramon: it is not ... it's just a stat i monitor
Wontonimo: ah
Tiramon: i currently monitor avg score, win ratio, avg invalid and avg time per game
Wontonimo: well, there is a difference between "man i'd really like to be able to just remove the opponents queen" and "i am technically able to". Depending on how you are training it, it can learn the first instead of the second
Wontonimo: i know we arn't talking chess... just an analogy
The_10x_Engineer: Where is Automaton2000
Automaton2000: i never got around to it
Tiramon: if i'm not completling wrong it just tries to get the highest possible score which should result in a high win ratio
Tiramon: *completly
The_10x_Engineer: Oh nevermind he's still here :o
Wontonimo: highest score would be by cheating
Tiramon: except when the agent plays against himself ... then ration should stay around 50%
Wontonimo: so, yeah, take the enemy queen when they arn't looking
Tiramon: game rules don't allow cheating ... so he hast to reach highest score with valid moves ;)
Wontonimo: absolutely. what i mean is, if you are teaching it which moves to prefer and that is disconnected from valid moves, then it will suggest a move that isn't valid. That's okay, that's why you have constraints. I don't know if how i'm saying this is clear
Wontonimo: or maybe i dont understand what you mean by 6% chance of an invalid move
Tiramon: in 6% of his games he currently thinks at some point that doing a invalid move is the best choice ...
Tiramon: guess because in some game situations you have no choice to win and just have to do any move ... this ratio will never go to 0 because it does not matter if he does a invalid move and lose or a valid move and lose
Wontonimo: oh interesting. it's basically flipping the table
Wontonimo: (╯°□°)╯︵ ┻━┻
Tiramon: if i only have 1 seed in my first house .. i can't make a move to win so it does not matter if i take the seed from house 1 and move it to 2 and opponent has no valid move and i lose or i pick an empty house and loose because i made an invalid move
Tiramon: so both actions have more or less the same value
Wontonimo: makes sense
Tiramon: but hey after 1.3k games it is currently reduced to 3% so there was still some space ;)
Wontonimo: do you block backprop of invalid moves, or do you mix the learning of preferred moves and valid moves?
Tiramon: i currently use a random sample of moves made to learn i think the one i submited had a prioritized experience replay
Tiramon: the one i currently run is just a DQN with experience replay
Tiramon: hm the agent has probably learned to avoid situtations that result in a invalid move =) was at 0% for a short time ;)
MSmits: Marchete I implemented your hash thingy
MSmits: it seems to be similar in performance to unordered set
MSmits: and 4 or 5 seems to work fine as a number of times to keep searching for a free spot
MSmits: your way seems to be slightly better even
MSmits: about 5%
MSmits: seems to be quite sensitive to the capacity. If I set it too low and dont have enough space, speed plummets
derjack: DQN? so its still no search?
MSmits: what do you mean DQN?
derjack: double q-learning network
Astrobytes: Deep-Q Network
derjack: or deep hmm
Wontonimo: Dairy Queen Numerology
Astrobytes: :rofl:
MSmits: I have none of those things
MSmits: I was just talking about the simple hash scheme Astrobytes explained to me expanded with the loop Marchete told me about
MSmits: basically if you dont find your item, you look x more times near it
MSmits: and also when you insert, if the space is occupied by another item, you look x more times for an empty spot
Astrobytes: I think he was talking to Tiramon ;)
MSmits: ohhh
MSmits: why do people talk to other people, dont they know everythign is about me
Astrobytes: :D
Marchete: I won't talk anymore without my lawyer present
MSmits: lol
MSmits: I did it right though Marchete? this is what you meant
MSmits: including the time required blowing up when you have too little capacity
Marchete: yes, and at insert you need to make an special case for all places filled
MSmits: whats the special case?
MSmits: just not inserting?
Marchete: either you randomly add it at any point (not at end always)
MSmits: how do you find it, if you randomly add it?
Marchete: or if lossless then make some extra steps
Marchete: to save it
Marchete: random [0..5]
Marchete: inside your bucket size
MSmits: ok, so you do add it?
MSmits: currently i just dont add it
MSmits: isnt it better to just add it at 0 then? Then you can find it better next time
Marchete: it depends on your needs
Marchete: but as a rule of thumb, new hashes should be more important
MSmits: if you're going to replace another item, you might as well do it at 0
Marchete: always 0?
MSmits: yeah why not
Marchete: then the rest of the bucket won't update ever
MSmits: i dont understand
MSmits: it's not a buckey
MSmits: bucket
Marchete: I do a limited range check
Marchete: hash -> array pos
MSmits: i count up 5 times
Marchete: then pos .. pos+4
MSmits: that doesnt make those 5 times a bucket
Marchete: well
MSmits: because buckets will overlap
Marchete: a ranged search
Marchete: I prefer not to overwrite insert at the same place always
MSmits: what i mean is, that 0 position is only a 0 position to that particular key
Marchete: because that makes the range less useless
MSmits: another key might have a 0 position 1 step below that, or 2 steps above it
Marchete: it is
MSmits: so if the 0 is only 0 to that key, why would random be better
MSmits: I should just try both ways
Marchete: maybe your hashing sucks and you have a lot of collisions
Marchete: like always using 99999
Marchete: but not 99998
MSmits: ohh, good point
MSmits: when hashing sucks it does matter yes
MSmits: the 0 might be popular
Marchete: it means even if you add a big range
MSmits: it's better to just try it though
Marchete: all collisions will be to 0
MSmits: true, but the disadvantage of inserting at 2 is that you can be 100% sure you need the loop when you do the lookup
Marchete: trust me, I have no idea about what I'm talking about
derjack: youre hired
MSmits: if at 0, there's at least a chance you dont need the loop
Marchete: imo fixed index insert defeats the purpose of ranged search
MSmits: I'll try it
MSmits: inserting at 0 gave no advantage to not inserting at all btw, trying the random thing now
Marchete: meanwhile I'll try to beat you at D&B
MSmits: sure :)
derjack: no clobber?
Marchete: done! I can go eat something :D
Marchete: I just need to fix all the damn bugs
MSmits: yep inserting at random is better
Marchete: how do you check it?
MSmits: basically i create 1000 nim boards at around ply 47
Marchete: I did by intuition but I never checked it
MSmits: then solve them all
MSmits: using whatever hash scheme i want
MSmits: and just look at the time
MSmits: I also use this check to see if i make errors
MSmits: when i change my solver
MSmits: it reads the 1000 solutions from file and checks the solver to see if they are all identical
MSmits: D&B is difficult and you make wrong assumptions, this check will spot them
MSmits: say I always play grounded short strings before non-grounded ones and i put that in as a rule
MSmits: then the solver will give errors
MSmits: some rules are correct, some arent
AllYourTrees: in C4 are you supposed to steal 1 and 7?
MSmits: the cool thing is that it should not matter whether you steal them or not
MSmits: because it is a balanced move
MSmits: maybe not 100% balanced for every bot, but I am pretty sure they are solved as draw if you have enough computation power
MSmits: but so is TTT and player 1 still has a significant advantage
Astrobytes: oh give it a rest kid
Astrobytes: Ban next.
codeing: holla
codeing: just get a question
Tiramon: isn't it a bit late for school in uk?
Astrobytes: 2pm?
derjack: on vacation?
Tiramon: probably some vacation activity...
Astrobytes: They're breaking up for holidays around now in England
Tiramon: ok so last days before holidays ... that need to be filled somehow ...
Astrobytes: Scottish schools broke up around 27th June
Stefanuk12: :sunglasses:
derjack: scottish kids eh
Matilda-bit: https://www.codingame.com/clashofcode/clash/18762556a83efd8c3c019b52bd04f168837a70d
Oppaimaster: bebusssssssssssss
eulerscheZahl: wow
Astrobytes: Bye bye bebus. And stop DMing me.
Matilda-bit: :stuck_out_tongue_winking_eye:
eulerscheZahl: what a time to come online
Astrobytes: Indeed. Moin.
bebus: i havnt DMed you though?
derjack: bah
Matilda-bit: https://www.codingame.com/clashofcode/clash/1876288be50eaafac13f8dadbd6041265bd558a
Astrobytes: Post those links in #clash channel please
Astrobytes: ty
Astrobytes: derjack/jacek: https://www.codingame.com/replay/571330244
eulerscheZahl: minimax? mcts?
Astrobytes: MCTS
Astrobytes: I have no clue how to eval Clobber
eulerscheZahl: i have no clue what the rules are :D
Astrobytes: Last player standing, you have to 'clobber' your opponents stones, you can move UDRL
eulerscheZahl: ah, so jacek ran out of moves
eulerscheZahl: any rule changes in the higher league?
Astrobytes: iirc it's the same rules
eulerscheZahl: just a boss for the puzzle of the week
Astrobytes: Boss is just there to filter random bots
SoulNinja: :mhm:
SoulNinja: discord.gg/twt
Astrobytes: Stop it SoulNinja
SoulNinja: lol ok
Astrobytes: And to ensure POTW ofc yes :)
Wontonimo: have you tried stone count as an eval Astrobytes?
Wontonimo: for clobber
eulerscheZahl: :D
Wontonimo: or liberty count as an eval?
eulerscheZahl: "stone count", nice trolling
Wontonimo: ah ... it wasn't meant to be a troll, but now that i'm looking at a replay, it doesn't make sense since each player losing 1 stone per round until the end :(
Wontonimo: perhaps liberty count could work
eulerscheZahl: or the almighty NN
Wontonimo: if only there was a way to discover repeating patters in 3x3 or 5x5 patches by some kind of weight combination and activiation function
Astrobytes: I think I had mobility/liberty iirc
MSmits: can islands be solved separately?
MSmits: I know they can in D&B
Astrobytes: If you go the minimax route (or combinatorial) you want to divide into sub games
Astrobytes: Yes MSmits
MSmits: well then you need to solve them and calculate the nimsum
Astrobytes: There's a paper on it, nimbers and such
Astrobytes: https://project.dke.maastrichtuniversity.nl/games/files/msc/Claessen_thesis.pdf
MSmits: split up the board until you no longer can, calculate the nimvalue of all possible moves, and return the mex
MSmits: i remember seeing that. Did not understand it back then
Astrobytes: Bit of Sprague-Grundy goes a long way eh
MSmits: right
MSmits: hi Harold
Astrobytes: He's !Harold
MSmits: sorry, easy mistake to make
eulerscheZahl: let's call him John then. Hi John
martinpapa69: Hisyoung
MSmits: hey eulerscheZahl, what are you up to?
eulerscheZahl: nothing special
eulerscheZahl: tried to get back to CGFunge again
MSmits: oh
eulerscheZahl: halfway through but now I lack motivation
eulerscheZahl: and was ill during the weekend
MSmits: ahh ok, that's why you werent here
eulerscheZahl: no, i just stopped caring
MSmits: ah :(
Astrobytes: :)
dbdr: eulerscheZahl: hard-coding CGF?
eulerscheZahl: yes
jacek: huh
N0T-Harold: i dont know
Wontonimo: yup
FinFree: how do i change programming language if i want to play clash?
FinFree: i accidentally chose java
Wontonimo: it is a dropdown at the top of your screen
Wontonimo: center top
Wontonimo: after this class, try something else. there are lots of really cool challenges and bot battles
Wontonimo: the bot battles are A LOT more fun than Clashes
Wontonimo: Try this https://www.codingame.com/multiplayer/bot-programming/coders-strike-back
Wontonimo: when you are done. Feel free to ask questions to get started
LolJuki1234: :mhm:
Wontonimo: for anyone interested in MCTS insights: "the grandparent heuristic" is garbage for UTTT
jacek: oh my
Wontonimo: i just removed it. my bot went from 29th and is now doing better climbing to 25th
LolJuki1234: :ok_hand_tone1:
AllYourTrees: what is grandparent heuristic?
Wontonimo: garbage pre-seed the Node score with the score of parent->parent
Wontonimo: the rational is that most likely the players next move is going to have a score similar to their previous move
LolJuki1234: :ok_hand_tone1::ok_hand_tone1:
Wontonimo: i've had it in my MCTS code for months without quesiton. i think it did work better when I was doing multiple rollouts per expansion.
Wontonimo: but on a hunch, i thought "really, how certain can the grandparent be anyway, maybe 5 or 10 visits"
Wontonimo: which probably means it is completely unreliable
Wontonimo: perhaps with someone with a 200+ branching factor it would be useful
Wontonimo: *something
jacek: uttt is really context dependent
jacek: no rave would work either
Wontonimo: +1
reCurse: As with most advice, what works on one bot may not work on another
jacek: you mean game
reCurse: Implied
MSmits: bot too
MSmits: something may work in one bot and not within another
MSmits: due to other stuff
reCurse: ? I just said that
Astrobytes: I think he was backing your statement ;)
MSmits: yes
jacek: hmph
Marchete: I'm 260th but sometimes I can win top10 :rolling_eyes:
MSmits: just playing out the endgame properly should get you top 20 or so i think
Marchete: except if I constantly crash
MSmits: or not even perfectly, just keeping control
MSmits: btw i had a question about your graphs
MSmits: do you have a graph with strings and coins?
MSmits: so the coins are an object and the strings are as well
MSmits: and if so, do you merge strings to create 1 string for a multiple connected ones
Marchete: I never merge
Marchete: I split
MSmits: well of course when you cut strings nodes become disconnected
MSmits: but what i mean is, as soon as a node has only 2 connections, it could be merged with other nodes with only 2 connections, like chains
MSmits: so that you have only 1 object of size x
Marchete: I don't understand well
MSmits: let me try and draw something sec
jacek: :scream:
Marchete: I have bitEdge , bitBox, and staticEdge and staticBox
jacek: beatbox
MSmits: https://imgur.com/a/9NFWnz0
MSmits: my endgame solver does this
Marchete: I'll review it later
Astrobytes: It makes necklaces and pendants?
MSmits: yes :P
Marchete: right now I can't
MSmits: I've been thinking about mikla's bot
MSmits: we nimsolve nearly at the same time
MSmits: yet he is way more often in control at the end, it solves as win for him
MSmits: so i am wondering if he does something else, earlier, to raise his chances
MSmits: no idea what though
MSmits: Marchete I think I finished my special mcts
MSmits: http://chat.codingame.com/pastebin/6e39edea-cdcc-4326-880b-783fdaa06c87
MSmits: thats what it made
MSmits: this happens when my bot tries to focus on these kinds of maps and the opponent plays randomly
MSmits: this would be horrible for mikla
MSmits: here's another:
MSmits: http://chat.codingame.com/pastebin/4fe514a6-0608-4b86-8e89-29a077109b3c
MSmits: fairly consistent
AllYourTrees: is there almost a collaborative aspect to D&B? both players are trying to build long chains, but i guess at a certain point they are trying to make sure they can use the chains and not the opponent?
MSmits: not exactly, there's a rule that says player A needs an odd number of long chains and player B needs an even number. Or the other way around, not sure
MSmits: so it's not true that both of them try to get as many long chains as possible
MSmits: what you try to be is the player that has the last safe move
MSmits: because then the other player is forced to start one of the chains, giving you the boxes
MSmits: the player that made the last safe move is said to be "in control"
MSmits: or that he made a move resulting in nimber value 0
struct: stockfish is suing chessbase o.o
struct: https://stockfishchess.org/blog/2021/our-lawsuit-against-chessbase/
reCurse: Wishing them the best
struct: yeah, I saw some stuff before about chessbase using their engine and renaming it
Astrobytes: Shady gits
reCurse: fat fraud
MSmits: ugh... now I somehow need to merg a 500 line mcts with a bot thats already 2.5k lines. So messy
MSmits: cg limit are definitely meant for using multiple search algorithms in the same bot
MSmits: definitely not
reCurse: You need a preprocess step for your bots
MSmits: you mean like work in seperate files and then merge them?
MSmits: automatically?
reCurse: Anything that goes through your source and then has the possibility to discard code you don't need
reCurse: That way you keep more locally
reCurse: Could be a ifdef-like
Wontonimo: i use a python file to strip and combine my cpp files for CG
reCurse: e.g. My bundler looks for stuff like // BUNDLE_IGNORE_START and // BUNDLE_IGNORE_END
MSmits: for D&B I have 3 completely different projects
MSmits: well 4 actually
MSmits: this mcts, a nim solver, a score solver and the combination is the bot on CG
BlaiseEbuth: You're impure Wontonimo
BlaiseEbuth: My merger is also in c++
MSmits: my main problem is variable naming
reCurse: C++ is unfortunately terrible to handle text out of the box
MSmits: when merging
reCurse: Mine is in C#
BlaiseEbuth: Some regex do well
reCurse: Regex can go diaf
BlaiseEbuth: diaf?
reCurse: die in a fire
MSmits: die in :fire:
BlaiseEbuth: Oh ^^
Wontonimo: i love regex :heart:
reCurse: We're no longer friends
BlaiseEbuth: Matter of habit I suppose...
MSmits: :broken_heart:
Wontonimo: we were? oh wow, achievement unlocked
BlaiseEbuth: Put it on your profile, I have some good ones :3
MSmits: funny
MSmits: it looks real BlaiseEbuth
MSmits: maybe could be a bit bigger
BlaiseEbuth: Yeah. Got a little display issue. Will take a looke at it
Wontonimo: oh, i like your achievements
reCurse: "Disliked by reCurse" bronze level
BlaiseEbuth: An easy one
Wontonimo: "part of the tutorial"
MSmits: :grin:
Wontonimo: rules change all the way to legend
Marchete: MSmits can you share the image again?
Marchete: I lost that part of the chat
BlaiseEbuth: NSFW?
Marchete: yeah
Wontonimo: -()-()-()- = -(3)-
Wontonimo: that's it
Wontonimo: or was it another image?
Astrobytes: I still have it open: https://imgur.com/a/9NFWnz0
Astrobytes: (no idea why)
martinpapa69: NeauralnetworkSoFtWare
Astrobytes: Pretty damn good Wontonimo
Marchete: \o/
BlaiseEbuth: Ben wa balls he...
MSmits: do you mean the imgur or the pastebinned chat with maps of D&B end games
MSmits: Marchete
Marchete: dunno, the img 30 min ago
Marchete: or so
MSmits: oh thats what Astrobytes shared
Marchete: great artist
Marchete: and what was the question?
MSmits: well whether it would be a good idea to merge stuff like that
Marchete: or PM if you like
MSmits: saves you time in floodfilling and such
Marchete: to not break the chat
MSmits: sure
jacek: not floodfilling the chat eh
borrel: time for a nice old-school chat worm virus :sunglasses: /
BlaiseEbuth: :snake:
Astrobytes: that's a snek Blaise
BlaiseEbuth: No worm emoji.
BlaiseEbuth: Ask tibo
Astrobytes: ~ <= very small worm
martinpapa69: worm from back: .
Astrobytes: :)
BlaiseEbuth: Still waiting for the lice one.
BlaiseEbuth: And the salt ofc.
MSmits: http://chat.codingame.com/pastebin/e9891611-e35d-4029-8d62-0b1d13551c94
BlaiseEbuth: :o
Astrobytes: I'll take that as a worm and not a new discovery in string theory
jacek: :upside_down:
dbdr: looks like a twisted chain of boxes to me
jacek: ohai
struct: potw done
jacek: now do the yinsh potw
struct: I would need to make a bot for it :/
struct: clobber bot is just copy paste from breakthrough bot
jacek: eval as well?
struct: no eval
struct: just full rollout
struct: ept is used in clobber right?
jacek: i bet mostly good old mcts. milka uses some math
Retroblaze: How do you get good at programming?
Astrobytes: 1... 2... 3... - altogether now: Practice;
Retroblaze: what do you use to practice?
Astrobytes: In what way?
Astrobytes: General problem solving? Logic? Learning a particular language?
Retroblaze: well how do you get good at clashes?
Astrobytes: I don't clash.
Astrobytes: Multiplayer bot programming, some optimisation, some puzzles
Astrobytes: https://www.codingame.com/multiplayer/bot-programming
Astrobytes: https://www.codingame.com/multiplayer/optimization
Astrobytes: https://www.codingame.com/training
Astrobytes: struct: nice Clobber :)
struct: thanks
struct: I should try pruning moves
Astrobytes: Retroblaze: Stick with easy puzzles at first if you do those, there's no time limit (unlike clashes)
struct: forgot to use 1 sec as p2 on first turn, should not matter much though
Astrobytes: Cool, good luck. Thor, Temperatures and The Descent are good to start with if you haven't done them Retroblaze
Astrobytes: struct: For top you need nim solver
struct: nim solver here aswell?
Astrobytes: Yeah, see who's first :)
Astrobytes: Here: https://project.dke.maastrichtuniversity.nl/games/files/msc/Claessen_thesis.pdf
struct: thanks
jacek: i dont use any of this... nim
struct: is it NN jacek?
Astrobytes: Of course.
jacek: what else
jacek: but something is off
jacek: it often says 0.9 score just to prove a lose 1 turn later
jacek: but it is strong nonetheless
Astrobytes: Definitely. My dumb bot beat you earlier.
BlaiseEbuth: That deaf, dumb, and blind bot sure plays a mean Clobber.
jacek: but can it play blindfold chess
Astrobytes: It's a Clobber wizard, there has to be a twist
BlaiseEbuth: \o/
Astrobytes: "Since I was a young bot, I played with coloured stones"
BlaiseEbuth: :yum:
jacek: https://www.reddit.com/r/AnarchyChess/comments/nx8mfu/blindfold_puzzle_white_to_play_and_win/
Astrobytes: Let's make an album (and movie) called Botty
BlaiseEbuth: Do we have to destroy the chat at the end ?
Astrobytes: A virtual one perhaps.
MSmits: I cant believe it works so well
MSmits: https://www.codingame.com/replay/571393094
MSmits: frame 57
MSmits: look at the layout
MSmits: this is on purpose
jacek: meh
jacek: you say 24-25 but ends up with 27
MSmits: thats because they make mistakes
MSmits: in the end game
jacek: you should predict their mistakes
struct: MSmits on clobber do you prune moves or use ept?
Astrobytes: They? Ille is a team! :o
MSmits: wouldnt that be useful eh ?
struct: or is just normal mcts
MSmits: clobber was written in less than a day
MSmits: like c4
MSmits: so nothing weird
struct: yeah took me 2 hours
MSmits: you can use my bot as a benchmark for good performance & no bells and whistles
jacek: hes already above you
MSmits: yeah
MSmits: good
jacek: and milka is using math there
MSmits: milka is a chocolate brand
jacek: and is using math there
MSmits: lol
Astrobytes: I think he's using that deliberately
AllYourTrees: MSmits how many rollouts are you getting 1st turn for clobber?
struct: ban math
MSmits: i rollout from each child AllYourTrees
MSmits: so it's a bad measurement
AllYourTrees: oh so do i
struct: how many allyourtrees?
MSmits: let me go check then
AllYourTrees: expand all children & do 1 full random rollout
AllYourTrees: for each
struct: I do that
MSmits: ok, but your rollout count, is this for all of them separately? Or counted as 1
struct: I get like 1.5 - 1.8 Million
AllYourTrees: all of them separately
MSmits: ohh ok
AllYourTrees: darn you struct
MSmits: meh it's not enough to beat mikla. I do get a lot of close games this way but only rarely win
MSmits: kinda funny it influences the shape of the map like this though
jacek: you should take a break and eat some bacon
MSmits: why bacon though?
MSmits: oh
jacek:
MSmits: got it :)
jacek: :tada:
Marchete: :bacon:
MSmits: this is what it is supposed to do: https://www.codingame.com/share-replay/571396744
Illedan: Did you NN d&b?
MSmits: huh no, not me
Illedan: Did 1st player do it?
MSmits: no, he's just using math
MSmits: i am too, but he's using it better
Illedan: :D
MSmits: thats why he is also nr 1 at clobber
Astrobytes: you should ask him some more questions MSmits, he was qquite forthcoming last time
MSmits: they are both math games
MSmits: yeah
MSmits: i will if i see him
MSmits: but i'd feel bad if he gives away and I club him over the head with it :P
MSmits: could just be 1 little thing
Astrobytes: Then he can ask you questions ;)
MSmits: true
Illedan: On that lead it has to be more than 1 thing :P
Illedan: Not just a +1 somewhere
MSmits: not really, I made a change in my bot the other day that allowed me to solve 7 plies earlier, making my bot over 1000 times faster
MSmits: he solves 1 ply earlier than me
Astrobytes: Illedan: off-topic, but whatever did you do with your snake game you made for your work colleagues a while back?
Illedan: Was used for 2 social evenings
Illedan: https://www.codingame.com/ide/demo/8462468ed0113b37c6abb9f1a25ad764b388cc
Illedan: Most Norwegian leaderboard xD
MSmits: what does Bekk mean
Illedan: Company name
MSmits: oh
Mazia: ello govners
Astrobytes: lol, who could have predicted that winner eh
Illedan: I didnt participate
Illedan: This is my test bot to validate the game :P
Astrobytes: ah lol
MSmits: nice test
Astrobytes: Top was close
MSmits: not to the test :P
MSmits: they failed the test
Illedan: Very few games in contribution :(
MSmits: ah yes
Illedan: Oh, nvm I was wrong. Ille-Stream is my test bot
Illedan: nr1 is some serious stuff to cursh them xD
Illedan: *crush
MSmits: haha
Astrobytes: Oh lol, didn't even notice Ille-Stream bot
MSmits: I'd make a game if i could use it to crush my coworkers too
Illedan: Should I move it to public with a real name and make it a contribution?
Astrobytes: I reckon so yeah
Illedan: Basically snake :P
Illedan: But I feel more like making it an Optim
Illedan: like 2048
Illedan: with known seed
Illedan: to finish the game fastest
Astrobytes: Hmmm, that's an interesting idea
Astrobytes: I'll leave the choice to you but it's definitely publishable
Illedan: hm hm hm. Optim or multi. Which is more fun?
Astrobytes: Depends which day of the week it is
Illedan: xD
Illedan: Friday for optim?
Astrobytes: lol
Astrobytes: You could do both? I donno, might be pointless
Astrobytes: Push to public anyway and ask for opinions
Illedan: Ok, will fix tomorrow. thx for reminding me :)
Astrobytes: I just remembered earlier when Blaise posted a snake emoji
MSmits: you make that sound like a milestone :P
Astrobytes: :D
MSmits: i'll make it a point to post random animals occasionally to see if it does something for you
Astrobytes: hahaha! Please, be my guest
Illedan: Make it a multi and allow players to jump and swap direction? xD
MSmits: jump?
Illedan: *dig then
Illedan: go below ground 1 tile and then up again
MSmits: blaise was talking about worms earlier
MSmits: that fits
Astrobytes: ooh, burrowing. Interesting mechanic
Illedan: Maybe just too much
Illedan: 2p, 3p, 4p?
Astrobytes: Hm. 4p might be too much.
ArunJayaraman: /me
Illedan: yeah, too few turns
Illedan: But 2p is basically just an optim
Illedan: or Tron 2
Illedan: This game has the best story :D
MSmits: tron?
Illedan: my snake
MSmits: the story of how you wrecked your coworkers?
Illedan: There is a story part below most games you know?
Illedan: In the rules
MSmits: oh that one, let me go read
Astrobytes: Yeah. 3p then I guess. Unless optim. Sooo ask for ideas in the contribution I guess would be the best idea.
Astrobytes: lol
MSmits: the cake is a lie
Illedan: :tada:
MSmits: the story too :P
Illedan: You get the reference?
Astrobytes: When life gives ya lemons
MSmits: well it's a meme
Illedan: From the Portal game
Illedan: oooh, I should make a portal game
Illedan: hmmm
Illedan: but, basically Sokoban
Illedan: :(
Astrobytes: Make life take the lemons back! get Mad!!
Illedan: meh, too little time
codeing: holla all
Illedan: Learning Unity these days
Astrobytes: I got it
MSmits: oh thats cool Illedan
codeing: just get a question gays
Astrobytes: For anything interesting?
MSmits: did you do the catlike coding tutorials?
Illedan: Might get to do game dev for work if I can prove myself :)
codeing: does rubik's cube solving make more logic ?
Astrobytes: Oh very nice :)
codeing: 7 * 7
codeing: 7 * 7 rubik's cude
Illedan: Hope the contest on monday is nice :)
MSmits: oh right
Astrobytes: Oh I forgot about that
Illedan: So, Optim for Snake. To get done with it by monday. Done deal
codeing: answer me :smiling_imp:
codeing: does 7 *7 rubik's cube solving make more logic ?
Astrobytes: Hehehe, sounds good to me Illedan
Astrobytes: codeing: if your question made any sense we would answer it
MSmits: ye it's not making any logic
jacek: what's 49 rubic cube?
codeing: Does the resolution of the 7 * 7 rubik cube make the developer more logical?
codeing: yeah jacek
codeing: in 2 minutes
MSmits: are you asking if solving a 7x7 rubiks cube trains you to write better algorithms ?
codeing: sure
codeing: yeah
MSmits: if you do it by using algorithms then yes, but there are probably better ways to practice this general skill
Astrobytes: if it's 7x7 you can do that on paper :P
jacek: yeah make NN for it
Illedan: Anyway, I'm off. Hope ya all are ready for Snake party tomorrow night
Illedan: Damn, that sounded wrong
Illedan: Ignore me
Illedan: bye
Astrobytes: :D
codeing: https://www.youtube.com/watch?v=KHJdc4ox87M&t=200s
Astrobytes: Night Illedan :rofl:
MSmits: gn Illedan
MSmits: nothing wrong with a good ol' snake party
jacek: https://www.youtube.com/watch?v=LyjGhtba_zs
codeing: no, that's basics
Astrobytes: https://www.youtube.com/watch?v=EERaK5wEHQ4
Astrobytes: MSmits
codeing: https://www.youtube.com/watch?v=NQbssl0rmy8
struct: Was this what you were talking about jacek?
struct: https://www.codingame.com/replay/571405727
struct: The eval was quite high
jacek: eeyup
MSmits: nim games being all or nothing kinda makes this seem correct
MSmits: it just did a wrong guess
MSmits: did not know that show Astrobytes
MSmits: but i've seen the actor around shows by jimmy carr
Astrobytes: Peep Show and That Mitchell And Webb Look are worth a watch, ask dbdr
MSmits: dbdr watches peep show?
Astrobytes: I recommended one or the other to him a while back
MSmits: ah
Astrobytes: He knew one already
LazyMammal: Anyone else getting timeouts on UTTT multi league arena?
Astrobytes: Are you leaving a 3-5ms buffer for your timer?
LazyMammal: Yeah, I leave a bit of room already. Today I'm only timing out on the first move. I'm also seeing my opponents time out but I'm not sure if that's normal for them. I'm looking at Legend league.
struct: you need to start the timer after reading the first input
Astrobytes: I don't have a UTTT bot but things seem SNAFU as per usual multi-wise. What changes have you made today?
LazyMammal: I had that problem struct you're right. Fixed that up right away once I found it. Spent too long tweaking the bot offline and forgot a couple things :D
Astrobytes: Ah lol, I checked your level and figured you knew that already :D
LazyMammal: Haha yeah. Well I ruled out the obvious and I was just wondering if anyone else was having trouble.
Astrobytes: hehehe, it happens!
Micheeey: whats up
Astrobytes: the opposite of up last time I checked :P
Astrobytes: *down DOWN FML
Astrobytes: Clearly too much time in CG chat today
Astrobytes: So whats up for me? I'm tired!
Astrobytes: RoboStac: I beat you twice in a row, it must be a bad submit
RoboStac: it's a baby nn, it doesn't know what it's doing yet
Astrobytes: Ah OK. Great
Astrobytes: :P
struct: which game?
Astrobytes: Clobber
RoboStac: it's at least not claiming the enemy is cheating and making invalid moves anymore
RoboStac: so I think my sim is correct
Astrobytes: lol, that's a positive start :)
Astrobytes: Gonna be tough to wreck miklla
struct: There seems to be a few tricks to reduce branching
Astrobytes: (generally I mean, not on this submit)
Astrobytes: Divide and conquer is the name of this game really
struct: ill still try to finish breakthrough first though
Astrobytes: I hate that game. I may convert to EPT.
struct: I have a few bugs on the arena version
struct: I would try EPT
struct: you probably wont have to change a lot of code
Astrobytes: Yeah, not a big job, just tedious :)
Astrobytes: Hm. Still I'm making these invalid actions. Damn bugs.
Astrobytes: Submit looks nice struct
struct: my random starting seed could start at 0
struct: so it would always return 0
struct: ...
Astrobytes: lol
MSmits: I wonder if mikla just nim solves
MSmits: and plays random before
MSmits: on clobber
struct: I have same bug on bt ....
struct: I guess ill resubmit there too
Astrobytes: I doubt that MSmits but nothing is impossible
Astrobytes: defo nim solving but random?
MSmits: what else to do?
MSmits: does it matter what you do in the first 20 plies?
MSmits: are there clear ways to eval?
Astrobytes: Perhaps not if we all play in that way
Astrobytes: Otherwise there are gains to be made
MSmits: just wondering what they are
Astrobytes: it's mostly groupings afaict
MSmits: you eval groupings?
Astrobytes: I eval nothing
MSmits: no i mean the general you
MSmits: not you the friendly scotsman
Astrobytes: yeah, like the islands
MSmits: but thats what you nimsolve
MSmits: the island
Astrobytes: yeah, but you can eval the pre-island configuration surely
Astrobytes: To obtain optimal islands
MSmits: I guess
MSmits: seems like such a short game
MSmits: been watching too many D&B replays
Astrobytes: Hey I'm just thinking out loud
Astrobytes: I could be wrong
MSmits: yeah I dont know how to think about it at all
MSmits: I would guess you nim solve it at the end and use NN before that
MSmits: or something
MSmits: seems hard to write a good eval
MSmits: I see that there are differences in mobility
MSmits: well no not really, every move can be reversed
Astrobytes: All you have to know about this game is even trictrac had to make a MCTS
MSmits: wow
MSmits: are they all using mcts then?
Astrobytes: afaik everyone is MCTS, I could be wrong, it's possible to be lower in the league with ab minimax
MSmits: i guess the players that perform better do pruning in some way
MSmits: I can already see some equivalent moves
Astrobytes: There seem to be numerous pruning possibilities, couldn't tell you which are optimal though
MSmits: well two equivalent moves can always be pruned. It's just that detecting them might be too expensive
Astrobytes: *Might* or may save you a bunch of trouble. Has to be tested
MSmits: yep
struct: cant beat any NN :(
MSmits: mikla can do it :)
struct: i meant in bt
MSmits: oh, right
struct: i resubmited there with 2 small bug fixes
MSmits: I see
Astrobytes: nice
struct: I still have some more things to do there
struct: I have one function ready to solve sooner
struct: im not sure if its worth to check for zugzwang
struct: I know it can happen but never seen it on cg
Astrobytes: It's weird, I do a small null move pruning in BT and without it my bot is much worse.
Astrobytes: (in all versions, not just my current shit one)
struct: I prune some moves
struct: but only for me
struct: for opponent I take into account all
Astrobytes: wtf I'm 24th in Oware
struct: you got pushed down?
Astrobytes: I most certainly did yes
struct: Ah many submits from the same palyer
struct: can do that
Astrobytes: Getting back to a decent position is a lot harder now with all the NNs, still cool though
Astrobytes: More of a case of about 5 people with NNs submitting
Astrobytes: gotta say csip/martinpapa and old john both have done well in there recently
Astrobytes: anyway, off to bed, gn all
struct: gn
Husoski: sweet dreams!
DogCat: struct, how can i to participate of Arena without write my country?
OBenjOne: What other games are there similar to coders strike back where the game is more focused on physics than on a board-game strategy feel? I really enjoyed coders strike back and mars lander so any more similar to that would be really cool
MSmits: bitrunner 2000
MSmits: https://www.codingame.com/multiplayer/bot-programming/bit-runner-2048
OBenjOne: thanks I will check it out
MSmits: https://www.codingame.com/multiplayer/bot-programming/poker-chip-race (hard to sim)
MSmits: https://www.codingame.com/multiplayer/bot-programming/mean-max
MSmits: https://www.codingame.com/multiplayer/bot-programming/fantastic-bits
MSmits: these are games that use physics engines
MSmits: but br2k is the most "pure" physics game
OBenjOne: Thank you so much!
MSmits: np hf