From CG community
Jump to navigation Jump to search

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:

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:

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

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

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

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

Default avatar.png offroff: python is extremely slow I'm afraid

Doju: at most give me a vague explanation of how you're optimizing it


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

Default avatar.png Thiesjoo: It's 6pm gmt

Default avatar.png Thiesjoo: i think

[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


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

Default avatar.png goolmoos: njaber how do you account for variable speeds?

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

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

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

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

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

Default avatar.png TheSkolar: k, thanks

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

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


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

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

Default avatar.png goolmoos: oh no

Doju: made a local copy of the bot

Doju: added an "input" function that has the inputs hardcoded as a string

Default avatar.png goolmoos: and fed the same input

Doju: and ran it that way

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

Default avatar.png goolmoos: like: python < input.txt

Default avatar.png goolmoos: print the inputs in the ide

Default avatar.png goolmoos: copy from there to a local file

Default avatar.png goolmoos: and then

Doju: yeah it doesnt work

Default avatar.png goolmoos: why not?

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

Default avatar.png goolmoos: okay, thanks

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

  1. 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: صاغ هسدگف فاهس مثشلعث خعف غثف


Jesus_inn_party: why isn't this league out yet?


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


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: 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: I'm part of the cool kids too

Jesus_inn_party: 1

jrke: going for clash to change mind


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

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

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

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

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


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?

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

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:

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

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

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

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

Default avatar.png BenWo: morning folks

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

Default avatar.png BoBot: aren't there other conditions like being deterministic?

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

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

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

Default avatar.png BoBot:

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


AntiSquid: there's worse nerchio

Hjax: what do you mean my bronze bot?

Default avatar.png BoBot: well that can be both predicted and countered :)

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

Default avatar.png NaVin: how to change speed and pac type

AntiSquid: so what's your most impressive stunt Hjax ?

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

Default avatar.png BoBot: do you know if someone used their CD?

Hjax: you can see their cooldown

Hjax: its given to you

Default avatar.png BoBot: that information is not given is it? oh, ok :D

Default avatar.png BoBot: did not know that

Scarfield: for visible pacs, all info about them is given

Default avatar.png BoBot: ok, then I guess it is true, because you cannot switch and move in the same turn

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

Default avatar.png BoBot: switches first*

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 +=

Default avatar.png BoBot: there are actually pretty complex RPS strategies/bots, I tried a bit on this site last year:

Default avatar.png NaVin: AntiSquid can you tell how to change pac speed and pac type

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

Default avatar.png NaVin: I read but don't get idea

cegprakash: Riyuk that's no syntax error

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

Default avatar.png NaVin: thanks

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

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

Default avatar.png BenWo: wow 3k in bronze now

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

Default avatar.png BenWo: I'm a habitual rounder

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


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

jrke: dbdr time out

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


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:

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 ;-)

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

Default avatar.png josegomez:

avdg: not sure about mechanic

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

Default avatar.png josegomez: ah! thanks!

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

Default avatar.png BenWo: hi

Default avatar.png BenWo: it is fun


TheBigFatFlamingo: is somewhat easy? haha

Default avatar.png BenWo: the beginning is easy

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.

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

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

Default avatar.png BenWo: there are tons of non-timed exercises on the site too

Default avatar.png BenWo: gl

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

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

Default avatar.png Csipcsirip_2: niiice

Kellthazar: Rank 343...

dbdr: I'm ambivalent on the change, makes sense, but I already worked on trying to detect dead opponents

Default avatar.png Hasan-35: hi

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?


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


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


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

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

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


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


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?

Default avatar.png BigBadDictator_2fe3: hi

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


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

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

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


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?


DamianS: wait, what happened to the line of sight rule?

Default avatar.png vishalrranjan: hello !

eulerscheZahl: it remained unchanged

Default avatar.png vishalrranjan: i'm new to bot challenge.

Default avatar.png vishalrranjan: and i know js

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

Default avatar.png vishalrranjan: good

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

Default avatar.png Derthek: can you go down in league if you deploy something stupid?

BenjaminUrquhart: no

shashwat986: phew XD

Default avatar.png Derthek: great :D

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:

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

Default avatar.png codefreak288: hii

Default avatar.png codefreak288: how r u all

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

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

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

Default avatar.png Thiesjoo: What's going on

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

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

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

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

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

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

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

Default avatar.png Abhishek_Saini: Yeah may be

eulerscheZahl: printing 2 lines per turn Tiramon? :D

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

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

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


BenWo: from

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

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

Default avatar.png Derthek: yeah, but why

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

Default avatar.png LadislavZigo: lool

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

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

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

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

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?

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


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

Default avatar.png Thiesjoo: How can you take wrapping into account with manhattan distance?

eulerscheZahl: wrong question, manhattan already is the wrong approach with all the walls

Default avatar.png Thiesjoo: I know, but is there a quick fix?

Default avatar.png Csipcsirip_2: hm is this intented or a bug. look at the last frames

Default avatar.png Csipcsirip_2:

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

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


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


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

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

Default avatar.png Thiesjoo: YES

avdg: luckily it wasn't production ;-)

MonZtaDeluxe: sorry i'm not good in Bot coding, why is BFS used here? o.O

Default avatar.png Thiesjoo: I use it for finding enemy's in my path

Default avatar.png Thiesjoo: Still using manhattan distance for distance

Tiramon: there still must be something wrong in my target pellet finding 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

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

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?

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

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

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

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

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


BenWo: inspired

Tiramon: then it is propably in a scope were the varaible is not deleted after your loop

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

Default avatar.png ArchilA: python. i have empty lists inside while True loop

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

Default avatar.png ArchilA: while True:

   command = ""
   pac_ids = []
   pellets = []

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

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

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

Default avatar.png ArchilA: wtf is this

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

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

Default avatar.png WINWINWIN: I am going to the nearest super_pellet else nearest pellet

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

Default avatar.png WINWINWIN: No bugs, 100% winrate in wood 2

Default avatar.png WINWINWIN: Yeah, looks like easy wood1

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

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

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

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

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

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

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

Default avatar.png ArchilA: yep

Tiramon: only walls block your LOS

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

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

Default avatar.png ArchilA: i tried interaction but could not get it working :/

Default avatar.png ijc90: im on bronze league

Tiramon: ijc90 mine have minimal interaction with switch and if i have a save kill i also move to them

Default avatar.png ijc90: im thinking on just defending myself on close pacmans if i have cd on ability

Tiramon: else i try to avoid enemy pacs

Default avatar.png ijc90: i have some logic on collition, if I get stuck i go to somewhere random

Default avatar.png ijc90: but that's it on interaction

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

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

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

Default avatar.png Thiesjoo: It already goes to the closest pellet, fights of enemy's and does some evasion

ThierryC: yes, on the todo list :)

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

Default avatar.png Thiesjoo: If there are any other tips

AntiSquid: focus on fixing your bot

AntiSquid: best tip evr

Default avatar.png Thiesjoo: Ok thanks, about 100 ranks to go

Default avatar.png Thiesjoo: Will continue tomorrow

AntiSquid: that's not much

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

Default avatar.png Thiesjoo: Will ask him in the next physics lesson

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

Default avatar.png Thiesjoo: Yes

jthemphill: very cool!

Doju: WINWINWIN dude

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

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

Default avatar.png Thiesjoo: Sadly he doesn't, but immediately after the lesson he continues with his bot

Astrobytes: :D

Doju: haha that's awesome

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

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

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

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

Default avatar.png journeyvivek: hello

Doju: Hey BagChaser

Default avatar.png journeyvivek: hey

Default avatar.png journeyvivek: anyone do moblile app

Doju: umm nope

Default avatar.png journeyvivek: what do u dev

Default avatar.png journeyvivek: new to coding here

Doju: alright

MonZtaDeluxe: BagChaser: 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 :/

Default avatar.png journeyvivek: thank you

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:

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

Default avatar.png SabertheLost:

Default avatar.png SabertheLost: anyone

Default avatar.png SabertheLost: pacman 3 is on 27, 7

Default avatar.png SabertheLost: MOVE 2 27 7|MOVE 3 27 7|MOVE 4 27 7

Default avatar.png SabertheLost: - Pac 2 moved to (26, 7). - Pac 4 is dead! It cannot be

RockyMullet: wlesavo yeah likely that

Default avatar.png SabertheLost: Also, ealier in the game my pac4 stopped moving from the same spot until he got eaten =(

Default avatar.png SabertheLost:

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?

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

Default avatar.png SabertheLost: actully all of them is moving to that spot, lol

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

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

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


Counterbalance: njaber bot processes are paused though

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

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

Default avatar.png duckquackduck: nice company

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


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


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


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

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


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


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


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


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


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


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


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 :

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

thethiny: I should submit this and see people's reactions lol

Default avatar.png 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 "" "+highestValue.x +" "+highestValue.y);


thethiny: not

BenjaminUrquhart: thicc

thethiny: lol

berries: yeah i just made a pac called pacc

thethiny: Benjamin check this replay

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:

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

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

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

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

Default avatar.png ChooJeremy: @berries you need (x + 1) % width

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

Default avatar.png ChooJeremy: otherwise the 1 % width gets computed first so it becomes x +

Default avatar.png ChooJeremy: 1

BenjaminUrquhart: BobLaserShark position-previous position

BenjaminUrquhart: do it for both x and y axis

BenjaminUrquhart: tada, vx and vy

Default avatar.png BobLaserShark: @BenjaminUrquhart Already there :)

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

Default avatar.png Yitzhakpro: @VicHofs what do you mean by sayin: scatter the pacs

VicHofs: well you could do it in more than one way

Default avatar.png Yitzhakpro: hmm, ok

VicHofs: I'd recommend starting with changing their destination to random points at first

VicHofs: then go from there

Default avatar.png Yitzhakpro: k bro thx

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