From CG community
Jump to navigation Jump to search

Default avatar.png Dan4: Is there a way to increase font size for the editor, other than zooming the page?

chucknorris: you can use external editor with browser plugin

Default avatar.png Dan4: Oh, cool. Checking out CG Local for Firefox now. Thanks!

StepanSmirnov: @The_Duck also you can charge 1 remaining point and use action in the same turn. a.e. torpedo_cooldown was 2, then you do MOVE N TORPEDO | TORPEDO 5 8

...................0............: jo

...................0............: hi

...................0............: hi

...................0............: hi

...................0............: hi

Default avatar.png DJCaptainSaxophone_615: why my "bombDir" is empty?

Default avatar.png DJCaptainSaxophone_615: when I'm doing like "cerr>>bombDir<<endl;

Zenoscave: cerr << bomDir << endl; you mean?

Default avatar.png DJCaptainSaxophone_615: in my code it is bombDir

Zenoscave: the << is the important part

Default avatar.png DJCaptainSaxophone_615: I got tha, I have <<,

estipx: fsdf

kovi: .88 is the new top

Zenoscave: .88 what?

Zenoscave: Ah I see

eulerscheZahl: spamming SILENCE makes me play stronger vs myself offline but is worse in the arena :/

eulerscheZahl: i guess i should improve my silence tracking

dbdr: hey

dbdr: what's .88?

eulerscheZahl: hi

Zenoscave: it's gone

dbdr: OK :)

eulerscheZahl: last digits in score?

Zenoscave: top scores were 32.88, 31.88 and 31.88 for a bit

dbdr: didn't Illedan mention allowing several MSG per turn?

kovi: oh, new avatar Kaulquappe?

dbdr: does not seeme to work for me

eulerscheZahl: kaulquappe? that's a hypnoshark!

dbdr: that would be quite useful for debugging

eulerscheZahl: there is no multi-message support

Zenoscave: relation to the toad?

dbdr: OK

eulerscheZahl: do you want the pirate toad back?

Zenoscave: your choice tbh

eulerscheZahl: the shark is under water

kovi: just like tadpole

eulerscheZahl: that's the other water-themed profile pic i used in the past

dbdr: aren't all toads water-related? ;)

eulerscheZahl: fix your bot

dbdr: me?

eulerscheZahl: yeah distracting from your previous question

dbdr: I thought you would want the opposite

eulerscheZahl: distract you from working on your bot?

eulerscheZahl: maybe i do both right now

dbdr: yeah :)

dbdr: gg

AntiSquid: hi ...................0............

chucknorris: is there any silence spammer bot in gold ?

Zenoscave: very few if any

Zenoscave: I only silence when I get too few possible paths

chucknorris: hm I can add silver boots to ide cool

eulerscheZahl: Zenoscave one of us is tracking wrong

eulerscheZahl: silver boots? :boot:

Default avatar.png friska: chucknorris me

Zenoscave: who do you think it is?

eulerscheZahl: don't know Zenoscave just noticed the difference

Zenoscave: which frame?

Zenoscave: I have a lag bug so my MSG might be one frame off of yours

eulerscheZahl: around 145

eulerscheZahl: of course the frames are a little different

eulerscheZahl: but we get the same numbers before

Zenoscave: fair

eulerscheZahl: and then completely different

Zenoscave: It has to do with trigger i think

Default avatar.png friska: Guys, what do you think about sonar?

Default avatar.png friska: Should I use it?

eulerscheZahl: but i can assure you that i still have your real location as one of my possible candidates for you

Zenoscave: same here...

eulerscheZahl: SONAR helps in the early game sometimes don't don't use it too much

eulerscheZahl: but you have more possible locations for yourself you have 13, while i narrowed it down to 6 without removing the good one

Zenoscave: Yeah I must have a bug

Zenoscave: some of my locations aren't possible

Default avatar.png friska: thanks

wlesavo: wow euler, new avatar and insta top5, i guess 5% rule does work

Zenoscave: 5% rule?

eulerscheZahl: that's my tracking of you Zenoscave

eulerscheZahl: and i rolled back to my bot from yesterday :/

Zenoscave: do you consider silence?

eulerscheZahl: that question :joy:

eulerscheZahl: hell yes!

Zenoscave: I was watching your movements not mine lol

Zenoscave: ooops

eulerscheZahl: we have the message parts swapped

Zenoscave: right

mark7: what is good way of minimizing surface

eulerscheZahl: you don't have to use it at all. I guess that would be perfect minimizing

mark7: Haha:joy:

wlesavo: Zenoscave you have +5% winrate having an avatar, euler have it even for changing one

eulerscheZahl: i would love to see some real improvement on my bot

eulerscheZahl: not happening so far :/

YannT: yo who made me fall during the night :angry:

eulerscheZahl: gravity

eulerscheZahl: but Newton claimed the discovery for himself already, you are late

kovi: :smile:

tranculent: if you "submit" your current contest code, you can still modify/edit it before the deadline right?

aseweryn: I often loose in 1st round and I don't know why? Could it be time?

eulerscheZahl: yes tranculent you can submit (almost) as often as you want

eulerscheZahl: yes aseweryn that's possible

eulerscheZahl: what language are you using? some like Java are slow at startup

aseweryn: kotlin

eulerscheZahl: JVM, should be the same problem

aseweryn: ok, thx

eulerscheZahl: try to play a turn without actually using the result

eulerscheZahl: for warmup

wlesavo: tranculent more than that you have to submit to get to the next league

eulerscheZahl: or: do you do and preprocessing on the map? distance calculations or alike?

aseweryn: yes

tranculent: thank you

eulerscheZahl: make sure to do as much as you can before printing your starting position, that way it's counted to the 1s turn

aseweryn: so maybe I should do it in second round?

eulerscheZahl: 1st turn (choose your initial position) is 1s timelimit

aseweryn: ok, thx. I'll try

eulerscheZahl: next is 50ms

eulerscheZahl: so move as much as possible to the 1s

wlesavo: do you calculate much in this 1s? i barely use, although probably should

eulerscheZahl: dist for each cell to each other (BFS)

eulerscheZahl: for torpedo range

AntiSquid: it's like some of the bugs themselves have silence

CoHangXom: Hello

AntiSquid: hi

AntiSquid: well rekt dbdr

dbdr: i'm borken, yes :D

wlesavo: AntiSquid just make them to surface

AntiSquid: i think i found that particular bug and it looks really stupid @_@

AntiSquid: like how did i even consider writing that nonsense, kind of bug

wlesavo: i felt this way revisiting the wood parts of the bot, although i still have some wood parts

wlesavo: Zenoscave did you made mine escaping?

Zenoscave: yup

wlesavo: nice

Zenoscave: really horrible and basic version

Zenoscave: mostly fixed tracking bugs

Zenoscave: top 10!!!!

wlesavo: this was why i asked :slight_smile:

Zenoscave: Yeah :)

wlesavo: i guess basic mine escaping better than none

Zenoscave: Also tracking bug was really bad. euler saw it

wlesavo: i wonder why im still around top5, didnt improve much since the end of the silver, basically only changed mine planting a bit

Zenoscave: chucknorris you wreck me

Default avatar.png Compiler_Master: Hello World!

kovi: i didnt improve much either

Zenoscave: kovi small tweaks then?

kovi: bit more than tweaks, but no breakthrough

kovi: and mostly bugfixes....and introduction of new bugs :)

Zenoscave: Always the game

YannT: same here, I have my next big idea but I'm wondering if it wouldn't be worth it to tune things before trying it

chucknorris: do use use brutaltester to finetune magic numbers ?

chucknorris: you*

YannT: no I don't, maybe should

chucknorris: yeah atm I use submit to do that, but I find it a bit... inefficient

YannT: is the ooc referee available somewhere?

dbdr: YannT it's linked in the statement

YannT: oh, right

Default avatar.png DoomedSponge_da70: HELLO

AntiSquid: hi

Default avatar.png DoomedSponge_da70: how r u

AntiSquid: incredible

AntiSquid: you?

Default avatar.png DoomedSponge_da70: so

Default avatar.png DoomedSponge_da70: u know how to code

Default avatar.png DoomedSponge_da70: games

Default avatar.png DoomedSponge_da70: fine i am good

Default avatar.png DoomedSponge_da70: hey bro

AntiSquid: the site is about coding bots to play a game

AntiSquid: play the contest:

Default avatar.png DoomedSponge_da70: ayi

Default avatar.png DoomedSponge_da70: where r u from

eulerscheZahl: you can also code and upload your own games

Default avatar.png DoomedSponge_da70: i am from pakistan

AntiSquid: ah lol i forget that euler :p

AntiSquid: watch streams here how to make a bot for contest if you need help domak

Default avatar.png DoomedSponge_da70: k

AntiSquid: oops, sorry domak :/

dbdr: ValGrowth stirs the 3-10 range then quietly finishes #9 :)

eulerscheZahl: and pushes us up

dbdr: yes :)

Default avatar.png DoomedSponge_da70: hey from how much time r u guys here

tranculent: 3 days

Default avatar.png DoomedSponge_da70: oh i am from 2 days

Default avatar.png DoomedSponge_da70: oh i am from 2 datys

AntiSquid: does CG enhancer show timeouts or games where the bot breaks ?

eulerscheZahl: no. it can't without creating lots of traffic

YannT: I'm not managing to make brutaltester work with this referee

YannT: the command sent by brutaltester to launch a game with the referee seems wrong

Default avatar.png SuperYoyo92: heurhezui

YannT: ahhh it needs some class to be added

AntiSquid: hi SuperYoyo92

AntiSquid: have you tried the contest yet SuperYoyo92 ?

AntiSquid: wow another pending multi, does it ever stop? :D

eulerscheZahl: from the same author as the card game

AntiSquid: Cocobot-Eurobot2020 ?

AntiSquid: different username though

eulerscheZahl: oh, was talking about total bot war

AntiSquid: espiblop and says he is french

eulerscheZahl: and guinote

AntiSquid: and apparently it's a contest

AntiSquid: The age limit for participating in the EurobotOpenfinals is 30 years.

AntiSquid: that's a weird cut off

AntiSquid: could always ask one of my friends to submit my bot ...

eulerscheZahl: i'm below that limit, i can participate \o/

AntiSquid: ya didn't read it all: However, each team may have a supervisorwhose age limit exceeds 30.

eulerscheZahl: so your team = 1 supervisor, 0 players?

AntiSquid: no, you need a participant below 30 that can explain the bot and such


AntiSquid: see contest presentation section

eulerscheZahl: the length of the statement heavily reminds me of RAIC

AntiSquid: if (bugCondition) cout << "PLEASE SEND ME THIS REPLAY! THANKS!" << endl;

AntiSquid: now just need to hope someone will respond one day with a replay :D

AntiSquid: ah wait i could download my replays and check the output nvm

AntiSquid: jolindien you broke your bot

jolindien: yes submited by error, thx ;)

eulerscheZahl: AntiSquid

eulerscheZahl: invalid in game: invalid in game:

AntiSquid: lol thanks !

eulerscheZahl: and a 3rd just occured

AntiSquid: ok well found a bug !

Default avatar.png Alisher_Kamolov: hello

AntiSquid: hi

YannT: eulerscheZahl: I added a runner class to the referee so it works with brutaltester

YannT: do you guys want a PR on that?

eulerscheZahl: no, the brutaltester is not part of the game engine but a 3rd party tool

YannT: fair enough

eulerscheZahl: Zenoscave also made a brutaltester version

wlesavo: AntiSquid fix it

eulerscheZahl: you can even find it as a closed PR on the official github

YannT: well too late I did the thing too :p

YannT: it's just one class to add but I had to screw around with it to get it to work

ZarthaxX: lol toad that pic

AntiSquid: ya i am wlesavo

AntiSquid: on it

emh: are there any competitive applications of permutations on CodinGame? enumeration, generating random ones, compact bit representations or 2d permutations like Latin squares? I guess puzzles too, but more prefer optimization where can compete and get a rank

emh: hmm well I'll play Bulls and Cows now

wlesavo: just was gonna tell :slight_smile:

emh: oh hehe ok :)

wlesavo: wow, occassionaly some predictions worked better than expected, so now i know what im gonna do next

chucknorris: emh in your BFS algorithm the distance of a point is equal to the iteration when it was reached?

emh: chucknorris yes should be. double check that it is not +-1. as I didn't use it yet

emh: for something "useful" hehe

chucknorris: I use it in my bot. but sometimes itdoes strange steps. I blame it on your BFS algorithm :D

emh: oh hehe bug reports welcome

chucknorris: it does pretty good job tho. with its performance I could switch to 2ply

emh: chucknorris did you account for that there is no expansion done in first iteration if you start from a black cell?

emh: found some bugs in the article text regarding black/white/odd/even btw. republished

aangairbender: how many ppl are there in gold league>

chucknorris: I always clear the starting point

emh: aangairbender 148

aangairbender: ty

aangairbender: I am 2nd in silver and... it's strange feeling

aangairbender: beat everyone except boss

emh: chucknorris what do you mean you "clear" the starting point? the BFS takes as input the map where only starting point is set

chucknorris: and the map where the occupied cells are set. I clear the starting point on that

chucknorris: no I actually do the inverse. set the starting point on the map of available cells

emh: chucknorris ok. but did you understand that the BFS alternates between expanding from black to white and white to black? if nothing happens on first iteration i++ will increase i even if no expansion was done. leading to an off by one bug

emh: I guess I should fix the code in article to be more robust, at expense of some performance perhaps

chucknorris: I don't use the code in the article. I ported the python version to c++

chucknorris: but I see hte black white thing you are talking about

chucknorris: gonna check, thanks

emh: ok. btw the code in the article is pretty optimized (can get up to 2 mill per 50ms). how's your performance with the python port?

chucknorris: 1094071

chucknorris: on empty map

emh: ah ok decent

chucknorris: I use it currenty only to count reachable cells. and I use __builtin_popcountll

emh: ah ok

emh: I'm modifying the code in article a bit. moving i++ after if and break. because my objective was to count work done not distance but I guess most people are interested in distance in number of iterations

JFB: About what article you tahlkoh, emh?

emh: JFB

ZarthaxX: tahlkoh?

Illedan: H9

AntiSquid: miss, no ship on H9 B3

Illedan: :D

ZarthaxX: lol

JFB: ZarthaxX - simply topo (talking -> tahlkoh). It was shown that 1 letter has only 1 bit of information - so people can guess next letter with 50% of probability. So emh understood and answered my question despite such terrible typos

kovi: sigh, my silver code does even better than my latest

JFB: :-)

ZarthaxX: i knew you said talking

ZarthaxX: but thought it was another lang lol

JFB: ZarthaxX - my lang :-)

ZarthaxX: real or fake lang ? :P

Counterbalance: 'real' lang? what's that?

Counterbalance: aren't they all made up?

JFB: fake of course :-)

AntiSquid: new keyboard JFB ?

dbdr: kovi, really?

kovi: yes

dbdr: :O

ZarthaxX: Counterbalance good point

JFB: AntiSquid - wireless keyboard on my legs - and legs on the desk :-)

JFB: I am a far-sighted person and this is my normal position at home office :-)

Nagatwin: Thanks for the advice yesterday Counterbalance my perf greatly improved wth arrays of structs

Counterbalance: cool :)

ZarthaxX: what advice? Counterbalance :I

Counterbalance: using plain old arrays instead of vector

ZarthaxX: ah

ZarthaxX: the good old arrays

ZarthaxX: got that one

JFB: emh - interesting code. I have to port my Python code to C++ and see do simply use 256 bits is much slower that your 2 * 2 * 64 bits (black and white)

emh: JFB thanks :). pb4 put me on the right track regarding that as even his 4x64 code was faster than my 256 bit AVX2 code when we were without black and white tricks

ZarthaxX: lmao

ZarthaxX: emh you are crazy

ZarthaxX: obsessed :P

struct: what happened to euler pic

struct: Where is the frog

ZarthaxX: the frog is no more

pb4: big different between silver code and gold code kovi ?

eulerscheZahl: it's a hypnoshark, as sharks are under water

eulerscheZahl: meanwhile i'm getting more and more frustrated about my inability to improve

kovi: yes, dozen+ differences

mark7: How you guys, find longest path between two cells, in grid, so that we can use less SURFACE as possible

Nagatwin: euler what was your replay input maker ?



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

icecream17: lol

icecream17: it was very helpful i bookmarked it

Nagatwin: It does not work :(

eulerscheZahl: what do you see there?



eulerscheZahl: there's a "reproduce" in the link

eulerscheZahl: the other one should extract the json

Nagatwin: oh

eulerscheZahl: and only really works on code4life


eulerscheZahl: that's what i initially had in mind

mark7: why not don't utilize sonar much?

eulerscheZahl: then CG added our error stream to the replays, so i stopped working on it

eulerscheZahl: SONAR costs 4 charges that i can't invest in mines or silence

mark7: But, doesn't it helps tacking opponent?

mark7: it removes 25/400 cells

eulerscheZahl: it does help

eulerscheZahl: but first of all there are 15x15 = 225 cells in total

eulerscheZahl: second not all are possible if you properly track the opponent movement

mark7: sorry 200* cells

eulerscheZahl: with proper tracking you can usually limit the possible opponent locations quite good without sonar

Zhmyh: sonar is useful when it can remove ~50-75% of cells

mark7: Only use sonar when opponent appears in more than one sector

eulerscheZahl: without getting a lucky guess you can only remove 50% of the candidates best-case

mark7: Currently I am using sonar on sector which has most possible opponents.

Zhmyh: that's the most efficient

mark7: Also, how you guys find path that minimizes use of SURFACE, because 3 SURFACE COST A LOT

eulerscheZahl: same, that's the only way it makes sense

eulerscheZahl: best expected number of reduced candidates

eulerscheZahl: there are ways to minimize surfacing, e.g. generating a path and sequentially extending it by adding extra dents

eulerscheZahl: but usually just taking a long path isn't what you want

Zhmyh: finding path which minimizes SURFACE is probably NP hard problem

eulerscheZahl: instead you want to hide your location to the opponent and ship around mines

mark7: right now I select a bottom left cell and then find path to top right cell, then When I reach top right cell I goto bottom right cell ...

eulerscheZahl: yeah, the Hamilton path is NP complete. but there are still some good heuristics

eulerscheZahl: that's from the tron multiplayer game

eulerscheZahl: first i extend by going in 1 direction

eulerscheZahl: then i add an extra path to that as soon as i can by going away in a 90° angle and instantly returning (green)

eulerscheZahl: do the same again in dark blue, then pink and finally light blue

eulerscheZahl: you can also check for articulation points and solve each component indivitually

eulerscheZahl: but as i said: this kind of movement won't help you in the contest, as there are more things to consider (hiding, avoiding mines)

mark7: Ohh!, go straight then 90* then straight, avoid mines :v:

eulerscheZahl: actually my current bot doesn't even try to optimize path length

mark7: Also, I am confused should I shoot first or move first, in some situation shooting first makes sense in some situation moving first

eulerscheZahl: i check both possibilities

eulerscheZahl: shooting first has the advantage that you can directly recharge your torpedo

eulerscheZahl: in the same turn

mark7: Okay, That I didn't taught of!!

mark7: Is My tracking good enough ==> 1. plot all empty space in map as possible opponent. 2. As they move change the map accordingly 3. if they shoot, they are in range of 5

mark7: 4. If i shoot and miss or hit, they are near

mark7: 4. they use silence add 4 posiblities all directions

icecream17: if they move down, they cant silence up

mark7: Yes that is correct

mark7: I also taught of implementing a map of all their visited places so I can predict where they will move

mark7: but thats kindda hard

eulerscheZahl: i store a list of taken paths rather than a list of current cells

eulerscheZahl: it's not allowed to visit the same cell twice, so that excludes some silence targets

eulerscheZahl: and also helps reducing when the opponent keeps moving after SILENCE

mark7: Okay so you start with 225 lists.

eulerscheZahl: and these grow in length for every cell visited

eulerscheZahl: and if a cell appears twice in a list, you can remove that path

RyanMcCall: Hey, Mark7, english probably isn't your first language so just so you know when you are using taught I think you are meaning thought.

AntiSquid: fixed few bugs earlier today > rank 105, fixed all bugs i could find > back to rank ~150 so what's the next logical step? add some bugs back into the bot?

mark7: yes :grin:

eulerscheZahl: English isn't the first language for most of us here

RyanMcCall: That's great! Hats off for learning a second language and using it so well

eulerscheZahl: i suffered a lot in school :D

AntiSquid: implying that native english speakers don't make horrendous mistakes

icecream17: i'm amazed how many people learn english. i cant learn a second language....

eulerscheZahl: my interest only grew when i wanted to access some English-only contest (like coding websites or TV shows)

icecream17: how is english different from... (i really should be taking notes)

mark7: A Doubt doesn't using silence for more than one step makes your path short resulting in earlier SURFACE

RyanMcCall: Totally understand that. I attempted learning Japanese at one point because the voice actors for anime are better in Japan.

AntiSquid: kinda does mark7

Michiel: Uh, is this a bug in the Ocean of Code game?


Counterbalance: In europe it's pretty common to know at least 2 and often 3 or 4 languages.

eulerscheZahl: SURFACE isn't as bad as getting hit by a torpedo

Zhmyh: usually you die even before 2nd SURFACE

eulerscheZahl: no bug Michiel, you just decided to spawn on an island

eulerscheZahl: pick another starting location

eulerscheZahl: so i'm lame with only 2 languages (German + English) :( does Latin count?

Michiel: Oops, I didn't realize we could choose a starting location

Michiel: Sorry!

AntiSquid: latin learned in school doesn't count eulerscheZahl

icecream17: that reminds me of when i said "i just noticed the Exploroses"

AntiSquid: in vatican they use a different latin from the one they teach in schools :D

AntiSquid: so there's no point to learning latin

eulerscheZahl: i'm pretty much fluent in C#. does that count?

mark7: I have Rank 1 in Bronze league why am I not getting promoted?

eulerscheZahl: is your submit at 100%?

mark7: no 66 %

eulerscheZahl: then you have to wait till it finishes

mark7: Okay

mark7: Hope rank dont go down, looking at my messy code :joy:

darkhorse64: If you are above the Boss at 66%, your prospects look good

eulerscheZahl: 0.12 above the boss at the moment

mark7: Lets see

eulerscheZahl: you can see the score below the replay. these update faster than the leaderboard

mark7: 80 %

AntiSquid: make sure you also write current rank while updating the chat with submit progress

mark7: !

mark7: 1

AntiSquid: and do it every minute or it won't be as efficient

eulerscheZahl: :popcorn:

darkhorse64: mark7 == cegprakask ?

mark7: ?

eulerscheZahl: no, ceg knows the promotion conditions

darkhorse64: *cegprakash*

AntiSquid: the transformation is incomplete, but he is getting there

mark7: Yay! Silver League

mark7: :grinning:

eulerscheZahl: ceg once cloned a param tuner from my github

eulerscheZahl: he let it run for 3 days straight

Quidome: It looks like you can't place and detonate the same mine in the same turn

eulerscheZahl: then read the manual and realized that he had to adjust his bot to actually parse param values from a given textfile

darkhorse64: Congrats. Next step gold

mark7: Will reach gold in few days.

darkhorse64: Copy/paste is a bad thing

eulerscheZahl: Quidome as stated: "You can't place and trigger a mine in the same turn."

icecream17: you got to silver!

Quidome: Ah, yes, was only checking the mine part, it is in the trigger part:)

Quidome: thank you

Quidome: It was messing up my opponent finding :D

mark7: @icecream17 yay!

eulerscheZahl: that's why i always place my mines at the end of the turn. so i don't have to make sure not to trigger a newly placed mine

Quidome: Ah! Great Idea

eulerscheZahl: lazy idea

mark7: :joy:

Quidome: I was wandering how to fix this, but this will do the trick

Quidome: Easy :D

eulerscheZahl: will modify your bot behavior a bit, as you have different cells in placement range

mark7: see move 166 - to end, how did opponent predict my position? Or, just luck

Quidome: Fixed it, and yes you are right

Quidome: Behaviour change will be no problem for me

mark7: My bot did suicide :stuck_out_tongue_closed_eyes:

Quidome: Suicide is a problem ...

mark7: fixed!

mark7: Should I also implement a map that replicates how my opponent can predict me? If is time to SILENCE etc..

eulerscheZahl: top players do that

eulerscheZahl: also to decide where to move to

icecream17: so if the opponent has 6 lives i can assume the opponents doing the move that gives the least information....

mark7: Ohh!, moving in direction which doesnt minimize possiblitites

pb4: "eulerscheZahl 18H38 lazy idea" --> lazy here too :)

eulerscheZahl: :D

eulerscheZahl: i don't think the moment of the mine placement makes a big difference

eulerscheZahl: for torpedoes it's more relevant

reCurse: So mine placement is not relevant?

eulerscheZahl: it doesn't matter if you do it at the beginning or the end of your turn

eulerscheZahl: even if that changes cells in range

reCurse: Hence my question

eulerscheZahl: at least that's my opinion, i might be wrong

eulerscheZahl: but not doing mines at all is a bad idea

reCurse: I meant placement as in positioning sorry

wlesavo: didnt change much for me

eulerscheZahl: i don't just take a random position. the direction has some kind of preference

wlesavo: random vs some kind of trying to achieve more uniform distribution didnt have much effect

pb4: reCurse : doesn't matter enough to warrant the complexity of considering placement before and after movement

pb4: + before & after silence

eulerscheZahl: he asks surprisingly many questions about the game for an observer

pb4: haha

pb4: I guess we'll know in 14 days

eulerscheZahl: one of the rare times i will see the recalc + chat activity live

eulerscheZahl: home office has advantages :D

reCurse: I'm just curious...

reCurse: I did toy around with it for a few days but nothing great

reCurse: Still interested in the meta

eulerscheZahl: claim a large region and place mines, then avoid the opponent area

eulerscheZahl: and some fighting when one player gets too close to the other

reCurse: Then it seems like mine positioning would be important

eulerscheZahl: maybe i'm just looking for excuses not to code it

reCurse: :D

reCurse: All hardcoded or search-based?

eulerscheZahl: search-guided heuristics

eulerscheZahl: i simulate a few things like how a move will affect the opponent tracking

reCurse: No idea how to search for an opponent with unknown information

eulerscheZahl: and then use heuristics to decide and pre-filter moves

eulerscheZahl: and bruteforce for instant kills

chucknorris: the ide environment is different from the arena environment? I sometimes timeout but only in the ide

eulerscheZahl: rust has release mode in the arena C++ has a debugger attached in the IDE afaik

chucknorris: ah cool I can increase my time limit then I guess

eulerscheZahl: those testing against you in the IDE will hate that

chucknorris: IDE testers HATE him

mark7: @euler what data structure you used to track opponent, currently using HashMap<Point, LinkedList<Point>>

icecream17: if (possibleOpp > 40) {dont}

icecream17: possibleOpp.length... 40

eulerscheZahl: if have a List<Path> with Path = List<Cell>

eulerscheZahl: but i might change my path to bool[,] or HashSet<Cell>

eulerscheZahl: what is that Point keyvalue? current cell?

mark7: x, y

eulerscheZahl: you can have different ways to reach the current cell

mark7: yeas

eulerscheZahl: if you only store one of them, you might exclude it later, while it's still possible to get there on another path

mark7: when I start should I create a list for all empty cell..

mark7: Okay.

eulerscheZahl: that's what i do

mark7: dont need hashmap

eulerscheZahl: nope

mark7: first element in list is its starting point

mark7: Okay :thumbsup:

eulerscheZahl: yeah and last is current position

eulerscheZahl: but the list is slow to check for same cell twice as it gets longer

mark7: Set?

mark7: then

eulerscheZahl: hashset and boolean array have a constant lookup time

mark7: How do you decide starting point?

eulerscheZahl: somewhere in the center of the largest component

mark7: center or on with most open space?

mark7: component?

eulerscheZahl: that's the point where you should start experimenting on your own

eulerscheZahl: component:

eulerscheZahl: the bottom left part can't be reached from the center

mark7: Okay! thanks for help.

mark7: Is there a way if i want to play my bot against yours? or a specific player?

eulerscheZahl: delete the default AI

eulerscheZahl: then add a new player

eulerscheZahl: you can only fight your own league and below

eulerscheZahl: so i can fight you but you can't fight me


eulerscheZahl: my debug output (below my avatar) shows your possible paths and current cells, then the same for you tracking me

mark7: 344 moves are respectable :joy: against top 10

eulerscheZahl: at 1000 paths i prune

eulerscheZahl: but still 4 lives remaining for me :)

Zenoscave: euler how do you chose which to prune?

pb4: states.shuffle(); states.resize(1000)

pb4: ;

Zenoscave: smart. didn't think of shuffle

chucknorris: in gold I dont think you have to prune anymore. there are no longer 50k+ states

kovi: at least not in top

Zenoscave: I can only handly 1k...

Zenoscave: handle*

chucknorris: I removed the pruning code(which made me timeout ironically). I no longer timeout :p

Counterbalance: some gold bots crashed my bot with > 400k states

chucknorris: do you remember which one was that ?

Counterbalance: hm no, it was a couple of hours ago. One of the new arrivals from silver.

eulerscheZahl: Zenoscave i create new states from current positions and throw away all my history :(

Counterbalance: perhaps it was hkit, chucknorris - seeing 20k states there

chucknorris: yeah thx. in the ide he makes me timeout sometimes

Zenoscave: I timeout against jft6 3

Quidome: what counts as a state in this discussion? A complete move or a 'sub' move?

Counterbalance: a path

eulerscheZahl: visited cells + mine drops

Quidome: Uh, ok

Quidome: for lookahead or only the possibities left when you have processed all the opponent orders?

Zenoscave: the last one

Quidome: I have a much lower number on that

Quidome: wandering now if I do something wrong :P

Counterbalance: it usually is very low, except when there's a lot of silence

eulerscheZahl: i would love to have a lower number too. like only the real location

Zenoscave: kovi you're half my losses rn

wlesavo: that would be helpful

mark7: I sometimes have no state

Zenoscave: hurry your submit up :P

mark7: :joy:

mark7: My bot completely misses opponent not a single possibility

eulerscheZahl: debug time

mark7: I neeeed coffee :joy:

wlesavo: had to go back to yeasterday version of code, because with this latest "improvements" barely could get even to top10

chucknorris: top10 is pretty dense rn

eulerscheZahl: yeah, got kicked out :/

wlesavo: well backup pretty reliably gets to #2, with the same tune parameters, smths was obviously broken

Illedan: Nice siman

kovi: wow

dbdr: he's two standard deviations above everyone else

wlesavo: i think its due to that shoot->silence combo

eulerscheZahl: i didn't think that such a lead would still be possible, as everyone else has pretty much the same score

wlesavo: looks really effective

dbdr: don't other people do it?

eulerscheZahl: valgrowth killed me a few times with it even before he reached top10

Zenoscave: I try

Zenoscave: do you move towards an opponent if you know his location?

eulerscheZahl: no, i'm shy

wlesavo: i dunno, it looks like his shooting treshold is really low

eulerscheZahl: you can only do that when you use a lot of silence to still hide your location i guess

pb4: wtf

pb4: stop running over me y'all

pb4: I was first 15minutes ago

Zenoscave: lol

pb4: 6th now without repushing -_-

eulerscheZahl: i wish i could just on the train too

dbdr: sic transit gloria mundi

Zenoscave: glory fades?

eulerscheZahl: si tacuisses pholosophus mansisses

dbdr: "Thus passes the glory of the world"

Piemert: can you start a custom match with an opponent of your choice?

Zenoscave: ah yes mundi

pb4: I'll just repush

dbdr: le monde :)

eulerscheZahl: munudus

eulerscheZahl: mundus

pb4: same version, but I want to join the party :D

dbdr: 5 pushes in top 10

eulerscheZahl: red circle party?

dbdr: hopefully you manage to climb back to top 10 ;)

eulerscheZahl: big gap between 10 and 11 where did julin dien go?

Piemert: red circle?

dbdr: I wonder if the lb refresh slowless only affects display or also the opponent picker

eulerscheZahl: leaderboard

eulerscheZahl: open a replay in a new tab

pb4: green arrow party

dbdr: since that depends on the ranking

eulerscheZahl: you will see your updated score instantly

eulerscheZahl: just the UI which is laggy

kovi: afaik it works ok

dbdr: oh, so there is a workround :D

dbdr: need to write an extension to abuse it

dbdr: 6 red circles

eulerscheZahl: 2 of them can't be counted as circles yet

eulerscheZahl: red dots

pb4: red arrow at 10th place :disappointed:

dbdr: that basically depends on your last match before the refresh, I think

dbdr: basically random

kovi: wala is also on submit...somewhere down

Zenoscave: 65 last i checked

dbdr: jolindien arriving back

wlesavo: basically you can chose only counting players and lb wont change :slight_smile:

Piemert: how can I start a custom match with an opponent of my choice?

Quidome: delete one first

eulerscheZahl: delete the default AI

kovi: atm you cant, too many games tunning

Zenoscave: click the delete button under the boss

eulerscheZahl: that troll kovi :D

kovi: (just jking)

Piemert: thanks

Piemert: only from own league?

Zenoscave: yes

Quidome: and below

Piemert: :'(

Quidome: which leage are you in?

Piemert: silver

Quidome: I am bottem gold, i can start a match and send you the replay if you want :)

Piemert: great :)

Quidome: one moment...

Quidome: how do you get a replay URL from a game played in the IDE?

eulerscheZahl: 3 dots between gear and fullscreen



Quidome: thnxs :)

Quidome: this one is for you Piemert

Illedan: 14 days left and y'all pushing like it's 5 min :D

eulerscheZahl: you don't know yet how it will look like when there are only 5min left

Zenoscave: is the party still going?

Piemert: tnx Quidome!

Piemert: and eulerscheZahl ;)

eulerscheZahl: no Zenoscave, you missed the new year fireworks

Zenoscave: drats

Piemert: :( I lost

Quidome: sorry :)

eulerscheZahl: not sorry

Quidome: twice I saw...

Quidome: :D

eulerscheZahl: pb4 and that's just a resubmit?

Illedan: I guess the elo drained from siman is a lot now

pb4: eulerscheZahl and bugfix

pb4: I hope...

Default avatar.png rwilson: pb4 is there an 'easy' way to find timeouts in your last battles? I'd seen your bot timeout ( pre-resubmit ) , but can't find it anymore ;)

MadKnight: no there isn't rwilson timeout information is only written in the huge replay file

MadKnight: u gotta download a whole replay file to see if it timed out

Default avatar.png rwilson: TY MadKnight ;) was hoping someone might have tooled up such a thing. I'd noticed it in the ajax resonses for a given battle - put too busy with other things to script it up ;)

MadKnight: downloading all battles will be bad for the servers

eulerscheZahl: yeah, some of us have scripts for that

MadKnight: they don't want people to use such a tool

Default avatar.png rwilson: If I were to do so, it would only hit it as often as i do manually ;) i'd hope others would be kind enough to do the same.

eulerscheZahl: right, downloading a few hundred MB just for checking timeouts is a lot

MadKnight: u also need to send a query per each relpay

MadKnight: euler since when are u no more a toad ?

eulerscheZahl: sharks can dive under water

Default avatar.png rwilson: I'm not diving into it anytime soon - but just checking real quick a sample replay from gold is roughly 10k dl right now

eulerscheZahl: and this is a submarine contest

MostComplicatedUsername: euler...

MostComplicatedUsername: your pfp...

eulerscheZahl: and i'm a hypnoshark

MostComplicatedUsername: :no_mouth:

icecream17: yes yes yes *yes*

eulerscheZahl: promotion?

orenog_166: is there anything fun to do here? did the space races, the mars thing and enough coding clashes, what now?

mark7: I dont think so

orenog_166: ):

icecream17: an array

icecream17: '0 0': 'N', '1 0': 'N', '5 0': 'N', '6 0': 'N', '10 0': 'N',

   '11 0': 'N', etc!] And it updates too

mark7: @icecream make a better path finding system and you can get to gold


Valdemar: orenog_166 you can try to win contests if you are bored with kids stuff

AntiSquid: orenog_166

kovi: interesting, siman has solid lead, but otherwise messy top10

INORI: Hello , does anyone know how to find peopleor projects to contribute in github?

AntiSquid: quite sure there's a tutorial for that on github

mlomb: I think is a good starting point

INORI: alryt thanks

AntiSquid: did you see this? INORI

INORI: lemme check

INORI: this looks very useful thanks


INORI: i hve to tell this condingame chat had been really responsive in positive way , for all the my dummy ques.

INORI: thanks a lot

PatrickMcGinnisII: anyone know imagemagick?

MostComplicatedUsername: Magic?

MostComplicatedUsername: Yes, I do

MostComplicatedUsername: I am quite magical

emh: PatrickMcGinnisII I've used it a bit

PatrickMcGinnisII: can I split a png into 4-channels RBGY and then dither to a 2-toneb/w?

PatrickMcGinnisII: I';ve done it in php, without the lib, but minw runs too slow

emh: probably. haven't done that exactly

PatrickMcGinnisII: minw = mine

PatrickMcGinnisII: k, googling methods is ruining the experience

PatrickMcGinnisII: tx

PatrickMcGinnisII: contest over?

PatrickMcGinnisII: nvmnd

Astrobytes: Hey PatrickMcGinnisII, someone did a PHP code bundler for CG, donno if you saw it

orenog_166: HELP!

orenog_166: IN legends-of-code-magic HOW DO I KNOW IF I'M IN THE DRAFT PHASE!?!?!?!?

wlesavo: pls no caps

orenog_166: sorry, I need the answer, because I'l amost crying, I don't understand

Illedan: There is some input giving you that information.

Illedan: Or, you can count

orenog_166: there isn't!

Illedan: Always same amount of cards.

Illedan: Count it is.

Astrobytes: "During the Draft phase, playerMana is always 0"

orenog_166: and it's never 0 in the battle?

Illedan: No.

orenog_166: oh

Astrobytes: No

orenog_166: so it can be 0 in the battle

Astrobytes: Read the statement

orenog_166: you said it's not never 0 in the batt

orenog_166: le

Astrobytes: To clarify: It is never 0 in the battle phase

orenog_166: YAY!!!!!!!!!!!!!

orenog_166: and am I player 1 or 2?

orenog_166: like 0 or 1

orenog_166: who am I?

orenog_166: ?!!!!!!!!!!!!!!?!?!?!?

icecream17: 0 indexing? So 0=1 and 1=2

orenog_166: yes, but who am I?!

orenog_166: Yes

orenog_166: am I 0 or 1?

orenog_166: how can i know that?

Astrobytes: "Integer playerDeck: the number of cards in the player's deck. During the Draft phase, the second player has less card in his deck than his opponent."

orenog_166: it doesn't help me know if i'm the first or the 2nd

orenog_166: because I can't check how many cards I have if I don't know if i'm the first of the 2nd

Astrobytes: "The player's input comes first, the opponent's input comes second."

orenog_166: OHHHHHHH

orenog_166: THANK YOUUU

orenog_166: YOU ARE LEGENDERY!


Astrobytes: Do you actually want me to post the whole statement or would you like to spend some time reading it in it's entirety?

orenog_166: THANKY OU!!!!!!!!!!!!!!

orenog_166: SO I AM THE FIRST!

orenog_166: I AM THE PLAYER!

orenog_166: NOW I GOT ITTTT


Astrobytes: Can you please stop that.

orenog_166: YES

orenog_166: SORRY

orenog_166: FOR THIS


Astrobytes: Good. No need for the caps lock.

orenog_166: I DON'T USE CAPS LOCL

orenog_166: LOCK

Astrobytes: ...

ZarthaxX: ban

Astrobytes: Zarthid-19 hello

ZarthaxX: hi astrid-19

Astrobytes: :D

ZarthaxX: lmao

AntiSquid: idk he seemed interested when i read the previous conversation

Astrobytes: Perhaps just rather excitable

AntiSquid: are you still playin ocean of code Astrobytes?

Astrobytes: Slowly AntiSquid, got a lot on due to this virus shit, and still not recovered either

AntiSquid: for real? how many weeks has it been?

Astrobytes: 4-ish now

Astrobytes: People are still having symptoms (albeit reduced) after 6 weeks from what I've gathered

AntiSquid: i don't have any symptoms but was around a few people who coughed .

AntiSquid: also i heard the coughing only last up to 4 weeks, not 6

Astrobytes: The fatigue and body aches are atrocious, in my case at least. And I have increasingly bad back pain since the start. Still not sick enough to be tested though ofc. Though emergency assessment center gave 99.999% COVID diagnosis

AntiSquid: ya i don't get this, "not sick enough for testing", yet i heard about this fatigue and headache symptom from others

Astrobytes: I'm still coughing but my lungs are clear. Have to watch for phlegm, especially coloured. Viral pneumonia is not like bacterial pneumonia.

AntiSquid: they called their GP, they were given a sick note, stayed at home 2 weeks and were called back in to work although they still have a dry cough

AntiSquid: so what exactly do you need to watch out for?

Astrobytes: I called NHS after 3 weeks, got assessed (eventually) and sent home with advice and probablt diagnosis. My mum did same (some other day) and ssince her cough was worse she got a salbutamol inhaler + spacer to open her airways a bit.

PatrickMcGinnisII: tx Astrobytes checking it out

PatrickMcGinnisII: sry afk alot, running my laser.

PatrickMcGinnisII: sick, damn

PatrickMcGinnisII: so like 70% of people getting 'dat crap?

AntiSquid: idk i don't check news, getting tired of how dramatic the news stories are

Astrobytes: You look out for a serious cough, coloured phlegm, fever (not necessarily on thermometer - hot chest/back is also indicative), difficulty breathing, chest pain, back pain, fatigue, nausea, vomiting, diarrhoea... I could go on

AntiSquid: i get it it's bad, but they like to blow things out of proportions even more

Astrobytes: No, I actually get the impression things are worse in terms of infection levels. Media ofc get the wrong end of the stick and try to sell copies (so to speak)

Astrobytes: PatrickMcGinnisII cool, I saw the guy post it the other day and thought you might appreciate it so saved the link

AntiSquid: you don't believe china recovered?

AntiSquid: actually didn't check news in a while to see if there's a second wave

Astrobytes: Didn't mention China. It's kinda hard to conjecture when they're so secretive (relative to other nation's secrecy that is)

Astrobytes: Was primarily addressing UK spread

AntiSquid: afaik testing is just slow here

Astrobytes: afaics they are still pursuing the "herd immunity" strategy

AntiSquid: lol

Astrobytes: Intentionally or otherwise.

AntiSquid: then i hope i don't have symptoms because i am immune

Astrobytes: In simple terms, I do believe the UK is experiencing what is politely known as a Charlie Foxtrot

AntiSquid: do you enjoy ocean of code?

Astrobytes: Not overly no.

Astrobytes: But I'll still put some effort in.

AntiSquid: not the best game for a lockdown :/

Astrobytes: Hey, it's something to do eh

Astrobytes: We've always got UTG/CR

AntiSquid: ya well was going to try and improve XR or CR2

AntiSquid: especially CR2 since i have 500/5000 points or so

Astrobytes: I wasn't keen on that CR2 but things were tricky for me around that time too, probs enjoy it more as a multi

Astrobytes: Still, 14 days left on this OoC so lots of time left

Astrobytes: *to work on it

elderlybeginner: is there a way to use external editor instead of these built-in ones?

Default avatar.png BeardedDidgeridoo_9d92: copy and paste

elderlybeginner: that's partial solution

Default avatar.png BeardedDidgeridoo_9d92: ok

Scarfield: elderlybeginner under settings there is this option: "Use an external code editor"

elderlybeginner: I see some posts about a need for API and some old extension projects. Nothing working

Default avatar.png BeardedDidgeridoo_9d92: good to know thanks

Scarfield: i dont use it myself, but know others do, i just copy paste

Asterixk: there is browser addon to enable eternal editor feature

Asterixk: only know of chrome and firefox support

The_Duck: the chrome one works great

elderlybeginner: Scarfield, The_Duck: I don't see mentioned option for use of external editor

Asterixk: install addon first. then refresh maybe

Scarfield: When you are in a puzzle/contest IDE, under leaderboard there is settings. In settings in the bottom i have "Use an external code editor", but as mentioned it probably only works with chrome or firefox

elderlybeginner: firefox is fine, installed cg local, got error: CG Local An error occurred. Make sure the CG Local app is running and try again.

elderlybeginner: it seems running thou

Asterixk: i had the same issue a few days ago. couldn't fix it, went back to chrome, runs great.

elderlybeginner: which plugin? there is CG Local and CG Sync

Asterixk: CG Sync

elderlybeginner: I cannot find it for firefox; I guess ff + built-in editor is smaller burden for me then chrome + local

Asterixk: what suits you best. i couldn't let go of VSCode intellisense on typescript

elderlybeginner: i'm vimer, so it's a bit easier for me, although simple config file could be of help

icecream17: hmm. two players have 5 lives and are on the same square. should i torpedo myself?

elderlybeginner: nope, you will show your position and you know position of the opponent, so it's kind of unefficient

Asterixk: SILENCE S . |MOVE N .. omg..

Asterixk: SILENCE S 4 |MOVE N .. omg..

Asterixk: it requires so much upkeep even for 1 look ahead

Asterixk: better go full sim asap

MadKnight: hey guys

MadKnight: how's it going ?

MadKnight: contest i mean

Asterixk: or don't SILENCE before MOVE

Asterixk: hey MAdKnight

Asterixk: the contest? i'm stuck It's hard af. Best contest ever

Asterixk: it looks simple at first. then you dive deeper

elderlybeginner: I was rewriting the code a few times already, and there are 2 more weeks

elderlybeginner: unfortunatelly :grin:

icecream17: I got a new record! 750 actions

icecream17: I realize I don't have to keep track of the availableSpaces I delete when I surface. I just set availableSpaces as water!

KiwiTae: MadKnight hows your CSB

KiwiTae: pewpew

icecream17: silence right through my mines =O

Aslam18: mg