Chat:World/2020-06-10
sHlOk: Did u all notice some odd named coders on this site?
jacek: oO
GPseudo: Do you mean some bots participating in coding practice?
WINWINWIN: Sorry? NgonTran?
AlanSpacer: Racism Comes In Many Forms
AlanSpacer: I am one of them
bobby2: lol
hill123455: anyone got any suggestion with Forest Fire fuzzle. I'm kinda stuck :|
DonLarry: hello world
jrke: hey
WINWINWIN: Can someone tell me what pragmas are used to optimize C++?
Uljahn: #pragma GCC optimize "unroll-loops,omit-frame-pointer,inline"
darkhorse64: #pragma GCC optimize("O3,inline,omit-frame-pointer,unroll-loops","unsafe-math-optimizations","no-trapping-math")
WINWINWIN: "unsafe-math-optimizations" ?
darkhorse64: you ant speed ? Take risks
darkhorse64: *want*
WINWINWIN: :D
Uljahn: speed/safety trade-off
WINWINWIN: I ont have any math anyway its PR2
WINWINWIN: *dont
darkhorse64: When I start a bot, I copy lots of boilerplate without thinking of it
WINWINWIN: Would be useful but my base classes change a lot when I study other PMs
darkhorse64: Timer, random, position, cell, bfs, ...
darkhorse64: grid, serialization
darkhorse64: skeleton
darkhorse64: 800 lines approx to start with
WINWINWIN: I used to copy the point class, but stopped that too when I started to overload the operators
darkhorse64: then, it's time to think and maybe remove some
darkhorse64: overloading operators is really handy for all vector operations
WINWINWIN: siman, you are destroying my rank :rage:
Astrobytes: derjack, jacek, good work :+1:
WINWINWIN: derjack is an alt?
derjack: meow
Astrobytes: Had to abandon it last night cause of the damn leaderboard
MSmits: oware is so screwy
MSmits: Recurse GW=2,78% [ W=0,00% L=94,44% D=5,56% ] [18]
Robo GW=80,00% [ W=80,00% L=20,00% D=0,00% ] [20]
MSmits: so 3% winrate vs Re curse, 80% vs Robo
Astrobytes: lol
MSmits: Robo is nr 1 :P
MSmits: it's only 20 games each i know, but this is typical
MSmits: I change the parameter by 1% and they're both 50%
Astrobytes: Yeah, I feel the pain. The struggle is real.
MSmits: this is not even an eval feature, just the sigmoid parameter
MSmits: it happens with the exploration parameter too
MSmits: anything i tweak
Astrobytes: Yep, I've played with them too
Astrobytes: And you submit, thinking "right, this beats x y and z, should be worthwhile" -> Lose versus the others
MSmits: yep
MSmits: thats why i always have 4 opponents to check against
MSmits: I dont trust it otherwise
Astrobytes: w, x, y and z then ;)
Astrobytes: Fking crazy game
MSmits: I just do the top 3 and agade, the reason I add him is because his bot is weird and sometimes gets really strong vs mine, with some parameters
Astrobytes: Yeah, I noticed that about Agad e's NN. Some submits you literally steamroller it, other times you can't beat it for love nor money. Strange one. You can observe the fluctuation in his placement depending on submits
MSmits: probably the trainingset he uses is too narrow
MSmits: really good vs some strategies
MSmits: useless vs others
Astrobytes: Yeah, that sounds probable
MSmits: my leaderboard version is weak vs re curse btw
MSmits: I remember i never countered his last submit
MSmits: only have a 90% winrate
Astrobytes: *only* :P
MSmits: sorry 10%
MSmits: so what happens is, i submit, I push re curse, then over time other people push me over re curse
Astrobytes: That's more like it
MSmits: I think he trained a couple versions of NN's and picked one that did well against me
Astrobytes: lol, the Smits Exterminator version
MSmits: http://cgstats.magusgeek.com/app/multi-oware-abapa/msmits
MSmits: you can see it pretty clearly here
Astrobytes: Yep
WINWINWIN: reCurse uses an NN on Oware?
MSmits: yes
Astrobytes: yes
MSmits: and robo and agade also
Astrobytes: ^
Astrobytes: And I think both Tiramo n and Csipcsiri p working on them too
MSmits: I think they have the same issue we have though
MSmits: doesnt matter if you train the nn or fit the parameters
MSmits: there's gonna be strong RPS
Astrobytes: Yep
Astrobytes: There doesn't seem to be a 'catch all' set of weights
MSmits: That's usually the case, but most games have enough randomness that it doesn't lead to a lot of RPS
MSmits: I think this game is very narrow as to what a good line of play is and the one who deviates from it first loses
MSmits: unless someone deviates from it more, after that ofc
MSmits: I wonder how many different games I will see with top players
MSmits: maybe they play only a small set of games
derjack: time to retire this alt from oware
MSmits: jacek?
derjack: who
MSmits: derjack = jacek isnt it?
MSmits: i read that yesterday I thought
Astrobytes: yeah
derjack: must be a dream
WINWINWIN: :D
MSmits: I have done CG benches in some games with both derjack and jacek in it :P
MSmits: I think onitama
Astrobytes: derjack was MCTS, jacek was alphabeta
Astrobytes: here at least
MSmits: ah ok
MSmits: is alpha beta good on oware?
Astrobytes: tric trac still has it, not sure on royale, it works up to a point yeah
MSmits: well trictrac is in the ballpark with every non-NN except me, so it might work just as good as mcts except I got better parameters for eval...
derjack: well i have it on onitama
eulerscheZahl: derjack is not a new user?
Astrobytes: No
Astrobytes: Yeah MSmits, he has endgame database on Oware
eulerscheZahl: stop confusing me :/
Astrobytes: well, endgame book
MSmits: it seems useful for oware, but you have to be careful on long games
MSmits: the turn-limit might ruin you
MSmits: if you sacrifice 2 seeds to get 3 and the 3 are expected at turn 203...
Astrobytes: Yeah, but I guess you'd factor that in so you wouldn't make that error
MSmits: thats why sometimes loops are broken near the end of the game
MSmits: sometimes it is best to stay in the loop throughout the game, but then when the end turn nears, your bot sees a way to get a seed without time for the opponent the counter
MSmits: to counter
Astrobytes: yeah, that' s definitely something you see a lot
MSmits: thats also why a good solver helps
MSmits: if you solver sooner, your bot can see this before the opponent
struct: hello
MSmits: hello
Astrobytes: o/
derjack: i see 100us time and still im 36
MSmits: ?
MSmits: jacek, your alt is confusing us
derjack: set*
MSmits: but why do you think your age will change when you set a different time :confused:
Astrobytes: :P
eulerscheZahl: that's how you could keep demos playable long ago
MSmits: hm ok
Astrobytes: yep
Astrobytes: That or a hex editor ofc :P
derjack: welp is parameter fest
derjack: better eval (for mm) works worse in mcts
derjack: maybe its overfitted or too granual or something
derjack: while simpler is suitable for mcts
MSmits: except when you take the better eval and just change one tiny thing and its suddenly better than the simple one :P
WINWINWIN: Anyone else think that the asymmetric maps on PR2 are not a good idea?
struct: Why not?
eulerscheZahl: depends on how much asymmetric
eulerscheZahl: e.g. this in nonsense https://www.codingame.com/share-replay/472020844
eulerscheZahl: (imagine one spawn a little more in the center, didn't fund such a replay that fast)
struct: ah, i did not know that starting position was not mirrored
WINWINWIN: There are asymmetric maps but the battles are always paired
eulerscheZahl: it's just a 1-1 if it's too asymmetric. no information gain from that
Astrobytes: Latest 'Easy' puzzle contribution: "The Car Engineer": Given n cars, you should output the wheels of the total of cars.
eulerscheZahl: n*4
Astrobytes: i.e. n * 4
eulerscheZahl: :D
Astrobytes: :D
eulerscheZahl: but hard to refuse with contribution guidelines
WINWINWIN: euler it is a classic puzzle :joy:
eulerscheZahl: oh, then it's easy to refuse
eulerscheZahl: "No CoC puzzle is too easy." no such rule for regular puzzles
Astrobytes: I've downvoted and commented, only at WIP
eulerscheZahl: shut up and take my downvote
struct: validators are equal to test cases
Astrobytes: lol
WINWINWIN: :D
eulerscheZahl: i followed your example Astrobytes
Astrobytes: :)
eulerscheZahl: and the default code
struct: I think if he hads a viewer its a nice puzzle
eulerscheZahl: write If all of the test cases succeed, then the answer will be correct. Note: delete this two lines and don't forget to print the answer.
struct: adds*
jrke: just n*4
Astrobytes: LOL I didn't spot that euler :D
eulerscheZahl: but who would make the effort to create a viewer for such a simple puzzle?
jrke: ya stub generator input is stupidity
jrke: btw my puzzle any suggestions
jrke: https://www.codingame.com/contribute/view/5099711430c90610375e28adc21ac469179b
jrke: just a pathfinder
eulerscheZahl: oh, the path finding one
eulerscheZahl: i saw that
Astrobytes: Yours is just BFS distance puzzle jrke?
jrke: yeah
Astrobytes: I'm a bit concerned it might be a duplicate
Astrobytes: Could be wrong
Astrobytes: As in too similar to an already existing puzzle
eulerscheZahl: there are definitely some puzzles with BFS and an extra twist
jrke: nope i don't think so cause i haven't solved any puzlle like this
WINWINWIN: jrke there are around 100 easy puzzles
eulerscheZahl: https://www.codingame.com/contribute/view/1159f460c1b31acd2a6bd5bfb6d26c1b7d9
eulerscheZahl: hm, not really the same even if it looks similar at first
jrke: oh yeah looks similar but not same
Astrobytes: Yeah this is finding the exits
eulerscheZahl: https://www.codingame.com/contribute/view/964be0c6ef01133dc1ce77a144ba337660d that's like a more interesting version of your puzzle
eulerscheZahl: same for Bender 4
jrke: ya
jrke: but my puzlle isn't the same
eulerscheZahl: http://www.codingame.com/direct-puzzle/path-finding
WINWINWIN: jrke it does not have to be identical. But it is too similar for it to be a new puzzle
eulerscheZahl: C# solution:
eulerscheZahl: http://chat.codingame.com/pastebin/8d94ce52-8c76-4841-9fdf-9078bc325230
jrke: can my puzzle be rejected
jrke: ?
Astrobytes: Yep. I think you need something extra to make your puzzle more interesting. As it is, just finding the distance isn't really gonna do much for most people
jrke: K i will add more things
Astrobytes: Have a think about it and try and come up with something original
jrke: can i add this if child coudn't reach mom so output false
eulerscheZahl: :thumbs_down:
eulerscheZahl: :thumbsdown:
jrke: K
jrke: i will add something else
struct: All its needed is a viewer
eulerscheZahl: ezpz
eulerscheZahl: but true, a nice animation helps to attract players
jrke: how to add animation i didn't created any puzzle yet its my first puzzle
eulerscheZahl: https://www.codingame.com/playgrounds/25775/codingame-sdk-documentation/introduction
eulerscheZahl: you can also have a look at other community contributions with animations
derjack: making a neat animation for othello?
jrke: does it needs JS
eulerscheZahl: no
eulerscheZahl: a language that compiles to JVM (e.g. Java or Kotlin
eulerscheZahl: )
eulerscheZahl: up to you to decide
jrke: lol i know c++
Astrobytes: Clojure...
eulerscheZahl: https://www.codingame.com/multiplayer/optimization/bender---episode-4 a puzzle with a maze + animation. the sourcecode is on github
eulerscheZahl: scala
eulerscheZahl: groovy
Astrobytes: I always forget about groovy
eulerscheZahl: does CG have Scala?
Astrobytes: yup
jrke: nope im just a 12years old kid just started learning python
Astrobytes: And groovy
jrke: not yet
eulerscheZahl: oh, that's the inspiration for your puzzle
jrke: c++ and little bit python
eulerscheZahl: jrke searching for his mom
Astrobytes: :)
jrke: no
jrke: :)
MSmits: this is another ongoing cg bench:
MSmits: http://chat.codingame.com/pastebin/128c5c34-457f-41de-a3ed-0aa11b319357
MSmits: do you see how Agade stacks up agains the top 1,2 ?
jrke: so i can't add animations with c++
MSmits: weird huh? , he is rank 11
MSmits: 12 points below Robo
struct: I found one with nice animations
Astrobytes: crazy stuff
struct: I will try to do them like it is there
struct: I could post the link here but it uses flash
derjack: flash? what year is it
MSmits: the year of flash grenades
jrke: anyone to my ques
derjack: MSmits also you have many draws with the teapot comparing to others
Astrobytes: Flash, Flash, I love you, but we only have fourteen hours to save the Earth!
struct: Oh god
eulerscheZahl: how do i even execute flash these days?
MSmits: wait what, who is the teapot?
struct: I was playing vs PC and ended up without pieces
struct: Chrome euler
Astrobytes: In a sandboxed VM?
struct: https://i.imgur.com/YGELvGK.png
MSmits: oh darkhorse
eulerscheZahl: nah, i downloaded an offline standalone runner long ago
MSmits: yes
MSmits: weird
c0cainee: when the bot wins the round
Astrobytes: Only Java jrke
struct: https://i.imgur.com/5DtTrVq.gifv
struct: Similar to this I guess
eulerscheZahl: javascript would be possible too. even more efficient regarding replay size. but harder to achieve
struct: to have the navigation features?
struct: I don't think it's possible
eulerscheZahl: reply to Astrobytes 04:13PM Only Java jrke
eulerscheZahl: which referred to jrke 04:09PM so i can't add animations with c++
struct: ah ok
Matrix007: i cant understand the power of thor
Matrix007: is the south direction is one unit?
Matrix007: every direction i move is one unit?
Matrix007: its like creating google maps(#so cool)
Uljahn: you need to change your current position depending on your move
Uljahn: or just click Hints on the left
eulerscheZahl: nice, forest fire as the puzzle of the week
Uljahn: ye, nice graphics, very close to classical puzzles
WINWINWIN: Forest Fire seems nice, could it be modified to optimization?
WINWINWIN: Water used being the scoring metric
eulerscheZahl: probably the optimal solution would be found
WINWINWIN: Sry, you`re right, its solvable
struct: the n x 4 was removed?
struct: :(
jacek: ?
eulerscheZahl: oh dear
eulerscheZahl: puzzle suggestion
struct: you missed it jacek
eulerscheZahl: you are given an amount of cars
struct: print the number of wheels
eulerscheZahl: how many tires are there in total?
eulerscheZahl: wheels? including the steering wheel? don't make it complicated
jacek: CoC puzzle?
struct: tires including spare tire?
struct: no easy puzzle
eulerscheZahl: was WIP, got negative feedback
eulerscheZahl: user removed it again it seems
jacek: and deleted account?
WINWINWIN: I doubt it, was a reasonably advanced account, in the top 2000
struct: advanced?
struct: he was level 6
WINWINWIN: Really? He approved one of my CoC puzzles :/
struct: He only needs N clashes played to aproove them
WINWINWIN: Didnt know that. Thanks struct
eulerscheZahl: N=50
jacek: 200
eulerscheZahl: 50 to approve/refuse
eulerscheZahl: 200 to edit approved contributions
eulerscheZahl: and lvl20 / 29 for regular puzzles
struct: 31 to edit puzzles/multi contributions right?
eulerscheZahl: 29
eulerscheZahl: you are close
struct: Soon Ill have Yavalath back
eulerscheZahl: i'm not sure about this
struct: :'(
eulerscheZahl: i recently tried to update langton's ant (wasn't resetting if out of map in the first match)
eulerscheZahl: got an error that i'm not the author and have no permission
struct: oh
eulerscheZahl: so I gave the updated zip file to Thibaud
struct: Can you remove them though?
jacek: remove game?
eulerscheZahl: remove?
struct: yeahj
struct: delete
jacek: :scream:
eulerscheZahl: i can give 1 star
eulerscheZahl: and do the same with many accounts
jacek: no, game isnt account, you cant delete
jrke: im trying sim for CSB can u tell if its right
jrke: http://chat.codingame.com/pastebin/cf2ec36e-1f3a-4509-a095-d6768ae14f96
eulerscheZahl: then it will drop below some treshold and get garbage collected
struct: please no :( Yavalath already has low enough stars
eulerscheZahl: but there is no real delete. i can't even delete my own games which got approved
eulerscheZahl: yavalath has a solid 4.8 rating
jrke: hey anybody to my ques
darkhorse64: the speed is truncated and the position is rounded
inoryy: angle delta is clipped to +-18
gavi: Activating C# language assist always fails
jrke: ya -19<move_angle<19
jacek: activating language?
eulerscheZahl: complain on the forum or the bug channel on discord gavi
eulerscheZahl: this jacek https://prnt.sc/sxcxu7
jacek: D
eulerscheZahl: Vala
eulerscheZahl: where is Vala? add it to the website
jacek: vala mal doran?
eulerscheZahl: ?
jacek: :(
jacek: kree java?
eulerscheZahl: me no understand
jacek: you havent watched greatest scifi show ever?
eulerscheZahl: star-something?
eulerscheZahl: no
jacek: :x
eulerscheZahl: neither wars nor track
Astrobytes: -track +trek
Astrobytes: And he means gate
eulerscheZahl: who cares
eulerscheZahl: gate? another series?
Astrobytes: Yea, Stargate
eulerscheZahl: lmgtfm
jacek: starring mcgyver
Husoski: The *real* MacGyver
jacek: or wormhole x-treme
MSmits: I got that reference jacek
jacek: :heart_eyes_cat:
MSmits: we have nerd resonance
struct: some news for you MSmits
struct: http://chat.codingame.com/pastebin/a472f6f8-8351-4a61-824c-d6baca9578b4
jacek: othello?
MSmits: thanks struct, i like random bitboard pastebins :)
struct: yeah
MSmits: nice
MSmits: i think 8x8 will be fine
eulerscheZahl: you just want 64 bits
MSmits: mmh though wiki says top programs almost always end in draw
MSmits: but i doubt we'll be close to a top program with CG limitations
jacek: so are checkers
MSmits: yeah checkers is less complex
jacek: but 100 (or 50?) ms is challenging enough
MSmits: i think so
MSmits: so 8x8 othello should be fine
MSmits: and eulerscheZahl, yes 64 bit is nice :)
jacek: with 10x10 you would just cheat with 128_t
MSmits: I can't use the native 128_t because VS won't have it
MSmits: so I end up writing my own version of that when i need to
jacek: so othello 10x10 it is
MSmits: aside from it fitting less good in a bitboard
MSmits: it's also nice to have 8x8, same board as breakthrough, chess etc.
MSmits: and checkers
WINWINWIN: who`s going to make othello?
MSmits: struct is doin it
Astrobytes: Oh hey MSmits, bit offtopic, but wanted to thank you for recommending Better Call Saul, loving it
MSmits: great
Astrobytes: Way better than I expected
jacek: breaking bad spin off?
Astrobytes: Yea
MSmits: it's a totally different story, but the cinematics is similar to breaking bad
MSmits: same kind of tricks they use
eulerscheZahl: i just finished watching the current season
MSmits: it's cool
Astrobytes: It's a worthy successor to BB
MSmits: prequel, but I get your point :0
Astrobytes: Yeah lol
eulerscheZahl: sometimes the scenes are a little lenghty IMO. and i hate reading subtitles when they speak spanish
MSmits: ah... us Dutch are used to subtitles
Astrobytes: Learn Spanish. ezpz
MSmits: you Germans are used to people magically spewing out noises that dont coincide with the movement of the mouth
Astrobytes: heh heh heh
**MSmits is a lipreader
MSmits: always had arouind 50 dB hearing loss, so I can lipread
MSmits: which makes it extremely annoying to watch dubbed stuff
Astrobytes: Damn, yeah, I can imagine
MSmits: it's sometimes nice when my students are doing a test
MSmits: "I was just asking him for a pen"
MSmits: "mmmh nah that's not what you were saying"
Astrobytes: LOL yeah, that's awesome
eulerscheZahl: my father had a WWII veteran as a teacher
eulerscheZahl: couldn't hear high frequencies anymore
jacek: so women too
MSmits: my father has the same hearing handicap from standing too near to cannons
eulerscheZahl: so they spoke in a high voice during exams
Astrobytes: lol
MSmits: lol, so he sacrificed his hearing so they could live in a free country and they sacrifice their dignity for a few extra points on a test :)
Astrobytes: Kids eh
MSmits: right
MSmits: I once walked around with hearing aids for 3 yrs that were tuned to my fathers hearing handicap
MSmits: cuz they mixed up the files
MSmits: I never realized cuz you know... i heard better with them than without. How are you gonna know
Astrobytes: Man that's crap! At least you could hear I suppose
WINWINWIN: Isnt that extremely bad for you?
jacek: ! https://www.codingame.com/share-replay/472122213
jacek: oh, it was timeout
jacek: :c
MSmits: WINWINWIN nah, the cap for hearing damage is the same for everyone, no matter your handicap
MSmits: so if you hear really badly, it doesnt mean you can take a greater amplification
jrke: im out of mind now what to add in PR2 now
MSmits: thats why hearing aids are limited for people who have a lot of loss, there's limits that make you always hear worse than other people,otherwise your hearing would be damaged more
Astrobytes: jacek, do you tune your Oware bot to beat me on purpose? :P
jacek: here i beat MSmits without timeout https://www.codingame.com/share-replay/472122656
MSmits: thats a nice win
MSmits: my bot tends to gather up a lot of seeds
MSmits: sometimes it backfires :)
Astrobytes: It backfired there.
MSmits: yep
MSmits: I had a version before that assumed I would never have more than 31 seeds in a pit
Astrobytes: I remember that
MSmits: that made me sometimes crash
MSmits: but so rarely that it was really hard to fix
jacek: but you timeouted now
MSmits: sure, but I time out in every game, once in 100 games or so
MSmits: 5 ms buffer is not enough, or I have a bug in every game :)
struct: you go 5ms under the limit?
MSmits: yes
jacek: so do i
struct: I use all 100ms in UTTT
struct: no margin
MSmits: my oware bot has some crazy seeding and harvesting though, I imagine there could still be a bug
jacek: and look where you are
struct: I never improved it :p
jacek: how many params are in your eval, if i may ask
MSmits: in mine?
jacek: eeyup
MSmits: allright, if i dont count exploration and the sigmoid param it:
MSmits: hmm, hard to say
MSmits: it's 6 + a kroo thingy i do
MSmits: that one website said you should give points for a pit with more than 12 seeds right?
jacek: i have 5 for the eval. + exploration and fpu
jacek: yes
MSmits: I do that differently using 3 parameters and an array
jacek: though i think it depends if it reaches opponent
MSmits: right
MSmits: but my solution is not intuitive really. I experimented a ton and got something that works, not great but better than just > 12
MSmits: I have an array for each number you can have in a pit, also taking the pit location into account
MSmits: and then basically have the same bonus for most of those values (3 different ones)
MSmits: it doesnt make sense why it works because the bonus is high in places where i think it shouldn't etc.
MSmits: i tried to fit the bonus array to a function with less params, but it never performed better (this was my experimental version)
jacek: hmm for me having 2 seeds in the middle it says its good
Astrobytes: Crazy oscillating parameters and stuff lol
MSmits: jacek stuff like that yeah, I never checked the 2 seeds in middle thing
MSmits: I do have a 2 seed param where i give penalty for each pit with 2 seeds in it
MSmits: same for 1 seed
MSmits: but its a very weak feature. Doesnt seem to affect much
jacek: that granulatily works for minimax eval, but in mcts i dont take the location into account
struct: Othello in 2 hours?
jacek: :tada:
MSmits: damnit struct, you are too fast
struct: Isnt ready yet
struct: I just miss the viewer
struct: rest should have no bugs
MSmits: take it easy, i am working on some other stuff too :P
jacek: lets call tric trac
MSmits: he'll love it
struct: First I need to make the game WIP for a long time
struct: so I farm upvotes
struct: and get exp
MSmits: yeah
Astrobytes: lol
eulerscheZahl: 250XP for an approved multiplayer is a joke
MSmits: the speed at which struct can write multis it's actually pretty efficient :P
struct: yeah, then we have a flood of multies
struct: more multies than puzzles
eulerscheZahl: obviously there are differences between different multiplayers as well
struct: true
struct: Im preety sure you spent a lot of time on Vindi
eulerscheZahl: yeah
eulerscheZahl: porting the map generator alone was a full weekend
struct: Did you have any code to guide?
eulerscheZahl: (that includes different ground transitions, so just visuals)
eulerscheZahl: there was no documentation iirc. just tic tac toe
Astrobytes: Yeah I remember you working on the blood spatters
Astrobytes: *splatters
eulerscheZahl: and bloody footsteps
Astrobytes: yeah
eulerscheZahl: was fun
eulerscheZahl: and then one day i couldn't create new contributions anymore
eulerscheZahl: but update existing ones and set the state from private to pending
eulerscheZahl: so we approved it on a friday evening and expected CG to delete it on Monday again
eulerscheZahl: tuesday, still online
eulerscheZahl: wednesday: info mail promoting the new game :D
MSmits: nice
Astrobytes: lol, yeah. Ah the memories
eulerscheZahl: i still have it https://imgur.com/a/B9rVFPq
struct: Nice :D
struct: I almost forgot that SDK now has getWorld().getWidth()
Astrobytes: haha awesome
darkhorse64: Why not tell thibpat about your othello and make it an unofficial contest ?
darkhorse64: You'll get more traction
eulerscheZahl: wasn't thibpat's point to promote an existing game?
Astrobytes: No he's open to new community games too
Astrobytes: (To make proper unofficial contests essentially)
darkhorse64: Making board game based small contests looks like a good idea to me
darkhorse64: At least, it 's something new on this platform
struct: I suggested Yinsh, at the time but I think Yinsh might be a bit hard to start with
Astrobytes: Personally I don't mind difficult contests, I mean it's a bot programming competition, so it's a challenge right? But it would limit the number of participants certainly
struct: https://i.imgur.com/NpWnoZv.png
struct: soon
Astrobytes: Nice
struct: I just need to apply moves to viewer and parse inputs I think
struct: This is if I have no bugs
Astrobytes: :D
jacek: so you have logic?
jacek: legal moves etc
struct: yeah
eulerscheZahl: and find 3 users willing to approve. but you are more patient than a certain fish
jacek: even when you can get additional turn?
struct: That is simple jacek
struct: if (getLegal(playerID) > 0)
switch player
jacek: so its just another turn
struct: else next turn player plays again
eulerscheZahl: you haven't solved this one yet struct https://www.codingame.com/training/medium/othello
struct: or should I do like yinsh and multiple omves per turn?
jacek: nah
jacek: they happen rarely i think
eulerscheZahl: there are no different action types like move and remove ring, are there?
struct: it happened when i applied actions.get(0)
struct: no euler
struct: just place ring
eulerscheZahl: then call the player again
eulerscheZahl: makes it easier for the bots
eulerscheZahl: and give full board, not delta ;)
struct: Also I can change size easily without breaking anything :)
struct: delta?
eulerscheZahl: where the opponent played
struct: Ah right
struct: Will do
eulerscheZahl: and get squiddy into submitting a D bot
darkhorse64: If you ask the player to send "PASS" if he cannot play, would it make your life easier ?
struct: I don't need to do that darkhorse64
struct: I can just not let him play at all
struct: if i dont switch player
darkhorse64: That means the player to move shoud issue several moves ?
Astrobytes: Make sure you indicate that the player is out of moves
eulerscheZahl: no
eulerscheZahl: read the chat above darkhorse64
eulerscheZahl: just call the player again
struct: why astro?
jacek: yeah, why
struct: He wont get a turn if he is out of moves
Astrobytes: In case someone wonders why they can't paly
Astrobytes: *play
eulerscheZahl: you mean UI-wise indicators?
Astrobytes: Just in the UI show - now moves
jacek: well that would be a thing for the viewwer
Astrobytes: *no moves
darkhorse64: OK. Got it. I w worried how to write the bot
struct: ah ok
Astrobytes: But in reference to your method here I agree it seems good
struct: Also this time I separated viewer from game jacek
jacek: hm?
darkhorse64: It has been such a long time since I wrote my last MCTS ...
Astrobytes: game logic from graphics
struct: So that i dont have Viewer code inside the game engine
struct: yeah that what astro said
darkhorse64: Astrobytes, jacek: thanks for pushing me back to #4 at Oware
AlanSpacer: If i was there
Astrobytes: Sure we'll pull you down again soon enough, don't get too happy darkhorse64 :P
AlanSpacer: I'd of brought you up to 100 <3
darkhorse64: I have been waiting for you for months
AlanSpacer: Should I be jealous ? ;o
Astrobytes: I didn't play it for a long time ;)
AlanSpacer: The site thinks I'm a bot
AlanSpacer: Won't let me play CoC *cries*
Astrobytes: Do puzzles/multis instead
WINWINWIN: CoC is kind of boring
AlanSpacer: It just let me back on xD
AlanSpacer: I'm trying to enhance C# skills
Astrobytes: CoC is possibly the worst way to do that
WINWINWIN: In CoC :D
Astrobytes: Better doing puzzles
WINWINWIN: You will get crushed in all 3 modes
WINWINWIN: Python/Ruby dominate
AlanSpacer: Lol, just tryiing to get use to coding with it. I'll get to Puzzles soon
AlanSpacer: Well, got to 9000th using only C#
Astrobytes: If I were you, I'd go to puzzles instead of continuing
Astrobytes: Just my opinion, don't let me stop you
struct: Should I make all pieces flip at once?
struct: or do them in groups?
WINWINWIN: Do it in groups? so that it is easier to see?
Snef: struct when you say in groups you mean one by one or dir per dir
struct: Ok ill try
MSmits: maybe try both, milk it for the upvotes, you farmer you
WINWINWIN: :)
struct: Like per chain
struct: a chain can trigger another chain
MSmits: ohhh, this has chains?
Snef: right per chain shoud be way more user friendly
struct: I call them chains
MSmits: games with chains are cool
AlanSpacer: The IDE support for C# is so trash
MSmits: use a local IDE
MSmits: I always dp
MSmits: do
AlanSpacer: I guess I wiill <3
MSmits: VS is awesome
Astrobytes: Particularly for C#
MSmits: if CG improved the IDE 100 times, you would still think it is crap because VS exists
Astrobytes: ^
struct: having a real time debugger helps too much
MSmits: yea
Astrobytes: I love the VS debugger. The memory view etc.
Astrobytes: Well, for C++
WINWINWIN: Reversi is an 8x8 grid in normal version?
Snef: yes
struct: I made it so that it can work on any size
struct: even the viewer adapts
struct: https://i.imgur.com/xUR6MOI.png
struct: 16*!6
Snef: you could do league like 8*8 / 10*10 / 12*12 / then dynamic size
Astrobytes: With invisible pieces in top league ofc
Snef: i wasn't trolling :(
struct: I know Snef, ill see how it goes
struct: game is a bit complex
Astrobytes: lol I know, we were coming up with insane variations before
Astrobytes: We can test variable board sizes in WIP
Snef: game is way less complex than go
Snef: i think ?
struct: it is
struct: its a bit above checkers i think
jacek: not that you could solve it in 100ms
struct: You forget that there wasnt D before
Astrobytes: :)
struct: Also I didn't read the rules yet
struct: I just played and think the rules are what im doing :D
Astrobytes: hahahaha
Astrobytes: Awesome approach
WINWINWIN: Which one takes priority now struct? Othello or the other one that you were working on?
struct: othello
jacek: hex othello
jacek: wow, what a push Astrobytes thankies
Astrobytes: Yeah, submitted wrong version. Enjoy it while it lasts :P
Astrobytes: It's the ~38/39 point point barrier that needs breaking
jacek: ?
Astrobytes: In Oware
struct: How can my bot go from 35 to 60th in 1 day :/
Astrobytes: Where?
struct: utttt
Astrobytes: Who submitted?
Snef: n dc
struct: nd c and Q oo
Uljahn: uttt is a hot topic on ru today
struct: It works
struct: Nice
struct: https://i.imgur.com/F1XrTQX.gifv
struct: I might add a pause between chain flips though
jacek: there is error in frame 12
struct: where?
struct: oh i see
struct: bugs
struct: nooooo
jacek: the diagonal black
struct: multiple
struct: Yeah
struct: This is because i dont check every piece
struct: im dumb
struct: thanks jacek
jacek: well, multitude of errors then
struct: yeah
struct: many
struct: I was only checking the piece I placed + the ones fliped
struct: I think fixed
struct: Wait how should it work though :/
jacek: hm?
struct: I got it semi working but need to fix some stuff
struct: https://i.imgur.com/eCiQIGM.gifv
struct: is this what it should happen?
jacek: umm
jacek: no
struct: So flips dont trigger other flips?
jacek: there should be only new black and other connectable blacks
jacek: so just 1 black in this case
jacek: there is no 'chain flipping'
struct: Lol
struct: oh god
struct: Why did I though there was
struct: (╯°□°)╯︵ ┻━┻
struct: I even spent time animating chains :D
struct: I guess I could adapt it so it flips each direction at a time?
struct: or do you think its too slow jacek?
jacek: it should flip all discs simulateuosly
struct: ok thanks
struct: but in viewer too?
jacek: otherwise some people would confuse it for chaining
struct: ok you are right
IXzXI: come in clash of code :D
Astrobytes: No :D
IXzXI: D: it's bad
jacek: (this is not my alt)
Astrobytes: lol
struct: chess notation or x y?
IXzXI: yes)
IXzXI: :D
jacek: x y
jacek: ah wait
jacek: by chess notation you meant A1, B1 etc.?
jacek: or Nf3
struct: a1 sorry
jacek: othello uses A1 etc. then
Astrobytes: Yeah, top left is A1
struct: Here was me thinking game had chains
struct: maybe ill create ultimate othello
Astrobytes: Just been reading back, lol
struct: 20x20 board with chains
Astrobytes: It's probably some other game already
struct: ill accept both x y and a1
Astrobytes: Fair enough. Switchable in viewer?
MSmits: btw, if you want a oware end game db, you can probably store at most 6 or 7 seed data bases
struct: I could do that
jacek: using unicode stuff?
MSmits: there are 31824 positions with 7 seeds
jacek: do you have endtables?
MSmits: no
MSmits: but I calculated it
Astrobytes: thingy does
jacek: would there be any benefit though?
Astrobytes: But not sure how big his are
struct: Well some might not winnable though right?
struct: not be*
Astrobytes: thingy = tric trac that is
MSmits: while rolling out your tree, you can end it sooner
MSmits: sometimes a lot of nodes are spent on tiny numbers of seeds just going around
jacek: and endgame table is in form [houses] -> max seed score ?
Astrobytes: Solver helps with this no?
MSmits: yeah
MSmits: Astrobytes it can help but sometimes it is not enough
Astrobytes: Understood
MSmits: btw, I am not suggesting this is an I-win button. Just that it is an option
MSmits: and also, you need to turn it off after ply 100-150
MSmits: or you'll screw yourself over with the turn limit
Astrobytes: Yeah as previously mentioned, does make sense
MSmits: right
MSmits: and of course if you have an end game database you filled your codesize and you cant use an opening book :P
MSmits: though it'd be interesting to see how many positions you can calculate in the first 1s and fill your end game database right then and there
Astrobytes: Unless you train offline and get weights and use that to .... oh :P
jacek: im tweaking my eval. quite often the score of my node is very high like 90% win chance when suddenly solver kicks in and its a lose
MSmits: doesnt surprise me
Astrobytes: Node pool creation + precalc + opening book in 1s?
struct: Its possible to tie on othello right?
jacek: yes
Astrobytes: ye
Astrobytes: ah
MSmits: node pool creation shouldnt cost anything i think
jacek: and game can be ended before board is filled
MSmits: unless you assign values?
struct: if there are no pieces right jacek?
Astrobytes: Nah
Astrobytes: @MSmits
jacek: when both players can't move
struct: Yeah or that
Astrobytes: Made that mistake before
struct: if one player doesnt have pieces the other cant move
MSmits: right now I am just doing like 1 million rollouts in the first 1s, but it's gonna always do the same move anyway, pretty pointless use of calc time
jacek: let me guess, 5
MSmits: thats the only one thats not solved as a loss in awari
Astrobytes: Yeah I get between 800K and 1.1M on first turn, pretty much always 5 lol
MSmits: if you're interested in how they solved awari: read this:
MSmits: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.57.7918&rep=rep1&type=pdf
MSmits: it basically tells you how to generate an endgame database also, if you read between the lines
Astrobytes: "We computed the databases on a cluster with 72 dualprocessor machines, built by IBM. Each machine contains two 1.00 GHz Pentium III processors, 1 GB main memory, and a 20 GB IDE disk"
MSmits: basically, their entire solving method is an endgame database
MSmits: just fyi, you cant do this on oware abapa due to loops
MSmits: but you can do some similar things I guess
Astrobytes: Yep. Extra work required.
struct: Shame I doint have 72 machines
jacek: We expect that checkers will be the first game solved, possibly within the current decade.
MSmits: I'm pretty sure you can repeat this exercise on cloud computing for maybe a monthly salary :)
jacek: e. Othello will be harder to solve, and chess will definitely not be solved in the foreseeable future
struct: jacek isnt it solved though?
MSmits: it's an old paper
MSmits: yes its solved
MSmits: weakly
MSmits: which is the only interesting way to solve imho
jacek: paper is from 2001(?) and checkers were solved in 2008(?)
struct: Did not know you were quoting the paper
Astrobytes: Yeah, fix your references jacek
MSmits: oware is a LOT less complex than checkers
MSmits: it's like 10^12 positions
MSmits: some of you guys may have a HD-size that has enough room for all of them
Astrobytes: And people have worked on mancala games with computers for decades
MSmits: checkers is like 10^20 or so?
struct: yeah
MSmits: othello double that or something
MSmits: double in power
MSmits: uttt is probably similar to checkers in complexity
MSmits: between checkers and othello
Astrobytes: "double in power" - order of magnitude?
MSmits: yes that
Astrobytes: :)
struct: meanwhile yinsh has 8*10^13 starting positions
jacek: uttt with cg rules is probably a bit harder
jacek: though favors 1st player
MSmits: nope, I have calculated an upper limit of 10^35 positions, but this includes many unreachable ones
MSmits: realistically probably 10^30
jacek: i mean without cg rules you can see earlier the game will end with draw
MSmits: you mean without the "count won boards" rule?
MSmits: there are several variations
jacek: yes
MSmits: yes, that one seems to almost always draw
MSmits: it's not that hard to block the opponent from getting 3 in a row
Astrobytes: Right, time for Better Call Saul, been an educational day as always
Astrobytes: gn all
MSmits: have fun watching, gn!
struct: gn
jacek: heres something about awari and opening book via alpha-beta https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/146939/eth-25905-02.pdf
MSmits: thats cool thanks
MSmits: kar liso's p1 uttt play is sometimes unbeatable I think
MSmits: it sometimes makes a mistake I can counter as p2, but often, no matter what I do, it solves to a loss vs him
MSmits: but there may be some weird narrow line of play I missed with meta mcts
struct: Now the real problem
struct: x y or y x?
darkhorse64: row, colum
darkhorse64: *column*
struct: thanks
struct: Time!
MSmits: Space!
struct: Time to submit it
struct: Illedan!!!
Snef: struct do you need cg to approve it or it'll be available now ?
struct: I will be avaible in contributions once i make it public
DragonJ: this is sad, fantastic bits is a pain, the state system isn't working
struct: What do you mean?
DragonJ: I get the grabbed state after my wizard drops it
DragonJ: so the game considers it dropped and I cant throw it
DragonJ: will try using the snaffle state to try and go around the issue
struct: https://www.codingame.com/ide/demo/843257e808c280174462ae480c45d0629921f7
struct: Shoud work
JBM: why do the pieces become longer than a cell when they rotate?
struct: I use a bad method to rotate
struct: easy fix, make circles smaller
JBM: that would fix "bigger than cell", but not "bigger than flat circle diameter", no?
struct: I havent tried, I have the same problem in Yinsh
struct: Can't forget to write French statement
JBM: let me remember to take a closer look sometime
JBM: i'm becoming way more proficient than i anticipated with their entity system
struct: Once you get used to it its pretty easy
DragonJ: ok its not an int or a float or a string so how do I make it a number
JBM: I've been wanting to get rid of it since the start
JBM: But I'll probably try and complete tvc first
DragonJ: ok it is a string but is not a string... I am confused
GaryAflalo: at what time ranking is update ?
DragonJ: also it says I am using python but I cant strip a string...
Snef: struct you still there ?
struct: yes
Snef: don't you want to submit an ai for othello :p
struct: Internal error?
struct: o.o
struct: it worked now
Snef: 0% win gives 1.28 ELO lel
struct: Is your AI random?
Snef: no
struct: found a seed that beats you :p
Snef: in both position ?
struct: ah right
struct: I forgot
Snef: :p
hxppx: hey guys, i have been coding in python for the last 2 months but now I feel like I am stuck and I cant get better, any advice ?
Snef: do puzzle
Snef: then try multis
struct: or pick a project and try doing it
Hankdane: It's not unusual for any skill learning to hit plateaus.
Snef: i'd find hard to define being stuck tho
hxppx: well I guess a language as python cant be mastered in 2 months
Snef: if you are doing a project you struggle with you'll search and improve so..
Nieminen: Project Euler is a great way to make sure you're challenged. Being challenged is the only way to grow :)
Snef: struct fix your seed :p
hxppx: right I should take a deeper look into project Euler then, thanks !
Nieminen: https://projecteuler.net/
Nieminen: If anyone wants to add me as a friend in euler, here's my friend key - 869185_H44wgRnAQwSWLVSpDx9LgqtkThVUX0Vl
struct: Snef still here»
ganond0rf: hello
ganond0rf: if anybody here is an admin
ganond0rf: im getting security checks after completing clash of codes
ganond0rf: to make sure im not a bot?
ganond0rf: lol
ganond0rf: :robot:
ganond0rf: the captchas are annoying
LelouchVC2: They went away for me after a certain level
LelouchVC2: Might have been a coincidence though
DragonJ: my tron code prints this
print(">>>>>>>>>>>>>>Asfknadghioewhrtoih")
DragonJ: a=10000 and I set it equal to 1...
AbundantPuddle: Don't drink and code
DragonJ: I am not drunk my code is saying 15 is not between 0 and 20 multiple times and it confuses me
DragonJ: switching to hardcoding because doing anything else is failing