Chat:World/2021-02-11
Wontonimo: i'm still in the process of migrating my implementation to cpp. I hear ya, but like I said, I've gotta focus on just getting it to do 1 roll out before trying to hard to optimize.
ZarthaxX: yes, i wouldnt bother optimizing just yet haha, and also ideas beat optimizations
ZarthaxX: algorithmic ones i mean
Wontonimo: yeah, so just chipping away at it. taking a break once in a while to work on some challenges in cpp. I've been away from having to manage memory directly for way too long. Just looked at my cpp code from last week, and man, soo many mistakes
Wontonimo: well, that's it for me for tonight
ZarthaxX: haha managing memory is pain
ZarthaxX: gn :)
jacek: oO
EliteDaMyth: https://www.codingame.com/clashofcode/clash/15880961a7cf2c817f278eb24ae6176d06f5e26
EliteDaMyth: join
EliteDaMyth: shortest only
phantom1299: oh big brother its you
YurkovAS: kovi in bandas you use mcts? with ept depth 0-10 + eval or run random games to end?
kovi: ept 30
kovi: maybe i should change it to turn dependent
YurkovAS: kovi your eval better than: pawnsMy - pawnsOp? i'm can't find better eval or some bonus\penalty
jacek: maybe pawns in center are worth more?
kovi: i dont have any heurstic atm. ept means draw
YurkovAS: kovi thanks!
kovi: yeah, overall cnt doesnt seem to matter. probably center would make more sense.
mokhld: I'm really struggling on these questions lol!
mokhld: And about to finish my masters in CS
Rocky[K.G.F.]: wow site is to busy
Kokoz: anyone doing or already did the weeks puzzle??
ErrorRazor: Oh yeah, it was the resistor thing
Nativeman: hello world
Rocky[K.G.F.]: hii
Rocky[K.G.F.]: why u say this Kokoz
Rocky[K.G.F.]: anyone doing or already did the weeks puzzle??
Kokoz: Well, I am doing it now and I need some assistance.. So anyone interested in helping please dm me.
zalanrilex: i dont know how to program in javascript!!
zalanrilex: has anyone done html?
ErrorRazor: Too long ago to remember a thing
DJSchaffner: i just had a clash where we had to calculate a sequence of which i forgot the name. can anyone help me out who recognizes this pattern: given a number, if the binary representation of the number has any parts where the length of consecutive zeros is odd, return a 1. otherwise return 0
JohnathanBarbee: @DJ Google says Binary Gap.
JohnathanBarbee: I hope that helps
Astrobytes: DJSchaffner: This perhaps? https://oeis.org/A268412
Astrobytes: (Balanced evil numbers)
JohnathanBarbee: That looks right
Astrobytes: DJSchaffner: Baum-Sweet Sequence
Astrobytes: https://www.codingame.com/contribute/view/61158d3e1d7a95636e571f9594e7e2212405
DJSchaffner: binary gap doesn't look quiet right. the balanced evil numbers seem to look at the number of 1's but not at the number of 0's (which shouldn't be the same) and it doesnt seem to match with the results i got. anyhow, i managed to find a better solution than what i came up with in the clash without finding a description of the sequence :D
DJSchaffner: yes baum-sweet was it!
Astrobytes: DJSchaffner: if you want to look up a clash you can use this https://eulerschezahl.herokuapp.com/codingame/puzzles/
Astrobytes: As long as you can remember some keywords you'll find it with that
Astrobytes: and you're welcome :)
DJSchaffner: oh that is handy. thanks i will bookmark it :D
DJSchaffner: sometimes i remember to make screenshots to improve my solutions but i tend to forget that
Astrobytes: try to remember/write down the name instead
Astrobytes: easier to look up then
MasterCoderxD: hello
MasterCoderxD: I am back
JLukeSkywalker: wb
MasterCoderxD: ty
RockyBal: Hey guys! Does anyone know what kind of material does the Technical Assessment test cover?
JLukeSkywalker: link to the test?
JamesModifiedGames: Hey MasterCoder. How is that new code going?
MasterCoderxD: which one brah?
RockyBal: don't have the link yet but the title says Codingame Technical Assessment ... I'm wondering how to prepare if anyone can advice me on that, would really appreciate it
MasterCoderxD: James, u mean my programming language?
JamesModifiedGames: Yes
JLukeSkywalker: RockyBal: im asking where does it even say that
RockyBal: Ohh it's a job interview I have
RockyBal: But I have no idea what to prepare for it
RockyBal: Thought someone might have some advice
JLukeSkywalker: that most likely has nothing to do with codingame, this is just the platform they are using. They might make you do like puzzles and or private clash, etc
JLukeSkywalker: I would practice by doing the practice section on here
JLukeSkywalker: most job interviews are probably in the medium to hard puzzle range, depends on the job though
RockyBal: Thanks a lot buddy! That really helps
JLukeSkywalker: np, gl
JamesModifiedGames: JLukeSkywalker Could you help me with the power of thor episode 1. I solved the first testcase, but I don't know how to make it where it keeps testcase one and all the other ones.
JLukeSkywalker: you need to make your code so that it can solve any of them based on the inputs
JLukeSkywalker: you cant just hardcode up for test cast 2 for example
JamesModifiedGames: Would you be able to give me an example?
JLukeSkywalker: if your current position is above the targer, move down
JLukeSkywalker: if your current position is below the target, move up
JamesModifiedGames: Okay
JamesModifiedGames: And if your left go and and vise versa?
JLukeSkywalker: yep
JamesModifiedGames: okay thank you much
JLukeSkywalker: and you can also move diagonals
JamesModifiedGames: Like SE And SW
JLukeSkywalker: yeah
Astrobytes: and don't forget to update Thor's position when you move.
JamesModifiedGames: okay thank you
JLukeSkywalker: so if you are above and to the left, you would go SE
JamesModifiedGames: What do you mean Astrobytes
JLukeSkywalker: your current position isnt given
JLukeSkywalker: you have to keep track yourself
Astrobytes: You're only given his starting coordinates in the input.
JamesModifiedGames: So for testcase 2 his position is (31,17), so whenever he ends the run i would have to tell the system that his new position is (31,4). Is that what you mean?
JLukeSkywalker: if you move north you have to subtract one from your y
cooldude420: Hello guys, I hope everyone is having a great day!
JLukeSkywalker: then recalculate which direection to move in
Astrobytes: One step = 1 turn
JamesModifiedGames: OKay, that makess sense.
Astrobytes: afk for a bit
mustafaozx: how can i see last clash of code
ichwarsnix: click the bell in the upper right corner
ichwarsnix: there you find all notifications, including coc you finished
ZarthaxX: AfkByto
Astrobytes: StealthaxX
Astrobytes: o
ZarthaxX: waddup
ZarthaxX: thought you put steal and i was gonna ask what did i steal
ZarthaxX: LOL
Astrobytes: :D Yeah all quiet here man, how's things for you?
PatrickMcGinnisII: I just found the mathematical way to solve Paving with Bricks, anyone else do it without backtracking and counting?
Astrobytes: HAven't done that one
ZarthaxX: i did a final exam 2 days ago and got the mark of a final exam i did on december the same day :P
PatrickMcGinnisII: main formula is on pg. 5 https://arxiv.org/pdf/math/0501170.pdf
Astrobytes: Haha, get the result you wanted ZarthaxX?
PatrickMcGinnisII: have to modify for odd rectangles
ZarthaxX: yeeee double 10 baby
Astrobytes: nice!
PatrickMcGinnisII: Must be an A. American thing...;) hey zarthy
ZarthaxX: one of those subjects was algorithms and data structures 3, the last one of its kind
Astrobytes: PatrickMcGinnisII: I'm sure I came across that on SO or wikipedia
PatrickMcGinnisII: S. amer
ZarthaxX: no more algorithms for me
Astrobytes: Now you are MasterOfAlgorithmsaX
ZarthaxX: sax :P
Astrobytes: yes algorithm sax
PatrickMcGinnisII: huh, formula is on the wiki
ZarthaxX: i dont think so but it feels good to end that topic
PatrickMcGinnisII: but it doesn't tell you how to do odd rectangles
ZarthaxX: anyway, will have holidays with gf family in a couple days too
Astrobytes: Ah cool, time to relax a bit at least
Astrobytes: well - hopefully!
ZarthaxX: yee some beach and chill
ZarthaxX: i was in a hurry to finish this exam for that lol
ZarthaxX: anyway holidays with corona are strange
Astrobytes: Man I could do with some of that beach stuff. Instead we have 40 cm of snow.
ZarthaxX: im more of a cold guy so i would like to swap places
ZarthaxX: :rofl:
mr.idiot: oh hi
Astrobytes: I like the cold but... it's a bit toooo cold out there
ZarthaxX: how many degrees?
Saad-py: Any one knows a good tutorial or website for all python inbuilt function cause instead of using ord I made a long list and LOL I was last
Saad-py: Te question was some of ascii values of string
Astrobytes: only about -4 ish last I checked, but feels more like -9 or 10
JLukeSkywalker: there isnt really a way to learn all of those other than just doing puzzles on here and looking up ways to complete them
PatrickMcGinnisII: its 25C here
Astrobytes: was -22.9 up north last night
Saad-py: Anybody watched Dream's manhunt finale
ZarthaxX: -22.9 O.O
ZarthaxX: okey that's WAY too cold lol
Astrobytes: second lowest was back in 1995, -27.5
Astrobytes: No, C
Astrobytes: *-27.2, my bad
Astrobytes: Yeah, not great.
Astrobytes: Excellent observation.
Astrobytes: Modland.
RoboStac: unfortunately mod powers don't let us control the weather :(
Astrobytes: I mean Scotland.
Saad-py: I live in the UAE, its hot in here even in winters
Astrobytes: lol RoboStac
ZarthaxX: lol robo :rofl:
ZarthaxX: i mean you can wear clothes and all good i guess?
Saad-py: how many programminglanguages do you guys know
ZarthaxX: it's not like when it's like 38 C
Astrobytes: Well I don't normally go around naked ZarthaxX!
Saad-py: Why do people not share there code in clashes it is so helpful when they do and so frustrating and annoying when the don't
JLukeSkywalker: i shared
Astrobytes: It's not mandatory, sometimes if you message or ping them they might share with you
JLukeSkywalker: you didnt even try though
Saad-py: i know but they others
Astrobytes: Why would you want the solution if you didn't at least try?
JLukeSkywalker: if you dont even try the problem and just hit submit instantly, you arent going to get better
Saad-py: I do try to message them, they react like I am a 10 y/o asking for candy
Saad-py: Like I always try BRUH
ZarthaxX: Astrobytes but you cant avoid hot like with clothes when its cold
Astrobytes: If you're failing at clashes, try doing easy puzzles
ZarthaxX: altho i could see you naked bb :*
JLukeSkywalker: submitting 0% at 3 minutes in shortest is not trying
Astrobytes: True. Hahaha, wait til summer :P
Saad-py: Which easy puzzles any links where can I fin it
JLukeSkywalker: just go do any of the easy puzzles
Astrobytes: https://www.codingame.com/training/easy
Astrobytes: No time limit
Saad-py: http://chat.codingame.com/pastebin/5ec30c7e-9441-411b-94b5-11b78bd5297a
Tee-Resa: i love the easy puzzles...doesn´t take to much time :D
Saad-py: The Descent was qquite easy though
Saad-py: while True: http://chat.codingame.com/pastebin/6f46d29c-7ce6-4e27-8b45-9cf6354ded07
JLukeSkywalker: then do more or move to medium puzzles
Saad-py: yeah thanks for your help everyone
Saad-py: Never thought someone woud advice a 13 y/o like me
JLukeSkywalker: no-one cares how old you are, and wouldnt even know unless you say it
Astrobytes: Yes, it's not particularly relevant.
Saad-py: How do I save my easy puzzles
JLukeSkywalker: saves once you press play
Astrobytes: The solution is saved when you play your code
Astrobytes: lol, I'm too slow today
Gurp1272: Does anyone have a job coding with Ruby?
Astrobytes: No, she made the office smell like cheese and onion so I left.
JLukeSkywalker: got to rank 1 last submit, changed nothing, got to rank 250
JLukeSkywalker: damn rng
Astrobytes: Which game?
JLukeSkywalker: fantastic bits
JLukeSkywalker: bronze league currently
Astrobytes: Ah OK
ZarthaxX: that's normal, thought u meant legend lol
JLukeSkywalker: lol, i wish
Gurp1272: I am clear for landing
Gurp1272: Just thought you all should know that
mustafaozx: how can i see last clash of code
JLukeSkywalker: after everyone finishes a link to the results will pop up in the notification bell
JLukeSkywalker: if you mean see the puzzle again, you cant. you can try to look it up here though: https://eulerschezahl.herokuapp.com/codingame/puzzles/
Tee-Resa: solved weekly puzzle :D
JLukeSkywalker: gz
JLukeSkywalker: its a cool one
Tee-Resa: jeah, took a while for me...:sweat_smile:
Tee-Resa: haha, i needet 69 lines...lol
KiwiTae: hey o/ pewpew
Audatic: the shortest code ones are a lot of fun but meaningless if you code in Java vs Ruby. Why don't you make them language specific? E.g. fix a language for each clash?
JLukeSkywalker: the code golf is language specific. clash is jsut supposed to be quick battles, you win some, you lose some
JLukeSkywalker: python is a useful language to know anyway, and easy. if you want to get shortest clashes, worth picking it up
Audatic: okay I haven't seen the code golf section. And yes I do python for those but ruby beats me still :D
JLukeSkywalker: barely anyone uses ruby in clash, got up to position 100 with just python
Audatic: well I only did 5 shortest ones so far, won 1 (no ruby) and lost 4 (all to ruby). But maybe the sample size is too small
JLukeSkywalker: if you get 2/8 and i think even 3/8 you will usually still improve your ranking
JLukeSkywalker: even if you didnt 'win'
Audatic: yeah I got 2/8 but I need to win ;) Anyway will check out the code golf
struct: https://github.com/siman-man/ruby-golf-style-guide
struct: ofc there are a lot more tricks
Audatic: can I see my past clashes?
JLukeSkywalker: CG has only 4 puzzles, but you are ranked based on your top 5 language submissions for each
struct: Only the code
JLukeSkywalker: shows on the results page, can get to that in your notification bell after everyone finishes
Astrobytes: Wonder why there aren't more golfable puzzles? I'm not massively into it but curious.
JLukeSkywalker: if you want to find the actual puzzle, you can look it up here if you remember anything about it: https://eulerschezahl.herokuapp.com/codingame/puzzles/
JLukeSkywalker: just for practice purposes, you wont gain ranking or anything from doing it outside of clash
AlmostAtom: question: is it normal that some test cases don't work anymore when using c++ and cout? third time for today that i always get answer "Nothing"... but when submitting i get 100%
struct: trailing spaces maybe
JLukeSkywalker: Astrobytes:I think because other than the solution (which is what normal puzzles are for) every CG problem ends up just being the same
AlmostAtom: but shouldnt trailing spaces also be a problem when submitting?
Astrobytes: You mean system calls etc?
struct: yes
Astrobytes: and hi struct o/
struct: hi astro
Astrobytes: Is euler boycotting CG or something?
struct: idk
struct: Havent seen him online on discord either
Astrobytes: He came on earlier this evening, first I've seen him in 7 or 8 days
Astrobytes: Not seen him on CG at all
KiwiTae: maybe he got a life or smth :/
Astrobytes: Nonsense :P
KiwiTae: :stuck_out_tongue: hii Astrobytes
Astrobytes: hey hey Kiwiii
KiwiTae: im missing 2 silver badges :/
KiwiTae: :joy:
Astrobytes: Fix it
KiwiTae: loool are u Maddy
Astrobytes: No, it's just a CG meme nowadays.
KiwiTae: (╯°□°)╯︵ ┻━┻
Astrobytes: MK statements have become canon
Astrobytes: This is what happens when you're not here often enough, you miss things :P
KiwiTae: i know :3 been too busy partying
Astrobytes: Taiwan gets parties, we don't eh
Astrobytes: Least you can't party now you're in France :P
KiwiTae: yea.. :'(
KiwiTae: I miss nightclubs :grin:
KiwiTae: karaoke parties :'(
KiwiTae: ><
MSmits: you can do a solo party
MSmits: https://www.amazon.com/disco-ball/s?k=disco+ball
KiwiTae: :joy:
Astrobytes: "Highly rated disco balls"
MSmits: yes, I am guessing they are much flashier than the low rated disco balls
MSmits: those are basically just balls
Astrobytes: Or rounder
MSmits: sure, that too
Astrobytes: You could start selling them on the Unity store
MSmits: yeah
MSmits: I still get about 1 dollar a month from my sphere :P
MSmits: it was 1 afternoon of coding
MSmits: imagine how much money i could have made if I had spent my time doing unity stuff :P
Astrobytes: You should do more, in between bots and meta-mcts
Astrobytes: might get $5!
MSmits: yeah. Maybe after I am done with my studies
Astrobytes: Oh yeah, almost forgot about those
KiwiTae: you made unity asset?
MSmits: I got a 9 out of 10 for game design btw
MSmits: yeah KiwiTae
MSmits: only 1
KiwiTae: oh cool
Astrobytes: Ah excellent MSmits
MSmits: https://assetstore.unity.com/packages/3d/better-spheres-fibonacci-spiral-97607
MSmits: has some nice reviews too
MSmits: wow it's 5 euros now
MSmits: i guess they upped their minimum cost
MSmits: I had it at 1 euro at first
MSmits: sometimes i get mails form unity. I always ignore them :P
KiwiTae: thats nice
KiwiTae: I am thinking of putting some stuf on ue4
struct: Is email public by default?
struct: I can see it and im not even logged in
MSmits: yeah Iguess I need to change that
Astrobytes: Too late, we've sent our botnets to Innoble
MSmits: lol
MSmits: well I completely redid my uttt bot
MSmits: it's a completely new bot. Did almost everything differently
MSmits: and now I basically have two bots that are rank 3-4 :P
Wontonimo: oh,
Astrobytes: :rofl:
Wontonimo: almost everything different .... i was going to ask what's the major change
MSmits: i didnt submit it, but it has the same winrates, more or less
Astrobytes: Well, the proof of the pudding is in the eating so submit it
MSmits: very heavy expansion function with massive pruning
MSmits: only 50-60k rollouts
MSmits: very heavy rollouts too
MSmits: i am not yet done with the bot so not submitting
Wontonimo: i'm curious if it has a different place in the RockSissorsPaper landscape of various bots
MSmits: i migth just take what i learned with this bot and improve my other one with it
Astrobytes: doesn't j acek do quite heavy rollouts on uttt? OR was that someone else
MSmits: i think he does
MSmits: mine are much heavier i am sure
struct: he had low number of rollouts
Wontonimo: interesting ... how many rollouts was your other bot?
Astrobytes: Yeah, due to heaviness iirc
struct: but he didnt really said how he measured them
Astrobytes: Always an issue
MSmits: the fastest version had 130k, the one i currently have on the leaderboard 90k
MSmits: I also used some avx in this new bot
struct: just for wincheck?
struct: or somethign else'
MSmits: several things
MSmits: also generating available moves
Wontonimo: nice
MSmits: check end of game for both players at once
MSmits: testing for dead boards
MSmits: boards that arent ended, but can only draw
struct: I see
struct: you load the current board into _m256
struct: and then check
Wontonimo: do you think there's a chance that a draw is sometimes your best option?
struct: right?
MSmits: http://chat.codingame.com/pastebin/e1ec4011-ac51-4bd7-bcbb-e39d90a4265a
MSmits: board 1 and 2 are player and opponent
MSmits: Wontonimo how do you mean?
Astrobytes: oddly enough, I was looking through these avx instructions earlier. Very cool.
Wontonimo: is there a situation where your opponent could win, but you cant and a tie is your best option?
MSmits: definitely
MSmits: well thats true almost by definition
MSmits: if you cant win and your opponent can, then a draw is your best option, bot on a miniboard and on the bigboard
MSmits: unless giving up the miniboard to a loss benefits you in the overall board
MSmits: as for draws in general. a draw is basically a win for player 2
Wontonimo: so when you trim draws, how do you prevent giving a win to the opponent?
MSmits: trim?
Wontonimo: i must have misread. ... "testing for dead boards boards that arent ended, but can only draw"
MSmits: let me give you an example, sec
Wontonimo: i read that as trim
struct: union { __m256i boards256; __m128i boards128[2]; };
boards128[0] = _mm_set1_epi16(board1); boards128[1] = _mm_set1_epi16(board2);
struct: There should be a better way for this
struct: _mm256_inserti128_si256(_mm256_castsi128_si256(lo),(hi),1)
struct: // Join two 128-bit vectors
- define set_m128ir(lo,hi) _mm256_inserti128_si256(_mm256_castsi128_si256(lo),(hi),1)
MSmits: XOO OXX X.O
MSmits: = dead board
komple1: is there a rank system in website?
MSmits: struct let me see
Wontonimo: ah, on the mini boards. I see. thought it was for the overall game.
MSmits: no just the minis
MSmits: it's useful information to have
Wontonimo: super! i like it
Wontonimo: it's someting i havent addressed
MSmits: if a board is dead, it doesnt matter which square on it you play, if they all lead to a finished board
MSmits: so you only allow 1 such move
MSmits: prune the rest
MSmits: uttt has tons of these little ways to prune
MSmits: but it's pretty expensive
MSmits: dont know what this does struct
MSmits: _mm256_inserti128_si256(_mm256_castsi128_si256(lo),(hi),1)
MSmits: you insert two at once?
MSmits: and it's faster?
struct: I dont know if its faster
struct: I just copied it from the library
MSmits: ah ok
Wontonimo: i did toy with a heuristic to prefer moves that narrowed the opponents choice. yeah my current bot is in silver, but it made a significant difference. It was a computationally cheap check. I'm scrapping that python bot ... very close to having v1 of my bitboard cpp bot done
MSmits: i actually tried a negative childmax bias
MSmits: to give a selection bias to nodes with a lot of children
MSmits: this would penalize moves that lead to a free move as well
MSmits: but it didnt work on my new bot
MSmits: i have -0.15 penalty on my leaderboard bot for free moves
MSmits: on selection. That helps a bit
MSmits: didnt work for my new bot
MSmits: only shows how these things interact with other parts of your bot
Wontonimo: yeah, for sure
struct: http://chat.codingame.com/pastebin/906ed328-489c-450e-963a-d7fc6c6fd5eb
struct: http://chat.codingame.com/pastebin/bbe59a6b-e225-4ad7-a38a-aa9364ad7ece
MSmits: ok so it works
struct: yeah, im just not sure if its faster
MSmits: i would still have to union it
MSmits: because of the last line where i do the comparison
MSmits: with the zeros
MSmits: it's sad i cant do one for 256
MSmits: instruction doesnt exist
MSmits: some 256 instructions that could be useful do exist, but need avx 512
struct: None of the test ones works?
MSmits: hmm for 256?
MSmits: mmh which one should i try?
MSmits: not sure what that ZF and CF stuff means
struct: one sec
Astrobytes: CG uses Haswell arch only?
struct: yes
YurkovAS: zf: zero flag cf: carry flag
MSmits: ok, but what is the carry flag used for?
YurkovAS: https://en.wikipedia.org/wiki/Carry_flag
Astrobytes: when you carry a bit in an arithmetic operation
Astrobytes: yeah, that's a better explanation than mine :D
MSmits: ah, right
struct: !_mm256_testz_si256(boards, _mm256_set1_epi16(1))
struct: I think its this?
struct: or without the !
MSmits: isnt this the same as using !_mm256_testz_si256(boards,boards)
MSmits: you dont need to set the 1's
MSmits: if I and it with itself, it is its own mask
struct: I think so
MSmits: I'll try
MSmits: I'll probably notice when it starts solving wrong, if it doesnt, then its probably working
MSmits: yeah it's solving wrong :P
MSmits: wait, maybe i needed to remove the !
MSmits: so far so good
MSmits: https://www.codingame.com/share-replay/528198325
MSmits: seems fine
MSmits: I like the early solving i often get
MSmits: with this new bot
MSmits: now the goal is not to solve as a loss all the time vs the top 2:P
Astrobytes: Well, at least it's accurate!
YurkovAS: you has more rollouts than tomatoes?
MSmits: though sometimes i solve as a loss and then the next turn i solve as a draw because re curse made a mistake. I love that :)
struct: And it should not be slower
MSmits: this bot has only 60k rollouts YurkovAS
struct: Do you notice any performance diff?
MSmits: it's very heavy on expansion pruning and random rollouts
MSmits: it wasnt a bottleneck struct so i cant really test
struct: ah ok
MSmits: but it has to be at least as good
MSmits: so thanks
struct: np
Astrobytes: Probably wouldn't be noticeable with such heavy pruning/rollouts
MSmits: well it's part of the pruning. Basically, on every expansion I test all playable boards for being dead boards
Astrobytes: Ah, yeah, no bottleneck, chat lag
MSmits: I could optimize it a bit more ofc
Astrobytes: Yeah I get your pruning
MSmits: also I don't have any end of game checks in my bot anymore. I never check 3 in a row
Astrobytes: Yesterday you were pruning too much
MSmits: I check if a 3 in a row is possible for the opponent if i play a move
MSmits: and if it is, i dont play the move
MSmits: i do the same thing with connect 4, i never check for 4 in a row with that. I just generate winning moves and make sure the opponent doesnt get them
MSmits: and if no possible moves are left after that, I lose
Astrobytes: lol
MSmits: so games are never won, only losts
MSmits: it makes it so that when you get a free move. You eliminate all moves that would make your opponent win the next turn
Astrobytes: Well, something isn't right for your UTTT since you are not first :P
MSmits: ah well re curse isnt here, so someone else had to say that :p
Astrobytes: hahaha
MSmits: you're right, but I have plenty of stuff to try, I have to simplify my bot a bit. I am up to 2k lines with this new version
MSmits: I also think there's a lot to experiment with in the random rollout
MSmits: when to always take a win, when to avoid free moves
MSmits: I currently have it to always take wins and always avoid free moves otherwise. Thats probably not optimal
Astrobytes: Isn't this why people use ML to tune these things... :P
MSmits: It's interesting that re curses bot and kar liso's bot are both equally strong
MSmits: sure re curse wins with a 60% winrate vs kar liso
MSmits: but thats mostly RPS i think
MSmits: all my bots do worse vs kar liso
MSmits: so it's definitely possible to beat his NN with a regular bot
Astrobytes: Most probably. I can't remember much about karlis o's uttt bot tbh
MSmits: he has a reasonably heavy rollout and good performance
MSmits: i think he experimented a lot with the rollout
Astrobytes: Well OK I know that :D I remember him talking about the details one dayt
Astrobytes: *day
struct: There are only 16 dead boards?
MSmits: he has many different functions depending on the stage of the rollout
MSmits: i think
MSmits: 16?
Astrobytes: Yeah something along those lines
MSmits: nah, has to be way more
MSmits: they dont all have 1 square left either
MSmits: some habe 2
MSmits: i found one with 3 squares left
MSmits: it's a bit hard to figure out, but let me try
MSmits: mmh probably not 3
struct: Any reason why your function only takes 16 boards?
MSmits: ohh
MSmits: now i understand your question
MSmits: there are 8 win masks
MSmits: and i use them for 2 players
MSmits: 8 ways to win
struct: ah I see
struct: Did not notice that it was same mask repeated twice
MSmits: having a hard time to come up with many dead boards btw
MSmits: seems like every one i found only has 1 square left.
MSmits: there's still a lot of those, but maybe i can code it better
reCurse: struct can you come up with some other game to distract him?
darkhorse64: Play fireworks, there is no search and no bitboards, just ifs
MSmits: :grin:
MSmits: hey, you're the one who steers people my way when they have uttt questions. Don't act all surprised when they get me addicted again :
MSmits: :P
reCurse: ?
MSmits: I remember someone asked you questions and you said something on the order of go ask msmits :)
MSmits: it's like offering a beer to an alcoholic
reCurse: Not sure I recall
MSmits: it's fine either way. I kinda enjoy this uphill battle of trying to beat a NN and whatever monster karliso created
reCurse: Don't make me backport all my improvements back to uttt
MSmits: mmh you've been busy then? Uttt was not that long ago
reCurse: uttt->bt->othello->checkers
reCurse: Each one had improvements I have not backported
MSmits: ahh ok
MSmits: but they would have to be improvements that would be more than just shortened training time
struct: oh you got rank 1 on checkers
struct: nice
reCurse: Yes I did take care of not talking nonsense this time
MSmits: kk
MSmits: well I'll let you know when you need to backport :P
reCurse: struct, does it go faster if I paypal you
struct: lol
struct: just give me a game and ill port
reCurse: Well no finding the right game is part of the job
MSmits: struct think of all the income you missed this last year distracting me
MSmits: hey reCurse, i wonder, how do you know if these improvements are game specific? Or did you change things that are provably better?
MSmits: because you might change something, get an improvement, but it might just be for that game
MSmits: obviously i dont know what the nature of the changes were
reCurse: Well yeah naturally, but I have good reasons to think they are either domain-agnostic or would apply to uttt as well
MSmits: ah ok
reCurse: And I can't use this pipeline anymore, need to come up with better, 55% gpu usage pains me.
MSmits: isn't it just a time issue? Do you have it running all the time?
reCurse: Sure
MSmits: iwould be happy if my gpu wast running 100%
MSmits: the things tend to melt
reCurse: But I just spent good money on a gpu I'm not maxing out
reCurse: It's wrong
MSmits: it may live longer if you dont max it out
reCurse: Citation needed
MSmits: i'm no expert but i melted some gpus when i was still gaming
reCurse: Could be a number of things
struct: how?
MSmits: may just be a fabrication error, dust, or something else
reCurse: The only time I killed a gpu is because it was amd
reCurse: Not making that mistake again
MSmits: one time the temperature thingy told me 105 degrees Celsius
MSmits: was dead soon after
reCurse: Well yeah it's not supposed to go that far
reCurse: Doesn't matter the usage
reCurse: Something was faulty
MSmits: probably
MSmits: but these things do have wear and it would not surprise me if they wear out faster with full usage
YurkovAS: time to submit "dead boards" solver 78.10% 8.60% (new vs best) 73.50% 11.30% (best vs new)
reCurse: This claim requires matching evidence
MSmits: it actually works YurkovAS?
YurkovAS: joke :smiley:
MSmits: i just took out part of that code
MSmits: lol
YurkovAS: by statistic is real
struct: Doesnt the wear only lower clock speed?
MSmits: no idea, I am just guessing
MSmits: reCurse is right, you need evidence to say anything conclusive
reCurse: There are so many factors in play to killing electronics
MSmits: YurkovAS I think your stats might be a random fluctuation, because now that I think of it, the dead boards thing doesnt even work for a single board move
MSmits: if there is only 1 square left, it doesnt prune anything
YurkovAS: MSmits i'm change final stage for find best child node of root: find child node with max visits, to: find child node with max score (wins / visits)
YurkovAS: and test in brutal tester, n = 1k
MSmits: i always take max score, but never did much experimentation
MSmits: most of the time max visits will be identical to max score
reCurse: :raise_eyebrow:
MSmits: the exception is when your bot discovers a new deep line of play that raises the score of 1 child a lot but it doesnt have enough time to increase visits
MSmits: because calculation time is almost up
MSmits: something like that anyway
MSmits: but it works both ways, either picking visits or score can give a bad choice
MSmits: there are some variations like "most robust child" that use a combination of both I think
MSmits: https://ai.stackexchange.com/questions/16905/mcts-how-to-choose-the-final-action-from-the-root
MSmits: this gives some options
YurkovAS: thanks
MSmits: I guess I should just run some CG bench and try all these. Im curious to see if it even matters
MSmits: it's hard to find things in uttt that matter :)
reCurse: Only thing that matters is the way out
MSmits: there is no way out
Astrobytes: A sentence to live by if I ever heard one.
RockNTroll: Anybody here making way too much money coding?
Wontonimo: yeah, it's a real problem
RockNTroll: yeah how do you fix it
Wontonimo: spending time on CG and not work
RockNTroll: really?
RockNTroll: you look very old
Wontonimo: well, eventually deliverables will be missed if I keep at CG
Wontonimo: this may shock you, but it's not an actual picture of me
RockNTroll: wtf how
ZarthaxX: that's shocking
Wontonimo: i know!
ZarthaxX: :rofl:
RockNTroll: Why would you do that
Wontonimo: he is my spirit animal
RockNTroll: that's so cool
Wontonimo: looks like he's suffered scurvy but could still gut you if needed
RockNTroll: Does he make a lot of money coding?
RockNTroll: I see
Wontonimo: hmm, vscode just crashed on me for the 4th time today
Wontonimo: it don't like uttt
RockNTroll: too bad
Wontonimo: ugh, random playouts called from one section of code works just like fancy pants, and another section always returns a draw. same code, called from two different places
Wontonimo: it took an hour and a half, but I found the root cause of the error. It was between my keyboard and my chair
Wontonimo: note : if you don't initialize your lookup cache, it won't be initialized
Wontonimo: 20k rollouts in 0.096s on my pc. Getting closer. Way better than my python implementation of 600 rollouts in 0.1 sec