From CG community
Jump to navigation Jump to search

Kellthazar: :)

Kellthazar: The cover of the Fall Challenge seems amazing...

Kellthazar: Robot battle, maybe?

WINWINWIN: I dont think they have decided what the contest is going to be, looks like the cover is just a placeholder

ZarthaxX: was the same as the pac one

ZarthaxX: wat WINWINWIN said :P

eulerscheZahl: that cover contains some previous contest themes. the rocket from A*Craft, the dragon from The Great Escape, Detective Picaptcha, the digging robot from Unleash the Geek

eulerscheZahl: the racing car might be from coders strike back

jrke: is spring challenge realesed as classic game?

eulerscheZahl: probably today

jrke: K

eulerscheZahl: was planned to be live already but something came in between

jrke: but new name for winner of contest

eulerscheZahl: ẞ

eulerscheZahl: ?


jrke: hey cegprakash congrats first in india

cegprakash: Thank you!

jrke: hey i first thought that OOC was tough but seems very easier

cegprakash: it's tough after Silver at least

cegprakash: I spent lot of time to reach gold

jrke: K

cegprakash: and wood1 was the hardest league

cegprakash: sorry wood2

jrke: but i started it yesterday 10 minutes of coding gave my 2.2 ppoints lead from wood2 boss and i am in wood1

jrke: hey wood 2 is easy man

cegprakash: tell from a beginner perspective

jrke: i am now in wood 1 there is no point now if wood 2 is toughest league ;)


cegprakash: see the last paragraph

cegprakash: don't read the rest of spoilers

cegprakash: sorry wrongn nlinnk


jrke: hey there is rule in OOC that max turns is 300 per player but i had one of 324 turns one player what can i do

cegprakash: it's the frames

jrke: look this

cegprakash: frames are diff from turns

jrke: means we have to give max 300 outputs yeah

eulerscheZahl: you know that you can shoot, right? :D

cegprakash: :joy:

cegprakash: jrke is following non violence strategy

cegprakash: like Gandhi

jrke: yeah

jrke: hey i didn't did anything for wood 1 yet its my wood 2 bot ranked 259 but added silence

jrke: hey i wanna know one thing how u shoot just random


WINWINWIN: Is this a bug in python?

WINWINWIN: def get_cell(self, x, y):

WINWINWIN: this is my method

WINWINWIN: game.grid.get_cell(j, i).set_land()

WINWINWIN: this is the call, but it says insufficient arguments

c0cainee: maybe they're being passsed as a tuple?

WINWINWIN: Dont know why it would be passed as a tuple :/

dbdr: eulerscheZahl took back general #1 thanks to contest points I suppose

dbdr: should be even more when multi opens

ZarthaxX: dbdr eulerscheZahl 12:37AM oh, 1st again and some more cp to come with the multi

ZarthaxX: lol

dbdr: first I thought you were repeating me. but I see, I repeated euler :D

ZarthaxX: yes, it was funny lol

jrke: hey anybody can tell whats wrong in this c++


WINWINWIN: string a int y

WINWINWIN: comma missing

jrke: comma added

jrke: by the way i got my mistake i didn't declared using namespace std;

jrke: thanks

R8T3D: hey

R8T3D: is C++ inherently disadvantaged in shortest problems?

R8T3D: why isn't this accounted for?

R8T3D: Python almost always dominates these type problems

Uljahn: is Python inherently disadvantaged in AI Bot programming? C++ almost always dominates these type problems, Automaton2000

Automaton2000: no, but i can do it at the beginning of the game, but i think that might be it

dbf: R8T3D, you are wrong, perl dominates for shortest

eulerscheZahl: can we start a petition to disallow C++ in AI contests?

eulerscheZahl: and i always thought it's bash for shortest

eulerscheZahl: as CG doesn't have golfscript2

R8T3D: @dbf semantics

R8T3D: I just mean generally speaking

dbdr: we could create CGscript

R8T3D: it seems odd that shortest problems don't account that some languages are significantly more minimal than others

R8T3D: I get it

R8T3D: I do

R8T3D: Just was curious

dbdr: the only valid program in CGscript is empty

dbdr: the CGscript interpreter detects the puzzle from the input, and outputs the solution

Quidome: dbdr you are on top by TAD

Quidome: What did you add?

dbdr: yeah, I got #1 there 15 minutes before pac2020 started :D

WINWINWIN: I see that pacman opened as a multi, awesome!!

dbdr: I need to check my git history to remember what I changed

Quidome: WINWINWIN nice

Quidome: dbdr oh, ok np

R8T3D: #1 in what?

Quidome: Tulips and Daisies

R8T3D: sorry new to this whole thing

Quidome: R8T3D welcome :)

R8T3D: thanks :D

dbdr: well, it's something in the evaluation function

R8T3D: I'm traditionally a software developer but this area of competitive style programming is so intriguing to me

dbdr: the details are a bit out of my head for some reason ;)

dbdr: I'll need to check it again, it's not even committed

dbdr: contest started a bit too early :)

dbdr: what will you do next Quidome?

Quidome: I am eating all the puzzles to gain speed on my coding skills

Quidome: still rusty

dbdr: yes, good way to practice

Quidome: Focussing on refactor skills and higher order functions

Quidome: I was simply too slow in the contest

Quidome: got 2 days to late in gold

dbdr: one advice would be to use newtypes, if you don't already do that

Quidome: what are newtypes?

dbdr: you create you own types for concepts in the game

dbdr: for instance Gold in TAD

dbdr: it can still be represented by an int concretely

dbdr: but it's a separate type

Quidome: ok, i see , i am going to look into that

dbdr: so you can't mix gold and something else by mistake

Quidome: I use enum a lot

dbdr: struct Gold(u16); for instance

dbdr: enum is good too

Quidome: But that solves a different problem I think

dbdr: then you define the operations that make sense for your newtype

Quidome: references is still a pain in the ass with lifetimes

dbdr: maybe. I think it helps with refactoring for instance

Quidome: do yoy use them at all?

dbdr: basically you'll get more compilation errors and less eird behaviour

dbdr: *weird

dbdr: which is very much the spriit of rust

dbdr: and other high level languages

Quidome: I understand your newtype argument thnxs :)

dbdr: references, I start to, only if few cases

dbdr: *in few cases

dbdr: you can even overload operations on your newtypes, e.g. arithmetic and indexing

dbdr: like in pac2020, index a Map by a Position

Quidome: Yeah you showed met that before, gonna look into that as well

Quidome: very neat

dbdr: one of the great things on rust is that you can get this high level representation in types, at compile time, and no cost for it at runtime, just as fast as primitive types

dbdr: very fe languages have that

dbdr: *few

Quidome: I really like that

Quidome: Did a lot of Python recently but when it get's a certain size I slow down completly, not so with Rust

dbdr: but really, the best way to improve is to practice a lot

dbdr: there is a sweet spot: spend enough time on one multi to get a good result and learn stuff

dbdr: but know when to stop too

Quidome: true, the Rust Idiom is differtent though

dbdr: you will learn more by doing something different at some point

Quidome: true

dbdr: you mean rust is confusing in the bginning?

Quidome: Very confusing

dbdr: yeah :D

dbdr: references is the big part of that, right?

Quidome: At some point you unerstand why something is not working but can't find a way out

dbdr: haivng to convert primitive types was the other strange thing for me, but it's minor. and it has advantages too

Quidome: You have to ignore references to start with, well references in structs

dbdr: exactly

dbdr: always, the key is to design your data structures very well

dbdr: it's true outside of rust too

Quidome: yeah

Quidome: so I commited again :)

dbdr: there are several quotes on that, I think it's a general truth

dbdr: for instance:

dbdr: > I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

dbdr: -- Linus Torvalds

Quidome: good quote :D

dbdr: he's a C guy BTW

Quidome: And a legend

Quidome: (a living one)

dbdr: it's just that in most languages, if you have a bad data design, you can get around it by adding a pointer here and there

dbdr: a bit like gotos, it's spagetthi

dbdr: ;)

Quidome: what are you going to do?

dbdr: another quote on same subject, for reference:

dbdr: > "Show me your [code] and conceal your [data structures], and I shall continue to be mystified. Show me your [data structures], and I won't usually need your [code]; it'll be obvious.

Marchete: data structures and C :rofl:

dbdr: sure. struct

Marchete: Any string in C: "sh*t, here we go again"

dbdr: Quidome: I want to think about opening books

WINWINWIN: Is rust fast?

dbdr: it's fast. essentially same as C and C++

Quidome: opening books on which game?

WINWINWIN: Thanks dbdr

dbdr: it can apply on any game that always starts in the same position, for instance uTTT, Twixt, ...

Quidome: if it will add any value depends largely on the game :)

MSmits: what do you want to do with opening books dbdr?

dbdr: yes

dbdr: I woke up MSmits :D

tobk: Huh, I thought they'd come up with a proper name for the multi.

dbdr: didn't even say the Y word ;)

MSmits: yes, I heard a call from the beyond

dbdr: lol

MSmits: oooopeeniiiing booooookd

tobk: Does that mean from now on each new multi is called "[Season] Challenge [Year]"?

dbdr: i guess uTTT also works

dbdr: or OB

MSmits: oware?

Quidome: OB?

dbdr: opening book

MSmits: I've never done an opening book for oware, but I think it would be extremely effective

Quidome: oware is sovalble

dbdr: I will probably test it on Twixt

MSmits: not the way it is on CG

dbdr: does it make it harder?

Quidome: started to work on that, but stopped half way :)

dbdr: or just different and hasn't been done?

MSmits: oware is only solvable with anti-loop rules

dbdr: ah ok

MSmits: CG doesnt have them

MSmits: also the 200 turn limit makes things really complicated, because the turn is now part of the transposition state

dbdr: there are no loops though

dbdr: limited number of turns

dbdr: just include the turn number in the state

MSmits: but that makes it worse

Quidome: You can do a retrograde analysis including the loop problem

dbdr: blows up the state space though

MSmits: Quidome how do you solve the problem of the fact that the game ends at 200

dbdr: you can also count a loop as a draw, maybe

MSmits: they solved it by starting from end games

MSmits: but now suddenly every arrangement of seeds is an endgame if you can have it at turn 200

dbdr: 200 turns means there is a finite number of states

Quidome: Is it a draw at 200?

MSmits: yeah, but that means exactly nothing

dbdr: so you can learn back from that. of course it's too bug in practice

MSmits: no its not quidome

MSmits: most seeds gathered

dbdr: too big

Quidome: aha

dbdr: I'm ont convinved it makes it unsolvable, but does make it harder for sure

dbdr: *not

MSmits: I think this makes oware practically unsolvable, but if you already have a good bot and you write a meta mcts, you could make it way stronger than anything that is on the board now

dbdr: yeah, lots of multis can be improved significantly

MSmits: dbdr I am not 100% certain about it, but you also cant claim for certain it is solvable given earlier solvable versions of oware

MSmits: it's up in the air

dbdr: I guess CSB and uTTT are the ones that have been explored the most at the top, right?

dbdr: by many top players

MSmits: I did a LOT of work on yavalath. Even if it is just me, it has been explored a lot

MSmits: almost as much as uttt

dbdr: right, but if it's only one/few players, it's more likely there is more to be discovered

MSmits: sure, thats possible

dbdr: regardless of who did it

dbdr: also it's harder for you to improve without a strong opposition, no?

dbdr: or you just improve against yourself?

MSmits: well the opposition is very strong in yavalath I think, but yes mostly with meta mcts vs myself

MSmits: there are some strong players on there

MSmits: tric trac, dafish, renard, robo did a NN, darkhorse and pb4 did a good bot as well

dbdr: I see trictr*c is close

MSmits: they all spent much time

dbdr: ok, then it has been explored well

dbdr: those are strong players indeed

MSmits: yeah

MSmits: uttt is another level entirely though

MSmits: so many players

pb4: dbdr : Fantastic Bits can probably be improved on a lot

dbdr: of course new strong players will arise

dbdr: yes pb4. similar to csb, but much less worked on

cegprakash: hey pb4 did u see my forum post

pb4: I did cegprakash, did it call for an answer ?

dbdr: but really true for most multis

MSmits: btw... dbdr did you see our discussion about opening books last night?

cegprakash: pb4 you did the new ranking system?

dbdr: I didn't MSmits, slept early ;)

dbdr: I will check it, thanks!

pb4: I did my own ranking yes, though it's nothing official

cegprakash: who built the match making? Why didn't I get any matches

MSmits: ah, 3 of the 4 guys that have a deep opening book in uttt all online at once, discussing them

cegprakash: against rank 40-50

pb4: I think there is some margin on Vindinium too

darkhorse64: dbdr: re your linus quote, one interestingthing is that, in French, as you know, a computer is called an "ordinateur". French sees the computer not as a calculus engine but as a means to organize data

MSmits: karl iso changed his and took nr 2

MSmits: nr 1 sry

MSmits: made me nr 2 :P

dbdr: darkhorse64 very good point!

MSmits: I see

MSmits: well they are both valid names. A main feature of a computer is also doing computations fast

pb4: my current Vindinium code is only short term planning, there are many games where it is clear that some sort of longer term planning would help

dbdr: sure. you could say computation is the how, but data is the why

MSmits: the game has run before on a different platform hasnt it pb4?

MSmits: are our bots on par with those?

dbdr: e.g. MCTS, lots of computation, at the end what you want is a few bits of data :)

MSmits: sure

darkhorse64: I always see my programs as a data flow and design my code to avoid turbulence. That way, it is faster

dbdr: and the tree is interesting too, and it's all data

Insufficient: hey guys, fyi the multi version of pacman is now out it seems

dbdr: sounds great dashu_baba

dbdr: darkhorse64, sry

MSmits: Insufficient cool, more cp :)

pb4: MSmits : yes, different platform. We can't know how our bots compare to that other platform because nobody ported their code.

Insufficient: it will be interesting to see now everybody has seen what other people did if anyone can optimize further and how much tougher the competition gets

pb4: euler had made a message on that other platform's reddit, no success

MSmits: ah no... but I wonder if they have guides and stuff that tell you how complicated their bots arre

MSmits: planning and such

pb4: They do

darkhorse64: Shall i rest or avenge myself from failing for making it to Legend ?

dbdr: avenge!

pb4: Doesn't seem like there was anything magic in their codes

MSmits: or let yourself be drawn back into uttt :P

darkhorse64: Legend under 300 lines of C++

dbdr: 5 people computing in pac2020

dbdr: including... guess it! ;)

pb4: I would expect mine to be on par with their "state of the art" back then

MSmits: 300 lines of c++ ? I can't do a sim in 300 lines :P

pb4: I start contests with more than 300 lines of templates...

MSmits: allright pb4, good to know

MSmits: I'm sure I will go back to it at some point

MSmits: I gave it up because I had no idea how to do it

MSmits: mostly because i suck with minimax :)

pb4: Then bring the MCTS magic :D

MSmits: yeah, that would maybe be even harder in this case, i tried smitsi with no luck

MSmits: the 4p thing is hard :(

MSmits: but i'll figure something out in the end. First there is uttt and i want to try breakthrough

MSmits: twixt is on my list as well

MSmits: plenty to do

pb4: I'm still stuck on BR

MSmits: the NN.

pb4: Yes

pb4: I've been torturing NN for a long time on BR now

pb4: They just won't learn...

MSmits: I am thinking to do a thesis on teaching machine learning in highschool CS

MSmits: I have to do one for my studies

MSmits: to become CS teacher

pb4: thesis = phd ?

MSmits: no

MSmits: not sure what the name is

MSmits: its just a big written thing

MSmits: with research in it

MSmits: design educational material

MSmits: test it out

MSmits: conclusions etc.

MSmits: i can use existing material too ofc

MSmits: like the tensorflow stuff

MSmits: doesnt have to be generalized either, it may just apply to my local school situation

MSmits: anyway, it seemed like a great excuse to get into machine learning, been putting that off

pb4: haha

pb4: Will it be machine learning applied to games ?

MSmits: could be, sure

MSmits: it's really broad

MSmits: it's one of the optional parts of the CS curriculum in my country

MSmits: you have to choose some optional parts

MSmits: I can choose what to do

pb4: If you want to link this with CG, remember I made a database of "game state" --" "good action" for CSB

pb4: Can be used for supervised learning, to imitate a basic bot

MSmits: sounds cool, but might be a bit out of range

MSmits: they're not that far into coding, most of them. I think I could get about half of them to finish some easy puzzles when they get to the point wed be doing this

pb4: Not that much actually : doesn't require a CSB simulation engine, doesn't really require much

MSmits: to give an estimate at how good they are

pb4: oh

pb4: right then :D

MSmits: there are always some students massively ahead of the rest

MSmits: like my student that got into silver last contest

pb4: Is it really the right time to get them into machine learning ?

wlesavo: >"game state" --" "good action" for CSB pb4 may i have a link

MSmits: well they put it in the curriculum so it has to be doable ?

pb4: forum --> search "neural network resources"

wlesavo: oh, thx

MSmits: we do a lot more coding than most schools teaching CS

pb4: Though "good action" is really not that good compared to today's standards :D

MSmits: if we cant do machine learning, noone can :P

pb4: It was the output of my contest bot

MSmits: pb4 this is a training database like a mnist set for numbers?

pb4: Yes

MSmits: thats really cool

pb4: 100k datapoints if I recall correctly

pb4: Trained my first NN on that database using Excel's optimizer function :D

MSmits: wow

MSmits: talk about inefficient...

MSmits: excel :)

pb4: I was afraid to code at that time...

MSmits: I do it all the time though, but I dont know so many tools

MSmits: afraid to code?

pb4: It was my 2nd contest on CG if I recall correctly

pb4: I only learned to code on CG

MSmits: hmm not sure if it is the same for me

MSmits: I learned to code bots on CG

pb4: So I only knew C++, and was pretty bad at it

MSmits: I already wrote some mods for games in C# before

Illedan: Link to that DB of "good moves" pb4?

MSmits: real 1-2k line mods, not little changes

pb4: Same as wlesavo, it's on the forum

MSmits: pb4 you made this database not for NN purposes at first I guess? If it was during an early contest?

MSmits: just to test a ga or something against?


pb4: It was right after the contest, the objective was to try training a NN with supervised learning

MSmits: oh, you got into it really early then...

Illedan: Do you explain what the input variables are?

pb4: Yes Illedan it's in the data file

pb4: the first 35 lines are """"""documentation"""""""

pb4: Yes I use a lot of quotes, it's not exactly proper documentation :D

Illedan: #Blind -.-

MSmits: sometimes i see a gith repository, with 1 or 2 lines of code, some blank lines, lines with comments, then another 1 or 2 lines of code, then more comments

MSmits: I always found that completely horrible

pb4: Better documentation :

pb4: I created 100k random situations where :

pb4: the pod is placed in (0,0)

pb4: The next checkpoint is placed in (D,0) on the X axis

pb4: pod has a random speed

pb4: random direction

MSmits: oh its a runner database

pb4: Yes

MSmits: well thats the most important part and easiest to train for

MSmits: to at least get a bot goint that is

pb4: next_next checkpoint is placed randomly

MSmits: going

pb4: The pieces of code in the """""documentation"""""" shows how this situation is encoded

Illedan: I will create an Optimization puzzle of running 1 pod for 3 laps. To test NN on 1 runner only :)

MSmits: with the SDK, for real?

Illedan: yeah

MSmits: thats cool

Illedan: Give me 2 days

MSmits: Take your time :)

MSmits: a -18, 0, 18 split of angles is not gonna give good results there

MSmits: not like it does on the multi

Illedan: Ofc not, but I want to see how good NN can do :D

MSmits: yeah

Illedan: And removing all other obstacles

Illedan: To see it actually working

pb4: In a runner-only situation, the best we found with Agade was a code by BleuJ

pb4: simulated annealing with depth 20 I think

kovi: yep

MSmits: nice

kovi: that is the usual method on such problems

pb4: This would finish races on average 3 frames before our best bots

pb4: Though I have to admit it's been a long time since I tried seriously to make a runner-only for CSB

MSmits: GA wont do better than SA?

wlesavo: SA was so good for me in NS

wlesavo: couldnt make GA work even though tryed hard for it

kovi: SA is beast. winner solution for 50% of topcoder marathons

Illedan: Combination worked very good on NumberBash

MSmits: hmm what kind of algorithms for the other 50%?

MSmits: your app Illedan?

Illedan: Eulers game

Illedan: I used SA + GA

MSmits: yes but you made an app and called it numberbash didnt you?

Illedan: sure, but didn't publish yet

MSmits: ah ok

Nerchio: Saelyos won pacman yea?

dbdr: Illedan do you have a stack of unfinished projects? :D

dbdr: now runner CSB got on the top of the stack

kovi: beamsearch. but i like those were heuristics needed

MSmits: ah ok

wlesavo: Illedan wow, i would read the details if you dont mind sharing

Clagus: Nerchio - it seems so, he is currently no1

Illedan: dbdr, sure ;) But I always had NN for CSB on the stack

dbdr: just reorder the stack

Illedan: But last time I tried, my pod was driving in circles... Closer and closer to the CP :P

dbdr: hm, reminds me of CGFudge

dbdr: is that where it is?

Clagus: Nerchio - but top 20 shifted so much after the competition end, it's amazing... I think maybe because they already opened it for multiplayer outside competition?

Nerchio: ys

Nerchio: yes

wlesavo: Clagus many didnot resubmit

Clagus: but on my screenshot just after competition ended Saelyos is still no1 so

Clagus: wlesavo - what do you mean? Legend league was recalculated by CG

dbdr: no need for screenshot, the contest leaderboard is there, frozen forever :)

Illedan: \o/ Finally we can see the history of our contest codes :D

Nerchio: the crossroads thing is cool from pacman strategy

dbdr: it's in the multi?

Clagus: dbdr - just wanted to be sure ;)

Illedan: yes

dbdr: nice!

wlesavo: i mean in multi, i climbed 30 ranks in legend by not resubmitting

dbdr: I have 103 submits in the pac2020 multi

Clagus: wlesa

dbdr: yeah, well done CG!

dbdr: i meant yay!

wlesavo: did val missed the main part or he after the end?

Clagus: wlesavo but they recalculated whole legend league, so even if you didn't resubmit, it just resubmited itself with the same code

wlesavo: or he improved

MSmits: recalc is not resubmit

dbdr: it even does not have a submit for the multi opening, which is good

wlesavo: Clagus no they did not

MSmits: resubmit starts at the bottom, recalc starts at last position

Clagus: MSmits how so?

MSmits: big difference

dbdr: well spotted Illedan

Clagus: oh, ok, didn't know that

MSmits: it should not matter but it does

dbdr: it does not matter with infinite matches ;)

MSmits: you'll be able to shift form your last position but not very much

dbdr: otherwise, I had to matter

MSmits: right dbdr

MSmits: euler did a test

dbdr: it has to

MSmits: he broke his bot on botg so that it ended at the bottom and had atimed switch to turn back on for recalc

MSmits: his bot was around 40 rank, for recalc it was near 100 i think and it came back up to 73, hope I have the numbers right

WINWINWIN: Why was that needed?

MSmits: to test how well the recalc estimates rank

MSmits: he wanted to know if it could get him back to 40

dbdr: that's sad. but that's also a worrst case scenario, being so far from your real rank

dbdr: I think he crippled it a lot, no?

dbdr: timeout on x% of the matches on purpose

MSmits: to get to the bottom yes

dbdr: would be useful to know what was x too

dbdr: but not 100%, or was it?

MSmits: I am not sure if it was %

MSmits: maybe he timed out all

dbdr: that's covered by x = 100% ;)

kovi: but how do you know that his original position was the real one?

MSmits: yes lol

dbdr: but I think I remember it was not all

kovi: he shoudl have smurfed

MSmits: kovi, in some games you will know, pacman is a bad example

MSmits: in csb for example

MSmits: you know your real rank

dbdr: smurfed in legend, that's doubly bad

kovi: i know

kovi: msmits: true. some games have must less randomness (more stable ranking)

MSmits: exactly

MSmits: it's nice when that happens

dbdr: resubmitting my bot on pac2020, to see if it ranks similarly then I will test the 2 improvements I did yesterday

MSmits: but it's more important for a game to be fun and interesting to code

kovi: dbdr - too few games

kovi: this is a bad multi

dbdr: kovi from one submit you mean?

kovi: well...with submit spam, probably any of top20 could end up top3

MSmits: btw dbdr I again added you to a cg bench list and marvelled as i beat you 100% until i realized.... rust :P

dbdr: I know, one data point is just better than 0. I don't need a high precision right now

MSmits: during pacman that is

dbdr: especially as my changes are better tracking, it would be strange if it hurt

dbdr: MSmits lol and ;(

kovi: dbdr, yeah im doing the same. first data point shows, that anotjer wouldnt gave me top3 either

kovi: another hour of work

dbdr: well, I won 4/10 with my final submission :D

dbdr: let's see if it still climbs

dbdr: even lost once against Illedan, sth is not right ;)

dbdr: I noticed several times, being stuck near the bottom, then start winning and zip through the middle and quickly get to top 30-ish

dbdr: I think lower bots are more random (since less good)

MSmits: same for me... it was really sluggish to get through bottom

MSmits: if i hadnt resubmitted when i did 1/2 hr before deadline, i would have started at 83 instead of 40

dbdr: makes sense if you think about it

Nerchio: MSmits i like your summary of pac challenge some great ideas in there

MSmits: thanks Nerchio

dbdr: the worst bot is a purely random bot (unless you try hard to be bad)

jrke: why i am getting this as error stream

jrke: double free or corruption (out)

jrke: c++

dbdr: the theoreticall best bot plays the optimal strategy, which is deterministic

dbdr: actual bots are somewhere on that line

WINWINWIN: I wonder how far you can get in a multi by printing random commands :thinking:

MSmits: this is the most interesting thing about opening books

MSmits: the better your opponent the better they work dbdr

MSmits: they become more deterministic

WINWINWIN: Like in BotG where it gets till Bronze

dbdr: yeah, I think we are syaing the same thing MSmits

MSmits: sometimes there are multiple optimal strategies though

Illedan: Keep pushing me up yes

MSmits: for instance, if uttt can be theortically solved as a win for p1, then there will likely be many ways to do this

dbdr: sure

dbdr: so yes, the specific move mught change

dbdr: but you would win 100% of the time

WINWINWIN: Cant games with no random factor like UTTT be precomputed?

MSmits: right

dbdr: so the result is deterministic :)

MSmits: WINWINWIN the space is too large, but from a certain point into the game they can

wlesavo: WINWINWIN do it

MSmits: which is why opening books are vulnerable

dbdr: WINWINWIN yes for small games, like non-ultimate tictactoe :)

dbdr: even some mid-sized games

dbdr: checkers is solved AFAIK, using optimizations

MSmits: brb have to go get daughter from school

WINWINWIN: But in Tic Tac Toe there is a distinct advantage to the guy who starts, he has no chance of losing

Default avatar.png JBM: checkers, connect-4

Default avatar.png JBM: won't they leave us anything?!

WINWINWIN: is there anything like that in UTTT?

MSmits: man i dont want to go... now it gets interesting

MSmits: yes there is WINWINWIN, but i tmay still be solvable to draw

MSmits: p1 has about 70% win

MSmits: with regular bots

MSmits: anyway ttyl :)



jrke: double free or corruption (out)

jrke: i am getting this as error stream c++

jrke: how to fix it plz

dbdr: JBM you can always use the 'ultimate' transformation

Default avatar.png JBM: does that work with any game?

dbdr: can work with many at least

dbdr: I feel it can be formalized

Default avatar.png JBM: does it make them undecidable, or just harder to?

dbdr: exponentially harder

dbdr: all games are solvable by minimax, no?

Default avatar.png JBM: yeah, they're still finite known state, so same rules of solving

Default avatar.png JBM: exactly

dbdr: I guess it can get interesting with inifinite branching factor ;)

Default avatar.png JBM: well "public state equal rights alternating turns" games anyway

dbdr: you can solved unequal rights too, no?

WINWINWIN: Doesnt Ghost in the cell have a near infinite branching?

dbdr: anything you can represent as a dag

Default avatar.png JBM: ah yes

Default avatar.png JBM: i had mentally replaced minmax with "just solve the tree"

dbdr: single player too, it's just a special case where you always play

dbdr: aka optim

dbdr: maxmax

Default avatar.png JBM: yup

Default avatar.png JBM: minmax is really not the right term here

Default avatar.png JBM: it's just search

dbdr: yeah, minmax is not the exact term

dbdr: search with an arbitrary +1 and -1 multiplying factor at each state

dbdr: +1 or -1

dbdr: that handles all 1 and 2 player cases I think

Default avatar.png JBM: which you can see to see either as part of the graph or as part of the alg

dbdr: yes, but data > code, if you read above ;)

Default avatar.png JBM: this can be read both ways

Default avatar.png JBM: "is better than"

Default avatar.png JBM: or "is larger than"

dbdr: better

dbdr: more important

dbdr: code is a detail of how to generate the data

Default avatar.png JBM: but is generated data really data?

Default avatar.png JBM: oh dear i'm getting philosophical again

dbdr: well, like minimax is an abstract concept (which happens to have a corresponding obvious implementation)

dbdr: the minmax value of a state is data

Default avatar.png JBM: all right

Csipcsirip: there were a recalc in the multi or what ?

dbdr: regardless of how you compute it

dbdr: Csipcsirip no, started in the same state as the final contest

dbdr: then people started to submit, as usual

Csipcsirip: ahh okay so some1 pushed me up

Default avatar.png JBM: well done

dbdr: JBM shall we not go into the fact that code IS data? ;)

Default avatar.png JBM: Not Today

dbdr: allright, allright

Default avatar.png JBM: XD

dbdr: reminds me of some game from Wales

Default avatar.png JBM: a game of drones?

dbdr: at the end, all that matters is values (e.g. data)

dbdr: Kaamelott reference

Default avatar.png JBM: errr i'm kind of missing a few links here

Default avatar.png JBM: oh That game

dbdr: :)

Default avatar.png JBM: comes twice in the series if i'm not mistaken

dbdr: there are several games. does this one come twice?

Default avatar.png JBM: hard to prove they're the same

dbdr: this one is Le Sirop (sirup)

Default avatar.png JBM: youtubing now

AbdelkrimBournane: WHATSAPP!

Default avatar.png JBM: no wait actually i think i'v got them on the other hard drive

Default avatar.png JBM: the search experience is going to be bettter

4candles: Hi all. Beginner programmer (learning Python) here. My friends list is very empty *sob* Are there any other python beginners out there want to hang out/learn together?

Adnmaster: im not a beginner but im still learning

Adnmaster: how about me?

Adnmaster: im looking for friends too

Adnmaster: why is the chat suddenly so still? :D


Uljahn: why do you even need specific friends to learn python? all python community seems extremely friendly to me


Adnmaster: are you saying to me or him?

jrke: hey winwinwin

AdrienA: yes python community is great

jrke: how u used torpedos

WINWINWIN: Full tracking system

WINWINWIN: took nearly 500 lines in python to do it too

4candles: Adnmaster sure, let me add you :slight_smile:

Adnmaster: ok

Adnmaster: do you have discord? We can talk there too

Adnmaster: Colorhacker#8394

jrke: K

4candles: I can install it. Supposed to be working, but not much work going on :wink: trying to learn programmign instead so I can get a more interesting job.

Adnmaster: ok

Adnmaster: nice

Adnmaster: i can teach you

4candles: Awesome thank you

Adnmaster: ok

Adnmaster: no problem

Adnmaster: we can talk at the private message place on codingame or on discord

jrke: can anybody draft contest

Default avatar.png SujalAI: Can someone tell me why my pacs freeze after turn 70

Default avatar.png SujalAI:

Default avatar.png SujalAI: I'm just finding the closest pellet out of all the pellets

Uljahn: click three dots on the lower right

dbf: SujalAI, because opponent uses speed and you don't

Adnmaster: because you don't have any pellets in sight in frame 70 SujalAI

Uljahn: nah, that's not the case, he just printing the same target

Uljahn: @dbf

Uljahn: Adnmaster: could be it

dbf: ah, ok

Default avatar.png SujalAI: Adnmaster but the super pellets an be seen from anywhere and also I have an array of all the pellets in the map

Adnmaster: hmm...

Adnmaster: wait

Adnmaster: you are right...

Adnmaster: check if there is a bug in your code

Default avatar.png SujalAI: This the code to get all the pellets in the map

Default avatar.png SujalAI:

Default avatar.png SujalAI: I consider everything other than a wall as a pellet

Default avatar.png SujalAI: And I delete the pellets which are in the same location as a pac

Adnmaster: wait

Adnmaster: no that will be error

Default avatar.png SujalAI: why?

Adnmaster: you have to reset all the pellets every round, and then give them in the list every round

Adnmaster: you cant delete them manually

Adnmaster: you can, but that will give error

Adnmaster: instead try to get the updated locations of pellets every round

Adnmaster: if you get the updated statement of pellets every round, it will keep searching for it

Adnmaster: plus it is more simple than deleting them manually

Adnmaster: thats my suggestion, but you can do it how you want

Default avatar.png SujalAI: The problem is that I can't get the map every single turn, it's a one time thing

Default avatar.png SujalAI: It only comes on initialization

Adnmaster: you don't need the map every turn, it gives you the locations of the pellets

Default avatar.png SujalAI: But only the pellets which are in sight

Adnmaster: yeah, i can't help you futher

Default avatar.png SujalAI: I want all the pellets in the map

Adnmaster: in which league are you?

Default avatar.png SujalAI: bronze

Adnmaster: rank?

Default avatar.png SujalAI: 1473

Default avatar.png SujalAI: in bronze

Default avatar.png SujalAI: overall rank is 3500 something

Adnmaster: with the pellets in sight code i got into 700th

Adnmaster: perhaps you can try that

Default avatar.png SujalAI: The problem is some of my pacs go for the same pellet when I do that

Default avatar.png SujalAI: That causes endless collisions

Adnmaster: i made a code that if there is collision they go to another direction and ignore the pellet that causes collision

Adnmaster: you can do that

Default avatar.png SujalAI: How can I make them go another direction?

Default avatar.png SujalAI: Oh I can just ignore the pellet if it's chosen by some other pac

Adnmaster: for example you can make another list, if they are colliding you will put the pellets location you want to ignore in that list, and you can delete the locations from the list of pellets every round

Default avatar.png SujalAI: Ok thank you

Adnmaster: no problem

Adnmaster: by the way i figured out why you're code has bugs

Adnmaster: you can only see the enemy pacs in sight

Adnmaster: so the enemies you don't see will eat the pellets but you wouldn't have deleted it because you couldn't see the enemy pac

Default avatar.png SujalAI: I know about that bug but I just ignored it

Default avatar.png SujalAI: But I just realized 2 problems with my logic

Adnmaster: what is it?

Default avatar.png SujalAI: If there are no pellets in sight then My pac freezes

Adnmaster: hmm...

Default avatar.png Sonex123: i do not understand this

Adnmaster: yeah i can't help any further :sweat_smile:

Adnmaster: a little bit hard

MSmits: SujalAI I have a property "possible pellet". Any place that has a "possible pellet" will be a possible target for my pac

Default avatar.png SujalAI: And there's a problem with my defense, I only switch if an enemy is near but if I'm under cooldown then I just die

MSmits: any time you see a cell is empty, you will forever set the "possible pellet" to dalse

MSmits: false

Adnmaster: you can avoid the enemies if they are near and you are under cooldown

MSmits: so at the start all pellets are alive and only as soon as you see one, does it get flagged as being gone

Adnmaster: same defense i did :sweat:smile:

MSmits: then it doesnt matter if your pac doesnt see any pellets

Adnmaster: wait

Default avatar.png SujalAI: Is the possible pellet a property of the pellet or the pac

MSmits: pellet

MSmits: I have an array with all cells on the board

Default avatar.png SujalAI: This replay shows both problems with my logic:

MSmits: it just has cell.possiblePellet = true

MSmits: at the start

MSmits: except for the walls and the places where pacs start

Default avatar.png SujalAI: K

Default avatar.png SujalAI: How do you find out if the cell is empty?

MSmits: you see it

MSmits: update every turn.. all visible cells

Default avatar.png SujalAI: But you can only get all visible pellets not cells

MSmits: you know where they are

MSmits: so just set the right cell.possiblePellet to false

MSmits: the cells have coordinates too

MSmits: maybe do a 2D array with cells or a 1D array if you're comfortable with the 2d -> 1d conversion

Default avatar.png SujalAI: So I should make a 2d array of all cells

MSmits: sure

MSmits: thats a good way to do it

Default avatar.png SujalAI: Then I should set possible pellet to false if my pac is on that cell

MSmits: your pac does not need to be involved

MSmits: you get a list of all visible cells each turn

MSmits: no matter where your pac is

Default avatar.png SujalAI: Then how do i know if a cell is empty

Default avatar.png SujalAI: I do

MSmits: it gives you the value

MSmits: if it is 0 it is empty

Default avatar.png SujalAI: What?

Default avatar.png SujalAI: Can you send me a snippet of that code

MSmits: its in the description, read that

MSmits: Next line: one integer visiblePelletCount for the amount of pellets visible to you Next visiblePelletCount lines: three integers: x & y: the pellet's position value: the pellet's score value

Default avatar.png SujalAI: I don't get all visible cells only all visible pellets

MSmits: thats the same thing

MSmits: a pellet is on a cell...

MSmits: and you get x and y coordinates for the pellet

MSmits: the cell will have those same coordinates

Default avatar.png SujalAI: So the value can be 0

MSmits: you can find the cell in the array and set the property

MSmits: yes, then the pellet is gone

Default avatar.png Sonex123: has someone an idea?

Default avatar.png SujalAI: I didn't know about value 0 thing

MSmits: oh hmm, i might be wrong here

MSmits: sorry

MSmits: no it only gives visible pellets that are up sorry. Let me show you something else

MSmits: (i wrote this code early contest sec)

MSmits: this is a part of a function that sets all cells to visible


MSmits: and here i set possible pellets to false when i should be seeing them


MSmits: all cells will have their pellets set to 0 at the start of a turn and set to 1 or 10 when its updated to be in the list

MSmits: then if i should be seeing a pellet, but i am not seeing it, pelletpossible is set to fale

MSmits: false

MSmits: so a visible cell that does not have a pellet in the update information, will have its property set to false

MSmits: the visible cells function just goes in each direction until it hits a wall

MSmits: from each pac

MSmits: so yeah... i mislead you to think it was simple, it's a bit more complicated, sorry about that

MSmits: btw the "it" in the visible cells function just counts how many times it went left (or right) because otherwise you will be going on infinitely long... some corridors go across the entire map and you can go on forever

MSmits: infinite vision

MSmits: hope this helps

jacek: so close

jacek: think i have some draw bug

struct: Im wasting so much time on the move generator i though i had it figured it out :/

struct: All this because I want to give legal moves

dbdr: struct personally I never use the legal moves from the referee

struct: Yeah me neither, but some people might find it usefull to see if their move generator is correct

dbdr: but those people are advanced users, they can figure it out

dbdr: however it could be useful for an easy depth 1 search

dbdr: that's nice for beginners

struct: I guess im just rusty

dbdr: rusty is good ;)

dbdr: are the rules complex?

struct: Not really, but you can do multiple moves per turn

dbdr: yeah, that complexifies things

struct: My old version add 1 action per turn, but you could have multiple turns in a row

struct: That is not ideal

dbdr: interesting twist :)

dbdr: does the sdk even support that?

struct: yes

dbdr: nice

dbdr: but then you would get 50ms several times?

struct: yeah :/

dbdr: that could be interesting: you could make your first move, without knowing yet what your next one would be

dbdr: don't have to of course, but you would possibly get an advantage if you pull that off

struct: true, I might have to increase time a bit though for this multi

struct: 50ms might not be much

dbdr: cannot the list of all possible multi-moves blow up exponentially?

struct: Can be quite big I think

struct: I dont know the exact number

struct: I will find out today hopefully

struct: I can even add an option if you want move generator or not

struct: so it wont slow you down

dbdr: yes, that would be good

dbdr: also avoid wasting CG server ressources

jrke: funny moment


NovaHorizon: move generator for what now, struct?

struct: A game that im porting to CG NovaHorizon

struct: Yinsh

NovaHorizon: Yinsh? I'm unfamiliar with that

struct: Its a board game

struct: I also ported Yavalath, another board game



AntiSquid: are you still porting yinish ?

struct: Im back to it yes

Doju: Hey, do you guys think it's worth it to rewrite my 1000 lines of python to learn?

Uljahn: to learn how to rewrite and refactor?

cegprakash: calibration playing a huge role in leaderboard

cegprakash: this should be chaged

cegprakash: changed*

struct: Whats your suggestion?

cegprakash: instead of giving 100% games to those within +- points

cegprakash: give 50% in this range

cegprakash: 40% in a lil bit far

cegprakash: 10% in more far

Doju: Uljahn yes, exactly

cegprakash: especially in legend when I skip the bottom 20 I easily get to rank 30-50

cegprakash: and I have a win rate around 55%

Doju: and find things that could've been done in a smarter way

cegprakash: and stay there

struct: I dont think that will fix much

struct: So what if a player at rank 90 wins a match against you when you are at rank 10

struct: How much will you fall down

struct: how much will he climb?

tobk: great, NOW my pac bot decides to have a winning streak... :rolling_eyes:

WINWINWIN: cegprakash, should it be something for only legend or all leauges

WINWINWIN: because other leagues are considerably large

dbdr: struct the answer to your question is that TrueSkill decides that :)

dbdr: it's an open question what the matchmaking should be, indeed

dbdr: cegprakash my bot behaves similarly

dbdr: but I also think it should be possible to improve it so it wins more consistently against lower players, even if not always

dbdr: the quick fix is: if your first 10 is too bad, resubmit :)

cegprakash: can't do that in legend dbdr

cegprakash: to win first 10 is rare especially in close and invisible information and completely random maps

dbdr: I'm not saying 10/10

struct: you shouldnt win the 10 if your bot ranks halfway through legend

struct: That is a lucky submit

dbdr: if you win 7/10 in average, resubmit if you get 4/10

cegprakash: I always get 4-5

cegprakash: getting 8+ is rare

dbdr: then your bot has weaknesses

struct: ^

struct: Im sure if he rank 1 submits he will get 8/10 a lot

dbdr: so either improve it. or resubmit when you get 2 instead of 4-5 :)

cegprakash: don't blame my bot

cegprakash: if the leaderboard gives 2 different rank too apart

cegprakash: then the leaderboard is bugged

ntroPi: is submitting broken at the moment? Not getting the matches in progremss % and not changing rank at all right now.

dbdr: no

struct: ...

dbdr: it's easier to blame the leaderboard, I know :)

darkhorse64: After one year and a half here, my experience is that if my bot is good, it climbs the ladder and stays on top, otherwise it fails. Don't complain, write a better bot

dbdr: ^

struct: Sure your bot might get a better rank in 1/100 times

struct: But that doesnt mean your bot deserves that rank

darkhorse64: The result of a lucky submit is invariably a slow decay

darkhorse64: or not so slow

dbdr: it's true you can have a quite strong bot with big weaknesses, so the results are confusing

dbdr: a trivial example would be having rare timeouts, or be really bad on certain kinds of maps

dbdr: and strong otherwise

dbdr: then the leaderboard will look random to you

dbdr: more than it really is

dbdr: darkhorse64 not entirely, e.g. if only low-rank bots play some strategy, and you don't handle that well

dbdr: once you climbed above it, it won't matter

struct: Yeah, that can happen, in some mutlies this is not a problem, but in some can be quite hard to manage

cegprakash: ntroPi yes leaderboard is hanged

ntroPi: :-(

dbdr: leagues help with this, but of course not anymore with low legend

cegprakash: my submit is completed but stuck at 7% and non rank updated

cegprakash: but u can guess ur rank using a chrome extensionnn

cegprakash: install CG spunk chrome extension and click on last battles. It'll show u rank of all opponents u have recently faced

cegprakash: that'll give u an idea about ur rannk ntroPi

ntroPi: sounds interesting, my last battles is empty though.

cegprakash: dbdr I easily climbed 40 ranks in a resubmit

cegprakash: should this happen on legend?

cegprakash: if this is normal then leaderboard is right

cegprakash: otherwise leaderboard is bugged

dbdr: yes, if you play well against some low ranks and not against others

dbdr: or on some kinds of maps and not others

cegprakash: I have 55% win rate against everyone


darkhorse64: dbdr: This is quite true. My OOC bot times out against spam silencers; I choose deliberaltely not to fix it because I felt it was not a winning strategy and that high level bots would not use it. But it is my choice not the leaderboard fault

struct: ceg I see 36% 23 %

cegprakash: do u think my rannk is fair consnideringn I was top 60 before rerunn

cegprakash: very funny struct

dbdr: you'ill get roughly 55% whatever your bot strength is

struct: Its the truth

cegprakash: 2 guys decide my rank when there are 113 ppl in nleaderboard?

cegprakash: that's very funny

dbdr: if you are stronger, you will just climb and play against stronger bots

struct: "I have 55% win rate against everyone"

dbdr: still with about 55% wins

dbdr: 55% avergae is what he means

darkhorse64: You have a much lower win rate against ppl ranked above you. That means the leaderboard is right

dbdr: funilly, I have 54% wins average

dbdr: this means nothing

cegprakash: I've 100% win rate againsnt Gafagarion in ur way of calculation if only 1 or 2 guys is what that matters

cegprakash: and 100% against Xanrum

cegprakash: how can u let those guys above me when they have 0% againnst me

darkhorse64: Quoting one figure is pointless. Onyy the average against people above you matters

cegprakash: that's what I'm also saying

dbdr: btw, cegprakash, your cgstats is for the contest not the multi

cegprakash: I'm talking about the contest rannking only

dbdr: oh ok

cegprakash: both uses same leaderboard logic

cegprakash: my bot still gives 2 diff ranks 40 ranks apart in ndiff submissions

darkhorse64: The problem is that you look only at your wins and not your losses

cegprakash: lol

cegprakash: why does it only look at my loss and not the guy above me's losses

darkhorse64: You are much more biased than the lb

cegprakash: I've 100% win rate against them

dbdr: against handpicked opponents

dbdr: it's bound to happen

dbdr: number of matches against a specific opponent is always going to be low anyways

cegprakash: just look at this guy's games


dbdr: so it's meaninglss by itself

cegprakash: do u think I should rank lower than him?

eulerscheZahl: i arrived just to see me at 7th in the contest now :(

darkhorse64: Look also at your losses and and also consider that that they have wins against other players that contribute to their rankings

dbdr: cegprakash yes

cegprakash: then u are biased

cegprakash: just like the leaderboard

darkhorse64: The overall ranking is not the result of your own battles

dbdr: you're ignoring that by being ranked higher, he also played against stronger players

dbdr: you can't compare winning rates because of that

cegprakash: that's the exact point I don't understand

cegprakash: why didn't I play with higher raks

cegprakash: that's what I'm asking

dbdr: you might also randomly play more against lower or higher ranks

dbdr: but TS accounts for that

cegprakash: crap

dbdr: a win ratio does not

cegprakash: it should be equally random

eulerscheZahl: :popcorn:

cegprakash: getting matches against lower bots makes nno sese

dbdr: :D

cegprakash: I win them anyway

dbdr: it does, in case you are overranked

cegprakash: wtf I'm underranked

dbdr: you win 100% against lower ranks?

dbdr: not you personally

cegprakash: I've 55

cegprakash: nobody has 100

dbdr: that 55% is meaningless

dbdr: either trust the ranking, or understand how it works before criticizing it

darkhorse64: :popcorn:

cegprakash: it gives diff. rank for diff submits.. 5-10 ranks diff is acceptable

cegprakash: 40 ranks

cegprakash: not acceptable

cegprakash: leaderboard sucks

Astrobytes: :salt:

darkhorse64: :sugar:

dbdr: going into :popcorn: mode too ;)

Astrobytes: where is my salt shaker

struct: How many times are you ranked 40 ranks higher?

eulerscheZahl: on discord

struct: 1 in 50 submits?

cegprakash: like 10 times

cegprakash: 10 in 50

dbdr: not abnormal

cegprakash: it is

Snef: You could maybe have always the same rank if there was 100* more game played in submit

cegprakash: leaderboard with full of bugs

dbdr: lol

cegprakash: Snef no

cegprakash: my rank is always based onn first 10 games

cegprakash: wherever I caliberate I stay there

cegprakash: because I've 55% against everybody

cegprakash: apart from top 30

Astrobytes: The solution to a better & more stable rank is simple ceg - git gud

Uljahn: Automaton2000: nevertheless cegprakash is #1 rank in our hearts :purple_heart:

Automaton2000: why don't you try to make a decent bot

Astrobytes: ^hahahha

Hjax: LOL

struct: :fire:

WINWINWIN: Quite mean Automaton2000

Hjax: Automaton2000 throwing shade

darkhorse64: to the point

Automaton2000: u can do it fast

Automaton2000: i might give it a try

WINWINWIN: Ohh its a chatbot


dbdr: Automaton2000 won the match :D

Astrobytes: Awesome work there Automaton2000

Automaton2000: you do it when i have to see the rules

Automaton2000: what are you on about

cegprakash: A day will come

eulerscheZahl: Automaton2000 is the better bot compared to AutomatonNN

AutomatonNN: what is the most recent contest?

Automaton2000: is it more like a sorcerer conjuring a powerful demon hamster lol

cegprakash: when u cry about ur rankings

cegprakash: just like me

Snef: AutomatonNN did you miss it ?

Astrobytes: Demon hamster?! WTF :D

cegprakash: may be then u'll understad

AutomatonNN: what do you mean by that?

eulerscheZahl: but the most sneaky boss making most new users believe he's real is MadKnight

eulerscheZahl: boss => bot

MadKnight: impossible

Default avatar.png JBM: the endgame bot

WINWINWIN: they are surprisingle coherent

Default avatar.png JBM: hurt me plenty

WINWINWIN: &surprisingly

Astrobytes: not always WINWINWIN

dbdr: I'd like a MadKnight boss

Astrobytes: NN speaks gibberish mostly

WINWINWIN: Hmm, 2000 is good?

Astrobytes: Much better, yes

WINWINWIN: NN --> Neural Network chatbot?

Snef: 2000 is markov chain

eulerscheZahl: dbdr my ping triggered the MK bot, yours didn't :D

dbdr: gg

Bestpart: Why I can't play clash of code

Snef: Bestpart because you have first to do multis

Astrobytes: :P

WINWINWIN: I dont think there is a limit Bestpart

Snef: like csb, ask MadKnight to help you

MadKnight: okay i see

WINWINWIN: Probably slow net

**MadKnight quits

CyberWind: ^_^

eulerscheZahl: Bestpart did you play a lot recently?

Bestpart: today I play 1

eulerscheZahl: then there will be captchas. I know Chiniese uses have problems with those. You are not Chinese but close ;)

eulerscheZahl: but 1 clash doesn't trigger a captcha

Astrobytes: There's been a couple of site errors the past hour, and people are complaining about leaderboards stalling too - could be a site issue

dbdr: "not chinese but close" might be culturally sensitive :D

dbdr: or insensitive

eulerscheZahl: i got a network error on mouseover to see struct's new profile pic

Joniboy2: is coding clash dwn?

Joniboy2: down*

eulerscheZahl: it seems so

StepBack13: yeah, I got 504'd

Default avatar.png AlexanderPuchta: i think so, clashes dont start

StepBack13: :(

Joniboy2: shit

StepBack13: I should have won last clash, but my submission got 504'd. :((

Default avatar.png AlexanderPuchta: shit happens

Default avatar.png AlexanderPuchta: brazzer

**dbdr suddenly realizes how many clashers lurk on the chat

CyberWind: is CoC getting experience?

CyberWind: just askin'

**eulerscheZahl is clashmaster now

eulerscheZahl: solve the following:

eulerscheZahl: fastest mode, hurry up

Default avatar.png AlexanderPuchta: have seen it for the first time yesterday at CodingGarden Stream. really nice thing this codingame

eulerscheZahl: too bad: you missed the contest

eulerscheZahl: ended just yesterday

struct: master please easier clash

Default avatar.png AlexanderPuchta: cant submit my results for puzzles

Default avatar.png AlexanderPuchta: thats really annoing

cegprakash: just check the win rates of anybody close to me above me


cegprakash: none of them deserve to be at a better ranking than me

cegprakash: clearly bugged leaderboard

struct: Yeah

struct: bugged

cegprakash: it's easy to say fix ur bot when the leaderboard is bugged

cegprakash: to avoid the blame

struct: This is why I play CoC

struct: that prooves who is the best

struct: None of these shenanigans

cegprakash: struct CoC proves who is the fastest not who's the best

Hjax: fastest is a measure of best

eulerscheZahl: first of all: let's have a look at all the data. CGstats shows 243 games, where there are about 1000 for each user

Hjax: maybe not the /best/ measure of best, but certainly /a/ measure

cegprakash: everyone skipped me

cegprakash: that's the point

cegprakash: I'm worried


Hjax: perhaps they had better results earlier in the calibration

eulerscheZahl: let's consider this when we talk about your rank cegprakash

struct: is this from him?

cegprakash: only 64 games?

struct: or yours?

cegprakash: okay 64 opponents

cegprakash: ofc I didn't have more matches againsnt top guys

cegprakash: stats clearly says that

eulerscheZahl: that's all the recalc matches. search for your nick

cegprakash: which is unfnair

eulerscheZahl: because your performance vs the lower ranked players didn't justify to give your those

cegprakash: there should be an upper limit of games against a certain player

cegprakash: at least something like 15 games

cegprakash: having 40 games against same player is useless

jrke: hey i wanna know how wood 1 boss of OOC can predict us as i am even not using torpedo and didn't used surface also

cegprakash: I could have used those remaining 25 games against other players

jrke: and boss also didn't used sonar

cegprakash: justify?

Snef: jrke he knows the moves you did from the start so he can compute where you could have started

cegprakash: like 70% win rate?

jrke: K

cegprakash: 51% or 70% anything > 50 is a win

Hjax: jrke probably just sliding around possible positions and removing the illegal ones each frame

Hjax: oops scroll

eulerscheZahl: raise your concerns there:

Hjax: chat should have a red *new messages* popup when you are scrolled up and typing

Joniboy2: is clash up again?

YumYmu: hi!

struct: ceg have you tried bug-report on discord?

eulerscheZahl: i like my message board link more. was curious if i can do an SQL injection on it, got a 403 instead :(

NickStahl: You don't have permission to access /cgi-bin/ on this server.

NickStahl: Last post of '19.... So guess it's dead

Astrobytes: lol eulerscheZahl, I tried the same thing :P

eulerscheZahl: then let's try

eulerscheZahl: your message will be shown as soon as the webmaster approved it

eulerscheZahl: why did I write SQL injection up there? I meant XSS

Astrobytes: Well, neither worked :P

eulerscheZahl: so both are great places for ceg to complain

NickStahl: :D

struct: I think submit should start at rank 1

struct: This will fix everything /s

eulerscheZahl: i should be able to decide where i start

eulerscheZahl: and end

darkhorse64: I should be able to rank myself

Astrobytes: Submit->Select Final Rank->Profit.

eulerscheZahl: that could be a premium user feature

eulerscheZahl: and a non-laggy chat

Astrobytes: In fact, don't even bother with the contest. Fastest to select the highest rank wins.

darkhorse64: The problem is between the computer and the chair ?

eulerscheZahl: => less game development time, contests more often

NickStahl: yes!

Astrobytes: Very much so :D

struct: My pseudo recursive move generator is working

eulerscheZahl: yinsh?

struct: yes

eulerscheZahl: great

eulerscheZahl: smits will be happy

NickStahl: Astrobytes, last person to select best rank wins. That way it will stay exciting!

Astrobytes: Great point NickStahl :D

eulerscheZahl: like the last user to git push wins push -f :)

NickStahl: And you can smurf by selecting lower ranks :S

Astrobytes: lol euler

Astrobytes: We're definitely on to something here. Should keep ceg happy enough :P

eulerscheZahl: did we troll him away already? so quiet

struct: It is easier to complain than it is to improve

struct: Sure the leaderboard is not perfect

Astrobytes: Perhaps he's attempting to log a complaint on one of those websites

NickStahl: You guys use GIT? Kid: "Mom can we have version control?" Mom: "No we have version control at home" Version control at home: "CTRL-Z,CTRL-Z,CTRL-Z,CTRL-Z,CTRL-Z,CTRL-Z,CTRL-Z,CTRL-Z,

eulerscheZahl: there is some randomness. but not as much as others imply. ceg at 83 now

eulerscheZahl: which is better than his contest rank but still far from top50

struct: Yes, that might be due to random maps

struct: or a bug in the leaderboard

eulerscheZahl: a strong bot can consistently reach top10 from my observations of others submitting

Doju: Erm

Doju: how do you guys have bfs implemented?

Astrobytes: In code.

Doju: i need it in different situations

eulerscheZahl: i can share the code now, give me a sec to trim it

Doju: but copy pasting is the root of all evil

NickStahl: Astrobytes you beat me to it :D

Astrobytes: :P

Doju: eulerscheZahl no it works just fine but

struct: ofc, and there are plenty of multies that if rank 1 submits he will still be rank 1

Doju: do you have like one thing that yields a cell at a time then you do whatever with it?

Astrobytes: Could you be a little more specific?

Doju: So currently i have 3 or 4 places with almost exactly the same flood fill code

Doju: except one returns when it hits a specific target cell

Doju: one maps distances to all visited cells

struct: rank 1 in tron is a deleted account :(

Doju: one builds paths

Doju: and one flags dead ends

eulerscheZahl: won't compile as i deleted some parts but didn't clean it up properly


NickStahl: What I was wondering eulerscheZahl... Is this private int[,] BFSDist; faster than Dictionary<int,int> when you need to look for a specific value?

NickStahl: What I did was translate all x/y values to a cellId, and put all cellId's with their distance in a Dictionary<int,int>...

Doju: So you only have one that goes to one target? eulerscheZahl

NickStahl: Guess I should just test it instead of asking :)

NickStahl: Damn CG chat, too distracting :)

Astrobytes: Chat can be very useful at times ;)

Csipcsirip: my beautiful c++ implementetion with some global variables to be read first


eulerscheZahl: dictionary has some overhead over a plain array

Doju: So, do you have similar code for flagging dead ends for example?

Astrobytes: I use an optimised version similar to the last one on Smit's BFS optim article

NickStahl: Astro yeah, chat is great and keeps me from working :)

Astrobytes: lol

eulerscheZahl: Csipcsirip did you break your bot?

Doju: Thanks btw eulerscheZahl, Csipcsirip

eulerscheZahl: you are right below ceg

NickStahl: Csipcsirip what is it with C++ devs and short var names?

Astrobytes: Clearly a LB bug

struct: ^

reCurse: Hey hey not all c++ devs

Csipcsirip: no I'm too a victim of the unrealistis ranking system

reCurse: You're looking for C devs

Astrobytes: hahaha

eulerscheZahl: some competitive programmers write really ugly code FOR(i, n) i hate that #define to allow this

Astrobytes: Yes. 100% yes.

reCurse: But it's the right tool for the job

reCurse: They created their own DSL to be as fast as possible

reCurse: Nothing wrong with that

cegprakash: hey eulerscheZahl

cegprakash: u missed my stream during contest right


eulerscheZahl: i know. i just don't like the optics :P

cegprakash: I've put it on youtube

reCurse: It's not meant to be used in codebases :P

eulerscheZahl: i didn't miss it. i ignored it

eulerscheZahl: was busy coding myself

cegprakash: that's what I meant by missing

cegprakash: missing is nice

cegprakash: ignore is harsh

Astrobytes: "i ignored it" :fire:

reCurse: Maybe he just doesn't like your stream

reCurse: Nothing wrong with that

cegprakash: this time I read the problem statement

reCurse: Fake news

cegprakash: seriously who reads problem statement for pacman

cegprakash: I did only for u guys

eulerscheZahl: don't take it personal. i ignore other streamers too. e.g. never watched illedan for more than 5min

cegprakash: I know you man

cegprakash: reCurse see

cegprakash: ppl love me and my stream just that they don't get anything useful from it

Astrobytes: I remember I was watching more than 5 minutes of this stream by... I believe it was reCurse, but then... nothing? :P

cegprakash: I mean eulerscheZahl

cegprakash: noobies can like my stream

eulerscheZahl: and wasn't as hyped by reCurse storing the board state in a bitstream. don't get me wrong: it's a cool way to compact it. but not the reinvention of coding as others think

Astrobytes: Yeah, I'm not talking about the er Bit Stream :P

reCurse: I still don't understand why it's such a hit

cegprakash: spring challenge leaderboard now shows I'm 86th

cegprakash: with same code

Astrobytes: Come on, BitStream == InstaWin

cegprakash: 86th is a nice rank compared to 106

cegprakash: now that's satisfying

cegprakash: come on 3 digit rank sucks

struct: ...

reCurse: I layer ranks as 2^n

reCurse: Same n so same result

Astrobytes: Maybe you should have your own league ceg, you can choose who to battle and you'll always be happy :)

eulerscheZahl: you can do that: create your own private contribution

eulerscheZahl: and only share with those you can beat

cegprakash: okay I go back to work damn CG is so distracting to my work

reCurse: :wave:

cegprakash: boss gonnna fire me

Astrobytes: See ceg, victory can be yours

NickStahl: legend level trolling here

NickStahl: And I'm stuck in silver

eulerscheZahl: google translate is fun. "Mountain climbing club"

eulerscheZahl: (probably hill climbing)

Csipcsirip: I like this part: 見えない敵を再び見かけたときは

kovi: there is no legend boss...he will not be fired

reCurse: I liked the part where it seems no one cared about RPS

eulerscheZahl: waste of speed turns

Astrobytes: "transform into one of the gouchokipars"

reCurse: I think we need another game where more time is spent figuring out what's going on than coding AI

eulerscheZahl: i hate for of war

eulerscheZahl: fog

Astrobytes: What, like RAIC with a 100 page problem statement/manual?

reCurse: No, I think we need a multi version of the codingame challenge

reCurse: That would be the apogee of everything CG

reCurse: No viewer, no statement, just a binary result win/lose

Astrobytes: Absolutely no clue given. Just "here you go"

reCurse: The ultimate incomplete information game

Astrobytes: That would certainly be a fitting end to this run of incomplete info contests. 'The WTF Quadrilogy'

reCurse: OOC is fine because that what the point of the entire game

Default avatar.png ike-fite: Im confused about the robot challenge

reCurse: PAC though looked like torture

reCurse: At least in top legend

Astrobytes: I didn't play it much but regular pacman would have been more fun I think

eulerscheZahl: i struggled to motivate myself writing a tracker

eulerscheZahl: same for UTG

NickStahl: If they changed it so that a PAC could look diagonal as well, would that fix it?

eulerscheZahl: for both my tracker is incomplete

eulerscheZahl: just no fog of war. game has enough complexity without

reCurse: They just need to change it so all information is given and something that leaves a bit more room than collect X > Y

NickStahl: I mean, still incomplete info, but no corner kills anymore (unless you take a risk), right?

reCurse: So redesign the whole thing :P

kovi: i think maybe resurrection could helped lower the randomness

Astrobytes: Well, since we're not allowed to have that other pacman multi, perhaps someone could make something similar with a better twist that FOW

Astrobytes: *than

reCurse: The pellets are buried under the ground and you need a radar to find them

Astrobytes: fffs :D

reCurse: Wait :thinking:

eulerscheZahl: and where do i store them once collected?

reCurse: You just eat them

reCurse: That's the twist

Astrobytes: Or hide them in the centre of the map to troll the opponent. They'll never know.

Astrobytes: Call it SquirrelMan

reCurse: So if the pacs stuff too many of them they get stuck in the walls

Astrobytes: Nice. Obesity avoidance game.

reCurse: Don't call it that

reCurse: Next thing someone will yell fat shaming

kovi: and they can choose getting eaten now, or eat more pellets and got stuck later

Astrobytes: lol true

Astrobytes: Healthy SquirrelMan

Astrobytes: *Healthy SquirrelEntity

reCurse: What about PETA?

reCurse: You forgot about PETA.

Astrobytes: Dammit Karen

Astrobytes: Healthy Entity Game

Default avatar.png ike-fite: FAT SHAMING (i just had to say that lol)

reCurse: Nice you're like half a page late

Astrobytes: HEG

Doju: Oh yup i had some terrible constants in my final submit

eulerscheZahl: while coding i was wondering several times: pacmans or pacmen?

reCurse: Are you assuming its gender

Default avatar.png ike-fite: i just noticed it i was afk for minute

eulerscheZahl: there is a "man" in the name

Astrobytes: Well, they told us they were men, so I guess it's safe

reCurse: So a manual is for guys?

struct: there is man in woman euler

eulerscheZahl: and 40 years ago game designers weren't that overly correct

reCurse: Alright where's my offensive checklist

Astrobytes: GenderNeutralual

reCurse: I think I'm almost done

reCurse: Haha just kidding not even halfway through

Astrobytes: Everything offends somebody somewhere

Default avatar.png ike-fite: ur not wrong

Astrobytes: Rather, somebody somewhere will be offended by something. Probably something you would never even think of.

eulerscheZahl: prof told about a colleague who had to rename a chapter in order to publish his book. from travelling salesman problem to salesperson

Astrobytes: :facepalm:

kovi: amen

reCurse: And the world was made a better place that day

Astrobytes: There are enough real issues rather than wasting time on such complete and utter nonsense.

reCurse: Those are real issues

Default avatar.png ike-fite: This is the reason i dont like world chats.

Default avatar.png ike-fite: Stuff comes out of nowhere

Astrobytes: lol, I apologise for the offence caused reCurse

Astrobytes: :P

kovi: real issue is to dfs or bfs...or dbf-s?

reCurse: dfs and bfs have equal rights

eulerscheZahl: but shall I use PascalCase or snake_case?

Astrobytes: Yes, don't be so directionalist, or dimensionalist either come to think of it.

eulerscheZahl: and is kovi insulted when i dislike Hungarian notation?

Default avatar.png ike-fite: so about the robot challange does your robot have to be balanced. Or can it be OP

AntiSquid: i see real pacmen when i go shopping, no wonder there are no pellets on the road

Astrobytes: I am triggered by Hungarian notation eulerscheZahl.

eulerscheZahl: which robot challenge?

Default avatar.png ike-fite: The one in fall

eulerscheZahl: next contest? we have no idea what the game will be about yet

Default avatar.png ike-fite: this one:

AntiSquid: actually they mentioned on discord they don't know internally either what it's going to be lol ike-fite

struct: UTG V3

AntiSquid: they didn't decide anything

jrke: hey plz can anybody convert this from python to c++ please

Astrobytes: Invisi-Pac: Return of the Pellet


Default avatar.png ike-fite: but its on the website

reCurse: All we know so far is there's going to be incomplete information

AntiSquid: they announced it now, get 50k registred and only 5k participating :D

reCurse: At popular request

AntiSquid: really ?

AntiSquid: hope you're joking

reCurse: Yeah

struct: jrke easier to google

Astrobytes: Zero information.

Default avatar.png ike-fite: i get that but what would be balanced

AntiSquid: what do you mean ike-fite ?

Default avatar.png ike-fite: what would be not OP

AntiSquid: what exactly are you on about? explain :/

jrke: struct can't find plz if u just tell what can we write if m in n: for c++

**AntiSquid confused

Default avatar.png ike-fite: did you just get on?

eulerscheZahl: "We should keep in mind that most competitors will never get to gold, and somehow games should target them mostly."

AntiSquid: i've rea chat history so don't think it matters when i got into the chat ike-fite

reCurse: Alright I'm triggered for real now

reCurse: Thanks euler


Astrobytes: wtf did that come from?


Astrobytes: Oh

eulerscheZahl: don't worry, not an official statement :D

Default avatar.png ike-fite: Ima look it up

reCurse: Incomplete information prevents simulation guys

AntiSquid: what about the people who don't get to legend because they don't even try as hard as they should? i think they deserve most attention :p

reCurse: Breaking news

Default avatar.png ike-fite: Did I Ask lol

reCurse: "seeing a game that was not fully dominated by simulations, giving a chance for the less-capable coder was a relief"

reCurse: Did he even read the thread?

Astrobytes: So, all future contests should have twice as many inputs as Code Royale, asymmetry, be completely random and have little-to-no relevant information. And a 1 ms time limit. That should keep them happy eh.

struct: Im just gonna pretend his post is sarcasm

Illedan: Who wrote that reCurse?

struct: check euler link Illedan

reCurse: Don't miss his followup

reCurse: We'll never create true AI with simulation

reCurse: We need if/else

Illedan: (╯°□°)╯︵ ┻━┻

Default avatar.png ike-fite: i love how the website just says get a job in full caps

struct: ah he did write something else

struct: let me read it

Astrobytes: "Those games had became mostly a feast of search algorithims, instead of favoring heuristics, logic and implementation of some kind of AI" dot dot dot

Illedan: Flip again.

reCurse: Absolutely no heuristic, logic or implementation in my CSB

reCurse: It's all brute force

struct: "We will never create a true AI just testing every possible solution."

Astrobytes: I mean seriously

reCurse: ezpz

AntiSquid: ike-fite

eulerscheZahl: we should guide him to RAIC where the game is so utterly complicated and convoluted that writing a sim is no fun

Default avatar.png ike-fite: im on a school chormebook so i cant rn

AntiSquid: but you still need a sim lol

reCurse: Well PAC wasn't dominated by search and sim

reCurse: So at that point...

Illedan: Beam search is not a search?

Illedan: hmm

reCurse: Yeah I know

reCurse: TIL

BeardedWhale: While that is obviously stupid nonsense, I do for real think having a contest without simulations is an interesting idea, if done correctly (e.g. by severly limiting calculation time).

reCurse: People keep fantasizing about that

jrke: thanks struct :)

reCurse: I don't understand why

Astrobytes: Don't be searchist reCurse

reCurse: And what it would even look like

Illedan: Even at 10 ms you can do some simulations..

struct: I think the solution is to have a simulation contest, but only D is allowed

reCurse: Because it would be a true test of intelligence?

eulerscheZahl: will just favor C++ as you don't have garbage collection peaks

reCurse: There's so much fallacy IMO

eulerscheZahl: and D of course

Astrobytes: Yes. D only. 0.1ms time limit.

Snef: What is it with D ?

reCurse: You're programming a glorified calculator

eulerscheZahl: on there was a game that is basically Tron (but long before CG did it)

AntiSquid: what if you have most stuff precomputed and stored in arrays or whaytever BeardedWhale ?

struct: So we should write a contest based on if a language can do well on it or no?

kovi: or a game where you gain resource by answering fast

eulerscheZahl: and you had to code it in java with a runner making sure that you don't exceed 10k instructions per action

kovi: i actually like the idea

reCurse: CG's framework prevents that kind of dynamic

Astrobytes: Snef, since the D Brigade flooded CG forum with requests for D and all it's amazing benefits, it's become something of a CG meme. Especially since none of them are actively here using it.

Snef: Oh i see

reCurse: But yeah I'd like frame-based games

reCurse: Just not possible on CG

Astrobytes: And it's 3.14 * 10^42 faster than C++ Snef ;)

AntiSquid: hey it's a nice language imo, but those guys are really full of bullshit, they basically said they are going to be active on CG if it's added

reCurse: Still completely orthogonal to the whole "simulation is the devil" axis

Default avatar.png JBM: some game where you have to parse the entities from the view on your own

eulerscheZahl: that's the origin of the D meme here

Default avatar.png JBM: more real life IA

Default avatar.png JBM: *AI

Default avatar.png JBM: where shooting isn't a once per turn thing, it's more like "start pulling trigger"

reCurse: I also don't understand the entire argument of "this game is more friendly to less capable coders, therefore I have more of a chance"

reCurse: ??????

reCurse: Is this the basis of the "simulation is bad" camp?

AntiSquid: and the characters have a speech bubbles and you need to do sentiment analysis to decide whether or not you're supposed to shoot at them !

Default avatar.png JBM: with little lily and her quantum physics book

Astrobytes: On the whole "I'm a noob, searching is unfair and stupid thing": When I first started on CG I knew next to nothing about any of that, I muddled my way through Code Royale then immediately set about trying to learn search methods and whatnot. It was (is) an exciting challenge

reCurse: Do the skills of the better coders magically disappear? Or they were stupid to begin with because all they did was brute force brrr

kovi: maybe more enjoyeable experience been there when i was lazy to (full) sim

kovi: like in raic :)

AntiSquid: but you have the random aim there

eulerscheZahl: you didn't fully sim last RAIC?

kovi: well, in the end almost full

Default avatar.png ike-fite:

kovi: but not in pacman

eulerscheZahl: ah. i don't sim collisions for pacman

Default avatar.png ike-fite: Ive been working on this

eulerscheZahl: just try to avoid them. and not even that is well implemented as i didn't feel like it

Default avatar.png ike-fite: not trying to spam or anything

reCurse: Not clicking on a link that says "authorize" with unknown ids

AntiSquid: looks dodgy indeed

kovi: (and of course i lost on meanmax without proper collisition)

AntiSquid: ike-fite it's too risky to keep you unbanned, AutomatonNN execute

AutomatonNN: what do you mean by the same?

eulerscheZahl: for meanmax my first day was copy-pasting the referee and hitting compile until there were no more erros

Default avatar.png ike-fite: i typed it out so its most likely wrong

eulerscheZahl: errors

AntiSquid: what did you link ike-fite ?

Default avatar.png ike-fite: bot

Default avatar.png ike-fite: discord

Default avatar.png ike-fite: 1 sec

AntiSquid: that's not how you link a bot

AntiSquid: not for discord

Default avatar.png ike-fite: its worked before like 3 times

Csipcsirip: is it possible to just copy paste the pacman referee and comment out the fog thing and publish it as a new multi ?

AntiSquid: normally they're on sites like this one:

Default avatar.png ike-fite: tbh im not to high of a level on this account anyway

Astrobytes: lol Csipcsirip, I think CG might have something to say about that

Marchete: eulerscheZahl your same bot is now 4th?

AntiSquid: your point being ike-fite ?

reCurse: I don't see why not

eulerscheZahl: pushed up a bit Marchete. but i think it's stronger than the 14th place it got in the contest

Astrobytes: It's that LB bug again eulerscheZahl

Csipcsirip: yes I'm afraid too CG guys would take it as an insult

AntiSquid: your brother also got pushed

eulerscheZahl: we should really report that leaderboard bug

reCurse: It's already been reported no?

eulerscheZahl: i mean ceg is clearly higher than his actual rank. so other players like me have to go down to allow this to him

eulerscheZahl: reCurse you missed that chat. we are trolling

Astrobytes: Absolutely.

reCurse: Oh.

eulerscheZahl: here's a short version

struct: You missed it

reCurse: That's enough internet for me today

eulerscheZahl: ValGrowth just shared his port mortem

Csipcsirip: yay my grid-UCB algorithm is working.

struct: "My bot was fine tuned to beat better bots and not weaker bots"

AntiSquid: he used chokudai search !!!

reCurse: CG's version of elo hell

eulerscheZahl: in case you are reading this: thanks for taking the effort to write this in English

AntiSquid: surely all native english speakers should pay reparations to the rest of the world

MSmits: hi

NickStahl: hoi

MSmits: what did you do to tick recurse off

Astrobytes: Showed him cegs "PM"

MSmits: ow

eulerscheZahl: quote ceg and a guy who hates simulations and therefor liked the contest

MSmits: did he write a separate PM or just the message that his rank was too low to be fair?

Astrobytes: Just that

reCurse: The PM thread gave me a headache

eulerscheZahl: just the unfair leaderboard

MSmits: most people dont even know what it means when they say they dont like simulations

reCurse: True AI is if/else

Astrobytes: And moaned about it in chat for a couple of hours (on and off)

reCurse: Feels like it should fit a "haha brute force go brr" meme

eulerscheZahl: they don't like to take the effort and learn these superior concepts

MSmits: any time you calculate what happens with y if you do x, you already simulate

AntiSquid: well the randomness might make it feel unfair so ...

MSmits: if you dont like that, then you're in the wrong place here

AntiSquid: i am happy i won the ranking lottery sort of

MSmits: the randomness is a different issue

MSmits: i meant simulation

MSmits: everyone with any kind of bot that goes beyond bronze simulates

reCurse: Reminds me of the whole "I'd be so good at starcraft but the whole twitch apm thing holds me back"

MSmits: even if they dont know they're doing it

reCurse: Nice meme

Astrobytes: lol, that's actually a thing reCurse? SMH

reCurse: I heard this so many times

reCurse: It's definitely a thing

Astrobytes: Jeez

reCurse: Think it's CG's version

eulerscheZahl: SMH? shaking my head?

Astrobytes: Yeah, or smacking my head

MSmits: I think when people complain about not being able to "simulate" they mostly mean they dont know how to write/adapt a search algorithm

Astrobytes: Shaking in this case

reCurse: He's also implying it's better not to

Astrobytes: Yes MSmits, and don't want to learn either, clearly

AntiSquid: shaving my head

MSmits: ah... well he's not forced to :)

Astrobytes: As all search methods are stupid, and not True AI™

AntiSquid: he did mean AGI by that no?

MSmits: really

MSmits: does he mean general AI ?

AntiSquid: i think so

MSmits: does he want his CG to also be able to trade the stock market?

MSmits: his CG AI

eulerscheZahl: i think he doesn't know in detail what this even stands for

kovi: actually ceg has a point besides the randomness in this contest, meta is different in certain rankranges

kovi: slightly different

MSmits: yes, randomness is an issue and it sometimes causes some unfairness

AntiSquid: definitely true for gold kovi

eulerscheZahl: legend too

MSmits: my jump from 83-> 33 for example

kovi: i dont comment on fairness, just the observation itself

AntiSquid: but mainly because of the somewhat more random bots in mid gold, if you managed to skip those then you get higher rank :p

eulerscheZahl: i resubmitted sometimes to climb faster and skip the lower region

reCurse: His point is symmetric

eulerscheZahl: 117 entries in my submit history

reCurse: Should he be higher ranked because he beats higher ranked bots, or lower ranked because he gets beta by lower ranked bots

reCurse: Or *maybe* it's exactly where he should be

MSmits: kovi ah ok... I think we just have to accept that there are games that have this issue of leaderboard randomness. You can try to solve some randomness that is inherend to the leaderboard system, but with pacman most of it was inherent to the game, not the leaderboard system

AntiSquid: there's no precise ranking anyway

MSmits: exactly

AntiSquid: i mean for pacman

MSmits: yea

kovi: yeah

kovi: btw, even with the randomness, top3 seemed totally valid

MSmits: i like to use the top csb as an example of how well the leaderboard *can* work if the game has a clear difference between bot strength

MSmits: 2 and 3 were switched with pb4s ranking kovi

MSmits: but 1 was clear winner

dbdr: good point reCurse about symmetry

kovi: i dont meant perfect, just pretty good

MSmits: yeah the top was ok, the randomness increased dramatically as you went down

Gonny: didn't 1 and 2 become 3 and 4 though?

MSmits: the thing is though, I was rank 33 at best and I could still beat the top guys with some percentage

MSmits: in other games, someone 10 ranks above you always beats you (like csb)

eulerscheZahl: and pb got a similar order at the top with a different method:


kovi: well, the whole point is to make 2^n ranking, what recurse mentioned :)

Default avatar.png JBM: reminds me of the ping pong scene in les bronzes

Csipcsirip: yeah payers in mid legend tended to go for uncertain kills. as my bot wasnt too avare of the opponent it could easily land in there

eulerscheZahl: of course we can debate if his method is correct or the opponent selection as a total

dbdr: JBM got a link?

Default avatar.png JBM: mmm

Gonny: damn Kovi stop resubmiting you're pushing me down! :D

Default avatar.png JBM: one that works for you or for me?

MSmits: eulerscheZahl the definition of "best bot" is not even that clear

MSmits: are you best when your bot is best at beating the top 3 other bots?

MSmits: or does it have to reliably beat everyone below that also

eulerscheZahl: i know what you mean. let's define 3 bots R P and S

dbdr: one issue is, people keep looking at their rank, while it's only an artifact

eulerscheZahl: R beats S, S beats P, P beats R

eulerscheZahl: who's the best?

MSmits: the rating is more accurate you mean dbdr?

Gonny: clearly P, it's before R and S in the lexicographic order!

MSmits: eulerscheZahl yes that is also an issue

AntiSquid: i think dbdr is saying the true rank is in your heart

reCurse: If there are 20 R bots, 30 P bots and 40 S bots, the best bot is obviously R

MSmits: i remember in XR, when Jolindien and I werent submitting, i was often pushed back to nr 1 again, because the only differences between our bots was that he could beat me 65%

MSmits: so whomever is submitting makes a difference

dbdr: only the (TS) score has some value

dbdr: it's the same issue as giving a number from an experiment without giving hte confidence interval

dbdr: meaningless

BenjaminUrquhart: oh hey I can now break my code without it meaning anything

BenjaminUrquhart: cool

dbdr: this actually points to an issue with matchmaking: it should use TS scores, not ranks

reCurse: It has its own pitfalls

reCurse: The best method is a mix of both

dbdr: yes?

reCurse: Yeah in Halite 3, the #1 guy was so far ahead he'd barely get any matches

MSmits: ahh yes

reCurse: So you'd need to stomp the top 5 to start playing vs him

reCurse: Very annoying

dbdr: ah, so halite does that?

reCurse: Yeah, with its own issues

dbdr: interesting

reCurse: They'd sample the gaussian distribution of TS

reCurse: Or something like that

dbdr: true, you could get into a silly state where nobody gets matches against you, so you never climb down :D

reCurse: Nah the bug was a bit more complicated

reCurse: Anyway

reCurse: Point remains

dbdr: ah, with that there's always a probability, but could be very small

kovi: didnt know that about halite (was too far from top)

MSmits: will there be more halite?

reCurse: There's "sort of" halite on kaggle

MSmits: but you dont like that right?

reCurse: But it's barely anything like it used to be

Astrobytes: Is it ML only, since it's on Kaggle?

reCurse: The platform is bad

reCurse: IMO

kovi: but i was also thinking about here how certain players (including me) got pushed to clear solo top and remain there till resubmit

MSmits: whats bad about it reCurse

reCurse: Python only and like 8 games max per day IIRC

Astrobytes: Ew

MSmits: ah thats sad

kovi: that is bad

struct: oh god

kovi: worse than raic

MSmits: though for games that you can simulate off line with not too much of a meta, it could be ok

reCurse: The halite platform itself is in stasis for an undefined amount of time

reCurse: In other words halite is dead

AntiSquid: i forgot how exactly the platform is but, weren't you able to train offline and submit a file with predictions ? so you could use any language offline?

AntiSquid: i just remember the jupyter like editor

reCurse: I'm not sure I get your question

AntiSquid: talking about the kaggle website

reCurse: Oh

reCurse: You train a model offline and submit it

reCurse: Then it gets temporarily tested against validators

AntiSquid: just the results i think

reCurse: Then the final run is done with a hidden set

reCurse: A bit like A*C did actually

reCurse: Nah needs to be the model

reCurse: Wouldn't work otherwise

AntiSquid: oh so python only indeed

dbdr: MSmits, I decided to build an OB for TTT

dbdr: not the ultimate :)

Default avatar.png JBM: OB?

MSmits: huh

MSmits: what is the purpose of this btw?

AntiSquid: isn't that already available ?

struct: opening book

Default avatar.png JBM: oh right

Default avatar.png JBM: thx

MSmits: i joined when you were already talking about it dbdr, not sure what the goal of it was

reCurse: Not an opening book as much as the solution for TTT

dbdr: of course it's just a test

dbdr: ttt can be solved in 5 minutes by writing a trivial minimax, even alpha beta is not needed

MSmits: yes, but why, do you want to learn how to automatically generate them with meta mcts?

dbdr: yes, a general technique

MSmits: oh ok

eulerscheZahl: there's your opening book:

reCurse: It's a lot of compute for a boring problem

reCurse: Randomized starts ftw

MSmits: most of my meta mcts also have a solver, if you do an opening book like that with my meta mcts technique, you would get 1 visit

dbdr: I remember a long time ago, you mentioned using TTT as a way to test an MCTS

dbdr: very good advice I think

dbdr: the solution is known and trivial

MSmits: yes, without a solver though :)

dbdr: this is the same idea for OB

MSmits: for plain mcts it's fine

MSmits: good way to test OB too I think

dbdr: I also plan to test it with a depth 1 greedy player

dbdr: a way to test the OB does not include moves that are not needed

MSmits: btw, if you write a minimax that goes 5 deep, you already solved uttt. There are no strategies that go deeper

dbdr: of course

MSmits: with depth 4, my bot would still sometimes make a mistake

MSmits: with TTT that is

dbdr: it's just a unit test, basically

MSmits: works

MSmits: also, meta mcts is quite slow, so you can run it for a quite a while and still get sensible data

dbdr: right now my depth 0 player looses 100% :D

MSmits: but your rollout games will be super fast so I dunno

dbdr: I need to add the learning

dbdr: I just layed down the architecture

MSmits: a uttt game in my meta mcts is between 1 and 3 seconds

dbdr: and you played millions of them?

eulerscheZahl: did i miss the moment of reCurse opening the UTTT leaderboard?

MSmits: i had a run that went to 1.8M

MSmits: my current one is at 1.4M

dbdr: 500 hours of CPU

MSmits: sure, that seems right

MSmits: just 1 core

dbdr: right

MSmits: i have it running in the background whenever my computer is on

dbdr: enjoying the noise of the fan? ;)

MSmits: not evne really because i want to win, i like seeing what happens, how the value of moves change and such, somehow its fun for me :P

dbdr: yes, sounds captivating

MSmits: i always have 1 game running

MSmits: a few months ago i stopped running yavalath, i can always resume that one

dbdr: which one is now?

MSmits: uttt

MSmits: I already fixed karlis o 's book change

MSmits: that was 3 hrs of run basically

MSmits: easy

reCurse: euler?

MSmits: so it's 100% win as P1 again if i want to submit :P

kovi: sound of fan: says the one with 500score in numbner shifting

MSmits: but I want a few more improvements

dbdr: MSmits so you set it to the state just out of your book, and play that subtree for long?

MSmits: yep

dbdr: how do you know when it fixed it?

MSmits: but its not workable unless the other person also has a book

MSmits: because I actually solve the game where his book ends :P

MSmits: it's solved after ply 25

MSmits: so i cant lose

dbdr: if you solve it, wouldn't it be faster with alphabeta?

MSmits: if he didnt have his book go so deep, this would not work

MSmits: not necessarily

MSmits: my regular mcts also solves really well

MSmits: check some onitama games

MSmits: it depends on how well the statistics guide

dbdr: ok, so it's comparable work with alphabeta search on that tree?

MSmits: yes, but do remember its a double solve

dbdr: depends which ones explores better

MSmits: i play a mcts from a meta mcts

MSmits: if the mcts solves on first turn, it reports a solved game

MSmits: the meta mcts then records it

MSmits: and solves further

MSmits: so basically, a game may end on turn 55, but the mcts knows this on turn 1 and reports a solve on turn 40 to the meta mcts

MSmits: the meta mcts already has many other solved branches and solves it up to 35 or whatever

MSmits: (the regular mcts doesnt start at turn 1 but at whatever depth the meta is at)

dbdr: right, so mcts solves a subtree

MSmits: yes

dbdr: the meta propagates that subtree higher if possible

MSmits: so i never see the end of a game in the meta mcts

MSmits: exactly

dbdr: makes sense

MSmits: so the karlis o branch is solved from 25, which is really shallow

MSmits: he should just play different moves or drop his book entirely

MSmits: i can keep doing this

dbdr: it's cute that branches have player's names :)

MSmits: it does now :P

MSmits: I also solved all miare m and re curse branches as p1

dbdr: similar to how chess openings have names

MSmits: if they drop their books, they will perform better vs me

MSmits: but i prefer they keep changing their books

MSmits: I enjoy the search :)

AntiSquid: "hands up, drop your book"

dbdr: Fahrenheit 451

Uljahn: "don't do any teccles moves"

MSmits: that helps too

MSmits: teccles heuristic makes you very deterministic

MSmits: so i have a point to start from

MSmits: though ply 12 is a bit hard to start from

MSmits: preferably 18 or so, then you're screwed

MSmits: I personally use teccles heuristic

MSmits: but I like it when people try to book me on that... then the book wars begin :)

MSmits: I know, it's weird.... some people like crossword puzzles and some are like me :P

MSmits: my biggest aspiration for uttt is figuring out whether it can be solved as a draw or as a win for p1

MSmits: you can get fairly certain about this if you run enough games

dbdr: that would be a huge achivement!

MSmits: yeah it's hard to tell

MSmits: normal TTT is even more unbalanced than uttt and its solved as a draw, so it's by no means clear

dbdr: enough games might not be anough if there is a narrow path

MSmits: hmm well

Doju: Oh huh...

MSmits: if it is a win for p1, then there are likely multiple ways, so you just have to find 1

Doju: turns out i've made my bot a looot worse with some features

MSmits: if it is a draw, then its probably harder

MSmits: draws are deep

dbdr: yeah. you still need to include all responses from p2

Doju: Interesting excel graphs in the making atm :D

MSmits: yes dbdr, but there are some transposition tricks as well for uttt

MSmits: they happen mostly late game

MSmits: if a board ends, it doesnt matter how it ended

dbdr: true

MSmits: it's a big O or a big X

dbdr: clever

MSmits: there's more like that

MSmits: the state space is far smaller than people think

MSmits: 3^81 is very naive

dbdr: sure

MSmits: I think it's below 10^30

dbdr: I computed the exact state space for TTT: 765, using all symmetries

dbdr: again, useful as a test, and practice

MSmits: for a TTT miniboard it's 8692 or 8962 , I forgot

MSmits: because you cant use symmetries

dbdr: right

MSmits: mind you that is half of 3^9 or so, so even here there are many states to remove

MSmits: 8962^9 = 3*10^35

MSmits: but a lot of states are impossible

MSmits: you need to have as many crosses as circles, also, it needs to be a state reachable by jumping from one board to another

MSmits: well or 1 cross more than circle

MSmits: if you randomly place 10 crosses and 9 circles on a uttt board, the chances you will reach a valid uttt state is less than 1 in a million i think

MSmits: would have to check, but thats my guess

MSmits: I can talk about this forver, but I need to do some work :(

dbdr: was interesting

dbdr: ttyl

MSmits: yup ttyl

struct: I already regret coming back to Yinsh

struct: Seeing this code

dbdr: eulerscheZahl #4 on pac2020

struct: They left the original name?

dbdr: "spring-challenge-2020"

struct: yeah

dbdr: lacks poetry I think

struct: SC20

dbdr: then FC20, then SC21?

dbdr: practical but boring

dbdr: and no indication what it is

dbdr: pac2020 says it better

struct: 2pac would be ideal

struct: 2 player pacman

Default avatar.png SabertheLost: so I managed to make my pacman think wall had pebbles. dropped like a stone :)

dbdr: hidden pebbles in walls, there' an idea :D

dbdr: secret rooms too

dbdr: only lacks a princess to save

Default avatar.png JBM: that entails a castle

struct: Code for community multies doesnt have to be public does it?

AntiSquid: you can call it SC20 (starcraft 20) i call it peckmen

eulerscheZahl: dbdr i think i'm too high right now. but might have been unlucky in the contest

eulerscheZahl: didn't submit anything when the multi opened

dbdr: I first put a different meaning in the "I'm too high right now" part :D

eulerscheZahl: :D

PatrickMcGinnisII: eulerscheZahl 4th? I'm seeing a pattern here

dbdr: interestingly, all people who havent resubmitted have a date from yesterday evening

eulerscheZahl: i'm "boring" in that regards. never even tried a single cigarette. and i don't drink alcohol either

dbdr: but whole submit history is preserved now, that's nice

eulerscheZahl: now that we don't need our wood bots anymore, we have them

dbdr: lol

struct: :D

dbdr: struct I think all referees should be public

struct: dbdr you dont wanna see this code

eulerscheZahl: except the CG sponsored contest

dbdr: I don't have to. I should be able to

dbdr: the reverse?

eulerscheZahl: public referee, pro open source

eulerscheZahl: some of my referees are a total mess too. not proud of them but i hate missing documentation so i released them

eulerscheZahl: i rushed that CG Funge in 1 morning and it's a total mess

dbdr: it's fine

dbdr: I mean in general, didn't look much at that one in particular

eulerscheZahl: it should just be there. doesn't matter if you need them. just giving the option

struct: I shouldnt reuse my old Yinsh code, but I want to rush it

eulerscheZahl: even if it's all with French variable names and no comments

kovi: referee with hidden tests? :o

eulerscheZahl: the validators of my puzzles are on github

eulerscheZahl: Illedan hardcoded 1 validator for Space Maze :(

eulerscheZahl: But I know ways to get those validators anyways (much harder now, CG restricted access to replays. when I published, it was easy). So give the same chances to everyone and just make them public

kovi: i thought that at least they needed to test-spam

eulerscheZahl: in the past you could: 1. play in IDE, get the replay ID 2. submit 3. play in IDE again

eulerscheZahl: validator IDs are somewhere between the IDE games

eulerscheZahl: and you could not open those replays in the browser but still download the json

eulerscheZahl: but some users didn't know that and submit-spammed for 2 or 3 days :D

AntiSquid: that's like some sort of CTF

eulerscheZahl: and at some point CG protected them. but only the puzzle API. you could still download them using the multiplayer replay API

AntiSquid: should have made some "honeypot" validators

kovi: oh, i c

eulerscheZahl: AntiSquid

eulerscheZahl: that was your quote, wasn't it?

reCurse: He's kind of right though

AntiSquid: yeah they're spying on english chat :o

reCurse: I've seen that search mentioned a lot in japanese PMs

AntiSquid: "It seems to be a meme like a mysterious strong exploration used by Japanese people in Kodoke overseas" what is Kodoke

eulerscheZahl: codingame

AntiSquid: yes i wrote that, i wrote it because 1 day legends are the real legends :p

WINWINWIN: I am doing codebusters right now and am in Wood 1, the boss started with 6 points above #2

WINWINWIN: I just submitted and brought the boss down by 3 points

WINWINWIN: But still quite behind

WINWINWIN: should I wait or resubmit?

AntiSquid: resub

AntiSquid: you'll reach retirement if you just wait


k4ng0u: I you consistently beat the boss resubmit :p

AntiSquid: he brought it down by 3 points

AntiSquid: i think the boss is well satiated of the beating

k4ng0u: if you just have 40/60 ratio fix your bot ;)

eulerscheZahl: you can bring the boss down with a 40% winrate on such an inflated score

struct: 55% is all you need

WINWINWIN: But I reached #2 and have a high winrate against the boss

eulerscheZahl: but no one will push you up. it's an old game with little activity. unlike the contest where everyone is actively submitting

WINWINWIN: almost 80%

jacek: whats link for connect 4?

AntiSquid: if only 40% win, then just submit and hope for 2-3 wins, then resubmit -> rinse and repeat


jacek: also, those comments connect 4 are hilarious

eulerscheZahl: but don't play it jacek. i enjoy my first rank

k4ng0u: well with a 40% win I would definitely try to improve the bot. it's nice to lower the boss elo but if you have no (little) chance to surpass him...

avdg: you don't like deserved first rank?

eulerscheZahl: guide them to codingame jacek :)

eulerscheZahl: is that why you wanted the link?

jacek: so youre 1st for now

AntiSquid: it's a struct contrib?

struct: yes

eulerscheZahl: fragile first, don't break it

struct: made in 1:30 hours iirc

AntiSquid: well we have tulips and daises so w/e

eulerscheZahl: i challenged you to do it in 2h

struct: true

struct: Only if I could finish Yinsh this fast

struct: :(

AntiSquid: i need to make a twitter too and tweet random nonsense

eulerscheZahl: just retwett them quoting you

avdg: blup bot?

AntiSquid: i am going to to do tht first euler

WINWINWIN: I submitted in connect4

WINWINWIN: random.randint(0, 6)


ShannonNorris97: How do you go back a league in bot programming again? I remember someone mentioning it before but I've forgotten

WINWINWIN: dont think its possible ShannonNorris97

inoryy: delete the account and re-create it

struct: Not possible

CyberLemonade: what's all this connect 4 talk about?

WINWINWIN: CyberLemonade its a contribution that is not yet accepted

ShannonNorris97: I believe someone showed it during the spring challenge where if you used a certain link it allowed you to try your code in a previous league


ShannonNorris97: thank you anyway

WINWINWIN: this is the IDE to play it CyberLemonade

CyberLemonade: thanks WINWINWIN

struct: ShannonNorris97 that link is not available anymore

ShannonNorris97: Okay, thank you struct :)

eulerscheZahl: i deleted it., sorry

eulerscheZahl: but you can upload it yourself:

WINWINWIN: eulerscheZahl how do you find the links for these demos?

eulerscheZahl: go to the official repo of the contest. download it and upload the zip on the contribute page

eulerscheZahl: i didn't find the link. i created it

WINWINWIN: Oh, thanks

struct: I think he means for connect 4

AntiSquid: don't you need a minimum level?

WINWINWIN: Yes, for connect 4

ShannonNorris97: It's actually for Ultimate Tic-Tac-Toe. I messed up in the first bit and now that bug's gonna be difficult to fix without being able to go back. Nevermind, thank you

eulerscheZahl: i think everyone can upload contributions?

WINWINWIN: You created the link?

struct: I posted the link here WINWINWIN, long time ago since the contribution was mine

struct: euler just saved the link

eulerscheZahl: you can also upload UTTT. the referee is public

WINWINWIN: Thanks struct

eulerscheZahl: there are more lost contributions

eulerscheZahl: like

CyberLemonade: ooh wow

AntiSquid: well captain sonar used to be a lost contribution

WINWINWIN: Can we approve the connect 4 contribution?

WINWINWIN: Seems interesting

eulerscheZahl: connect4 is weakly solved

CyberLemonade: wait does the connect 4 have any extra rules?

struct: no

eulerscheZahl: making it boring for the compete section

CyberLemonade: cause afair eulerscheZahl told me connect 4 is solvable

AntiSquid: well there's checkers on CG so ?

eulerscheZahl: is that solved?

struct: I think so

CyberLemonade: do we have tic tac toe?

AntiSquid: google says yes

CyberLemonade: that game has tons of possibilities

eulerscheZahl: we have ultimate tic tac toad

inoryy: tic tac toad?

AntiSquid: Checkers is the largest game that has been solved to date, with a search space of 5×1020.

struct: 5*10^20

eulerscheZahl: typo inoryy i meant toad toad toad

struct: maybe

AntiSquid: don't argue with me struct, i copied from google @_@

struct: 5x1020?

ShannonNorris97: CyberLemonade, I'm just getting starting the tic tac toe one now. It's really interesting because it's made up of 9 TTT boards, making an additional larger TTT board

AntiSquid: yes

struct: that is not large at all

inoryy: eulerscheZahl toad toad? toad!

eulerscheZahl: is that an ook reference?

inoryy: toad!

CyberLemonade: I meant actual TTT, not UTTT

CyberLemonade: it's much harder


inoryy: TTT is harder than UTTT?

struct: yes

CyberLemonade: by far

eulerscheZahl: is that the game version we have on CG?

inoryy: am I missing a joke or something

CyberLemonade: no joke we're all serious

struct: euler you mean the checkers one?

AntiSquid: well the "power to" part didn't get copied properly struct

eulerscheZahl: yes, checkers

eulerscheZahl: because there are different variants

eulerscheZahl: with men capturing backwards and such. i forgot the details

struct: yes

AntiSquid: then let's have othello 11x11, not fully solved yet

CyberLemonade: hmmmm


struct: 200 computers o.o

jacek: 10x10 othello sounds nice, to fsck up with those bitboarder

AntiSquid: !

inoryy: ?

jacek: though one could cheat and use int128

reCurse: You mean 12x12

CyberLemonade: why tho

eulerscheZahl: othello sounds easy to build

CyberLemonade: so we're getting one eulerscheZahl?

AntiSquid: could just take the checkers game and edit it a little :p

eulerscheZahl: i didn't say that CyberLemonade

CyberLemonade: :(

eulerscheZahl: but thursday is a public holiday in germany

struct: you can make one CyberLemonade

CyberLemonade: struct no knowledge of these interactive games

eulerscheZahl: and i had to take off on friday or file a special request to work (which i didn't)

AntiSquid: special request to work ? lol

CyberLemonade: dedication

eulerscheZahl: there are a few day when holiday is on tuesday/thursday

eulerscheZahl: then the company is closed on monday/friday

eulerscheZahl: which doesn't matter atm as i'm working from home

eulerscheZahl: but i won't compain about having a day off

mutluexe: hi guys, can't we edit vim key bindings?

eulerscheZahl: edit your vimrc but i guess your question is more about the online IDE?

mutluexe: yes in this online IDE :)

AntiSquid: why you go to settings in IDE, it shows under edit mode: classic, emacs, vim is this what you want?

AntiSquid: when *

mutluexe: nope i want to change escape key to inoremap jk for example

AntiSquid: i don't know vim so your joke went past me

eulerscheZahl: jk is scrolling up and down by default. that's all i understood

mutluexe: lul no problem :d i guess since this is an online ide there is no option for that

eulerscheZahl: there is an option for key bindings. no idea if it works for vim mode

AntiSquid: press F1

eulerscheZahl: that's what codingame uses

eulerscheZahl: maybe you find a guide there

mutluexe: checkout "inoremap jk <Esc>" better than using Esc

eulerscheZahl: or you use your offline editor and copy the code to the website. as most of us do

mutluexe: seems logical :d

mutluexe: thx

struct: There are extensions that do this for you, so you dont have to copy paste

eulerscheZahl: but i don't want to run an extra program just to copy my code. it's not that much effort to copy-paste

MSmits: same

MSmits: just dont accidentally copy it into the chat

MSmits: if the chance of this is over 1% you will do this probably at least once

eulerscheZahl: i was close once. not chat but private message to MK

MSmits: ah ok

eulerscheZahl: somehow clicked hos profile instead of the IDE

MSmits: i am paranoid about it

eulerscheZahl: as you like kitboga and AI i think i have a video for you

Astrobytes: Keep chat open in separate browser tab

MSmits: seen it already eulerscheZahl :)

Astrobytes: disableChat in the IDE one

eulerscheZahl: oh

MSmits: but thanks

MSmits: good idea Astrobytes

Astrobytes: I've never copy-pasted my bullshit, I mean code, publicly yet

struct: Me neither I must do this

MSmits: me neither

MSmits: well parts of functions, but on purpose

AntiSquid: what? nobody else uses the chat box as temporary storage for their bot?

Astrobytes: Speaking of the CG IDE, I quite like using it for puzzles. Multis/contests I use VS.

MSmits: i do use it for puzzles on the rare occasion i try one

MSmits: except the hard one. I would not do space maze in te ide

MSmits: the

Astrobytes: Well, yeah. There are always exceptions

struct: i just used notepad

Astrobytes: Fun fact: back in the day, circa 2001, I used to write perl in Notepad. Professionally.

Astrobytes: (only in emergencies)

eulerscheZahl: everyone knows that MS word is the best IDE


AntiSquid: so that kitboga script passed the turing test?

Astrobytes: lol, a classic eulerscheZahl, nothing beats the Brillant Paula Bean on thedailywtf tho'

eulerscheZahl: but she's brilliant

Astrobytes: Nah, just brillant, sadly

eulerscheZahl: oh, i never even noticed the missing i

Astrobytes: Made the whole thing twice as funny for me :)

eulerscheZahl: blue: 59th from contest red: 458th who wrote a better bot in a different language now. can we start public shaming?

Astrobytes: oof

dbdr: I don't believe that word IDE story :)

eulerscheZahl: how dare you to doubt thedailywtf?

eulerscheZahl: blasphemia!

dbdr: :innocent:

Astrobytes: I don't believe half the stuff on thedailywtf but some of 'em are still funny dbdr

dbdr: indeed

dbdr: I love the one where each function is a separate commit in version control

dbdr: then to call a function, you put its commit id as a comment, or sth like that

dbdr: a script assembles the complete file

Astrobytes: lol, there was one about storing JS functions in SQL

Astrobytes: *SQL database

Astrobytes: can't find it

Astrobytes: Actually might have been this one

AntiSquid: what for ?

struct: Now he is in legend euler

AntiSquid: retrieve function and parse it?

struct: But what a surpise anid still copy pasting

eulerscheZahl: or he's just good and didn't want to demotivate us in the contest

Zenoscave: eulerscheZahl Are we still using onaco IDE?

Zenoscave: monaco*

struct: if others got banned he also needs ban

Zenoscave: I thought it was updated

Astrobytes: Yep, still Monaco

eulerscheZahl: just different config

eulerscheZahl: the old IDE was ace editor btw

Astrobytes: Fixing the Ctrl-S issue was such a pleasure for me

Zenoscave: Oh right. Shudderring at the idea of ace editors

eulerscheZahl: i don't think that CG ever banned anyone

eulerscheZahl: just disqualify from contest

reCurse: On CG Ctrl+S should be a shortcut to submit

eulerscheZahl: and a multiplayer is not a contest

struct: I think Thibaud mentioned ban

struct: of smurfs at least

Astrobytes: reCurse that would be hell :D

struct: ah he did not copy paste on contest?

eulerscheZahl: remove from contest leaderboard. but account ban?

AntiSquid: no just removal from leaderboard

reCurse: Who's banned

eulerscheZahl: i just realized that even the emojis are kept

AntiSquid: only 18 accounts removed afaik

AntiSquid: what emojis?

eulerscheZahl: in the replay i just shared

Astrobytes: Ahh on SPEED moves

Astrobytes: lol

AntiSquid: ah

eulerscheZahl: btw one account removed was from the one asking me and ceg to buy our contest codes

AntiSquid: wouldn't matter they would still sniff out the similar bot if they wanted to


eulerscheZahl: i think she hates me now :(

Astrobytes: WTF! :D

AntiSquid: she? was that a date request?

AntiSquid: are you sure it's related to the contest?

eulerscheZahl: just going by the profile pic

eulerscheZahl: assuming genders again

AntiSquid: well lady boys want to be a called a she

Astrobytes: So what was with the insult?

AntiSquid: invitation *

Astrobytes: She was one of the disqualified squad of students submitting the same code that morning?

eulerscheZahl: i can't find her on the leaderboard anymore. So i guess she got kicked

eulerscheZahl: but even if she thinks it was me who caused this: i don't think so

eulerscheZahl: just regular cheat detection hitting her

Hjax: lol that chat log

eulerscheZahl: the insult came really unexpected to me

eulerscheZahl: well i kind of was expecting it when i saw that she messaged me. but instantly without the smalltalk

Hjax: why would you even cheat in a game like this

Hjax: whats the point lol

eulerscheZahl: university contest giving prizes to students

Hjax: ah, should report the user to their university :D

AntiSquid: > better grades > better jobs ?


eulerscheZahl: for the background story

aCat: yeh, interesting how the prizes will look like

eulerscheZahl: not the official prizes aCat

aCat: auh

aCat: I just came up in the middle of conversation

eulerscheZahl: just a university having additional prizes for their own students

aCat: and you know, I'm still bumped up

aCat: that's grat

aCat: which one?

AntiSquid: ceg has a point, 200$ is not enough

eulerscheZahl: i have no idea

aCat: better than nothing

AntiSquid: ah i agree on that aCat :thinking:

Astrobytes: aCat is still building the Super God AI, that's why all the Polish students from UoW have been participating recently. Training.

AntiSquid: maybe they're forced to do so Astrobytes

aCat: we're just starting

aCat: no need to worry

Astrobytes: Yet...

AntiSquid: next year they will be forced to reach legend?

eulerscheZahl: you don't scare me

AntiSquid: lots of dropouts

Astrobytes: Good to see so much participation though

Default avatar.png JBM: does that still give more value to that contest's CPs or has the formula changed agaon?

eulerscheZahl: biggest CG contest ever. and i thought the golden ages were over

eulerscheZahl: go to your profile. click your rank. expand the contest section

AntiSquid: it beat the accountant!

ZarthaxX: i thought the same

ZarthaxX: was nice to see CG still alive

AntiSquid: ok but why did CG want to have a big contest this time?

AntiSquid: why now ?

Hjax: apparently my meh performance in pacman was still enough to get me to grandmaster rank

eulerscheZahl: there's a fixed maximum and decay now

Alshock: crap maybe I should have tried to push a last version of my bot then, so many points missed

Hjax: next stop guru i guess

Hjax: only need twice as many CP as i have now

eulerscheZahl: ezpz

eulerscheZahl: -3v

Default avatar.png JBM: how is ur csb

Astrobytes: fix it Hjax

eulerscheZahl: i like how you wrote "ur" instead of "your" i did that wrong when imitating him initially

Hjax: i have the -3v csb bot already

Default avatar.png JBM: i know the character

Default avatar.png Sonex123: do someone has an idea?

Astrobytes: Madeleine's very quiet these days

Hjax: i dont have a good understanding of floating point games like csb anyway

Hjax: i dont think i can improve much

Default avatar.png JBM: MadKnife

Astrobytes: Perhaps he got a MadWife

eulerscheZahl: a MadMade

struct: Hjax you can always follow magu s tutorial

Astrobytes: MadMaid?

eulerscheZahl: that one

eulerscheZahl: (╯°□°)╯︵ ┻━┻

Default avatar.png JBM: I'm getting the "Directory src/main/resources/view/assets not found." exception when running either the skeleton or the TTT game using the CG SDK

Default avatar.png JBM: what am i doing wrong this time?

Astrobytes: Easily done eulerscheZahl, don't worry

struct: JBM maybe you dont have that directory

Default avatar.png JBM: I do

Default avatar.png JBM: it comes with the git bundle in both cases

struct: hmm

eulerscheZahl: i got that too when i tried to build and run from command line

Default avatar.png JBM: i checked the code

eulerscheZahl: worked with intelliJ, didn't investigate further

Default avatar.png JBM: it's in a specific FileNotFoundException block of a huge chunk of code

struct: skeleton doesnt come with assets folder created

Default avatar.png JBM: with a hardcoded path in the println

Default avatar.png JBM: so, really, it could be anything

Default avatar.png JBM: well, a missing file of sorts

Default avatar.png JBM: but really not necessarily that one

eulerscheZahl: it can't find the sprites needed to show the game

Default avatar.png JBM: mmm

Default avatar.png JBM: it's not even at "show" level yet

Default avatar.png JBM: that's before starting the http engine

eulerscheZahl: did you clone the contest referee or building your own game?

Default avatar.png JBM: i cloned the tictactoe example and the skeleton one

Default avatar.png JBM: the ones linked from the SDK docs

eulerscheZahl: how did you run it?

Default avatar.png JBM: mvn exec:java -Dexec.mainClass=SkeletonMain -Dexec.classpathScope=test

Default avatar.png TimothyDenOtter: yo, anybody know how to do Temperatures game in python3?

Default avatar.png JBM: (-Skeleton for the TTT one)

eulerscheZahl: there's some fily copying to a tmp directory and launching a server

eulerscheZahl: i don't know if you cover that

Default avatar.png JBM: i'm 80% confident that commandline worked last time

Default avatar.png JBM: well, i browsed that through the code

eulerscheZahl: i never tried it that way. works with intelliJ

Default avatar.png JBM: not sure what additional covering i need to do

Default avatar.png JBM: i don't want to have to install yet another ide :'(

eulerscheZahl: eclipse?

Astrobytes: "not sure what additional covering i need to do" - cover your eyes and bash the keyboard.

Default avatar.png JBM: this in addition to "i don't like an sdk dictating that i have to use one at all"

Default avatar.png JBM: tried that already Astrobytes

eulerscheZahl: and make sure to update to the latest codingame SDK version (unrelated to your execution issue)

Default avatar.png JBM: errrr

eulerscheZahl: just as the templates are outdated

Default avatar.png JBM: i mean, i just let maven download it with the rest of the half-internet it needed to compile

eulerscheZahl: and now you can do it again with version 3.13.1

Astrobytes: The SDK docs are not up to date?

Default avatar.png JBM: not much is :(

Default avatar.png JBM: eulerscheZahl: by editing that pom file?

aCat: yes

aCat: and import ass maven

Astrobytes: Everything comes back to that dam pom.xml file.

aCat: *as

Default avatar.png JBM: wgat's that

Astrobytes: Ass Maven :thinking:

aCat: yeah, I love java ;]

struct: <gamengine.version>3.13.1</gamengine.version>

Default avatar.png JBM: yeah, who doesn't

Default avatar.png JBM: still getting that exception

Default avatar.png JBM: with an additional warning now

Astrobytes: The last time I messed with a referee locally, I got it all working eventually in IntelliJ, but was so annoyed by the whole process I uninstalled it all, deleted all files

Default avatar.png JBM: java.lang.NoSuchMethodError: 'com.codingame.gameengine.module.entities.Sprite com.codingame.gameengine.module.entities.Sprite.setImage(java.lang.String)'

Default avatar.png JBM: yeah it's really not a pleasant experience

aCat: 1) did you manually reload all dependancies?

Default avatar.png JBM: lolno

Default avatar.png JBM: i don't even understand that sentence

aCat: 2) when importing project did you import as maven (not simply - form sources)

Default avatar.png JBM: i ran mvn compile and mvn test-compile

aCat: whad IDE?

Default avatar.png JBM: no ide

aCat: java

aCat: no ide

Default avatar.png JBM: errr

Default avatar.png JBM: openjdk14

Default avatar.png JBM: i think

aCat: I'm out

Default avatar.png JBM: well i didn't intend to have so much actual java writing to do

Astrobytes: aCat he's using the cmdline

Default avatar.png JBM: surely that ought to be *possible*

aCat: I know

aCat: but using java with commandline is too much for me

aCat: I can rarely make it working with idees

Astrobytes: Using Java is too much for me, even with IDEA

Default avatar.png Sonex123: nice

Default avatar.png JBM: using a java-based ide is likely too much for that box

Default avatar.png JBM: (it's the crash-stream one)

struct: I cant really help too, my only experience with java is with CG SDK

Astrobytes: Ah that one

Default avatar.png JBM: probably useless to report it as bug anyway

Default avatar.png JBM: it'll just get "i'll tell the devs"d

struct: All I do in IDE is load maven changes

Astrobytes: You can do this in VSCode if you set up the paths though right?

struct: I have no idea :(

Default avatar.png JBM: don't the ide's use maven under the hood anyway?

Default avatar.png JBM: this shouldn't be any different!

Default avatar.png JBM: this is so frustrating :[

Astrobytes: Shouldn't be different != isn't different unfortunately

Astrobytes: I was going to refer you to the discord channel for a brief nanosecond there.... Forum post?

Default avatar.png JBM: as i witness

reCurse: Yeah CG SDK works fine under vs code

reCurse: The only sane way imo

Default avatar.png JBM: :(

Astrobytes: That's good to know. IntelliJ and the other Java IDEs are... painful.

Default avatar.png JBM: RIP my RAM

Illedan: Anyone love to write statements? :P

struct: yes

Default avatar.png JBM: yes

Default avatar.png JBM: especially GOTO statements

Illedan: I need a statement for my contribution xD

reCurse: vscode is pretty well optimized, more than a java ide

Default avatar.png JBM: lol

Astrobytes: JBM is your man. He can write page long puzzle statements that trigger people all the time :)

Default avatar.png JBM: reCurse: yeah i'm giving it a run

Illedan: :D

struct: My rate is 0.5€ per line

Default avatar.png JBM: Astrobytes: you know i can also write normal statements, right?

Illedan: Make it 1 line struct. And I'll split it myself.

Default avatar.png JBM: the triggering part is a feature

Astrobytes: I prefer your more creative ones JBM :)

Default avatar.png JBM: heh

Default avatar.png mohammadhei05: hhhh

struct: Illedan is the game complicated?

Default avatar.png JBM: the ones where i got eZ to get out his dictionary

Illedan: Nope

struct: Do you want a statement like Yavalath?

Default avatar.png mohammadhei05: jbm

pb4: Hi

Default avatar.png JBM: hey pb \o

Illedan: Hi

struct: Illedan pictures in statement or not?


struct: I dont mind doing it

Illedan: Nah

Illedan: It's CSB optimization

pb4: First time I hear about that "chokudai search" (Valgrowth PM on the forum)

Illedan: Missed the output of the stub

AntiSquid: gifs struct

pb4: Is it a well known algorithm ?

eulerscheZahl: is that your TSP game that you always wanted?

Illedan: Nah

pb4: Can't say I understand it from the code extract he gives

Illedan: This is pure CSB runner

Illedan: To play with NNs

AntiSquid: inb4 pb4 ends up being twitted about

struct: pb4

Astrobytes: Was gonna say, looks veeeery CSB -y


eulerscheZahl: do you see the full track or always the next checkpoint only? :P

pb4: struct thanks, but it's the idea behind the search that I don't get

Illedan: You get the full track eulerscheZahl..

AntiSquid: val said it's basically like beamsearch

Illedan: And no laps, all are put in the same array

pb4: To start with a concrete question :

pb4: He writes in HStates[0]

pb4: does "some stuff in between"

pb4: and then reads a result in HStates[0]

pb4: The stuff in between never moves anything from HStates[t1] to HStates[t2] with t1 != t2

pb4: So.... why does he have anything other than HStates[0] ?

reCurse: pb4: It's a very popular algorithm amongst japanese coders, from my experience intepreting their PMs

reCurse: It's just a beam search variant

Default avatar.png JBM: it's a heap

Default avatar.png JBM: i'd expect the contents of [0] to change all the time

eulerscheZahl: i read it as a mix of beam search and A*

reCurse: No not A*

reCurse: It's still depth dependent

eulerscheZahl: oh true. still states[t]

eulerscheZahl: ignore me

Default avatar.png JBM: how could we

eulerscheZahl: and i was wondering how to do the scoring in a reasonable way to try different depths...

reCurse: My experience with beam search variants is there's no true way

pb4: On my specific question : what is the use of HStates[t] with t != 0 ?

reCurse: Keeps the best states found per depth

eulerscheZahl: iterative deepening

pb4: if (HStates[t].top == null) break;

pb4: Isn't that line always true for t!= 0 ?

eulerscheZahl: all dead

reCurse: No

reCurse: It pushes the next states in the t+1


pb4: +1 ?

Default avatar.png JBM: yeah

eulerscheZahl: HStates[t].push(NextState); should be t+1 i think

Default avatar.png JBM: where's the +1?

reCurse: There's a mistake in that code

pb4: Would make a lot more sense to me indeed :D

pb4: I'll imagine there's a +1 and re-read the thing then

ZarthaxX: pb4 on chokuda i twitter he says it


Default avatar.png JBM: i'm missing some kind of backpropag here

ZarthaxX: he said in one comment there is a typo

ZarthaxX: it should be a t+1

reCurse: \o/

eulerscheZahl: congrats ZarthaxX. with the URL you pinged anyways

ZarthaxX: translate the comments and you will see

ZarthaxX: eulerscheZahl ouch

Default avatar.png JBM: i see a beam of best first

ZarthaxX: now we are gonna get tweeted again

Default avatar.png JBM: but no selection

ZarthaxX: :D

reCurse: It's not really best first because it's still bound by depth first

eulerscheZahl: chokudaiWidth is the selection

Default avatar.png JBM: depth appreas constant

Default avatar.png JBM: yes, forward selection

Default avatar.png JBM: that's the beam part

reCurse: Selects by depth before best

eulerscheZahl: depth = maxTurns

struct: Now I have to put yinsh on hold, i want to try Illedan game

eulerscheZahl: poor MSmits

Default avatar.png JBM: reCurse: not sure what you ;ean

Default avatar.png JBM: *mean

Astrobytes: Why poor M Smits eulerscheZahl?

reCurse: A true best first like A* would select the best heuristic regardless of depth

reCurse: So depth has more precedence

reCurse: In his algo

Default avatar.png JBM: i see nested loops of depth/turns * beam width of simulation

struct: because once more Yinsh gets delayed Astrobytes

Default avatar.png JBM: and return what was given in indiscriminately

AntiSquid: but this time i tweeted first ZarthaxX, got your backs covered

reCurse: It's still iterative deepening

reCurse: So not best first

Astrobytes: I think tric trac wanted it more than Smits struct

Default avatar.png JBM: we're playing on words

reCurse: No it's important semantics

Default avatar.png JBM: i mean best first as a class of alg, no specifics

reCurse: Changes the exploration completely

ZarthaxX: AntiSquid lol ok

Default avatar.png JBM: ok

Default avatar.png JBM: but once we agree on that?

reCurse: I dunno, I wouldn't call minimax move ordering "best first" in any circumstance

Default avatar.png JBM: fine

Default avatar.png JBM: not my hill

reCurse: You're the one always fighting about proper semantics but not now? :D

Default avatar.png JBM: when they matter!

eulerscheZahl: search algos don't matter?

reCurse: But it matters more now than many other previous debates

Default avatar.png JBM: and yet even when i accept the change of terms you keep coming to the meta-semantics :)

AntiSquid: like him having no avatar?

Astrobytes: Nothing matters. /me engages nihilist mode

struct: search wont matter in future, euler is right, we only will need heuristics

eulerscheZahl: i don't even see a difference to beam search in that snippet

Uljahn: are those debates frequent on fr?

Default avatar.png JBM: ^ my point right there

reCurse: The expansion is different

Default avatar.png JBM: Uljahn: only when i'm awake

reCurse: It is actually complete

Default avatar.png JBM: well how do you select your beam?

eulerscheZahl: it stops at chokudaiWidth

reCurse: No

eulerscheZahl: which is the beam width

reCurse: That's where you're wrong

eulerscheZahl: huh?

Default avatar.png JBM: and tell us why?

reCurse: Given infinite time and memory it will be complete

reCurse: Just look more carefully

eulerscheZahl: aaaah

eulerscheZahl: it runs again when it reaches max depth

Default avatar.png JBM: so?

reCurse: Beam search is not complete

reCurse: This variant is

reCurse: Very important distinction

MSmits: best first search?

eulerscheZahl: that makes it an interesting idea

reCurse: There's more than just this variant btw

Default avatar.png JBM: so it's more of an "iterative-widening"

reCurse: Kind of

eulerscheZahl: i heard about wata search. but i only know the name

AntiSquid: ok name a few please

MSmits: oh ok you already said something abotu best first

eulerscheZahl: psyho mentioned it recently

eulerscheZahl: here on the chat

Astrobytes: wata search?

ZarthaxX: wat lol

Astrobytes: yo Zarthonium

MSmits: you already used Zartholomew right?

Astrobytes: Yeah

MSmits: kk

ZarthaxX: hi Astrobytus

ZarthaxX: MSmits lol

eulerscheZahl: Psyho: wata is way stronger than chokudai

ZarthaxX: did the choku user create this search?

reCurse: google gives nothing

Astrobytes: WATA: What A Terrible Algorithm

ZarthaxX: wtf is that eulerscheZahl

reCurse: Yeah that's from him

eulerscheZahl: chat history?

AntiSquid: "Psyho: wata is way stronger than chokudai " euler doesn't that mean wata is a stronger player?

MSmits: is everyone putting their own name in their search now

Default avatar.png JBM: you started it

eulerscheZahl: we were talking abot the search algo before

AntiSquid: euler in fact i remember that chat scroll up to kovi

MSmits: yea :P

AntiSquid: they were talking about players

AntiSquid: someone way stronger than 1 day legend :o

ZarthaxX: what is wata search lol

MSmits: wakawaka


struct: yw

eulerscheZahl: maybe it is the user

Astrobytes: wata is a user

reCurse: Still nothing about wata search

dbdr: LayCurse

dbdr: any connection? :D

Default avatar.png JBM: "stronger" is so vague

TheDefyer: Sorry y'all, I know this is random, and in the middle of a conversation, but I have a question about debugging code that I'm hoping someone can answer.

Essentially, I have a few variables that I want to check the values of while the game runs, and I'm not sure how/if I can find out what their values are set to.

eulerscheZahl: kovi: he is the strongest (if we consider topcoder open finals) Psyho: wata is way stronger than chokudai

Default avatar.png JBM: TheDefyer: write them to stderr

AntiSquid: it was a convo between him and kovi, scroll above i said it

eulerscheZahl: now i'm not sure anymore if he means the algo or the user

reCurse: LayCurse?

AntiSquid: user

eulerscheZahl: is that your wife?

dbdr: recurse:

Astrobytes: from this link:

Astrobytes: dammit dbdr :P

Default avatar.png JBM: reCurse: so for the record, if your aim *was* to help understanding, the connection I was missing was simply "it's an iterative widening beam search"

TheDefyer: JBM how do I send a message like that? lol I'm pretty new to this site.

Default avatar.png JBM: depends on the language TheDefyer

Default avatar.png JBM: there's usually an example in the stub provided when you start

reCurse: You think I was trolling?

reCurse: I was actually explaining it

TheDefyer: I meant a private message... like a whisper

Default avatar.png JBM: i don't know

reCurse: Not sure why you think otherwise

reCurse: Blame me for not finding the right combination of words for you I guess

eulerscheZahl: SRM is that short round with about 2h duration

Default avatar.png JBM: mostly because your explanation hinged on "look closely"

eulerscheZahl: not what the average codingame is interested in

dbdr: LayCurse could be reCurse pronounced by a japanese. R pronounced as L

Default avatar.png JBM: on code that had typos to begin with

Astrobytes: TheDefyer the red text appears when you mention a users name

Default avatar.png JBM: i'm not blaming

reCurse: dbdr: Could be, but since the original is written with roman letters, there's no alliteration

MSmits: typos? did they write it in docx JBM

reCurse: Or romanization

Default avatar.png JBM: wait did that meme reach here too now

reCurse: Forgot the word

MSmits: someone posted the meme :)

Default avatar.png JBM: translit?

eulerscheZahl: the LayCurse meme?

Default avatar.png JBM: that's begging to happen

dbdr: gtranslate says: "I commented because I remembered Lay Curse's 900 solution at SRM last time."

TheDefyer: OHHHHHH okay thank you!

pb4: I re-read the code, there's another thing that puzzles me.

MSmits: what is Laycurse? Is that reCurse when he is being lazy?

pb4: Do we agree that HStates[t].pop() means "return the biggest element and remove it" ?

Astrobytes: Sleeping, MSmits

Default avatar.png JBM: i do

MSmits: o

MSmits: did not know he slept

pb4: When is he ever adding anything to HStates[0] then ?

Default avatar.png JBM: there's only a single starting state

eulerscheZahl: initialization

pb4: He's adding something once at the beginning

Default avatar.png JBM: the "present"

eulerscheZahl: but part of the snippet you shared

pb4: then he'll remove it the first time he reads that element

Default avatar.png JBM: yes


reCurse: That's the initial state

Default avatar.png JBM: remove = explore and expand

eulerscheZahl: HStates[0].push(FirstState)

pb4: then.... he returns HStates[0].pop() ? Which should be == null

Default avatar.png JBM: that part's likely incorrect

eulerscheZahl: 22行目のHStates[0]はHStates[MaxTurn]の間違いです。

pb4: right

dbdr: posting an incorrect algo is a pro move

pb4: I need to learn japanese :D

Default avatar.png JBM: it's the part where you'll extract the first move of the best found instead

pb4: Does make more sense

eulerscheZahl: makes others think about it. now we understand it

eulerscheZahl: as pb4 asked and we all looked into it

MSmits: it would be easier for you to code a NN to translate it, but i think google already did that for you pb4

pb4: Yeah... NN don't seem to obey me that well these days -_-

MSmits: Teach it to understand French

pb4: They just don't want to learn how to play BR

Default avatar.png JBM: nobody understands french

eulerscheZahl: did you publish your ranking script btw?

Default avatar.png JBM: we just say fancy random syllables and answer to each other to maintain the illusion

dbdr: JBM shhh

Astrobytes: And vary it by department

Default avatar.png JBM: naturellement

AntiSquid: only pronounce half a word

Neumann: Are there Brave users around here ? I just installed it and the IDE player remains black :'(

pb4: So, this "Chokudai Search" would be somewhat equivalent to a depth-limited-beam-search-with-iterative-widening" ?

AntiSquid: write extra letters at the end

Default avatar.png JBM: and compress vowels

reCurse: Yeah

Default avatar.png JBM: did we talk about our rube goldberg numbering system yet?

AntiSquid: best example is quest c'est quel or whatever

Default avatar.png JBM: the internet meme was "qu'est-ce que c'est que ca?" i think

AntiSquid: the contraction is weird

eulerscheZahl: the 60*x+y?

MSmits: iterative widening seems very useful, mostly my beamsearch is excessively deep because i cant find a different use for my calc time

pb4: Seems like the iterative widening beam search would be better than Chokudai

Default avatar.png JBM: maybe even "qu'est-ce que c'est que cette chose-la" (which wouldn't really happen, as opposed to previous)

pb4: in terms of algorithm complexity

MSmits: not sure how to store the data properly between iterations of beam width

pb4: Regular beam search only requires the call to nth_element, which is linear

Default avatar.png JBM: expand?

MSmits: do you just do the whole search again pb4 ?

pb4: Whereas the priority queues in chokudai search are log(n) for each operation

dbdr: what is it that it is that this thing there?

MSmits: dbdr you sound like a broken google translation

eulerscheZahl: you still have to sort the nodes before expanding the next level in regular beam search

Default avatar.png JBM: but you can't just elect to generate the best k from a state can tou?

pb4: MSmits : yeah probably...

pb4: eulerscheZahl : no need to sort, nth_element is enough and linear

eulerscheZahl: oh wait. there was a faster algo for nth element

dbdr: MSmits literal translation of a real french expression

MSmits: ohh

Default avatar.png JBM: nth_element of what?

pb4: JBM : yes, that's probably a big difference

MSmits: well then i was right :P

dbdr: :P

eulerscheZahl: it's proven: i'm slow at thinking and typing

pb4: nth_element of the vector of states

Default avatar.png JBM: but it's not the best nth until you sort it

pb4: HA

MSmits: i need to figure out how that nth element thing works

pb4: Let me get you cppreference :)


MSmits: I always sort my beam

pb4: The element pointed at by nth is changed to whatever element would occur in that position if [first, last) were sorted. All of the elements before this new nth element are less than or equal to the elements after the new nth element.

pb4: Complexity : 1,3) Linear in std::distance(first, last) on average.

Default avatar.png JBM: yeah, best k is O(N)

Astrobytes: hm, didn't know that one

MSmits: wait, it's changed? Dont you lose something then?

MSmits: or do you change the pointer?

Default avatar.png JBM: that doesn't necessarily make it comparable to KlgN

pb4: Good thing about Chokudai search is that you won't be completely deleting states if they get out of the beam

pb4: Interesting algorithm :)

MSmits: ohh ok i get it now, it's a partial sort with respect to one element

Default avatar.png JBM: see it as a quicksort's pivot

MSmits: like 1 iteration of a quicksort

MSmits: right :)

Default avatar.png JBM: (that's how it's usually implemented anyway)

pb4: not really MSmits

MSmits: i mean what it does, not how it is implemented

pb4: There's also the fact that the algorithm makes sure that the pivot is actually the nth element

MSmits: yes, that too of course

Default avatar.png JBM: by recursion

MSmits: I like it

pb4: ^

Default avatar.png JBM: it *is* one of those algs i wouldn't have guessed on my own, and a very pleasant AHA moment

MSmits: if I were not so lazy I would change my hypersonic bot to use this

Astrobytes: fix ur lazy MSmits

MSmits: I'm LaySmits

Astrobytes: heh heh

struct: Illedan what does this mean

struct: "If the message is debug once, the game summary will contain additional information throughout the game. The referee will provide a double with the collision time occuring the previous round (or > 1.0 if no collision occured)"

ZarthaxX: this beam search version doesnt change the beam width tho right

Astrobytes: put "debug" as your msg at end of output struct

Default avatar.png JBM: it does, but it's non-obvious

AntiSquid: more likely to be emusmitso @MSmits

Default avatar.png JBM: each "timed" iteration adds 1 to the beam width

Default avatar.png JBM: there's a slidedeck hanging around

Default avatar.png JBM: that makes a lot more sense to me now we've had this discussion

MSmits: emu? Isnt that some animal?

AntiSquid: based on how they talk

pb4: it adds "branching factor" to the beam width


pb4: not 1

Illedan: struct, means that you get the collision time with the checkpoint for debug purposes

Illedan: MSmits:

MSmits: they dont look that much like me ?

Default avatar.png JBM: i'd say it as:

Default avatar.png mohammadhei05: :poop:

Default avatar.png mohammadhei05: fantastic\

ZarthaxX: okey thanks pb4 and JBM

Default avatar.png JBM: it adds chokuWidth*branchFactor to the list of queued states

MSmits: yeah I saw it Illedan, looks cool. Nice that you didn't just copy csb looks

ZarthaxX: it adds branching equal to choku width thingy?

Default avatar.png JBM: but only expands chokuWidth of them

ZarthaxX: for each tieration?

Default avatar.png JBM: so still 1 beam width the way i see it

Astrobytes: Was same in BR struct, output debug at first turn and get collision info

struct: I had no idea BR had that

Illedan: struct

Default avatar.png JBM: but this one's semantics too, i don't think anyone ever normalized which side of the expansion is *the* beam

Astrobytes: Well, I think it did

MSmits: :emu:

MSmits: nope

pb4: :)

Default avatar.png JBM: :ostrich:

pb4: Time to try this Chokudai Search on Illedan's puzzle :D

Illedan: :D

struct: Illedan where is this "double" given?

Default avatar.png JBM: and find wata

struct: after angle?

Illedan: A new line after that line in the gameloop

Astrobytes: wata lotta confusion

eulerscheZahl: Illedan what are these .DS_Store files?

Illedan: Dammit

Illedan: Didn't I gitignore them

Illedan: (╯°□°)╯︵ ┻━┻

eulerscheZahl: you kept adding them at OoC too

Default avatar.png JBM: torpedoes. fired.

Illedan: IDE files from VS

Default avatar.png JBM: oh my

Default avatar.png JBM: am i creating heaps of those right now?

BenjaminUrquhart: iirc .DS_Store is for Mac file indexing

Default avatar.png JBM: isn't that .finder shit?

Illedan: oh, thx BenjaminUrquhart

BenjaminUrquhart: JBM no

Astrobytes: JBM are you making/trying to make a multi or a puzzle? (just curious)

Default avatar.png JBM: lemme get that thumbdrive that collected mac poop the other time

Default avatar.png JBM: a multi

Default avatar.png JBM: don't hold your breath

Default avatar.png JBM: not one that's intended to get published

eulerscheZahl: who's the audience?

BenjaminUrquhart: I want that game of life one to get published

Astrobytes: Nice. I try not to, it reduces my life expecancy somewhat.

Astrobytes: *expectancy

Default avatar.png JBM: eZ some chap on #fr forgot his name

Default avatar.png JBM: it's their school AI projet

Default avatar.png JBM: it's suspected to have a closed solution, so not really ideal for publication

Default avatar.png JBM: but having the test arena would be nice

Astrobytes: Don't have to publish past WIP stage

eulerscheZahl: so you help someone whom you don't even know by nickname?

BenjaminUrquhart: Illedan correct me if I'm wrong, but isn't search race basically a solo CSB as an optim?

eulerscheZahl: that's dedication

Illedan: yes BenjaminUrquhart

Default avatar.png JBM: naw, it's just personal fun

BenjaminUrquhart: hmm

Default avatar.png JBM: but hey

Default avatar.png JBM: Y NOT BOTH

Illedan: I'm going to use it for myself to see how got I can get an NN on this stuff

Default avatar.png SabertheLost: rank 2. Comeone!

Illedan: *good


Astrobytes: @BenjaminUrquhart

BenjaminUrquhart: does it look like I read comments

Astrobytes: :D

Illedan: haha

eulerscheZahl: and i thought i exaggerated with 100 for CGFunge

Illedan: Damn, how do I make -3 vel -.-

struct: 500 seems overkill

Illedan: Just want to get 100%

Default avatar.png JBM: well shit

Default avatar.png JBM: it *does* work with vscode

Illedan: struct, I want to make it VERY hard to solve it offline :D

Default avatar.png JBM: (and extensions and tweaks and stuff)

Default avatar.png JBM: so thx reCurse

eulerscheZahl: if you want to solve it offline, you can...

Default avatar.png JBM: [but i still wanna cry]

reCurse: yw

Default avatar.png JBM: do people really use this?

Default avatar.png JBM: it's so slow

Astrobytes: VSCode? Runs OK for me

Default avatar.png SabertheLost: Great second place in broze =(

Default avatar.png JBM: it's like noticeable sluggier than firefox

Default avatar.png JBM: and let's not even start comparing with emacs/vim

Astrobytes: But it's not as slow as IntelliJ, that Bean thing, and Eclipse right

Default avatar.png JBM: so the magic was... /usr/lib/jvm/default/bin/java -Dfile.encoding=UTF-8 @/tmp/cp_nemu57r16q672gj2j96uavco.argfile Main

Default avatar.png JBM: now why didn't i think of that!

reCurse: runs perfect for me shrug

Default avatar.png JBM: on a gamer's rig

eulerscheZahl: share some info about your hardware

Default avatar.png JBM: it's, errr

reCurse: it's barely using a cpu and less than 150mb ram

Default avatar.png JBM: a 2-VCPU VM on my "lightweight" work laptop

reCurse: Maybe it sucks in linux

reCurse: shrug

Default avatar.png JBM: could be

reCurse: Or maybe your setup sucks :D

reCurse: (not hardware but config)

Default avatar.png JBM: i see a large java process

Default avatar.png JBM: 3G virtual 650M residency

eulerscheZahl: had some fun experience with a live session code sharing with illedan

Astrobytes: That'll be the JAva, not VSCode then

eulerscheZahl: me using VS code

Illedan: :D

Default avatar.png JBM: and an electron process 12G virtual 250M res

Default avatar.png JBM: my config... is the default!

Astrobytes: lol, heard about that one

eulerscheZahl: scrolled up and down, duplicating several lines of code a dozen times :D

Astrobytes: The ideal live coding platform

eulerscheZahl: then illedan revoked my write access :D+

Default avatar.png JBM: lol

Default avatar.png JBM: and that argfile is a 40-line -classpath

struct: c++ doesnt show errors anymore?

AntiSquid: was wondering the same thing the past 2 contests struct

AntiSquid: but apparently it's just that some types of errors don't show up anymore

Astrobytes: Yeah, the stacktrace is fked

struct: ah it was not stacktrace bug

struct: it was Illedan fault

struct: for no error message :)

Illedan: Oh

Illedan: :D

Illedan: Will fix

Default avatar.png JBM: i'm still not convinced i want to accept "having a shorter classpath" as a valid excuse for a different FileNotFoundException

struct: I wasnt outputing anything

AntiSquid: still think same happened in ooc

Astrobytes: What's the debug thingy for Search Race? Just output debug at the end as I thought?

Illedan: Yeah

Astrobytes: Cool

Illedan: But you need to read without it the first round

Default avatar.png Your_Lord_And_Savior: e

Astrobytes: Yeah cool

struct: for some reason the car doesnt seem as fast as CSB pod

struct: even on 200 thrust

Illedan: Increase speed? :P

Illedan: I didn't do much on that yet

struct: at least viewing wise

Illedan: Frame time is too slow yeah

Illedan: Set it to 5SX

Illedan: *5x

Astrobytes: you need +3 * vel struct

Illedan: I tried for 30 min to implement 3* vel -.- Would be faster to write the frikkin SIm

Astrobytes: :D

struct: im almost finished

Illedan: I need to know if the sorting order is correct and if the scoring seems right :D

Illedan: Should be asc right? When I want to minimize the time used?

struct: I think so

struct: never did optimization puzzle

Illedan: 74%

Illedan: (╯°□°)╯︵ ┻━┻

Illedan: Who made these testcases

Astrobytes: max number of CPs?

Illedan: 8


Illedan: Mapgeneratior ^

reCurse: Why an optim -_-

Default avatar.png JBM: what else?

Astrobytes: Yeah, I'm lazy rn and drugged up on painkillers, I'll read that tomorrow :P

AntiSquid: why the hate

reCurse: A multi where you have 2 bots optimizing the same problem

reCurse: Optims are flawed

AntiSquid: what about bulls and cows?

reCurse: Hardcode sucks

Illedan: reCurse, I'll add so many testcases that you can't hardcode :D

AntiSquid: so much hate, you need more sunshine in your life

reCurse: It's not hate

Default avatar.png JBM: not sure i see the link

reCurse: If you think it's hate, you're the one in need of more sunshine

Default avatar.png JBM: more testcase just means more hardcode

AntiSquid: i wouldn't mind

AntiSquid: i will go outside tomorrow morning if it's sunny

Default avatar.png SabertheLost: FINNALY, silver league!

AntiSquid: but there's a lot of negativity coming from you about optim

Default avatar.png SabertheLost: Now it´s time add real ai :)

reCurse: Oh no, negativity

reCurse: Guess we need a safe space

Default avatar.png JBM: should we make it optim-free?

Astrobytes: Triggered chat

Illedan: Optimize the safe space?

Default avatar.png JBM: need more safety

Default avatar.png JBM: MOAR

AntiSquid: "hardcore sucks"

reCurse: *hardcode

Astrobytes: Great optim idea Illedan

AntiSquid: missread

AntiSquid: alright i take it back, there's sparkly rainbow puffballs coming from you

reCurse: yay

Astrobytes: :rainbow: :unicorn:

Astrobytes: brb, need to go and cleanse myself after posting those

AntiSquid: i still don't see how bulls and cows can be hardcoded though

AntiSquid: i decided to split it up though by size of the numbers so i will optimize for each size differently when i get around to finally implement it

AntiSquid: i guess maybe that can be considered somewhat horded ?

Astrobytes: Zeno put me on to the idea of trampoline functions for B&C, hadn't heard of them. Still haven't worked on it.

AntiSquid: what are those?

Default avatar.png JBM: B&C?

AntiSquid: bulls and cows

Default avatar.png JBM: oh right

Astrobytes: Bulls and Cows 2, optim

Default avatar.png JBM: i think my mind is fully saturated on CG acronyms

Default avatar.png JBM: it just won't take any more

AntiSquid: BC2 :D

AntiSquid: before christ 2

Astrobytes: WDYM JBM WTF

Default avatar.png JBM: IKR

reCurse: LOL

AntiSquid: JBM is probably an acronym too

Default avatar.png JBM: here it goes again

Default avatar.png JBM: well, suggest ahead

Default avatar.png JBM: but maddy made the best one for now IMHO

AntiSquid: unless you were playing mortal combat in the old days where you only had 3 letters for your player name

reCurse: Jean-Baptiste de Montparnasse?

Default avatar.png JBM: classy

Astrobytes: Jean-Baptiste-Millefeuille

AntiSquid: i go with mortal combat arcade player name

AntiSquid: or was it street fighter?

Default avatar.png JBM: i don't remember street fighter having a concept of score

reCurse: It does

reCurse: SF2

Default avatar.png JBM: oh ok

Default avatar.png SabertheLost: so barly made it to silver, and still end up halfway to the top?

Default avatar.png JBM: well i don't remember it then

Default avatar.png JBM: whereas the mk one is very clear in my mind

Default avatar.png JBM: mk, mk, mk...

Default avatar.png JBM: mmm, nevermind

Astrobytes: Jean-Baptiste-Malade ;)

dbdr: HAL = IBM - 111

Default avatar.png JBM: that's the ++IBM one

dbdr: what's maddy's one?

Default avatar.png JBM: Java Bad Machine

dbdr: lol

dbdr: iterally!

Astrobytes: Yes but if you remember, HAL stands for Heuristic AL-gorithmic (and you can hear the sylabbles) :P

dbdr: how appropriate

Default avatar.png JBM: that's how i'm feeling about the CG SDK right now

Astrobytes: *syllables

dbdr: git clone

dbdr: mvn install

dbdr: done

Default avatar.png JBM: wait, wat

AntiSquid: John Bob Martin

Default avatar.png JBM: naaaaw, not enough

Default avatar.png JBM: whew

AntiSquid: i will remember that as your real name regardless of what you say from here on

Astrobytes: Java Bites Me

Default avatar.png JBM: oh good one astro

dbdr: what are you working on JJBM?

dbdr: which repo?

Astrobytes: oh no wait - Java Broke Me

Default avatar.png JBM: just getting the tictactoe (or skeleton, i'm not picky) to run out of vscode

reCurse: Takes a minute

Default avatar.png JBM: (and then the ai puzzle from #fr this afternoon)

struct: Illedan I dont know what is wrong

struct: but debug messages make AI act dumb

struct: or mes with refere

struct: mess*

Astrobytes: outputting first turn only struct?

Astrobytes: outputting "debug" I mean

struct: No

struct: i dont use debug

Uljahn: Jammin' Bob Marley

Snef: struct your talking about Search Race ?

struct: yeah

struct: Something seems wrong

Snef: yea iget bugs to

struct: or off

Astrobytes: Oh you mean just outputting any other message

struct: I think inputs are wrong

Default avatar.png JBM: good one Uljahn

Illedan: What are you trying to print?

Illedan: X Y THRUST

Snef: some checkpoints got wrong coord


struct: ^

Snef: my pod turn around a empty area

struct: EXPERT but what Snef mentioned

struct: im getting checkpoint coordinates on car inputs

Illedan: w00t

Snef: it's weird


dbdr: JBM

Default avatar.png JBM: install is fine

struct: Illedan this is my cerr for first testcase

Illedan: Snef on my game?


Default avatar.png JBM: it's "run the test server" that fails miserably

Snef: i know my mistake

struct: Do you give checkpoints twice?

Illedan: Yeah, there is no laps

Illedan: I give them all 3 times

Snef: i had a too little array for cps

struct: AH

struct: (╯°□°)╯︵ ┻━┻

Snef: didn't see it was 3* cps

Illedan: You don't have to read it 3 times though

Illedan: just use that cp counter

Illedan: First int is the total x 3

Astrobytes: JBM: J'aime. Bof. Merde.

Default avatar.png JBM: :+1:

reCurse: This is now canon

Default avatar.png JBM: maybe we should set up a vote

struct: So Illedan number of checkpoints give me 19

Astrobytes: :D

Illedan: uhm

Snef: 3*6 + start again ?

Illedan: yeah ^

Illedan: :D

Illedan: I forgot

Illedan: but yes

Snef: sad there is not leaderboard for optim contrib

Snef: i mean demo

Astrobytes: "I forgot but yes" - QOTW

Illedan: True

Illedan: QOTW?

struct: checkpointId in car will give me 10 or 4?

Astrobytes: hahahaha

Illedan: :D

Snef: what is your score Illedan ?

Astrobytes: Quote of the Week

Illedan: 99% and 65915.70000001

Snef: 100% 52771 :p

Astrobytes: Just winding everyone up with acronyms now

struct: Illedan, does checkpointId = the i in checkpoints loop?

Illedan: yeah

Illedan: :clap:

Snef: yes struct

struct: (╯°□°)╯︵ ┻━┻

Illedan: Tried to make it cleaner

Illedan: guess it was too hard for CSB veterans

AntiSquid: need to sign a PTBAU

Snef: are you using same physics from csb Illedan ?

Illedan: No, currently I'm only trying to code as minimal as possible to test stuff. But I regret it at every stupid IF I add :P

Astrobytes: Post-Traumatic-Bot-Action-Undo?

Illedan: Snef, did you have multiple submits with 100%? Is the correct one chosen as the best? (lowest amount of time)

Astrobytes: But IF-ELSE is the only way Illedan

Snef: i did only one

Illedan: Can you change something enough to have a better/worse score

Snef: sure

Illedan: just to see that the sorting asc is correct

Illedan: :)

Snef: seems to work

Snef: i have a better score now

AntiSquid: Astrobytes petition to ban acronym use

Illedan: Thx

Illedan: I got 2 on 99 % too and it kept the better

Illedan: good stuff

YurkovAS: Illedan is it possible to understand whats wrong in Search Race test #test85? I'm fail only this one.

Illedan: Gimme a sec, I'll give you a screenshot

Astrobytes: Nice AntiSquid

AntiSquid: for a moment i thougth you'd guess it since i said "sign a P..."

Astrobytes: My mind is numbed somewhat, earlier I would prbably have got it ;)

Astrobytes: *probably

AntiSquid: are you getting any better?

Astrobytes: Slightly less worse than when I went to hospital, but other than that no.

Illedan: YurkovAS

Illedan: YurkovAS, all testcases are here:

Astrobytes: Slightly less worse is a good sign though AntiSquid

struct: Illedan is this meant to be solved offline?

Illedan: Not when I add 500 validators ;)

YurkovAS: Illedan thanks

Illedan: Then solving it offline would be a different optimization in compressing the data :P

Astrobytes: :smiling_imp:

struct: 500 validators will make it hard to pass all validators with 1 submit

Illedan: Not with a decent search

Snef: best score at 52 237 for now waiting you struct :p

struct: I redid everything

struct: because I didnt see that the inputs were "wrong"

Snef: i have only one line cmon :(

Snef: if you do a search it won't be fun for now :p

Default avatar.png JBM: ok

Default avatar.png JBM: so the mvn exec:exec variant works

Default avatar.png JBM: but not the exec:java one

dbdr: mvn dependency:build-classpath -Dmdep.outputFile=cp.txt java -cp "target/test-classes:target/classes:$(cat cp.txt)" Main

Default avatar.png JBM: though it used to

Default avatar.png JBM: not sure i want to understand more than that now

dbdr: it's probably weird, I just don't use mvn, so just got the classpath out and use simple java :)

dbdr: that works

reCurse: So it's just CSB physics?

Default avatar.png JBM: mvn exec:exec -Dexec.classpathScope=test -Dexec.executable=java -Dexec.args='-cp %classpath Main'

Default avatar.png JBM: that one works

reCurse: I just export my NN and ezpz?

struct: I guess

dbdr: good too then :)

Illedan: Your NN is very bad at just driving?

dbdr: no IDE nonsense

Default avatar.png JBM: trying a new desperate thing

reCurse: Not if that's what it trains for

dbdr: JBM still desperate? doesn't it work now?

Illedan: I made it so I can use it for my own NN training :P

reCurse: Ahh

reCurse: Explains

Default avatar.png JBM: but it works for bad/unexplained reasons!

Default avatar.png JBM: that's fragile as hell

Default avatar.png JBM: professionally, i wouldn't let this slide

Snef: reCurse do you think that without opponent there will be as much difference between nn like yours and an ag ?

reCurse: Not as much difference

Snef: right

reCurse: It's pretty boring physics

reCurse: But the difference is I won't have to think about anything

reCurse: Just copy/paste code

dbdr: if you used mvn professionally it woud probably take 30 seconds :)

Default avatar.png JBM: took less than that to the guy on #fr who gave me the exec:java one the first time

Default avatar.png JBM: but now it doesn't work anymore

Default avatar.png JBM: i hate cg

reCurse: cg hates you too :hug:

dbdr: did you try mine?

Default avatar.png JBM: and they remind it to me daily

dbdr: one you got the deps, you don't need mvn

Default avatar.png JBM: dbdr not yet

Default avatar.png JBM: oh, explicit classpath build generation

Default avatar.png JBM: can't i squeeze that to a single line

dbdr: it's probably weird of CG to put this Main in test

dbdr: complicates things

dbdr: I tried to, only managed to generate a file named "-" ;)

Default avatar.png JBM: if you know a thing about java and want to suggest a good change, please do

Default avatar.png JBM: i don't have a standing here

dbdr: I know a lot about java

reCurse: Illedan this is the worst statement ever

dbdr: very little about mvn

reCurse: Congrats

Illedan: haha

Illedan: `Statement is not done yet.`

Default avatar.png JBM: i used to know a lot about java

dbdr: this is all mvn overcomplications

Illedan: And I just broke it

Illedan: LOL

Default avatar.png JBM: that's back when java was small

Illedan: Maybe I should just link to github. Remove everything else :D

dbdr: right, I also know Java up to 8

struct: javagod

Default avatar.png JBM: smaller than that

Default avatar.png JBM: 1.1 to 1.2

dbdr: I did that too

Default avatar.png JBM: what's so special about thte cg stub that it doesn't raise that exception in its own jvm, but does in the mvn one

dbdr: the exception means the classpath is not set properly

Astrobytes: The whole maven thing threw me off completely. I used to get it before.... a long time go

dbdr: I don't think mvn has a jvm, it just sets options

Default avatar.png JBM: "means"

Default avatar.png JBM: i like how you use that word

dbdr: mvn dependency:build-classpath | grep -v INFO

dbdr: that would avoid creating that file

Default avatar.png JBM: i'm attempting output to /dev/stdout

dbdr: :D

Illedan: Copying from BR2k and CSB into 1 statement without properly fixing stuff was a failure :D

Default avatar.png DragonJ: what amount should distance affect thrust? 0.1% is my current

Astrobytes: Better Call Struct

dbdr: mvn -q dependency:build-classpath JBM

dbdr: more simply :)

Snef: DragonJ which game ?


Default avatar.png JBM: that, er.... doesn't print anything at all

struct: lower better

Snef: what are ypi iso,g Yurkov ?

Snef: you using *

dbdr: mvn -q dependency:build-classpath -Dmdep.outputFile=/dev/stdout

dbdr: wtf

Illedan: Lowest is best Your_Lord_And_Savior

Illedan: wow

dbdr: but that one works :D

Illedan: YurkovAS

Illedan: Lowest = using less time

Illedan: And you need 100%

Astrobytes: lol, the first tab autocomplete was best

dbdr: JBM ^

Default avatar.png JBM: yup, better

dbdr: I don't want to try to understand why a tool would ever end up working like that :D

Default avatar.png JBM: where does that "mdep" come from?


Astrobytes: mvn-dependency?

Default avatar.png JBM: yeah, i mean

Default avatar.png JBM: it's nowhere in the help page

Default avatar.png JBM: mvn dependency:help -Ddetail=true -Dgoal=build-classpath

YurkovAS: Snef i'm use heuristic similar to -3*vel

Snef: and you also have 100%

Snef: ?

YurkovAS: yes 100% TIME USED 50509.2

Snef: noice

Illedan: reCurse, fixed the referee a little bit for you xD

AntiSquid: what are the best algos for langton's ant multi ?

AntiSquid: msmits not online anymore :(

Illedan: MinMax

Default avatar.png DragonJ: Snef CSB currently my code factors in distance at .1%

Illedan: Should I add tribunes to SR? :thinking:

AntiSquid: why not

Default avatar.png DragonJ: what should it be

AntiSquid: add Waldo in there too

Illedan: Smaller space for the map though

Astrobytes: tf are those?


struct: wtf

struct: 66%

struct: (╯°□°)╯︵ ┻━┻

AntiSquid: add 3 grandpas with a chair

Astrobytes: I know who Waldo/Wally is. I meant the tribunes

Default avatar.png DragonJ: snef you there?

AntiSquid: Tribune is a democratic socialist political magazine founded in 1937 and published in London, initially as a newspaper then converting to a magazine in 2001. While it is independent, it has usually supported the Labour Party from the left. Wikipedia

AntiSquid: well the gallery seats

Snef: yea DragonJ

AntiSquid: ah forgot the damn word

Astrobytes: Yea not sure that's quite the meaning we're looking for here

AntiSquid: stadium seats

Astrobytes: Ahhhh ok, the grandstands. Gotcha

Astrobytes: Don't think it's necessary tbh

AntiSquid: decoration

AntiSquid: or garnish

Illedan: The checkpoints are Trees from another game :D

Astrobytes: Excessive graphical fluff.

Astrobytes: (the 'tribunes' that is)

Astrobytes: imo, ofc, ymmv

AntiSquid: what about this definition


Astrobytes: Second definition is more appropriate

Astrobytes: But it's actually just French for 'grandstand', ie. the stadium seats

Astrobytes: As you said ;)

Default avatar.png JBM: the "magazine" def is also valid in french

Default avatar.png JBM: but i diverge

Astrobytes: Langue de merde :P

Astrobytes: Anyway, I'm off

Astrobytes: See you all tomorrow

AntiSquid: oh rude

AntiSquid: by

AntiSquid: gn8

struct: I cant evne get close

struct: wtf

AntiSquid: you only need a "decent" search

struct: I probably just have timeout

AntiSquid: and yet you blame the game

struct: Where did I blame the game?

AntiSquid: you didn't

struct: Yet you said I did

struct: w/e

AntiSquid: i know, weird

struct: Illedan can you check one thing?

Illedan: sure

Illedan: What?

struct: I guess its not that important, but the game seems to go 1 frame after game ends

struct: but the score remains the same

Illedan: Yeah, car moves 1 more

Illedan: But you wont get it as input

struct: I guess its fine

Illedan: I'll remove the first checkpoint as input btw. Since you never need it

struct: 0?

Illedan: Yeah, but if you use the checkpoint ID, you will never see the change

Snef: also update the checkpointID so it's 0 at start :p

Illedan: yeah

Illedan: that is the plan

Illedan: Made this in 4 hours. Everything can't be perfect xD

Illedan: Updated the graphics btw. Let me know if it is better

struct: viewer changed?

Illedan: And made the car faster

AntiSquid: make -3*vel meta

Illedan: yeah

struct: Seems nice

dbdr: S1: Some(EmpiricalStats { won: 2, lost: 7, drawn: 991 })

dbdr: \o/

Illedan: Do you want any tooltips on the viewer?

AntiSquid: x y ?

AntiSquid: or maybe the player message just like csb

Illedan: Message on the timeline

Illedan: Like, passed checkpoind N

Illedan: or finished the first round

Illedan: or ate a sandwish

struct: Game information: null

struct: is it timeout Illedan?

Illedan: hmm

Illedan: when does it happen?

Illedan: I updated with 0 indexed

struct: It was probably a timeout from me

Illedan: Let me know if you find something

struct: I need to fix my AI, I only get around 85%

Snef: -3vel ezpz struct

struct: What score with -3vel?

Snef: depend on what you had with that

Snef: but i'd say 50-53k

Snef: i'm at 52.237 with only -Xvel and one condition for thrust

struct: I think i just need to fix my sim

struct: My car sometimes stay like at 1 distance from checkpoint

Snef: ha you are doing sim

struct: I get around 37k points and failing many testcases

struct: failed test= 700 points

Snef: fix your eval + add depth

Snef: to fix staying in front of cp

Illedan: Added exhaust :P

Illedan: YOu need to refresh to see it

Illedan: Hmm, looks kinda wierd xD

struct: NIce lol

Illedan: Fun anyhow

Illedan: Drop me a PR if you want to fix something in the statement ;)

Illedan: I'll go sleep

Snef: would it be easy to add the same debug as csb ?

Snef: like seing speed vector and aiming

Illedan: I can add the same as BR2k easy. Would take one hour or so

Illedan: I'll add it to my list for tomorrow

Snef: nice

Illedan: Alright, cya

Snef: gn

struct: I got null error agina :(

struct: again*

Mino260806: HELLO !

reCurse: Alright almost done

reCurse: Passing tests

struct: Already

struct: damn

Mino260806: ....

Mino260806: :relaxed:

Mino260806: :upside_down:

reCurse: 99% :(

struct: what score?

reCurse: 33717

struct: Nice

struct: that 1 invalid gave you 700

reCurse: Let's try another one

reCurse: 100%

reCurse: 33696

struct: how much training time?

struct: I guess it doesnt need a lot

reCurse: 3 minutes or so

struct: lol

reCurse: No leaderboard?

Snef: no :(

struct: Not until its aproved :(

Snef: how's your sim struct ?

struct: Still bugged, I will fix it tomorrow probably, I have to go sleep now

reCurse: 33550

reCurse: Can't even share replays

Snef: yea that's sad

Snef: i wanted to see your bot

reCurse: Unless...

struct: I dont think its possbile to get a link because it was never shared

reCurse: Take that front-end:

struct: yeah we cant see it

struct: only you

Snef: unauthorized

Default avatar.png DragonJ: wow that was the closest match I have ever seen in CSB, they both were halfway on the point

struct: re curse what if you do

reCurse: That's what I did

reCurse: Oh well

struct: ah ok

reCurse: 33377

wlesavo: leet

reCurse: It does look like I'm making those number sup

reCurse: Only takes 0.01ms per turn too

Snef: i reused my csb code but it won't work :(

wlesavo: wonder how -3vel will do

Snef: 50-53k

struct: it will make you spin around checkpoints too much

struct: probably

reCurse: It's surprisingly difficult to upload clips online

reCurse: Without the whole youtube

reCurse: "Your GIF may violate our Terms of Service and has been blocked"

reCurse: wtf

struct: imgur?

struct: I use sharex


struct: very smooth

Snef: which testcase is it ?

reCurse: 19

Xlos: For coders strike back, do we ever get a list of all the checkpoints or do we just need to guess?

Snef: you'll have them in gold

Xlos: I feel like I'll need to code them to even get to silver

Default avatar.png DragonJ: Xlos I dont think so but it does feel that way

Snef: reCurse for you nn do you give all checkpoint as input or you only gives the one you are aiming plus one or two more ?

Xlos: Also does anyone know what the max speed and acceleration values are for coders strike back?

reCurse: All CP

struct: Xlos max thrust is 100

struct: on legend league is 200

iiAviator: What is the easiest bot programming one?

Xlos: Wait is thrust just straight up acceleration in the direction of choice? I thought there was some hidden rotation parameters that occured when you choose thrust

cegprakash: do we have the referee for fantastic bits?

Default avatar.png DragonJ: Xlos 604 is max speed

Default avatar.png DragonJ: xlos acceleration each turn is the previous turns movement * .85

Default avatar.png DragonJ: added on to previous turn

Xlos: thanks

Default avatar.png DragonJ: deacceleration is the same function but for decreasing

Default avatar.png DragonJ: and Xlos dont forget about drift

Xlos: Where did you find this info?

Default avatar.png DragonJ: its in gold info and it can be found through printing in one direction

Default avatar.png DragonJ: and drift info is from how it causes pods to occasionally spin around a checkpoint

Default avatar.png DragonJ: which can be fixed through changing thrust based on distance and angle

Default avatar.png DragonJ: and having a rounded print values is a need for example not going straight from 100 to 90

Default avatar.png DragonJ: and printing 0 than 100 is the same as printing 50

Default avatar.png DragonJ: assuming same point

Default avatar.png DragonJ: and changing x and y prints helps but I havent figured out how to do it without failing

Xlos: I'm just changing x and y, always keeping speed 100 rn

Xlos: it took too long to get working though

Default avatar.png DragonJ: Xlos that wont work your code will do circles infinitely around some checkpoints

Xlos: I'm not though

Default avatar.png DragonJ: what league?

Xlos: bronze

Default avatar.png DragonJ: this is my angle to thrust code

Default avatar.png DragonJ: (0, 5, 15, 30, 45, 60), \

       (100, 99, 95, 89, 89, 80)))

Default avatar.png DragonJ: but that is before adding distance into the equation

Xlos: I'm not using their angle, I use last velocity as pod direction (maybe it's the same idk)

Xlos: And then I normalize the angle between +-PI and change the xy of my thrust

Xlos: By adding 1/2 the angle in the opposite direction

Default avatar.png DragonJ: not the same but same concept

Default avatar.png DragonJ: you still need to factor in the distance like I do

Xlos: I don't

Default avatar.png DragonJ: ok why not?

Xlos: I don't go in circles close to the base because I tun further than the base is

Xlos: I just got to bronze 1 cause I just got it working

Default avatar.png DragonJ: still even if you print better than me which it sounds like you do, distance still needs to be factored into thrust

Xlos: I mean if I highlight the distance input of my code I don't use it anywhere in my code, it's 100% angle based and always 100 thrust

Default avatar.png DragonJ: always 100 thrust... I want to do that but how???


Xlos: Oof I have a random commented code in there but that's the logic I have

Xlos: Note complex multiplication is used to add angles

Xlos: Are you gold league

Default avatar.png DragonJ: sorta have code in gold and bronze currently

Default avatar.png DragonJ: different languages

Xlos: Ah cool

Zenoscave: What is the easiest way to do a priority queue (MaxHeap) in C#? Must I make one myself?

Xlos: No there is a prioirty_queue class

Zenoscave: sweet. in System.Collections.Generic?

Xlos: somewhere idk

Xlos: I always use the one bits header xp

Xlos: Oh wait I thought you said c++

Zenoscave: lol nope. C#

Xlos: Wow they don't seem to have a PQ big oof

Zenoscave: Yeah. That's what I'm seeing

Zenoscave: can a heap be done on a circular array structure easily?

Default avatar.png DragonJ: not easily C# is hard good luck

Default avatar.png DragonJ: I would see if anyone else using C# is online

Zenoscave: DragonJ... what does C# have to do with a circular array structure? Since there isn't a builtin one I am making a custom one not dependent on language.

Zenoscave: I meant more the algorithms

ZarthaxX: Zenoscave want to make a heap for the choku search?

ZarthaxX: lol

Xlos: Wow that algorithm I just used is good shit

Xlos: It just skyrocketed to beating silver as soon as I got out of bronze

Xlos: No need to code shield

Xlos: Ok maybe that's not true I'm stuck at rank 2

WINWINWIN: Anyone here has done codebusters?