Chat:World/2020-05-19
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: ?
cegprakash: https://www.youtube.com/watch?v=15Cs0FQ8vfw
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: https://prnt.sc/sj4sck
cegprakash: see the last paragraph
cegprakash: don't read the rest of spoilers
cegprakash: sorry wrongn nlinnk
cegprakash: https://forum.codingame.com/t/ocean-of-code-feedback-strategies/175885/23?u=cegprakash
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 https://www.codingame.com/replay/467441700
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: http://chat.codingame.com/pastebin/b1661409-637b-4523-aaf8-a78c19de9051
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++
jrke: http://chat.codingame.com/pastebin/2fdc7ff9-c1cd-43b6-a56d-ee48cdaa904a
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: https://forum.codingame.com/t/neural-network-ressources/1667/6?u=pb4
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 https://www.codingame.com/multiplayer/bot-programming/spring-challenge-2020/leaderboard
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
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 :)
WINWINWIN: Bye MSmits
WINWINWIN: :)
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
JBM: does that work with any game?
dbdr: can work with many at least
dbdr: I feel it can be formalized
JBM: does it make them undecidable, or just harder to?
dbdr: exponentially harder
dbdr: all games are solvable by minimax, no?
JBM: yeah, they're still finite known state, so same rules of solving
dbdr: I guess it can get interesting with inifinite branching factor ;)
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
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
JBM: minmax is really not the right term here
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
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 ;)
JBM: this can be read both ways
dbdr: better
dbdr: more important
dbdr: code is a detail of how to generate the data
JBM: but is generated data really data?
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
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
dbdr: JBM shall we not go into the fact that code IS data? ;)
dbdr: allright, allright
dbdr: reminds me of some game from Wales
dbdr: at the end, all that matters is values (e.g. data)
dbdr: Kaamelott reference
JBM: errr i'm kind of missing a few links here
dbdr: :)
JBM: comes twice in the series if i'm not mistaken
dbdr: there are several games. does this one come twice?
JBM: hard to prove they're the same
dbdr: this one is Le Sirop (sirup)
AbdelkrimBournane: WHATSAPP!
JBM: no wait actually i think i'v got them on the other hard drive
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
WINWINWIN: :)
Uljahn: why do you even need specific friends to learn python? all python community seems extremely friendly to me
WINWINWIN: Yes
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
SujalAI: Can someone tell me why my pacs freeze after turn 70
SujalAI: https://www.codingame.com/replay/467559329
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
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
SujalAI: This the code to get all the pellets in the map
SujalAI: http://chat.codingame.com/pastebin/986143d1-b621-4fa2-81c5-e5ba0821715c
SujalAI: I consider everything other than a wall as a pellet
SujalAI: And I delete the pellets which are in the same location as a pac
Adnmaster: wait
Adnmaster: no that will be error
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
SujalAI: The problem is that I can't get the map every single turn, it's a one time thing
SujalAI: It only comes on initialization
Adnmaster: you don't need the map every turn, it gives you the locations of the pellets
SujalAI: But only the pellets which are in sight
Adnmaster: yeah, i can't help you futher
SujalAI: I want all the pellets in the map
Adnmaster: in which league are you?
Adnmaster: rank?
SujalAI: overall rank is 3500 something
Adnmaster: with the pellets in sight code i got into 700th
Adnmaster: perhaps you can try that
SujalAI: The problem is some of my pacs go for the same pellet when I do that
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
SujalAI: How can I make them go another direction?
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
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
SujalAI: I know about that bug but I just ignored it
SujalAI: But I just realized 2 problems with my logic
Adnmaster: what is it?
SujalAI: If there are no pellets in sight then My pac freezes
Adnmaster: hmm...
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
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
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
SujalAI: This replay shows both problems with my logic:https://www.codingame.com/share-replay/467564094
MSmits: it just has cell.possiblePellet = true
MSmits: at the start
MSmits: except for the walls and the places where pacs start
SujalAI: How do you find out if the cell is empty?
MSmits: you see it
MSmits: update every turn.. all visible cells
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
SujalAI: So I should make a 2d array of all cells
MSmits: sure
MSmits: thats a good way to do it
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
SujalAI: Then how do i know if a cell is empty
MSmits: it gives you the value
MSmits: if it is 0 it is empty
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
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
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
Sonex123: has someone an idea?
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: http://chat.codingame.com/pastebin/92289e81-ba8a-4592-84e3-dc9b342d96dd
MSmits: and here i set possible pellets to false when i should be seeing them
MSmits: http://chat.codingame.com/pastebin/c9f1f7f7-3b20-4bb9-8ed3-b85369423b81
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 https://www.codingame.com/share-replay/467575121
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
jrke: https://www.codingame.com/replay/467586078
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
struct: https://www.codingame.com/multiplayer/bot-programming/yavalath
struct: https://boardgamegeek.com/boardgame/7854/yinsh
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
cegprakash: http://cgstats.magusgeek.com/app/spring-challenge-2020/cegprakash
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
cegprakash: http://cgstats.magusgeek.com/app/spring-challenge-2020/Gafagarion
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
WINWINWIN: my bad
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
WINWINWIN: they are surprisingle coherent
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
AlexanderPuchta: i think so, clashes dont start
StepBack13: :(
Joniboy2: shit
StepBack13: I should have won last clash, but my submission got 504'd. :((
**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: https://www.codingame.com/ide/puzzle/balanced-ternary-computer-encode
eulerscheZahl: fastest mode, hurry up
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
AlexanderPuchta: cant submit my results for puzzles
AlexanderPuchta: thats really annoing
cegprakash: just check the win rates of anybody close to me above me
cegprakash: http://cgstats.magusgeek.com/app/spring-challenge-2020/cegprakash
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
eulerscheZahl: https://pastebin.com/6FyWSYRm
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: http://maplecity.com/homepage/guest1.html
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/guestBook.pl 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 https://demo.123guestbook.com/
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
eulerscheZahl: http://chat.codingame.com/pastebin/04c14e5b-db57-46cb-8cea-3fb8c1eaae6a
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
Csipcsirip: http://chat.codingame.com/pastebin/25ea59b4-d700-4ff5-bbd7-bd8628867419
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
cegprakash: https://www.youtube.com/watch?v=zjN2tNt8i9U
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: http://ykawano.hatenablog.com/entry/2020/05/19/100723 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
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
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
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
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
ike-fite: This is the reason i dont like world chats.
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?
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?
eulerscheZahl: next contest? we have no idea what the game will be about yet
ike-fite: this one: https://www.codingame.com/contests/fall-challenge-2020/leaderboard/global
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
jrke: http://chat.codingame.com/pastebin/f2ba9091-5045-4612-bfa1-bf50e33e48ff
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.
ike-fite: i get that but what would be balanced
AntiSquid: what do you mean ike-fite ?
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
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
eulerscheZahl: https://forum.codingame.com/t/spring-challenge-2020-feedback-strategy/184113/31?u=eulerschezahl
Astrobytes: wtf did that come from?
struct: https://stackoverflow.com/questions/2340281/check-if-a-string-contains-a-string-in-c
Astrobytes: Oh
eulerscheZahl: don't worry, not an official statement :D
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
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: (╯°□°)╯︵ ┻━┻
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: https://youtu.be/LH-i8IvYIcg?t=59 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
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 hacker.org 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
JBM: some game where you have to parse the entities from the view on your own
eulerscheZahl: https://www.codingame.com/forum/t/poll-what-programming-language-would-you-like-codingame-to-support-next/99904 that's the origin of the D meme here
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 !
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
ike-fite: https://discord.com/api/authorize?client_id=70445916555639423&permissions252992&scope=bot
kovi: but not in pacman
eulerscheZahl: ah. i don't sim collisions for pacman
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
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
ike-fite: i typed it out so its most likely wrong
eulerscheZahl: errors
AntiSquid: what did you link ike-fite ?
AntiSquid: that's not how you link a bot
AntiSquid: not for discord
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: https://top.gg/
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 https://forum.codingame.com/t/spring-challenge-2020-feedback-strategy/184113/39?u=eulerschezahl
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:
eulerscheZahl: http://chat.codingame.com/pastebin/54f7fba0-ebcf-4740-b7f1-6f02c75737b7
kovi: well, the whole point is to make 2^n ranking, what recurse mentioned :)
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?
Gonny: damn Kovi stop resubmiting you're pushing me down! :D
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 :)
MSmits: huh
MSmits: what is the purpose of this btw?
AntiSquid: isn't that already available ?
struct: opening book
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: https://xkcd.com/832/
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
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
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 https://twitter.com/ValGrowth/status/1262771672332906497
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
WINWINWIN: :D
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
eulerscheZahl: https://www.codingame.com/ide/demo/8292209ca950fe69e9ab715bad4fb1d99a7d8c
jacek: also, those comments connect 4 are hilarious https://9gag.com/gag/aeDNdGv
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)
WINWINWIN: :P
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
WINWINWIN: https://www.codingame.com/ide/demo/8292209ca950fe69e9ab715bad4fb1d99a7d8c
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 https://www.codingame.com/ide/demo/8266462d136bc0f9f853dd517ef1cf8f2e3cc6
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
struct: https://i.imgur.com/OmD64sL.png
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: https://en.wikipedia.org/wiki/Solved_game#Solved_games
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: https://microsoft.github.io/monaco-editor/ 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 https://www.youtube.com/watch?v=Hx5R0Vnp6w4
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
eulerscheZahl: https://thedailywtf.com/articles/An-IDE-Impostor
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: https://www.codingame.com/replay/467697201 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 https://thedailywtf.com/articles/what-a-load
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: http://chat.codingame.com/pastebin/d55d6a26-a593-438a-ab2c-a6afff025407
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: https://prnt.sc/sipo2z https://prnt.sc/siqkxo
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
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: https://prnt.sc/sjvqgd 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
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
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
Astrobytes: Perhaps he got a MadWife
eulerscheZahl: a MadMade
struct: Hjax you can always follow magu s tutorial
Astrobytes: MadMaid?
eulerscheZahl: that one
eulerscheZahl: (╯°□°)╯︵ ┻━┻
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
JBM: what am i doing wrong this time?
Astrobytes: Easily done eulerscheZahl, don't worry
struct: JBM maybe you dont have that directory
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
eulerscheZahl: worked with intelliJ, didn't investigate further
JBM: it's in a specific FileNotFoundException block of a huge chunk of code
struct: skeleton doesnt come with assets folder created
JBM: with a hardcoded path in the println
JBM: so, really, it could be anything
JBM: well, a missing file of sorts
JBM: but really not necessarily that one
eulerscheZahl: it can't find the sprites needed to show the game
JBM: it's not even at "show" level yet
JBM: that's before starting the http engine
eulerscheZahl: did you clone the contest referee or building your own game?
JBM: i cloned the tictactoe example and the skeleton one
JBM: the ones linked from the SDK docs
eulerscheZahl: how did you run it?
JBM: mvn exec:java -Dexec.mainClass=SkeletonMain -Dexec.classpathScope=test
TimothyDenOtter: yo, anybody know how to do Temperatures game in python3?
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
JBM: i'm 80% confident that commandline worked last time
JBM: well, i browsed that through the code
eulerscheZahl: i never tried it that way. works with intelliJ
JBM: not sure what additional covering i need to do
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.
JBM: this in addition to "i don't like an sdk dictating that i have to use one at all"
JBM: tried that already Astrobytes
eulerscheZahl: and make sure to update to the latest codingame SDK version (unrelated to your execution issue)
eulerscheZahl: just as the templates are outdated
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?
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
Astrobytes: Ass Maven :thinking:
aCat: yeah, I love java ;]
struct: <gamengine.version>3.13.1</gamengine.version>
JBM: still getting that exception
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
JBM: java.lang.NoSuchMethodError: 'com.codingame.gameengine.module.entities.Sprite com.codingame.gameengine.module.entities.Sprite.setImage(java.lang.String)'
JBM: yeah it's really not a pleasant experience
aCat: 1) did you manually reload all dependancies?
JBM: i don't even understand that sentence
aCat: 2) when importing project did you import as maven (not simply - form sources)
JBM: i ran mvn compile and mvn test-compile
aCat: whad IDE?
aCat: java
aCat: no ide
aCat: I'm out
JBM: well i didn't intend to have so much actual java writing to do
Astrobytes: aCat he's using the cmdline
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
JBM: using a java-based ide is likely too much for that box
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
JBM: probably useless to report it as bug anyway
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 :(
JBM: don't the ide's use maven under the hood anyway?
JBM: this shouldn't be any different!
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?
reCurse: Yeah CG SDK works fine under vs code
reCurse: The only sane way imo
Astrobytes: That's good to know. IntelliJ and the other Java IDEs are... painful.
Illedan: Anyone love to write statements? :P
struct: yes
JBM: especially GOTO statements
Illedan: I need a statement for my contribution xD
reCurse: vscode is pretty well optimized, more than a java ide
Astrobytes: JBM is your man. He can write page long puzzle statements that trigger people all the time :)
JBM: reCurse: yeah i'm giving it a run
Illedan: :D
struct: My rate is 0.5€ per line
JBM: Astrobytes: you know i can also write normal statements, right?
Illedan: Make it 1 line struct. And I'll split it myself.
JBM: the triggering part is a feature
Astrobytes: I prefer your more creative ones JBM :)
struct: Illedan is the game complicated?
JBM: the ones where i got eZ to get out his dictionary
Illedan: Nope
struct: Do you want a statement like Yavalath?
pb4: Hi
Illedan: Hi
struct: Illedan pictures in statement or not?
Illedan: https://www.codingame.com/ide/demo/84237264ea233365577df010c3a68883d86556
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 https://ideone.com/nQQQa8
Astrobytes: Was gonna say, looks veeeery CSB -y
Illedan: http://chat.codingame.com/pastebin/d7f39854-35ad-467d-90a6-6a76618adad2
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
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
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: http://chat.codingame.com/pastebin/e739e328-3afd-41f5-9463-f3f48e6d9c98
pb4: +1 ?
eulerscheZahl: HStates[t].push(NextState); should be t+1 i think
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
ZarthaxX: https://twitter.com/chokudai/status/713979313377255425/photo/1
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
JBM: i see a beam of best first
ZarthaxX: now we are gonna get tweeted again
ZarthaxX: :D
reCurse: It's not really best first because it's still bound by depth first
eulerscheZahl: chokudaiWidth is the selection
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
JBM: reCurse: not sure what you ;ean
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
JBM: i see nested loops of depth/turns * beam width of simulation
struct: because once more Yinsh gets delayed Astrobytes
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
reCurse: No it's important semantics
JBM: i mean best first as a class of alg, no specifics
reCurse: Changes the exploration completely
ZarthaxX: AntiSquid lol ok
JBM: but once we agree on that?
reCurse: I dunno, I wouldn't call minimax move ordering "best first" in any circumstance
reCurse: You're the one always fighting about proper semantics but not now? :D
eulerscheZahl: search algos don't matter?
reCurse: But it matters more now than many other previous debates
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?
reCurse: The expansion is different
JBM: Uljahn: only when i'm awake
reCurse: It is actually complete
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?
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
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
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: https://cg.spdns.eu/wiki/Chat:World/2020-05-14 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
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: https://twitter.com/not_522/status/426783612910829568
struct: yw
eulerscheZahl: https://tco20.topcoder.com/members/wata maybe it is the user
Astrobytes: wata is a user https://www.codingame.com/profile/d8b6d1add8fa842d5f3cb1925edf6a503455012
reCurse: Still nothing about wata search
dbdr: LayCurse
dbdr: any connection? :D
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
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: https://wata-orz.hatenadiary.org/entry/20100910/1284108575
Astrobytes: from this link: https://wata-orz.hatenadiary.org/entry/20100910/1284108575
Astrobytes: dammit dbdr :P
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.
JBM: depends on the language TheDefyer
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
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
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
JBM: on code that had typos to begin with
Astrobytes: TheDefyer the red text appears when you mention a users name
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
JBM: wait did that meme reach here too now
reCurse: Forgot the word
MSmits: someone posted the meme :)
eulerscheZahl: the LayCurse meme?
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
MSmits: o
MSmits: did not know he slept
pb4: When is he ever adding anything to HStates[0] then ?
JBM: there's only a single starting state
eulerscheZahl: initialization
pb4: He's adding something once at the beginning
eulerscheZahl: but part of the snippet you shared
pb4: then he'll remove it the first time he reads that element
eulerscheZahl: https://twitter.com/chokudai/status/713979313377255425/photo/1
reCurse: That's the initial state
JBM: remove = explore and expand
eulerscheZahl: HStates[0].push(FirstState)
pb4: then.... he returns HStates[0].pop() ? Which should be == null
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
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
JBM: nobody understands french
eulerscheZahl: did you publish your ranking script btw?
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
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
reCurse: Yeah
JBM: did we talk about our rube goldberg numbering system yet?
AntiSquid: best example is quest c'est quel or whatever
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
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
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
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
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
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 :)
pb4: https://en.cppreference.com/w/cpp/algorithm/nth_element
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.
Astrobytes: hm, didn't know that one
MSmits: wait, it's changed? Dont you lose something then?
MSmits: or do you change the pointer?
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
JBM: see it as a quicksort's pivot
MSmits: like 1 iteration of a quicksort
MSmits: right :)
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
MSmits: I like it
pb4: ^
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
JBM: it does, but it's non-obvious
AntiSquid: more likely to be emusmitso @MSmits
JBM: each "timed" iteration adds 1 to the beam width
JBM: there's a slidedeck hanging around
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
MSmits: https://animals.howstuffworks.com/mammals/emu.htm
pb4: not 1
Illedan: struct, means that you get the collision time with the checkpoint for debug purposes
Illedan: MSmits: https://www.codingame.com/ide/demo/84237264ea233365577df010c3a68883d86556
MSmits: they dont look that much like me ?
ZarthaxX: okey thanks pb4 and JBM
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?
JBM: but only expands chokuWidth of them
ZarthaxX: for each tieration?
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 https://github.com/Illedan/CGSearchRace
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: :)
pb4: Time to try this Chokudai Search on Illedan's puzzle :D
Illedan: :D
struct: Illedan where is this "double" given?
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
Illedan: IDE files from VS
JBM: am i creating heaps of those right now?
BenjaminUrquhart: iirc .DS_Store is for Mac file indexing
Illedan: oh, thx BenjaminUrquhart
BenjaminUrquhart: JBM no
Astrobytes: JBM are you making/trying to make a multi or a puzzle? (just curious)
JBM: lemme get that thumbdrive that collected mac poop the other time
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
JBM: eZ some chap on #fr forgot his name
JBM: it's their school AI projet
JBM: it's suspected to have a closed solution, so not really ideal for publication
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
JBM: naw, it's just personal fun
BenjaminUrquhart: hmm
Illedan: I'm going to use it for myself to see how got I can get an NN on this stuff
SabertheLost: rank 2. Comeone!
Illedan: *good
Astrobytes: http://chat.codingame.com/pastebin/92e2967f-aff9-451f-9e79-66a6343f6d94
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%
JBM: it *does* work with vscode
Illedan: struct, I want to make it VERY hard to solve it offline :D
JBM: (and extensions and tweaks and stuff)
eulerscheZahl: if you want to solve it offline, you can...
reCurse: yw
JBM: do people really use this?
Astrobytes: VSCode? Runs OK for me
SabertheLost: Great second place in broze =(
JBM: it's like noticeable sluggier than firefox
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
JBM: so the magic was... /usr/lib/jvm/default/bin/java -Dfile.encoding=UTF-8 @/tmp/cp_nemu57r16q672gj2j96uavco.argfile Main
JBM: now why didn't i think of that!
reCurse: runs perfect for me shrug
eulerscheZahl: share some info about your hardware
reCurse: it's barely using a cpu and less than 150mb ram
JBM: a 2-VCPU VM on my "lightweight" work laptop
reCurse: Maybe it sucks in linux
reCurse: shrug
reCurse: Or maybe your setup sucks :D
reCurse: (not hardware but config)
JBM: i see a large java process
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
JBM: and an electron process 12G virtual 250M res
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+
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
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
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: https://github.com/Illedan/CGSearchRace/blob/master/SearchRace/MapGen/SR.MapGenerator/Program.cs
Illedan: Mapgeneratior ^
reCurse: Why an optim -_-
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
reCurse: If you think it's hate, you're the one in need of more sunshine
JBM: more testcase just means more hardcode
AntiSquid: i wouldn't mind
AntiSquid: i will go outside tomorrow morning if it's sunny
SabertheLost: FINNALY, silver league!
AntiSquid: but there's a lot of negativity coming from you about optim
SabertheLost: Now it´s time add real ai :)
reCurse: Oh no, negativity
reCurse: Guess we need a safe space
JBM: should we make it optim-free?
Astrobytes: Triggered chat
Illedan: Optimize the safe space?
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?
AntiSquid: bulls and cows
Astrobytes: Bulls and Cows 2, optim
JBM: i think my mind is fully saturated on CG acronyms
JBM: it just won't take any more
AntiSquid: BC2 :D
AntiSquid: before christ 2
Astrobytes: WDYM JBM WTF
reCurse: LOL
AntiSquid: JBM is probably an acronym too
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?
Astrobytes: Jean-Baptiste-Millefeuille
AntiSquid: i go with mortal combat arcade player name
AntiSquid: or was it street fighter?
JBM: i don't remember street fighter having a concept of score
reCurse: It does
reCurse: SF2
SabertheLost: so barly made it to silver, and still end up halfway to the top?
JBM: well i don't remember it then
JBM: whereas the mk one is very clear in my mind
Astrobytes: Jean-Baptiste-Malade ;)
dbdr: HAL = IBM - 111
dbdr: what's maddy's one?
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
JBM: that's how i'm feeling about the CG SDK right now
Astrobytes: *syllables
dbdr: git clone
dbdr: mvn install
dbdr: done
AntiSquid: John Bob Martin
AntiSquid: i will remember that as your real name regardless of what you say from here on
Astrobytes: Java Bites Me
dbdr: what are you working on JJBM?
dbdr: which repo?
Astrobytes: oh no wait - Java Broke Me
JBM: just getting the tictactoe (or skeleton, i'm not picky) to run out of vscode
reCurse: Takes a minute
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
Illedan: What are you trying to print?
Illedan: X Y THRUST
Snef: some checkpoints got wrong coord
Illedan: or EXPERT ANGLE THRUST?
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: http://chat.codingame.com/pastebin/652a9357-69da-4271-ac4c-9d6c99699c95
dbdr: JBM
struct: Illedan this is my cerr for first testcase
Illedan: Snef on my game?
struct: http://chat.codingame.com/pastebin/2c5c44b7-9bd7-44e6-a7be-6ac446dde94e
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.
reCurse: This is now canon
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 https://ibb.co/tzNk29J
Illedan: YurkovAS, all testcases are here: https://github.com/Illedan/CGSearchRace/tree/master/SearchRace/config
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
JBM: so the mvn exec:exec variant works
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
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?
JBM: mvn exec:exec -Dexec.classpathScope=test -Dexec.executable=java -Dexec.args='-cp %classpath Main'
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
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
JBM: but it works for bad/unexplained reasons!
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 :)
JBM: took less than that to the guy on #fr who gave me the exec:java one the first time
JBM: but now it doesn't work anymore
reCurse: cg hates you too :hug:
dbdr: did you try mine?
JBM: and they remind it to me daily
dbdr: one you got the deps, you don't need mvn
JBM: oh, explicit classpath build generation
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 "-" ;)
JBM: if you know a thing about java and want to suggest a good change, please do
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.`
JBM: i used to know a lot about java
dbdr: this is all mvn overcomplications
Illedan: And I just broke it
Illedan: LOL
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
dbdr: I did that too
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
JBM: i like how you use that word
dbdr: mvn dependency:build-classpath | grep -v INFO
dbdr: that would avoid creating that file
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
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 ?
YurkovAS: http://chat.codingame.com/pastebin/dc9e8185-e722-4b44-98fc-76aacd291dfb
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 ^
dbdr: I don't want to try to understand why a tool would ever end up working like that :D
JBM: where does that "mdep" come from?
dbdr: https://maven.apache.org/plugins/maven-dependency-plugin/usage.html#dependency:build-classpath
Astrobytes: mvn-dependency?
JBM: it's nowhere in the help page
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
DragonJ: Snef CSB currently my code factors in distance at .1%
Illedan: https://github.com/CodinGame/codingame-sdk-assets/blob/master/packs/racing/Sprites/Objects/tribune_full.png Should I add tribunes to SR? :thinking:
AntiSquid: why not
AntiSquid: add Waldo in there too
Illedan: Smaller space for the map though
Astrobytes: tf are those?
AntiSquid: http://2.bp.blogspot.com/-45AH1aGHWp0/ULgLFwO01dI/AAAAAAAAAHw/5wqLR7iCXlo/s1600/whereswaldo.jpg
struct: wtf
struct: 66%
struct: (╯°□°)╯︵ ┻━┻
AntiSquid: add 3 grandpas with a chair
Astrobytes: I know who Waldo/Wally is. I meant the tribunes
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
AntiSquid: http://chat.codingame.com/pastebin/c0727bce-9c01-4d8d-b7ad-b9fd15343d15
Astrobytes: Second definition is more appropriate
Astrobytes: But it's actually just French for 'grandstand', ie. the stadium seats
Astrobytes: As you said ;)
JBM: the "magazine" def is also valid in french
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: https://www.codingame.com/replay/467775793
struct: yeah we cant see it
struct: only you
Snef: unauthorized
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 https://www.codingame.com/share-replay/467775793
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
reCurse: https://gfycat.com/earnesthilariousgermanwirehairedpointer
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
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?
DragonJ: Xlos 604 is max speed
DragonJ: xlos acceleration each turn is the previous turns movement * .85
DragonJ: added on to previous turn
Xlos: thanks
DragonJ: deacceleration is the same function but for decreasing
DragonJ: and Xlos dont forget about drift
Xlos: Where did you find this info?
DragonJ: its in gold info and it can be found through printing in one direction
DragonJ: and drift info is from how it causes pods to occasionally spin around a checkpoint
DragonJ: which can be fixed through changing thrust based on distance and angle
DragonJ: and having a rounded print values is a need for example not going straight from 100 to 90
DragonJ: and printing 0 than 100 is the same as printing 50
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
DragonJ: Xlos that wont work your code will do circles infinitely around some checkpoints
Xlos: I'm not though
Xlos: bronze
DragonJ: this is my angle to thrust code
DragonJ: (0, 5, 15, 30, 45, 60), \
(100, 99, 95, 89, 89, 80)))
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
DragonJ: not the same but same concept
DragonJ: you still need to factor in the distance like I do
Xlos: I don't
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
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
DragonJ: always 100 thrust... I want to do that but how???
Xlos: https://pastebin.com/9zGn7kp3
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
DragonJ: sorta have code in gold and bronze currently
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?
DragonJ: not easily C# is hard good luck
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?