From CG community
Revision as of 11:56, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/30071168356458> miszu: struct as X <img src=/a/30071168356458> miszu: I implemented teccle, I win and draw more often <img src=/a/30071168356458> miszu: but once...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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: 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")

  1. pragma GCC option("arch=native","tune=native","no-zero-upper")
  2. 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


miszu: also I use rand()

miszu: is that slow?

struct: there are faster alternatives


-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: 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?


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: 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

Default avatar.png 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?

Default avatar.png 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.

Default avatar.png AlanMarx: And thank you :)

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: 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, 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: 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

Default avatar.png CorentinMADRE: print("hello world")

CfueAsiff: hello

Default avatar.png Mushroom_: hey

Default avatar.png Mushroom_: anyone alive on this website?

BasicTH: Not on the inside

Default avatar.png Mushroom_: ikr

Uljahn: Automaton2000 should be alive

Automaton2000: can somebody give me a few days

Default avatar.png Mushroom_: i can't even do the tutorial level

Default avatar.png Mushroom_: bruh

Guinsoo: XD

Default avatar.png senticoder:

rockstar555: hey guys made one amother contribution


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

Default avatar.png Blended: Is there a programing language similar to rasbin? Or arduino?

MSmits: and that's a huge stepup

MSmits: blended, try C#

Default avatar.png Blended: okay

MSmits: Arduino is C or C++ I think, but C# is way more beginner friendly

Default avatar.png 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: 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


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


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 hi guys. May I solicitate your help, is anyone have any suggestion where to deply 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


Default avatar.png KrisztianToth: Hey guys!

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: 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:

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

Default avatar.png 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

Default avatar.png abdomokh: HOLA

Default avatar.png abdomokh: WHAT IS MCTS

Default avatar.png abdomokh: ,

struct: monte carlo tree search

miszu: I thought it was Carlos

Astrobytes: Mister Carlo's Tongue Scraper

Default avatar.png abdomokh: Ty

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: 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


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.

Default avatar.png ningelsohn: Can someone explain to me how this works?

Default avatar.png 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?

Default avatar.png 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]

Default avatar.png 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.

Default avatar.png AlmightyStopwatch_71e9: sh

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

Default avatar.png TheNoiselessPony_7a5e: Hello everyone

LastRick: Yep I'm enjoying it. Just can't get the last one in time yet.

Default avatar.png TheNoiselessPony_7a5e: I just barely started playing around here

Default avatar.png TheNoiselessPony_7a5e: And been solving the Power of thor task

Default avatar.png 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

Default avatar.png TheNoiselessPony_7a5e: If something is higher on Y line than obviously thor has to move North

Default avatar.png TheNoiselessPony_7a5e: and here its opposite

Default avatar.png 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

Default avatar.png TheNoiselessPony_7a5e: Gotcha, I was just reffering to task conditions

Default avatar.png 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: .

Default avatar.png miracle: What is this error "Oups An error occurred (#75): "Verification process has elapsed"."?

Default avatar.png JohnBrzenk: lol

Default avatar.png Rodrigo_the_coder: probably verification timeouts

Default avatar.png isaiahtaylor: do CoC games get harder as your rank increase