Chat:World/2020-05-11
BenjaminUrquhart: kovi chill
Jesus_inn_party: you won him?
BenjaminUrquhart: ?
BenjaminUrquhart: no I lost
Jesus_inn_party: :neutral_face:
Jesus_inn_party: you are still great
Gonny: damn, how did akara go from 1st to 33rd?
BenjaminUrquhart: his last submit was 5 hours ago
BenjaminUrquhart: there's been a lot of leaderboard activity since then
Gonny: that's a very brutal drop though
Gonny: can't stop coding!
BenjaminUrquhart: I dropped 70 places
BenjaminUrquhart: I know how it feels
kovi: game is random, and only 70 games, a resubmit may not reach top
Gonny: yeah I saw
Gonny: kovi true, and maybe he got pushed for a while before resubmitting, but still seems like an aweful lot to me
BenjaminUrquhart: Gonny when will you rise over the leaderboard
shashwat986: How many hours to go for Silver?
BenjaminUrquhart: ~12 I assume
BenjaminUrquhart: it's usually noon EST
shashwat986: cool, ty
the_joker_100: @BejaminUrqhart lmao u fought me against me?
BenjaminUrquhart: also, chat server will crash in 5 minutes
BenjaminUrquhart: the_joker_100 yes
shashwat986: lol
shashwat986: where do you guys move then? discord?
the_joker_100: i m doin that too then
BenjaminUrquhart: we just don't
Gonny: Haha BenjaminUrquhart I don't think I'll reach the top 100 in the next couple days, I still have a bunch of things to set up before having anything competitive
shashwat986: heh
BenjaminUrquhart: ok, no problem
Quidome: goodmorning
BenjaminUrquhart: cue chat server crash, t-minus 1 minute
Quidome: any news?
Gonny: how do you know it's gonna crash?
BenjaminUrquhart: it's done so the past 3 days
the_joker_100: r u seroius??it crashed yesterday too tho??
Doju: optimizing precalc is actually much harder than i anticipated :(
Doju: path precalc*
Doju: I thought not calculating the path in both directions for pairs would be twice as fast
Doju: but it's only a bit faster because checking whether the path exists takes some time
Doju: oh wait i'm stupid, why am i checking every cell
thibpat: Hi :wave: I'm streaming my progress on the CodinGame Spring Challenge: https://twitch.tv/thibpat
MonZtaDeluxe: this is not allowed as far as i know
MonZtaDeluxe: with old contents yes - current content while it's running is not allowed as far as i remember
MonZtaDeluxe: *contests
Uljahn: you mean streaming?
Doju: does anyone know if it's possible to print cProfile output to stderr?
Uljahn: use pstats
Uljahn: like this: http://chat.codingame.com/pastebin/02777ed1-5d00-4204-a0c9-1c6ae8d803a7
Doju: thanks Uljahn!
Jesus_inn_party: guys does any one know when is silver league free to go
JohnCM: haha competition is fierce
JohnCM: dropped 100 ranks this morning:)
Doju: same JohnCM
JohnCM: yea.. competition is good
JohnCM: i'm just wondering if i can monte carlo simulate this whole thing
JohnCM: been thinking about it.. how to do hidden info monte carlo
JohnCM: that's not my code btw, but yea... i'm just thinking of alternatives
Uljahn: Jesus_inn_party: Silver opens monday evening (around 6pm)
Csipcsirip: is there a #pragma in GCC to increase debug level ?
Csipcsirip: I got no exception on std boundary errors
Doju: For some reason the profiler really doesn't like my function
anid: @uljahn Time in France 6PM?
JohnCM: http://www.andrew.cmu.edu/user/vanhoeve/papers/MAPD_ICAPS_2019.pdf
JohnCM: I'm looking at this now: multi-label A* algorithm, wonder if it'll help
Doju: Uljahn i keep timing out when i run the function through the profiler :(
Doju: http://chat.codingame.com/pastebin/5c6bb28d-457d-4db1-a0ba-ad0a801999b0
Doju: i don't know what's wrong
Doju: it works when i run it normally
Illedan: Good morning
Doju: mooorning
jrke: which country
anid: Hi
Schneewittchen: Morning
Illedan: Nice lead for kovi :)
Schneewittchen: Motto: The early bird catches the worm?
Illedan: Still early contest, if this was in 7 days from now.. :scream:
Doju: Is there any way to see if some of your arena games have timed out
Doju: other than to watch them all?
Doju: i can't english ._.
Doju: other than watching them all*
AntiSquid: 3625 wow
kovi: thx illedan. i did resubmit today so it is not singly lucky run, we will see soon in silver recalc
Doju: kovi how long have you been programming?
kovi: 36 years
Doju: wow :o
AntiSquid: so you can easily get the "junior dev with 5 years experience" jobs eh?
AntiSquid: (just a joke about the stupid job advert titles)
MattSOrme: Anyone got any good resources for route tracking, and move scoring across multiple bots? Getting a bit stuck
AntiSquid: in other words: does anyone have the solution to the contest ?
jrke: no solution best bot will win contest
AntiSquid: see prev reply jrke
jrke: oh didn't read that
jrke: By the way antisquid what a jump 96 rank
AntiSquid: ahm was #60 last night but then tried different vars and then submitted wrong ver
AntiSquid: and now trying to fix a bug
AntiSquid: my bot is still very terrible, i can see like 20 different mistakes in it, maybe there's more, but hey we are just in bronze so not many strong bots at the top jrke
NormantasStankevicius: what time the new league opens?
AntiSquid: 8 hours from now
MattSOrme: Im not asking for the code, im asking for the theory
AntiSquid: yes, the solution . in form of theory
MattSOrme: then sure
AntiSquid: i mean that's what people post after the contest in the forum
ashikujjaman: how to avoid collision? can you give any idea?
FTGUPP: in coders strike back?
MattSOrme: apparently any vague help is giving the solution rather than creating healthy competition, so no sorry
AntiSquid: people give vague help in chat all the time when they talk about it
SemChumboPT: Good morning
AntiSquid: you don't need to apologize for asking, but wanted to make you aware of what you are asking
AntiSquid: good morning SemChumboPT
sgalasso: Hello, is there a way to print anything on the stderr even if the turn timed out ?
ashikujjaman: But I can't understand if I command my pac to go the cell x,y then how I will know which cell my pac will go on first move.
SemChumboPT: There is no solution, because there is so many ways to do it
SemChumboPT: you can go after oponents to "eat" them, to block them, or go afters pellets
SemChumboPT: try to predict "unefficient" dead ends, to not lose time on them, etc
SemChumboPT: it also depends on the oponent tactic
AntiSquid: you can always read past postmortems in the forums
AntiSquid: or try one of the meta heuristics: GA, MCTS ... etc etc
jrke: hey the input ability to cooldown remains same ie 10 or changes when we apply speed or switch
AntiSquid: i would go here: https://www.codingame.com/forum/search and type in feedback and strategy lots of ideas for past contests, some similar to this one SemChumboPT MattSOrme
BorisH: SpringChallenge, Bronze League: Di I get this right: Eaten pellets disappear on screen, BUT NOT from game loop's input ?
BorisH: *Do
SemChumboPT: Now you only see pellets visible to your pacs
BorisH: Found my bug, thx
ashikujjaman: how can I see my prevous league's battle
MattSOrme: thanks
Nerchio: my 2 day old version is doing basically the same as todays xD
jrke: hey anybody knows about bronze's boss
AntiSquid: released 7 hours from now
jrke: K
Doju: Nerchio my current version is actually a bit worse than my 2 day old one
Nerchio: woopsie
jrke: how many players will able to reach silver or which rank bot will be boss any idea
Doju: if the only goal is the rank
AntiSquid: you can always reach silver later, gates don't close until end of contest so w/e
jrke: no i am not asking that i am asking is there any idea which rank bot will be bot
E_pur_si_muove: Will there be cherries and power ups in higher leagues? I set it in the source code, not not in the rules. thx.
E_pur_si_muove: set = see
Jesus_inn_party: the silver rank is released 7 hours from now:no_mouth:
Jesus_inn_party: ?
Quidome: All the rules are now unlocked!
Jesus_inn_party: don't think so!
jthemphill: It's not always possible to tell if you killed an opponent or if they just rounded a corner, right?
jrke: there will no new rules after bronze as you can see in first line of green box"all rules are now unlocked"
njaber: yes
njaber: it's not always possible but you can deduce most cases with other infos like pellets taken, last seen pos, etc
njaber: but it requires a complex algorithm
jthemphill: :thumbsup:
njaber: and hard to make efficient
Jesus_inn_party: i think there will be new things
Jesus_inn_party: maybe not rules but some thing new
Doju: what can be changed if not the rules?
Doju: new visuals? :D
Nerchio: dbdr timeouts? ;p
AntiSquid: there are no changes doju
AntiSquid: bronze rules are final
Doju: Yeah i know
Doju: that's why i think there won't be any changed
Doju: changes
jrke: hey whats use of send parameters to ide
Quidome: when you see a match and want it for replay
njaber: and for testing, you could replay the match with a modified AI for example
Quidome: you get the same opponent and seed
anid: Seems like the contest will hit 4000 doesnt it?
Quidome: Will that be an altime high?
anid: I think "The Accountant" Had 4400+ participants
Quidome: How long ago was that?
anid: 3-4 yrs ago? before I started
Quidome: it's not in CG antmore?
Quidome: or under another name?
Doju: Hold on...
AntiSquid: someone said they submitted all bots, including those that were only testing in the IDE ... so
Doju: will DFS be faster than BFS if you're going through the entire tree?
AntiSquid: 11k > 4.6k
AntiSquid: this is the contest with the highest submits
anid: I dont see 11K submits Antisquid?
anid: when are they going to submit everything?
njaber: there are 11k registered
njaber: but not everyone subbmitted
AntiSquid: anid, "someone said they submitted all bots, including those that were only testing in the IDE ... so "
Quidome: 3.6l submitted
Quidome: 3.6k
anid: K
AntiSquid: for the accountant i mean
Doju: Hey, i read this on wikipedia: "When the number of vertices in the graph is known ahead of time, and additional data structures are used to determine which vertices have already been added to the queue"
Peudoki: hi, does anyone know what time is the new league opening?
Doju: does that basically mean skipping checking cells that have already been explored
Doju: waait no.. that can't be it
SemChumboPT: I hate the down going every time i submit :/
Doju: Oh and also, won't not giving cells an "explored" status basically give you all the possible paths that can be taken by a pac given that it doesn't stay put and doesn't speed?
NapTown: i can't beat my bot from 2 days ago:neutral_face:
JohnCM: @Doju, you can have an array storing all cells and whether they have been visited by you or opponent. by default all cells (less pac starting positions) are not visited. then slowly update them as you see the visible pellets or you collect pellets.
JohnCM: an algorithm that efficiently manages information state should get you to top 500 at least
JohnCM: i did some further refinement and got top 200... haha but nowhere as good as the top 10. they are super efficient at eating the pellets
Doju: JohnCM i'm trying to precalculate all paths
JohnCM: well.. what do you mean by precalculation?
JohnCM: total pellet value? shortest distance?
Doju: shortest distance
Doju: from any given cell to any given cell
JohnCM: oh from any node to any node is it..
Doju: exactly
JohnCM: well... one way is to do the shortest path using key intersection nodes (i.e. more than two paths)
JohnCM: then you effectively reduce your number of nodes to like... say 100?
Doju: yeah
JohnCM: then do shortest path from each node to each node
JohnCM: hopefully it doesn't timeout
JohnCM: i didn't use something like this though... i just bfs calculate for each pac each time i move them
Doju: i was initially trying to do that but if i just knock the bfs that i currently have to like a quarter of the time it should be fine
njaber: I don't think that's nescessary, yu can calculate everything in way less then 1s with standard bfs
JohnCM: you mean from node to node?
njaber: Just need to optimize a bit
Doju: njaber atm mine is timing out
njaber: yes
JohnCM: for all nodes?
JohnCM: haha i couldn't do that
Doju: although i haven't taken symmetry into consideration yet
njaber: You should be able to optimize it a bit
JohnCM: i had to use a heuristic
njaber: for me all nodes takes 13ms
Doju: wow.
JohnCM: how can bfs do that?
njaber: and I don't even use the symetry optimization
Doju: what on earth
JohnCM: i mean... did you start from one node.. then precalculate to all other nodes?
JohnCM: then repeat for next node
JohnCM: and so on
njaber: yes
Doju: yeah
JohnCM: oh i see.. but i tried doing the bfs n number of times, where n is the number of nodes
JohnCM: it timed out
Doju: like, mine is taking 700 milliseconds on a 33*12 grid
Doju: that is relatively simple
Doju: njaber python can't be 50 times slower than c#, can it?
njaber: Would it be alright topost the code for that specific function or should I not post any code that could help others?
njaber: Yeah it may be the language
Doju: umm don't post it
njaber: I'll dm it to you
Doju: don't
njaber: Why?
offroff: python is extremely slow I'm afraid
Doju: at most give me a vague explanation of how you're optimizing it
JohnCM: https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm
Maciulis: beats the point of competition
JohnCM: anyway for all nodes to all nodes there is an O(n^3) method
JohnCM: floyd warshall
JohnCM: not sure if it works within 1sec
JohnCM: and yup i'm using python, which explains why my n repetitions of bfs didn't work in time
njaber: ok, Idk if there is ny specific optimization I'm doing apart from standard things, I just flood all the grid, it's O(n^2) since each flood cannot take more then 4x the number of nodes (you check 4 neighboors, and never walk back)
Doju: that's pretty much what i'm doing
Doju: except i'm also not calculating the same path in both directions
njaber: Well I guess I can thank C# then
AntiSquid: https://www.redblobgames.com/ for pathing
JohnCM: yea i did what you did @njaber, but it timed out haha
Doju: AntiSquid i'll look into that
Doju: JohnCM I think we just have to embrace numpy to it's fullest :D
AntiSquid: i need 4ms to calculate all my bfs distances, unoptimized
Doju: i'm actually not using it at all atm
AntiSquid: some languages are very slow
JohnCM: is C# or C++ faster?
Doju: i'm pretty sure c++
AntiSquid: c++
njaber: I wonder if creating/copying the arrays isn't what's slowing you down, if python has something that makes it recreate the array on some operations you could optimize it but not using those
njaber: Of course it's C++
JohnCM: i see.. but how come C# is so popular then?
njaber: It's way higher level
AntiSquid: "more readability"
Doju: njaber i'm actually storing everything on the same array
njaber: Way easier to code with
JohnCM: yeah.. i like C# too. quite user friendly
Doju: maybe i should rewrite the function with a few different arrays and fully numpy'd
AntiSquid: i find C++ user friendly enough :P
AntiSquid: it's just that CG doesn't display all the errors, so harder to debug
JohnCM: haha i used to code with C 10 years ago.. actually it is quite a good language for this competition also. since it is just array parsing
AntiSquid: need offline setup :/
njaber: Doju it's possible some operations work by value instead of reference, effectively recreating all the array eac time, Idk enough python to be sure tho
Doju: njaber alright. i'll try to optimize this in some ways and report back in a moment
njaber: I like using C / C++ / C# / JS respectively depending on the level of organization and optimization I want in my code, but I find they are all pretty good languages in their own ways
JohnCM: all the best! anyway seems like C++ is ruling this competition, perhaps since it is faster
njaber: I might have to rework my code for C++ wince I have some pretty expensive algorithms running each turn
AntiSquid: 3 python 3 bots in top 10, very slow language JohnCM
njaber: not all bots need speed
Fangel: well for the moment I never use more than 5ms/turn :)
Fangel: I think globally there is more people using C++ than python, that's all for the moment.
njaber: Wait, I jsut think I thought of a way of doing full tracking of the enemy in almsot constant time
Fangel: but in a few days, time limit will make a difference for sure
njaber: I think I just thought*
hearthewarsong: How do you measure if a version "B" is better than "A". I have some impovements , but I can't test it. I send in "A" it is 30th, I sent in "B" its 50th, sent in a "A" again its ~40th, then "B" was 12th. Then now "A" is 26th. Is the leaderboard so instable, or am I messing up something ?
SemChumboPT: Other people submit too :)
JohnCM: @njaber: beware of full tracking of enemy, there are a lot of possibilities
njaber: Yes and I think I jsut found a way of reducing all these possibilities to a number capped by the number of cells, and deducing everything from this algorithm
Cappefra: what time is the silver league opening?
Riyuk: in 7 hours they said
njaber: hearthewarsong the quality of a bot changes depending on the meta anyway, only time and a lot of testing, and possiblysubjective testing by manually pitting it against other bots
njaber: can tell you it's quality
Cappefra: is there a public place where to get news about leagues opening or stuff like that? Just so I can stop harassing people in the chat :)
njaber: how the heck am I so bad at doing coherent messages all the time
njaber: at writting*
njaber: frick
[CG]Thibaud: it usually opens around 12pm EDT Cappefra
Doju: Is there a way to set up version control if you're using the built-in ide?
Cappefra: cool thanks
MattSOrme: how is the leaderboard score calculated? I can only find content for overall codingame ranks
[CG]Thibaud: no Doju
Cappefra: but why EDT? I thought Codingame would use standard GMT time in France
njaber: Doju any time you subbmit your code is saved, you can find it in History
Doju: okay thanks [CG]Thibaud and njaber
[CG]Thibaud: yes, maybe I should always use GMT
[CG]Thibaud: I think they use EDT in the US
[CG]Thibaud: MattSOrme it's TrueSkill based
njaber: Okay my current tracking algorithm can do full tracking even over 50+ turns it seems
njaber: and it's not even the constant time one
Nerchio: why dont u submit
njaber: I jsut need to add a condition ofr dead pacman and pellets which were taken, I already integrate non-taken pellets by supprssing possible paths
njaber: Because even though I have a great algorithm my AI still isn't doing a single thing with it
njaber: I want to finalize it
njaber: then my AI will abuse the shit out of its knowledge
JohnCM: http://chat.codingame.com/pastebin/7c6f2934-6eea-4a04-96e2-e5dba97d6d18
Vintarel: what do you track?
njaber: Enemy movements
Vintarel: but what if you don't see them for plenty of turns?
Vintarel: i mean, I can't see how track invisible things
njaber: I already confirmed I can branch all paths over more then 50 turns, and I've got an idea to optimize the hell out of it to allow tracking on even longer periods
Doju: sorry
Doju: what
Doju: 50!?
njaber: Yeah
Doju: that's ridiculous
Doju: its only... 7,6*10^44 different decisions
njaber: I got a dead pac that I don't recognize as dead in my testing config, and I lose after 80 frames because I disabled my AI, and my algorithm manages to not time out during all the game
njaber: I use a trick where instead of tracking all paths I track all paths of a given length that end on a specific cell each turn, which drastically reduces the number of calculations without losing any information
njaber: Actually I didn't phrase his properly
njaber: For each cell, I track the number of track of a given length that end on this cell for the given turn
njaber: of paths*
MSmits: creepy, a dead pac that isn't dead.
MSmits: Zombie pac
goolmoos: njaber how do you account for variable speeds?
goolmoos: also, pacs can stand still
njaber: I calculate how much speed he could have used based on the amount of info I have
njaber: And I also take standing still into account
njaber: I have evrything managed
goolmoos: but you said you track path of a certain length
njaber: standing still is just a path of the same length that extends 1 turn frther
JohnCM: haha only that if the possible area of your opponent is very huge, then it is as good as not the info at all
JohnCM: imagine.. in 10 turns the possibilities are (assuming speed is used): 4*2 + 5 = 13 squares away from starting position
JohnCM: that's almost half the map already
njaber: Actually with the info of pellets I've got a very reduced zone for all pacs most of the times
njaber: + vision
JohnCM: assuming your pac is nearby, in which case you might already lose out by pellets cause by finding out you go to empty areas
JohnCM: haha you can try it out.. let me know how good the algo can be
JohnCM: i'm just not too sure if effectively localizing the enemy is a viable strategy
njaber: No I don't, my AI aren't even active currently, just the info that I get by "happening" to see, is enough
JohnCM: ah... then that is possible. it's a by the way thing
njaber: Yeah tho my future AI might take gathering info into account at some point
JohnCM: haha but head straight for the pellets rather than the enemy
JohnCM: i keep losing within the first 50 turns because the top 10 ai just keeps eating and eating non-stop for each pac
njaber: The really important part for me is knowing which pellets are definitely closer to me then they are to the enmy, that's why I've been working so hard on this algo
JohnCM: oh.. that part i coded into my algo (the closeness part). very important
JohnCM: gd luck!
njaber: thx
njaber: How do you manage that when you don't see the enemy?
Doju: I managed to knock a few hunder ms from the path precalc by using deques instead of lists
JohnCM: @njaber: (massive spoiler) you know the enemy start position by symmetry
Doju: now if i give up on storing the paths themselves and just store the lengths i think i can knock off another few hundred ms
JohnCM: XD
njaber: I mean how do you manage calculate which pellets are closer to you on turns where you don't currently see the enemy and which aren't first turn
JohnCM: oh... well the closeness measure is mainly for superpellets. after that is free for all
JohnCM: you can assign effectively the superpellets which are "yours" well, and perhaps ignore those that are not "yours" unless the opponent decides not to take them
JohnCM: eating the right superpellets is key for a good ai
JohnCM: while not revealing too much about how I did it, hope this helps
Doju: JohnCM mine unintentionally ignores the superpellets lmao
njaber: I'd like to have an algorithm that becomes more similar to a "board game" algorithm which doesn't calculate "how many pellets I'm taking" but the "ratio of how many pellets I'm taking and how many I'm potentially allowing my opponent to take"
JohnCM: hm that is possible
JohnCM: but you won't know how many your opponent is taking cause you don't have access to the score
njaber: That's why enemy tracking is important for me
njaber: You do have access to the score
njaber: it's given to you at the beginning of each turn
JohnCM: so essentially, eating more pellets denies the opponent from eating them
njaber: yes that's how I want my algorithm to think
JohnCM: oh damn
JohnCM: lol i didn't know the score was given
JohnCM: ok this changes things
NapTown: that's something i also didn't know :D
JohnCM: thanks, i think i know how to make my ai better now
njaber: that's why you pay attention to the rules details XD
JohnCM: i didn't factor in the score...
JohnCM: wow
njaber: Frick, I track the enemy so well but I don't even remember my own pacs movements, now I need to add that part
Doju: uhhh.. working on a single int didn't change the speed of my flood fill compared to modifying a list on every iteration...?
StepBack13: Thanks for your conversation njaber/JohnCM. Lots of good tips.
I have stopped playing after I entered Bronze league. I hate not having 100% visibility of the board... :( Need ideas for how to adapt algo from 100% knowledge to ... ~30%?
njaber: Doju then the speed loss must come from some expensive python operation like I was mentionning earlier
Doju: njaber i guess so. i wish i could profile the whole thing
JohnCM: @stepback13. treat it as you have perfect knowledge. store all initial cells as having pellets unless confirmed otherwise. use back your same algo for starters
Doju: but the profiler doesn't like it for some reason
goolmoos: Doju, I recommend instead of precalculating paths calculating a distance map for eash pos, and extract paths from there when needed
Doju: goolmoos i'm gonna need them on every move
Doju: for every cell
JohnCM: you may not have perfect info, but you have your best guess
Doju: because i'm gonna do some maths :P
njaber: Doju you should probably be able to find a list of famously expensive python operations on google
StepBack13: @JohnCM. thanks. That helps. I need to update algo to find a way to remove cells my pacs have crossed from my "possible pellets" list.
JohnCM: yup
JohnCM: then there's the explore-exploit tradeoff: should you go to an area to view more pellets, or eat pellets up. or best to do both at the same time.
JohnCM: implementing this trick alone should get you a good ai already
njaber: You should reset each cell visible to your pacs to 0 each turn, then readd the pellet if it's part of the visible pellet list
njaber: re-add
Uljahn: Doju: btw you can measure the time elapsed intead of profiling
Doju: Uljahn i'm measuring elapsed time but it doesn't tell the full story
Uljahn: or profile locally
StepBack13: @JohnCM. thanks again. I like this method. @njaber that's interesting... seems like the opposite approach, assume 0 and update if you see it. I prefer assuming 1 and then working to 0 all cells.
njaber: you assume 1 at the start, what I'm suggesting just allows "updating" visible cells each turn
JohnCM: @stepback: no problem. hope to see you in the top 200
Peudoki: we need Silver!
StepBack13: @njaber ahhhh, that makes sense. @JohnCM haha, not sure I have the time. It took me ~10 hrs to get to Bronze and it seems harder from here.
njaber: I just noticed if you pac moved 2 there is no way to know if you pac died on the first cell or second cell unless you do some kind of fancy score calculation, and even then I think there are cases where you can't deduce because multiple of your pacs died at once
JohnCM: haha see what is best for you
JohnCM: i'm having so much fun trying ideas. i think i implemented almost 30 versions of my algo already lol
njaber: I've been coding almost non-stop since the beggining of the challenge, I probably have done 50-55 hours of coding already
njaber: I like this challenge, I find it really fun
StepBack13: yeah, that's what I felt would be necessary to get in the top 20-30
JohnCM: in between i took a break and coded "ghost in the cell", but that turned out to be way harder than this challenge
StepBack13: I don't want to put my dayjob at stake hahaha
njaber: I'm not top 20-30 tho XD
mesavitae: any tips on algorithms to learn for searching, tracking pellet dist by indexes has taken me as far as i can go i think lol
StepBack13: Yeah, 20-30 is probably me being optimistic, I'm sure there are seriously tough opponents. coded by teams
AntiSquid: no teams allowed though
JohnCM: AntiSquid shared this earlier: https://www.redblobgames.com/pathfinding/a-star/introduction.html
JohnCM: quite a good guide to BFS/Dijkstra/A*
mesavitae: thank you
JohnCM: wow kovi has such an extensive lead it is unbelievable
Nerchio: y
Peudoki: we need to break his tyranny
GreatTux: I tried my bot against kovi yesterday, then I went to sleep, it broke my motivation into pieces
njaber: I won't have time to finish my bot upgrade for silver I think : (
Peudoki: I can beat him like 20%, it's something
jrke: its going to be silver club today
Peudoki: when?
jrke: after 5 and half ours
njaber: I'm 300th currently, would I pass silver like that?
jrke: hey i have to ask only only silver open today or gold also
njaber: Someone told me silver only
jrke: K
JohnCM: why 300th cannot be silver? what's the benchmark
njaber: I'm asking because Idk
JohnCM: i don't know too, but i would say you should be safe
jrke: there is no benchmark
JohnCM: i think just need to beat the boss or something right
jrke: you have to just be above boss likewise in all leagues
njaber: Good, I can continue working on my masterpiece then
SemChumboPT: Trying to reach top 1500 ignoring opponents
JohnCM: lol.. you can work on it for 6 days
JohnCM: still got time
Peudoki: I haven't competed before, but I heard silver usually starts around 300th place
wlesavo: njaber you shouldn't worry, with that commitment you will make it eventually
JohnCM: @peudoki, that sounds more like gold/legend to me
Nerchio: legend for sure not ;p
JohnCM: anyway i'll be happy to make it to gold
JohnCM: don't need legend
Peudoki: I wanna be a legend, but it will be hard
Doju: How can i get the input out of the game so i can "generate" (read it line by line) locally?
jrke: i am happy in top 1000
Doju: i'm trying to print it but that only returns like 30 lines
njaber: I'm always reaching for the top, but I also know I'll fail miserabily
JohnCM: the codingamers are really intense. like i tried "coders strike back" and can't even reach gold.. lol not that i was trying very hard
jrke: CSB is very easy till gold
JohnCM: yea my point exactly
Peudoki: almost 3k bronzers, so many
JohnCM: i got stuck at silver lol
jrke: i passed till silver in just 10 min in CSB
JohnCM: haha.. that was me too, but i got stuck there for a day
JohnCM: my algo is perhaps.. 15 lines?
JohnCM: yea but i was kind of lazy to code more to reach gold
jrke: no problem use shield and boost at right time
jrke: and if you stuck in silver than gold will be so hard for you
jrke: cz every input changes
JohnCM: haha yup
jrke: whats your rank in spring challenge
JohnCM: me?
jrke: yes
JohnCM: it fluctuates, but mainly within top 200
jrke: nice
JohnCM: i spent a lot more effort on this one than csb
jrke: K
Clagus: I think silver opens today at 18:00 (I would assume CET?)
njaber: What would happen if player 1 scissors, play2 rock and player 2paper tried to go to the same cell?
thethiny: I accidentally submitted an empty code
thethiny: is there a way to get a backup?
njaber: History
GreatTux: yes
thethiny: yes found it, thanks
GreatTux: History button is on the left panel
AntiSquid: inside history you can even view the time you submitted at
Doju: oh my..
Doju: im doing the most horrendous things atm
Doju: printing all the inputs to generate myself
Doju: and getting rid of some things in my bot to make it deterministic
Doju: so that i can print everything out after finishing a for i in range() loop xD
Doju: it's still not deterministic...
Doju: i've commented out everything that can generate random numbers yet the results are different every time
GreatTux: Do you play against yourself ?
Doju: yes
AntiSquid: are there always 4 super pellets?
Doju: uummm... yes
njaber: Maybe you have some timing dependent code? Are you using parallelism?
avdg: use seeded generators?
Doju: I measure time but don't do anything with it
avdg: or maybe you use hash tables that are unstable (rare)
avdg: random generator (ts/js): let seed = 1234567890; const rand = () => ((seed = (seed * 16807) % 2147483647) - 1) / 2147483646;
avdg: ^ the one I use
avdg: seed can be changed
Doju: i'm not quite sure what causes it but i'm just gonna try to get some output
njaber: avdg he said he removed all randomness from his code tho
jrke: hey what things can we get from seed
jrke: ?
avdg: cya, gotta do other stuff :-)
njaber: bye
TheSkolar: Is it known when exactly silver league will open?
MadKnight: in 4-6hrs
njaber: most likely in 7 hours
njaber: wait
jrke: after 4H50M
njaber: MadKinght is right
njaber: I misread the current time
jrke: 9:30 pm IST
AntiSquid: 5 hours
jrke: all the best all coders for silver league
CRVII: Guys what would be a good tutorial/puzzle too start with machine learning?
AntiSquid: none on this site
thethiny: exactly
thethiny: if you want ML I suggest this:
AntiSquid: kaggle is better for that CRVII
JohnCM: can try kaggle yep
thethiny: https://github.com/jeffheaton/t81_558_deep_learning
CRVII: Sweet, thanks alot guys!
jrke: hey when we reach silver then our points become 0?
wlesavo: jrke there will be a full reran for a whole silver, with more matches also
wlesavo: it would take a while
jrke: K
Doju: yesssss i finally got profiler data out
Doju: my get_neighbours method takes up almost 2/3 of the time in the precalc
Doju: nice to know
Quidome: good question!
goolmoos: Doju how do you profile?
Quidome: What would happen if player 1 scissors, play2 rock and player 2paper tried to go to the same cell?
Doju: goolmoos dont even ask
Doju: okay do ask but don't expect anything prettty
Doju: haha
Doju: so, i printed out all the data in the input
Doju: made a local copy of the bot
Doju: added an "input" function that has the inputs hardcoded as a string
goolmoos: and fed the same input
Doju: and ran it that way
goolmoos: btw, you can just save the inputs to a txt file and pipe it in
Doju: how do i save them?
Doju: since the code doesn't run locally
goolmoos: like: python bot_code.py < input.txt
goolmoos: print the inputs in the ide
goolmoos: copy from there to a local file
Doju: yeah it doesnt work
Doju: or it does
Doju: but just as poorly as this method
Doju: so i didn't even bother
wlesavo: Quidome it was disscussed earlier, struck even comiled some replays
Doju: because the ide truncates the strings if they're too long
wlesavo: struct*
Quidome: ok, i am rereading the rules, it's seems enough, but have to start coding...
Quidome: doing minmax on 1 turn is probably to much...
MattSOrme: Do you have to have written your code in java to run it locally? Atm im just making changes and uploading to re-test
cegprakash: yeah Quidome 5 pacs, 14 possible moves
Quidome: 10 moves actually but still
cegprakash: that's 14^5 just for all ur moves
cegprakash: and if u use minimax
Quidome: hm... more work :)
cegprakash: u need to do 14^5*14^5
cegprakash: that's 14^10
cegprakash: may be u can prune it
cegprakash: like using a GA
Quidome: yeah correct, but you inly have max 9 moves witk in that case 1 abbility
Doju: oo i'm doing a modulo in my get_neighbours
Doju: that's probably not good
cegprakash: it's 14 Quidome
cegprakash: Move1 - 4 Move2 - 8 Switch - 1 Speed - 1
cegprakash: 14 possible moves in a turn
Quidome: move 2 = 4, always walls
Quidome: and with speed 2 you can't use your abillity
Quidome: because it isn't loaded then
Quidome: dont't forget stay in you position
cegprakash: so u never use speed?
Quidome: of course but IF you can move 2, youre cooldown is not zero
cegprakash: even if move2 is 4 u need to check all 8 positions
cegprakash: so it's still 8
Quidome: yeah sure, it won't help :)
cegprakash: may be we can precompute that
cegprakash: to keep it at 4
Quidome: I stay with max 9, same position included, teh 10 was also not right :(
njaber: Move2 is up to 6 actually
Quidome: how?
thethiny: @ Python users please print debug with flush=True, will save you hours of debugging.
Quidome: if you can move in 4 directions, it is 9 is it?
njaber: #0#0# 00C00
- 0#0#
cegprakash: I see only 4
njaber: that's the most possible move 2 you can have at once
Quidome: that is a 7, because of you can also not walk
njaber: # are wall, O are paths
cegprakash: oh wait
Quidome: nut move 1 position to the left and then start counting
cegprakash: I see 6
njaber: I said Move2, not Move1 or Move0
Peudoki: when you submit, is your previous score meaningless?
cegprakash: that's right Peudoki
Jesus_inn_party: صاغ هسدگف فاهس مثشلعث خعف غثف
Quidome: http://chat.codingame.com/pastebin/0db18551-f2b7-4add-85b2-87fedf7b06f1
Jesus_inn_party: why isn't this league out yet?
Quidome: http://chat.codingame.com/pastebin/6775a45e-66a0-4e7c-95c6-e2c95eb791e1
Quidome: huh
Jesus_inn_party: why isn't the silver league out yet?
njaber: n 4h15 minutes
njaber: in*
Nerchio: because it will be out later
Quidome: http://chat.codingame.com/pastebin/46e07085-df20-43f7-a20f-48023fdf7bd4
jrke: whats this quidome
Quidome: sorry messing around with the pastebin
jrke: don't spam you will be banned
Quidome: i don't understand it obviously
Quidome: sorry
njaber: How do you force a message to use the pastebin?
jrke: i can't do anything just moderator can do it
Quidome: i just pasted it in and that forces the pastebin
Quidome: i was suprised by that
njaber: Oh ok
cegprakash: http://chat.codingame.com/pastebin/f75d08b2-b0fb-4ff1-954c-1daa99396405
cegprakash: http://chat.codingame.com/pastebin/641c3ea7-fc11-4912-a4da-3b53e3b31218
cegprakash: 1 2 3 4
njaber: This shall become an inside joke
cegprakash: okay anything more than 4 lines is a pastebin
cegprakash: I found it
Quidome: oh really
Quidome: funny
njaber: http://chat.codingame.com/pastebin/a13adcf6-6362-48d8-bc0b-c42b1f89494c
njaber: I'm part of the cool kids too
Jesus_inn_party: 1
jrke: going for clash to change mind
Jesus_inn_party: http://chat.codingame.com/pastebin/d5e5be0a-2300-49ca-8fa8-87d75e51154f
Jesus_inn_party: oh now get it
Quidome: njaber did you see my pattern
cegprakash: Quidome ppl are busy playing with pastebin..
cegprakash: they don't want ur pattern
cegprakash: :D
cegprakash: I do though
njaber: Yes what of it? in that case there is only 4 move2 yes,I just said the max was 6
cegprakash: okay the point is don't do straightforward minimax
cegprakash: unless u want to timeout
cegprakash: do a pruning with a search or GA
cegprakash: or have a nice pathfinding algorithm
cegprakash: :D
cegprakash: I am lazy to do pathfinding algorithm
cegprakash: so I go with GA
Quidome: Aha, we were talking different numbers I understand now what you mean
Quidome: GA?
cegprakash: Genetic Algorithm
Quidome: wow, ok
Quidome: and that is lasy ;)
njaber: I'm going the good pathfinding/tracking/state evaluation route
SemChumboPT: Damm i'm almost in 1600, without speed, switch or oponent check !!
jrke: i am 1000 with speed switch and opponent check
cegprakash: we all have noob bots
cegprakash: less talking go code
njaber: ^
MSmits: I think I have a lucky submit
Doju: aaaaahhh what am i doing
Doju: i just realized
Doju: that i've been doing the most expensive calculation in my precalc
MSmits: all I did was do some performance improvements and increas depth of search =/
Doju: n^2 too many times
Doju: !!!
SemChumboPT: cegprakash... i need to chat a little, so when i come back to code, i realise some basic thing i missed :D
kovi: nice submit msmits
MSmits: thanks
MSmits: this bot is lacking a lot though, not sure why it does so well
Nerchio: :O
MSmits: 2nd lol
MSmits: I'm completely surprised by this
jrke: what was your last rank
MSmits: around 50
MSmits: when i finished writing my search
jrke: :scream:
jrke: 50th to 2nd
MSmits: just now I improved performance (3x as many sims)
MSmits: and increased depth from 6 to 8
jrke: K
Doju: rofl
MSmits: but my pacs still dont see pellets more than 8 turns away
Doju: i just cut down the time by like 3 fold
MSmits: I get half a million sims to depth 8
MSmits: in turn 1
Doju: wow
MSmits: about 50k in other turns
MSmits: glad I switched to c++.
MSmits: the performance improvement was mostly getting rid of vectors
MSmits: generating temporary lists hurts
Csipcsirip_2: do you use the fabulous SmitsiMax algo ?
MSmits: no
MSmits: it's just a monte carlo variant
MSmits: do random :poop: for 8 turns and see how many pellets you got
Doju: :D
kovi: but what about enemy?
MSmits: i avoid them if they have advantage
MSmits: so they are impassable objects
MSmits: thats all
kovi: sure, but are you simulating them?
MSmits: i dont even try to kill them
MSmits: no
MSmits: i am not even trying to keep information and or to discern where they must have travelled and collected pellets
MSmits: all of that is on my list
MSmits: if i dont see them, they dont exist
wlesavo: MSmits nice
MSmits: it's really a very basic bot still. I have a list of 10 things and I am still working on the priority 1 part
Csipcsirip_2: wow I'm surpriesed that it's enough to top10
MSmits: so am I
jrke: whats your logic
MSmits: I guess it is mostly a top 10 bot that got to 2 with some luck... but who can say, ratings are close
MSmits: what do you mean jrke
MSmits: it's a pretty broad question :)
jrke: algo or logic
MSmits: I use random to find the best paths
jrke: :slight_smile:
MSmits: I'm not going to share what kind of pruning logic I use of course. That would be beyond silly
jrke: K
MSmits: but i dont mind sharing that it is monte carlo
MSmits: euler already shared this
MSmits: also it's the first thing to try
MSmits: I did try beamsearch before i did monte carlo
MSmits: It really hurt my head to recursively try all move combinations
MSmits: I gave up doing that
AntiSquid: and that didn't do as well? i expected beam search to be better ...
AntiSquid: aborting then
MSmits: i dont know AntiSquid
MSmits: It just hurt my head
AntiSquid: how so @_@
MSmits: also think about what will happen if all pacs are over 5 turns away
MSmits: from a pellet
AntiSquid: beam search is just pick best few moves, continue to next step
MSmits: the beamsearch will record 0 score
MSmits: so how do you sort and filter?
AntiSquid: why try recursively ?
AntiSquid: you just select few candidates that seem to you to be the best
MSmits: because with 5 pacs there pac_move^5 combinations
MSmits: each combination is a valid set of moves
MSmits: or can be
AntiSquid: and why do you need to go through all of them?
MSmits: because its beamsearch
MSmits: beamsearch is essentially a full search every turn, except you sort out the low scoring move combinations
MSmits: so you need all move combinations
AntiSquid: nobody is forcing you to do full search ?!
MSmits: of course not, but if you do a beamsearch and want it to be as good or better than monte carlo, you will have to
AntiSquid: maybe i thinking of something else, but i don't remember full search being a requirement
MSmits: ok, lets put it this way. The way i understand beamsearch is like this:
MSmits: you have x states
MSmits: you generate all children from them
MSmits: you sort them by score
AntiSquid: and select a few . how doesn't matter
MSmits: and keep the y best ones (for example 1000)
MSmits: hmm
MSmits: sure, ok you dont necessarily have to select by score
MSmits: but you kinda do want the best ones?
MSmits: how are you going to know which are best if all pacs need to travel a few turns
MSmits: thats my problem
MSmits: you can do all sorts of eval of course, for example, how far is the nearest pellet. But then you're already losing information
MSmits: I just feel beamsearch is possible, but too hard for me here.
MSmits: I dont need a real eval with monte carlo either. I just get as many pellets as i can :)
thethiny: BFS with max depth of 5 is good imo
thethiny: you only move 2 steps at a time
MSmits: for a single pac, sure
MSmits: try to do it for 5 pacs at once
thethiny: in my code I can go max depth of 25
MSmits: and them not getting in eachothers way
thethiny: 5 per each pac
MSmits: how do you avoid them going for the same pellets?
thethiny: I put the nodes that I step on into a list
thethiny: and I return the list
thethiny: then I check for each i in the list, if both have the same i, then I find another path for it
MSmits: yeah, you can do stuff like that to mitigate the problem of pacs gettin in eachothers way
thethiny: as for going for the same pellet
thethiny: I give a negative value to the pacs
thethiny: so that it gives them low score to cross here
thethiny: treat it kind of a "wall"
MSmits: yeah that will help
thethiny: ctr_right, seen_r = get_next_iter(x+1, y, ctr, cur_rows, depth, seen=deepcopy(seen))
thethiny: and return seen
MSmits: looks complicated :)
thethiny: it's just a recursive call
leojean890: gg MSmits ;)
MSmits: ah yes, also it's python ofc, no brackets
MSmits: thanks leojean890
thethiny: if cur_rows[y][x].startswith('P'): #Penalty for Being Close to Friend
ctr -= 2 # Try not to follow your friends return ctr, seen
thethiny: if cur_rows[y][x] == ' ':
ctr -= 0
thethiny: if depth >= max_depth:
return ctr, seen #Max Heap
thethiny: that's it
thethiny: then do recursive calls
MSmits: I think if you're doing python an extensive monte carlo is not really an option, so your way of doing things might be good thethiny
Doju: I might try monte carlo but with larger steps and some added magic
RockyMullet: woah big submit MSmits
RockyMullet: wp
Riyuk: Well played MSmits!
MSmits: thanks guys
RockyMullet: and I won against your submit :D bummped me up a little haha
MSmits: nice, I am already finding some bugs
RockyMullet: #1 or nothing ;)
MSmits: haha, honestly top 10 would be great and otherwise I'll be happy with legend if I can pass gold boss again.
Jesus_inn_party: again?!
RockyMullet: me giving that I'm already struggling at staying in the top 50, I'm afraid it might not be enough for gold :CRY:
MSmits: i mean like in earlier contests...
Jesus_inn_party: oh sure
MSmits: you mean not enough for legend RockyMullet?
JohnCM: congrats msmits
RockyMullet: hum yeah I guess im overreacting, it might be enough for gold lol
RockyMullet: but deffinitly not legend
RockyMullet: yours should be tho :D
MSmits: nah its not, not yet
MSmits: legend is top 15
MSmits: and the friday top 15 will be stronger than my bot
MSmits: if i did nothing that is
RockyMullet: oh yeah obivously, but I know you will :D
MSmits: It is likely yes. But we'll see
Illedan: Nice MSmits :D
cegprakash: lucky MSmits
cegprakash: I'm coming for ya
MSmits: thanks Illedan, I was honestly surprised. I still think it might be luck Illedan. I see many bugs
MSmits: or at least... some bugs and many features lacking
RockyMullet: hopefully silver will be < 1000 people, so luck wont be as important
AntiSquid: ceg you're getting ahead of yourself
MSmits: I just fixed a bug where it refused to go into dead ends to collect pellets :P
Illedan: xD
AntiSquid: #1000 climb few ranks before you threaten MSmits lol
RockyMullet: the treats are flying
AntiSquid: ya MSmits still early in the contest, everyone is shitting bugs
MSmits: yea
MSmits: opponent tracking will be interesting
MSmits: not because you want to eat them or avoid being eaten by them
MSmits: but because you want to know which pellets are still up
cegprakash: I was looking at this line for 30 minutes what's the issue
cegprakash: if (int p = 0; p < players[playerId].pacsCnt; p++)
cegprakash: I'm a crap
RockyMullet: I have tracking, its as good as "yeah they could be everywhere, good luck"
cegprakash: (╯°□°)╯︵ ┻━┻
MSmits: RockyMullet don't you track "possible pellets" ?
IAmNoob: can someone help me with hte "Vox codei"?
MSmits: like, when you have seen before that there was no pellet, you keep it recorded?
AntiSquid: hm ladder is stupid random atm
cegprakash: MSmits becomes #2 and u say ladder is stupid
cegprakash: coincidence or targetted?
AntiSquid: currently submit at top 50, but same submit was top 200 earlier ... the level of random is annoying
RockyMullet: MSmits yeah that I do
MSmits: me too, it is all i track currently
RockyMullet: probably the most important thing
Doju: Anybody got a very large and complex map?
MSmits: yes
AntiSquid: MSmits i suggest you don't resub in case you think it's just luck, enjoy your rank for longer
MSmits: i will wait until silver probably
JohnCM: as long as reach silver whatever rank doesn't matter anymore
RockyMullet: yeah im olding to a submit for silver too
JohnCM: i'm wondering if i should resubmit and risk it
JohnCM: haha
MSmits: i wonder how many will get to silver
AntiSquid: i mean this same bot barely got into top 100 earlier, now it's top 50 wtf bs random
RockyMullet: I hope really bad its under 1k
JohnCM: well you only get ~70 matches
cegprakash: I think at least 500 should be promoted
JohnCM: and given that sometimes you win 60-40 to a person
MSmits: will they do it by percentage, or by absolute rank. normally it is like top 300-400. But percentage-wise that would now be 800 or so
AntiSquid: nah let's keep the tradition of 50% :p
JohnCM: there's some luck
cegprakash: so that another 1000 will join soon
Doju: 500 ms precalc in 33*16 map
MSmits: is it 50% ?
AntiSquid: ya the cut off for silver
cegprakash: 50% is too much
Doju: not bad since there's still some more room
AntiSquid: is usually that
MSmits: thats a lot of pac people
AntiSquid: i am joking and would like to see everyone endure long submits, and so does Automaton2000
Automaton2000: i can help u with that
Illedan: Damn, Romka is at it -.-
RockyMullet: our savior
AntiSquid: submit more bots Automaton2000
Automaton2000: is it possible to use a for loop
MSmits: pulling me down too Illedan
cegprakash: if (int p = 0; p < players[playerId].pacsCnt; p++)
The problem was I used an if instead of for
AntiSquid: best way to do it infinite loop submit new bots Automaton2000 we have a week left
Automaton2000: honestly, i just about said it based on a board
cegprakash: and staring it for 30 minutes
JohnCM: haha the leaderboard is so exciting
MSmits: gonna get back to coding. HF guys
JohnCM: good to see that it keeps changing
AntiSquid: do we reach 3k before silver?
shashwat986: i'm pretty sure we do
IAmNoob: when is silver
IAmNoob: not today?
shashwat986: 3.5 hours from now?
IAmNoob: ok
shashwat986: is that accurate?
IAmNoob: yeah
Riyuk: already 2.9k
AntiSquid: probably half stopped participating anyway?
AntiSquid: tons of broken / bugged bots in there
cegprakash: mine is broken + bugged
RockyMullet: im surprise how many bots still dont go for the big pellets
Braykin08: I don't specifically tell mine to go for the big pellets. It just happen it's the most rewarding path :)
Doju: RockyMullet it's some work to implement that in a way that makes sense
RockyMullet: mkay, maybe its just that my bot is dumb and "go there take that big shiny thing" is good enough lol
Doju: :D
Doju: i've been thinking of adding them so that
Doju: if (distance_to_super)/(distance_to_normal) < some_constant
Doju: then go for the super
Doju: but i think i should just skip that step and go straight to more advanced things
Braykin08: I worked with that until the top 250, but changed it since then
Doju: hm
Doju: actually you know what?
Doju: Now that i have my precalc working at least semi-reliably, i could test its robustness by doing that
Peudoki: I'm ready for Silver
SemChumboPT: I'm ready too, many players will go to silver and i will go up on bronze :)
IAmNoob: :)
Jesus_inn_party: sup noob
IAmNoob: ?
Jesus_inn_party: are am not so sure they are going to release it today
IAmNoob: hopefuly
Doju: How do you organize your movement functions?
Doju: mine is a horrible mess of ifs and elses
SemChumboPT: mine are 25 elseif elseif
IAmNoob: BRUH:)
eulerscheZahl: generate valid moves, apply them, score outcome
Doju: SemChumboPT sounds like you need to hear this too :D
IAmNoob: mine is a main for loop
Doju: umm i don't really care about scoring the moves
Doju: just that my logic isn't this messy
Doju: for example atm mine is looking like this:
SemChumboPT: I'm ignoring everything...just look for the next pellet end go... no logic involved
IAmNoob: you wont go in silver
IAmNoob: if so
Jesus_inn_party: what rank o you have?
SemChumboPT: IAmNoob, this way i'm got for sure
eulerscheZahl: don't share a large chunk of code now Doju
Scarfield: ^
SemChumboPT: 1900 ( i was already on 1700, but got 1900 again)
AntiSquid: ya doju please don't
eulerscheZahl: where did that MSmits come from? :o
Doju: i was typing a vague explanation of what my code looks like
Doju: :/
AntiSquid: although it won't make much difference
Jesus_inn_party: dude are you copy pasting alll your ode here it looks like you are gone for ever
IAmNoob: ?
AntiSquid: we got streamer at around rank 200 things will get intense :p
Maciulis: anybody seen any impressive hunter bots? seems like a fun alternative
MSmits: hi eulerscheZahl
Scarfield: The Netherlands ifaik
Jesus_inn_party: yo when this silver rank is out?
IAmNoob: in 2h
BenjaminUrquhart: 3 hours or so
IAmNoob: or more
eulerscheZahl: 2h 45min if it's on time
IAmNoob: i think it wont be
Jesus_inn_party: :grimacing:
BenjaminUrquhart: it probably isn't
IAmNoob: about 5h
IAmNoob: or less
IAmNoob: 4h
IAmNoob: doint know
BenjaminUrquhart: also I somehow gained 50 places overnight
BenjaminUrquhart: kek
IAmNoob: i lost about 10000
IAmNoob: 1000*
IAmNoob: i was 500
IAmNoob: now 1500
IAmNoob: :(
MSmits: might be that there isnt much difference between a rank 500 bot and a rank 1500 bot
MSmits: could be a slight improvement from 1500 to 500
IAmNoob: i dont know
Jesus_inn_party: there is just one poblem with my code i could find now my pacs get stock!
Jesus_inn_party: *problem
IAmNoob: yeah
IAmNoob: but you can try
IAmNoob: to boost them
IAmNoob: i dont say how
IAmNoob: but you will see
Jesus_inn_party: :cry:
IAmNoob: :))
IAmNoob: dont worry
IAmNoob: we all had that problem
Scarfield: my code has one problem, it loses to many games :p
SemChumboPT: ^:)
mesavitae: haha, I can identify with that one
mesavitae: i think my code's biggest problem is me
IAmNoob: :)))
IAmNoob: my code biggest problem is: i dont know how i want my pac to eat enemyes
SemChumboPT: I'll start from scratch... be back in one hour!!
Hjax: MSmits you climbed quickly :O
IAmNoob: ok
IAmNoob: MSmits works hard
Hjax: meanwhile im here writing silly things that i know im going to scrap
Jesus_inn_party: this romka was 300th an hour ago!
mesavitae: I think eating enemies will be last on my list
Jesus_inn_party: mine too
IAmNoob: on mine not
IAmNoob: i have a solid dfs
mesavitae: nice
IAmNoob: and a solid algorithm about eating pellets
IAmNoob: but still not enaught
Jesus_inn_party: eating enemies is just a waste of time when there are more pellets to eat
IAmNoob: enought*
IAmNoob: Jesus_inn_party right
IAmNoob: but when are pellets
IAmNoob: far away
Jesus_inn_party: i am thinking that if there is no pellets visible go to a random place
IAmNoob: no no no no
IAmNoob: not in my case
Jesus_inn_party: but till now i did not have any problems with unvisible pellets
IAmNoob: i too
IAmNoob: but if you do so
IAmNoob: your pacs will stuck easy
Jesus_inn_party: if i solve my pacs stuck a big step will be picked
IAmNoob: yes
cegprakash: do we cin twice if one of my pacs is affected by speed?
Hjax: no cegprakash they move twice towards the last target
IAmNoob: cout you mean?
Hjax: your code doesnt run again
Hjax: i should check the ref to see how they path if theres two paths of the same length
AntiSquid: never too late for a new year's resolution: start reading problem statements
IAmNoob: the big old problem
IAmNoob: no visible pellets
IAmNoob: :(
Doju: IAmNoob then guess where they are?
eulerscheZahl: then go to the invisible ones
IAmNoob: ?
IAmNoob: nice joke
Doju: not a joke
IAmNoob: not you
eulerscheZahl: we are both serious about it
IAmNoob: eurler..
IAmNoob: ok
IAmNoob: what invisible pellets
Scarfield: unseen ones..
eulerscheZahl: at the beginning there's a pellet everywhere
wlesavo: euler so the actual change of inputs is coming?
MSmits: except where the pacies are
WaRiOrOfCoDe: i get them when other pac is line of vision
IAmNoob: ok
eulerscheZahl: mark those cells that you have seen and that have no pellet
Doju: good point MSmits
IAmNoob: good idea
IAmNoob: thx
eulerscheZahl: wlesavo i don't know more than you
eulerscheZahl: [CG]ThibaudToday at 2:28 PM We'll fix a few bugs and introduce a better way to detect dead pacs. It'll come with the Silver league tonight. I'll give more details later
Illedan: There will be bugs \o/
Doju: ohh that's amazing
MSmits: ah cool
MSmits: I love dead pacs
IAmNoob: :))
Jesus_inn_party: or just make an algorithem for times when no Pellet is invisible
eulerscheZahl: arena: 25 Pacman: 46 draw: 19 i think i'll submit that
Doju: well yeah, that's called guessing where the next ones are
Illedan: What is that euler?
SemChumboPT: It's easy to now it's dead if it's not returned on the loop
MSmits: he beat his arena version
MSmits: meaning its an improvement
Illedan: aha
MSmits: likely
eulerscheZahl: and i failed
eulerscheZahl: https://prnt.sc/sepu9h
Illedan: Crashing or loses?
eulerscheZahl: (╯°□°)╯︵ ┻━┻
Illedan: :D
Illedan: #Fail
eulerscheZahl: timeouts
Illedan: auch
eulerscheZahl: seems my machine is faster than the CG server
IAmNoob: :))
MSmits: mmh you do a full search of something that usually falls within limits eulerscheZahl?
eulerscheZahl: wait, i set another timeout for offline testing
MSmits: that makes more sense
PatrickMcGinnisII: i googled 'Plandemic' and google asked me if i was a robot... tell me the US govt. isn't packet sniffing?
Hjax: are all the top bots doing some kind of search?
eulerscheZahl: probably
MSmits: probably
eulerscheZahl: :D
MSmits: lol
AntiSquid: for loop search
Hjax: im at rank ~100 with no search, because i havent come up with a search strategy i like yet
IAmNoob: wut
MSmits: it's not easy to do here
IAmNoob: in bronze?
Hjax: yes
MSmits: why not
Hjax: my bot is just a handful of heuristics lol
IAmNoob: you lucky
MSmits: if you dont use strategies that work in higher leagues, you dont get out of lower leagues
IAmNoob: :))
Hjax: lucky? nah
IAmNoob: i think so
eulerscheZahl: oh, my IDE was still in release mode. and I only run the code bundler in debug mode. of course it was timing out :D
PatrickMcGinnisII: I thought silver was opening, anyone know when?
Illedan: IDE in release mode?
Illedan: PatrickMcGinnisII 18:00
Illedan: Gmt+
Illedan: 1
Illedan: 2 hours~
IAmNoob: why can't i read the map as a boolean variable
Hjax: searching imperfect information games is pretty weird
Hjax: at least its not something im super familiar with
eulerscheZahl: then make assumptions and set them granted for the search
MSmits: Hjax yea... it's not easy
Hjax: yeah thats less of a problem than deciding what search algorithm i want to use
Doju: IAmNoob that's basically whati'm doing and i'm at rank 871... soooo....
IAmNoob: any ideas about my question
MSmits: I found it more natural for ooc, where the imperfect information was the entire object of the search
Doju: or not booleans but ints but still it's a bad idea if you want to get far
IAmNoob: for the start
IAmNoob: i think bool is a good idea
Doju: well during the first move you have perfect information
IAmNoob: yes
IAmNoob: and all the turns
IAmNoob: you can mark them as eaten
IAmNoob: in the pacs x nad y
Doju: you have perfect information of the cells that are visible
IAmNoob: yes
IAmNoob: that's what i need
IAmNoob: i have a problem with the visible pellets
IAmNoob: so:(
Doju: i struggled with them for a while too but i'm sure you can make it work
Scarfield: there are no pellets on the starting positions of the pellets, it seems you are assuming that there is IAmNoob?
Scarfield: of the pacs*
IAmNoob: you right
IAmNoob: but is sill not much trouble
IAmNoob: still*
Scarfield: nope, but you wouldnt be able to see if opponent uses abilities in first turn, if you assume there are pellets on the pacs starting pos :)
IAmNoob: hmmm
IAmNoob: yes
IAmNoob: bad idea:(
IAmNoob: but still i am not the best of this competitions
IAmNoob: so i'll give it a try
Scarfield: sure, IAmNoPro either :p
IAmNoob: :)
Doju: why is there a huge crane right in front of the window of my apartment ._.
IAmNoob: ^___^
Scarfield: watch out for Dwayne Johnson running
Smartasskilling: In what for statement should I put my sorting?
duckquackduck: is there any way to print out your current state as JSON when using c#?
IAmNoob: Smartasskilling what sorting:)
Scarfield: are you using StalinSort? its O(n)
IAmNoob: :))))
Smartasskilling: Is the chat in the main website or is it like puzzle chat?
Scarfield: this is main ;)
eulerscheZahl: there is #world and country specific chats like #de #fr #ru in another language
Smartasskilling: Damn sry. I'm in the easy Temperature puzzle. There's a for statement where the program gives the values of temperatures. Can I sort the inputs in that for statement or should I provide my own for statement. In python btw and I don't know if the inputs make a list or how they are stored
IAmNoob: you can sort there
Smartasskilling: Thx
IAmNoob: np
ZarthaxX: MSmits WTF
IAmNoob: keep doing puzzles:)
MSmits: :scream:
IAmNoob: ;)
IAmNoob: ;(
ZarthaxX: when did you get 4
ZarthaxX: lol
ZarthaxX: beast
MSmits: I got 2 a while ago, but Romka kicked me down
eulerscheZahl: casually sets himself at #4 out of 3700 players
IAmNoob: :)
ZarthaxX: strong random search
MSmits: yeah thats all it is really
ZarthaxX: eulerscheZahl you dropped that search and now smito proves you wrong
ZarthaxX: :c
MSmits: the rest of the bot is pretty basic
ZarthaxX: thought random would kind of fail finding paths at some point
ZarthaxX: but i guess it helps giving some sort of collaboration between pacs?
Doju: is there some logic to the fact that the syntax for union of sets is | and not + in python?
MSmits: i dont want to get into too much detail, but there's many things you can do with monte carlo to make it better, as euler will tell you
ZarthaxX: sure
MSmits: it does help a lot with collaboration yes
BenjaminUrquhart: Doju google it
shashwat986: It's | in ruby too
MSmits: as you consider a combined strategy, not a singular pac strategy
shashwat986: the concept is UNION = OR from a mathematics perspective
MSmits: and do suffer from a depth limit still, it's at 8 turns, after that, it wont see pellets
ZarthaxX: well gz smito
MSmits: thanks
IAmNoob: finally i got a solid bot
IAmNoob: yessss
MSmits: grats
Doju: gj, IAmNoob
ZarthaxX: there is smth i dont get tho
Cappefra: I think after 8 pellets your eval gets pretty imprecise anyways unless you also have a strong opponent tracking, right?
MSmits: whats that
ZarthaxX: i didnt submit in 24hs and i got from like 90 to 29 now
BenjaminUrquhart: close one MSmits https://www.codingame.com/replay/461055091
ZarthaxX: we really need more games
BenjaminUrquhart: ZarthaxX same
eulerscheZahl: silver is near
Hjax: MSmits your bot is monte carlo?
ZarthaxX: 2 hs toad?
MSmits: yes hjax
Cappefra: my bot is conte di monte cristo
eulerscheZahl: yes
ZarthaxX: lmao Cappefra
BenjaminUrquhart: it's because the top people keep resubmitting and I can beat them half the time
Hjax: im torn between monte carlo, minimax, or some kind of A* pathfinding
IAmNoob: i use dfs
IAmNoob: is easy enought
tutubalin: my typical game: https://www.youtube.com/watch?v=15Cs0FQ8vfw
shashwat986: are you guys using monte carlo for time-efficiency?
ZarthaxX: BenjaminUrquhart randomness is strange
MSmits: of those 3 only the first will be good if you have a fast language. If not, then A* or bfs or whatever will be better
MSmits: you need collaboration between pacs
Hjax: does java count as a fast language :P
ZarthaxX: MSmits anyway beware that a dude that was like 7yesterday with same submit ended 130
IAmNoob: yes
Hjax: java is like, fastish
MSmits: A* wont do that, minimax is not good for this i think
MSmits: java is fine
Hjax: probably not "fast"
MSmits: c++ would be better of course
IAmNoob: i use c++
MSmits: my bot simulates 8 turns for all pacs half a million times in turn 1 (with 1 second)
wlesavo: tutubalin :grinning:
Hjax: if i end up writing a time sensitive search strategy ill port it to C++ if time becomes an issue
Hjax: thats a weekend problem though
Hjax: doesnt really matter at this stage
Peudoki: I still only use 1-2ms per turn, so the 50ms is plenty for now
MSmits: ZarthaxX I am just happy the search is working and I can focus on smaller details now... I dont mind if it drops back down to 30-50 or something
Hjax: how many sims do you do on turn 2 MSmits
ZarthaxX: MSmits good point :P
MSmits: Hjax, depends on the number of pacs i guess. Between 20-50k
MSmits: also on the map size and stuff
MSmits: and the cpu my bot is assigned
Hjax: do you do entirely random rollouts, or are your pacs biased towards pellets?
IAmNoob: we are close to 1950
IAmNoob: 2950*
MSmits: dont want to give details like that atm.
Hjax: ah no problem
MSmits: will do full explanation in PM of course
IAmNoob: :))
ZarthaxX: fair
IAmNoob: as usually
BenjaminUrquhart: Hjax fyi, you might want to deal with blind collisions at some point https://www.codingame.com/replay/461147455
MSmits: thats half the fun for me... it's always painful to keep things to myself :(
IAmNoob: for me too
IAmNoob: but i am kina noobish
Hjax: @BenjaminUrquhart dont take anything my bot does seriously right now lol
BenjaminUrquhart: too late :eyes:
Hjax: my bot does a lot of horrifically bad things
ZarthaxX: MSmits keep going then :)
uvBoss: im on the verge of extioncion
ZarthaxX: i have notepad open
Hjax: it was just some heuristics to make sure i could parse the game state
MSmits: will do
uvBoss: extionction*
MSmits: oh
MSmits: not with talking no :P
ZarthaxX: u didnt get it haha
BenjaminUrquhart: extinction*
uvBoss: lmaoooo
uvBoss: @BenjaminUrqhart do u recognize me?
uvBoss: changed my dp cover and my username
BenjaminUrquhart: can't tell, I'm not following you
cegprakash: wait what.. I can't move 1 step when I'm on speed?
cegprakash: 2 steps are compulsory
eulerscheZahl: ye can
Hjax: you can cegprakash
cegprakash: I can?
eulerscheZahl: yes
SemChumboPT: if you hit a wall
eulerscheZahl: you can even move 0 cells
BenjaminUrquhart: if you specify a space 1 away
MSmits: you can't reflect from a wall though
MSmits: you wont pick up a pellet that way
SemChumboPT: I'm trying one space but he walks 2 anyway
uvBoss: im the_joker_100 if u wonderin
Nerchio: wall jumping in this game would be fun
Nerchio: :slight_smile:
eulerscheZahl: btw not sure if it was mentioned already: biggest CG contest ever :tada:
Nerchio: nice
Peudoki: just download this wallhack.exe Nerchio
uvBoss: noice
Scarfield: :metal:
Nerchio: how do i add msgs to my bot i dont understand this description
Nerchio: nothing is working
eulerscheZahl: MOVE id x y text
goolmoos: after the cmd nerchio
Nerchio: yeah cant make it work xD
SemChumboPT: I have dificulties reading the text, it's too dark
Jesus_inn_party: guys is the league free or not
Scarfield: output it as one string
eulerscheZahl: do you have messages turned on in the viewer Nerchio?
Scarfield: MOVE id x y text|MOVE id x y text
eulerscheZahl: the wheel at the bottom
cegprakash: okay my sim is wrong for move2
cegprakash: let me add unit tests for move2
Nerchio: yeah
Nerchio: ok it works now
eulerscheZahl: do you see messages of other players?
Bastett: I think I'm missing something here. I run a speed boost, but still run half the speed of the other guy. Idon't see any documentation about levels of speed...
Nerchio: maybe my bots went some way where they avoided the added statement
Nerchio: bugs :stuck_out_tongue_closed_eyes:
Bastett: his command appears to be SPEED X QS
Bastett: have I missed something important?
Hjax: Bastett you need to give a command at least 2 squares away
GreatTux: if you have speed boost but give move command to the next tile you move by one
shashwat986: is it usual for one particular turn to take 46ms, and then, on a rerun take 200ms?
Hjax: your code doent run twice when you speed
Bastett: Hjax that would be it
Bastett: wonderful
Bastett: thanks :)
SemChumboPT: Send: SPEED bot LightSpeed
SemChumboPT: :)
Bastett: I suspect this quick change may bump me up the ranks somewhat
Doju: Uumm okay
Doju: my rank just dropped by almost a thousand for absolutely no reason
CodinBotChatRelay: _creepersbane#2074: Sounds reasonable /s
CodinBotChatRelay: _creepersbane#2074: Before anyone complains, I’m on my phone and my MUC chat app is broken
ZarthaxX: benja?
CodinBotChatRelay: _creepersbane#2074: E
Scarfield: that will not stop me from complaining.. grr "rage" grr :p
CodinBotChatRelay: _creepersbane#2074: 👀
eulerscheZahl: connect the chat bot with your own account and we won't even notice what you are doing
Hjax: bronze boss is chosen from the pool of existing bots right?
eulerscheZahl: yes
duckquackduck: hmm, we are not allowed to use Newtonsoft.JSon package for C#? (for spring challenge)
Hjax: how is that chosen? what rank?
SemChumboPT: there are bots on the pool?
eulerscheZahl: jupoulton2 at 731 is a good candidate i think
SemChumboPT: where's that pool?
eulerscheZahl: the boss will be a bot from the leaderboard
eulerscheZahl: CG chooses a rank where they want the boss to be and sets it as boss
cegprakash: I've never been boss
Peudoki: from what postition though?
AntiSquid: top 10
eulerscheZahl: CG decides how big they want silver
AntiSquid: it's bronze afterall
BoBot: aren't there other conditions like being deterministic?
BoBot: i.e. not using random in the bot
AntiSquid: yes
eulerscheZahl: the gold boss will be around rank 10 usually
CodinBotChatRelay: _creepersbane#2074: No random and no messages
cegprakash: u can achieve deterministic with random using seed
eulerscheZahl: being deterministic is a plus
cegprakash: and constant no. of sims
eulerscheZahl: also taking little CPU time
BoBot: you get what I mean, and I get you :)
eulerscheZahl: and short code, as CG takes a quick review
AntiSquid: BoBot they might pick a random bot actually
Peudoki: do you think the best codes are already gold worthy?
AntiSquid: yes
AntiSquid: well not worthy
AntiSquid: but they will promote
BoBot: people are often annoyed testing against non-deterministic, that is probably the reason
Nerchio: ofc they are come on :D
Doju: Oh how did i manage this
AntiSquid: i expect top 200 and above might reach gold anyway even if they don't improve ... maybe more than that
BoBot: https://steamcommunity.com/sharedfiles/filedetails/?id=1763629953
CodinBotChatRelay: _creepersbane#2074: Imagine improving your bot
Doju: I don't think i made any changes and now pac 3 is always going off the map
Hjax: bots get better pretty quickly, i dont think my current bot (rank 91) would reach gold as is
AntiSquid: 100% sure it will
Hjax: i dont think i had any trouble getting gold in unleash the geek, legend took me a little while i think
ZeroByter: Silver open yet?
CodinBotChatRelay: _creepersbane#2074: Hjax how's your UTG "bronze bot"
Nerchio: first turn what a joke
Nerchio: https://www.codingame.com/replay/461164046
AntiSquid: there's worse nerchio
Hjax: what do you mean my bronze bot?
BoBot: well that can be both predicted and countered :)
BoBot: not that I have done so :D
CodinBotChatRelay: _creepersbane#2074: You said your bot played like a bronze one 😛
JohnCM: that is true, against monte carlo algo, even if i change my algo, the outcome is non-deterministic
AntiSquid: if i find replay again i will show it to you, but basically had scissors sitting next to enemy rock in a dead end, all the rock has to do is wait for the scissors to waste the cooldown or risk kill it, but waiting is easier
Hjax: my final utg bot was pretty good i think
Hjax: i did a few clever things
NaVin: how to change speed and pac type
AntiSquid: so what's your most impressive stunt Hjax ?
BoBot: but you cannot with certainty eat anyone right? because it is RPS, every move can be countered
AntiSquid: in utg
Hjax: tracking my opponents radar cooldowns, since most bots always prioritized a radar over a mine if it was available
Hjax: was a nice meta observation that i dont think many others made
anid: Silver Pacman in 1 hour?
Hjax: i mention it in my postmortem
AntiSquid: you can if the enemy is stuck behind your pac and your pac counters theirs, you can play the waiting game, nobody will do the waiting game as well and then once they wasted their cd, you switch and eat them ... i dunno maybe there's more since there are other pacs
AntiSquid: bobot
BoBot: do you know if someone used their CD?
Hjax: you can see their cooldown
Hjax: its given to you
BoBot: that information is not given is it? oh, ok :D
Scarfield: for visible pacs, all info about them is given
BoBot: ok, then I guess it is true, because you cannot switch and move in the same turn
BoBot: so whoever goes first can still be countered
AntiSquid: oh yay, found a bug that once fixed drops me 100 ranks :D (80 to 180)
cegprakash: why do I have a code like
cegprakash: pacMan.pos + dir[move.vec[0]];
cegprakash: :(
Doju: That's always fun AntiSquid
cegprakash: it should be +=
BoBot: there are actually pretty complex RPS strategies/bots, I tried a bit on this site last year: http://www.rpscontest.com/leaderboard
NaVin: AntiSquid can you tell how to change pac speed and pac type
BoBot: surprisingly high winrates for the top ones
AntiSquid: yes it's in the statement NaVin
Riyuk: ceg your code should not even compile with these syntax errors
AntiSquid: read the problem statement
NaVin: I read but don't get idea
cegprakash: Riyuk that's no syntax error
NaVin: Do I need to print SPEED ,pac_id,coordinates
ZeroByter: no?
ZeroByter: Just print 'SPEED 2', then on the next turn, move two or more cells away
Riyuk: ceg my bad :D a simple addition
ZeroByter: Note: U can not move (or do anything) while ur pac is using speed. In general, each pac can only do one thing at a time
BoBot: I'm a pac with a one track mind...
RavenKZP: is there any MSG command?
DomiKo: just do
DomiKo: MOVE id x y MSG
Nerchio: silver in 20 min? or 1h20min?
ZarthaxX: the latter
Riyuk: 20 mins!
Quidome: 1:20
Riyuk: :/
AntiSquid: hi guys
ZeroByter: What's a good method for coming up with strategies? I try playing games, reviewing the replays I lost and correcting mistakes but it doesn't seem to help and actually make things worse sometimes
AntiSquid: when is silver out?
CodinBotChatRelay: _creepersbane#2074: Next week
Quidome: T-1:20
CodinBotChatRelay: _creepersbane#2074: Clearly
RavenKZP: <3 nice ty @DomiKo
DomiKo: no problem @Raven
Nerchio: hey antisquid
Nerchio: do you know when silver is coming out
Hjax: 1 hour 15 minutes from now nerchio
Quidome: :P
jrke: any news about bos
jrke: s
AntiSquid: ah only nerchio gets it
AntiSquid: nerchio i fixed a bug today
Doju: lol youre still going with that
AntiSquid: hm maybe i should tell someone else though
AntiSquid: hey MSmits i fixed a bug
Doju: euler is online
AntiSquid: thought i'd let you know
Counterbalance: I can show you how to fix all your bugs at once AntiSquid
Nerchio: you fixed a bug?
Nerchio: only 1000 left :D
MSmits: thats great AntiSquid
Doju: Counterbalance ctrl+a -> del ?
Counterbalance: close! main(){}
pde-bakk: heyq guys i got a question. is it possible to see how long it takes to finish a function (if that makes sense)?
DomiKo: any guesses about number of people in silver?
AntiSquid: need 2 more for that benwoo
AntiSquid: looks like a hack Counterbalance, i don't trust you, you want me to hack the servers
jrke: hey i can defeat nerchio but still my rank is 785
jrke: https://www.codingame.com/replay/461173824
jrke: why this?
Nerchio: i was debuggig this game just a sec ago lol
Nerchio: and decided you were just lucky :D
Adnmaster: if you defeat someone it doesn't mean you will be better than him, you have to win more people than him... jrke
AntiSquid: jrke maybe he has a premium account, game is rigged towards P2W
Nerchio: yeah i get double points for winning
Nerchio: 5$ a month
ZeroByter: sign me up
jrke: how to get premium account as i spend only 1 month on codingame
vtenneke: I dont think premium accounts are a thing ;)
jrke: look i also defeated euler
jrke: https://www.codingame.com/replay/461129964
AntiSquid: you need to use the special key word when you ping Automaton2000, if you give it the right keyword it gives you premium, keep trying, maybe you get lucky jrke
Nerchio: your bot is insane
Automaton2000: but i see no way to get into legend
ZeroByter: i defeated antisquid once on one map :P, but then when i played on different seeds i lost. still felt a little good about myself there
jrke: whats keyword
AntiSquid: any word
AntiSquid: just type some words and Automaton2000
Automaton2000: 90% of the time though
jrke: any word
CodinBotChatRelay: _creepersbane#2074: I can defeat everyone on occasion except illedan
MSmits: hey, nice improvement AntiSquid
Illedan: Unless you try my current bot
AntiSquid: you didn't ping Automaton2000 jrke
Automaton2000: would you have to write the same code
AntiSquid: MSmits not really lol
avdg: we fail forwards?
AntiSquid: had this rank since yesterday, done a few changes, fixed a bug and then dropped 100 ranks, undid the bug and resubmitted
Nerchio: lol
Jesus_inn_party: sup ewery bodeeeee!
AntiSquid: now i am thinking how to use this special bug as in my scoring function
MSmits: ohh ok
Jesus_inn_party: guys the league is not still out?
Maciulis: 1 more hour
avdg: bug abuse :p
avdg: jk
AntiSquid: Jesus_inn_party should know when silver comes out :thinking:
jrke: what can i do to be lucky
AntiSquid: i mean it's jesus
CodinBotChatRelay: _creepersbane#2074: They way my bug fixes work is they fix the bug but don’t improve my overall score
CodinBotChatRelay: _creepersbane#2074: So it’s like "why did I bother"
jrke: dbdr you have time out
Jesus_inn_party: am not sure that people that are holding the competition know themselves
jrke: look https://www.codingame.com/replay/461183961
jrke: dbdr time out
BenWo: _creepersbane - hard to improve the bot when you don't understand why it's behaving a certain way, that's why
CodinBotChatRelay: _creepersbane#2074: Also, it’s doing so well I’m afraid to touch it
avdg: currently I'm only nuding my internal scoring system :p
avdg: *nudging
CodinBotChatRelay: _creepersbane#2074: Unfortunate typo
avdg: wow my computer is that slow it didn't pick up keys
JohnCM: haha. i resubmitted the same algo and got 100 places lower. so yep pretty random leaderboard ranking now
avdg: mine goes up and down
JohnCM: quite sure if i resubmit again it will fluctuate. so just gonna wait for silver
avdg: but mostly top 800
JohnCM: sounds good:)
AntiSquid: it always fluctuates
JohnCM: after getting inspired by MSmits I think I should do a heuristic-based monte carlo algo
JohnCM: gonna reprogram from scratch tmr
jrke: why this 2 win against euler 1 against nericho and 1 against dbdr but my rank 782
MichaelVonWolfen: when is Silver opening?
MSmits: good luck JohnCM
JohnCM: thanks MSmits! but i shall see if python can make it
JohnCM: maybe need to switch language
MSmits: ouch python... will be hard, you'll get 5k sims at turn 1 at the most I think, if you do it carefully
JohnCM: hmm.. then maybe C++
MSmits: you should, if you're confortable coding in that
MSmits: I am not btw... but still getting better :)
JohnCM: my ultimate tic tac toe bot I only could run 10 iterations with python
MSmits: yea ok, so no python then :)
JohnCM: so i think probably won't work
ZarthaxX: that's a ton!
ZarthaxX: you can do a lot with 10 sims
H1ggsb0s0n: I see two guys in top 10 are using Python, so it should be possible to rank high with Python
Illedan: 10 sims :D
Nerchio: you can take the closest pellet with 10 sims
MSmits: H1ggsb0s0n right now...
ZarthaxX: wait for last day H1ggsb0s0n
JohnCM: i can take closest pellet with 1 sim
ZarthaxX: JohnCM thats huge!
jrke: hey again a win against romka
Doju: Illedan imagine the possibilities
jrke: https://www.codingame.com/replay/461189040
H1ggsb0s0n: I chose to brute force my way with C++ and was able to get away with some complex algorithms before timing out
JohnCM: lol.. it is either move there or don't move
jrke: this isn't my luck
JohnCM: anyway that was meant to be a joke
jrke: what can i do my rank sucks
ZarthaxX: JohnCM i know it was, it's sad :(
Doju: i've sunk like 200 ranks in half an hour
JohnCM: haha oh well
PatrickMcGinnisII: pde-bakk did u get an answer for your question? There are different clock functions for timing depending on your language, and you can always send the result to the error log
Doju: people must be submitting their bots before silver opens
mesavitae: anyone mind answering a few questions about applying an algorithm?
jrke: what mesavitae
pde-bakk: @PatrickMcGinnisll Yeah I found some time stuff in ruby so I can keep track of it. Thanks man!
dbdr: jrke: https://cg.spdns.eu/wiki/FAQ
jrke: K dbdr
Illedan: :sob:
dbdr: let's celebrate our new FAQ page :)
avdg: anyone could write that :P
dbdr: that's the idea
avdg: there goes my trust ;-)
josegomez: anyone know why if I have boost on and so does openonent I get skipped a round?
avdg: rounds gets added on speed boost
josegomez: https://jcg.pictures/gdhcWggihagfUgc.png
avdg: not sure about mechanic
josegomez: we both did speed boost, but then he gets an extra turn
Scarfield: you need to target a cell 2 moves away, otherwise you only move one cell
Scarfield: np :)
avdg: meh :p
AntiSquid: rust new meta
WaRiOrOfCoDe: silver league started?
AntiSquid: :/
Hjax: i dont think silver is open yet, looks like they are testing something?
AntiSquid: me and Automaton2000 are in silver
Hjax: i see Maxime in silver
Automaton2000: i made it to legend
AntiSquid: oh nvm then
WaRiOrOfCoDe: but maxime has 0 score
dbdr: you need to cheat to get to silver
Hjax: theres no one else in silver for maxime to play against
Hjax: so yeah, 0 rating lol
Doju: how does that bot give such context-aware reponses? :o
WaRiOrOfCoDe: that's beyond science
Riyuk: looks like they are preparing the opening of silver
Doju: aaaa i gotta finish this thing quick D:
AntiSquid: 45 minutes left afaik
AntiSquid: or they start early because they want to promote 1000
AntiSquid: :D
H1ggsb0s0n: how do we make it to silver ? Do we need to resubmit the code or will the top x% be promoted ?
WaRiOrOfCoDe: we have to beat default ai to get silver?
AntiSquid: no don't resubmit
Hjax: you dont have to do anything H1ggsb0s0n
Riyuk: it's automatic
Hjax: just wait, it will promote people automatically
WaRiOrOfCoDe: on what basis?
AntiSquid: you need stable rank and be in the upper half of bronze to get promoted H1ggsb0s0n
H1ggsb0s0n: ty
WaRiOrOfCoDe: i have to jump 300 ranks damn
AntiSquid: it's roughly 50%
AntiSquid: not exactly .
AntiSquid: maybe less ?
WaRiOrOfCoDe: yeah that jump is also rough estimate
Riyuk: could be less, could be more :D
AntiSquid: def not more :D
H1ggsb0s0n: Is the promotion a one time thing ? Can one make it into silver if they missed their chance the first time ?
avdg: very exciting place :p
MSmits: H1ggsb0s0n yes
MSmits: its often easier to make it later
AntiSquid: you can promote anytime before contest ends
Hjax: depends on who the bronze boss is
MSmits: except on gold boss
Hjax: oh i missed some scrolling
avdg: so when will gold open?
Hjax: gold will open wednesday
Hjax: legend will open friday
Hjax: iirc
ZarthaxX: ye
TheBigFatFlamingo: hi
Doju: hi
TheBigFatFlamingo: im new
TheBigFatFlamingo: is it fun ?
WaRiOrOfCoDe: yeah
Doju: Very fun
karliso: http://chat.codingame.com/pastebin/7c4add9d-19c9-4bfb-b54c-17460362a9bd
TheBigFatFlamingo: is somewhat easy? haha
TheBigFatFlamingo: oh ok
MSmits: you're right karliso
MSmits: it's not a perfect description
TheBigFatFlamingo: whats after the tutorial?
WaRiOrOfCoDe: everything is easy with right knowledge and hard work
MSmits: it should be described as separate turns, with two eating phases
karliso: MSmits oh, ok.
H1ggsb0s0n: karliso, check step 5 above: Repeat for any pac with an activated SPEED ability.
BenWo: TheBigFatFlamingo - most of us are working on the Spring Challenge
MSmits: ah yes
karliso: H1ggsb0s0n yes, but it is how collisions are resolved.
TheBigFatFlamingo: whats with the profile pic?
TheBigFatFlamingo: can i change it?
WaRiOrOfCoDe: yes
TheBigFatFlamingo: how?
BenjaminUrquhart: your profile
BenWo: top right menu > profile
BenjaminUrquhart: [CG]Maxime stop hacking kthx
WaRiOrOfCoDe: go to your profile page
kovi: he is already silver
eulerscheZahl: how does it feel to be #2 again kovi?
avdg: hmm added a tweak to prevent my bot from sending far destinations
avdg: not sure if I should deploy now
TheBigFatFlamingo: got it
Riyuk: eulerscheZahl you know more than him about this feeling :p
eulerscheZahl: :cry:
TheBigFatFlamingo: whats after the tutorial lol?
BenjaminUrquhart: stuff
TheBigFatFlamingo: wow
avdg: too late
TheBigFatFlamingo: can you learn coading from this?
BenjaminUrquhart: kind of
TheBigFatFlamingo: sorry for all these questions
avdg: everyone has to learn
TheBigFatFlamingo: yeah im doing a class and i want to have some kind of base
TheBigFatFlamingo: sorry for my english also
Doju: TheBigFatFlamingo to be honest I think coding under a time limit teaches you to write sloppy code
H1ggsb0s0n: unfortunately this has almost anything to do with production quality code
TheBigFatFlamingo: its timed?
Doju: well, clashes have a time limit
Doju: and the spring challenge ends in 6 days
TheBigFatFlamingo: oh..ok
TheBigFatFlamingo: well cya later
TheBigFatFlamingo: imma try to sole something
Doju: alrghty, cya
BenWo: there are tons of non-timed exercises on the site too
Kellthazar: submit a new changes aborts the previous one, right?
BenjaminUrquhart: yes
BenjaminUrquhart: [CG]Maxime stopped hacking
AntiSquid: yes but 20 minutes left till silver i wouldn't submit anything now
avdg: in the worst case, you can grab your previous version from history
avdg: and meh I'm fine, 1300th and climbing
Kellthazar: Im controlling my changes locally with git
AntiSquid: i think i found a way to get rid of my bug without losing ranks, but won't submit now to check
BenjaminUrquhart: 75 people computing smh
BenjaminUrquhart: eulerscheZahl what happened to you
Quidome: What is the 'standard' amount or percentage promoting to gold
eulerscheZahl: why?
BenjaminUrquhart: ok
eulerscheZahl: just a few timeouts, no big deal
BenjaminUrquhart: ah
eulerscheZahl: scoring is expensive
AntiSquid: 25% probably Quidome
cegprakash: what does it mean if my unit test is passing but prediction does not :O
Quidome: ok, thnxs
Kellthazar: My death avoidance code was checking all the cells out of the range of threat except the one that he's just sitting at the moment... hahahaha
AntiSquid: top 25% of silver
eulerscheZahl: jupoulton at 811 now. i bet that will be the boss
eulerscheZahl: but why is maxime submitting? way too high
avdg: I will soon be higher than 800
AntiSquid: early gold :p
eulerscheZahl: thibaud also has a good position for a boss at 650 i think
ZarthaxX: the 350 is that bad?
AntiSquid: you think the cut off will be that high ?
Crypticsy: hey the game broke , 235 frames https://www.codingame.com/replay/461215058
Hjax: is the boss always a CG account?
eulerscheZahl: no
eulerscheZahl: but for lower leagues the odds are good
avdg: someone was speeding?
Peudoki: 200 rounds, so could be more than 200 frames
dbdr: I hope they don't recompute silver, that would be a lot...
AntiSquid: oh they changed it ! hah !
AntiSquid: no more loss by frame-out
BenjaminUrquhart: dew it, let the world burl
BenjaminUrquhart: burn
Hjax: thibaud has a starcraft profile picture, so i approve
AntiSquid: you can't outframe the opponent
dbdr: sth on the forum?
avdg: well, they don't look too much at github anyway... my pr is still as deserted as before
TheBigFatFlamingo: how am i soppused to sole the Thor level if they didnt even tell me what to do?
TheBigFatFlamingo: supposed
Quidome: Uh, so it is 200 turns now instead of frames?
BenjaminUrquhart: yes
BenjaminUrquhart: not like most games last that long anyway
dbdr: where are the changes documented?
dbdr: no recent commit on github
eulerscheZahl: let's wait for league opening
avdg: maybe they didn't push to github
wlesavo: 74 computing :slight_smile:
dbdr: > We'll fix a few bugs and introduce a better way to detect dead pacs. It'll come with the Silver league tonight. I'll give more details later
dbdr: what Thibault said on discord
eulerscheZahl: i know
avdg: *doesn't track discord
Kellthazar: Rank 343...
dbdr: I'm ambivalent on the change, makes sense, but I already worked on trying to detect dead opponents
eulerscheZahl: exactly my opinion
eulerscheZahl: eulerscheZahlYesterday at 10:59 AM and while it's still relatively early in the game, it's always annoying to those who already wrote code to deal with the problem of missing information
dbdr: not critical, and probably some of it will still be useful, but still, questionable
dbdr: no big deal anyway, there is still time :)
eulerscheZahl: and some were warned about the possible change
dbdr: ah, missed that
BenjaminUrquhart: what will come first, aps starting or silver
dbdr: the 200 frames, I did not even notice
eulerscheZahl: Neumann brought it up on the moderators channel on discord
dbdr: what about the crossing pacs I read about?
dbdr: is this a bug or a feature?
eulerscheZahl: so i knew about it yesterday morning already. a little unfair
dbdr: if someone has a replay, btw...
anid: No git updates yet?
dbdr: https://github.com/CodinGame/SpringChallenge2020/commits/master
anid: Not for Silver right?
eulerscheZahl: that's just a mirror of the private referee repo i suppose
Kellthazar: What changed?
eulerscheZahl: so there might be some changes, just not reflected in the public one
eulerscheZahl: so far nothing changed. but i expect dead pacmen in the input
eulerscheZahl: eulerscheZahlYesterday at 9:53 AM i think the only way not to break bots is to have 2 protocols and allow the user to turn it on like MOVE 0 7 10 | PROTOCOL2
BenjaminUrquhart: I assume they're given negative coordinates
eulerscheZahl: let's see if they follow my advice
dbdr: without breaking existing bots, by the way?
dbdr: looks reasonable
dbdr: BenjaminUrquhart that can break existing bots
Kellthazar: But we already have this information...
dbdr: very hard no to
BenjaminUrquhart: dbdr I know
dbdr: MOVE 0 7 10 | PROTOCOL_SECRET_SHOW_ALL_PACS ;)
kovi: silver
BenjaminUrquhart: silver
eulerscheZahl: damn
eulerscheZahl: i'm submitting
BenjaminUrquhart: got frozen at 00
eulerscheZahl: oh, finished just in time
NormantasStankevicius: SUBMITTING!
BenjaminUrquhart: ey
WaRiOrOfCoDe: is gane of 300 frames
Dav1dS: kovi is still bronze on my end
WaRiOrOfCoDe: i just got one
BenjaminUrquhart: k my bot crashed
ZarthaxX: ded server
eulerscheZahl: only 200 to silver :o
BenjaminUrquhart: InvalidArgumentException
Cappefra: woooot
ZarthaxX: eulerscheZahl what a cut
Doju: wow
Cappefra: 200? wtf
eulerscheZahl: :D
dbdr: > typeId: the pac's type (ROCK or PAPER or SCISSORS ). If the pac is dead, its type is now DEAD.
aCat: how do you know?
Nerchio: i am in the middle of submit come on haha
Cappefra: that's an op bronze bot
dbdr: CG always overeacts
dbdr: gold will be big, legend will be tiny
NormantasStankevicius: What are the preferences of pac to go when compared north east west south? when getting closer the a pellet I want?
dbdr: since bronze huge and silver small
eulerscheZahl: i thought they would be gentle this time with so many new players
NormantasStankevicius: North > east > south > west?
aCat: oh now i see
eulerscheZahl: http://chat.codingame.com/pastebin/0f9d6df5-0c93-41d2-81b3-33f60ceb3a26
MindControler: If enemy pack is dead it is visible always now?
dbdr: type DEAD
kovi: broke bot then
ZarthaxX: that's why the timeouts?
eulerscheZahl: typeId: the pac's type (ROCK or PAPER or SCISSORS). If the pac is dead, its type is now DEAD.
Hjax: oh that crashes me LUL
kovi: oh well, no testing this time
eulerscheZahl: yeah, my bot is broken too now
WaRiOrOfCoDe: here my 220 game
WaRiOrOfCoDe: https://www.codingame.com/replay/461228570
WaRiOrOfCoDe: i am not joking
BenWo: sweet, added 150 lines of code and my bot is exactly as crappy :stuck_out_tongue_closed_eyes:
eulerscheZahl: i'm trying to move a dead pacman of my own
Cappefra: wait but... If the bot was mine I could already detect that it was dead cause well, it's not there anymore
JohnCM: yay made it to silver
avdg: my ai survived the bot, but the bot is muh higher than me
Cappefra: so is that input meant for bots that I just ate?
penguinblaze: when you have 231 long game "something's wrong i can feel it"
WaRiOrOfCoDe: same
WaRiOrOfCoDe: 220 long
AntiSquid: made it to silver, close call
WaRiOrOfCoDe: another one had 300
Peudoki: are dead pacs globally visible?
avdg: no
anid: So they took 200 to silver
avdg: you should detect the lack of them yourself
AntiSquid: lol woot only top 200 silver? :D
Cappefra: that's not even 7% cutoff wtf
avdg: mine easily beats the bot but I am at rank 400 now
Nerchio: people will push the bot some more just wait
uvBoss: :sob::sob::sob::sob::sob::sob::sob::sob::sob::sob::sob::sob:
Riyuk: I guess it's not over yet
Riyuk: only 200 fo now
kovi: resubmit
AntiSquid: oh so maybe 200 at a time to not kill the server completely ? keep it in a half dead state
NormantasStankevicius: I assume legend will have like 4 people
eulerscheZahl: they didn't even resubmit?
eulerscheZahl: just move us up
njaber: So what's the deal with dead pacs? Do we get them logged?
AntiSquid: that's cool imo
eulerscheZahl: i see no progress circles
AntiSquid: i prefer instant move than resub
eulerscheZahl: oh, 20 games for the whole submit
avdg: I wonder if the bot was given a high score at the start
eulerscheZahl: that's even less than bronze, come on
dbf: only 20 games in silver
kovi: :o
eulerscheZahl: 10 actually
eulerscheZahl: the other 10 are from other players fighting against you
josegomez: anyone know of a way to battle a specific player you follow/
kovi: well, maybe its ok because of dead
mesavitae: in the players tab, you can delete the bot and pcik who you want
Quidome: delete the boss
dbdr: maybe only for the initial run?
dbf: eulerscheZahl, but these games affect my rating?
Peudoki: I was hoping more games in silver, not less
[CG]Thibaud: there will be more
Peudoki: nice
[CG]Thibaud: after the opening is complete
dbf: cool, thanks
Hjax: ok unbroke my bot
dbdr: nice hack :D
Hjax: crashed every game where an enemy died lol
Cappefra: I think I'm missing something about the dead bots thing
Riyuk: http://chat.codingame.com/pastebin/4f0748e8-ba93-4702-bd50-f1b338df4ad2
KRAKEN: I sent a lost game(which ended in 10 frame so obviously an error from my side) to my IDE, but when I run it from IDE it works and I win, any idea?!?!!??!
JohnCM: ya now i need to skip the input phase if the type_id is "DEAD"
JohnCM: minor change to code
MindControler: Well got my reason to rewrite the code
Peudoki: wait for the server lag to calm down
avdg: check the codingame faq to check the software its running
avdg: it might be different
Cappefra: but why was the change made? I don't get the use of this input
avdg: https://www.codingame.com/faq
Nerchio: i dont want a better job cg..
Cappefra: @nerchio lol
Nerchio: just want to be in silver
aCat: you always see opponent dead bots now?
anid: Does anyone else have continuous timeouts now?
MindControler: There is new type "DEAD"
avdg: there might be higher stress on the servers at times like this
WaRiOrOfCoDe: me
anid: Ohh thanks @MindControler
Cappefra: my battles are not timing out
WaRiOrOfCoDe: just submitted and my ass is getting wooped
njaber: I don't get the "DEAD" type on any pac tho
RoboStac: you aren't in silver
RoboStac: so you won't
njaber: Oh it's in silver only
avdg: bumped some places while fighting other bots :D
avdg: still 360 in front of me
Peudoki: I like this change about dead pacs
MindControler: Peudoki yea super helpful
Nerchio: will be fun to finally see decent games from the start of the submit
Nerchio: instead of after 30 games
anid: What good does seeing a dead pac do?
anid: other than timeouts :P
avdg: ai panicking about dead pacs
Vintarel: I have no clue what it could be useful for :p
MindControler: Anid knowing u dont nee to kill it second time
Dav1dS: the new dead pacs will break my code if i get to silver
Hjax: it was kind of annoying to track if an enemy pac was dead before, in some situations you wouldnt even know you killed someone (if you walked around a corner and instantly killed them)
avdg: and (hopefullly not) crashes
anid: Wouldnt have happened anyway :/
Vintarel: instead of seeing pac yelling "i have more pacs than you"
MindControler: Anid or u dont need to be safe from it
anid: maybe the top guys like kovi and MSmits will find a use for it
kovi: already did
anid: :) kove
anid: *kovi
avdg: 300 more for me
avdg: oh cool, we can track dead pacs now
anid: For now Im settling for avoiding timeout
avdg: and yes probably breaks my bot
KRAKEN: now I can command my pac to give 1 frame silence for dead pacs :(
BenWo: lol
BenjaminUrquhart: fixed crashing, let's see how badly this goes
Quidome: Yes! Silver!
Tiramon: oh silver has opened, i already wondered why my last submit was soooo good
Cappefra: ok so resubmitting was a mistake
Cappefra: shit
mesavitae: ugh top 40 in bronze so close
wlesavo: my crashing was from trying to switch to the dead type, i guess it worked
kovi: now many gam,es
shashwat986: Quick question: Do I see all dead pacs? Or just the visibly dead pacs
dbdr: thanks kovi
MoMaT: you don't see the deads. it's not 6th sense :P
MindControler: shashwat986 I think all
icecream17: did gold open?
hearthewarsong: You cant kill someone without seeing him
icecream17: yes. wow
icecream17: oops *silver
Vintarel: yep it opened 25 minutes ago
kovi: you can
kovi: you can kill and die
kovi: so you cant see
shashwat986: That's a very bleak point of view, kovi :D
wlesavo: and you get the deads every turn
wlesavo: even the old ones
tobk: is league promotion already finished? 300 seems awfully few (compared to 2700 remaining in bronze)
shashwat986: cool, thankns
wlesavo: so they hunt you in a way :slight_smile:
MattSOrme: kovi almost back on top
wlesavo: i mean haunt
Riyuk: his bot is consistent
tobk: huh, new rules in silver? that's new.
kovi: interesting meta change here
dbdr: in what way livi?
dbdr: kovi sry :D
Waffle3z: had to update my code since it didn't understand dead pacs can't interact with anything
wlesavo: im doing surprisingly well
dbdr: some players are still crashing, mist likely..
wlesavo: is it gonna be 100 games?
dbdr: the good ones, actually
dbdr: not crashing on unexpected input is sloppy
Waffle3z: only if you're expecting unexpected input
wlesavo: lol, im also crashing, just find a replay, thought i fixed everything
dbdr: http://chat.codingame.com/pastebin/2773bf45-b24e-476b-a42b-ef3f95c0131c
dbdr: I don't see how you could not crash in a reasonable way
eulerscheZahl: for me everything that isn't rock or paper is scissors
eulerscheZahl: so i tried to move my own dead players and avoid dead opponents
dbdr: sloppy, as I said ;)
wlesavo: oh, i think aggressive strat is more favourable in longer games, that could be it
Waffle3z: I probably was crashing whenever I got close to a dead pac to check its type, resubmitted with a fix and went from 90th to 15th
eulerscheZahl: it seemed reasonable back then
dbdr: noob ;)
eulerscheZahl: i'm only on CG for a little less than 4 years, how should i see that coming?
aCat: :D
Waffle3z: is it normal for rules to change after bronze
eulerscheZahl: a lot of players submitting fixes right now
SemChumboPT: DEAD type really exists?
wlesavo: at least you didnt try to switch to the dead type euler
**dbdr 's hobby is to call CG old timers noobs whenever it's midly relevant
Peudoki: pro strat, type switch your dead pacs
dbdr: :D
struct: the "dead" thing is only on silver+?
eulerscheZahl: Waffle3z it's not normal but happened before
dbdr: RESUCITATE 0
Peudoki: yes
Kukiss: Hello, as I understand some logic about dead pacs have changed recently? Any place where I can read the details?
eulerscheZahl: e.g. at code4life the molecules count was reduced from 6 to 5
Peudoki: when you make it to silver
aCat: Waffle3z nope, they usually try to avoid that
aCat: but it happens
dbdr: inb4 more questions in the chat, forever
dbdr: sad they didn't follow eulerscheZahl's suggestion
eulerscheZahl: MagusYesterday at 10:59 AM the only way to not break any code is what euler said : gives a way to active a new protocol version. But it's kind of messy and complicated in my opinion.
dbdr: wait
eulerscheZahl: while broken bots are perfectly normal it seems :P
dbdr: you could give a bigger map, with a disconnected part, where dead players are teleported
dbdr: call it heaven or hell, as you like
wlesavo: damn, cant reproduce the crash
eulerscheZahl: random opponent?
dbdr: that should not break good bots
wlesavo: random number of simulations(
eulerscheZahl: seeding!
wlesavo: even against illedan's deterministic bot
shashwat986: So, honestly, how much difference is this new information making to your strategies?
eulerscheZahl: and setting a fixed sim count that you only change for the final submit
eulerscheZahl: i'm above kovi, something is still broken
Cappefra: shashwat986 at the moment it's zero difference for me
dbdr: why change the seed eulerscheZahl?
avdg: my ai assumes all opponents are kinda bad and some interesting
kovi: jirotech beating me
eulerscheZahl: oh wait, i dropped a lot the second i wrote it
AntiSquid: this ranking just confuses me
Cappefra: other than I'm adding a check for type != DEAD when adding the pac to a player
eulerscheZahl: i mean not having a fixed sim count at the end
eulerscheZahl: but checking the time
dbdr: ah ok
wlesavo: euler same
dbdr: that means a weaker bot though
Hasan-35: is there anyone can help me about c# ?
eulerscheZahl: just ask the question and skip the smalltalk Hasan-35
dbdr: and sometimes hard to find the right count, if sim time depends on inputs, like map size
SemChumboPT: I'm going up Bronze league... :) every body is going to silver :)
Cappefra: well semchumbo, we were expecting 40% to 50% cutoff and we are at about 13% haha
dbdr: silver opened at 200, now already 350 :/
eulerscheZahl: 372
Cappefra: yeah I'm waiting for my letter to hogwarts any moment now
avdg: it's worse than group immunity
Tib2020: people will still switch between bronze and silver, right?
Cappefra: I'm 14 bronze
eulerscheZahl: no
BenjaminUrquhart: I have reclaimed my place
Cappefra: No Tib, when you enter in a league you can't go back
Nanosplitter: I don't think you can get demoted
BenjaminUrquhart: nope
Tib2020: oh, so when does promotion end? :)
Tiramon: new information?
Beerus: i think i got silver too easily
Peudoki: promotion never ends
eulerscheZahl: dead players
Tiramon: did they change something in silver?
eulerscheZahl: yes
Jesus_inn_party: what is new in silver league
avdg: silver is open, deads are passed as typeId DEAD
avdg: nothing changes in silver
eulerscheZahl: you are probably crashing now
Tiramon: that wasn't done for some time
dbdr: ROCK beats DEAD
Tiramon: not in silver yet
avdg: sim will change though
avdg: for all ranks
Peudoki: I lost so many positions by going to silver
Tiramon: just trying to implement save kills and next to avoid suicide
eulerscheZahl: kills are fun
Tiramon: was always disappointing when the S was running away infront of a P
dbdr: by the way, does your paper kill your own rock?
wlesavo: тщ
wlesavo: no
Peudoki: no
Cappefra: no dbdr your pacs only bump into each other
Quidome: no
dbdr: ok, thx
gan3i: I was at 700+ in broze then 300+ moved to silver now I am still in 700+ in bronze, what the hell is happening.
Tiramon: bots improved ...
gan3i: my bot lost it's my I guess.
struct: So they promoted under 10% of bots?
eulerscheZahl: 380 is > 10%
Beerus: what about opponents pacs that died?
Beerus: i visibility count there?
struct: but it wasnt 10% on start was it?
eulerscheZahl: dead pacs are always visible
ashikujjaman: How can I avoid collission in wood league
eulerscheZahl: no matter who the owner is or where the corpse is
avdg: reading the map?
Cappefra: THERE WE GO
eulerscheZahl: i'm in the same league as Cappefra :scream: quick, open gold!
MattSOrme: Has round count increased for everyone? Looks like i hit a 300 round game?
BenjaminUrquhart: PANIC
MattSOrme: but im still bronze
eulerscheZahl: oooh, screenshot time :D
Cappefra: eulerscheZahl hahahaha what did I ever do to you!
BenjaminUrquhart: MattSOrme they fixed the 200 frame bug
avdg: there is speedboost adding frames
eulerscheZahl: i'm a troll, don't worry Cappefra :P
BenjaminUrquhart: all hail hypno toad
avdg: it's all an illusion
Nerchio: my bot tried to counter DEAD pacs
BenjaminUrquhart: one of these days I'm going to actually make a euler shrine
Cappefra: ooof battles in silver are harder haha nice
kovi: nerchio: mine did the same
BenjaminUrquhart: duh :P
eulerscheZahl: my bot tried to MOVE dead pacs
IAmNoob: hello:)
BenjaminUrquhart: mine tried to deference null pointer on dead pacs
Cappefra: eulerscheZahl is your bot's name jesus?
avdg: hmm not sure if I should submit my updated bot or should see how my current bot breaks
avdg: it's not fatal though
avdg: but the influence
eulerscheZahl: wow a shrine. nice BenjaminUrquhart
eulerscheZahl: for those who don't understand: he promised to draw some sprites for the Onitama game
FallenHero1: Dang this chat is going off
avdg: still 222 in front of me
AntiSquid: can i trust the rankings at all?
avdg: not atm
struct: ranking are a lie
BenjaminUrquhart: not until people fix their bots
struct: i am rank 4000 but should be rank 1
BenjaminUrquhart: struct pls
avdg: you know what he said ;-)
eulerscheZahl: struct and account delete plans if you won't get the rank you want?
AntiSquid: 3761 bots in the contest
eulerscheZahl: biggest CG contest ever!
Beerus: im 270 without tracker and eating or avoid eating strategy
struct: I havent even started coding yet :(
AntiSquid: probably can beat the accountant despite the inflated numbers?
avdg: current rank, or rank before bot came in?
eulerscheZahl: definitely possible
dbdr: bring back the old contest CP rule ;)
Peudoki: I'm slowly getting back my rank finally
AntiSquid: lol
AntiSquid: nah i still prefer the new one, with decay, keep people active
eulerscheZahl: you have decay when contests get bigger every time
struct: If I delete account I cant complete yinsh
AntiSquid: ah but there's no guarantee this happens again euler
AntiSquid: maybe it's back to 2k next time
eulerscheZahl: that implies you plan to complete yinsh one day?
shashwat986: Can I play the bronze boss? Just for kicks?
struct: I was planning to do it after the contest
AntiSquid: ofc
RockyMullet: you can now see pacs that have died :O:O:O
RockyMullet: nice
struct: only on silver RockyMullet
eulerscheZahl: rocky is in silver
RockyMullet: :smirk:
RockyMullet: oof 83th
AntiSquid: who would've thought /s
Waffle3z: do dead pacs still have line of sight
eulerscheZahl: no
BenjaminUrquhart: no hacks
eulerscheZahl: just see it as a comment
RockyMullet: time for the submit I was holding
eulerscheZahl: telling you that you killed your opponent
shashwat986: oh crap. that's another change I need to make
dbdr: dead pacs don't see
dbdr: but they are seen
dbdr: https://en.wikipedia.org/wiki/Dead_Men_Don%27t_Wear_Plaid
struct: They are seen from everywher right?
struct: liike a big pellet
MSmits: ok but wont my bot think the dead pac is in the way>
MSmits: ?
struct: If you dont fix your code probably
struct: if("DEAD") { x = 0, y = 0}
struct: easy fix
eulerscheZahl: now he's busy for the next 30min :D
RockyMullet: hopefully when the multiplayer comes out, it will be know to all leagues
MSmits: yeah, i need to go all the way through my code to see where this could cause problems :)
eulerscheZahl: for each input line:
if "DEAD": continue add pac
struct: Dont think it will happen
struct: It would break many bots rocky
struct: and now contests are released as soon as contest end
MSmits: i'll do something like that i guess Euler
RockyMullet: oh yeah right, they changed that
MSmits: The position the pac has is the position where it died?
eulerscheZahl: yes
Nanosplitter: my bot is hanging on a line that is just input()
eulerscheZahl: flash
eulerscheZahl: flush
MSmits: allright
Nanosplitter: It's when it is reading in the board
Nanosplitter: What do you mean by flush?
eulerscheZahl: https://www.codingame.com/forum/t/python3-buffering-causes-confusion/181353/
DamianS: wait, what happened to the line of sight rule?
eulerscheZahl: it remained unchanged
vishalrranjan: i'm new to bot challenge.
vishalrranjan: how can i do that ?
Nanosplitter: I can run in the same conditions with just a while True: print(input()) and everything looks fine
FallenHero1: I'm still learning C#
Nanosplitter: But in my real code it is hanging when it should read the last line of the board
Nanosplitter: Where it should just read a whole line of "#"s
AntiSquid: euler new #1?
eulerscheZahl: i felt like i was underrated in bronze. but i don't think that i should be that high
eulerscheZahl: i also added a notable improvement this afternoon
RockyMullet: initial ranking is always chaotic
Derthek: can you go down in league if you deploy something stupid?
BenjaminUrquhart: no
shashwat986: phew XD
eulerscheZahl: RockyMullet most players at the top resubmitted after league opening (with DEAD fix)
RockyMullet: bottom of high league are where the broken bots go to sleep
BenjaminUrquhart: illedan :thinking: https://www.codingame.com/replay/461299884
Nanosplitter: eulerscheZahl calling sys.stdout.flush() doesn't help it at all
eulerscheZahl: you shall flush stderr :/
eulerscheZahl: to show you that you get all input and fail somewhere else
Nanosplitter: sys.stderr.flush() doesn't help either
avdg: maybe I'm gonna submit mine again instead of waiting
eulerscheZahl: then you have to create a new account
BenjaminUrquhart: pull a struct
wlesavo: also earlier submits were easier to climb, now most people fixed their deads
MoMaT: in Python3, to see the output for sure, use: print("xxx", file=sys.stderr, flush=True)
Quidome: are these changes also affecting bronze?
BenjaminUrquhart: no
IAmNoob: if your pac is ROCK if you change it to ROCK it will breake the code or the programm will ignore it?
Nanosplitter: Ayyy that solved my problem, thank you so much MoMaT
Nanosplitter: Why did that work though?
IAmNoob: anyone at my question
MindControler: Just try it
MoMaT: Nanosplitter, you might have been calling sys.stderr.flush too late before, at a line that was never reached due to some bug on the way.
Nanosplitter: weird, thank you
dbdr: try SWITCH 0 DEAD too
avdg: lol
IAmNoob: ?
MindControler: dbdr :D
dbdr: also switch a dad player back to life
dbdr: dead
IAmNoob: ?
IAmNoob: bruh
MSmits: freudian slip. I think dbdr became a dad
eulerscheZahl: is that acutally possible, reincarnation?
dbdr: lol
Tiramon: ok in theory less suicide, in reality more timeouts
BenjaminUrquhart: sounds legit
dbdr: SWITCH 0 1
dbdr: to switch the position of your bots
BenjaminUrquhart: what would be the point though
njaber: Speed jumping
dbdr: different kinds
BenjaminUrquhart: ah
njaber: Would be OP
codefreak288: hows the lockdown?
Nerchio: im surrounded by pacs
BenjaminUrquhart: what lockdown
njaber: I code 20h a day with or without lockdown so....
IAmNoob: i too bruh
Abhishek_Saini: Hey Guys One clarification about the new information in silver. So when an enemy pac dies, We will receive that information only in the next turn or in all subsequent turns ?
Thiesjoo: I resubmitted my code(Bronze) from rank 200, there was a bug, so I restored the old code, and now i'm rank 600
avdg: I guess spamming is not wanted
MSmits: Thiesjoo 2 reasons
avdg: so very likely once
icecream17: your old code is worse than a bug
MSmits: first of all, there is always some luck involved
BenjaminUrquhart: Abhishek_Saini every turn
MSmits: but also, bots improve pretty fast
Quidome: Thiesjoo you are still caclculating
Abhishek_Saini: Thanks Benjamin, are you certain about that ?
avdg: Msmits's bot isn't luck anymore ;-)
Quidome: wait until finished
MSmits: ah yes, if your submit isnt finished, then you'll have to wait
Thiesjoo: 92% and still rank 600
MSmits: i don't know what my bot is atm, the change messed it up a bit
MSmits: hope i fixed that
MSmits: Thiesjoo, i didnt know you were ranked so high at 200
MSmits: pretty good
Thiesjoo: I was 600 and then everyone went to silver
Waffle3z: has anyone refuted the idea of a bot that only plays offensively, planning traps and ignoring pellets
Thiesjoo: Now i goofed and am 600 again
MSmits: hmm ok
MSmits: hard to say what the reason is
Doju: Waffle3z i entertained that idea in my head
Thiesjoo: Will look later, gotta make some homework for tomorrow
Doju: for maybe 5 seconds until i realized i can't do it
MindControler: Thiesjoo it also could be that the bug was "feature"
MSmits: yep homework > all :)
icecream17: looking at classroom...
Tiramon: oh my god .. i added more output, and now i know everything good my bot did was mostly luck ... what a mess
Abhishek_Saini: Yeah same as Doju , But I thought that for 5 minutes :D
Doju: But who knows, maybe it's the meta in 2 days
eulerscheZahl: printing 2 lines per turn Tiramon? :D
Abhishek_Saini: But major cavet is, no matter what you plan, in the end there can be some last second switch from enemy and everything in bin
Doju: Sigh. I feel so lost in my own code
Doju: i want to rewrite everything
Doju: and everything is so messy
BenjaminUrquhart: I wanted to fix something in a replay versus msmits and now it's obsolete smh
Waffle3z: enemy ability cooldown is visible, you can tell if they're able to switch and be more careful
Tiramon: no something is completly wrong with my pellet list
MSmits: my bot is not deterministic anyway BenjaminUrquhart, it woul dbe a different game
BenjaminUrquhart: mine is though and that's the most important part
BenjaminUrquhart: I just don't know how much your actions will change mine
eulerscheZahl: obsolete just means an older version. you can still play against it
shashwat986: you can? How?
eulerscheZahl: and you can always hardcode the opponent if it's random
eulerscheZahl: i know i linked it a couple of times already... http://eulerschezahl.herokuapp.com/codingame/replays/reproduce/460472631
Doju: Like i'm getting rekt by the bronze boss
Doju: whose is it btw?
Doju: any guesses?
IAmNoob: i killed him a couples of times but i kinda destroyed my code :grimacing:
IAmNoob: can anyone help me who is a c++ developer
Doju: I think once i get my fancy math going i'm gonna climb a lot
Doju: but i might need to restructure everything again before i do that
Tiramon: ok pellets is right ... then something else must be wrong ... thats not the nearest pellet
Doju: IAmNoob how long has it taken you to code your bot?
IAmNoob: about 10-15h
IAmNoob: you?
PiterYeh: Bad command: Invalid Input: Expected MOVE <id> <x> <y> or SPEED <id> or SWITCH <id> <type(ROCK|PAPER|SCISSORS)> but got 'SWITCH 0 DEAD'
Doju: oh dear god
Doju: i'm at like
Doju: umm how long has this contest been running again?
PiterYeh: we can't pretend to be dead, or come back from death :(
BenWo: lol, how long has the challenge been open?
BenjaminUrquhart: PiterYeh well that's one way to suicide
BenjaminUrquhart: um
Doju: maybe 60-70 hours
BenjaminUrquhart: just over 4 days I believe
Doju: ok not then
avdg: the survival game :p
Doju: then umm... 50ish
BenWo: (16*days) hours
PiterYeh: i don't understand the point of receiving the list of dead pacs
PiterYeh: am i missing something?
IAmNoob: i was like in top 50(bronze) but now 1769:(
BenjaminUrquhart: PiterYeh to avoid confusion
avdg: you can have blind collisions
avdg: without that list, your ai can go around a corner, kill an opponent and never know about it
SemChumboPT: changed from scratch and score is the same
avdg: goes the other way around as well
Doju: I have a list that i want to split in half. Is it better to slice the list twice or slice once and substract the first half from the original?
PiterYeh: ahhh right, didn't think about that
BenWo: only guessing, but i'd think slice twice
Doju: yeah and now that i think about it you can't even substract lists
Doju: so slicing it is :D
AntiSquid: doju https://www.kite.com/python/answers/how-to-subtract-two-lists-in-python
AntiSquid: the power of search engines
Doju: AntiSquid actually i didn't apparently mean substraction but difference
Doju: but thanks anyways
BenWo: res_first, res_second = test_str[:len(test_str)//2],
test_str[len(test_str)//2:]
BenWo: from https://www.geeksforgeeks.org/python-split-given-string-into-equal-halves/
Doju: yeah that's what im doing BenWo
BenWo: :thumbsup:
BenjaminUrquhart: MSmits your bot is too undeterministic to test reeeeee
IAmNoob: :)
IAmNoob: the biggest opponent of MSmits
MSmits: i know BenjaminUrquhart
IAmNoob: friend
IAmNoob: ?
AntiSquid: doju intersections ?
AntiSquid: https://www.geeksforgeeks.org/python-difference-two-lists/ this doju ?
IAmNoob: how can you detect if 2 of your pac are stuck on the same pellet?
BenjaminUrquhart: they don't move after you tell them to
Derthek: How do you develop a non deterministic bot?
icecream17: (prevx prevy) = (x y)
BenjaminUrquhart: the easy solution is to not send 2 pacs to the same pellet
RockyMullet: MSmits you broke something ^
icecream17: randomness
RockyMullet: ?
BenjaminUrquhart: Derthek random
MSmits: not sure RockyMullet
avdg: if there was only a way to make randomness deterministic ;-)
IAmNoob: BenjaminUrquhart i send 2 pacs on the nearest pellet
RockyMullet: i mean, you were 2nd and now 300th, something is wrong lol
BenjaminUrquhart: well don't then
IAmNoob: and if they are near the pellet will be identically
Doju: [a, b, c, d] ??? [a, b] -> [c, d] is basically what i wanted but dont worry about it, i got it done by slicing AntiSquid
MSmits: i am not 300th lol... thats resubmitting. I end up around 20-30 now
MSmits: thats why i am not sure
Doju: i'd have to convert them to sets and get the difference like in your link
Doju: but slicing is fine
RockyMullet: hu, weird, the leaderboard must be bugged then
BenjaminUrquhart: friendly reminder that the leaderboard is probably not accurate
MSmits: my bot dies from stupid :poop: a lot
MSmits: my pacs I mean
eulerscheZahl: same MSmits
shashwat986: Yeah, I started around rank 50 in my first submit, and people are slowly fixing their bots now
BenjaminUrquhart: Hjax I see you've improved
RockyMullet: oh now I see it, there little circle showing you not stabilized wasnt showing
BenjaminUrquhart: stop eating my pacs
shashwat986: so, my rank is slipping to where i'd expect it to go
Doju: my bot dies from basically everything that could threaten it ¯\_(ツ)_/¯
MSmits: eulerscheZahl mine will go down a corridor with an advantaged pac chasing it, goes around the corner, then thinks: Hey, why am I even running? Let's go back, there be pellets!
Doju: :Dd
Hvosten: why I have 281 rounds :D
IAmNoob: :)))
Hjax: BenjaminUrquhart i havent done much actually
Hjax: just lucky
BenjaminUrquhart: ah
eulerscheZahl: sounds like my bot
BenjaminUrquhart: story of my life
Hjax: you at least have search euler
IAmNoob: :)))
Hjax: maybe ill write search today lol
IAmNoob: why some rounds the pacs are moving slow?
BenjaminUrquhart: speed
eulerscheZahl: i think a search is a must-have
IAmNoob: olk
MSmits: yes
Hjax: i agree its a must have, im just being wishy washy about how i want to do it
IAmNoob: eulerscheZahl why your very hard problem is for only 50 xp?
Hjax: i should just write monte carlo and be done with it for a while
BenjaminUrquhart: so, should I switch from bfs to A*
BenjaminUrquhart: that is the question
MSmits: why would A* be better?
eulerscheZahl: community puzzles always give 50xp only :/
Waffle3z: you have enough time to do BFS in the first turn
Hjax: i precompute all distances, the n^2 bfs only takes like 90 ms
IAmNoob: eulerscheZahl why:((
MSmits: Waffle3z you cant take into account obstacles that way
MSmits: like opponent pacs
BenjaminUrquhart: eh nvm
eulerscheZahl: also creating a puzzle always gives 250xp. no matter if it's a nicely done puzzle/mulitplayer game or a clash of code
BenjaminUrquhart: I was thinking of something but I realized it's unnecessary
IAmNoob: the puzzles dont worth
eulerscheZahl: those who solved it did it for the joy of solving, not for the XP obviously
eulerscheZahl: 50XP for that is a joke
IAmNoob: yes
MSmits: or for learning/practice
IAmNoob: but i am interested in level now
IAmNoob: MSmits yes
MSmits: before my first contest I sought out all the pathfinding puzzles to practice for it
BenjaminUrquhart: why spend time getting fake levels when you can get real experience
MSmits: then it turned out I couldnt use any of it on that contest
Hjax: MSmits i never fail to take a game off of you on your way up, makes me laugh
eulerscheZahl: oh nice. Robo solved space maze. even with python
IAmNoob: BenjaminUrquhart yes
Doju: Oh no...
Hjax: your bot is much better than mine
MSmits: but you beat me anyway?
MSmits: by killing my pacs?
Doju: my bfs from every cell is too slow ._.
Hjax: i win about half vs you i think
MSmits: ah ok
Hjax: by killing your pacs
MSmits: my bot is good at not having my pacs compete with eachother
MSmits: that doesnt help much when many di
MSmits: +e
BenjaminUrquhart: e
eulerscheZahl: i'm here
eulerscheZahl: you summoned 2.718281828...?
BenjaminUrquhart: yes
AntiSquid: are ranks still inflated from the bug ?
Doju: oh gosh this is taking a while
AntiSquid: i mean from the change
Doju: like
Doju: a looong while..
solaimanope: ranking needs now around 15 more games to be calculated
icecream17: everytime i submit, the next day ceg is 50 places above me
AntiSquid: i am so confused by my bot, is it really that high or just luck or just getting boosted by the broken bots? :/
MadKnight: what's value of a pellet ?
eulerscheZahl: then set another player as a target icecream17
MadKnight: what values can there be ?
icecream17: target?
eulerscheZahl: the one you want to beat
Tiramon: pff .. i think i solved my timeout problem
eulerscheZahl: java streams?
Tiramon: no distances calculated with blocking pacs and without and hoping to get the same result
Tiramon: result was a stackoverflow
MadKnight: what's max map size ?
Tiramon: damn there are still timeouts
RockyMullet: MadKnight pellet can be either 1 or 10
MadKnight: nothing in between ?
eulerscheZahl: read the constraints at the bottom MadKnight
RockyMullet: no
Tiramon: 29 ≤ width ≤ 35 10 ≤ height ≤ 17
Doju: My BFS queue just ran 500000 times locally
Doju: there maaaay be a slight infinite loop somewhere _D
Doju: :D
MadKnight: how does visibility work? do i see everything in 4 directions?
Doju: yup
Doju: like everything up until walls
Jesus_inn_party: are you at silver dojo
Doju: most definitely not
Doju: i've been chasing some silly bugs for the past few hours now in hopes of moving in a slightly less dumb way
Doju: once i get it working i think i have a chance
Tiramon: ok ... interesting ... my bot breaks without any output, and i definitly always create some output in the begining
KRAKEN: same here :( timeouts
icecream17: Of course the shortest path to the bottom of the screen is by going up. Whyyyyyy do these things happen to me
dbf: https://c2n.me/47sytFq - I would like to have such result with another toad, lol :)
MSmits: it's an imfrogstor
Tiramon: reading all fields took 3s ... i understand why that is a timeout ... but why does it happen
MSmits: read all inputs, then start timing
Tiramon: ok you are right took 2ms and quite some time more to start up java
MSmits: https://www.codingame.com/share-replay/461363242 this is what monte carlo looks like when there are no pellets to get.
MSmits: check at the end
MSmits: sorry, the pacs above are doing some icky stuff, NSFW
Doju: so you're basically picking the "best" paths from some random actions
MSmits: yes
Doju: and there isn't really a best
MSmits: right
MSmits: just for the kissing pac that is
eulerscheZahl: dbf you're welcome https://www.codingame.com/share-replay/461365244
MSmits: he wants the pellet
Doju: why don't the others go help?
MSmits: thats not part of my search
Doju: okay
dbf: thanks, eulerscheZahl :)
ashikujjaman: I can't avoid if two pac's are getting locked each other means two pac are going to cross each other
dbf: 1 more toad to defeat
Tiramon: ok no idea why, but all games i start on seed 4338306531561051100 i die initializing
Doju: noo that can
Tiramon: no problem with other seeds
Doju: cant be... my function which just loops through all cells and sets their parent to None
Doju: is taking the majority of the time in the precompute
MSmits: I think it's an interesting problem, what to do about the corner death issue
MSmits: you can pretty reliably estimate there could be an opponent coming arond
MSmits: around
BenWo: woo, new submit actually improved :D
MSmits: but it's gonna cost you if you're wrong
Waffle3z: I know everywhere an opponent might be but I don't consider where they probably should be so it just looks like they're everywhere
MSmits: lol
MSmits: so you just floodfilled from last known location?
Waffle3z: if I were avoiding corner death then I would just never go around corners
Waffle3z: yeah floodfill 2 spaces and if I see them it resets, and I eliminate spaces I can see
MSmits: you can do better than that if you take into account speed duration and cooldown
MSmits: but it gets complicated
Hjax: probably worth putting a lot of time into though
MSmits: its one of the hardest things imho... the fact that you have to deal with the 1 move and 2 move possibility
Waffle3z: also 0 move
MSmits: yeah i guess so
MSmits: its a bit confusing to see sometimes whether a move is a 2nd or a 1st part of a turn when everyone is speeding
Hjax: you can do lots of fancy stuff with seeing pellets on the ground too
MSmits: yes
MSmits: working on that
Hjax: MSmits you are a teacher right? are you just home with infinite bot making time?
MSmits: not entirely, I have something else every day this week, but mostly it is 2-3 hrs
MSmits: I have 2 college classes (where i am the student) and 3 classes I teach
eulerscheZahl: 2-3h something else or 2-3h codingame?
MSmits: 2-3hr something else
eulerscheZahl: sounds great
MSmits: i worked hard getting everything done before contest started
eulerscheZahl: and how do you like the game so far?
MSmits: I did 2 months worth of assignments for my AI class in 4 days :P
Hjax: meanwhile i can just watch my rank slowly drop while i work my shift :D
MSmits: i like it ok... not a big fan of the unknown info, but i am handling it
eulerscheZahl: :D
eulerscheZahl: i just realized that you aren't from Europe Hjax
Hjax: i am not, i am american
MSmits: my sympathies on your current situation then
RockyMullet: the NA life, watch europeens have fun while we work :cry:
MSmits: pretty horrifying :(
Hjax: it hasnt really impacted my area too hard yet, but the country is a mess
MSmits: yeah, I mean the combination of politics, economics and disease
MSmits: all of it together
eulerscheZahl: Trump says you are doing great, isn't he?
Hjax: yeah its just going to "go away" it will be "like magic"
MSmits: as long as you take a big gulp of bleach, all your problems will go away
Hjax: sunburn the inside of your lungs while you are at it
avdg: for those interested in virology there is 1 great place in new york: https://www.youtube.com/user/profvrr
MSmits: new york and great place are normally well put together. Not in these times though...
MSmits: 1 in 10 of people in tha world that died lived in NY
MSmits: died from covid
Hjax: california shut down way faster than new york, and they are a lot better off because of it
MSmits: it's crazy
Hjax: i live in connecticut, one state away from new york, a lot of people that work in the city live here
MSmits: ah. thats a small state isnt it?
Hjax: yeah, very tiny
MSmits: still get 2 senators :P
MSmits: crazy system
avdg: will trump be able to cheat the system again?
MSmits: he didnt actually cheat the system. System is just broken
Hjax: yeah he played by the rules, the rules just suck
Waffle3z: you can also kill the virus with a gun https://www.youtube.com/watch?v=8yUE9pQ3zPk
Tiramon: hm not the best time for a resubmit ... i was at 85% and above the boss ...
mesavitae: couldn't be a good politician if you don't know how to cheat the system
MSmits: also, I think you're committing a fallacy when you're saying trump happened because of the electorate. You're still left explaining why *nearly* half of the US thought he would be a good idea
dbdr: Tiramon noob ;)
avdg: not enough soap used
Kellthazar: The covid tragedy in Brazil its worse every day... The grandmother of a co-worker has COVID and she cant be attended on the hospital because there is no rooms to her.
Hjax: the media has a lot of power over voters
Hjax: and they can say whatever they want
MSmits: unfortunately yeah
AntiSquid: i don't understand US politics, why did people cheer when economical issues arose due to corona virus and say oh it's good we can blame trump
MSmits: noone cheered because of that I think
MSmits: or at least not any majority of people
Hjax: because trump had historically used the economy to justify all of his other actions, people didnt really cheer, it was more of a "told ya so"
AntiSquid: lots of people cheered MSmits
pmor: I haven't really seen anyone cheering because of that
MSmits: at worst you can see it is a silver lining that he loses one of his goto lines about how great of a job hes doing
Hjax: yeah exactly MSmits
MSmits: thats not cheering though
AntiSquid: lots of news headlines: "democrats cheering on recession"
MSmits: rightwing news probably
MSmits: thats how things work these days
cegprakash: can I get different ID for same bot in different turns?
pmor: that's plausible...rightwing media demonizes the democrats
cegprakash: I mean same pac
Waffle3z: pacId doesn't change
MSmits: and even if not... news headlines are designed to draw people in
BenjaminUrquhart: Tiramon that seed has a wrap with no walls in it
MSmits: they dont have to be nuanced
BenjaminUrquhart: x = 33 has no walls
BenjaminUrquhart: sorry
BenjaminUrquhart: y = 5
AntiSquid: i doubt it was rightwing, the article also had that mischief happy undertone
cegprakash: can a pacman's id change during the game?
Tiramon: oh thx i check that
BenjaminUrquhart: I don't think so
BenjaminUrquhart: yeah that's what caused my first timeout
BenjaminUrquhart: infinite looping
pmor: It sounds like media bias...No one I know has been cheering
AntiSquid: i guess it's bias
pmor: Even those that really dislike the Trump
AntiSquid: hard to tell, i don't live there, all i get is media, biased or otherwise
MSmits: read the guardian
MSmits: I think astrobytes is right about that
Tiramon: at least i fixed my timeouts
avdg: hey, lets spend time to make the world better
pmor: there is right now a lot of contention between those that want to open back up and those that still want to hunker down
eulerscheZahl: this one MSmits? https://django-guardian.readthedocs.io/en/stable/
AntiSquid: but it comes across as if whatever trump does the democrats just want the opposite, i get it he isn't bright, but why is it always as if they just want to contradict him
pmor: that's driven primarily by economic vs safety
Hjax: opening up would be a disaster
avdg: don't pretend thing will go worse when it will only become worse by talking about evil stuff
MSmits: https://www.theguardian.com/
eulerscheZahl: i'm trolling :/
Hjax: the loss of human life would far outweigh the economic benefits of opening businesses imo
MSmits: I know, me too :)
BenjaminUrquhart: euler had the right one
Tiramon: hm map of that seed changed ...
eulerscheZahl: impossible
BenjaminUrquhart: https://www.codingame.com/replay/461382308
BenjaminUrquhart: with that seed
MSmits: Hjax, it is a false comparsion people are making. You can't choose between economy and health. If people go to work and massively get sick, it takes longer before the economy starts running again
Tiramon: oops added a - somehow
Hjax: yeah, you also dont know how people are going to react, everyone might be too scared to go to the businesses that are reopened
pmor: true, but it's the comparison a lot of people are making
pmor: there are also a lot of people in severe financial hardship
MSmits: yea, the weaknesses of the US majority view of social security is really apparently
MSmits: apparent
Tiramon: i don't see any 'no walls' BenjaminUrquhart
MSmits: in Europe these things go much better, even with many more deaths and cases per capita
MSmits: at least in my country
pmor: Europe in general has much better social programs than the US
avdg: I guess money is too valuable for the rich in the us
MSmits: they dont realize that if the country collapses all of their money is worthless
Tiramon: oh now i know what you mean ... yes that might be a reason when calcing LOS
pmor: The masses could change that, but the media convinces them otherwise
MSmits: yep
BenjaminUrquhart: loooooop
MSmits: anyway, back to coding :)
eulerscheZahl: hm, my line of sight might be buggy too :o
pmor: :)
MSmits: did you have the infinite sight?
Tiramon: ok another timeout fixed ;)
MSmits: someone posted a seed on discord
MattSOrme: erm, i've got a bug where im getting the pellets, and the last one never seems to return the pellet?
eulerscheZahl: checking if deltax+deltay = BFS dist and deltax*deltay=0
MSmits: with a corridor accross the map horizontally
Tiramon: MSmits 4338306531561051100
Tiramon: it broke my bot and i had no idea why
MSmits: yeah mine timed out on that seed
MattSOrme: i go into the loop, print i, then call input, then print i again, and the second i never prints but only on the final one
MSmits: but i put a max on iterations
MSmits: width/2
BenjaminUrquhart: MattSOrme python?
MattSOrme: yeah
BenjaminUrquhart: print(stuff, flush=True)
Tiramon: ok now i survive the init on that map
BenjaminUrquhart: for standard error: sys.stderr.flush()
Yamatan: Hi all =) Does somebody know what is the max size of the map ?)
MattSOrme: sorry, what does that do?
Tiramon: it' sin the constraints at the bottom of the text
eulerscheZahl: makes sure you print everything and don't just buffer MattSOrme
BenWo: hah, good test seed
BenjaminUrquhart: seed=-7826971533994987500
BenWo: recursion depth exceeded
Yamatan: duck ... thanks, I missed it.
BenjaminUrquhart: the "original" infinite sight seed
Hjax: now that you mention it, i think my sight cant see around loops in the map
Tiramon: for me the other one was the original ;)
Tiramon: oh great before the resubmit i was above the bos snow at 12 ...
BenjaminUrquhart: Tiramon just a warning, your submitted bot crashes in silver
MattSOrme: hmm, still not sure what that flush is meant to be fixing, i'm having to add it to each successive print, and its still not telling me where my timeout it
MattSOrme: is*
Tiramon: no already fixed that without reaching silver ;)
BenjaminUrquhart: cool
MattSOrme: the bug comes up and goes away as i change maps, but is constant on the same maps :/
Thiesjoo: How can you take wrapping into account with manhattan distance?
eulerscheZahl: wrong question, manhattan already is the wrong approach with all the walls
Thiesjoo: I know, but is there a quick fix?
Csipcsirip_2: hm is this intented or a bug. look at the last frames
Csipcsirip_2: https://www.codingame.com/replay/461397774
eulerscheZahl: but: min(dx, width-1-dx)
cegprakash: I had a continue inside a switch inside a for loop
cegprakash: would it case issue?
shashwat986: I don't agree eulerscheZahl. manhattan is good enough to at least come in top 1k in bronze
shashwat986: imho
cegprakash: I changed switch case to if else and it's working fine..
MindControler: Wait 1st guy doesnt even change his pacs type?
cegprakash: is it okay to use continue inside switch?
MindControler: Wow
eulerscheZahl: maybe we just have different goals then
Thiesjoo: It is enough to become rank 441 at least
shashwat986: XD
MattSOrme: looks like he stood still and ate rock, then changed to scissors and ate paper.
cegprakash: eulerscheZahl is it okay to use continue inside a switch case
eulerscheZahl: why do you ask me? am i the coding police?
eulerscheZahl: AntiSquid heeelp
cegprakash: MadKnight..
cegprakash: eulerscheZahl no c++ legend
cegprakash: u are
eulerscheZahl: check the smash the code leaderboard
MadKnight: what are u saying cegprakash i can't understand u
eulerscheZahl: no one does
cegprakash: can we use continue inside a switch
cegprakash: like I want the loop outside the switch to continue
aCat: then yes
aCat: switch is just a fancy if
eulerscheZahl: https://lmgtfy.com/?q=c%2B%2B+continue+inside+switch
aCat: if you have loop outside you can continue
AntiSquid: eulerscheZahl ?
eulerscheZahl: i still get random people asking me instead of asking the whole chat as a total :(
Hjax: how does it feel to be famous euler
MonZtaDeluxe: hey eulersche - how ya doin
eulerscheZahl: i'm not famous. just sitting in my room and not going to work for a month already
MonZtaDeluxe: nvm - just trollin (ich troll nur)
MattSOrme: just putting print(flush=True) after my input() seems to have fixed it for some reason :/
eulerscheZahl: i even gave up on shaving
ZarthaxX: bearded toad?
AntiSquid: add "babeh" at the end to make it more edgy MonZtaDeluxe
eulerscheZahl: wow MonZtaDeluxe you are back :o
eulerscheZahl: that must have been ages, coders of the carribbean isn't it?
MonZtaDeluxe: ya man - nope code4life
MonZtaDeluxe: or the game with wonder womain or something
eulerscheZahl: close enough
MattSOrme: hmm, but now my printouts to send my commands isn't working :/
Doju: Oh huh. If you do it bug-free, you can actually precalculate all the distances in a timely manner
AntiSquid: what language?
AntiSquid: MattSOrme
Doju: believe it or not, even in python
MattSOrme: python
Doju: oh hey
Doju: if you want to print something but not have it act as a command, do print("something", path=sys.stderr)
MattSOrme: im doing print(something, file=sys.stderr)
Doju: oh sorry
Doju: i meant file
Doju: yeah
Doju: okay then i can't help you
MattSOrme: http://chat.codingame.com/pastebin/3fa330b2-26f6-4bb0-8616-bf1cc41b7bef
solaimanope: there are some agressive bots in the range 70-90 :(
Tiramon: 0.36 behind the boss ...
eulerscheZahl: just wait
eulerscheZahl: or improve your bot
Thiesjoo: YES, finally fixed my BFS. 1 typo and I did not notice until now. Enemy detection just wasn't working. That;'s why I was rank 400
Doju: nice
Doju: isn't it a satisfying feeling when you finally find it?
avdg: luckily it wasn't production ;-)
MonZtaDeluxe: sorry i'm not good in Bot coding, why is BFS used here? o.O
Thiesjoo: I use it for finding enemy's in my path
Thiesjoo: Still using manhattan distance for distance
Tiramon: there still must be something wrong in my target pellet finding ...my bot prefers the super pellet further away ...
Hjax: i use it to find distance between my pacs and pellets
Doju: MonZtaDeluxe it's handy for getting the true distance between any given cells
avdg: just to exhaust neighbour searching
Doju: or for flooding the map and returning a cell if it matches some criteria
Doju: (eg. pellets)
MonZtaDeluxe: yeah i was thinking more about flood fill, but right now i think BFS also makes sense - my fault
dbf: were there any changes in last battles window recently - I see games are played, but my rank is not changed in scoreboard on the right
dbf: ?
eulerscheZahl: it's just slower at updating
dbf: ah, ok
dbdr: silver grew from 200 to 480 in a few hours
avdg: hmm still no github push
Thiesjoo: I am closing in on silver, few more bugs to fix
Doju: What's the proper way to deal with missing values?
Doju: i have a division where either the numerator or denominator can be missing
Doju: and if either is missing just return the other
Doju: is the proper way actually just a bunch of ifs and elses?
Hjax: thats some funky math you are doing
dbdr: there is no way to answer that question in general Doju
dbdr: it depends what those numbers mean
Doju: hm. well, lets say they might correspond to pellets in some way. just maybe
Doju: I really don
eulerscheZahl: a secret
dbdr: :hear_no_evil:
eulerscheZahl: :see_no_evil:
Doju: well i would say it but people here apparently dont like it when you share ideas or even just a bit of pseudocode
avdg: Well, I had few close games.. https://www.codingame.com/share-replay/461412517
eulerscheZahl: ideas are fine. won't be an idea that pushes you to top10 i suppose
Doju: okay
Doju: definitely not one
anid: congrats ameler!!
MonZtaDeluxe: i can give you the idea that i'm currently coding if you want Doju
Hjax: who cares about ideas being shared? if someone wants to give out good ideas, its their loss
ameler: thank you anid :)
Doju: so it's just the distances to closest normal pellet and super pellet respectively
avdg: what if it is a win win like having a vaccin?
WINWINWIN: Just joining the contest :( How is it?
Doju: fun yet bugful.
eulerscheZahl: there's a monitor to win
dbdr: why do I always lose more matches against bottom players than mid-rank players?
Hjax: no t-shirts this time though
WINWINWIN: :D not for me eulerscheZahl
Doju: In the time i've put into this i could've earned 3 monitors at minimum wage lmao
eulerscheZahl: i don't have much hopes either :D
dbdr: I forgot to ask for my OOC t-shirt. probably too late now
eulerscheZahl: huh? no email for you?
Hjax: contests are hard, i think i over-performed in utg, i think ill do worse this time
dbdr: I stopped reading email
eulerscheZahl: :D
Hjax: getting top 10 again would be awesome though
kovi: it was canceled - at least for me
Doju: oh btw eulerscheZahl, so pseudocode is not fine?
dbdr: canceled?
eulerscheZahl: no shipping during corona?
dbf: the same as RAIC :(
kovi: yeah
eulerscheZahl: pseudocode is fine
eulerscheZahl: yeah, was about to mention RAIC
dbdr: makes sense
kovi: and topcoder actually
eulerscheZahl: they wrote that they are about to ship it soon
eulerscheZahl: then BOOM
eulerscheZahl: cancelled or just delayed?
dbf: yes, but I ordered some stuff on amazon recently and it is already somewhere in Moscow airport :relieved:
kovi: topcoder - still in india raic delay cg - no idea...probably delay
dbdr: are there new tshirt designs?
ArchilA: helpppp :( how on earth can i inplement Depth First Search on this thing :O
eulerscheZahl: the cube one for CG
kovi: they cancel the order-site
eulerscheZahl: and i'm awaiting a tshirt from Kotlin heroes
Hjax: man you guys play a lot of programming sites
Doju: ArchilA i'd imagine it's just recursively calling some function
dbdr: I should get the cube
avdg: need to change my change logic, it's not taking into account where it is going :p
cegprakash: I added 40 asserts on my code so far
dbdr: whatever that is. sounds good :)
cegprakash: :D
Doju: ArchilA not 100% sure though, maybe read the wiki page or something?
avdg: so now, my ai changes to kill a pac while it is running into another one
eulerscheZahl: the cube looks nice. a twisted rubiks cube
dbdr: very hungarian :)
eulerscheZahl: but with a glitch, 2 surfaces are merged together, they forgot the separating line
eulerscheZahl: bad resolution
avdg: * or getting run into some other pac
eulerscheZahl: looks less pixelated with it arrives
Tiramon: arg 0.06
eulerscheZahl: soon ceg2
dbdr: reminds me of futurama
eulerscheZahl: stop pixeling your face?
dbdr: "the resolution on this machine is great. higher than reality"
eulerscheZahl: :D
dbdr: I think Fry says that
eulerscheZahl: i just realized the cube i linked isn't the final design
eulerscheZahl: but looks similar
Doju: now i have 5 ugly ifs and elses but it works, so whatever.
eulerscheZahl: great if you get paid by lines
dbdr: or by branches
Doju: Damn, Inky is aggressive
Tiramon: ok my dead fix did not work ;)
ArchilA: is something wron with web code? should not my variables get reset at every turn? wtf is going on
Tiramon: depends on how you defined them
Tiramon: or in what scope
ArchilA: it's list object. all pacs that belong to me should be aded anew at every turn
Doju: hahah this is the pinnacle of my coding career
Uljahn: do you reuse the same list?
Doju: if False:
pass
BenWo: inspired
Tiramon: then it is propably in a scope were the varaible is not deleted after your loop
ArchilA: list variable is inside loop, so at every turn it starts with zero elements and is added later in other loop
Tiramon: paste a code snippet and tell us what language you use ... maybe we can help
Uljahn: i guess it's py3
ArchilA: python. i have empty lists inside while True loop
ArchilA: and add elements later at other loops inside to gather information on pellets and pacs
Uljahn: easiest way is to you debug print
Uljahn: *to use
command = "" pac_ids = [] pellets = []
ArchilA: dunno how to use debug thing here
Tiramon: does py have scopes that clears variables?
Doju: print("something", file=sys.stderr)
Uljahn: print(args, file=sys.stderr, flush=True)
Tiramon: wasn't it like php with method wide scope? so if is not resetd manually it isn't reseted?
avdg: best way too loose I guess... https://www.codingame.com/share-replay/461437329
Uljahn: in python it's not reseted. it's rebound, variable names are just aliases
Tiramon: both have no idea where to search for more pellets
avdg: something broke in my exploration search
ArchilA: Standard Error Stream: MOVE 0 25 13 |MOVE 1 9 13 |MOVE 2 4 13 | Game Summary: ArchilA has not provided 1 lines in time
eulerscheZahl: and everything in python is an object. even a class is an object (not the instance, the class itself)
avdg: but I only loose a few games because of that
WINWINWIN: Rudimentary heuristics enough to get out of Wood 2?
Tiramon: you made your commands as err output
Tiramon: err output is debug output
Doju: you can probs get out of wood 2 by going to random cells
Tiramon: so the game did not receive your commands
WINWINWIN: I am going to the nearest super_pellet else nearest pellet
ArchilA: oh ok. i'll use it in except.
avdg: lol my eating logic was also broken
avdg: it wanted to eat but all it did was run in circles
Adnmaster: WINWINWIN going to a random power pellet will do it, worked by me
Doju: winwinwin i'm almost certain that that will get you to bronze provided that you dont have any bugs
WINWINWIN: No bugs, 100% winrate in wood 2
WINWINWIN: Yeah, looks like easy wood1
ArchilA: my pacs trying to get to big ones and afterwards move randomly, but still losing :/ wtf
MindControler: WINWINWIN u can get to bronze easily
Peudoki: losing is bad strategy
WINWINWIN: thanks @MindController :)
Adnmaster: im new in bronze, any suggestions for strategy?
Doju: ArchilA perhaps get the small ones after big ones are gone?
Doju: Adnmaster a simple one is nearest pellet but that'l only get you so far
Peudoki: kill them all Adnmaster
Doju: although it'll almost get you to silver if you do it right
Doju: speaking from experience
Adnmaster: ok, guess ill kill them all :)
shashwat986: Is there any downside to just deploying my code every time I make a change, to test out how it is?
Peudoki: nah, just look at how the leader is playing and get some ideas
ArchilA: @Doju i'm doing that, but since not all pellets are seen if i do not see any pellets or enough pellets i try to go to random x y
Peudoki: no dwnside shash, submit a lot
Doju: ArchilA hey, i'll send you a replay and i'll let you figure out an important realization
Tiramon: damn why did i buy a resin printer during covid... bad delivery times for disposable gloves and concentrated alcohol
ArchilA: but sometimes, coz i go in loop into my pacs list, it goes weird :/
shashwat986: thanks Peudoki
Adnmaster: where can we view all the moderators?
BenjaminUrquhart: you don't
Doju: ArchilA https://www.codingame.com/share-replay/461444083
Tiramon: below the chat is a participants link
Tiramon: that shows all online players
Tiramon: and mods at the top
Adnmaster: ok, but is there any way i can view offline moderators names?
Doju: see what my pacs are doing there?
Tiramon: not afaik Adnmaster maybe they are listed somewhere, but not afaik
ArchilA: yep. so how on earth am i supposed to make my pacs go somewhere else except pellets that are reachable? :/
Doju: so, when the grid is spawned
BenjaminUrquhart: you look for pellets
Doju: all cells have a pellet
Tiramon: you could expect that every field you havn't visited yet contains a pellet
JasperV: I don't understand what the use is of retaining dead pacs in the input list
Tiramon: or every field you haven't seen without pellet
JasperV: the fact that they changed it must mean there is a good reason but why..
SemChumboPT: JasperV you can always make your Pacs Text something when they pass a dead pac
ArchilA: so u r saying that i should run to random coords that possibly have pellets?
BenjaminUrquhart: not necessarily random
Doju: that's a strategy
Tiramon: or you just keep a list of coords
Doju: but you could apply some logic to it
Doju: such as nearest (schröginder) pellet
Doju: schrödinger* lol
SemChumboPT: can you see past a Pac?
Tiramon: a schrödiger pellet nice name ;)
Tiramon: only walls block your LOS
ArchilA: but am i able to know if i got to my destination?
Tiramon: and watch out there are maps hat have rows without walls so you could get into an infinite loop
ijc90: do you program interaction with enemy pacmans? It feels like noone does it...
BenjaminUrquhart: your pacs do interact with others pacs yes
SemChumboPT: ArchilA only if you check if your last position is hte same
Doju: ijc90 currently not, soon yes
ArchilA: i tried interaction but could not get it working :/
Tiramon: ijc90 mine have minimal interaction with switch and if i have a save kill i also move to them
ijc90: im thinking on just defending myself on close pacmans if i have cd on ability
Tiramon: else i try to avoid enemy pacs
ijc90: i have some logic on collition, if I get stuck i go to somewhere random
ijc90: but that's it on interaction
ijc90: im focusing on pellets and doing well till now
Doju: oh right, i have that too
Doju: I just introduced the same vision bug to my code that i fixed a while ago
Doju: and i don't remember what the cause was
Doju: ._.
DollarAkshay: Are there any new rules in silver ?
Tiramon: only that pacs with typeId DEAD are listed
Tiramon: breaks some bots
WINWINWIN: in the indian chat, it says something about dead pacs
SemChumboPT: silver league has dead pacs
Zenoscave: It broke mine hardcore
Eglerion: wait... what do dead ones do? just sit there and block the way? :o
SemChumboPT: I'm still struggling to get past bronze without using speed or switch, but i gues i'll have to give up on that
Zenoscave: no, they disapear still
Nerchio: my commit was fixed dead pacs hopefully last time xD
Doju: Ah it's not the vision but the pathfinding that is broken
Doju: lovely.
jthemphill: Eglerion it's basically a bugfix - it was sometimes impossible to be sure if you killed an opposing pac or if they just rounded a corner
Thiesjoo: Does anyone have some tips to get out of bronze?
Clagus: ok cool, so it doesn't affect the game rules :P it's just a additional info
AntiSquid: play vs boss mainly
Eglerion: ah, okay... cool.
MadKnight: make a simple pathfinder ThierryC
MadKnight: Thiesjoo
Thiesjoo: It already goes to the closest pellet, fights of enemy's and does some evasion
ThierryC: yes, on the todo list :)
Thiesjoo: My map exploring is just not on point
AntiSquid: so fix that
ThierryC: ah not for me, but still valid point MadKnight :p
AntiSquid: you know what to fix then why ask
Thiesjoo: If there are any other tips
AntiSquid: focus on fixing your bot
AntiSquid: best tip evr
Thiesjoo: Ok thanks, about 100 ranks to go
Thiesjoo: Will continue tomorrow
AntiSquid: that's not much
Thiesjoo: It's not much, but it's hard
Astrobytes: Just ask MSmits Thiesjoo ;)
AntiSquid: ping smits and tell him when you fixed your bot
Thiesjoo: Will ask him in the next physics lesson
WINWINWIN: looks like the easiest multi to start with :) 15 minutes of code gets to #542 in Bronze
jthemphill: Thiesjoo you're one of MSmits' students? jealous
AntiSquid: ah is he your teacher Thiesjoo?
jthemphill: very cool!
Doju: WINWINWIN dude
Thiesjoo: Very cool teacher actually
Doju: i'm at 323
Doju: and maybe 50 hours hahah
AntiSquid: does he skip class to do bot programming instead Thiesjoo ? you can tell us
Nerchio: lol
jthemphill: :laughing:
WINWINWIN: @Doju Easy to start but I probably wont improve much on this :P
Doju: Although my next submit will improve that once this bug is gone
Thiesjoo: Sadly he doesn't, but immediately after the lesson he continues with his bot
Astrobytes: :D
Doju: haha that's awesome
Thiesjoo: I just finished my lesson and i saw him in chat here
Doju: oh speaking of school
Doju: i just remembered that my finals results are coming in tomorrow
RockyMullet: holy shit, I think dead bots are actually blocking my paths
AntiSquid: ya some people on cg know each other in real life
RockyMullet: I fixed the dead bot thing too fast
AntiSquid: :thinking:
RockyMullet: ew real life
Tiramon: if (typeId == "DEAD") continue; is the fastest fix ;)
RockyMullet: it would be if I was smart
JasperV: I just applied that fix Tiramon :D
ijc90: can you see other people games? like watch how the "top1" of my league performs to "reverse engenieer"? is it even legal?
BenjaminUrquhart: yes
dbf: ijc90 you can create as many games with anyone from you league as you want
Uljahn: also there are "last battles" links in general leaderboard
Uljahn: i mean full lb
o_imej: hey, why does my pallets slow down when the other enemy uses the speed boost ? i mean my pacs but his does not ?
Doju: o_imej your pacs don't actually slow down
avdg: they are warp frames
o_imej: so the enemy pacs also get the same effect ?
avdg: the frames represent something happening, not time by definition
avdg: (in a linear way)
Uljahn: enemy pacs just have one bonus frame because of speed boost
jthemphill: games can have more than 200 frames due to warp frames, correct?
Uljahn: yep
MonZtaDeluxe: omg - i just realized, that my pacs prefered low value pellets over high value pellets -.-"
Doju: hahah, well that's good to notice MonZtaDeluxe
Doju: Hey BagChaser
journeyvivek: anyone do moblile app
Doju: umm nope
journeyvivek: new to coding here
Doju: alright
MonZtaDeluxe: BagChaser: https://www.codingame.com/ide/challenge/spring-challenge-2020 click here - this is what we are coding
MattSOrme: hmm, my code seemed to be timing out, I added a time check to see what i was getting, and now its working :/
Fosfen: Hello ! I'm currently ~500 in bronze league, I'm thinking about optimizing my pacmen paths (to avoid collisions, path following...) is it a good idea to reach Silver ?
Kellthazar: What a nice battle: https://www.codingame.com/replay/461477725
Kellthazar: Fosfen oh yeah
[CG]Thibaud: avoid collisions seems like a good idea
Hjax: i just have my pacs go after different targets and pray :D
Fosfen: Thanks I'll try it then ! :D
DollarAkshay: Does line of sight go through enemy pacs ?
RockyMullet: DollarAkshay yes
DollarAkshay: Thanks
avdg: working on social distancing measurements in my bot
Doju: hah avdg :D
Doju: I should do something similar
Doju: Also why on earth am i getting path lengths of well over 200
avdg: but it's more that my bot get stuck when very near to other bots
Kellthazar: Omg, bronze rank 2
Kellthazar: gooo!
RockyMullet: fixing the dead thing made my bot worse...
Kellthazar: I was promoted to silver
Kellthazar: yey!
Doju: gratz Kellthazar
SemChumboPT: Parabéns Kellthazar !!
wlesavo: RockyMullet are you sure? maybe other bots evolved
SabertheLost: http://chat.codingame.com/pastebin/ba74ea2a-f936-4f61-a3ec-fdf924e1036e
SabertheLost: pacman 3 is on 27, 7
SabertheLost: MOVE 2 27 7|MOVE 3 27 7|MOVE 4 27 7
SabertheLost: - Pac 2 moved to (26, 7). - Pac 4 is dead! It cannot be
RockyMullet: wlesavo yeah likely that
SabertheLost: Also, ealier in the game my pac4 stopped moving from the same spot until he got eaten =(
SabertheLost: https://www.codingame.com/share-replay/461481807
Doju: yeess it finally works
Kukiss: uaaa introduced speed to my pacs and I skyrocked in bronze :D 1st place after 50% submission, I am affraid to touch anything
cegprakash: oh
cegprakash: so speed helps
Kukiss: yup, it's jsut basic speed... Do it whenever you can
cegprakash: do u also switch Kukiss
Eglerion: SabertheLost you're telling him to go to 27 7 while he is at 27 7, why would you expect him to move?
MattSOrme: im counting my time, and its under 50ms, but im still getting timeouts? Any ideas?
avdg: load on cpu?
SabertheLost: Hmm, your right, I wounder how that can happen =)
Doju: just dropped 1300 ranks because of a typo. isn't that fun
avdg: dunno what about delay with lots of memory activity
Kukiss: cegrapakash I have simple switch logic to defend myself but after I started doing speed whenever I can, I am probably not switching right now with my bot. It is a place for an improvment
SabertheLost: actully all of them is moving to that spot, lol
SabertheLost: was looking at computer output =/
avdg: you see, not social distancing is bad
Kukiss: ok, so now it is time to fix the dead types :D
Kellthazar: I use speed to control my target selection and to verify threats and potential victories as well.
TheOnlyJoker: congrat men!
Nerchio: kovi maybe 47 should try to run ;)
Nerchio: https://www.codingame.com/replay/461494238
Nerchio: nvm
Nerchio: it was a frame :D
Nerchio: can't run when you can't move big brain
avdg: hmm found something, opponent were invisible to me :/
avdg: and that is because I swapped x and y
Kellthazar: Another thing that improved my pacs a lot was controlling the range of the targets of each pacman (even the enemies) and crossing them to choose the least competitive.
avdg: lol
avdg: my pacs are literally moved away
avdg: because I added too much penalty that had no effect before
cegprakash: 6 losses in 27 games.. this submit seems promising
SabertheLost: where does it say you cannot move and use speed at the same time?
cegprakash: I've a depth = 3 I get 6000 sims :(
cegprakash: I miss my old code with 90000 sims
avdg: you can only have 1 action per ai per turn
avdg: or else the game will error
Eglerion: SabertheLost "abilityCooldown: the number of turns until you can request a new ability for this pac (SWITCH and SPEED)" and "Each pac has access to two abilities (SWITCH and SPEED) that share the same cooldown period of 10 turns."
avdg: yes, it's not greatly documented
BenWo: Pacs can receive the following commands (a pac can only receive one command per turn):
SabertheLost: ok, becouse i could not see that you anywhere that you can only give one command to each pacman
Kellthazar: My code broke in the silver league: "SWITCH 0 DEAD" XD
BenWo: lol
BenWo: playing dead?
Waffle3z: does that work?
Kellthazar: That was my defensive move...
wlesavo: Waffle3z yes, all your pacs insta dies
Kellthazar: Invalid command :)
aenigma: is there a keyboard shortcut for the replay in same conditions button ?
avdg: cg local has an auto play feature on safe
avdg: but I rather want it now on the replay button
avdg: broke my bot :D
avdg: maybe I'll submit my bot from yesterday for a moment
Cappefra: ok so I tried to implement my first monte carlo and it's stupid af
Cappefra: It went sideways somewhere :D
cegprakash: I don't know why my GA uses switch sometimes :D
cegprakash: 2 losses in first 17 games go go go..
Kellthazar: cegprakash Did you implemented a genetic algorithm?
cegprakash: yes
cegprakash: i still have bugs on my collision but my win rate is impressive.. 78% win rate at 55%
cegprakash: seems like I need a nearly perfect sim to beat heuristics
MattSOrme: i've got a timer starting after my while True, and ending just before i print my command. Its returning less than 50ms by several ms, yet im timing out... Any reason or change to my calculations needed?
avdg: had to remove all my bogus penalties to get back in shape
njaber: you should probably put the timer after the read to get accurate timing,that being said I think there's more chance that this is a crash/invalid output/whatever rather then a true timeout
Kellthazar: cegprakash my attempts with GA on CG always is a big failure XD
njaber: if you put it before the read it'll start the timer at the end of your turn ~= beginning of the opponent's turn
njaber: ~=*
njaber: wat
MattSOrme: running same conditions again passes. Seems like an issue on CG side maybe?
njaber: tilde=
njaber: Possible
njaber: It happened on a few languages form many people, they may not have fixed it yet
njaber: what language?
MattSOrme: are you saying i should put the clock after the score input?
njaber: Yes
MattSOrme: im python
njaber: Yeah python has had problems I think
njaber: This may still be you tho, you probably hould test further
MattSOrme: Got enough problems with time as it is over the C++ crowd, dont need more problems ;)
njaber: Do you understand why you need to put the timer after the read btw?
Counterbalance: MattSOrme also print the commands to stderr just in case; if you have while ! timeout, it can be that that loop is never entered and so there's no command
njaber: ^
MattSOrme: Not really. But im assuming its something to do with the way CG stops and starts my process?
MattSOrme: half explains why earlier i was logging 51+ ms and not getting timeouts though
njaber: http://chat.codingame.com/pastebin/96f822e7-4f5e-48ec-879a-01f39be490fd
njaber: Why
njaber: I was just typing
njaber: I didn't paste anything
njaber: guess I write too much
Hjax: does someone have that infinite line of sight test seed?
BenjaminUrquhart: one sec
njaber: In short, if you start the clock vefore the read you get the opponent's time + your time each turn
Nerchio: poor pac waiting for his dead friend ;( 71+frames
RubenFilipe: is python good?
Nerchio: https://www.codingame.com/ide/27516599de0d56e6d735b2513055907f027b369a
Counterbalance: njaber bot processes are paused though
Grudo: yay silver for the first time \o/
avdg: let seed = 1234567890; const rand = () => ((seed = (seed * 16807) % 2147483647) - 1) / 2147483646;
RubenFilipe: should I code in python for this challenge?
avdg: feel free to adjust seed
BenjaminUrquhart: Hjax seed=-7826971533994987500
Hjax: thanks ben
njaber: Counterbalance from my testing they aren't, but I may have not tested well enough
avdg: (oh, cg seeds? srr)
BenjaminUrquhart: there's a second one somewhere
BenjaminUrquhart: if you're interested, I can find that one too
Hjax: one is plenty
BenjaminUrquhart: cool
Counterbalance: njaber you get a few ms because of the delay, but as soon as the engine has read your bots input, it's paused, and later unpaused when the referee sends input for the next turn
njaber: Ok I guess you can't cheat that way then... what would happen if you made a child process/called another program to do calculations though? You could launch a program with the source code/asm code as a string maybe?
BenjaminUrquhart: your core is basically suspended during hte opponent's turn
Counterbalance: From what I've read they use linux cgroups and the bot + all child processes are paused so that won't work either
jthemphill: RubenFilipe python is fine
njaber: too bad
njaber: well I guess it's actually nice because it makes it fairer
Illedan: Code faster code instead :P
Counterbalance: maybe someday they'll have GPU support.. 12 teraflops would be nice to have ;)
Illedan: :P
Inst6541: Are there easier competitions for beginners?
BenjaminUrquhart: go under the compete tab
BenjaminUrquhart: bot programming
BenjaminUrquhart: bear in mind they're not actual contests (some were)
Inst6541: yup, I already scored a bronze league in Coders Strike Back. What I have in mind is something like clash of corers, but more beginner-friendly
Inst6541: *coders
MSmits: *code
cegprakash: i hope my bugs are fixed now
cegprakash: give me silver already..
ArmoredAssassin: guys one question.. after those 6 days when contest ends.. will it be really gone or I'll be able to play around some more?
cegprakash: u can play in multi ArmoredAssassin but why think about that now
cegprakash: focus on the contest
cegprakash: all in into contest
duckquackduck: @cegprakash, you are coing late into night :O Do you have work in the morning?
cegprakash: I told my company I'm taking part in an AI contest representing the company
cegprakash: and I'll contribute less this week
cegprakash: I am mentoring an intern
cegprakash: and work 1-2 hrs a day
cegprakash: so I manage
EBMdollar4LIFE: hi
njaber: Hi, I don't like seeing you getting no answer : (
BenWo: hi :)
cegprakash: mm I'm not checking collsion when my bots cross each other
BenjaminUrquhart: hi
cegprakash: i got only 70 games
cegprakash: oh no
cegprakash: 70% win rate and rank 21 :(
Counterbalance: against 2.5k players..
Nerchio: top5 after a lucky run but for now im out of ideas ;s
Scarfield: nice :muscle:
cegprakash: I have so many bugs in collision on this contest. No wonder I hated CSB
Scarfield: collisions on CSB is at least math based, i just had a match, where 2 of my pacs where going for the same cell ( for a while..) then an opponent pac joined in (for a bit), then the opponent pac switched, and could move to the cell after mine had finished colliding,
Scarfield: also this, from frame 80
Scarfield: https://www.codingame.com/replay/461585269
Scarfield: this time the opponent had speed, so it makes some sense it gets to the cell, but the collisions after are just wierd to me
BenjaminUrquhart: raingrrl why follow me
Scarfield: its the new black
Scarfield: to follow you that is
BenjaminUrquhart: https://www.youtube.com/watch?v=fRV7uVfCcCM
Clagus: @Scarfield for me it looks ok
Clagus: makes sense
Clagus: your pacs are blocking each other
Clagus: oh no
Clagus: actually you are right... I think it's a bug
Clagus: after enemy switching to paper, he should be able to execute on your scissors
Clagus: you should report that, I think it's a bug
Scarfield: yea i would think that as well, but i have saved the replay link, to ask about tommow
Scarfield: btw Clagus you dont need the "@" to ping someone, just their name.
Clagus: ok, thx :D didn't know that
Scarfield: you can also auto complete a name with tab Cl -> tab :)
Clagus: sick!
Scarfield: it is quite extreme yes
DollarAkshay: Sometimes you wish they enabled Friendly Fire
DollarAkshay: https://www.codingame.com/share-replay/461595463
njaber: I don't think it's a bug, it's clearly said in the rules that death is resolved after collisions
Scarfield: you really want that super pellet xD
Scarfield: but what is the blue pac colliding with then in this instance?
Clagus: njaber but when enemy pacs have different types there should be no collision
njaber: Oh right I didn't pay close enoug hattention
njaber: Isn't this what whatever this means is about? "If the pacs are of different types, they can land on the same cell, but a pac can't cross the path of a stronger pac: it will be blocked."
cegprakash: Bluepioupiou stop wrecking me
MonZtaDeluxe: that moment when you press "Play my code" and you beat the AI
MonZtaDeluxe: Dopamine deluxe
Scarfield: ah, i think you are correct njaber
Scarfield: if it cant eat the other pellet, it wont move, i wondered what "stronger pac" meant, that must be it :)
Counterbalance: it still counter intuitive - the red rock should eat the blue scissors
Clagus: wait... does that mean, that when 2 enemies are next to each other, and are of different types, and are trying to go into each other cells, they are blocked?
Scarfield: no, then the collide and the one that can eat the other will eat and move
Scarfield: then they*
MattSOrme: oh man, im so close. Running code and its staying in the top 10, but not going above inky
njaber: Clagus no, but if 2 allies and 1 enemy do, they are
Scarfield: My guess is that its also about order of the pacs, my pacs block each other first, then the blue cant move onto "the stronger" pac
Clagus: njaber yeah I can see that
Clagus: apparently, that's how it works :P funny
Clagus: programming edge cases is hard :D
njaber: Ok so basically what this "If the pacs are of different types, they can land on the same cell, but a pac can't cross the path of a stronger pac: it will be blocked." means is just, "your pacs can't suicide"
Counterbalance: hm so to get a good sim you'd need to know which player you are
njaber: ?
Counterbalance: because the order matters
njaber: No
njaber: wait
Scarfield: im afraid so yea
njaber: lemme check
njaber: Okay no, it doesn't
njaber: Lemme try to get this right
njaber: 1) Move all, blocking pacs which are going to a cell that is occupied by a stronger pac, or from which a stronger pac is coming from 2) If a pac shares a cell with an incompatible pac (same team or same type) move it back one cell (all moves are done at once) 3) do 2 until no more collisions 4) Resolve eating
njaber: Ohwait
njaber: I get it
njaber: "Can't cross path" doesn't mean "can't suicide", it means "can't siwthc place with a stronger pac", basically, if going the same way a strong pac is comming from, prevents the move so the strong pac can eat it... unless the pac is moved back
njaber: So order doesn't matter
njaber: But readable rules sure do
njaber: readability of rules*
Counterbalance: in that case no, but in the replay there's 4 pacs at play, 3 of which are colliding
njaber: 1) Try moving all, blue paper is prevented to move because would cross path with red scissors. 2) move back incompatible pacs (red rock and red scissors) 3) repeat (red paper) 4) eat, but no pac share a cell anymore
Counterbalance: hm
Counterbalance: red rock is moved first, but, you say it's prevented to move because it would land on blue paper and get eaten - that would explain it, but it's still a bit weird
njaber: Actually no, red rock moves at the same times as all other, the only pac prevented to move from the start is blue paper
njaber: because it "crosses path" == would switch place if there were no collisions
Counterbalance: okay i get it
njaber: By if there were no collisions I mean in a theoretical alternative ruleset where pacs don't collide
njaber: Now to go back to fixing my broken code
Counterbalance: so if the red scissors on the right were to stay put, the blue paper would get eaten
njaber: I believe so
njaber: actually no
njaber: wait
njaber: yes
njaber: I'm 99% sure
Counterbalance: yeah me too
Scarfield: the same if the red rock were to stay put, i think im getting it, thank you :)
njaber: Yes, I think we finally solved it
Scarfield: well not the same, then the red scissor would nom nom the paper
Scarfield: well you did :p
njaber: in both cases the red scissors would nom, but the cell on which the nom happen wouldn't be the same
Counterbalance: yup
njaber: my brain is having a hard time with this after getting only 5 hours of sleep in the past 60 hours
njaber: And I'm delaying fixing my code
DollarAkshay: Damns
DollarAkshay: Thats too less
njaber: I'm still able to code, that's how I know I still don't absolutly require sleep
Scarfield: yea :/ sleep is important
njaber: I get enough sleep when outside of code-rushiing periods so this shouldn't be to problematic
DollarAkshay: You have plenty of time for this contest
DollarAkshay: Dont see why you should ruin your sleep
njaber: *Not enough*
cegprakash: if I go right with my scissor and opponent comes left with a paper do I move right after killing him or stay where I was?
NinjaDoggy: it's not code rushing period yet :P
NinjaDoggy: it's still chill figure out some nice strategies time
NinjaDoggy: sleeping more is worth
karppo: +1 for sleep. I have issues with that and I dont want the same to others.
DollarAkshay: @cegprakash You move
muy31: why is my code timing out?
BenjaminUrquhart: because it takes tool ong
BenjaminUrquhart: too long
njaber: I just want to get my tracking algorithm to work so I can finally work on improving the actual bot
muy31: it takes 10 ms to read input
cegprakash: oh
muy31: http://chat.codingame.com/pastebin/f0800df6-d702-4873-a11f-e7a07f76139c
Scarfield: start your timing after reading the first input
muy31: that is how many ms it goes before timing
muy31: out
Hjax: is there a tool that generates sample inputs for games? id like to paste engine "input" into my bot with a debugger attached
muy31: it times out on a particular function
muy31: but the function itself doesn't take long
muy31: or at least no one part does
Scarfield: well speaking of sleep, gn and happy coding :)
muy31: yeah i could use what hjax asked for to
muy31: *too
njaber: gn
muy31: some sample first turn input
muy31: Anyone have that?
Hjax: im about to just print my inputs to debug, probably works lul
muy31: when you do that would you be willing to share your first turn input?
muy31: Hjax
muy31: ?
Hjax: @muy31 how did you do that paste thing?
muy31: just copy and paste from the codingame ide or console
njaber: Have more then 5 lines of text, it's as simple as that
muy31: when you send it off, it automatically gives a link
Hjax: http://chat.codingame.com/pastebin/b89e3f03-7f2d-40cb-a2b9-47e8b027f663
Hjax: fancy
njaber: Or too many characters, I don't exactlly how many tho
Hjax: theres a sample input
muy31: lol Hjax
muy31: thank you
Hjax: no problem
DollarAkshay: Submit and Sleep Time.
DollarAkshay: Currently Rank 1860 Bronze
muy31: Hjax I think it's incomplete
Hjax: its not
Hjax: well, its missing a newline at the end
Hjax: hit enter after
muy31: is visiblePacCount 3 ?
Hjax: yes
Hjax: seed=-3887776996794057700 if you want to see the map
muy31: oh ok the nvm
muy31: *then
njaber: Let's play 'find the bug in the numerical calculations which you aren't even sure of the exact supposed result' yay
BenWo: love that game
Braykin08: The best debugging tip I've ever learn is too always an hypothesis on what to expect from the debug data you gather. Printf or break point doesn't matter
njaber: probably a stupid "+/-1" to add somewhere
njaber: Like I said, I don't know what to expect because it's a chain of numerical calculations where the exact result should be the limit of my movement speed or something but I can't calculate that in my head when I'm this sleepy
muy31: i found it out: my timeout is due to an out of memory error
njaber: +1 didn't work, yay, now I have even less of a clue what's happening, my result may not actually be wrong which means I haven't identified the actually broken part... Yay
njaber: There are just some many places where this thing could be going wrong
DollarAkshay: 4x ?
njaber: ?
DollarAkshay: How much more is the time limit for python ?
DollarAkshay: 4x ?
BenjaminUrquhart: there's no crutch
BenjaminUrquhart: 50ms for all
muy31: how does System.gc() work? Does it delete unused objects?
DollarAkshay: Hmm but my clock is printing 141 ms
BenjaminUrquhart: you're not starting hte timer at the right spt
BenjaminUrquhart: spot*
BenjaminUrquhart: muy31 it *requests* a gc
BenjaminUrquhart: your bot shouldn't be running long enough to warrant a gc though
BenjaminUrquhart: if you need a gc then cut down on creating new objects
DollarAkshay: Clock is started after reading inout and sopped after printing output
DollarAkshay: input*
thethiny: stop before printing
thethiny: or print then flush
muy31: do static functions take up memory?
muy31: too
thethiny: if you mean heap
thethiny: then yes
Counterbalance: code uses very little memory compared to data
jthemphill: ^
jthemphill: muy31 you're probably creating way more things than you think you are somewhere
muy31: i also make at most 10 Pac objects every turn
muy31: but i neglect the old ones
muy31: but it times out anyway at turn 1
thethiny: this is negligible
muy31: i have 4 classes in the file
muy31: well i guess it wouldn't hurt to give y'all a code snippet, since my idea probably ground-breaking
muy31: here is the function that screws it all up:
muy31: http://chat.codingame.com/pastebin/10d6d952-1fa3-4876-abee-fea6837b0ef2
thethiny: what language is that C#?
muy31: Java
thethiny: okay
nu11us: can you see through pacs?
jthemphill: nu11us yes
muy31: nu11us you asking me?
thethiny: http://chat.codingame.com/pastebin/512ee9f6-0189-4984-881c-bc088e1197ee
thethiny: undefined variable
nu11us: can you see enemies's cooldowns?
Counterbalance: muy31 and you get a timeout without any stacktrace?
muy31: yes Counterbalance
jthemphill: nu11us yes, it's the abilityCooldown arg
thethiny: @muy31 you are checking distances[][][][] but did you define it ealier?
muy31: thethiny no undefined variable
Kellthazar: nu11us if they are visible to you... yes
nu11us: awesome
nu11us: ty
muy31: yeah duh
jthemphill: muy31 have you bisected to the place where you timeout by printing to stderr?
muy31: during the second code chunk in the snippet
muy31: second for loop
muy31: chunk
jthemphill: muy31 so while calling evaluateScore?
thethiny: AI.distances[loc[0]][loc[1]][p.choiceY][p.choiceX];
thethiny: distances[r][c][p.y][p.x] <= spacelength + 1 && !(r == p.y && c == p.x)){
thethiny: are you sure you're using the correct Distances?
thethiny: once it's AI. once it's just Distances
muy31: no, i assure you that's not the error
jthemphill: muy31 does that mean you timeout or oom when calling evaluateScore on every location? how many locations are you calling evaluateScore on?
muy31: distances is a static array in AI class
thethiny: yes dude but look at line 7
thethiny: you're not using AI.distances
muy31: it doesn't matter it's in AI class
muy31: http://chat.codingame.com/pastebin/5129c66b-bc6d-4355-a26b-5548c0ff8720
Counterbalance: muy31 move the ArrayList<int[]> locations to a field and call clear() on it; it allocates 300 arrays every turn, it should help with speed and gc
jthemphill: muy31 each time you call evaluateScore you create a new path
muy31: yeah
jthemphill: i think that might be the problem
muy31: http://chat.codingame.com/pastebin/93ddcdfc-98f4-4ed3-b670-dc3ac610b7e5
muy31: that is findPath function
jthemphill: you may be able to reuse an array and modify it by reference
muy31: I precalculate distances
jthemphill: doesn't matter, you're calling `new ArrayList` every time you call `findPath`
muy31: *AI.distances so that it hold all distances from one point to another
thethiny: are you calling evaluateDist inside the AI class?
muy31: yeah thethiny
muy31: the how m i supposed to make the path jthemphill
muy31: ?
jthemphill: muy31 you reuse a single object
muy31: you can't add to an uninitialized ArrayList
thethiny: honestly I don't understand why you're complicating your find path
muy31: and the paths are different
muy31: different end locations!
thethiny: the paths are different but how many paths do you have?
thethiny: try your algorithm on a samp[le map
thethiny: it'll take around 3 seconds to finish
muy31: only 5 - 6
thethiny: the timeout is 1 second
thethiny: try it offline and time it
muy31: offline it is a meomry error
muy31: along w/ timeout
thethiny: does it say where exactly?
thethiny: can you tell me the general idea of what you're trying to implement?
muy31: path.add(a)
thethiny: I mean in terms of pesudo
thethiny: maybe we can find a more efficient psuedo for you
muy31: when it tries to find the neighboring coordinate closest to the end/target cordinate
njaber: I finally found my bug... I was using an & instead of an | operation on one of my flag checks....
BenjaminUrquhart: nice
thethiny: nice
muy31: oh thethiny i didn't see your last question
muy31: i am calculating the shortest path from point a to b utilizing an already created BFS array of distances from point b
muy31: and i am adding all the known pellets values within each path to figure out the best path
muy31: and then, if two or more paths have the same max score, choose the one whose endpoint is closer to my longterm location goal
thethiny: "and i am adding all the known pellets values within each path to figure out the best path"
thethiny: give yourself a radius of max_search
muy31: like comparison
muy31: the radius is 2
thethiny: just for debugging purposes, make the radius 1
thethiny: or 0
thethiny: so it never calls
muy31: 1 works fine
thethiny: if it still timeouts then the issue isn't here
thethiny: hmmm
thethiny: okay then you have an infinite loop
thethiny: add a new list called seen
thethiny: if (x, y) in seen
thethiny: return
thethiny: since the next pellet sees the previous one
thethiny: and previous one sees next one
thethiny: and next one sees previous one
thethiny: and previous one sees next one
thethiny: forever
thethiny: and ever after
muy31: ok then, that's an idea
muy31: thanks!
thethiny: :D
thethiny: instead of passing the map you can pass the "seen"
thethiny: and only if it's a "path" then you populate seen
muy31: oh damn, i just saw where it messed up
thethiny: what is it
muy31: i was using incorrect distances
thethiny: what do you mean
muy31: i was using distance from previously seen position to neighbor
muy31: instead of neighbor to end
thethiny: okay, try to see if it fixes it and let us know
DollarAkshay: Damn Rank 9 Bronze XD
DollarAkshay: So Close
muy31: it works no more timeout!
DollarAkshay: aaannnnnddd LOSS STREAK
thethiny: congrats :D
thethiny: to muy31 not to Dollar XD
thethiny: I had an " if 1 && 0" in my code :D very nice
muy31: thank you thethiny and jthemphill
thethiny: ^^
DollarAkshay: Is my code run again on the Speed Ability turn ?
BenWo: nope
Counterbalance: no
DollarAkshay: Rank 8 Bronze :D 46%
thethiny: nice
thethiny: wd
DollarAkshay: Not yet :P
DollarAkshay: Yessss
DollarAkshay: All i had to do was avoid enemy pacs who had their ability on cooldown
cegprakash: DollarAkshay wow
cegprakash: I have submitted my depth=1 bot as I got fed up with depth=3 :D
cegprakash: I get less sims
TrentT: How do you output text on a pac?
thethiny: print("ACTION PACID TEXT TEXT TEXT)
BenWo: add it on the end of a command
TrentT: Ok cool thanks
cegprakash: MOVE 0 1 2 hello | MOVE 1 2 3 how are u |
TrentT: MOVE 0 1 2 cegprakash| MOVE 1 2 3 i am good |
DollarAkshay: Im thinking of doing an RL bot
cegprakash: RL?
DollarAkshay: Once I have pushed my limits with DFS
DollarAkshay: Reinforcement Learning Bot
Durkin: oh, thats odd, sudden promo, haven't touched this since last night
cegprakash: wuuut
thethiny: a bot that learns on its own
HKTran: SPEED 0| I comment double then your turn
thethiny: @Durkin too many people got promoted to silver
TrentT: Dollar you should look at AlphaZero
DollarAkshay: Yeah I have seen the video and documentary
DollarAkshay: But AlphaGo is on another level
cegprakash: wait
DollarAkshay: Im think much smaller
cegprakash: whut
cegprakash: I'm above boss
DollarAkshay: Nice
cegprakash: I was rank 20 at 78% and rank 2 at 98%
Durkin: too many like just now? because I was just hanging out in bronze after silver went out. Just now did it
cegprakash: boss at rank 3
DollarAkshay: @Durkin Yeah sometimes if people submit and you have a nice winning streak you will move up ranks
Durkin: ah, strange
DollarAkshay: I think you beat me a few times
DollarAkshay: And I was better than the boss
DollarAkshay: That might have helped your ELO rating go up a bit
cegprakash: 1 rank below boss I don't want to touch anything
DollarAkshay: hahah
DollarAkshay: LOSS STREAK INCOMING :P
cegprakash: I have trust on Counterbalance
Counterbalance: yeeah it is looking good
cegprakash: no I mean promote me
cegprakash: or wreck the boss
NinjaDoggy: lol
cegprakash: I'm short by 0.1
DollarAkshay: You are in silver ?
cegprakash: You have been promoted to Silver League of "Spring Challenge 2020"!
You win +100XP
thethiny: when it says Beat the boss
DollarAkshay: Why did I just match against you @cegprakash ?
thethiny: it means in battle or in score?
DollarAkshay: Oh Nice
DollarAkshay: Welcome to the Club
DollarAkshay: Just hot fix your code and submit again
DollarAkshay: Ignore Dead pacs
DollarAkshay: @Cegprakash your depth 1 bot jut got a double kill on my depth 15 bot
DollarAkshay: https://www.codingame.com/share-replay/461647742
cegprakash: lol DollarAkshay
cegprakash: but u won the game
cegprakash: kills don't matter
cegprakash: I've given more score for kills
cegprakash: as I like killing
DollarAkshay: You are running some monte carlo tree search ?
cegprakash: nopes SA
cegprakash: simple SA
Hjax: does anyone know which direction a pac goes if theres two equidistant paths to the target?
Hjax: matters a lot for knowing how pacs will path around single unpathable squares when told to move to the opposite diagonal
thethiny: random
Counterbalance: did you make it, ceg?
thethiny: shortest distance else random
DollarAkshay: @hijax I was actually wondering about that today
DollarAkshay: @Counterbalance yeah he did
Hjax: random?!? i dont like that at all
Counterbalance: kewl
thethiny: I have it rn as a replay
jthemphill: Hjax is there any reason to tell a pac to move anywhere other than up/down/left/right in high-level play?
thethiny: I'll send it
thethiny: https://www.codingame.com/share-replay/461650365
Hjax: @jthemphill double moves from the speed command?
thethiny: frame 27
Kellthazar: Dont go for pellets with distance > 5
Kellthazar: pro tip
jthemphill: Hjax oh oof
NinjaDoggy: if you specify a move to 2 grids away it should be fine right
thethiny: @Kellthazar if value > min_value and distance <= 5 \
NinjaDoggy: the part i'm bummed about
thethiny: already in my code
NinjaDoggy: is not being able to move up and then down
NinjaDoggy: when double moving :(
NinjaDoggy: or like left and then right
thethiny: @NinjaDoggy you need to check if the distance is < 1, add +1 to the axis of that direction and move there
thethiny: even if it's a wall
Kellthazar: NinjaDoggy speedos pacs are too fast
NinjaDoggy: wait what
NinjaDoggy: if you specify a tile 2 away
NinjaDoggy: there's only 1 path to get there right?
thethiny: not really
thethiny: it can be behind a wall
thethiny: so there can be 2 directions
NinjaDoggy: manually path...
NinjaDoggy: i meant 2 tiles away
NinjaDoggy: without walls
thethiny: yes only 1 direction
NinjaDoggy: am i misunderstanding the case?
NinjaDoggy: we're talking about frame 27 with the middle red pacman right
thethiny: yes
NinjaDoggy: you want it to go left, up
NinjaDoggy: so even if it's speedy
NinjaDoggy: you can just tell it to move to 1,6
NinjaDoggy: 15,6 *
NinjaDoggy: and it would path properly
thethiny: I know but what I'm showing in the replay is that it thought at first the closest path was to go down
thethiny: then after it went there now the closest one is up
thethiny: and goes in a loop
cegprakash: new rules in silver wew
thethiny: really?
thethiny: what are the new rules?
cegprakash: yes
cegprakash: Summary of new rules
You can now see pacs that have died.
thethiny: that's it?
cegprakash: meaning if A pac dies we get the information of dead pac
cegprakash: that's all
thethiny: but like
thethiny: a pac only dies if u kill it
thethiny: so u only have information about it... right?
cegprakash: no
DollarAkshay: if typeId == 'DEAD':
continue'
thethiny: how come
cegprakash: if u kill without vision
NinjaDoggy: yeh you can run into a sad corner :(
NinjaDoggy: and get ambushed
Durkin: like going around the corner, was a problem for predicting algorithms
thethiny: oh you mean you constantly have access to a dead pac?
thethiny: I thought for 1 frame only
thethiny: makes sense
cegprakash: I think I can use this information to resign
thethiny: lol?
DollarAkshay: What do you mean @cegprakash ?
cegprakash: meaning if half my pacs are dead I can just print I resign
cegprakash: and crash my bot
thethiny: hahahaha no man
thethiny: I've seen people beat me with 1 pac alive
cegprakash: eulerscheZahl is blocking my path
cegprakash: wantonly
thethiny: he always does that
thethiny: what u can do is that if n-1 of your pacs are dead
thethiny: and you're cornered
thethiny: print "Astronomia"
DollarAkshay: Me beating Rank #1 : https://www.codingame.com/replay/461655399
DollarAkshay: Pure Luck
thethiny: wd
DollarAkshay: This was the first win after running my bot 20 times
DollarAkshay: XD
DollarAkshay: Anywasy GN
DollarAkshay: Gotta go sleep
NinjaDoggy: hm... rank 1 bot blunders that hard still
NinjaDoggy: gj anyways XD
NinjaDoggy: gn
BenWo: oh wow, hadn't even seen my rank went up
Kellthazar: I think that I can't make more great improvements to my heuristc...
Kellthazar: Sad..
TrentT: Anyone able to share how they handle moving away from attacking enemies?
DollarAkshay: I use DFS and add a negative cost when an nemey pack can eatup my pac
DollarAkshay: enemy pac*
TrentT: Does that work well
TrentT: ?
DollarAkshay: Pretty well I would say. Got me out of bronze
DollarAkshay: I just need to store the last known location of nemey bots to improve my DFS
DollarAkshay: Currently its just using line of sight to avoid them
DollarAkshay: What algo are you using @TrentT ?
TrentT: I think the same as BFS, I just iterate through all the possible positions with recursion and move towards the route with highest points
TrentT: Whilst avoiding enemies, sometimes attacking and also focusing on the 10 pointers
TrentT: Are you using speed yet?
DollarAkshay: Try adding a discount factor
DollarAkshay: The further the pelets the less valuable they are
DollarAkshay: i basically multiply the points by 0.9 for every unit distance
thethiny: good idea
cegprakash: DollarAkshay reinforcement learning in the sense u analyze the pattern of opponent and play accordingly?
cegprakash: like record his strategy in first 50 turns and based on that play from 51st turn
cegprakash: ?
thethiny: guys check this replay out :D https://www.codingame.com/replay/461660263
thethiny: I should submit this and see people's reactions lol
vmakaev: can pacman go throgh vertically?
BenWo: lol
cegprakash: thethiny nice bot
thethiny: thanks :D
cegprakash: my spine is calling me to bed
thethiny: goodnight
cegprakash: good night
cegprakash: but it's morning here
cegprakash: 8AM
cegprakash: lol
thethiny: oh nice
thethiny: you're GMT + 6
thethiny: that means you're asian
thethiny: or live in Asia or east Russia
thethiny: hello fellow Asian
thethiny: Guys do we have to just defeat Inky (boss) or do we have to rank up higher than him?
Ken_Fool: i believe we have to rank higher
thethiny: and can you tell me how Score is calculated?
thethiny: I don't seem to understand it
Ken_Fool: i havent figured that out yet
thethiny: Is it win ratio?
thethiny: I doubt sinceI'm on a loss streak
Ken_Fool: i dont think so cos even first in silver are below 50
thethiny: okay
thethiny: thanks
Kellthazar: Number of victories I guess, weighted by the oponent MMR as well..
thethiny: but that wouldn't make sense
thethiny: because when I resubmit
thethiny: I jump higher than when I was before
thethiny: even though I have less victories
thethiny: so I believe losses are counted too
Kellthazar: Yes, losses to a "weaker" bot has more impact I guess...
berries: this is probably a dumb question but you have to include the spaces between the pacId x and y in the systemoutprintln MOVE command
Kellthazar: Yeap
Kellthazar: MOVE id x y
berries: okay thanks
Kellthazar: you can append a msg too
Kellthazar: MOVE id x y MSG
Kellthazar: it'll be displayed on the pacman
thethiny: @berries think of it this way, if you didn't have to include spaces then how will the game know if you meant 22 3 or 2 23 if your message was move0223
berries: yeah i assumed that but i was hoping i was wrong because otherwise i have no idea why my code wont work
NapTown: it would tell you if the output was formatted incorrectly
thethiny: you have issues with your code now?
Kellthazar: Phew... my last submit is going terrible.
berries: yeah can't get the first version of my code working
thethiny: need assistance?
berries: that would be amazing
thethiny: how many Pacs do u have active, 1 or more?
thethiny: and what language
berries: i have it completely commented and in java
thethiny: you're in Bronze league or Wood 1?
berries: i havent submitted a single thing so i believe 1
thethiny: okay
berries: wood 2 lmao
thethiny: okay so you have more than 1 pac, right?
berries: theres two pacs, ones mine and ones the computers
berries: or oppenents whatever
thethiny: oh so it's always 1 pac?
thethiny: never more?
berries: yeah
thethiny: okay show me your print statement
berries: System.out.println("MOVE "+pacc.id+" "+highestValue.x +" "+highestValue.y);
thethiny: pacc.id?
thethiny: not pac.id?
BenjaminUrquhart: thicc
thethiny: lol
berries: yeah i just made a pac called pacc
thethiny: Benjamin check this replay https://www.codingame.com/replay/461660263
thethiny: @berries does it say that you didn't provide output, or timeout, or error?
berries: says has not provided 1 lines in time
berries: timed out
thethiny: and how many frames, 2/2 or more?
berries: 2/2
thethiny: okay so probably you didn't even reach the print section
thethiny: before your print statement add this
thethiny: System.err.println("Test")
thethiny: and tell me if it shows "Test" in red
thethiny: in the console
berries: okay
BenjaminUrquhart: thethiny twhy are you liek this
berries: nope nothing
thethiny: lol
berries: so definitely doesnt get to print
thethiny: @berries then you probably have a time out
thethiny: did you implement path finding yet?
thethiny: So what do you think @BenjaminUrquhart :P
berries: and not really path finding
berries: just going to the highest adjacent pellet
berries: i wanna get something going before i add any path finding
BenjaminUrquhart: bruh
thethiny: make sure you're not doing an infinite loop
thethiny: what's your algorithm for highest adjacent?
thethiny: is it recursive or not?
NapTown: pick a random pellet and go there, until you get it running
thethiny: yup
berries: okay so i think the im getting a problem with my grid when im adding edges
BenjaminUrquhart: I wouldn't mind of you had an infinite loop personally, less competition ;)
thethiny: 😂
berries: trust me dude, you dont
berries: i just wanna eat like 3 pellets
berries: Standard Error Stream: http://chat.codingame.com/pastebin/0b713a07-ab23-4388-b719-42c2e92ad7dc
berries: thats my errors
thethiny: bruh
NapTown: that might be your problem
thethiny: your error is simple
thethiny: x+i % width
thethiny: y+i %height
thethiny: you forgot this
berries: yeah i did the wrapping i thought but maybe i did it wrong ill go back and check
VicHofs: yo guys
thethiny: sup
VicHofs: I keep getting weird timeouts
VicHofs: for apparently no reason at all
VicHofs: anyone else getting this?
thethiny: I haven't ran for a while
VicHofs: Is there any way to tell what part of my program was running at those points?
VicHofs: that at least could tell me whether it's a glitch or not
thethiny: what language
berries: still the same error
BobLaserShark: For the pod racing challenge, does anyone know if it just uses a simple F = ma where the direction of the acceleration vector is determined by the steering output?
VicHofs: Python thethiny
thethiny: @berries the error clearly says that you have out of bound array at line 275 and 173
VicHofs: BobLaserShark the what
berries: yeah but im not sure why. like my arrays should all be big enough thethiny
thethiny: @VicHofs print("I am here", file=sys.stderr, flush=True)
thethiny: @BobLaserShark Sorry we're not in that Challenge so we can't help you, you can try in #PodRacingChallenge
thethiny: but I don't believe anyone is in haha
BobLaserShark: @VicHofs It's The Coders Strike Back
thethiny: @berries it's not an array issue, it is indexing issue
VicHofs: @thethiny I'll try that
VicHofs: @BobLaserShark is it Physics themed or something? sounds dope to me lol
BobLaserShark: It's pod racing. You specify the direction to steer and the thrust of the pod
NapTown: try this challenge bob, since it's going on right now
VicHofs: oh
VicHofs: :(
BenjaminUrquhart: BobLaserShark -3vel until gold
BenjaminUrquhart: once you get gold you get more information for your physics stuff
ChooJeremy: @berries you need (x + 1) % width
BobLaserShark: Ok. I was hoping to implement a slightly better path finding algorithm than just "Point and pray." Do I really not get any velocity info until gold?
ChooJeremy: otherwise the 1 % width gets computed first so it becomes x +
BenjaminUrquhart: BobLaserShark position-previous position
BenjaminUrquhart: do it for both x and y axis
BenjaminUrquhart: tada, vx and vy
BobLaserShark: @BenjaminUrquhart Already there :)
Yitzhakpro: any ideas how can i get my pacs not to stuck each other?
VicHofs: do a check for previous position being equal to the current one and scatter the pacs if so
VicHofs: @ Yitzhakpro
VicHofs: That's a pretty basic way to get you started anyway
Yitzhakpro: @VicHofs what do you mean by sayin: scatter the pacs
VicHofs: well you could do it in more than one way
VicHofs: I'd recommend starting with changing their destination to random points at first
VicHofs: then go from there
VicHofs: np
thethiny: if you're calculating the path
thethiny: then check if path[i] of this pac == path[i[ of that pack
eulerscheZahl: i'll say hi before chat crashes again
Icebox: :wave:
Gonny: BenjaminUrquhart any guesses as to why the chat keeps crashing?
eulerscheZahl: maxime said the reason, no need to guess
Gonny: oh?
VicHofs: Automaton2000 knows why
eulerscheZahl: We have an issue with a certificate renewal process which tries again every day. Fixing that bug wasn't a priority because we still have a while before the affected certificates expire. However, the chat do not like to see its certificate updated and simply stops. That's why it is stopped in the morning.
Automaton2000: so you need to be fixed
Gonny: ty
VicHofs: anyone know an effective way to time code sections in python other than using datetime?
VicHofs: as to avoid timeouts
BenjaminUrquhart: by using code
VicHofs: thanks I didn't think of that BenjaminUrquhart
VicHofs: I might try writing some on a pc instead of this piece of paper too
Icebox: @VicHofs use profilers
Icebox: they show how much ms every part of your code is taking
VicHofs: I'll see if I can make it work like that ty
VicHofs: @Icebox
Icebox: or do you mean measuring bot time in game?
VicHofs: no just runtime
Icebox: yeah, for debugging purposes profilers are insanely nice
thethiny: I didn't get your question VicHofs