Chat:World/2020-11-30
miszu: struct as X
miszu: I implemented teccle, I win and draw more often
miszu: but once teccle is over, I do like 19k
struct: oh
struct: how long do you run teccle s heuristic for
miszu: against gold boss, the 1st moves
miszu: basically, if it is an empty miniboard, do tickle
struct: your current arena bot
struct: is it the new one?
miszu: no, it's the old
struct: so you get around 20k on turn 5?
miszu: turn 9
miszu: so at the 18th frame
struct: on 18th frame I have around 32k
struct: but maybe 20k should be able to pass gold
miszu: I have an idea to improve my score
struct: you can try and submit to see where you place currently
miszu: I'll try in a bit
rockstar555: https://www.codingame.com/contribute/view/58089bf05d7f2c591328f59618ecdd287208
rockstar555: if any problem in this
rockstar555: plz tell
rockstar555: this is my first time to make contribution
PatrickMcGinnisII: adding 2 numbers? for real?
miszu: Google: can you start working tomorrow morning?
struct: Only missing 3d viewer
miszu: I don't get it. I don't use vectors and barely make more sims
struct: whats the difference?
miszu: 4k
miszu: I don't get how top people can do 150k sims
PatrickMcGinnisII: considering I can only do 2k full sims, pfft
PatrickMcGinnisII: 150k nodes or sims?
miszu: sims
miszu: top players apparently
miszu: are those pragmas sufficient?
PatrickMcGinnisII: you can set compiler options, but i don't know them
miszu: #pragma GCC optimize("O3","unroll-loops", "inline")
- pragma GCC option("arch=native","tune=native","no-zero-upper")
- pragma GCC target("avx2")
PatrickMcGinnisII: I think there is an error_handling one too
miszu: what would it do?
PatrickMcGinnisII: exception handler... i think it can be turned off
miszu: yeah but why would it increase sims?
Westicles: this is common
Westicles: https://www.codingame.com/forum/t/collisions-in-fantastic-bits/2369/3
miszu: also I use rand()
miszu: is that slow?
struct: there are faster alternatives
PatrickMcGinnisII:
-fno-exceptions i think
miszu: also I do a lot of modulus for my pool indexes
miszu: let me find that one
ZarthaxX: change those modulus
struct: https://i.imgur.com/Y22OlWL.gif
struct: I need to make the pieces
struct: I dont want to use blender again :'(
ZarthaxX: OMGGGG
ZarthaxX: so nice
ZarthaxX: lol blender F
PatrickMcGinnisII: that for the pharoahs thing?
struct: yes patric
struct: patrick*
miszu: ZarthaxX how can I loop around the pools without modulus?
tomatoes: idx % pool_size?
struct: yes tomatoes
miszu: yeah but it uses modulus
struct: Remove it
struct: and start from 0 again
struct: when you start your search
struct: dont reuse
PatrickMcGinnisII: miszu you'll find that simple tricks on code that is executed alot makes a big difference
tomatoes: you can use pool_size = 2^n-1
miszu: struct, so at the beginning of main loop, I set next node to 0?
struct: or 1 since the root will be 0
PatrickMcGinnisII: yes, struct i submitted a random Yinsh...smh
struct: nice
miszu: so struct you don't reuse your mcts in next moves?
miszu: like you always recompute?
tomatoes: and even with tree reuse i get at most 3m nodes at the end of game
struct: yes i dont reuse
miszu: I see
tomatoes: so modulo really not needed
miszu: tomates, you 2^n - 1, how you loop around then?
tomatoes: i had it some other :thinking: othello prbably
miszu: in uttt I use more than 3m at the end of a sim
miszu: of the game*
tomatoes: a lot more? or a bit?
miszu: let me check
tomatoes: you can just reset root each turn and overwrite existed
miszu: 4 millions
miszu: 4 041 164
tomatoes: make 5-6m nodes and plain indexing
miszu: plain as no modulus?
tomatoes: yep
miszu: what about rand() vs others? Big difference struct?
struct: There is quite a difference yes
struct: But always profile it
PatrickMcGinnisII: c uses a pseudo random number generator anyway
miszu: how you profile efficiently?
miszu: just use clock around it?
struct: I run it localy
PatrickMcGinnisII: it's fast, but for small set of numbers, there are faster
struct: its not perfect but better than nothing
struct: In cg there are multiple machines
PatrickMcGinnisII: an old post says something about 1ghz to 2ghz processors could be used radomly
PatrickMcGinnisII: radomly
PatrickMcGinnisII: randomly
PatrickMcGinnisII: its prolly changed since then, but it does vary
miszu: ok ill get rid of modulus then see the benchmarks
tomatoes: profile with vtune, valgrind, perf or whatever
struct: are you on ubuntu or windows miszu?
rockstar555: https://www.codingame.com/forum/t/about-clash-of-code/188053
miszu: windows
miszu: got rid of modulus
miszu: meh
miszu: maybe 1k
rockstar555: hey
rockstar555: guys
rockstar555: i made my contibution
rockstar555: but i see
rockstar555: that
rockstar555: thee
rockstar555: Wrok in progress
rockstar555: how to remove Work in Progress
rockstar555: https://www.codingame.com/contribute/view/58089bf05d7f2c591328f59618ecdd287208
rockstar555: please approve me
rockstar555: this is my first time
AntiSquid: don't beg for approvals . if it's good people will approve
rockstar555: okk
rockstar555: or
rockstar555: Sorry
AntiSquid: and that should be rejected lol
AntiSquid: sum of 2 numbers, really? please . you are capable of better than that
rockstar555: if u are moderator
rockstar555: than i show u
rockstar555: how to work hard
AntiSquid: you could put your words in one message and stop splitting them
Uljahn: could've been haiku :smiley:
AntiSquid: you mean he's been talking in haikus all the time?
AntiSquid: maybe i should just do some rewly hurd wark and make a clash puzzle too
AlanMarx: Does anyone know how to find out what the next output would have been when your program times out of one of the challenges? I'm trying to figure out where things are going wrong with my code DX
AntiSquid: you can't, when it times out you're out and it's not because of future outputs, try to output current input also use try catch
AntiSquid: read default code for debug output
AntiSquid: what language are you using?
AlanMarx: Python. Trying Ghost in the Cell, if that helps
Q12: To me, when I receive the message I just make the algorithm faster and it solve it.
AntiSquid: # Write an action using print
# To debug: print("Debug messages...", file=sys.stderr, flush=True)
Westicles: Q12, that's what I do with contributions. When my pi puzzle gets rejected I'm going for 2 million digits
Q12: Yeah, in this way you make the difficulty of the contribution higher.
Q12: But I see that it is not rejected yet
Westicles: Only a matter of time
Q12: I think, according to the discussion there, that maybe you can give a hint to how to calculate it.
Westicles: Hard to say. The guy who said that has a grudge against me, rejects everything I do
Q12: ahhh
AntiSquid: tell him to get 2 alts
AntiSquid: and why the grudge ?
Q12: so I don't know, at least your contribution has 7 upvotes, it says something about it :slight_smile:
Westicles: Not sure. Sometimes people don't like each other for no good reason
AntiSquid: well i see a greta fan, but won't downvote just because of that :P
rockstar555: represent a new contribution in few minutes
rockstar555: clash of code
tomatoes: substract?
Uljahn: :joy:
Westicles: Not sure what a greta is, unless it is the funny looking little girl on google
AntiSquid: https://www.codingame.com/contribute/view/56591a3a2a8607e928bb302ca8979f2fd104
AntiSquid: greta avatar
AntiSquid: but didn't even downvote :P
AntiSquid: rockstar555 get a greta avatar too, it helps the trolling
Westicles: Hah, now two rejects from dbag Stilgart
sahilrox: If an accepted clash of code question is wrong, is there any way to revert it?
Stilgart: If you are unhappy with this, learn how to make fun/interesting problems
Westicles: Learn how not to be a dbag
sahilrox: I played a clash where the test cases were wrong, can something be done about it?
Stilgart: sahilrox: there is, but so many clashes are broken and I have lost faith
sahilrox: :(
sahilrox: Okay, just to confirm, https://www.codingame.com/contribute/view/57213f4203fc00dc7d2a189c910470d72ece Here test case 4 violates the statement right?
sahilrox: In terms of decimal precision
AntiSquid: you can edit clashes after playing 50 i think
Stilgart: as do test 4, validator 3, and so on...
sahilrox: Hmm okay thanks
Westicles: Have you made any puzzles Stilgart? I just see you whining on the forum all the time
AntiSquid: Westicles if you call him a dbag for rejecting it's just antagonizing him, maybe you said something similar to the other guy? not best way to get votes, i mean just compare to rockstar555 who "politely" begged for upvotes
Westicles: Nah, I didn't say anything to the other guy. But I think it is fair game to antagonize after the fact. I mean really, his feedback is just really low effort
Westicles: Plus his complaining about the JPS puzzle
Stilgart: Westicles: even if this is not visible, I have edited/fixed/rewritten many puzzles
Stilgart: as for JPS, it was completely broken and I fixed it
Stilgart: when you don't know what you're speaking avout, shut your mouth./h
Westicles: I think I know just fine, thank you
Uljahn: Looks like quality vs quantity to me. Should we accept the level of contributions dropping as we get lot more of them? Or should we be more picky? I guess it's for community collective effort to determine the balance, so we need extreme opinions to coexist.
Stilgart: I think the community already made its choice
Stilgart: almost nobody solves the puzzles
Westicles: Also, some are a little hidebound in their thinking. If it isn't a sorting puzzle, it isn't a puzzle
Stilgart: say that to euler
AntiSquid: they pop up like mushrooms after the rain, not much time ...
Westicles: I think others specifically reject problems because they are not up to solving them in the language they use
Stilgart: see my message above then :)
Westicles: You think you can get a million digits in Haskell?
Westicles: It would be a challenge, I admit
AntiSquid: hey totally agree with you on the puzzles, they shouldn't be centered around sorting stuff Westicles, but isn't your code interpreting puzzle a bit too weird?
Westicles: It really is no different than golf solutions
Stilgart: tech.io is the place for this kind of stuff... but nobody seems to know that
Westicles: hidebound
Westicles: or as the kids say, gatekeeper
Westicles: Anyhow, no big deal. I didn't expect them to be approved, but it sure is fun poking fun at the stolid rejectors
Q12: I think that we should be more "picky" as Uljahn said with types of puzzles that a lot of people contribute and less "picky" with the other types. For example: we have a lot of easy puzzles but not the same amount of puzzles with difficulty hard. Because of this we can allow ourselves to be more "picky" with common types of contributions but less "picky" with rare types of contributions.
guigui64: hello world
..O_O..: hello
CorentinMADRE: print("hello world")
CfueAsiff: hello
Mushroom_: anyone alive on this website?
BasicTH: Not on the inside
Uljahn: Automaton2000 should be alive
Automaton2000: can somebody give me a few days
Mushroom_: i can't even do the tutorial level
Guinsoo: XD
senticoder: https://www.codingame.com/clashofcode/clash/14845346c111c2f9e6008c6e4513883a3108bda
rockstar555: hey guys made one amother contribution
rockstar555: https://www.codingame.com/contribute/view/5811396312adf57e6dcf8ee208fee83ebd9a
NguyenVinhHien: whats wrong with the server
rockstar555: yeah
rockstar555: saying right
rockstar555: is anyone here
rockstar555: hii
MSmits: yo
rockstar555: hey view my new contribution
MSmits: you made a mother contribution you said?
rockstar555: sorry
rockstar555: another
MSmits: aha
jacek: huh
rockstar555: hii
MSmits: dont have time to look at it right now, i am in class, doing surveillance
rockstar555: i think now server working right
MSmits: sup jacek
MSmits: what are you working on these days
jacek: not much with ai
MSmits: oh
MSmits: but what on CG?
MSmits: you're just hanging?
jacek: yes
MSmits: ahh ok, good, better than nothing
rockstar555: cam u explain how to make a contest
rockstar555: sorry
MSmits: you use the SDK to make a game
rockstar555: cam
MSmits: cam?
rockstar555: can
MSmits: oh
rockstar555: ohh
MSmits: well you make a game and ask a dev if it is any good\
MSmits: but this is really a long term thing
rockstar555: okk
MSmits: generally, you make multi arenas
MSmits: if you like
MSmits: thats similar to a contest
rockstar555: yeah i like multiplayer game
MSmits: right, well you can try make one of those
MSmits: but it has to be good if you want to get enough players to play it
MSmits: there's much to choose from already
rockstar555: hey can u view my contribution and tell it is right
rockstar555: or either wrong
MSmits: dont have time to look seriously at a contribution atm
rockstar555: okk
MSmits: usually after a contest its hard to get people to look at them, because everyone is tired
MSmits: right after contest, CG goes really quiet
MSmits: well a day or two after
MSmits: gets better later
rockstar555: okk
rockstar555: now i have to solve bot programming
rockstar555: to became silver to gold in CSB
MSmits: sure, you can do that
MSmits: I prefer board games myself
rockstar555: ohh
rockstar555: nice
Stilgart: rockstar555: do you know that some languages provide a gcd function, which makes your contribution rahter unfair ? :(
Stilgart: (and that some don't)
MSmits: gcd?
MSmits: global common denominator?
Stilgart: greatest common divisor
rockstar555: yeah
rockstar555: greatest common divisor
Stilgart: which is the main topic of rockstar555's contribution
rockstar555: yeah
rockstar555: but i write in python
MSmits: is it a clash or puzzle?
rockstar555: clash
MSmits: ah yeah then its unfair
Stilgart: I suggest that you add some story around your contribution, or it might be viewed as a duplicate
rockstar555: why
Stilgart: (a gcd clash ought to exist already)
JFB: eulerscheZahl - will you start RAIC this year? Or have bit such plan because it is no inf. about prizes? Or you do not like the game? For now it is only beta and only around 150 peoples - I see only few nicknames from CG
rockstar555: it is made u
rockstar555: so i can change it in shortest
Stilgart: JFB: raic asks for too much investement imho
MSmits: so it's basically iterate over all denominators and check if x % d == 0?
Stilgart: this year's game seems awesome
Stilgart: MSmits: it's basically gcd(a,b)
MSmits: if the language has that
Stilgart: except in C/JAVA
Stilgart: it is the greatest integer that divide both a and b, otherwise
..O_O..: yeah he can add some story or find gcd and do something instead of finding gcd and no information about gcd in statement
MSmits: allright onto my next class, this one was boring. Next one needs my attention. Ttyl :)
JFB: Stilgart - it is really a lot of investment. But it will be Christmas and New Year holidays ... ;-)
jacek: i thought you were teaching this class?
JFB: MSmits - this new class will be more interesting because it will be more practical? For example: how to build small atomic bomb in your kitchen ;-)
wlesavo: JFB euler said he will join, for now you can check #raic2020
JFB: Thank you wlesavo :-)
YodaMaster123: Hey all new coder here, starting with the tutorial AI Challenge and I found some mentions about a "magic formula". Can someone tell me what it is?
Uljahn: it alterates your target position depending on your velocity vector, so your pod can somehow compensate it's velocity and drift
YodaMaster123: so something like target - the velocity?
YodaMaster123: or target - coefficient * velocity.
Uljahn: target - 3*Velocity, yes
YodaMaster123: Thanks!
YodaMaster123: Is there a derivation for this formula somewhere?
MSmits: no, but it works
YodaMaster123: :)
MSmits: also, it ends the CSB fun a bit prematurely, because after that, you can only improve with an actual search algorithm
Blended: Is there a programing language similar to rasbin? Or arduino?
MSmits: and that's a huge stepup
MSmits: blended, try C#
MSmits: Arduino is C or C++ I think, but C# is way more beginner friendly
Blended: Oh sick! It looks almost like it!
MSmits: yeah
YodaMaster123: Yeah, I just gave a cursory glance to those docs given...Its so much more than the 50 line thing that I just did.
MSmits: yes
MSmits: thats the simulation mostly
MSmits: not even the search
MSmits: simulation just calculates what happens to the game when you do certain actions
MSmits: search tries to find out what the actual best action is
YodaMaster123: Isn't the search part easy? generate a random set of moves and score the end situation?
MSmits: sure, you can do that, but it will be very bad
MSmits: thats called monte carlo search
ZarthaxX: that's a montecarlo approach
ZarthaxX: smito i ahte u
ZarthaxX: you won this time :(
MSmits: sry
ZarthaxX: hai
YodaMaster123: But in 75s can't you search enough to get a good answer?
MSmits: hi
ZarthaxX: how are your turtles
YodaMaster123: *75ms
MSmits: doing good, taking good care of them
ZarthaxX: complexity explodes YodaMaster123
ZarthaxX: i mean, the tree size
ZarthaxX: anyway u kind of get a good answer i guess, you gotta define good
ZarthaxX: MSmits i meant the pawn ones
ZarthaxX: :P
MSmits: if you want to search 7 turns into the future like I do, you have 4 pods doing around 5 different kinds of moves every turn
ZarthaxX: btw i beated them after wselav o said he beated them
ZarthaxX: thought it was impossible lol
YodaMaster123: Ok, so then do modifications on the previous move set to get it more focussed?
miszu: https://www.codingame.com/replay/512232624 my Bot likes to do a double win
MSmits: so 4 ^ (5*7)
MSmits: = 4^35
ZarthaxX: that's wrong
MSmits: is it?
MSmits: 5*5*5*5 for one turn]
ZarthaxX: why did you put 4 pods as base?
MSmits: oh ok
ZarthaxX: 5^4
MSmits: 5^(4*7)
MSmits: you're right
ZarthaxX: right
MSmits: so 5^28 = worse
YodaMaster123: Understood, impossible to search any statistically relevant amount of this.
ZarthaxX: i mean you can, but have to be smart when doing so
MSmits: YodaMaster123 there's several ways to do it
ZarthaxX: montecarlo works as a base
ZarthaxX: euler guy, who is 1st in CG, always tries montecarlo first on games
ZarthaxX: it's an okeish way to start, and fast
MSmits: on some games it's great
ZarthaxX: also true
MSmits: works fine on locam
YodaMaster123: After that you can move ahead to more advanced solutions?
ZarthaxX: right
MSmits: yes, but the annoying part is, you never get a working bot in csb with monte carlo
YodaMaster123: And it serves as a good base right? You can use the same simulation and evaluation function?
MSmits: they will just go around doing nothing useful, not even knowing how to get to the next checkpoint
ZarthaxX: right
MSmits: tbh if you want to learn how to do a real search, CSB is a bad place to start
MSmits: it's pretty hard to do
YodaMaster123: Where do I start then?
MSmits: simple games that dont require much simulation
MSmits: like a board game
miszu: honestly, you won't go far without simulations
miszu: don't be afraid to make simulations
miszu: it's the fun part
MSmits: not for me really
YodaMaster123: But in a board game you have to predict the opponent? So how does the search work then?
MSmits: thats the interesting part YodaMaster123
MSmits: try learn minimax, or monte carlo tree* search
MSmits: this is not monte carlo btw, its different
MSmits: but minimax is easiest
ZarthaxX: true
ZarthaxX: 2 liner
ZarthaxX: :P
miszu: but you need to represent your game state and be able to make actions on it
MSmits: monte carlo tree search is much more coding and hard to debug
YodaMaster123: Will start working on minimax :) I can ask doubts here right?
MSmits: so better start with minimax
MSmits: yeah
miszu: yeah
MSmits: minimax has much example code on google
MSmits: even the wiki 's are god
MSmits: good
ZarthaxX: smito do you think mcts is overall better?
ZarthaxX: :thinking:
miszu: if you ask the right question, people are willing to help
MSmits: depends on the calc time
ZarthaxX: ah.. okey
MSmits: and the quality of eval
ZarthaxX: and the game?
MSmits: yeah thats the eval part
ZarthaxX: ah
MSmits: some games are easy to eval
ZarthaxX: there is one simple game, i wonder what approach would be better
MSmits: yavalath is notoriously hard to mcts, but easy to do a minimax
ZarthaxX: tho i could try both
YodaMaster123: So Othello would be the easiest to start with right? Simple rules and simulation?
ZarthaxX: yeah i remember yavalath with mcts, the traps states
MSmits: uttt is easier, but othello is fine
YodaMaster123: Ultimate Tic Tac Toe?
MSmits: othello has some nice example code on google also
MSmits: yes YodaMaster123
MSmits: it has a nice lower league with just s 3x3 board
ZarthaxX: check this smito
ZarthaxX: https://boardgamegeek.com/boardgame/1875/isolation
YodaMaster123: Ok, but after that does it go into that 3x3x3 setup?
ZarthaxX: pretty simple game, but i feel as there is a trap thing related to the area you have
ZarthaxX: like someone cutting the path to a big area for you and your eval going down hill :P
MSmits: 3x3 x 9
YodaMaster123: Oh.
MSmits: looking now ZarthaxX
ZarthaxX: aight
YodaMaster123: But wouldn't Ultimate Tic Tac Toe be hard to evaluate?
MSmits: looks interesting
ZarthaxX: also it's cool to teach bot programming
MSmits: YodaMaster123 yes, but you can write a simple eval at first
ZarthaxX: super simple
miszu: YodaMaster123 yes thus why you have to go with mcts
MSmits: you dont have to get nr 1 at first YodaMaster123
ZarthaxX: you can teach bfs for an eval there too
MSmits: its just for learning purposes, make a simple evakl
MSmits: learn mcts after
MSmits: there's a few minimax bots in legend, so its doable
YodaMaster123: Why doesn't miniaxx work as well?
Astrobytes: harder to write a meaningful eval
Astrobytes: also, hi all
ZarthaxX: HI ASTRO
jrke: hey bytes
Astrobytes: jrkethaxX
MSmits: YodaMaster123 minimax depends on an eval function
MSmits: mcts depends on random playouts from leafs of the tree
YodaMaster123: But Monte Carlo Tree Search is exhaustive.
MSmits: what do you mean
YodaMaster123: It keeps moving till the game ends?
YodaMaster123: So you don't need to evaluate it right?
ZarthaxX: merging people now astro
ZarthaxX: :rofl:
MSmits: it expands the branches with better winrates basically YodaMaster123
MSmits: the winrates come from random playouts yes
YodaMaster123: Ok, so you don't need to have that slow evaluation function there. You can search more.
MSmits: because this game is hard to evaluate, mcts has an edge, but its not a huge edge, you can still do reasonably well
MSmits: the eval function is not slow ctually
MSmits: the random playouts are much slower i think
MSmits: but you search the tree more efficiently
MSmits: best first as opposed to breadth first search
MSmits: you dont waste time exploring bad branches]
jrke: which game you are talking about MS
jrke: ?
Astrobytes: yeah ZarthaxX :D
YodaMaster123: So you can search it for the most likely to win methods rather than obviously wrong things like Minimax.
MSmits: minimax also have some methods for this
MSmits: like ab pruning and such
MSmits: but for this particular game mcts beats it
Q12: I practiced minmax algorithm with the game checkers, I think it is a good game to practice it.
wlesavo: jrke take a wild guess :smiley:
MSmits: yes, but checkers is hard to simulate
MSmits: because of the jumps
jrke: :smiley:
Q12: yeah
Q12: This was the hard part
jrke: Q12 i think oware awaba is good for starting minimax
MSmits: jrke you asked about dots and boxes
Q12: I don't know this game jrke
Q12: I will try it
Astrobytes: https://www.codingame.com/multiplayer/bot-programming/oware-abapa
MSmits: I promise it will be up there, but i have a huge pile of work
MSmits: will be a while still
YodaMaster123: pruning will still require you to search part of the tree. Does that happen in Monte Carlo?
jrke: i am not asking i am waiting for your BOT MSmits
MSmits: i know
MSmits: i am waiting to have more time, i really want it up there, its just very hard and time consuming to get my offline solver in a working bot
MSmits: its a 1500 line thing
MSmits: and it lacks many parts of the bot
MSmits: it just solves endgames halfway through the game
jrke: yup btw Dots and boxes is having maximum no. of players in arena in any community game
MSmits: nice
MSmits: good cp then
jrke: yup 2991cps
MSmits: YodaMaster123 mcts searches the branches that are good, which is a kind of pruning
MSmits: it stops exploring bad branches after some number of visits
YodaMaster123: Understood.
jrke: MCTS is prefered for big branching factor tree as far as i know
MSmits: mmh depends
MSmits: Yavalath has huge branching also
miszu: alright, time to submit my bot in UTTT. Cross fingers for legendary
Astrobytes: good luck miszu!
MSmits: but minimax does better, unless you make you mcts really sophisticated
MSmits: good luck :)
jrke: gl miszu
jrke: now my next targeted multi is tron battle
MSmits: the thing with mcts in yavalath is that there are many losing moves and you need to filter them out in the random rollout
MSmits: I never got good at tron
jrke: done with fall-challenge now
MSmits: the 4p thing is too annoying
jrke: MaxN is thing i want to learn for tron
jrke: but currently going to write sim to get atleast gold
MSmits: not sure if people use maxN
MSmits: some do paranoid I think
MSmits: and some fancy graph stuff combined with floodfill
jrke: maybe not sure about that
MSmits: there's some problem with small passages
MSmits: you can only go through them once, so floodfill gives a bad result the
MSmits: then
Astrobytes: Voronoi-based heuristics too iirc
MSmits: yes the floodfill
MSmits: but it gives a bad result when you cant go in every direction at once
jrke: i understood what is vornoi very easily but never get the idea to code it :smiley:
MSmits: imagine doing a sequential floodfill
MSmits: p1 flood, p2 flood, p3 flood etc
MSmits: 1 square each
struct: Hello
Astrobytes: hi struct
jrke: hmm
MSmits: and keep doing until the board is full\
jrke: nice MS
BrunoFelthes: hi MSmits, what kind of algo are you using at Onitama?
MSmits: mcts without rollout
BrunoFelthes: hum
MSmits: I eval all children at leaf
MSmits: and backpropagate eval
miszu: oaky so now my bot is doing better than previous submission
BrunoFelthes: nice
MSmits: train arriving, have to be off for about 20 mins, ttyl
BrunoFelthes: I'm using Minimax, but i think that it is not very good... my deep at the start of the game is 4...
miszu: 30th and 56% done
struct: how many rollouts atm miszu?
miszu: after teccle done, like 20-25k
miszu: but MSmits gave me a nice clue about my exploration variable I could tweak and it wins more locally
miszu: so my problem is my mcts don't see trap moves that could be losing
wlesavo: miszu you dont reuse your tree yet, do you?
miszu: no I don't as for now
wlesavo: i see, 20-25k should be enough for legend i think
miszu: reusing is not complicated to add
wlesavo: i think you only need to track root node
miszu: yeah and add a function gived a move, how to move down a root
miszu: and if that path has not been explored, then fresh mcts
wlesavo: i think that situation wont ever happen
miszu: which situation?
struct: also you can explore even when you do heuristic
struct: having a path that has not been explored at all
miszu: boys, 10th now with 45% done
miszu: 5th!
miszu: 4th!
miszu: 2n!
miszu: 1st! Now it's just me vs the boss
jesuisdev.net: hi guys. May I solicitate your help, is anyone have any suggestion where to deply asp.net Core 3.1. app with angular for a price - let say reasonabley cheap ??? thanks for your attention. L
Uljahn: miszu: have you tried to change exploration coefficient?
miszu: Uljahn yeah I have done that now and the current run is doing much better
miszu: I switched from sqrt 2 to 0.5
Uljahn: i see you're above the boss, good job
miszu: thanks! :)
miszu: YAY! Promotion to Legend!
Astrobytes: hey congrats! ::)
miszu: thanks :)
miszu: can't believe the exploration factor was the key
struct: grats
miszu: hopefully I won't be the last in legends haha
darkhorse64: You can't. There are two broken bots at the bottom
wlesavo: miszu gratz :slight_smile: i knew you had enough rollouts
miszu: darkhorse64 ok so not last among functionable bots :D
miszu: to be honest, I was a bit disapointed by my # of rollouts
miszu: I avoided vectors and just got 5k more sims
darkhorse64: Hey, it's just the start. It took me weeks to reach 90k
miszu: darkhorse64 how you find the bottleneck?
tomatoes: use profiler
darkhorse64: profiling; trial and error; papers reading
miszu: yeah profiler but it just shows CPU usage
tomatoes: should show what exactly code is using cpu
miszu: the build in profiler in visual studio is enough?
darkhorse64: Yes
darkhorse64: Pro tip: do not spend too much time on this multi; try to reuse your mcts on other board games (bandas is an easy one). Tackling other problems will give you food for thought
miszu: oh yeah, I am done with UTTT
miszu: it was a fun ride
miszu: learned mcts and coefficient factor tweaking
miszu: and some optimizations
darkhorse64: Nah, it's just the beginning
miszu: :P
darkhorse64: Still lots of CP to collect
miszu: my bot is in top 100 in legends
darkhorse64: Fine start
YodaMaster123: How do you decide what you explore at the beginning? Is it at random or tailored to beat certain AIs?
miszu: which game?
struct: not sure if i keep the mirror
struct: https://i.imgur.com/GNmrKIm.gif
YodaMaster123: MCTS miszu
YodaMaster123: For Ultimate Tic Tac Toe
struct: only top players have opening books
struct: and not all of them
ZarthaxX: holy fuck struct
ZarthaxX: that'z amazing
struct: thanks
YodaMaster123: What is it?
struct: a game im porting to codingame
tomatoes: i think he's about newly created (first visit) nodes, not book
YodaMaster123: No tomatoes, I`m talking about your starting point. The opening books.
struct: i dont think im gonna use the pharaoh theme thoug
tomatoes: i have only teccles and copypaste smits response to teccles
miszu: YodaMaster123, do teccle then MCTS
eulerscheZahl: hi struct i think the mirror looks a bit confusing. showing parts of the board twice, hard to recognize as a mirror
**eulerscheZahl gets easily confused at shopping malls
struct: yeah I have to agree
struct: euler I Think i know how to fix the bug you have
struct: of cubes disapearing
eulerscheZahl: not cubes. just surfaces
eulerscheZahl: so, what's your suggestion?
struct: whats you near value on perpectiveCamera?
eulerscheZahl: uh, 0.1 i think
struct: oh :/
struct: hmmm
eulerscheZahl: yeah, it's 0.1
eulerscheZahl: whatever, now it's RAIC time
struct: the surfaces of the cubes disapear?
struct: ah ok
eulerscheZahl: tshirt + hoodie of last year finally arrived today :D
eulerscheZahl: just 11 months
struct: whats the prize this year?
eulerscheZahl: 360 tshirts
tomatoes: money
eulerscheZahl: 60 hoodies
eulerscheZahl: and money
eulerscheZahl: no laptops and smart watches
miszu: in codingame or something else?/
eulerscheZahl: https://russianaicup.ru/
eulerscheZahl: where did the prize section go? was curious how much money
eulerscheZahl: last year there was a picture with prizes on the start page. but only showed when you were not logged in
Astrobytes: prizes listed on here euler: https://habr.com/ru/company/mailru/blog/530232/
eulerscheZahl: wlesavo registered too
dbf: eulerscheZahl, looks like you have submiyyed already :)
eulerscheZahl: thanks astro. that's where i saw it
eulerscheZahl: yes. just a pimped starter AI
eulerscheZahl: with some building
dbf: :thumbsup:
wlesavo: t-shirt right in time to motivate euler to submit :smiley:
Astrobytes: grats on finally receiving it :)
eulerscheZahl: 250k rubels for the winner about 3200 US dollar
struct: quite high prize
eulerscheZahl: i'm here for the swag only :D
Astrobytes: lol, euler's yearly shopping list
eulerscheZahl: as always: minimum effort to get a hoodie
struct: Must be stressfull playing for top
struct: with 30 days competition
wlesavo: yeah, just downloaded assets, was rewriting cg sponsored, still hope to make it to top3, seems quite doable now that i have beamsearch and can tune specific cases
eulerscheZahl: last year i failed on the minimum effort part
eulerscheZahl: you have the validators for CG sponsored?
wlesavo: no, but i have assert :grinning:
eulerscheZahl: submit spam to extract info? :D
Astrobytes: you saved all the maps?
eulerscheZahl: it was way easier in the past. but i missed to do it
wlesavo: smth like that, buyt maps and behaviour can be fully extracted from tests
eulerscheZahl: same maps for validators?
wlesavo: y
eulerscheZahl: same starting positions?
Astrobytes: nice
wlesavo: no, starting positions and sleep times are the main difference
eulerscheZahl: *sigh*
wlesavo: and one case with 5 enemies
eulerscheZahl: wow
wlesavo: beam search is quite ok, but requires close to perfect sim, blitz is really close to optimum score though
wlesavo: max i could get on most cases is a little above 1300 and 1300*11 = 14300
miszu: which next ai game should I work on?
wlesavo: oware is also nice for mcts
miszu: I am tired of mcts haha
miszu: ghost in the cell, how hard to reach legend?
jrke: dots and boxes my favourite miszu
wlesavo: well it does not work there the same way, you need early terminations with eval
wlesavo: also there are some great optims, i would advise for 2048 and number shifting
wlesavo: oh, and same game
eulerscheZahl: ghost in the cell is an easy legend
miszu: thanks. I was looking at the ghost one.
miszu: It is a nice one because it is about ressource management. Never practiced that before
therealbeef: is MCTS the main viable algo for UTTT legend?
miszu: therealbeef it allowed me to reach legend
struct: some people did minimax to get legend
therealbeef: sounds like it's rare ;-)
miszu: teccle + mcts is enough
struct: even mcts is enough
AshKetchum: what is teccle
wlesavo: moves that make the opponent to play on the same board you made your last play
AshKetchum: got it
AshKetchum: thanks
therealbeef: started with minimax, was just wondering if i have a chance at legend
therealbeef: but even if its rare, i'll take the challenge :-)
therealbeef: best way to learn
miszu: therealbeef my advice is make sure you code the board state and transitions moves correctly
miszu: then after it's easy to implement different algorithms
struct: i think current rank 31 is still minimax
struct: on uttt
ZacDonald: somebody know on C4L if the id at the laboratory is the same as the diagnosis ?
miszu: ZacDonald not sure but can't you print out in the error stream?
llks: Hola!
llks: Any recommended puzzles to learn MCTS?
llks: *easy ones to start with
miszu: UTTT
miszu: good luck
llks: Ty
struct: monte carlo tree search
miszu: I thought it was Carlos
Astrobytes: Mister Carlo's Tongue Scraper
ZarthaxX: carlos :rofl:
ZarthaxX: it comes from the casino name mmis
ZarthaxX: miszu
miszu: yeah I realised that now
miszu: I thought maybe there was a Prof. Carlos who came up with it
Astrobytes: Monty Carlos' Flying Circus
ZarthaxX: LOOOOOOOOOOOOOOOL
ZarthaxX: im gonna die
Astrobytes: lol
meh1001: every turn is something completely different!
Astrobytes: heh heh heh
miszu: Mister Carlos Tree Sniffer
Astrobytes: lol, that's so wrong
AntiSquid: Mighty Christ Timely Salvation
Leslato: https://www.codingame.com/clashofcode/clash/14852271b071e5f24352bd3ecb90cda43f29f2a
AntiSquid: clash => /dev/null
AntiSquid: use #clash channel Leslato
LastRick: Anyone else just laugh at their car on the puzzle of the week? My guy looks drunk.
ningelsohn: Can someone explain to me how this works? https://www.codingame.com/training/easy/ascii-art
ningelsohn: I pass all the tests inside the puzzle itself, but i dont know why the other tests fail partially
VizGhar: maybe you didn't take ? into account?
ningelsohn: somehow a @ gets displayed as a ? and thats fine (at least the test still passes)
VizGhar: there is ? as last ascii, that you should use if some charactes is not [a-z]
ningelsohn: is this mentioned somewhere? i was thinking of that, but thanks, i will give it another try
asuna321: sup
ToshiTuringMachine: hi nerds
tobk: Weird. Trying to optimize my Poker chip Race collision detection. Instead of comparing each Chip with each other, I use two TreeSets (Java/Kotlin) for X and Y position and then use those to get the intersection of subsets of chips that are within two radii of the current Chip.
tobk: I thought that would be super-fast, but it's 3-5 times slower than brute-force comparing all combinations... :-/
ToshiTuringMachine: i stopped using all lambdas in java because the for(int i=0...) version is 12x faster
ToshiTuringMachine: no surprise
tobk: hm, good point, there are indeed a few lambda's in the code, Kotlin though, not sure how it behaves there.
travisfw: ToshiTuringMachine, even after JIT compilation? I'm new to the platform, but does JIT optimization work here? or do we not get enough time for it to "warm up"
ToshiTuringMachine: sorry no idea. I just stopped using java 2 yrs ago
Astrobytes: you get 1s first turn in multis, puzzles should be OK time-wise. afaik it's worth doing some manual warmup in that 1s
travisfw: interesting Astrobytes. so like, hard-code a test case and loop it for a second I guess...
Astrobytes: yeah, or create a bunch of instances of some dummy classes
VizGhar: Just looking at nintendo puzzle... And I'm really puzzled o.O its something
Astrobytes: It's quite a highly specialised mathematical problem, I have no real idea
tobk: hm, tried converting all those .filter{...} to loop+if, but only marginal speed up, and comparing all pairs still much faster than using the tree sets...
jacek: wooo new puzzle of the week
miszu: does optimization matters for ghost in the cell?
struct: dont think so
ToshiTuringMachine: lovely puzzle of the week... thanks illedan
ToshiTuringMachine: a milestone
TheNoiselessPony_7a5e: Hello everyone
LastRick: Yep I'm enjoying it. Just can't get the last one in time yet.
TheNoiselessPony_7a5e: I just barely started playing around here
TheNoiselessPony_7a5e: And been solving the Power of thor task
TheNoiselessPony_7a5e: Solved it but I can't understand one thing
LastRick: Its fun when you first start. Like I said above, my controls were so wonky, poor guy looked drunk
TheNoiselessPony_7a5e: If something is higher on Y line than obviously thor has to move North
TheNoiselessPony_7a5e: and here its opposite
TheNoiselessPony_7a5e: how the ... is that possible
Astrobytes: Origin is usually top-left on CG
VizGhar: most of the time in programming y=0 is top :)
VizGhar: and if you are referring to directions, you should use LTRB
TheNoiselessPony_7a5e: Gotcha, I was just reffering to task conditions
TheNoiselessPony_7a5e: Thank you guys
Astrobytes: no worries
struct: miszu race to legend?
jacek: oh heas already legend in uttt, noice
miszu: struct for ghost in cell?
struct: yes
miszu: jacek yeah I hit legend today :)
miszu: struct Rush B it is
miszu: but I am burned from the UTTT
struct: I think gitc is the hardest multi for m
struct: me*
miszu: euler said it is easy to reach legend
miszu: we shall see then
struct: hmm maybe I do the contribution instead :thinking:
Astrobytes: struct, your clip of your contrib looked amazing. Agree with euler on no mirror effect though
struct: thanks it will be slow progress though
struct: Not really familiar with 3d stuff
Astrobytes: take your time man, there's no rush
Astrobytes: nice to have you back again btw struct ;)
struct: thanks astro, glad to be back
Sinux1: I am starting to use this sit emore for fun (in reality, to practice coding in specific languages), but is there a way to work in my own ide, with the same game parameters, so that I can write and run them locally?
Astrobytes: For multis or puzzles Sinux1?
Sinux1: I am not sure the difference between the two, but I think the right answer is the puzzles. I have been trying to follow the quest map
Astrobytes: Multiplayers are the bot programming, optim and code golf kinda come under that umbrella as they have leaderboard, clashes then you have single player puzzles
Sinux1: ok, I have been doing the single player puzzles
Astrobytes: Puzzle-wise you can take the test cases (if they are visible) and run offline with them as your input
Sinux1: but if they are not visible?
Astrobytes: You can print the input to stderr and copy that way
Sinux1: ok
struct: If you dont have expert mode enable do it
Sinux1: that works for me
Astrobytes: +1 for struct's comment
struct: The puzzles that dont show inputs are the ones that change depending on your output
Sinux1: ill do it now
Astrobytes: Also, you can't get the validators for puzzles (the test cases you get on submitting your code)
struct: to enable expert mode click on ide settings on left
Sinux1: haha I was about to type "how?"
Sinux1: ty
Sinux1: Thank you so much
Astrobytes: then if test cases are visible you'll see a menu icon 'display test cases', and under 'Custom' you can define your own too
Sinux1: I just figured that out! wow. Okay, I see it all now, This ANEO sponsored puzzle was really aggravating. With this, I can get some stuff done.
Astrobytes: Ah, good stuff :)
Sinux1: haha this is going to really reduce the amount of time i study for my finals this week... ttyl.
Astrobytes: Hey, prioritize! ttyl
Sinux1: is there an irc channel?
Sinux1: im using this off the side of the site ... is this the discord?
Astrobytes: this is it technically, XMPP. There;s the discord link up top
Astrobytes: The two are different
Astrobytes: Both can be quiet at times, but discord is good for longer discussions
jacek: irc? what year is it
Astrobytes: hey, it still works
Sinux1: at least you didnt ask what irc is
Sinux1: i like it, i use. discords cool too.
Astrobytes: Yeah, here and discord are my 'social media'
Astrobytes: Right, I'm done for tonight. See you all tomorrow
struct: gn
Sinux1: .
miracle: What is this error "Oups An error occurred (#75): "Verification process has elapsed"."?
Rodrigo_the_coder: probably verification timeouts
isaiahtaylor: do CoC games get harder as your rank increase