From CG community
Jump to navigation Jump to search

WizardAesthetics: I got to 90% how did you guys get around not hard coding?

MadKnight: hey Zenoscave

Zenoscave: hey MadKnight

MadKnight: are u in legend ?

Zenoscave: yup

MadKnight: noice

Zenoscave: thx

MadKnight: what's your strategy now ?

Zenoscave: same as the rest of gold but i optimized well

MadKnight: how did u optimize it ?

Zenoscave: dfs

Zenoscave: movement choice is important

Zenoscave: and when to torpedo is as well

Zenoscave: when/where

MadKnight: nice

jacek: happy Caturday

Zenoscave: happy pre caturday

Riyuk: Hey MadKnight

aCat: :D

Riyuk: Guys, Is there any interesting course/book on AI that you would recommend?

Riyuk: AI/ Algorithms!

MadKnight: hey Riyuk

Riyuk: :wave_tone2:

MadKnight: just make a GA

MadKnight: Riyuk

Riyuk: Any puzzle to do that? MadKnight

Riyuk: to begin

MadKnight: CSB ofc

MadKnight: lol


Default avatar.png rwilson: Riyuk - might look at "Artificial Intelligence" by George F Luger .. maybe newer versions? was good for me, but there are likely more 'fun' books out there...

Riyuk: Thanks MadKnight and rwilson

Default avatar.png rwilson: ... if you want less 'formal' an a bit more fun -- really take a hard look at Udacity courses

Default avatar.png rwilson: .. i'm sure there are good ones on Udemy, but i've taken several Udacity & they're nicely put together. ( bit of a price premium though for what feels like only 20 to 30% higher quality than Udemy in many cases though... so do your research.

aCat: there are some free coursera AI videos on youtube

aCat: I mean made by Stanford

Riyuk: Sounds nice

Default avatar.png rwilson: ;) in this day & age, virtually all knowledge is free -- if you have the time to go find it... ;)

Riyuk: I'll go check all that before picking one

Riyuk: That's the thing, there is a lot of items

Riyuk: the concern is more to choose the right ones :)

Default avatar.png rwilson: ;) if you got time... you tube.. if you dont', start lookign at Stanford free stuff, then Udemy courses ( when on sale ) and then Udacity ... ( that's, free -> $$ -> $$$$ )

Default avatar.png Raul17: Hey guys, where to check for the answers which i'm not able to solve in clash of code?

eulerscheZahl: there is no way. you can just search for the clash to try it again

AlimDursun21: hello guys, I wanna learn programming with javascript . Who is help me about this topic?

eulerscheZahl: google

AlimDursun21: thanks for suggestions:grinning:

Default avatar.png mikeNIN: also

eulerscheZahl: not even trolling. learning how to search is a key competence for a programmer

Default avatar.png rwilson: ^ too true ( but becoming a key competency for a lot of tech fields these days ... outsourcing our brains has become second nature )

eulerscheZahl: and tech is evolving so fast. impossible to know everything. so looking things up is part of my daily work

Default avatar.png rwilson: :( 40 tabs of various searches open .. right now .. while working on bot ... a mild evening of refreshing memory ...

eulerscheZahl: sounds familiar

cegprakash: when I want to get into Bronze but my friends call me to play AOE :(

eulerscheZahl: real friends would understand that CG is more important

eulerscheZahl: but instead of using your CG time to play the game, you spend it chatting

eulerscheZahl: just like me

Default avatar.png 18o3: you play AOE

marshadow9: how is everybody??

semera: Hi, codingame framework? When I start Ocean of Code simulation from captainsonar-1.0-SNAPSHOT-fat-tests.jar my debug informations are not in debug output. How to get my error/debug output?

eulerscheZahl: from the local webserver or the json file

eulerscheZahl: http://localhost:8888/test.html

semera: I am not starting web server, just simulation

semera: ok, hope have it, returns GameResult

eulerscheZahl: i know. but has it error streams?

eulerscheZahl: never tried to get them

IjustKilledutoo: hello

IjustKilledutoo: it's me

Nerchio: hello

Nerchio: its me

thibpat: hello everyone! I'm streaming again some more Ocean of Code! Most likely the last time to improve my bot

semera: ok, tested, errors are there

AntiSquid: maybe i should play rust next contest since then people can't optimize vs me :D

struct: you can even add if else

struct: if its in ide timeout

struct: else play

AntiSquid: lame @_@

AntiSquid: is that what Mr PonyPonyCodeCode does?

PonyPonyCodeCode: nop, I timeout only because my code is too slow in debug

Default avatar.png yuushimizu: hi

AntiSquid: hi, get an avatar

eulerscheZahl: hi, get a promotion

AntiSquid: don't really care

Default avatar.png wolf-555: hey guys does this site have bit manipulation questions ? am new here

tobk: what's a manipulation question?

wlesavo: try some of these

wlesavo: also chuck noris pazzle

Default avatar.png wolf-555: thank you

Default avatar.png wolf-555: @tobk

Default avatar.png lxnn: Hey, can anyone answer this question: in 'Ocean of Code', what do the 'cooldown' values mean?

Uljahn: charges needed to use a system

darkhorse64: number of charges remaining before being operational

Default avatar.png lxnn: Ah right. Thanks!

Default avatar.png lxnn: Seems like a bit of a mixed metaphor

Default avatar.png lxnn: cooling down vs charging up

tobk: note that it's a bit confusing that in the UI, e.g. the torpedo is ready when there are three dots, but in the input, it is ready when you have a zero cooldown

Nerchio: yeah

Nerchio: i gave up trying to use cooldown so

Nerchio: i have my own tracking for powers xD

tobk: finally integrated mines into my fatality-code. nice combo: SURFACE | TRIGGER 8 0 | MOVE N SILENCE | SILENCE W 3 | TORPEDO 7 1

Default avatar.png lxnn: seems sensible to track powers yourself, because they could change between commands (i.e. they're not the same throughout your turn)

Default avatar.png lxnn: I suppose the provided values could be used for validation

LyVanBong: hi everyone

tobk: I update my cooldowns while preparing my turn, but in between turns, I rely on the inputs provided

Default avatar.png lxnn: hi LyVanBong

Febrin: Fast question, can you put mines on island?

NormantasStankevicius: no

Febrin: Thanks

MSmits: just land mines I think

MSmits: legend feature

Nerchio: lol

Nerchio: MSmits are you in legend already

Nerchio: You gave me a lot of trouble in gold :P

eulerscheZahl: top gold

eulerscheZahl: 7th including the boss

AntiSquid: all about who gets pushed and how

eulerscheZahl: i see it coming, he will make be cry again

MSmits: you're more confident than I am euler, very little time left

eulerscheZahl: you always get what you want

MSmits: I was at 2nd 3 times yesterday, think it was luck

MSmits: usually, not always

eulerscheZahl: i have no doubt that you will reach legend in the end if you try

MSmits: but we'll see, I am trying to code self tracking now. Have to recode it because my other code is too bloated to reuse as selftracking

MSmits: is it bad if i ignore mines on selftracking?

eulerscheZahl: i check for blasts in self-tracking. but don't go back all the way to check if a mine can be there

MSmits: yes blasts i do

MSmits: i dont blast myself except on fatality, so thats easy, only need to check opponent actions for that

eulerscheZahl: somehow it was worse for me with full mine tracking on myself. not sure if i screwed up implementation or if other bots have bad tracking

YannT: your triggers can be very revealing so if you wanna do self tracking proper your might wanna have that in ;)

MSmits: not enough time though yannt, this is basically my last full day to get out of gold

MSmits: i need a small boost is all

Nerchio: submit submit submit :D

eulerscheZahl: i even have a likeliness in tracking: it's possible that the opponent shoots himself. but unlikely. so i try to find a path without first. if none remaining, i allow self-shooting

YannT: do you prioritize shooting before moving whenever applicable?

YannT: that's a small boost right there ;)

MSmits: yes i do

eulerscheZahl: because shoot->move can recharge your torpedo

YannT: yes, often games are decided by just one torpedo charge in the end

MSmits: my problem is mainly that i dont use silence intelligently at all and also dont move to avoid being tracked

MSmits: also I think I need to improve my mine laying. Right now I just try to cover the map, but it's better to lay mines in places that the opponent hasnt visited isnt it?

YannT: self tracking is what allows you to assign value to your silences

MSmits: yeah

pb4: MSmits : I have a dumb mine laying method just like you have

Default avatar.png lxnn: has anyone tried using a histogram filter for the tracking?

YannT: yeah I didn't do anything fancy with mines either

MSmits: ok pb4, but what if you do a "visited probability" function that calculates where the opponent likely has visited and then prefer cells that have a blast range on unvisited cells?

pb4: Nope

pb4: My only logic is to have at least 3 new cells covered by the mine I lay

MSmits: currently i disallow any overlap between mine blasts, probably a bad call

MSmits: but it makes me do more silence

pb4: You'll have charge a new mine by the time you've moved anywhere else

pb4: charged*

eulerscheZahl: now good is your opponent tracking? say the opponent knows where you are and you are on a possible mine of your opponent but the opponent doesn't trigger. then it seems there is no mine at all.

eulerscheZahl: do you handle that to eliminate paths?

MSmits: no

pb4: speaking to me ?

MSmits: it's dangerous

eulerscheZahl: yes, pb

MSmits: you might be wrong, some people trick you

pb4: It's on the todo

pb4: same with torpedoes

YannT: seems risky

Nerchio: damn when you submit and you don't move from 50th place

Nerchio: feelsbad

eulerscheZahl: he can't shoot you if you are out of range

pb4: also this would only apply to the rare case where I'm right over the mine

YannT: that will have you make possibly wrong assumptions about the opponent's estimation of value and if you're wrong you'll loose tracking

pb4: If I'm in the 1 damage area, he could try to wait for me to walk over the 2dmg area

pb4: YannT : "lose tracking" --> that's a no for me

pb4: I have two trackers

pb4: tracker with assumption

pb4: tracker without assumption

Quidome: OK, this was it. My new code is nice but way to slow. Have to back to the drawingboard for that and that is to much work for 2 days. :P

YannT: that's smart

pb4: if the tracker with assumptions loses tracking, I default to the tracker without assumptions

Quidome: Good luck to you all, see you at the next contest :D

eulerscheZahl: which is in less than a month already

Quidome: :punch:

eulerscheZahl: show some happiness

Quidome: ¯\_(ツ)_/¯

MSmits: wow... just my first test of bugged selftracking I see myself move in a large L-shape and reveal my location in like 10 turns

MSmits: while gold boss makes a little square

YannT: pb4: this is actually possibly the main reason I don't compete anymore when I think about iit... there's a lot of valid assumptions I thought of but decided against because it was too risky :o

pb4: MSmits : how high are you without self tracking ?

MSmits: best rank was right below gold boss, did that 3 times

pb4: YannT : a lot ? I actually thought this was a useless feature in my bot -_-

MSmits: I have 35% winrate vs gold boss

MSmits: I think if i get this thing to work it should get me legend, just from seeing myself reveal my location so quickly without selftracking

MSmits: probably i dont even need intelligent silence use, just picking the right move direction should do it

YannT: pb4: seems like that would only ever make a positive difference wioth no negative impact, as long as the assumptions make sense

Default avatar.png lxnn: Question: do you think it's conceivably possible to do Q-learning in Python given the runtime constraints? I just started yesterday and need to decide how to use my time effectively.

Default avatar.png anid: Congrats on ur win Kovi

YannT: I wouldn't be so sure ;)

Illedan: Long time left.

Illedan: And winners get prizes too. Time to do some serious stuff

YannT: is there tshirts?

YannT: I thopught not

Illedan: Thibaud said so yesterday

YannT: oh yay

YannT: seems like I'll get my first one then :)

MSmits: SeriousStuff initiated

Illedan: Indded

YannT: plz don't kick me out of top20

wlesavo: top 20?

YannT: top20 gets tshirts usually :)

wlesavo: wow

YannT: I feel like I've finally deserved one on this contest

YannT: oh yeah the contest poage has been updated!

YannT: Are there any prizes to win? The 3 winners will receive a canvas of the contest artwork! Also 20 T-shirts will be awarded to the 20 top players in the Leaderboard!

LikeUnkai: Skynet 2 has an issue. Test last "06 " failed only Submit session, all tests were success. why?

eulerscheZahl: ah, they updated it indeed :o

eulerscheZahl: was announced on discord yesterday evening

eulerscheZahl: and i wrote again without reading all the chat

pb4: eulerscheZahl : actually thinking more about it, it's difficult to implement the logic "I was there, he knew where I was, there can't be mines there" in my code

pb4: I don't save mine positions, I save where the mine was laid

eulerscheZahl: same. thought a bit about how to implement it, but i agree it's hard

YannT: also my data structure doesn't easily let me iterate over possible mines :p

eulerscheZahl: a bitboard

YannT: yeah

YannT: it's great and "is there possible a mine there" is super fast, but iterating over possible mines becomes like iterating over the entire grid :(

YannT: still fast but meh

eulerscheZahl: pb broken? got 3 wins vs him

eulerscheZahl: yeah, definitely broken

YannT: he's testing compiling stuff he said, times out a lot

eulerscheZahl: i suggested him to submit a binary for testing

pb4: Yup broken

pb4: local compiling seems to timeout

pb4: No idea why

pb4: Not that interested in investigating

eulerscheZahl: other compiler version, missing libs?

eulerscheZahl: i remember we had to use a specific g++ version when i tried submitting a binary

AntiSquid: eulerscheZahl see last frame: it doesn't update the dots and i actually get in the input that i have 2 life not 1, so it's not just a visual bug

eulerscheZahl: i dont see how that's not a visual bug

eulerscheZahl: the opponent shoots a torpedo right at your location and you lose the remaining 2 lives

eulerscheZahl: so you lose, last frame is missing


AntiSquid: check last frame ... i give out a command

MSmits: Grrrr: if (triggerX = posX && triggerY == posY)

               hit = true;

MSmits: see the error?

MSmits: c++ =/

Default avatar.png anid: first condition, number of =

Astrobytes: triggerX = posX, classic

eulerscheZahl: last frame output stream: TORPEDO 13 2 | MOVE N TORPEDO |SILENCE W 1 | MSG 1 ms

MSmits: yep yep

AntiSquid: ah looked at the wrong color ... :/

Illedan: yeah..

eulerscheZahl: because everything is shown as p1 in the summary below the viewer (known bug, reported on the forum)

AntiSquid: i am not colorblind but i keep mixing up the orange and the red, that was the issue

AntiSquid: was thinking i am red

AntiSquid: while looking at the correct sub

MSmits: finally my self tracking seems to work ! Now to use the information...

AntiSquid: how can you get mine tracking to work but have problems with self tracking?

AntiSquid: i find mine tracking far more difficult

MSmits: it's not that it's difficult, it's that I made such a major mess of my code, i cant just reuse opponent tracking. So I had to recode a slimmer version of my opponent tracking

MSmits: and cause loads of new bugs =/

AntiSquid: ah i had a mess too, maybe you should consider rewriting after contest

MSmits: maybe I should consider never looking at it again :P

MSmits: like I always do after contest

MSmits: too much else to do

MSmits: but you're right AntiSquid, mine tracking is hard

MSmits: i did that 2 weeks ago so the pain has subsided

idkhow2codee: Hi, does silence make path behind you when you move >=2?

iFightLegends: yeah

iFightLegends: yeah

idkhow2codee: oh k

idkhow2codee: thanks

MSmits: first game with functional move selection based on self-tracking:


AntiSquid: replay the seed see if you win all the time

AntiSquid: i get random wins vs boss too

MSmits: i did the second time

MSmits: my main point is: No more long L shape at the start. It makes a tighter shaper

MSmits: shape

AntiSquid: ya initially i thought everyone was hardcoding that movement lol

MSmits: makes sense

MSmits: hopefully this is enough to beat the damn boss

AntiSquid: who knows

MSmits: i should say hopefully it actually helps, might be a fluke on this map

AntiSquid: submit?

MSmits: i did

MSmits: hard to say

MSmits: its going

MSmits: also started CG bench

MSmits: I like the start


AntiSquid: nice

AntiSquid: everyone else seems to just shuffle the ladder and feed the boss :p

MSmits: if I get a 50% + winrate vs boss, I will spam the :poop: out of it

MSmits: push people into legend if they beat me, drop the boss if they dont

Illedan: Nice plan

MSmits: mehL


MSmits: cheered too soon :)

Illedan: :D

AntiSquid: the mandatory loss streak

MSmits: yeah

AntiSquid: always baffles me to have a win streak and a loss streak, would expect more mixed results

Nerchio: we didnt have any new person since 24 hours in legend

Illedan: Let's keep it that way

dbdr: humans are bad at expecting randomness

eulerscheZahl: 50 is a good number

Illedan: Let's make pb 4 the boss

MSmits: it's a selection effect AntiSquid. You don't remember all the times you didnt get a streak

dbdr: we see patterns where there is just noise

AntiSquid: make pb the boss and reset legend

Nerchio: so if the event finished now i would get a tshirt?

Illedan: Or open SuperLegend

Nerchio: #20

Illedan: There is still a rerun Nerchio

Illedan: Where you get 1000 or so new matches

dbdr: above Legend is Mythical

Nerchio: rerun?

AntiSquid: ya Nerchio lucky submits won't help that much anymore, but they do help a bit

Nerchio: so after timer finishes everyone in legend plays around 1000 matches or what

Nerchio: ?

Illedan: yeah

Illedan: to stabilize

AntiSquid: just rename legend to platinum / diamond and have legend above that, more like a moba

eulerscheZahl: first all pending submits will finish. so you can in theory go all the way up from wood to legend

eulerscheZahl: then the final rerun takes place

AntiSquid: last second submit can still go wood to legend? woot lol

eulerscheZahl: every player starts 500 matches on its own. so approx 1000 per player as you can be selected as an opponent

eulerscheZahl: recalc only happens for min(100, legenLeagueSize) players

AntiSquid: i forgot about that

Swagboy: Hehe if someone in wood found the magic constant

eulerscheZahl: sometimes it happens that we have to wait for one gold player to promote and climb up, delaying the whole rerun

AntiSquid: you can still last minute submit bronze to legend

eulerscheZahl: i can't recurs e can

AntiSquid: good win rate MSmits but you still so far from boss :/

MSmits: yeah

MSmits: it's not good enough, I am trying more things. I have the tracking, so I just have to use the information properly

AntiSquid: use the Luke, force

MSmits: I will use the Luke

darkhorse64: Is there a way to see the gold boss level when you are legend ?

MSmits: no idea actually

eulerscheZahl: yes, open a replay containing the boss

eulerscheZahl: the score is shown below

AntiSquid: why? are you worried big bad MSmits will come and wreck you?

eulerscheZahl: there's another way using the in-game leaderboard for the specific league. but that's something for scripting, no simple manual way

MSmits: look AntiSquid:


MSmits: no streak

eulerscheZahl: we don't fear AntiSquid we accepted defeat the moment smits decided to play the contest instead of onitama

MSmits: :P

AntiSquid: maybe i should play community games instead of idling in chat :thinking:

eulerscheZahl: nah, chat is fine

darkhorse64: I have achieved legend with no hope to win a tshirt. I have nothing to feat. Just interested in others effort

eulerscheZahl: that dasies game reminds me of connect4 just with a huge branching factor

eulerscheZahl: same darkhorse64. i gave up

MSmits: it's a strange game

ZarthaxX: hi guys

eulerscheZahl: minimum goal achieved, getting some rest before the next contest + codejam

Nerchio: come on darkhorse you gave me a tough time in gold its time to fight in legend too :D

ZarthaxX: darkhorse64 u quit?

darkhorse64: Not yet for me. I am trying some marginal improvements in lack of a real strat

wlesavo: eulerscheZahl i remember you claiming a bot from march 31 would take 50-60 in the end of the contest, i guess you right in a way that you can only submit it in legend

MSmits: huh, explain that

ZarthaxX: wot

MSmits: what is 50-60?

wlesavo: #50-60

ZarthaxX: position i guess

darkhorse64: Unless a flood of people promote, this is going to be my best result ever

MSmits: oh ok

MSmits: rank

wlesavo: yes

ZarthaxX: smitooooooooooo

MSmits: yes Zarthy?

ZarthaxX: heyo

MSmits: hi

ZarthaxX: school got you more busy than usual

MSmits: mmh school and uttt

MSmits: but not anymore, almost vacation

ZarthaxX: oh u did uttt this month?

MSmits: yep

ZarthaxX: oh nice!

ZarthaxX: so u kind of quit this one

MSmits: I am trying to get to legend

MSmits: then i will quit

ZarthaxX: i see

ZarthaxX: same feeling

ZarthaxX: :P

kovi: euler, you still have stats running?

Default avatar.png lxnn: Are any more game elements added after bronze league?

ZarthaxX: no

MSmits: no game rules, many different game strategies though

eulerscheZahl: i admit my estimation was wrong wlesavo

Default avatar.png lxnn: oh ok, thanks. I was a bit confused because I got promoted automatically

ZarthaxX: Nerchio do you have if else spaghetti?

eulerscheZahl: i don't have much experience for such long contests

Nerchio: y

ZarthaxX: wow..

MSmits: patience you mean eulerscheZahl?

ZarthaxX: congratz on that rank for first contest btw!

Nerchio: ty

MSmits: oh right, experience too

ZarthaxX: really skilled spaghetti

Nerchio: you dont have if spagheti/

ZarthaxX: a mix

MSmits: 2569 lines :(

wlesavo: but still would be fun to submit it in gold

ZarthaxX: but i suck at spaghetti

MSmits: justy fyi, i worked on uttt for 2 years and it's 1400 lines

ZarthaxX: are u first?

Nerchio: whats utt

MSmits: havent checked today

ZarthaxX: ultimate tic tactoe

MSmits: karlis o was gonna do something

MSmits: but i was 1st yeah

ZarthaxX: like tic tac toe but on steroids

ZarthaxX: oh ok

Nerchio: lol

ZarthaxX: was?

MSmits: maybe still, let me check

ZarthaxX: ah ok

ZarthaxX: :P

darkhorse64: MSmits 51st ?

MSmits: I am currently above boss

MSmits: but...

ZarthaxX: :O

MSmits: submit hasnt ended

MSmits: hate that

MSmits: will go back down i think

MSmits: several losses

ZarthaxX: this is the one smito

ZarthaxX: :C

MSmits: nah it;s shot, will try again :0

Default avatar.png lxnn: Can you lay a mine on the cell you're currently on?

MSmits: still nr 1 uttt

MSmits: ZarthaxX I did something tricky to beat karlis o

MSmits: he's the only guy i cant beat without opening book

MSmits: but he has one too

darkhorse64: Overbooked karliso ?

MSmits: so i recorded his book and created my own book on top of it

MSmits: 100% winrate :P

ZarthaxX: ah ..

MSmits: as p1 that is

ZarthaxX: LOL

ZarthaxX: u used his as a base

ZarthaxX: lmao

MSmits: yep

ZarthaxX: kind of boring way of winning

ZarthaxX: but fair

MSmits: my bot is also very strong, i am not sure if it would be 1st if everyone removed their books

MSmits: but it would be 2nd at least

MSmits: so I have no choice but to counter any player with deep books. That is the way to go in the top 4 apparently

kovi: it is definitely hard to climb today

Illedan: No more autowin of pb 4? :P

ZarthaxX: MSmits it's a fair play

ZarthaxX: i just like games maybe where u cant do opening

ZarthaxX: i like the idea of it tho

wlesavo: that book war is facinating

MSmits: ZarthaxX bandas then

MSmits: you can create endgame books for bandas, but that is just to more efficiently solve.

MSmits: eulerscheZahl did a good job on making onitama openingbook proof as well

ZarthaxX: no opening?

ZarthaxX: ah doesnt make sense right

ZarthaxX: too many starts

MSmits: like a million or more

eulerscheZahl: not me, the game was always like that

MSmits: onitama has less than bandas but still a lot

MSmits: true...but it influenced your decision to pick it didnt it?

eulerscheZahl: yes

eulerscheZahl: and i saw nice animations at my inner eye

MSmits: they sure are nice

darkhorse64: If there is ever a chess game on CG, it shoud be the Fischer Random variant for this reason.

MSmits: you dont really have to worry about opening book moves with chess

eulerscheZahl: someone thought about adding chess in exactly that version. illedan?

MSmits: there's a few useful ones, but other than that, the branching is so enormous, it is of limited use

MSmits: checkers has more use for it

Swagboy: There was final books however in previous state of the art

Illedan: That project was put on hold :P

Illedan: But the idea was to add with fischer random

Illedan: But I like the idea of normal too

Kukiss: Hello all, I have a grid with flagged areas in it and now I try to find the border cells of these areas. I am having hard times to ask a proper questions to google to look for some existing solutions. Do you maybe have any how to call it?

Kukiss: any idea*

MSmits: do you want a list of them or just a grid with the border cells flagged

MSmits: I mean do you need to keep the relation ship with the center cell

Default avatar.png Matryza: path finding algorithms find the one u need

Kukiss: well, I have already a mess. I have grids and I also store sets of coordindates. But a grid result would be better

Kukiss: and, I do not need to keep the relationship with the center cell

Nerchio: fun statistic

tobk: How are the first opponents in a submit determined? I random selection from the entire pool? just had a boss fight as first battle and by bot was ~90th on last submit

Nerchio: i start an if statement 362 times in my bot

Default avatar.png lxnn: Kukiss, if I understand you correctly, you have a region of cells, and you want to extract those cells that lie at the edge of that region?

Default avatar.png lxnn: And this is on ocean of code?

Kukiss: lxnn yes, it is OoC and yes, your summary is correct

tobk: get all cells in the set that have a neighbor that is not in the set

Default avatar.png lxnn: Ok, so surely it's just the cells that have at least one neighbour that is not inside the region

Default avatar.png lxnn: beat me to it tobk

tobk: I love ses in Python. Use them extensively in all contests. e.g. to find the overlap of some blast area and possible opponent positions

tobk: *ses=sets

Kukiss: I store opponent's possible paths as sets + coordinates of last position and I wanted to filter it a little bit out with having only edge cordinates. But with this solution I miss information about the neighbors per each path.

Thanks for the insight, I will think how to rebuild my stuff.

Kukiss: tobk Actually, I read second time what you wrote about sets there and it was exactly what I was missing. Thanks!

Counterbalance: almost legend, MSmits, nice

MSmits: yeah, it's a struggle to get there really. Not having much luck today even though i coded a lot of improvements I thought

Counterbalance: My improvements are often worse aswell

MSmits: mine arent even really worse. They are just major things and when i do a test, there's no change

Counterbalance: same here, it's confusing

eulerscheZahl: it's frustrating

MSmits: yeah

MSmits: btw, I too have succeeded in timing out myself with self tracking

MSmits: using silence

MSmits: that's when you know you're doin it right

eulerscheZahl: we can do that too

eulerscheZahl: just got one in the IDE while typing :D

MSmits: lol gj

Default avatar.png darkstar: hello everyone

MSmits: hi

Default avatar.png darkstar: new here, was wondering if anyone has give a go at "Shadows of the knight- ep 1"?

ZarthaxX: it's a weird game where you code improvmenets and it doesnt work :D

ZarthaxX: consistently

MSmits: does it consistently not work or does it not consistently work?

ZarthaxX: well lets say 50 50

ZarthaxX: :P

MSmits: lol ok

Swagboy: Haha

MSmits: darkstar almost everyone has

MSmits: look up binary search, that's what you need

Default avatar.png darkstar: ok, thanks :)

MSmits: np

MSmits: it's a 2D version of binary search btw, what you will find is most likely 1D

MSmits: not that different, but still

eulerscheZahl: you can do both dimensions independently

MSmits: yeah i guess it is 2x 1D

Default avatar.png darkstar: i have been changing the bounds, dividing by 2 but still haven't gotten it to pass all the tests. I will start over

MSmits: thats kind of how to do it, but there's many ways to make a mistake

Default avatar.png darkstar: yeah, i know xD

MSmits: output your choices in error messages and see if they are correct

Default avatar.png darkstar: this channel is called world. Is it for all challenges or specific to what im trying to solve now?

MSmits: maybe add some more messages for intermediate results

MSmits: this is for all

eulerscheZahl: general purpose chat

Default avatar.png darkstar: ok good to know, thanks

MSmits: we are doing a contest right now so thats what you'll be reading about, it ends on mondaymorning

eulerscheZahl: right now it's mostly about the contest ending on monday

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

Default avatar.png darkstar: oohhh, good luck !

MSmits: thanks, the goal is to make eulerscheZahl flip again, but for a different reason :P

ZarthaxX: invite eulerscheZahl to clash of code

MSmits: yeah that seems like great fun until he decides to accept and whoop you

MSmits: cuz you know he will

Default avatar.png Sneffy: Hi! I'm doing LoC&M now and i wonder if someone has some time to help me finding a way to generate and test possibilites efficiently

MSmits: did you read the post mortems?

Default avatar.png darkstar: flip as in flip out?

MSmits: mine is pretty detailed I think

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

MSmits: type /flip

MSmits: as in flip the table over

Default avatar.png darkstar: haha

Default avatar.png Sneffy: Okey MSmits i'm gonna read it and see if i have some question thanks :)

MSmits: np

Default avatar.png Sneffy: At first i wanted to store a Move as as tructure that contain a type (int that represent if the mvoe is a summon, attack, or use) and then card pointer for source and target, is it too slow to work ?

MSmits: that kind of speed doesnt matter much in this game

MSmits: you need speed in the sense that you dont consider duplicate moves

MSmits: as in two move orders that lead to the same state

MSmits: so if two creatures worktogether to kill something and there is no shield involved (whatever that bubble is called), then just consider one order between them

MSmits: so if you do A attack C, then B attack C, dont consider B attack c, then A attack C

MSmits: shield complicates this though, because when a creature is shielded, you need to attack with the low damage creature first

Default avatar.png Sneffy: sure

MSmits: this sort of "using fixed order" strategy to reduce branching also works on summoning and using green items (and red items to some degree)

Default avatar.png Sneffy: So i need first to generate all the possibles mobes

Default avatar.png Sneffy: moves*

MSmits: if you can, you need pretty strict pruning. Also you need a way to deal with the tree for those rare instances where the branching is just too great

Default avatar.png Sneffy: and like take one, then regenerate the possible moves ?

MSmits: something like that

Default avatar.png Sneffy: because if i play one move, then it will remove some other possible moves or add new ones, like if i kill a guard

MSmits: it is not an easy game though. if this is your first time doing a tree-based search it is going to be rough

Default avatar.png Sneffy: so each time i choose a move i need to compute again

MSmits: yeah

Default avatar.png Sneffy: I have tried tree search on csb but i stopped after not being able to make my blocker works

idkhow2codee: what are you guys talking about?

MSmits: csb is also not an easy game to start doing tree search with

MSmits: tron is easier

MSmits: or any of the simple board games

Default avatar.png Sneffy: i've done it with bandas too but i have not enough performance to get to top

MSmits: ahh dont worry about the top when you're still learning. Bandas top is really strong

Default avatar.png Sneffy: on csb move generation is somewhat easy because it's always the same ones

MSmits: most of these simple board games have very strong top players

Default avatar.png Sneffy: but on loc&m it seems tough

MSmits: it is

MSmits: do you use a fast language?

Default avatar.png Sneffy: c++ yea

Default avatar.png Sneffy: i've done it years ago in java but i wasn't good and i had like 3-4k sim per turn

MSmits: ah ok, that helps for csb and those board games, however, it is a pain to use it on locam

Default avatar.png Sneffy: i had a basic monte carlo without tree

Default avatar.png Sneffy: just while(time) test random

MSmits: ah ok, some top players had that too

MSmits: it works ok

MSmits: but better perfromance is important then

Default avatar.png Sneffy: Yeah

Default avatar.png Sneffy: so in a tree a node contain a whole turn ?

Default avatar.png Sneffy: or each node is a move

MSmits: depends on the game

Default avatar.png Sneffy: for loc&m

MSmits: in locam a node is a move

MSmits: for me anyway

Default avatar.png Sneffy: okey

Default avatar.png Sneffy: I should maybe try without tree for now to get legend first

MSmits: you can do that, but you'll still need some kind of heuristics

MSmits: I never wrote a heuristic bot for locam so i am not sure if it is hard

Default avatar.png Sneffy: you mean the evaluation for the board ?

Default avatar.png Sneffy: or to prune moves

MSmits: i mean if you use no tree

Default avatar.png Sneffy: i can like bruteforce

MSmits: you need some rules to determine what moves to do

MSmits: which cards to play etc.

MSmits: my bot does this using a tree, if you dont use a tree, i dont know what else you would do

MSmits: heuristics obviously, but that can get complicated also

MSmits: I think I have a clear avantage over ooc gold boss now

MSmits: but I need to get past the rest of the players :P

MSmits: time for some submit spam maybe

Default avatar.png Sneffy: In your PM you speak about phase, like summon phase, then green item.. etc So in your node you have those phases ? like while you can summon you only generate chil that summon ?

MSmits: yeah i have phases

MSmits: some of them may repeat though

MSmits: like i might have two summon phases

Default avatar.png Sneffy: yea i saw it

Default avatar.png Sneffy: but you also have a node that summon nothing ?

MSmits: oh hmm, yeah maybe i do

Default avatar.png Sneffy: like keep a card for later

MSmits: Iam not sure what happens if i have no creatures, i may create an empty node

Default avatar.png Sneffy: it would require to score the cards in your hand to not plays them each time you can

MSmits: thats not important though, just do whatever works

MSmits: sometimes making an empty node makes things simpler

Default avatar.png Sneffy: It wasn't like if you have no mosnter to play, but more if you have one spell and you prefer keeping it

MSmits: ah yes, i have an option for not playing any spell

Default avatar.png Sneffy: like it could improve the board state, next turn, but you still keep it because it could improve it more late

MSmits: sure, yes, let me look it up

Default avatar.png Sneffy: and you need scoring the card in your hand to that your search keep it right ?

Default avatar.png Sneffy: else it'd just "waste" like a red spell -7hp on a 2/2 monster

MSmits: double EVAL_ITEM_USE_COST = 0.2;

MSmits: I deduct points for using an item

Default avatar.png Sneffy: oh it it's constant for each item ?

MSmits: not sure, let me check

MSmits: score -= itemUseCost * EVAL_ITEM_USE_COST;

MSmits: so not constant

Default avatar.png Sneffy: ok that's what i thought nice

Default avatar.png Sneffy: i have much to do now haha

MSmits: as long as it's fun :)

Default avatar.png Sneffy: yeah, i prefer doing games like loc&m and csb as they are funnier but.. also harder

MSmits: yes, csb is hard for a different reason though

MSmits: it's very sensitive to eval and the physics is not easy to get perfect

Default avatar.png Sneffy: i found it kinda easy to get to top 20 legend

Default avatar.png Sneffy: but to get higher is way harder :p

MSmits: with locam, eval doesnt seem to matter that much as long as it makes some sense

Default avatar.png Sneffy: i have a top30 genetic algorithm but with tree i couldn't acheive sames results :/

MSmits: which algorithm?

Default avatar.png Sneffy: yours :p

MSmits: for tree

MSmits: oh, very few people have made it work for csb

Default avatar.png Sneffy: i mean with simple eval it works great for runner

MSmits: Yeah that is what people tell me that try

MSmits: my eval for csb is a mess, but it somehow works

Default avatar.png Sneffy: mine is too for my genetic

Default avatar.png Sneffy: i have like 30 lines with plenty of if with angles and stuff

MSmits: I never wrote a GA myself, I like SA, so I would probably try that first for a game where a hill climbing-type algo is needed

Default avatar.png Sneffy: I don't even know if my ga is "real" ga but well.. i have population and i do mutation and crossover haha

Default avatar.png Sneffy: but it's kinda bad for games like csb

MSmits: did you use inoryy's csb starter for the GA? Seems most do

Default avatar.png Sneffy: First time yea but i changed a lot of things

MSmits: btw GA was the meta for a long time with most people in top 10 csb using a GA

Default avatar.png Sneffy: reused the sim

MSmits: but you're right, it seems to me GA *should* be bad for a game like csb

MSmits: probably it was only at the top until someone had the courage to try a good minimax

Default avatar.png Sneffy: GA should be bad for every games with opponent that can alter you on purpose

MSmits: its a bit iffy, because you need to discretize, something you dont have to do for GA

Default avatar.png Sneffy: pen, robostac,madknight, and others were already beating us easy at that time

MSmits: true, the more interaction between the players, the worse GA should be. But my algoritm has that too

MSmits: when was this Sneffy?

Default avatar.png Sneffy: like 3 years ago i think

MSmits: oh wow, before I was on this site

MSmits: before I could code a bot even :)

Default avatar.png Sneffy: and now you are 10* stronger than me hahaha

MSmits: not feeling that strong right now, still failing in ooc gold :P

Default avatar.png Sneffy: well i stopped after getting wood 1 or 2 don't remember :p

Default avatar.png Sneffy: did not really like the game

MSmits: I like it ok, but I wish i would just get legend and then I can quit :P

YannT: it's a heuristic heavy game, maybe not your forte? ;)

Default avatar.png Sneffy: I like heuristics, but this one is heavy on path and stuff

MSmits: yeah that too

MSmits: and the information game is huge in ooc

MSmits: I am not used to that

Default avatar.png Sneffy: i'm gonna try to create my own multi soon i think

MSmits: cool

ZarthaxX: oh

ZarthaxX: pog

YannT: Sneffy: my pathing is actually the worse part of my bot, so it's not *that* important

YannT: I still catch replays where it gets stuck on a shortish surface loop and stuff like that :p

MSmits: ouch

Default avatar.png Sneffy: YannT yeah i see, but the tracking system too :p

MSmits: just do a floodfill

YannT: it's more involved than that tho

YannT: I alter pathing to avoid mines, but can't apply mine detection during floodfilling (too heavy)

YannT: so in very specific circumstances, it can enter a loop

MSmits: ah I see

MSmits: I guess we all have these weaknesses

YannT: and I have depth search too

YannT: but if the loop is like 10-15 moves, that won't see it either :)

YannT: it's alright, doesn't happen often

MSmits: ah I see

MSmits: moar submit spam!

YannT: mostly it does when the bot finds itself deep in the middle of a minefield, usually the game's lost anyway in that case

MSmits: this is pretty clear right:

MSmits: -- TOTAL -- GW=57,41% [ W=57,41% L=42,59% D=0,00% ] [162 games]

MSmits: 162 games vs boss

YannT: I'd say so, since it's all vs. one bot, it should be pretty significative

YannT: significant*

MSmits: unfortunately I dont do superbly well vs the rest, so i am going to have to push them into legend

MSmits: before getting in there myself :

Nerchio: lol

Nerchio: how you get the stats

MSmits: i just run games on cg benchmark, a tool

MSmits: it basically runs IDE games automatically

MSmits: with a time limit so as not to overload the cg servers

MSmits: i try not to overuse it during contest

MSmits: but i need it now :)

Default avatar.png Sneffy: Why not brutaltester MSmits ?

MSmits: I need to know how it stacks up vs boss

Default avatar.png Sneffy: oh right

MSmits: so unless someone gives me the boss source code, I cant :)

MSmits: uh oh, horsey going up again

MSmits: PonyPonyCodeCode

Nerchio: how much points does boss have

MSmits: 28.92

MSmits: nr 2 and 3 both 28.02

eulerscheZahl: 29.00

Nerchio: 28.92 is pretty low

Nerchio: it had up to 31 at certain points

MSmits: it is, it just takes some luck for me to beat him

Nerchio: i had same thats why i needed like 20 submits :D

MSmits: right

eulerscheZahl: 20 isn't much. some players got the 1000 submits in this contest already

Nerchio: but i focused on getting my bot more consistent against people in mid gold

Nerchio: so i could go for big winstreaks

Nerchio: rather than boss itself

MSmits: hm ok

PonyPonyCodeCode: 432 submits here, but I can't really test my code in the IDE ;-(

Nerchio: same i write in the IDE but ctrl+c to codinggame

MSmits: ahh Rust

ZarthaxX: Nerchio not that lol

ZarthaxX: rust timeouts when u click play my code

Nerchio: ah really :D

Nerchio: sounds like a pain

ZarthaxX: everytime

ZarthaxX: :D

Nerchio: it's rusty so makes sense

eulerscheZahl: Rust has release mode compilation in the arena but debug in the IDE

AntiSquid: lol ladder just gets shuffled Raziel fingers crossed and you might promote

MSmits: why cant they fix that eulerscheZahl?

eulerscheZahl: because it's a feature

MSmits: ?

eulerscheZahl: release as it's significantly faster

eulerscheZahl: debug to show you which part of your bot is broken

Default avatar.png anid: Wow Kovi

Default avatar.png anid: awesome!!

eulerscheZahl: going up and down, he was there before

eulerscheZahl: and then a resubmit 4 ranks below

Nerchio: i won maybe 1 game vs kovi so far getting trashed all the time

MSmits: eulerscheZahl shouldnt you be able to select what you want to compile it as? Like you can in c++

kovi: yeah, top4-5 is still packed (val joined the branch)

eulerscheZahl: you can MSmits? do you mean pragmas?

MSmits: yes

MSmits: does rust simply not allow the feature?

eulerscheZahl: not the same and i don't know if Rust has something similar to this

MSmits: ah

MSmits: you can do a trick in C# as well

MSmits: but it never seemed to help much with me

eulerscheZahl: call the program itself with runtime optim?

MSmits: yeah I think that was it

idkhow2codee: guys is it correct to name my boolean function as question e.g. bool IsCellFilled()?

eulerscheZahl: still not the same as compile-time

MSmits: ah ok

eulerscheZahl: depends on your language idkhow2codee

idkhow2codee: c++

eulerscheZahl: then i don't know about the uppercase I

Nerchio: isCellFilled

Nerchio: i would use

eulerscheZahl: in C# that would be the way to do it, in Java you would write isCellFilled

Default avatar.png anid: Hes Far ahead now

MSmits: I use C# style in C++

MSmits: who cares :P

eulerscheZahl: with I for interfaces?

MSmits: there's a lot worse wrong with my c++ code than just style anyway

MSmits: I never use an interface :P

eulerscheZahl: illedan even uses that I in java :rage:

idkhow2codee: but I don't care about case but about if I can name my function as question

Nerchio: iScElLFiLlEdReTuRnTrUeIfTruE

Nerchio: ?

idkhow2codee: xd

MSmits: works :)

eulerscheZahl: hi, this is Patrick

Default avatar.png anid: wht?

MSmits: euler was hacked!

Zenoscave: is this the krusty krab?


eulerscheZahl: tHe WeIrD cAsInG somehow reminds me of patrick

MSmits: ow

MSmits: your brain is malfunctioning, this contest is too long

eulerscheZahl: every contest is too long

Default avatar.png boinkus: choo choo

MSmits: for you yeah, 2 days is optimal :)

eulerscheZahl: A*Craft had a good duration

MSmits: I was super stressed out

kovi: acraft was for tourist

MSmits: would be enough for me now I think, assuming I dont have anything else on those 2 days

kovi: even though im sure he spent only few hours

MSmits: well I beat him on code a la mode so :P

MSmits: slapped him around with my obfuscated 3k lines of code

MSmits: (due to char limit)

MSmits: pretty sure he just tried it and thought, fk this cooking, I am out :P

icecream17: oh no! what did i do? how did it not save? i'm pretty sure i pressed play my code....

Nerchio: use git

MSmits: can always check submission history

pb4: hey

Zenoscave: hi pb4

MSmits: hi

pb4: I'm printing a binary map which is easy to read in stderr from ide

pb4: . and x just like the inputs

pb4: however, in the stderr below a replay, the . and x don't have the same width

pb4: --> hard to read

pb4: any suggestions on two characters which would have the same width below submit replays ?

Zenoscave: x and o?

pb4: (also easily distinguishable)...

Zenoscave: of . and |

Zenoscave: verticle bar

pb4: X and O are different widths

pb4: I'll try the small versions

Zenoscave: shame

mlomb: the font is monospaced i

mlomb: I think*

Zenoscave: nope

mlomb: the one in the debug output?

pb4: in the replays

pb4: not in the IDE

mlomb: oh yes

mlomb: thats sad :(

skotz: i just dump .info_stderr { font-family: monospace; } in chrome dev tools :)

Zenoscave: skotz with the real answers

pb4: I'm going to like this :

pb4: Thanks for the suggestion skotz :)

pb4: Do I have to do it every time I open chrome ?

pb4: Everytime I open a replay ?

Swagboy: 0 and 1 works well also pb4

Zenoscave: Should be able to cache it somehow

skotz: yeah... unless you have a live css editing plugin

pb4: full width chars look gooooood :)

pb4: It even makes the map a square

Zenoscave: That's interesting

mlomb: if you are using CGEnhancer you could throw a line there to apply the css autimatically

Swagboy: Ah square map is a big +

Swagboy: Even a big □

Zenoscave: new sub pb4?

eulerscheZahl: new sub Zenoscave?

pb4: Yup

pb4: trying a new feature

Zenoscave: always

pb4: not working at the moment :D

MSmits: above boss again.... probably temporary again

icecream17: Somehow when submitting I always lose the 2nd game

MSmits: your first submit are 10 games spread out over the ladder

MSmits: likely your 2nd game is one of the better players

MSmits: your first 10 games I mean

MSmits: it's to make sure you dont have to travel all the way from the bottom to the top. They get you to your destination more quickly, especially if you're the best bot.

icecream17: I win 8/10. But so close, yet so far away from boss....

MSmits: what do you mean 8 in 10?

MSmits: on your first 10 games or overall?

icecream17: yeah

MSmits: or against boss specifically?

MSmits: which is it?

icecream17: 1st one

MSmits: ah ok

MSmits: well thats pretty good

MSmits: usually means you end in the top 1/5th or so

icecream17: The last day. Everyones submitting

MSmits: not last day

MSmits: tomorrow is the last full day

MSmits: then some hours on monday

MSmits: depending on your timezone

icecream17: Oh. I forgot. (11:37 AM)

MSmits: shit i finally did it

MSmits: Legend :0

kovi: grat

Febrin: Yeey :d

Febrin: That was a lot of effort, was it :D

Swagboy: Gret

Counterbalance: grats

blasterpoard: cg

MSmits: I just wore down the boss :)

MSmits: attrition

leojean890: gg

Zenoscave: gz

leojean890: yesterday you were so close MSmits.. you could just have been pushed in legend :P

leojean890: 29 vs 29.3

MSmits: I thought so but no, i think i was very lucky last night

MSmits: after that i never got close until i verified my bot was better

leojean890: I think that I won't succeed

MSmits: it had 58% vs boss, my version last night had 35%

leojean890: oh I see

Febrin: Can you drop down to gold if you perfolm badly in legend, tho?

MSmits: no

MSmits: once you're in, you're in

leojean890: I've been on the gold top for 8 days

leojean890: without succes ;o

MSmits: do you have a fatality check?

leojean890: yeah:P

MSmits: self tracking?

leojean890: yeah but not perfect I think

leojean890: the damage taking into account

MSmits: mine isnt either, i dont track my own mine triggers

leojean890: same

MSmits: i do track damage

MSmits: and surface, sonar, torpedoes etc.

leojean890: I track damage for enemy tracking

leojean890: and everything

MSmits: me too

MSmits: do you track mine triggers for opponent?

leojean890: but for mine not damage nor mine trigger

leojean890: yes mine triggers for opponents, damage, sopnar, surface

MSmits: ah you need that, for opponent, not so much for self tracking i think

MSmits: do you have mine avoidance?

Swagboy: Miine trigger is important

leojean890: mine trigger sometimes erases many paths :)

leojean890: really efficient !

MSmits: yes

MSmits: thats one reason you need it

leojean890: not all the time but sometimes it's really efficient

MSmits: yeah

leojean890: yes clearly :)

MSmits: but do you have mine avoidance?

leojean890: I have mine avoidance but not perfect

MSmits: noone's mine avoidance is perfect :)

leojean890: sometimes I just surface for nothing :s

Zenoscave: MSMits do you surface if there is no possible way to avoid a mine?

MSmits: sometimes you just gotta go into the minefield, unless you want to surface

eulerscheZahl: there we go, told you MSmits

MSmits: Zenoscave, no

MSmits: it's a good idea though

leojean890: I choose to surface most of the time

Illedan: euler, gonna let me win the C#? :D

leojean890: depending on the proba

MSmits: hmm

MSmits: I should do the surface thing I guess

eulerscheZahl: i do but Zenoscave has something against it

Illedan: hmm

leojean890: it's hard to choose if we go into mines or surface depending on the proba and the situation..

eulerscheZahl: my bot sucks and i have no idea how to change it without a major rewrite

MSmits: thats relative eulerscheZahl, mine has many shortcomings also, but i would not say it sucks. It's pretty good for getting into legend

leojean890: :P and mine, stuck in gold..:P

leojean890: not so good right :P

MSmits: leojean890 depends in your skill level

MSmits: eulerscheZahl is just used to being top 20 on most contest

leojean890: I see, not me XD

MSmits: then be proud, top gold isnt that easy on such a crowded contest

leojean890: usually I have less time for contests:s

MSmits: 7k players registered

YannT: hey gg MSmits

MSmits: there's 51 in legend

MSmits: thanks YannT

leojean890: yes 51

leojean890: but I spent LOTS of time on this one^^

YannT: I was sure you'd make it without too much trouble :)

leojean890: and usually not much :P

MSmits: many did that

YannT: legend bots are somethiing else entirely tho as you'll soon discover now!

leojean890: usually less than 10 hours

MSmits: yeah you said that but I gave it a lot lol. 2 days coding straight :)

leojean890: this contest more than 100 hours^^

MSmits: I think I'm at 50 hrs or so total

MSmits: maybe a bit more not sure

Illedan: I'm at N+1 hrs

MSmits: does random chatting count?

leojean890: so, good perf :p

leojean890: idk if I can count chatting:P

eulerscheZahl: i just realized how loong leojean890 is on CG already :o

eulerscheZahl: since 2014

MSmits: cool, a veteran

leojean890: but many many hours watching replays

leojean890: eys euler but at first I didn't spend time on contests and I had bad perfs :P

MSmits: but not so much time invested in CG i think

Illedan: When there was less than 4k players :o

MSmits: your xp level is not so high

leojean890: I made multis when I have time:)

leojean890: I only went into gold for 7 topics

eulerscheZahl: then upload them and share the games with us

MSmits: ah ok

leojean890: in multis

MSmits: he means he worked on multis i think

leojean890: not created them

leojean890: I worked on multis

ZarthaxX: gz MSmits !!

YannT: I have no idea how much time I spent on this, but it's probably a loooot

leojean890: my CG ranking on multis is higher than on contests

YannT: I really wanted my first tshirt though :)

MSmits: thanks Zarthy! Super happy

leojean890: 350 in multis and 5k in contests :P

MSmits: you will get it most likely YannT

YannT: yeah top10 achievement is looking kinda iffy, but I'm confident for the tshirt

leojean890: cause I can do multis when I want

leojean890: and contests need time at precise moments

Illedan: YannT, just wait for tomorrow night

ZarthaxX: quitting MSmits?

Illedan: All hell will break lose

eulerscheZahl: yeah, things can change a lot

Illedan: Monday morning we get the hiders too

MSmits: maybe semi-quitting. My eyes hurt if I look too much at my spaghetti :P

kovi: not sure, if it will change that much

MSmits: the pressure is off though

Illedan: Lets see about that ;)

YannT: top5 is very tight, then 5-10 is also very tight but one notch lower, and then it slides down very quickly

eulerscheZahl: Illedan are you hiding? ;)

Illedan: :angel:

MSmits: no robo, no re curse on ladder

MSmits: wait

MSmits: i see robo

ZarthaxX: robo is

MSmits: yay

kovi: robo and blaster will surely improve

YannT: recurse has been playing around on a smurf just to try it out quietly

eulerscheZahl: not sure if robo is playing. but i definitely expect blaster to climb

YannT: I don't think he plans to submit anything from his main tho

MSmits: wait what?

MSmits: why is recur se playing on a smurf?

kovi: but otherwise hard to reach top. considering how many ideas turned out to be nuisance last week

YannT: because he wanted to just try it out without people annoying him about it :p

MSmits: oh a smurf is an alt account

YannT: yeah

YannT: basically he tried it incognito and decided against actually joining I think

MSmits: my mind was working hard imagining the connections between re curse and smurfs

MSmits: I've always seen him more as a gargamel

YannT: ahah sorry for the mental image :p

AntiSquid: you have weird fantasies

MSmits: :P

[CG]Thibaud: :D

eulerscheZahl: and who's azrael then?

MSmits: mmh Renard?

eulerscheZahl: and why don't i see an avatar for thibaud?

MSmits: I see it

Zenoscave: It's blank for me too

[CG]Thibaud: oh no

AntiSquid: browser issues? CG issues? happens to me too sometimes, can't see avatars of some users

AntiSquid: now it's all fine thouhg

eulerscheZahl: tooltip isn't working either

eulerscheZahl: i can see squiddy

AntiSquid: then all is good

eulerscheZahl: i mean the popup on mouseover

reCurse: "I've always seen him more as a gargamel"

reCurse: wtf MSmits

YannT: I've had that bug a couple times

MSmits: haha

MSmits: it worked :)

YannT: oh no you invoked him :D

Zenoscave: you have been summoned gargamel

reCurse: I'm not evil :(

AntiSquid: isn't MSmits the crazy witcher then? he summoned it

MSmits: gargamel doesn't think of himself as evil either you know :P

eulerscheZahl: still better than being called a team as CyberPunk once insisted

MSmits: he;s just misunderstood

Zenoscave: I forgot about ol cyber

reCurse: Well I'm definitely misunderstood

MSmits: there you go

reCurse: But not evil

MSmits: no submit for you on occ?

MSmits: ooc?

MSmits: no ofc not :P

MSmits: how are you liking the game btw

reCurse: Don't expect a submit from me

AntiSquid: write a blog post instead of answering here

MSmits: I figure you only submit when you have a serious bot

MSmits: is it time restrictions or you dont like it much?

reCurse: I only submit when I participate seriously

reCurse: Big difference

reCurse: I only fucked around a few days on a smurf for this one

reCurse: To get a feel of it

reCurse: Like I often do

MSmits: yeah YannT said that, but did you not like it much? Or did you not want to spend too much time

eulerscheZahl: and you learned how to skip a contest now. after you played some in the past despite not liking them

reCurse: No that was different

AntiSquid: watch it with the smurf reCurse, you're triggering MSmits fantasies

reCurse: There was a time where my competitive fire was enough for me to engage even on the stupidest games like c4l

reCurse: But that fire is gone

MSmits: eulerscheZahl 0.07 away from the flip :P

[CG]Thibaud: misunderstood you said?

reCurse: Yeah

eulerscheZahl: MSmits only monday matters for the flip

Illedan: Hope you get that fire back. We need some strong contestants in the future too!

AntiSquid: MSmits hey congrats on legend, what was missing from your bot?

MSmits: the last serious thing I added was selftracking

Zenoscave: What's the flip?

MSmits: to better move and silence

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

reCurse: That being said I didn't imply ooc was stupid

MSmits: Zenoscave eulerscheZahl thinks I may pass him on the ladder

Boulet: gg MSmits

YannT: #28 for a first legend push is actually not bad at all, usually newcomers stay stuck at least for a bit at the bottom

MSmits: thanks

reCurse: I really don't know what it takes for me to compete anymore

MSmits: your utg was pretty great

MSmits: wait no

MSmits: ice and fire

MSmits: sry

YannT: you probably just need for it to be a game that inspires you

AntiSquid: what's wrong with the game reCurse ?

reCurse: Like I mentioned above

reCurse: I didn't imply ooc was the problem this time

reCurse: I don't think the game is bad

reCurse: Meta is way too passive for my taste

reCurse: But it's still a fine game I think

MSmits: I can understand where reCurse is coming from, I have problems motivating myself for these contests also. But it is only because of all the awesome community games

MSmits: when i started on CG, almost anything that was not a contest, was an ex-contest or similar

MSmits: so I didn't know how much fun these board games were , except for the game that must not be named in re curses presence

[CG]Thibaud: what baffles me it that you're still so much present on chat/discord

eulerscheZahl: but even if you don't try every time, you can still come back from time to time and prove your skills. like pb who wasn't active in the last contests and is first at the moment

reCurse: Well I still value the foundations of CG really

reCurse: There's nothing quite like it

reCurse: And Halite completely fell off with Kaggle :/

[CG]Thibaud: don't get me wrong, it's cool that you still hang around, even if you don't participate

reCurse: I'm still trying to figure out personal stuff I guess :)

AntiSquid: fell off?

YannT: I think once you start doing well in a contest, that's also when it gets addictive and the competitive nature kicks in :)

reCurse: Yeah true

MSmits: reCurse might it also be that your bar is set so high, it's harder to enjoy coding for it?

YannT: pretty sure that's what happened to pb4... he was just screwing around at first but once he started getting results he got way into it :D

[CG]Thibaud: +1

MSmits: that has been my problem

MSmits: after doing well a few times

MSmits: it gets stressful

reCurse: Eh, yeah I think you spotted one issue

reCurse: I mean why else would I smurf

MSmits: right

MSmits: honestly though, if you ended like 30th one time, noone would think you werent still the best of at least one of the best

[CG]Thibaud: this

darkhorse64: Chess told me that to win, you must accept to lose

YannT: the best teacher, failure is

YannT: :yoda:

MSmits: that, we got :P

reCurse: Well I wish it was so

YannT: [CG]Thibaud: so I have a feature request

YannT: :yoda: <- see it's not working

Zenoscave: afraid of 7, 9 is. Why?

Zenoscave: mmmmmmm because 6, seven ate

[CG]Thibaud: :hear_no_evil:

AntiSquid: that's not how the joke goes Zenoscave

reCurse: But even placing second I still feel super down about it for a while :P

reCurse: Gets tiring

[CG]Thibaud: doesn't even work on Discord, what a shame

Zenoscave: AntiSquid it is if Yoda tells it

AntiSquid: Zenoscave @_@

MSmits: reCurse thats not weird at all, I placed 2nd one time and it felt crappy and great at the same time

MSmits: mostly because i was 1st for 3 days straight :P

MSmits: it's better to go up the ladder in the last few days

MSmits: leaves you with more of a sense of accomplishment

reCurse: Just write it off as me having too much ego :P

reCurse: Anyway let's not make this chat about my psychology :P

reCurse: Moving on

[CG]Thibaud: so who would you choose as Azrael?

[CG]Thibaud: :grimacing:

MSmits: I said Renard earlier, but thats a fox

reCurse: ffs lol

[CG]Thibaud: ok going back to my torpedoes

eulerscheZahl: then uljahn?

MSmits: sure

MSmits: the legend leaderboard is very volatile

eulerscheZahl: indeed

MSmits: gold was pretty quiet. It was mostly me hopping beside a pony

eulerscheZahl: was 30th out of 31 on day. didn't submit, climbed up to the upper half later the day

YannT: the leaderboard iin this game very much has a tide effect

YannT: I think it's because the winrates are never that clear cut

MSmits: yeah, lots of randomness

MSmits: rock paper scissors too prolly

AntiSquid: wdym gold is quiet, even the #2 changes all the time

MSmits: I mean the number of people submitting AntiSquid

AntiSquid: sure people don't improve much between submits, but it is chaotic

eulerscheZahl: but #1 is the same for a week

MSmits: haha

AntiSquid: ah well better with less submit spam

MSmits: true

MSmits: if there were more people submitting i would not have gotten out of gold

MSmits: it pushes the boss

reCurse: I think boss rating should be frozen

MSmits: it might be better, but I am not entirely sure what the effect would be

AntiSquid: there aren't really enough games being played, sometimes the bot stops at a rank simply because it played all games and had a slow start, not because it can't beat people above anymore

reCurse: I've seen that happen enough with top legend

AntiSquid: with nearly 400 people ...

reCurse: #1 is so high above but you don't get enough games vs him

BenjaminUrquhart: I abandoned my torpedos

reCurse: You still end #2 even though you're 65% against

reCurse: Inflated ratings suck, but even more if it prevents a promotion

reCurse: shrug

BenjaminUrquhart: oh chat was scrolled

BenjaminUrquhart: thanks

MSmits: reCurse that is true. By the time i promote out of gold, i usually get halfway up legend

MSmits: in ice and fire, there was a 100 sized legend and i had great trouble promoting. I ended 17th legend with almost the same bot

AntiSquid: funny

YannT: that's why it can be worth it to play the entire contest and make the cut at each league opening :)

YannT: as opposed to just doing the last few days or hiding or whatever

MSmits: that is what happened in half my contests. It is definitely easier to get into legend that way

AntiSquid: improving early means increased chances of getting pushed

YannT: also it's more fun for everybody when more people actively participate :)

MSmits: mmh, i thought it was great fun sneaking up the uttt board when noone was looking :P

YannT: that's part of why I have trouble getting into multis, I find it less fun to be the only one "playing"

MSmits: ah ok

MSmits: what you do is this

MSmits: you start playing

MSmits: then start spamming people on chat about it

MSmits: soon you'll have company

MSmits: works for me

reCurse: The MadKnight technique

MSmits: except he doesnt play

AntiSquid: ask every newcomer to play the game

AntiSquid: see them get stuck and rage quit

YannT: doing multis is like playing against the ghosts of long gone people of the past

YannT: it's weird

MSmits: not all multis, but those old contests, yes

reCurse: That makes some sense but also no sense at all

YannT: like an empty theme park

YannT: with ghosts and maybe one clown in the corner

reCurse: Except those bots make no difference whether they're updated or not

reCurse: The game is the same

reCurse: The meta is the same

reCurse: You only have stable references instead of moving ones

reCurse: The only think you lose is chat

reCurse: That's about it

reCurse: *thing

MSmits: yeah, but it's the social part, i get that.

YannT: yeah but also you're the only one currently playing

MSmits: it doesnt stop me from playing games if I like them though

YannT: you don't play against other people actively playing also, you play against their past achievement

YannT: I dunno, maybe it doesn't make sense but it works a lot less for me than contests :)

MSmits: which doesnt necessarily makes it any less of a challenge

MSmits: it's gonna be hard to make any sense of what is an improvement of my bot in legend =/

YannT: it's basically impossible

AntiSquid: but you know what your bot iss missing

MSmits: I *think* I just improved my minelaying decisions, but hard to tell

YannT: it's very hard to prove that something is an improvement on the ladder, your best bet is benchmark against a fixed reference and even that has some big variance

MSmits: right

MSmits: not going to bother with that

reCurse: The fun of intransitive games

MSmits: I just want to know if there's any low hanging fruit in my code

MSmits: somewhere in between the rotten fruit I dont want to touch

YannT: the only good metric I've found is to push and let it sit for a while, see where your ranking floats (also cgstats gets relevant if you wait a bit)

reCurse: See how good your bot is against submit spam

reCurse: That's about it

YannT: cgstats has the detail tho

YannT: you can see your winrates against non-spam pushers as well

MSmits: vs some players

MSmits: some just do one submit and then stop for a few days

reCurse: Sure but you said "see where your ranking floats"

reCurse: Except it's useless and misleading

YannT: well not *entirely*, there's groupings in the ladder, you can see which one you belong-ish

reCurse: I've seen enough evidence to the contrary :)

MSmits: i think YannT is rightish

reCurse: Even more true with that kind of game

MSmits: yeah its a mess

MSmits: only thing worse would be if it was 4 subs

reCurse: I'm sure you can easily be 4 points above what your real ranking would be with uniform distribution

MSmits: or games with 2, 3 and 4 subs

reCurse: If not more

YannT: right now for instance there's a top5 group and a 5-15 group and then a sharp drop, with very little permeability between those

YannT: so if you push and then hover in the top5, then yeah it's an indicator that you did improve (if you were previously stuck in the 5-15 group), or vice versa

MSmits: to some degree that's true, there's always uncertainty

MSmits: depends on how big the jump is really

reCurse: I've been stung with that kind of thinking too often

reCurse: To agree

MSmits: yes, thats what dbdr said earlier, humans tend to see patterns and changes where there arent any

reCurse: That was much more true with halite's ranking

reCurse: But not so with CG

YannT: I'm very confident that right now, you cannot hold a 30ish rating with just luck (especially with the spam pushers)

AntiSquid: top 5? but i see 2 points difference between 2 and 3, 4 and 5

YannT: siman is testing stuff right now

YannT: but other than that him, kovi, pb4 and val are the only 5 with a consistent >30 rating

YannT: that sticks

MSmits: I think my mine thingy helped

YannT: val made the jump yesterday, before that he was in the 5-15 group, so quite clearly he made a significant improvement

MSmits: ah and then comes the loss streak :)

NormantasStankevicius: the casual MSmits :<

MSmits: whatever siman is testing might not be that good, i am beating him a few times

reCurse: You don't know what he's testing :p

YannT: yeah it's not, all his pushes land in 5-10 today :)

MSmits: nope

YannT: he's gonna git reset any minute and go back up there :p

MSmits: probably

reCurse: Sometimes you need a regression or two to hit a better maxima

kovi: he fix a bug....which was actually a feature

Illedan: classic

tobk: where was the list with IDE hotkeys again?

Illedan: huh, hotkeys?

tobk: is there anything for folding/unfolding?

tobk: there was a list somewhere, think some external site, did not keep the link...


reCurse: Look up ace editor

tobk: thanks!

YannT: I've always been baffled by coding in the CG IDE because why would you do that :o

eulerscheZahl: i use my offline IDE too. From day 1 on CG

tobk: too lazy to set up local test environment

reCurse: At least 95% people use it

YannT: really?

YannT: I just copy/paste into the IDE if I want to test in there

eulerscheZahl: and then lose their code when the website crashes

reCurse: It's pretty easy to guess

reCurse: Most people are not committed enough to care

Illedan: I use the only ide when testing small stuff

Illedan: *online

YannT: I use it for testing but I never code into it

eulerscheZahl: did that too. then had to merge back with offline code, always became a mess

Illedan: Yeah, I'm going to have a hell tonight :D

tobk: guess it depends on the language. for Python it's okay

eulerscheZahl: there's some weird autocomplete. e.g. you write "con", autocomplete pops up but doesn't do anything. you continue typing "tinue", then autocomplete decides to complete it too, so you end up with "continuetinue"

reCurse: Using monaco instead would be nice

reCurse: Add that to the pile of "never gonna happen"

eulerscheZahl: but for farming language badges the online IDE is fine

eulerscheZahl: i don't need an IDE for each language on CG

reCurse: That's not what I meant

Nanosplitter: Anyone know the math for creating a long with 64 set bits given the number 64, and 15 set bits given the number 15, and 2 set bits given the number 2, etc?

Nanosplitter: I'm using (2^n) - 1

Nanosplitter: But for 64 and 63 it gives me 63 set bits

eulerscheZahl: hackerrank is using monaco. that's why it looked so familiar to me

Nanosplitter: It works for every number except 64

skotz: use unsigned?

ZarthaxX: doing that 2^64 makes it go out of representation

Nanosplitter: Ohhhh

reCurse: It still works

Nanosplitter: How do I make it use unsigned with C++?

reCurse: 2^64 = 0

reCurse: 0 - 1 = ~0

reCurse: tilde

YannT: use C (it's C++ unsigned)

reCurse: uint64_t

reCurse: (1ULL << n) - 1

reCurse: Except it won't work for 64 :P

Nanosplitter: Yesss it all works now, thank you so much guys

Nanosplitter: I was so confused for so long lol

Nanosplitter: I just replaced all my uses of long with uint64_t

Default avatar.png ybrobamieh1: your welcome

Nerchio: what is a fun multi you guys would propose to me after ocean of code

Nerchio: i didn't touch any yet

Zenoscave: MadKnight says CSB

MadKnight: MadKnight says what kind of stuff do u want ?

Nerchio: and what do you say :D

MadKnight: other multis are almost abandoned by players

Zenoscave: fair

Nerchio: but the old bots are still there righ

ZarthaxX: do ppl wait for their submit to end before submitting again?

ZarthaxX: lol

MadKnight: yea but they won't improve with u

Zenoscave: Id say Ice and Fire

Nerchio: i mean doesn't matter strong bots are already there :p

MadKnight: so do u want some physics and vectors stuff ?

MadKnight: or u want grid ?

Nerchio: grid

MadKnight: or u want pure ifs ?

Nerchio: i hate physics xD

MadKnight: rip

MadKnight: why do u hate physics lol

MadKnight: it's just a few vectors

MadKnight: u add and subtract vectors and u get gold

MadKnight: ezpz

Nerchio: idk maybe if i try some i will like it

tobk: coders of the carribean is kind of similar

tobk: no stealth, but multiple ships

MadKnight: do u like hex ?

Zenoscave: except on a hexagaonal grid

Nerchio: thats fine

tobk: sure, but once you've figured that out...

tobk: in fact I just started it a few days back to get a break from OoC for a while :-)

Zenoscave: tobk I was saying it as an exciting point to add to the game

Zenoscave: ZarthaxX Only if it's a good submit

Nerchio: damn when i look at all these games

Nerchio: its always so intimidating to start

Zenoscave: the wood matches are much easier

Nerchio: i have to say gold was the most exciting part of ooc

Nerchio: and the league of the biggest improvement for sure

Nerchio: when my bot started doing good things :D

eulerscheZahl: hypersonic and code of ice and fire are nice grid-based games

Zenoscave: I agree

Nerchio: i will see if i will try one of these before spring challenge starts

tobk: but keep in mind that the next contest starts in, what, 2 weeks?

eulerscheZahl: there's also another category: neither physics nor grid: code4life, locam, ghost in the cell

Nerchio: I wrote this one in ~10 days so just enough time :D

tobk: 3 weeks

YannT: I might try hypersonic one day, that game looks fun :)

reCurse: Ah yes, the suck category

Zenoscave: how long is Spring challenge lasting?

reCurse: :)

YannT: 10 days I think

eulerscheZahl: that's just your opinion reCurse

reCurse: Obviously

eulerscheZahl: i only agree on locam

tobk: my personal nightmare MP is code royale

tobk: that's what got me started on CG as a colleague played it

aCat: ;(

tobk: a year in, and I'm still in bronze

YannT: aCat: I liked locam :)

eulerscheZahl: the marathon mode is what made me hate it. i know it wasn't your idea

aCat: next time I will create contest everyone likes! :P

reCurse: Impossible

eulerscheZahl: not enough depth to keep us busy for a month

YannT: yeah, it was about one week too long, but still I liked it!

Illedan: aCat, that should never be a goal. As you can't make everyone happy :P

YannT: aren't they stopping community contests now anyway?

AntiSquid: well at least there are games for everyone, not just for the more vocal users

aCat: But on the opposite then me whining - I really love OOC

Illedan: \o/

eulerscheZahl: if you propose a finished game, it can still happen to be a contest

aCat: I think it's nearly best game

AntiSquid: what ooc?

YannT: ah they are just not actively helping setting up those?

eulerscheZahl: but no collaborative game design with CG

AntiSquid: so what's your fav game acat?

aCat: difficulties in the right places, always lot of todos, constant progressing

aCat: on CG?

aCat: hard to say but I really appriciate Codebusters

tobk: code-a-la-mode was fun, too, and I only realized that it's cooperative when it was already over

Zenoscave: BotG best game

AntiSquid: can still make a collaborative botg variant btw

AntiSquid: pass ally orders as string each turn :p

aCat: Happens I'm lucky on watergames I was quite involved in Karribbean; but it had some issues

AntiSquid: 2v2

Illedan: gitc was the one I had the most fun with

aCat: I missed it - and still want to do as multi

YannT: it says something that everybody has a different favorite :)

aCat: I gave it to students a year ago but didn'r learn much from their input ;p

muy31: fantastic bits was my fav

muy31: i liked how dynamic it was

wlesavo: gitc?

muy31: Ghost in the cell

wlesavo: oh

YannT: I tried that one for a minute, I think I have a silver bot on the multi

Counterbalance: i joined cg during gitc contest - still stuck in silver

tobk: crystal rush aka unleash the geek was also fun, especially the mine-faking, and later when everyone did it the mine-faking-faking

YannT: I couldn't figure out where to do with a proper strategy

eulerscheZahl: gitc was the first contest where i did well

aCat: fantastic bits was great - i don't like pphysics game but it was bearable - which is a lot - and themed beautifully

eulerscheZahl: so i still like it


aCat: My bot REALLY want to surface

Nerchio: eulerscheZahl what does it mean the contest was crafted by you

eulerscheZahl: that i helped to push it over the finish line. Illedan and me got our hands on an old prototype 2 days before the contest started

AntiSquid: he forged it with hammer and anvil

Nerchio: :D nice

eulerscheZahl: mostly illedan. i wanted to work on it on the weekend but contest started on friday :D

wlesavo: lol

AntiSquid: and ille still above you :thinking:

eulerscheZahl: i improved the wood boss so much that it got nerfed later

eulerscheZahl: still above me? no, again above me

AntiSquid: even better

eulerscheZahl: i accepted defeat already

eulerscheZahl: see you in the spring contest

eulerscheZahl: and codejam tomorrow if you want

AntiSquid: not my kind of contest

eulerscheZahl: i'm not strong in these either. but still trying

AntiSquid: what makes codejam interesting? i forgot

eulerscheZahl: they have some interesting problems that aren't just about typing a standard algo

AntiSquid: right

eulerscheZahl: out of the box thinking for puzzle solving

ZarthaxX: u actually have to think

AntiSquid: how much advanced maths is involved? im a bit rusty

eulerscheZahl: more a creative way of thinking, not much prior knowledge needed for most tasks

wlesavo: AntiSquid you can check last one, actually quite interesting puzzles

eulerscheZahl: that's what i really like about codejam compared to e.g. codeforces: you can solve some tasks without lots of practicing

eulerscheZahl: at least the last 2

eulerscheZahl: the first 3 are warmup questions

eulerscheZahl: wait, i forgot about 1A. was thinking about the qualification problems

wlesavo: yeah, 1A last 2 quite interesting, and not very hard even

eulerscheZahl: and most of the time it's about having the idea, the coding part is simple then

eulerscheZahl: unlike the last CG puzzle contest with the cube and neighbor cells you had to define

eulerscheZahl: that one

eulerscheZahl: for a puzzle it's fine. but for a contest with time pressure i didn't like it

MSmits: I loved that, too bad about the moebius controversy, but the other puzzles were cool

tobk: yes, that was a bit hard to understand in the description. it was actually clear to see in the viewer, but that had some glitch in my browser and did not work :-(

eulerscheZahl: the viewer only started playing when you had the correct solution. and everything in a single frame with zoom to hide some info

Illedan: Can you join in on this round of codejam? Or did you have to solve the previous one?

eulerscheZahl: get 30 points in the qualification

eulerscheZahl: good luck next year

Nerchio: msmits your bot timeout'd ;p

MSmits: yeah thats possible

MSmits: show me the replay, i can tell you why

MSmits: I still have this also:

MSmits: if (MapIsZero(oppMap))



MSmits: it just kills my bot if it doesnt know any possible spot

MSmits: silence selftracking

MSmits: is what killed me

Nerchio: :D

eulerscheZahl: crashes: 452121599 452120531 452119782

eulerscheZahl: 3 in 21 games

MSmits: I know why. I made my tracking constant really high, which makes me favor moves that make me hard to track very strongly

MSmits: that also explodes the statespace on silence

MSmits: it was just something to try :)

AntiSquid: i have this for when i completely lose track of the opponent: if (players[1].fog == 0) cout << "ZA WARUDO ! TOKI WO TOMATO !" << endl;

AntiSquid: oh chat scroll again yaya

Illedan: Yeah, was camping the day of qualification :(

Nerchio: MSmits smart but kind of resource intesive yeah

Nerchio: i dont even have self tracking i dont think java can handle it xD

NormantasStankevicius: I have Killer's queen, first bomb, when I know it's position and blow it up AntiSquid xd

eulerscheZahl: qualifiers were going for 27h

eulerscheZahl: but i missed it a few times too

eulerscheZahl: just forgot about it

eulerscheZahl: once i was in bed, half asleep wait a second, codejam got up, did the bare minimum to pass and back to sleep

Illedan: :P

Nerchio: i change my fatality code

Nerchio: and it turned out i do a fatality and shoot myself instead of the enemy

Zenoscave: Nerchio you still made it to legend shooting yourself? amazing

Nerchio: :spy:

MostComplicatedUsername: :no_mouth:

MSmits: I shoot myself on fatality also

MSmits: but only if it doesnt kill me

MSmits: what doesnt kill you makes you look cool

Nerchio: yea but i mean

Nerchio: i literally shot myself

Nerchio: xD

MSmits: and you died?

MSmits: or?

Nerchio: yea

MSmits: that's inadvisable

Nerchio: my point is i gave my coordinates to shoot

Nerchio: instead of the enemy xd

eulerscheZahl: Illedan did that too for a long time

MSmits: the question is

MSmits: did you know that eulerscheZahl and neglected to tell him :P

eulerscheZahl: he was aware

MSmits: um ok

eulerscheZahl: killing opponent but himself too in the blast

MSmits: ohhh ok

Nerchio: hahaha om

Nerchio: omgg

Nerchio: i havent seen this before

MSmits: what?


Nerchio: now everyone will start doing it

Nerchio: xD

Nerchio: look at the last 10 turns

MSmits: brilliant

kovi: it is last day

Illedan: WHAT

MSmits: should at least code something that makes you start triggering mines if you have 1 hp and have to surface

Illedan: ok

Illedan: damn

Illedan: that was smart

dbdr: I do the same

Scarfield: lol

kovi: i know everyone would do that

dbdr: it's rarely relevant though

kovi: true

Default avatar.png gghf: for real

Nerchio: after i saw it i have to code it now :D

Zenoscave: I still am not sure. can you move after surface?

MSmits: yes

eulerscheZahl: even before if you want

dbdr: I don't even check if my mine will kill me in that case

Zenoscave: well. Theres my improvement

YannT: hm, I'm not sure it woiuld improve much, I hardly ever die from surfacing...

YannT: too bad :(

MSmits: costs you nothing to add it, except coding time

dbdr: and if you do, it's still rare the other would die first if you waited just those few turns

dbdr: sure, it's very easy too

eulerscheZahl: maybe you get a lucky hit with the explosion

YannT: it's not even that easy actually

dbdr: you can also get lucky

YannT: have to iterate over a bitboard :p

dbdr: toad as faster

eulerscheZahl: shark*

MSmits: Yannt let me post a bit of code for that

MSmits: its easy

dbdr: half-toad, half shark


MSmits: thats an iteration over a minemap

AntiSquid: half man-bear

MSmits: does some other stuff too

eulerscheZahl: half pig

YannT: I basically never end up stuck, iI'm always gonna go towards the opponent mines eventually and die that way

MSmits: YannT the nice thing is that you ignore empty rows mostly, you dont iterate over every cell in a row, just the set bits

MSmits: I use this method a lot in bots

AntiSquid: going out with a blast

eulerscheZahl: i expected some -x & x actually

YannT: yeah I've used something similar for ice and fire I think

MSmits: it's the same thing as ^= I think

MSmits: the -x & x I've used that before

MSmits: you just remove the bit

MSmits: oh wait

MSmits: you mean to get the index

MSmits: yeah that might be faster, not sure

eulerscheZahl: __builtin_ctz is what? index of set bit?

MSmits: trailing zero count

eulerscheZahl: mine is 1 << index already

MSmits: so it takes the right most bit

eulerscheZahl: getting the last set bit

MSmits: yeah

MSmits: no idea what happens under the hood

MSmits: I am just assuming it should be fast

eulerscheZahl: log(bitcount) is possible

eulerscheZahl: not sure of there's a faster way but i guess there is

dbdr: TZCNT is one CPU instruction

MSmits: so, no faster way?

eulerscheZahl: i guess you use that in uttt?

MSmits: i think i use it somewhere in uttt yes

MSmits: in several bots

AntiSquid: cat is out of the bag

MSmits: i use many more intrinsics

MSmits: also pdep and pext and popcnt

eulerscheZahl: i didn't even know that this is a saying in english

ZarthaxX: those are one asm isntruction


MSmits: this is nice for if you on VS with c++

eulerscheZahl: just get the same OS as CG is using


MSmits: what is that

Counterbalance: bsf

Zenoscave: inline asm

Zenoscave: gross

Counterbalance: ikr

MSmits: bsf?

MSmits: breadth search first?

dbdr: same as tzcnt

Zenoscave: bitscanforward

MSmits: ow

MSmits: would that help at all?

eulerscheZahl: uint_fast64_t :D

Counterbalance: it doesn't require the -1


Counterbalance: so it's really just 1 asm opcode

Nerchio: last 5 turns

Nerchio: success!

dbdr: "TZCNT is an extension of the BSF instruction. The key difference between TZCNT and BSF instruction is that TZCNT provides operand size as output when source operand is zero while in the case of BSF instruction, if source operand is zero, the content of destination operand are undefined"

MSmits: hmm builtin ctz requires no -1 i think?

Counterbalance: hm i have this somewhere:

  1. define bsf(a) (__builtin_ffs(a)-1)

MSmits: oh ok

Counterbalance: the windows version of bsf:


Counterbalance: has an if :(

Nerchio: you can kind of snipe top players with submit

Nerchio: unethical but you can do it

MSmits: uh how snipe?

Nerchio: i mean you play games against them and i normaly don't cause my bot sucks :D

MSmits: ahh oj

MSmits: ok

MSmits: well it doesnt matter much since the board gets recalculated when the contest ends

MSmits: but your starting spot has some effect

MSmits: I coded the mineBlowing thingy

MSmits: thanks for that Nerchio, probably is useless, but it looks nice if it works

Nerchio: same

Nerchio: you can win some matches here and there :D

AntiSquid: battlecode 2020 started and it doesn't look fun at all

MSmits: what is it?

tobk: ah, the last days of the contest, when you try to implement simple changes that totally make sense in your head and should only make the bot better, but instead make it drop 50 ranks...

AntiSquid: i will throw up if i play that too

AntiSquid: it's a bot contest MSmits

MSmits: whats bad about it?

Nerchio: isnt it done already in 2020?

AntiSquid: have a look, maybe you like it MSmits

Nerchio: Thanks to everyone who participated in Battlecode 2020. We look forward to seeing you again in 2021!

Nerchio: ?

AntiSquid: ah wrong link



AntiSquid: i forgot there was another contest earlier this year

AntiSquid: this was battlecode 2020 though:

Nerchio: i like graphics

Nerchio: this thing u linked doesnt look fun yea

Nerchio: battlecode looks fun but i always miss it

AntiSquid: bookmark it

Nerchio: January 4, 2021,

AntiSquid: you can do starcraft 2 bot programming meanwhile if you want something outside CG: :p

AntiSquid: is that graphics intense enough?

Nerchio: starcraft2 is too complicated

Nerchio: making a bot for it doesnt sound fun

AntiSquid: no worries, the setup is even less fun

Nerchio: i know thats why i am not touching it

Counterbalance: AntiSquid is that ai-arena separate from sc2 ladder?

AntiSquid: yes i think so?

Counterbalance: yeah looks like a clone

AntiSquid: they have a discord server you can ask there

Nerchio: you cant play with AI on ladder

Nerchio: its forbidden

AntiSquid: it's like we still live in the 1950s

Nerchio: the idea is probably that people like to play people

Counterbalance: = sc2 ai ladder

AntiSquid: button mashing games aren't fun for humans imo

Counterbalance: 23h before the timer starts blinking...

AntiSquid: oh noes, better make some changes

Counterbalance: :cold_sweat:

MSmits: I have a weird solution for self tracking timeout

AntiSquid: why is it weird?

MSmits: it tries to process the tracking and if I run out of time I just dont silence and rollback the changes :P

AntiSquid: heh

MSmits: better than timing out

MSmits: it's kinda weird, i save the opponent from timing out to save myself from timing out

AntiSquid: yes

Default avatar.png LiorDush:

Default avatar.png LiorDush:

Febrin: One line in beam search got me from G 300 to G 60 wow

AntiSquid: these bastards need to stop dropping my bot

AntiSquid: stop submitting! *shakes fist*

AntiSquid: LiorDush please explain yourself?

AntiSquid: what's with those messages?

MSmits: :fist:

Scarfield: gratz!

Scarfield: t-shirt incomming :thinking:

MSmits: who me? I was just helping AntiSquid shake his fist

Scarfield: yea, thought you just made it to legend :p

MSmits: I did halfway through the day

MSmits: very happy

AntiSquid: made a tiny change, will leave it as is and see in the morning if it helped

AntiSquid: have some other minor changes i can make with the current amount of obvious dedication

AntiSquid: nice nerchio looks like you're t-shirt range! :o

Nerchio: hehe

Nerchio: yea but 3 previous submits were like 35

Nerchio: idk just lucky i guess

Nerchio: and i dont know what to fix anymore so

darkhorse64: I think the final resub will be full of surprises

Zenoscave: I gotta figure out how to silence better

MSmits: it's like

MSmits: :zipper_mouth:

Nerchio: i mean ok there is a lot of things i can fix when i look at my games vs top3

Nerchio: but its too much :D

Nerchio: they dont spam silence when enemy is far away and cant hit them

MSmits: yeah, I know there's a lot for me too, but it's in the realm of cant be arsed

Nerchio: use paths that are harder to track

MSmits: i do that

Zenoscave: Harder to track how?

Zenoscave: like reduces filtering?

Zenoscave: I do that not

MSmits: well its like this

Zenoscave: now*

MSmits: before i did this, my first movement could be a giant L shape

MSmits: 6 to right, 7 down

MSmits: after i started looking at that, it would make alittle square or similar


MSmits: the giant L shape doesnt fit in many places

Nerchio: between 83 and 89

MSmits: but the square does

Nerchio: i believe

Nerchio: could go straight down the path around the island but its easier to track i think

Nerchio: but yea

Nerchio: first i would have to add self tracking

Nerchio: and im not even sure if java would handle it ;p

MSmits: actually, that silence-at-a-distance thing seems easy to code?

Zenoscave: just finding what is considered a distance is hard

MSmits: just get the closest distance and if it's not below some value, dont silence

Nerchio: yea

MSmits: i know where my opponents can be

MSmits: thats what tracking does

Nerchio: you can get dunked on with silence + shot though

Nerchio: with little to respond

Zenoscave: so minimum best tracking. smart

MSmits: you can take that into account also, is a bit harder

MSmits: silence + shot ruins a silence and a shot though, i can shoot right back

Nerchio: i mean

Nerchio: we agree there is a lot of things we could add

Nerchio: but maybe its too much? :D

MSmits: yeah

MSmits: lemme try the silence thing

MSmits: I can do it in 5-10 mins probably

MSmits: that is without taking opponent dashes into account

icecream17: No! The down arrow!

MSmits: Nerchio, what is a good minimum distance for this to kick in?

MSmits: you think?

MSmits: manhattan 8?

Zenoscave: manhattan 10

MSmits: mmh ok i will start with that

Zenoscave: move silence torpedo with chebyschev of 1

Zenoscave: still can strike at 10

Zenoscave: so if (dist <= 10) doSilence();

MSmits: yeah ok, but maybe the risk is worth it

MSmits: but i will do 10

Nerchio: eh i will submit for fun with this change

Nerchio: i spam silence too much anyway

Nerchio: btw who was 2nd legend advance today?

Zenoscave: not sure

MSmits: i know

MSmits: VincentBab

Zenoscave: You're the first

Zenoscave: Seems you're right

Nerchio: damn

Nerchio: you shot yourself zenos

Nerchio: and my tracking fell apart

Zenoscave: where?

Zenoscave: replay?


Nerchio: 283

MSmits: you need to fix that. Assume they can selfdamage :)

Nerchio: 277

Zenoscave: I never self damage on purpose...

MSmits: well you did there

MSmits: you weirdo

Zenoscave: whoops

Nerchio: i should do a damage map

Nerchio: should take 30 mins at best

Nerchio: but idk tomorrow

MSmits: mmh was harder for me, but my code might be a bit unwieldy

MSmits: sometimes you start on a path and you wish you hadnt

MSmits: tunnel vision and all that

Nerchio: but honestly its not that neccessary anymore since people in legend dont shoot themselves

Nerchio: unless they are zenos

MSmits: those damn zenos

Zenoscave: oops

VincentBab: MSmits ?

MSmits: i just mentioned you because they asked who the 2nd guy in legend today was

MSmits: so

MSmits: grats :)

Zenoscave: gz VincentBab

VincentBab: oh ok ^^ Thank you

MSmits: errm there is a problem with the long distance silence thing

MSmits: mines gonna getchu

Nerchio: yea

Nerchio: i was just writing this.

Zenoscave: Ah that's the issue

Nerchio: after Vincentbab killed me with mines

Nerchio: when i was seen :D

Nerchio: msmits i died to your mines now :p

MSmits: show me replay :)

Nerchio: let's roll back the silence xD


MSmits: hehehe

Nerchio: on the plus side i have a lot more mines on the map with this

MSmits: yeah

VincentBab: killermove ^^

MSmits: oh that replay you shared

MSmits: !

MSmits: its the first evidence of a working dash kill i have seen for my bot

MSmits: my fatality check works properly :):)

MSmits: silence + torpedo

MSmits: awesomeness :)

Nerchio: :D gfz

MSmits: theoretically it will also do a fatality by combining a mine and a torpedo blast, even if they blow on opposite sides of the map. If there are two unknown regions and the opponent has 1 hp

MSmits: but how to check that ?

Zenoscave: no idea

Nerchio: watch a lot of replays ;p

Nerchio: i dont have mine fatality

MSmits: yeah I suppose, too lazy

MSmits: you do it, so i dont need to :P

MSmits: my fatality check combines surface, move, silence, torpedo and mines and also works when the opponent location is not precisely known, but death can still be guaranteed

Nerchio: i was adding stuff on top of stuff in fatality checks

MSmits: maybe my fatality check is what I should share in post mortem

MSmits: that is one thing I think I did better than most. The rest is pretty basic

VincentBab: yeah i have the same thing MSmits ^^

MSmits: ahh so i wasnt alone then

MSmits: cool thing is that it did not turn into if-spaghetti

MSmits: I made it into a recursive function

VincentBab: and i fixed a bug in it (so i dont suicide when i could win) and that got me to legend ^^

MSmits: oh nice

MSmits: I seem to timeout against Nagrarok every game

Nerchio: another fatality by you

Nerchio: enjoy


MSmits: whoppah, zip, BAM!

VincentBab: maybe he silence a lot and generate too much possible position ?

MSmits: nah i timeout myself vs him somehow

MSmits: he doesnt make enough effort to detect me :(

MSmits: so i selftrack-timeout

MSmits: he's mostly minespam so his own actions arent the problem

VincentBab: haha ^^

MSmits: self active count: 23653

MSmits: thats how many states

MSmits: not good :P

MSmits: I have it coded that it wont try to silence when it times out

MSmits: but the states arent gonan go away

VincentBab: yeah thats a lot for 50ms

MSmits: on top of various other things

MSmits: maybe i should just prune it also

MSmits: its not that hard

MSmits: lemme go code that now

VincentBab: you can "combine" some states at the price of a decrease in precision

VincentBab: thats what i do

MSmits: yeah i had that for regular tracking

MSmits: not yet for selftracking

MSmits: i really need it

Nerchio: corner shot finisher


Nerchio: get rekt msmits :D

MSmits: nice one :)

VincentBab: nice killermove ^^

Zenoscave: EricSMSO nice morse code

EricSMSO: Ha someone understood

Zenoscave: S.O.S. correct?

EricSMSO: yes, thanks wikipedia

Zenoscave: ... ___ ....

Zenoscave: I don't know why i know it

MSmits: is this something your sub says when it dies?

Zenoscave: yes

MSmits: cool

MSmits: well i coded the pruning, here's to hoping I didn't break anything

Zenoscave: lucky submit start

MSmits: lost every game, so i guess i did :P

Nerchio: -1 life

Nerchio: msmits

Nerchio: twice xD

Nerchio: well done

MSmits: whats that

MSmits: oh I timeout

Nerchio: y

MSmits: weird

MSmits: i hardly changed any code

Swagboy: I can break any code with one character

MSmits: lol

MSmits: I removed a rather critical line by accident

MSmits: ReorderNodes();

MSmits: removes nodes that are dead... when filtering states

Swagboy: Ah yes

Swagboy: Are you doing a tree search ?

MSmits: mmh i just call them nodes out of habit because almost all classes i use are nodes on CG :P

MSmits: but they are tracking States

Swagboy: Hehe nice name indeed


MSmits: disturbing avatar

MSmits: when it's small on the leaderboard it looks like a rabbit

Zenoscave: You're finding this just now huh

Zenoscave: it is indeed scary

MSmits: yeah, i was just looking really closely at the leaderboard and was like: Whoah!

MSmits: hahaha

MSmits: payback


Zenoscave: payback for what?

MSmits: instead of timing myself out because he doesnt detect me, i now time him out :P

Zenoscave: ;)

MSmits: i lost a lot of games because when selftracking vs nagrarok he didnt make an effort to detect me :)

Zenoscave: gz Razielwar

MSmits: nice

Razielwar: merci zenoscave

Zenoscave: :+1:

MSmits: you've been stuck in gold for a bit too

Razielwar: yes but some other push me up :)

MSmits: good

ZarthaxX: holy 5 new in legend

struct: ZarthaxX go top 20

icecream17: Most amazing tie ever:

SolForecast: I can't seem to append anything onto the list in Dont Panic Ep.1. What the heck >>

icecream17: I thought my code would be bad but "use strict" didn't do anything

cegprakash: can I jump over my tail when using silence in Ocean of Code?

struct: no

Zenoscave: ceg you asked this before and we told you the answer

Default avatar.png 18o3: what is coder strike back

cegprakash: wtf:

Default avatar.png rwilson: ;) 3rd time someone's posted a 'pond' map