Chat:World/2020-04-25

From CG community
Jump to navigation Jump to search

jacek: happy Caturday

MadKnight: uljahnday

fasil: h

fasil: y

Avifire: can anyone help me i am stuck at the nextCheckpointAngle in coders strike back.

Avifire: http://chat.codingame.com/pastebin/7ddecea1-f3a3-4469-8aa2-686ca57f6490

Quidome: What's the problem?

eulerscheZahl: he has thrust=100 in both if and else section

Quidome: that's true :O

Quidome: I am at 83% of bender 4 now

Quidome: fixed one bug and hashmap optimaization

Quidome: but still time out on the remaining

eulerscheZahl: it was never supposed to be hard to get 100% correct :(

eulerscheZahl: but many struggled

eulerscheZahl: but great that you are making progress

Quidome: I see it as a two step problem, first find the optimal path and than the function stuff

Quidome: two seperate puzzles so to say

eulerscheZahl: yes, maybe

Quidome: I get's really complicated when you try to optimize over the two at once :)

eulerscheZahl: but the function stuff might even be more effective if you do not take the optimal path

eulerscheZahl: go a bit further and then back

eulerscheZahl: or bump into a wall

Quidome: ah, the last remark is interesting

Quidome: well, first 100% :D

Quidome: struggling with Rust, and references in structs

Quidome: I think i am gonna love Rust but not there yet...

dbdr: it seems Illedan and eulerscheZahl did a good job of pushing up the Tulips boss :)

dbdr: Quidome: can I help regarding Rust?

dbdr: what level are you?

dbdr: my general advice would be: think if you can design you data in a way that does not require references in structs

dbdr: it's often possible and much simpler

Quidome: I think i am intermediate at the moment, at Rust that is. But taking the time to understand everything.

dbdr: yes, definitely takes time, take it easy :)

dbdr: I also still have a lot to learn

Quidome: Well, you are doing quit well already in the contest with Rust

Quidome: nice work

dbdr: thanks!

dbdr: what are you working on?

Quidome: bender 4 and Tulips

dbdr: and what's causing difficulties?

eulerscheZahl: not trying atm dbdr

eulerscheZahl: somehow i got dragged into this https://www.topcoder.com/challenges/30122730

dbdr: cool, I did both. well just starting on tulips

Quidome: At the moment no special issues, i will keep you in mind. Thnxs!

eulerscheZahl: and to copy the link i replaced the path of the file i just wanted to submit. but thanks to parcellite i can quickly restore that

dbdr: yeah, I'm sure you'll pass the boss easily when you set yourself to it eulerscheZahl

dbdr: so you like parcelite?

eulerscheZahl: yes

dbdr: trying to win $0 I see :D

eulerscheZahl: of course, i always wanted to have $0

dbdr: good thing is, you can have it an infinite number of times

dbdr: and share it with everyone

eulerscheZahl: i won't give you my $0, they are MINE!

dbdr: :(

eulerscheZahl: topcoder sends me 2 emails for each submission i make. that's annoying

eulerscheZahl: imagine getting an email each time you submit a bot

eulerscheZahl: one "we received your bot" one "you submit finished"

eulerscheZahl: and one that you passed the virus check

Nerchio: would use up all my gmail space before first week finished ;)

dbdr: => filter that deletes it

dbdr: mess it up and delete your whole inbox

dbdr: => inbox zero :)

eulerscheZahl: and the feedback system sucks i get a score of 1. no idea if it takes too much time or my submission format is incorrect or whatever

eulerscheZahl: last contest it took me a while to figure out that i set the wrong filename

eulerscheZahl: because you can't just compile all codefiles :rolling_eyes:

dbdr: maybe 1 is the best score, like in some school systems :)

Yongkai: Y'a un mec chaud dans ta salle

Yongkai: *oups wrong chat

eulerscheZahl: speak english or go to the channel of weirdness

dbdr: at least Yongkai. without context... :D

dbdr: #ru ?

dbdr: someone seriously argued in the 19th century that "french is the natural language of the brain"

dbdr: other languages are artificial

eulerscheZahl: oh, right: topcoder doesn't like Console.Error

eulerscheZahl: and that's another nonsense: https://prnt.sc/s5nhbf i'm not first. i just got 100 on the virus check and the actual scoring didn't finish yet

eulerscheZahl: aaand it's a score of 1 again :/

eulerscheZahl: :rage:

Nerchio: why don't you just get a score of 100

Avifire: can someone help me? i am stuck at the nextCheckpointAngle in coders strike back

Avifire: my code:

Avifire: http://chat.codingame.com/pastebin/fffc57bb-442a-4f81-a225-c3afbdb0a888

eulerscheZahl: eulerscheZahl 09:54AM he has thrust=100 in both if and else section

eulerscheZahl: that was 30min ago and you still have it

Nerchio: you need some brackets for if else

eulerscheZahl: also Quidome asked you to specify "i'm stuck"

Avifire: even when i change the value it still doesnt work

eulerscheZahl: what means "doesn't work" playing poorly? crashing? compiler error?

eulerscheZahl: don't be like my mom saying "the PC is weird"

Avifire: no the value stays at 100 the whole round

Avifire: or 0 the whole time

eulerscheZahl: stupid topcoder, i didn't realize you get 4 emails... first you get a score of 1, then it's progressed and evaluated to your real score

eulerscheZahl: only about 15min after the submit you get the real score

eulerscheZahl: did you change the thrust to 0 for both if and else to get the permanent 0?

Default avatar.png WINWINWIN: eulerscheZahl can u tell me how to enable optimizations for C#?

eulerscheZahl: you don't

eulerscheZahl: http://chat.codingame.com/pastebin/36b47751-7682-48e6-9470-41937bea2696

eulerscheZahl: it's debatable if it is of any benefit

eulerscheZahl: and it's runtime optim, not compile time

Default avatar.png WINWINWIN: why the args length part?

eulerscheZahl: the first call from CG is without console args

eulerscheZahl: so you artifically set some when you call your own program to detect that it's the 2nd run

eulerscheZahl: and terminate yourself

Spifflejedi: Hi o/ is there a way to increase the vertical size of the console output of CG games? on my browser I can only change the size on the horizontal axis.

)

eulerscheZahl: the 2nd run has args.Length > 0, meaning it's alraedy optimized. so it plays the game

eulerscheZahl: Spifflejedi https://www.codingame.com/forum/t/cg-enhancer/59441

eulerscheZahl: see https://i.imgur.com/OPghPnz.png specifically

Spifflejedi: :thumbsup:

Spifflejedi: thx

Nerchio: oh

Nerchio: didn't realise i need something like this

eulerscheZahl: you can also name your submits and stuff like that

Spifflejedi: selection of opponent needs to be done manually though it removes the search opponent ui it seems

Spifflejedi: but super usefull add on

Default avatar.png WINWINWIN: Anyone actively doing Fantastic Bits?

dbdr: oh, eulerscheZahl in wood1 aka legend

eulerscheZahl: silver maybe

eulerscheZahl: added some basic blocking

dbdr: yeah, that's the level of the boss I would say

eulerscheZahl: https://www.codingame.com/share-replay/454687169 take that!

dbdr: yeah, you beat me in my sub

dbdr: while I beat ErisSMSO

dbdr: definitely bots with holes in their strat :)

eulerscheZahl: oh, you are submitting too

eulerscheZahl: but you timeout there

eulerscheZahl: lots of money

dbdr: what is lots?

eulerscheZahl: 140

dbdr: :D

eulerscheZahl: and you end the game early

dbdr: I saw top players doing big combos

dbdr: several k in one move

eulerscheZahl: i know

dbdr: yeah, looks like a real timeout

dbdr: I have fixed depth 3 minimax right now

dbdr: did I push you up? :D

b0n5a1: hi o/

b0n5a1: free until 10.05 : https://store.steampowered.com/app/441380/PACMAN_CHAMPIONSHIP_EDITION_2/

eulerscheZahl: no, i promoted myself

dbdr: my tool assumes -1 is a timeout, which is not true here, annoying

dbdr: gg then

dbdr: there is no consistency on this on all multis, is there?

eulerscheZahl: no

dbdr: :(

dbdr: an no undersal way to detect a crash?

eulerscheZahl: many write "timeout" in the game summary

eulerscheZahl: in hypersonic you disintegrate

dbdr: and many have -1

dbdr: showing crashes on the last battles would deffinitely make many people happy

dbdr: and reduce their server load

Avifire: my pod is not boosting. can anyone help me

Avifire: my code

Avifire: http://chat.codingame.com/pastebin/bce468ac-0db3-4e22-8c39-901a18eeb232

Avifire: /me

wlesavo: you need to actually print "BOOST"

Avifire: where

eulerscheZahl: on a side-note: BOOST isn't worth much. by todays game standards CG wouldn't introduce such a command that can only be used once per game

eulerscheZahl: in your print statement. print the text BOOST instead of a number

Uljahn: iirc there was no boost during csb contest

eulerscheZahl: right, you are a veteran member

Uljahn: :older_man:

Default avatar.png JBM: wasn't it SHIELD that was not in the contest?

eulerscheZahl: let's read some post mortems https://www.codingame.com/blog/genetic-algorithms-coders-strike-back-game/?utm_source=codingame&utm_medium=details-page&utm_campaign=cg-blog&utm_content=csb

eulerscheZahl: it talks about shields

eulerscheZahl: but boost only ranking-wise, not as a command

Default avatar.png JBM: ok then

MSmits: Did Jeff rank high? I forgot who won the csb contest

MSmits: btw... funny how anyone in the top 30 will probably wreck all the contest bots :)

MSmits: that's definitely not true for the other multis

eulerscheZahl: the PCR contest winner is the gold boss now

AntiSquid: very optimistic, top 30 only?

MSmits: oh cool

MSmits: so it's true for PCR as well

MSmits: AntiSquid probably more, I was being conserrvative

eulerscheZahl: but these contests had no public referee

MSmits: btw... I did not think PCR gold boss was easy to beat at all

AntiSquid: republican

eulerscheZahl: so only a few players managed to build a sim

eulerscheZahl: which is crucial

MSmits: AntiSquid ewww

AntiSquid: lol

MSmits: eulerscheZahl true

MSmits: oh, sorry

MSmits: true eulerscheZahl

eulerscheZahl: wow, you are 3rd in onitama already :o

MSmits: yeah, I'm 2nd basically, got a new eval with untuned constants

AntiSquid: order is irrelevant, eulerscheZahl mention means extra eulerscheZahl mention chance from AutomatonNN because he loves eulerscheZahl

AutomatonNN: what is the most community contest?

AntiSquid: what is the most eulerscheZahl mention AutomatonNN ?

AutomatonNN: hmmm

eulerscheZahl: but that bot likes to start sentences with my nick as it's a popular word to start a sentence

Nerchio: so yesterday i pushed a 3 year old bot from silver to gold

Nerchio: hehe

MSmits: good job

eulerscheZahl: great job. and where are you?=

Nerchio: ~150 gold

AntiSquid: that guy will open his email and think: wow finally!

Nerchio: yea i was wondering if he gets an email for that

Nerchio: would be funny indeed

eulerscheZahl: CodinWhat?

AntiSquid: yes

Nerchio: ghost in the cell

AntiSquid: i mean he does get it, unless he stopped using it

eulerscheZahl: i deactivated these email notifications

Nerchio: probably would think its spam or something

MSmits: cg has a tendency to go into spam folder though. I had great trouble trying to get it through the filter

Nerchio: or codingame trying to get him back after 3 years xD

eulerscheZahl: only for comments on my contirbutions (puzzle solutions, puzzles, puzzle comments)

eulerscheZahl: i remember your lost tshirt winning email

MSmits: you just want to read "that's awesome euler" every once in a while

Nerchio: lol

eulerscheZahl: know if i should take an action

MSmits: yeah that doesn't happen anymore thankfully euler

Nerchio: i'd love to play some less-known contributions but how do you guys find time for that

Nerchio: there is enough popular multis already :p

MSmits: I've been at this for almost 3 years now I think

eulerscheZahl: i started 3 years ago when there were only 10 multiplayers

MSmits: wait then its only 2

eulerscheZahl: 2 for you MSmits

MSmits: ye

Nerchio: lol

eulerscheZahl: wait, i'm close to 4 already :scream:

MSmits: so anyway, if you spend 30 hrs a week doing this between contests, you get some multis done

eulerscheZahl: time flies

MSmits: even so i tend to hang around with a multi for 2 months average i think

Nerchio: ye makes sense

MSmits: so 2 months, then i move on to the next

MSmits: onitama will be shorter I think

Nerchio: you're done with ooc then?

MSmits: i never revisit contests

eulerscheZahl: took me about a year to catch up back then with limited game choices

MSmits: or i havent yet anyway

AntiSquid: i forgot where i check when i made my account

eulerscheZahl: now i have some unplayed games again

MSmits: contests are semi involuntary. I have less fun with contests than with multis, because I have no choice, I kinda have to do them right then

MSmits: even though I am obsessed with a different multi at that time

Nerchio: hm

Nerchio: i am enjoying ghost in the cell at the moment but its definitely more fun when its live contest with hundreds of people writing their bot at the same time

eulerscheZahl: i agree

MSmits: thats a fun part of it, but the fact that it's not the game I am obsessed with atm, actually detracts more from the fun for me

eulerscheZahl: lots of chat activity and you want up 10 ranks below where you parked the bot in the evening

AntiSquid: ya i see, i only reach 3 years of CG in June this year, yet MSmits is a time traveler and did 3 years already

Nerchio: but we will see for future contests, if there will be one i dislike i might change my mind ^^

MSmits: lol

MSmits: Nerchio dont get me wrong, contests are great. I just like the more relaxed version of writing bots also

eulerscheZahl: you can always skip one. or call it a day without going all in

MSmits: i did that on utg

AntiSquid: 21 March 2018 MSmits, so just above 2 years

Nerchio: lol eulerscheZahl "dont invite me to clash of code" xDD

Nerchio: nice description

MSmits: AntiSquid thanks

eulerscheZahl: i only wanted to reach legend at UTG

eulerscheZahl: try to copy a part of that text Nerchio

Nerchio: i did and it didnt work

Nerchio: so i rewrote it

Nerchio: :x

eulerscheZahl: :D

MSmits: could not summon the motivation. My head was bursting with ideas for yavalath and uttt at that time. I just couldn't let that go

MSmits: it happened during ooc too, but I had a month

eulerscheZahl: right to left character at the beginning and then the text backwards

eulerscheZahl: sadly it's not allowed for usernames

eulerscheZahl: would be fun to disable tab completion

eulerscheZahl: we also have this gem:

eulerscheZahl: ̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤̤

MSmits: is that a tilde

MSmits: aaaaaaa

eulerscheZahl: no :imp:

MSmits: it's stabbin me!!

Nerchio: lol

Nerchio: nice

AntiSquid: http://chat.codingame.com/pastebin/5a512ef8-5d4d-4b73-99f4-344e1798700b

MSmits: i remember when automatonnn was doing that

eulerscheZahl: stops after about 10 messages

AntiSquid: ah nvm

AntiSquid: only works in private

AutomatonNN: hey guys i am still in silver league there

MSmits: stay there

Nerchio: btw where can i check acc creation?

MSmits: check?

Nerchio: like date

eulerscheZahl: go to the profile, hover over the ranking graph

eulerscheZahl: left-most = creation

Nerchio: september 10 2016 ;)

Nerchio: veteran

MSmits: yeah

MSmits: btw, if you want to see someone who did lots of multis in a short time, check trictrac account

Nerchio: wait why does it say i am legend in 3/51

Nerchio: ah its

Nerchio: legend achievements rather than

AntiSquid: achievements?

Nerchio: leagues

Nerchio: I am the champion Finish 1st in any contest.


Nerchio: that sounds tough

Nerchio: unless you can do it on some random stuff

eulerscheZahl: it is, trying for years :D

MSmits: yea :(

eulerscheZahl: smits was close

AntiSquid: i missed top 50 again lol

MSmits: yeah, got 2nd

eulerscheZahl: now he's stacking tshirts from his failed attempts to win that achievement

MSmits: :P

AntiSquid: only ones that reach it are the ones who probably don't care about it anyway

Nerchio: yeah probably

MSmits: I think some care. Agade had some really happy PM

MSmits: and i have read others

MSmits: but yeah if tourist wins, he's gonna leave a short message and leave

AntiSquid: there's also the create a community contest achievement which most also won't get

AntiSquid: much easier to get though

eulerscheZahl: i wonder if they will remove the creator's achievement now that community contests are officially dead

MSmits: they shouldn't

eulerscheZahl: i'm slow at typing :D

AntiSquid: you can still create one and present them a finished game ?

eulerscheZahl: yes

AntiSquid: so should keep it, it's not unobtainable

eulerscheZahl: but it's hard to find the right level of complexity

Nerchio: so last few contests where community made and they are going back to cg made?

eulerscheZahl: yes

MSmits: they could have a legacy category for achievements

MSmits: list of unobtainable achievs

eulerscheZahl: https://www.codingame.com/contests/finished from mean max to pikaptcha

eulerscheZahl: these are the community contests

AntiSquid: i wouldn't call ocean of code and crystal rush (UTG) community contests though

eulerscheZahl: neither do i

eulerscheZahl: note the long gaps before and after mean max

eulerscheZahl: they had to build the SDK first

Nerchio: so what's the expected 'rate' of challenges now?

MSmits: unclear

AntiSquid: unexpected

eulerscheZahl: 2-3 per year

Nerchio: :D

eulerscheZahl: source: thibaud forum post

MSmits: there's also company sponsored contests that appear suddenly

MSmits: sometimes they open up to the community

MSmits: as opposed to just the company

Nerchio: they call next one "spring" challenge which kind of suggests they want might want to do 1 per season

eulerscheZahl: but often these semi-private contests are heavily based on existing games

MSmits: thats true

MSmits: Nerchio dont think that means anything

MSmits: just means it's in the spring

eulerscheZahl: and the spring contest was planned for end of winter but shifted by 2 months

AntiSquid: what's the reason though

eulerscheZahl: i guess they didn't finish it in time

AntiSquid: and how different can it really be from pacman? :D

Nerchio: i wonder if it will be in some way similar to the kthulu thing

Default avatar.png JBM: how do you even multi a pacman

eulerscheZahl: i guess you were close, that's why they removed it

MSmits: Nerchio good guess

eulerscheZahl: but we'll see

AntiSquid: with the little info we have we are all very close to knowing what it is

MSmits: it's probably going to have lots of BFS

MSmits: that's my guess

MSmits: get your BFS ready

eulerscheZahl: "how to multi pacman" there was a mr and mrs hackman contest on riddles that would answer your question

eulerscheZahl: but the site is dead

AntiSquid: power ups in the cover image, knowledge of similar contests (hackman, kutulu ...)

Default avatar.png JBM: what's hackman

eulerscheZahl: https://github.com/riddlesio/hack-man-2-engine

eulerscheZahl: there are visuals somewhere (searching now)

Nerchio: do you guys think it will be 1v1 or more?

Default avatar.png JBM: like, a semi-famous variant?

AntiSquid: probably the reasoning is that most people didn't play the other similar stuff

MSmits: Nerchio could be either, but my guess is 4p

Default avatar.png JBM: how about reverse pacman

Default avatar.png JBM: 4 players control the ghosts

Default avatar.png JBM: the game IA moves pacman

MSmits: i see two pacmans in the pic

Default avatar.png JBM: first to get him actually wins

AntiSquid: isn't the CG reverse engineering puzzle a reverse pacman of sorts?

Default avatar.png JBM: shhhhhhhhh

AntiSquid: and we just had ooc

AntiSquid: don't want more hidden info games

Default avatar.png JBM: i like them

AntiSquid: i still didn't fix my UTG bot even

MSmits: AntiSquid I like the hidden info if it is a strong feature of the game

AntiSquid: and have plentiful bugs in occ

AntiSquid: ooc *

MSmits: I don't like it in wondev woman, where it's an annoying detail

Default avatar.png JBM: it's a refreshing change from the usual just bf the sim kind that's prevalent around here

AntiSquid: for me wondev woman wasn't that bad, it was sort of trollishly fun, you can pull off some funny moves

AntiSquid: for example only move 1 unit for first half of the game

MSmits: yeah it seems ok, i just didn;t like that part of it

AntiSquid: and then surprise!

eulerscheZahl: you can still play that mrs hackman at https://github.com/jmerle/ai-bot-workspace

eulerscheZahl: that's the contest where i never got my robot prize :/

MSmits: sucks

AntiSquid: you could always buy that thing

eulerscheZahl: not the same

AntiSquid: now with lockdown maybe it's a good way to spend time

MSmits: what kind of robot is it

eulerscheZahl: aruduino emoro pro robot kit

MSmits: ah cool

AntiSquid: you could always look up arduino robots on youtube, there's lots of tutorials, maybe you can make a pass the butter bot

MSmits: I've participated in a robot contest for a few years with students

MSmits: I mean an international contest

AntiSquid: https://www.youtube.com/watch?v=Bmsx7g87kZ0

eulerscheZahl: like robot soccer?

eulerscheZahl: i got your rick and morty reference

MSmits: https://www.ad.nl/video/kanalen/rotterdams-dagblad~c434/series/korte-reportage~s1048/leerlingen-gaan-de-strijd-aan-in-de-first-lego-league~p114459?referrer=https://www.google.com/

MSmits: it's been a while since I last did that, I think 7 years ago

AntiSquid: ja ik akzeptier cookies - language similarities there

Nerchio: damn 10 year old students

MSmits: hehe yes

Nerchio: the netherlands is next level

MSmits: mine were 10-12

MSmits: sry 11-13

MSmits: upper edge of the age range

Nerchio: i always considered 'students' to be in university but i guess it might be everyone

MSmits: yeah, i use it for everyone

MSmits: I don't teach younger ones anymore currently

MSmits: just 16-18 yr olds

MSmits: though this contest was fun. We stayed in school til after dark coding and building bots

MSmits: kinda wore me out though

AntiSquid: but that's how school should be like

AntiSquid: if you don't see a point in being there then it's useless

Nerchio: unleash the geek = crystal rush?

MSmits: it's fun when the students are supposed to build a bot to deliver a polar bear to a corner of the map and then they build a giant catapult that launches it there 80% of the time

AntiSquid: yes

eulerscheZahl: yes

eulerscheZahl: there are also some games that will never return

eulerscheZahl: like https://www.codingame.com/leaderboards/contests/amadeus-challenge/global

MSmits: clear second now: http://cgstats.magusgeek.com/app/multi-onitama/MSmits

AntiSquid: could always make a newer slightly more complex one of the graph challenge

AntiSquid: and same goes for the capture the balls challenge

kovi: i miss great dispatch

kovi: even though our competation was taken over (by hardcoders)?

emigr2k1: I always get captcha im not a robot it's disgusting

AntiSquid: play some puzzles instead, no captcha

Uljahn: just make a solving captcha bot, there should be a clash for that :smiley:

AntiSquid: if you don't finish in 15 minutes start over

eulerscheZahl: kovi no hardcoding at TGD. some solved it perfectly in 10s while we had 50

kovi: well, it might have been easier since it turned out to be perfectly solveable

AntiSquid: so top solutions were bruteforced?

eulerscheZahl: i wouldn't call it bruteforce if you found a clever way

eulerscheZahl: but they were solved online and with a provable optimal score

AntiSquid: but were they solved with a bin packing algo ?

eulerscheZahl: kind of, i don't know the full details

aCat: TGD?

eulerscheZahl: the great dispatch

aCat: we got such game oO

eulerscheZahl: not anymore

eulerscheZahl: was an optim game where you had 50s to solve it

aCat: ^^'

eulerscheZahl: 100 trucks, list of boxes with given wieght + volume

aCat: oh, maybe I remember it

eulerscheZahl: assign the boxes to trucks such that you don't exceed the max volume on any truck

eulerscheZahl: and try to get the weight per truck as uniform as possible

eulerscheZahl: score = max weight - min weight, lower is better

aCat: hmm, we don't gaet xp for approving puzzles?

aCat: bu :(

eulerscheZahl: no, they removed that feature

eulerscheZahl: in the hope that less shitty games get approved

eulerscheZahl: not sure if that even was a motivation for some

eulerscheZahl: and a proper review can be a lot of effort

struct: How much was the exp?

struct: like 15?

eulerscheZahl: 15

aCat: so that's the reason even less people are willing to approve/refuse stuff than before ;p

eulerscheZahl: meanwhile you still get 250 for creating a boring clash of code

eulerscheZahl: same as for a multiplayer with nice animations, which is a lot more effort

aCat: yep

eulerscheZahl: and requires more skills, which XP stands for

aCat: that is wrong

aCat: we should rebel ;p

Astrobytes: Has anyone broached that subject with CG? Seems grossly unfair.

aCat: or constantly ping Thibaud about this

eulerscheZahl: i want to get paid! in XP!

eulerscheZahl: i commented on the clash vs multiplayer XP on the forum 2 or 3 times

struct: I want to see my puzzle at least on Puzzle of the week :(

eulerscheZahl: it's a feature to have same XP it seems

struct: I guess now its impossible since I deleted the account though

Astrobytes: Some feature...

MadKnight: hey struct

struct: hi

MadKnight: what account did u delete ?

struct: The one that created Yavalath

MadKnight: did u create it from another account ?

struct: yes

MadKnight: Yavalath by undefined

MadKnight: lol

MadKnight: but why ?

struct: legend or delet

MadKnight: u can undelete it

MadKnight: if u still have session cookies somewhere

Astrobytes: Was it UTG struct? I can't remember

struct: yes astro

struct: I dont have the cookies anymore MadKnight

MadKnight: they don't actually delete it they only unlogin u and set nickname to ""

MadKnight: maybe u logged from another browser ?

Astrobytes: You waited til last day or something iirc

Astrobytes: Hi MadKnight

MadKnight: iirc ?

MadKnight: what's iirc

MadKnight: tell me Automaton2000

Astrobytes: "If I Remember/Recall Correctly"

Automaton2000: the top of the leaderboard

MadKnight: oh right

MadKnight: no Automaton2000 iirc isn't the top of the leaderboard

Automaton2000: the difference between the two

ALIM: Can someone help me with an easy puzzle?

ALIM: Any ideas how to decode in disorderd first contact?

Mykes: yare yare

struct: The statement explains it quite well

ALIM: The statement explains it only about the encodind which i have already done. What about the decoding in C language?

struct: The example they give is the decode

ALIM: Yeah but there is any explanation of how to decode

struct: http://chat.codingame.com/pastebin/8b6dcf91-de00-4dd3-8763-d4cdef04de6c

struct: repeat

struct: until no more chars

Default avatar.png IAmNoob: hi

AntiSquid: i think the main issue with clash is that it's overvalued by the newer part of the community

AntiSquid: so ofc they want xp equal to multis for it

AntiSquid: anyway to get the numbers up and keep people active i guess

Default avatar.png darkstar: hi @IAmNoob

Uljahn: b-but clashes don't teach you anything useful

Default avatar.png IAmNoob: yeah

Default avatar.png ApenJulius: (just started out) whats the difference betweeen max and imax?

Uljahn: letter i?

Default avatar.png ApenJulius: doing the descent

AntiSquid: need more context @_@

Default avatar.png ApenJulius: jsut kinda dont know why its imax and max

AntiSquid: how you name your variables is your choice

Default avatar.png ApenJulius: oooooooh

Default avatar.png ApenJulius: thanks haha

Uljahn: ah, i guess it's max element vs the index of a max element

Default avatar.png ApenJulius: things starting to make sense

Default avatar.png IAmNoob: there would be usefull if you can put a limit of space or a limit of time so they must make it better @Uljahn


Uljahn: IAmNoob: i don't get it, can you elaborate?

Default avatar.png IAmNoob: I say that if you want to make a program that make Quick Sort, all of the programmers will just use he sort() function

Default avatar.png IAmNoob: or if you want to make that the sum of divizors to be in O(n*log(n))

Default avatar.png IAmNoob: not just in O(n)

Default avatar.png IAmNoob: or OI(sqrt(n))

Uljahn: like valuing cocs by memory or time asymptotic complexity?

Uljahn: ah, i get it

Default avatar.png IAmNoob: yeah

Default avatar.png IAmNoob: like so

Uljahn: that's what multis are all about i guess

Default avatar.png IAmNoob: multis?

Uljahn: ai bot programming

Default avatar.png IAmNoob: aaaaa

Default avatar.png IAmNoob: yes

Uljahn: you're given strict time limits and memory bounds

Default avatar.png IAmNoob: yeah

Uljahn: then you compete :)

Default avatar.png IAmNoob: i would like to see something like this in a clash

Default avatar.png IAmNoob: to have a time limit

Default avatar.png IAmNoob: or complexity limit

wlesavo: just try regular puzzles

Default avatar.png IAmNoob: i tried

wlesavo: there are quite a few you cant brute force

Default avatar.png IAmNoob: yeah but i sad about comunity

Default avatar.png IAmNoob: how we could make some

Uljahn: just don't take clashes seriously, they are good for having some fun

Default avatar.png IAmNoob: yeah they are simple

Default avatar.png IAmNoob: (not complex)

Default avatar.png IAmNoob: i mean

Uljahn: cheap and quick dopamine shot :relieved:

Default avatar.png IAmNoob: :)

pavveu: Hi, I got question, about game tree searches - minimax, mcts, etc. in C++. If every node in tree corresponds to certain Board instance, should i have 1 instance of Board class and pass it into recurrence search using "move()" and "undoMove()" functions on this specific instantion of Board class, or should i create every time a new Board instance in current node, or it doesnt really matter?

aCat: depends on the game

aCat: in many cases it is more efficient to make move and undo

aCat: or in case of mct even without undo

aCat: *mcts

aCat: you just copy root and apply all moves along the way - this is how it is usually done

Default avatar.png RobertSARPILIIII: buenos aires

aCat: if the game is with imperfect information or randomness you have to do it as you usually can't properly store game states

MSmits: pavveu assuming you have perfect information, it depends on the size of the gamestate

MSmits: Usually if it is 128 bit or smaller, I store it on the tree node

MSmits: it also depends a lot on how costly it is to apply a move

MSmits: you dont want to have to do it again and again

MSmits: if it is expensive

MSmits: for example, in UTTT applying a move is very cheap and most people have a gamestate of size 320 bit. That means it's cheaper to just reapply the move every time you go down the tree

pavveu: @MSmits thanks for reply, so if i understood correctly, large state + fast move, I can just simply call minimax, etc every time i traverse down, otherwise, its better to store whole minimax tree in memory?

ZarthaxX: minimax tree in memory doesnt make sense

ZarthaxX: that just exploeds

ZarthaxX: too much memory

Astrobytes: You build the tree as you go as opposed to storing it for minimax

Astrobytes: hi Zarthington

ZarthaxX: astrobyto good sir waddup

Astrobytes: Not a lot man, you good?

ZarthaxX: pavveu it doesnt make sense to store the tree of minmax as yu arent coming back to the nodes

ZarthaxX: except you do iterative deepeening, but still, too much memory

ZarthaxX: storing the tree makes sense for MCT

ZarthaxX: MCTS

ZarthaxX: Astrobytes good good, have to do a project with a team for uni today

ZarthaxX: so i need to code some things to be ready

MSmits: pavveu I am mostly talking about MCTS

Astrobytes: ZarthaxX cool, is this a 1-person makes all the effort kind of team or a proper team? :P

MSmits: in minimax it may make sense to use a small state for transpositions though

ZarthaxX: well so far i have done all

ZarthaxX: but just code

ZarthaxX: :rofl:

Astrobytes: lol

ZarthaxX: i know my team is decent

ZarthaxX: one works and doesnt have time in the week

ZarthaxX: the other idk.. problem is he is more a math guy

ZarthaxX: so i dont want him to code lol

Astrobytes: Ah right

Astrobytes: good move lol

ZarthaxX: also as i coded i found a more efficient way of doing smth

ZarthaxX: which i told them, they didnt understand

ZarthaxX: i told the teacher

ZarthaxX: he didnt understand

Astrobytes: ffs

ZarthaxX: :(

ZarthaxX: thought the teacher knew already

dbdr: tell us, let's see if we understand :)

MSmits: you're a student in this situation?

dbdr: CG is overestimating my progress rate: https://i.snipboard.io/TKklDj.jpg

D

pavveu: @MSmits all right, sorry, should be more precise, its certainly 2 different things, so for now,

I wonder mostly about minimax, if i got Board state, using iterative deepening, hashing, with large branching factor, should i create every time a new instance of Board call move function on it, and traverse down, or should i operate on only 1 instance calling move and undoing it propagating back up? Or is it depends more on size of game state etc 

pavveu: @ZarthaxX thanks, understood

dbdr: pavveu I think the honest answer is that it depends, and ideally, do both and compare them ;)

ZarthaxX: dbdr it's something about linear algebra ol

ZarthaxX: MSmits yes

MSmits: ahh i see. it's a similar question pavveu. The best answer is to try both and benchmark, but in many cases it is obvious. With large states, dont make new instances, with fast moves and undo, do make new instances

MSmits: also some games have moves destroy information so thoroughly that you have no choice but to keep an entire copy of it

dbdr: actually I was thinking about this, related to MSmits question whether MCTS is always better

dbdr: the fact that minimax is efficient when using undo in some cases

MSmits: mcts can do this just fine

dbdr: you can't really do that in MCTS I think

MSmits: why not?

MSmits: go down the tree, apply and undo

MSmits: keep just 1 copy of it at the top

MSmits: to reset once you're done with the rollout

MSmits: you dont even have to undo

pavveu: @dbdr okay, thanks, will do that then

dbdr: but minimax explores one area at the same time

dbdr: does not undo back all the way to the top

MSmits: no, but it undoes a lot more often

dbdr: so in some contexts that could be more efficient

MSmits: say with uttt, you apply 40 moves, then it's one copy action to reset

dbdr: if you use undo in MCTS, you would undo more than minimax

MSmits: yeah thats why i think you should not

dbdr: sure, but copy could be much expensive than undo

dbdr: say you have a huge state

MSmits: memcpy is fast though, state would have to be very very large

dbdr: and small ations

dbdr: actions

MSmits: on CG i don't know an example of this

dbdr: well, that's where it's down to numbers

MSmits: it's down to numbers yeah

dbdr: it's possible, but it requires evidence

MSmits: also, I don't even know if what I am doing lately is even mcts

MSmits: there is no monte carlo

MSmits: I just go down the tree using UCT, eval at the end and reset

MSmits: it's deterministic

dbdr: I know, I would call that BTS

dbdr: Biased Tree Search

dbdr: Minimax is unbiased, explores everything equally

MSmits: https://www.youtube.com/watch?v=MBdVXkSdhwU

ZarthaxX: MC came from random moves :thinking:

ZarthaxX: or what

MSmits: yeah

dbdr: Monte Carlo = Random

dbdr: so yes

ZarthaxX: i mean it's always better to put someheuristic

ZarthaxX: MSmits that video is relevant to this talk? :P

MSmits: In my case i just make sure I do a good sampling of the tree, but it's no longer random

MSmits: he said BTS

ZarthaxX: i know

ZarthaxX: lmao

MSmits: :P

ZarthaxX: but it's no loner random coz your rollout is an eval

ZarthaxX: longer*

MSmits: well you can also do a random rollout to x turns and then eval

MSmits: x is just 0 for me

dbdr: also, what about a tree that's very wide and shallow

ZarthaxX: i know

Uljahn: ZarthaxX: main idea is bad heuristics are worse than pure random i guess

dbdr: shallow => many iterations and copies in MCTS

MSmits: dbdr that's basically yavalath

dbdr: sorry wide => ...

dbdr: and shallow means few undos

dbdr: so that could tip the scale towards minimax

MSmits: it does indeed, in yavalath

ZarthaxX: Uljahn but i think you should drop the pure random idea always and make some domain specific stuff

dbdr: interesting

ZarthaxX: :thinking:

MSmits: minimax is by far the easiest way to get into it, mcts takes a lot of work to get past issues

dbdr: the book corrects the limitations of MCTS?

MSmits: mostly yes, but my bot without book is also in the top 3

MSmits: among some minimax bots

MSmits: the thing is, even if you dont have a bok

dbdr: interesting, so comparable strength

MSmits: you still have a book

MSmits: let me explain

MSmits: most bots are very deterministic

dbdr: need to :D

MSmits: even without books

MSmits: so you get insane rps-effects

MSmits: that make measuring bot strength impossible

dbdr: I see

dbdr: you'd need to compare bots after N random moves :)

dbdr: to vary the states

MSmits: yeah

ZarthaxX: rps?

MSmits: rock paper scissors

ZarthaxX: ah iok

MSmits: you'll see the same game repeated many times just because bot X always makes 1 mistake in some often visited state

dbdr: that's a benefit of games with maps and seeds

dbdr: every game is different

MSmits: definitely

MSmits: i like this about Onitama

MSmits: bandas too

MSmits: simple games in the way that I like, but still every game is different

MSmits: Onitama is very entertaining to watch replays of

MSmits: also funny that if you play vs AI, some games are 3 frames :)

MSmits: vs default AI

dbdr: default AI is stupid?

MSmits: that ofc, but the reason you can end it in 3 frames is because almost every turn is near the end game

MSmits: if you make a mistake

ZarthaxX: wow

ZarthaxX: onitama is that brutal?

MSmits: yes

MSmits: lemme try and find a particularly short one

MSmits: https://www.codingame.com/share-replay/454751386

MSmits: 7 frames

eulerscheZahl: there is no splatter in onitama

eulerscheZahl: vindinium is more brutal :P

ZarthaxX: hi toady

eulerscheZahl: hi

eulerscheZahl: the default AI takes a capturing more if possible. otherwise just a random valid move

dbdr: reminds me of beginner mistakes in chess

dbdr: mate in 3 moves

eulerscheZahl: i'm curious: onitama has a fallback rule if there is no valid move. did you ever encounter such a situation?

eulerscheZahl: in that case you pass a card without moving

MSmits: I don't watch a lot of replays, but I did not enounter it no. I did encounter crashes when i did not handle this situation well in my bot simulation

MSmits: so it happens in sims at least

eulerscheZahl: interesting, wasn't even sure if it's possible

eulerscheZahl: or if the referee handles it properly :P

dbdr: yeah, didn't think MSmits could write bugs either

MSmits: lol, too many bugs

eulerscheZahl: right now i'm crashing too :/

MSmits: _ eulerscheZahl I am thinking hard to come up with a good situation where this happens

eulerscheZahl: the _ :D

MSmits: hehe yeah

eulerscheZahl: not sure if automaton will ever get trained again

MSmits: is he not being trained now?

eulerscheZahl: so it wouldn't even matter if not

ZarthaxX: jolindie n PM

eulerscheZahl: no, only by manual trigger, takes a few hours

dbdr: Automaton will learn to start sentences with _ eulerscheZahl

MSmits: ah

eulerscheZahl: i know ZarthaxX, even a long one

ZarthaxX: i see

ZarthaxX: i like his emotes lol

ZarthaxX: evaluation function sleep

eulerscheZahl: no long contest

eulerscheZahl: i totally agree on that

eulerscheZahl: "It’s been a while since we’ve seen MJS — their last post was 1 year ago." what weird forum update is this?

ZarthaxX: lol

MSmits: Mary Jane?

MSmits: who is MJS

dbdr: "This is the first time X has posted — let’s welcome them to our community!"

dbdr: didn't see that feature before

eulerscheZahl: because it's new

eulerscheZahl: since today?

Astrobytes: Bet they pushed it yesterday, being Friday and all :P

eulerscheZahl: i have a feeling like they often change something on friday afternoon

dbdr: classic

Astrobytes: And just sit and pray all weekend

dbdr: maximizes the amount of testing by the community :D

Astrobytes: lol, let us find the bugs

pb4: There is also "It’s been a while since we’ve seen MJS — their last post was 1 year ago."

**eulerscheZahl feels ignored

pb4: woops

**pb4 is sorry

eulerscheZahl: :D

ZarthaxX: lol

MJS: Hi then

pb4: I'm surprised there were so many MCTS

pb4: hi MJS :)

pb4: Welcome back after more than 1 year ! :d

dbdr: :D

MJS: Thanks. I have run each and every contest. But not reacted on the forum

dbdr: Did "Quote" disappear from the forum?

pb4: You have a "reply" button dbdr

AntiSquid: quote pops up when you select a piece of text

eulerscheZahl: no highlight a text and click "quote"

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

pb4: TIL

AntiSquid: that 0.01 extra typing speed

dbdr: right, thanks!

eulerscheZahl: i always lose on typeracer

dbdr: seems buggy if you want to quote a quote

MJS: pb4 proba * (1 - proba) maximizes the information retrieved by the sonar

eulerscheZahl: csc -v Microsoft (R) Visual C# Compiler version 3.3.1-beta4-19462-11 (66a912c9)

dbdr: will this mean faster C#?

eulerscheZahl: but still mono installed: Mono JIT compiler version 6.4.0.198 (tarball Tue Sep 24 01:24:35 UTC 2019)

eulerscheZahl: not sure if it's updated yet

Default avatar.png sadek11: hii

AntiSquid: hi

dbdr: MJS I was thining to think about that, but then sonar was a minor case in my bot. I just thought about it quickly, for 2 sectors, it does not matter right?

AntiSquid: what happened to sadek0 to sadek10 ?

dbdr: and for 3+, I thought the most probably must be a good choice

dbdr: a unlikely sector will almost surely respond No, with little info gained

eulerscheZahl: still running with mono

AntiSquid: sonar the second best sector, good or bad idea?

eulerscheZahl: Console.Error.WriteLine((Type.GetType ("Mono.Runtime") != null)); prints true

eulerscheZahl: why not the most likely one?

KiwiTae: eulerscheZahl o/

eulerscheZahl: hi kiwi

dbdr: I think most probable is better. but would be better to have the proof :)

MJS: The ideal use would be splitting the possible positions in 2 balanced sets. If you still consider n positions, the best sector is the one that contains about n/2 positions

dbdr: right, so if one sector has 50%, it's ideal

Default avatar.png MaciejF: Hi everyone! Is there a way to read game's seed? I'm playing UTTT and there is a "seed" variable when clicking on "options". I'm using C++.

IananasMian: hihi

eulerscheZahl: my detection rate the most likely sector is the best to scan however the overall situation might change this (e.g. exclude some mines so you don't have to surface and turn around)

AntiSquid: hi

eulerscheZahl: my => by

KiwiTae: IananasMian hey O/ wow another taiwanese fellow

AntiSquid: MaciejF why is game seet important for UTTT?

AntiSquid: seed *

KiwiTae: u look cute

ZarthaxX: lol

KiwiTae: ZarthaxX sup

ZarthaxX: dont do that here kiwo

ZarthaxX: doing some algebra stuff

ZarthaxX: you?

KiwiTae: ZarthaxX we are in my office haha

Default avatar.png MaciejF: I wanted to try to use it as a seed for rng

dbdr: won't the top sector always be the closest to 50%?

KiwiTae: shes my friend

ZarthaxX: wat

ZarthaxX: LOL

ZarthaxX: i see

IananasMian: ; p

MJS: You could refine, considering the other sources you might have. If you are also about to launch a torpedo, you should not consider the cells affected by the torpedo when choosing your sonar sector

Default avatar.png sadek11: sadek11 has a secret

ZarthaxX: hey IananasMian

KiwiTae: learning python

MJS: Anyway, who cares. Nobody had both sonar and torpedo ready at the same time

IananasMian: umm? ZarthaxX

AntiSquid: lol lame KiwiTae, i thought you jumped in at random girl you don't know, was about to applaud for not holding back but nevermind

KiwiTae: :joy:

dbdr: no true, in some situations everything was chaged at once

dbdr: *charged

MJS: I am still in silver. No MCTS around: people just fire what they have :)

MSmits: hi MJS

MJS: Hi MSmis :)

MSmits: so apparently you did not post anything on the forum for a year

dbdr: everybody is talking about that :D

AntiSquid: people throw their sub at the enemy sub trying to win eh?

Default avatar.png sadek11: antisquid

Default avatar.png sadek11: where you are from

AntiSquid: sadek11 and his 10 brothers

Default avatar.png sadek11: hehehehhe

MJS: No, sorry. Most of the contests were during holidays. I had to code on a smartphone, cheating with the screen resolution. I forgot to give feedback. Every time. *sigh*

AntiSquid: i live in a bitter cloudy part of the world with a bit of sunshine these days but can't go outside sadek11

MJS: Scottland?

MJS: lol

Astrobytes: No that's me

MJS: lol

Default avatar.png sadek11: nice place though

AntiSquid: idk, what would scotts call it?

AntiSquid: sadek no clash invites, not playing that @_@

Default avatar.png sadek11: hahhah okayy

MJS: By the way, my children enjoyed our trip to Scotland. They can even pronounce 'Edingburgh'

AntiSquid: visited grey friar's graveyard?

Astrobytes: Without that extra 'g' I hope? ;) It's a nice place, well, in parts :P

MJS: e-din-bor-ou

AntiSquid: did you hear scotts moan about english a lot ? if not then you probably went to a different part of the world

Astrobytes: e-din-buh-ruh if you're Scots!

MJS: And just don't say 'lok' for 'loch' in front of the youngest.

Astrobytes: :D

Astrobytes: Awesome

Astrobytes: AntiSquid we don't moan about the English. Not all the time.

AntiSquid: i heard a lot of fun jokes :D

MJS: They also had their first Halloween party, in Inverness

Astrobytes: Inverness?! Wow, you went for the loch or do you know people up there?

MJS: Just wanted to see Scotland. I am from Britany. Scotts are regarded as the most prestigious celtic people. I wanted to meet them

MJS: So we landed at Newcastle, the Glasgow, Skye, Harry Potter's train (*joke*), Inverness, Edinburgh, and back

Astrobytes: lol, yes, my ex was also from Bretagne, I'm familiar ;) Ah that's great, my favourite part of Scotland is the Hebrides (Skye , Lewis etc), it's beautiful

MJS: Lol. Sorry for the ex-part of it. Next time, we want to push to Orkney, too

AntiSquid: never been to loch ness :/

Astrobytes: Don't be sorry, I'm not lol Yeah, I'd like to get up there and the rest of the North coast too sometime

KiwiTae: hey guys, is it possible to map input to arraylist in few characters in kotlin?

AntiSquid: YannT

MJS: Very nice Loch ness

Astrobytes: Also MJS, Glencoe and the surrounding area is a great place to visit

MJS: Visit the Picts fortresses

YannT: KiwiTae: yeah

MJS: We had a quick eye in Glencoe

KiwiTae: YannT any tip? or just yea heheh

MJS: lol

MJS: http : // kotlin.org / manual ;)

YannT: val inputs = (0..7).map { input.nextInt() }

YannT: for example

IananasMian: hahaha

KiwiTae: :joy::kissing_heart:thank you

Astrobytes: If you like camping there's a great campsite called the Red Squirrel in Glencoe, I highly recommend it

YannT: with

YannT: val input = java.util.Scanner(System.`in`)

MJS: Erf. Camping, with three children, means "trailer park"

YannT: you can also do stuff like this for parsing input strings:

Astrobytes: Yeah they have a section for trailers and vans too, separate from the tents

MJS: I could give it a try

YannT: repeat(3) { _ -> input.nextLine() }

YannT: input.nextLine().forEach{ c -> ... } do do stuff with each char of an input string (like for readiing a liine of the map typically)

eulerscheZahl: input() for i in range(3)

eulerscheZahl: ... for x in input().split()

eulerscheZahl: ignore the split() if you want to go by chars

YannT: I like functiionnal better but it's really a matter of taste :)

eulerscheZahl: just providing some python alternatives

dbdr: that's functional too

YannT: I'd say for loops are more iterative typically

MJS: [Jedi voice] You don't need an array list...

dbdr: it's not a for loop

dbdr: for ( ... x++ ) is imperative indeed

dbdr: for x in iterable is just a different syntax for a foreach

YannT: don't know python so II'm sure you're right :)

dbdr: don't know much either :)

dbdr: you can argue foreach is imperative too

dbdr: it has side effects

dbdr: you just don't manipulate the index

MJS: expr(i) for i in collection is the 'map' syntax in Python. The collection is unchanged

YannT: depends, not in kotlin it will yell at you if you try to mutate the iterable from within the foreach

dbdr: what you put inside the foreach in kotlin will have side effects

dbdr: otherwise it's useless

YannT: oh, in that sense then yes :)

dbdr: but it's higher level indeed, which is a good idea

dbdr: anyways, it's hard to read the input without side effects ;)

KiwiTae: im newbi to kotlin ~

YannT: it's basically better Java, stick with it it's a joy to use :)

dbdr: YannT is our Kotlin guru :)

KiwiTae: awesom

MJS: lol. I thought that Scala was better Java? (</troll>)

eulerscheZahl: i used the intelliJ java->kotlin converter when i participated in a kotlin-only coding contest to promote the language :flushed:

KiwiTae: haha

KiwiTae: shame

YannT: never used Scala, but my understanding is it's really a different focus

YannT: Kotlin was made by devs, for devs, so there's plenty of syntaxic sugar and convenience features

MJS: Scala is powerful because of many ways to call code implicitly. It means that team mates will not be able to read your code...

MJS: Plus, Scala lacks tail call optimization

eulerscheZahl: and VBA was made by microsoft for inexperienced users

eulerscheZahl: a horrible language

MJS: I would favor Kotlin over Scala

YannT: the best way to explain the point of kotlin is:

YannT: data class Person(val name: String, val age: Int)

YannT: I just defined a class with getters, equals, hashCode, copy

YannT: data class Person(var name: String, var age: Int)

YannT: now my class is mutable and has setters

MJS: Scala has the same ;)

YannT: you'll never go back to Java after you get used to stuff like this :D

MJS: https://fsharpforfunandprofit.com/posts/monadster/

eulerscheZahl: the get-set thing about java is annoying, agreed

eulerscheZahl: c# has simple getters/setters at least

MJS: It is in F#, but it is the link I use to bring people into functional programming

aCat: I want to never back to java after coding in anything different ;p

YannT: kotlin is full of small convenient things like

MJS: I converted a whole Java team to functional programming in Java. Got bullets from the so-called experts :)

YannT: fun Int.valid() = x(this) in 0..(SIZE - 1) && ...

MJS: Does it add Valid to all ints ?

YannT: no return for methods with a single expression, replace by = instead of a block

YannT: *and* it defined that method on the int yeah

YannT: so you can do like

YannT: 10.valid()

MJS: Great, indeed. Safer than full generics, and neat syntax. I love it

YannT: ( x(this) is part of my OOC code ahah)

YannT: 0..6 also is a way to say between those

MJS: I'll paste it in my F# code and see if I go to Gold ;)

YannT: instead of writiing two conditions

YannT: my OOC for testing if a position (x and y but as an int) is:

YannT: private fun Int.valid() =

       x(this) in 0..(SIZE - 1) && y(this) in 0..(SIZE - 1)

YannT: and then I can run the validity check on any int (makes sense only if it's a position Int I guess, but hey)

dbdr: actually being able to define new types implemented by a primitive type is quite nice to detect bugs

dbdr: not all ints mean positions...

YannT: I mean there's no performance of whatever upside to thiis other over just writing the entire test proper, but it's just convenient and nice and why I like this language :)

eulerscheZahl: \o/ https://www.topcoder.com/challenges/30122730?tab=submissions

YannT: well yeah you'd probably like to do:

YannT: typealias Position = Int

dbdr: does that make Position incompatible with int?

MJS: I actually creates a list of water Points and use them almost like an enum

YannT: no, but it makes Int incompatible with Position

dbdr: e.g. Position / int does not make sense

YannT: I'd have to try tbh but I think Position / int would work

dbdr: ah, so Position / int gives you an int?

dbdr: but not a position

YannT: but say a method expects a Position and you give it an int, it won't work

dbdr: right

YannT: I think it considers it a kind of subclass basically

YannT: Positiion extends Int

dbdr: yeah

dbdr: that'll catch most of the bugs

YannT: another big thing in kotlin that's also REALLY nice is nullability checks built in

YannT: Int is not nullable, Int? is nullable, and it's two different types

YannT: (plus iin that particular case, it'll use a primitive for non_nullable int, and Integer for the nullable one)

YannT: somenullable?.map { ... } will only do anything if somenullable is not null (and if you don't put the questiion mark it won't compile saying you hjave a nullability issue to handle)

MJS: That's valuable, indeed

MJS: NullPointerException is the object I have instanciated most often in Java (or is it String?)

MJS: (class, not object...)

dbdr: the billion dollar mistake

MJS: lol

MJS: Still cheaper than Trump, but worth using Kotlin

Nerchio: Kotlin sounds decent :p

AntiSquid: /ban

AntiSquid: >:(

MJS: lol

DivadCurca: chop chop

Nerchio: muda muda muda muda

DivadCurca: haha funny jojo

Quidome: Nice, I squash everyone except the boss in tulips

Quidome: more work to do :)

AntiSquid: flower power !

Quidome: :laughing:

dbdr: nice Quidome!

Astrobytes: hardcoded lol

dbdr: looking forward to a second rusty bot in top league :)

dbdr: yes? I guess you can definitely go some way with simple patterns

Astrobytes: For sure!

Quidome: Only some defences to build in

Quidome: I think to make it to wood 1

Quidome: puzzling on how to do that

dbdr: 196k gold is sure nice :D

Quidome: :punch:

Astrobytes: You got the idea from Illeda n's boss-testing bot right? :D

dbdr: Quidome are you minimizing the amount of rocks in your target area?

Quidome: Yeah, didn't want to go there, gave it a second thought

Quidome: Indeed i do

Quidome: minimize the amount of rocks

Quidome: and only considering the centre part for the star pattern

Quidome: Just fooling around. This will NOT get me into a high position

dbdr: https://www.codingame.com/share-replay/454784207

dbdr: you lose because you try to put a flower on top of your own

dbdr: and don't have the gold

dbdr: not that it ever makes sense ;)

eulerscheZahl: smart

Illedan: :flower:

Illedan: :(

eulerscheZahl: :sunflower:

Quidome: yeah, simple rules fail

dbdr: :tulip:

eulerscheZahl: :rose:

Astrobytes: :wilted_rose:

struct: :sunflower:

Illedan: Point take

Illedan: n

wlesavo: :blossom:

Illedan: :P

Quidome: :blush:

MSmits: Illedan your floral knowledge is lacking

jacek: :wilted_rose:

dbdr: 🌼

Illedan: I'll go back to writing my TaD bot :P

Quidome: TsD?

Quidome: TaD?

eulerscheZahl: :white_flower:

dbdr: Illedan a TaD bot

Astrobytes: Tulips and Daisies

Illedan: Tulips and Daisies = TaD=

Illedan: ?

Quidome: aha :P

MSmits: hey Illedan

jacek: new craze?

dbdr: you sound as if you have one ;)

Illedan: hey smitty

MSmits: :cherry_blossom:

eulerscheZahl: 🍀

dbdr: yay, we can prince boards in unicode I guess :D

dbdr: print

dbdr: prince is my avatar :D

MSmits: sure is

eulerscheZahl: but you have to toad it yourself

dbdr: toad is a verb?

dbdr: ah

eulerscheZahl: code

dbdr: got it :D

Astrobytes: lol, well played

dbdr: yes clever

dbdr: who else have we got?

dbdr: well, one it too easy

dbdr: toad it in recursive style

wlesavo: you have to cat it early though

jacek: toad - a tailless amphibian with a short stout body and short legs, typically having dry warty skin that can exude poison

dbdr: I was waiting for the switch to context

dbdr: wlesavo :+1"

dbdr: wlesavo :+1:

eulerscheZahl: there is a +1 emoji :o

eulerscheZahl: i was always typing thumbsup

Astrobytes: TIL

Illedan: :+1:

eulerscheZahl: :thumbsup:

dbdr: my fail was useful after all

eulerscheZahl: so many wasted letters

Illedan: :clap:

Astrobytes: :tada:

Illedan: Yeah, using them on any multi would bring you first :o

dbdr: :+1_thumbs_up:

Illedan: :-1:

Astrobytes: :ok_hand:

Illedan: -1 works too

Illedan: :D

eulerscheZahl: no multi right now, busy with topcoder

eulerscheZahl: toptoader i mean

jacek: :toad:

dbdr: :+2:

MSmits: :frog:

Astrobytes: :x1:

jacek: :caturday:

Astrobytes: :help:

dbdr: :0/0:

MSmits: :sos:

eulerscheZahl: the the manual Astrobytes

Astrobytes: The the manual?

dbdr: yes yes

eulerscheZahl: read the

MSmits: it explains how to use "the"

dbdr: rtfm

dbdr: more saved letters for you eulerscheZahl

Astrobytes: Read the the manual? :P

Astrobytes: :rtfm:

Astrobytes: Aw maaan

Astrobytes: we should have that one

dbdr: rtfm stands for Rtfm The Fine ManuaL

Astrobytes: Recursive acronyms ftw

dbdr: yay. TLAs are cool too

MSmits: what's a TLA

dbdr: a Three Letter Acronym

MSmits: o

Astrobytes: GNU

Astrobytes: Best of both worlds

dbdr: indeed

eulerscheZahl: wine XNA

Astrobytes: Donno what XNA actually stands for

Astrobytes: Xtremely Noobish Architecture?

dbdr: what about TLTs, the Three Letter TLAs?

dbdr: all TLAs are TLTs

jacek: MLP!

eulerscheZahl: the microsoft XNA gamestudio XNA = XNA is not an acronym or something like that

Astrobytes: nice dbdr :+1:

dbdr: and all TLTs are TLAs

Astrobytes: Yeah I know what XNA is, just wondered if it was an acronym

dbdr: so TLT == TLA

Astrobytes: lol

dbdr: divide by TL

dbdr: T == A

Astrobytes: Some proof

Default avatar.png JBM: kamoulox

Default avatar.png JBM: wait, that doesn't translate well

eulerscheZahl: Microsoft XNA (a recursive acronym for XNA's not acronymed) ...

Astrobytes: Oh nice

Astrobytes: I'll keep making things up for it still though, Xanders Nice Almonds or something

icecream17: ugh. my get angle function isn't wortking. Got 959 degrees...

struct: csb?

icecream17: yeah

eulerscheZahl: some radians problem?

icecream17: I can't tell. If I don't multiply somehow the angle becomes -357...

struct: How does your function looks like?

icecream17: dx = (nextCP.x - pod.x) / dist

icecream17: a = Math.acos(dx) // * 180.0 * Math.PI

icecream17: (dy is dx but with .y instead)

icecream17: and then.... wait i'm gonna test something

dbdr: :duck:

icecream17: Yay! It works...? Oh. NaN just became auto 100.

struct: What is this language?

struct: // *

icecream17: js

struct: What is this

icecream17: comment

struct: btw is acos(dx) * 180 / PI

icecream17: facepalm

struct: Are you using any guide?

icecream17: no. but used the one liner trick to get to gold. but now the inputs are all different... luckily my code was just some ifs.

Astrobytes: The downside of -3 vel

icecream17: My silver submit crashes on first turn. But is somehow 3,447th. So I think my submit is good for now

struct: Did you reset the code?

struct: It crashes and its 3400th?

struct: How many bots crasing on Gold?

Astrobytes: Probably all the other crashed bots

struct: 5203 on gold

struct: 821 on legend

struct: Less people on wood 3 than on legend

struct: 80 on wood 3

struct: Im gonna try finish Yinsh, I think I still have it somewhere on my PC

struct: at least I hope

Astrobytes: Someone has the contribution link maybe? (assuming the source was downloadable)

eulerscheZahl: https://github.com/MultiStruct/Yinsh

eulerscheZahl: someone committed the .idea folder

Astrobytes: lol, proof.txt > "I'm Tobou"

struct: That one is outdated

eulerscheZahl: i asked him to prove his identity :D

Astrobytes: hahaha

eulerscheZahl: struct deleted, tobou claiming it's him

Astrobytes: Yeah, I wasn't around at the time

Astrobytes: Did you delete Nulte or whatever it's called too struct?

struct: I dont even remember the names

Astrobytes: Crisis of identity :P

Zenoscave: Tobou you gonna delete your profile too?

jacek: why the Y game has no creator?

Zenoscave: You mean Yavalath?

Astrobytes: Tobou is struc t, struc t made Yavalath, struc t deleted after UTG fail, reactivated Tobou, changed nick to struc t.

MSmits: mmh I am starting to doubt this "PASS" move ever happens eulerscheZahl

MSmits: gonna do a CG bench test where my bot breaks out of the game if it happens during a sim, that should be billions of simulation steps

eulerscheZahl: i can live without it

MSmits: http://chat.codingame.com/pastebin/624d596d-acb8-4814-a8ab-011f125985ac

jacek: yes, i have segfaults when i try mcts

jacek: though like 1 in 1000 games

jacek: because i dont take the pass possibility into account at all

MSmits: hmm so it does happen?

MSmits: or maybe you have a different type of segfault

eulerscheZahl: rare in the sim with a certain depth means almost impossible in actual gameplay

jacek: nah, in simulation step i try to % n, where n is 0, where n is number of possible moves

MSmits: hm ok

jacek: this happen very very rarely indeed

MSmits: jacek can you even setup a board where this happens?

MSmits: I doubt it is possible

jacek: hmm

MSmits: you would have to have two cards that only have moves in 1 x direction and in 1 y direction

MSmits: because one assumes the only way to do this is to have just a master and just have it in the corner

MSmits: if that doesnt block movement, then nothing will

eulerscheZahl: or own units blocking the movements

MSmits: those units can then move

MSmits: so that actually makes it easier

eulerscheZahl: wait for the counterexample to prove you wrong

MSmits: i am trying to guide you guys into providing me one :)

MSmits: so far 12 games, no timeout

Astrobytes: Very subtle.

MSmits: i check every node expansion

MSmits: so thats many millions already

jacek: still not enough apparently

MSmits: restarted it at 20 games. I want it to print the board when it happens, so I immediately have an example

jacek: such dedication

MSmits: well if i can discount the possibility, I simplify my code

jacek: 900 games so far, not example encountered

MSmits: well if you get a segfault, how would you know it is due to this issue? Do you print the board when it happens?

eulerscheZahl: then we are coming closer to the 1000th match you mentioned

eulerscheZahl: i know that that's not how statistics work :P

jacek: yes, i hope to print the board before the segfault happens

MSmits: ah ok

MSmits: are you doing this brutaltester-style?

MSmits: locally?

jacek: brutaltester?

jacek: im doint it with my own code

MSmits: i meant are you relying on the server to process it

jacek: http://chat.codingame.com/pastebin/91eb8c87-36c3-4526-adcd-035205412d97

MSmits: for black?

jacek: the ids of one's cards, two's cards, current player and board

Nerchio:

Nerchio: i advanced like 100 000 places after ooc xdd

MSmits: so card 15 and 17

MSmits: 15 and 7

jacek: and bB is second player

MSmits: hmm right, 7 is a card that can do that

MSmits: lemme check 15

MSmits: yeah

MSmits: good example

MSmits: problem solved

jacek: it took 1299 of self-play games, 50ms each side

MSmits: it's possible it never occurs for me, if my eval discourages it

MSmits: it's funny how this happens when the opponent is all lined up on the side.

MSmits: I guess it can't happen on the start

jacek: this is what you get for near fully random games

MSmits: there are no cards that only go left and right are there?

MSmits: or left/right

MSmits: back

eulerscheZahl: mystery solved. and there are a lot of units blocking each other

MSmits: yeah I discounted this possibility because I imagined the starting line, if it was a possibility, then it would crash on start

MSmits: but the cards are different for y and x

MSmits: probably allow more y movement forward

MSmits: but we still don't know if your referee code works eulerscheZahl :P

jacek: lets crash him

eulerscheZahl: in theory the referee can handle it

eulerscheZahl: but i never tested it

eulerscheZahl: so it will most likely crash

jacek: blame the approvers

Default avatar.png dp_legend: hi

eulerscheZahl: of course, whom else should i blame? me? that's ridiculous

dbdr: it's like the Glykolwein-Skandal

eulerscheZahl: don't make me google for weird things when i want to go to bed

dbdr: the wine makers who put a deadly chemical in their wine. when found out, they blamed the consumers who bought it without being more careful

dbdr: https://www.youtube.com/watch?v=qhN-o2ame-4

dbdr: Down the Rabbit Hole

dbdr: a great channel for interesting weird stories

dbdr: 34 minutes, just the right length before bed time for you :)

eulerscheZahl: no, wikipedia must do the job here

dbdr: but the story-telling... :)

eulerscheZahl: then i'll save it for tomorrow

Quidome: dbdr what IDE are you using with rust?

dbdr: nvim

dbdr: you?

Quidome: hm, never heard of that one

Quidome: Intellij

Quidome: dou you have a debugger?

dbdr: neovim

Quidome: works well?

Quidome: I am working without ....

Astrobytes: Didn't know about that one dbdr, Germans mixing their wines with the [poisonous] Austrian ones eh, scandalous indeed

dbdr: it's not really an IDE, it's a text editor, you can configure it in complicated and powerful ways

dbdr: I almost never used or needed a debugger, but I should investigate that when I do

dbdr: IntelliJ is surely easiere to get started with

dbdr: I think VS Code is the most popular editor for Rust, vi second

Quidome: yes, i am used to that, but would like to have a debugger, was looking for some experience :)

dbdr: IntelliJ 3rd close after vim

dbdr: no debugger in IntelliJ?

Quidome: CLion has it, but that is paid only

Astrobytes: Rust has no official debugger?

MSmits: Rust has no bugs

dbdr: ^

dbdr: :D

Quidome: Don't want to go configuring difficult things but I think i have to :(

struct: https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb

dbdr: try VSCode maybe?

Quidome: Well indeed that's what i like about Rust, less bugs

Quidome: After you got it compiled, amd that can be very hard sometimes

dbdr: if I have an issue, I try to come up with a unit test that demonstrates it

dbdr: good thing is you can keep the test afterwards :)

Quidome: Nice way of working of course

MSmits: I don't really use advanced features of visual studio when I code

dbdr: and testing is supported out of the box, no need to extra tooling

Quidome: Have to look into that as well

MSmits: usually my debugging is print functions and cerr statements

Quidome: oh, great

Quidome: yes that's what i do at the moment

Quidome: but sometimes it's nice to have a debugger

dbdr: #[test] fn test_that_xxx() {

   assert!(stuff_works)

}

MSmits: never used assert before

Quidome: How does it run

dbdr: cargo test

dbdr: will run all the tests

Astrobytes: clean

dbdr: cargo test foo

Quidome: aha, at the moment i never use cargo directly

dbdr: runs all the tests whose name contain foo

Quidome: sounds good

dbdr: you call rustc by hand?

Astrobytes: Very straightforward

Quidome: no through intellij

dbdr: cargo is super useful as soon as you have any dependency

dbdr: ah ok

Quidome: well, 2 weeks into Rust and i am impressed

dbdr: surely there's a way to call tests from IntelliJ too

Quidome: Still a lot to learn though

dbdr: if you don't get scared in the beginning and start to like it, it will only get better

Quidome: Got this borrowing/moving stuff sorted out, sort of

Quidome: Totally confused by lifetimes BTW

Astrobytes: My friend keeps urging me to get into it but... I keep putting it off

dbdr: you can go very far without needing lifetimes

dbdr: don't store references, that's all :)

Quidome: Yes, but still, want to understand it, but not today :)

dbdr: I just watched a video about it

Quidome: If you have a graph with self referntial nodes you have that problem right?

dbdr: yes

Quidome: haven't found a good place to learn about it

dbdr: ask MSmits :)

Quidome: really

Quidome: is he into Rust

Quidome: ??

dbdr: even in C++ where you can use references willy-nilly, what they end up using for storing the MCTS tree

dbdr: is one huge array with indices as "pointers"

dbdr: that's the most efficient

Quidome: Question, did you di bender 4?

dbdr: is that the optim one?

struct: nodes = new Node[MAX_NODES];

Quidome: yes

struct: Its euler one

dbdr: well yes

Quidome: I know and nice

Quidome: I am at 83% and having performance issue

MSmits: ack... does Rust force you to initialize all variables before use?

Quidome: Asking myself what do i do wrong with Rust?

MSmits: can I have 30 million nodes in an object pool at turn 1 with Rust?

dbdr: probably it's the algorithm, Quidome

Quidome: ¯\_(ツ)_/¯

dbdr: MSmits: you need to tell the compiler you know what you are doing, since it can be unsafe, but yes you can do it :)

MSmits: ah ok good :)

Quidome: I have roughly 100.000 states stored in a hashmap and need twice as much

dbdr: that's the general design of the language: good safe practices should be easy

dbdr: anything should be possible, but if it's dangerous it will be verbose to make sure you really want it

dbdr: e.g. immutable by default, say mut if you really need it

Nerchio: i was using all public fields in ooc to cut down on number of characters

Nerchio: good practices

Nerchio: xD

Quidome: Should I use the hashmap is my first question?

Quidome: or is there a different approach?

dbdr: it's been some time, but yes I think I hash to detect identical states

Quidome: Ok, good plain vanilla BFS

Quidome: ??

MSmits: you dont need hashmap for BFS

MSmits: hashset will be better

Quidome: In this case you do

MSmits: but if it is a small map, you're better off with a bitboard

Quidome: The map can change

MSmits: oh

MSmits: that's complicated

MSmits: which game is this?

Quidome: bender 4

MSmits: ahh yeah

Quidome: it's fun :)

MSmits: no doubt

MSmits: euler made it

Quidome: really nice to see your agent walking the right way pushing the right buttons

Astrobytes: ARe Rust lifetimes something to do with reference counting?

Quidome: ¯\_(ツ)_/¯

dbdr: Quidome: I think I don't store the full state in the hashmap, only a hash of it :)

dbdr: indeed memory can be an issue

Quidome: Yes, and there i wanted to use the reference in a struct

dbdr: the other thing is, you don't have to solve the levels online

Quidome: didn't get it working :(


dbdr: you can solve them locally

Quidome: The after submit levels are also available?

dbdr: yes

Quidome: great :)

dbdr: that does not change a lot, but it means you don't need to care if it takes 1s or 10s

dbdr: should be in the github

Quidome: yes, i got all the testlevels already and not at 100%, so that was my firs aim.

Quidome: But good to know, thnxs

dbdr: Astrobytes: not ref counting. a lifetime is how long a reference lives. e.g. static data lives forever, data on the stack only leaves until the end of the function

dbdr: essentially this is what allows Rust to be a memory safe language without need a garbage collector

Quidome: unless you move it out to another function that is

dbdr: yes

Quidome: and that's the strange part

Quidome: but also cool

dbdr: you can also use refcounting if you really want to, for specific data

Astrobytes: Alright I get that. Stops you doing random bugs too a la C++ references

dbdr: exactly. no segfault, and no GC. that's pretty sweet in my book

Quidome: yes, once you got it compiled you are almost there most of the time

dbdr: yes :D

Quidome: I really like that a lot

Quidome: But get it compiled can be a pain in the ass

Astrobytes: It's an interesting language. I really should get my finger out my ass and get into it.

dbdr: did you follow the rust book?

Astrobytes: I imagine it teaches you a lot Quidome

Quidome: Yes it does

Astrobytes: The Rust Book is still the way to go right?

dbdr: the thing is, because it's such a different concept. it's not ideal to just pick up basic syntax and try to code as you did in the past

dbdr: you will end up designing in ways that seems very complicated

Quidome: I read parts of the book, as i said just 2 weeks into it now. Have to start over again with my current knowledge

dbdr: while there is a simpler way

Astrobytes: That's why I've been learning about it first

Astrobytes: Diving right in didn't work :D

Quidome: Build a TaD bot with it :D

Quidome: 2nd place in wood 2

Astrobytes: I'll stick with C++ for that for now lol

dbdr: you pushed Illedan down, nice :D

Quidome: Yes and i pushed the BOss way up

Astrobytes: But yeah, I use CG for learning /practicing any new language

Quidome: I am a little bit stuck at this level, need a new approach

Astrobytes: I was gonna say Quidome, stop pushing the f'ing boss so much :D

Astrobytes: You know it does a 2 or 3 ply minimax?

Quidome: ¯\_(ツ)_/¯

Quidome: yeah, need a very good eval for that

Astrobytes: Or 1-2 ply, can't remember

dbdr: I don't think the boss is that strong (3 ply)

Quidome: i think 2-3 is doable with move sorting

Astrobytes: I think it's 1 or 2, ask Illedan, it's all his fault

dbdr: move sorting to increase the cuts?

Quidome: yep

Quidome: still you need a good eval and can't settle on what to do

dbdr: I haven't used any more eval than gold[0] - gold[1] :)

dbdr: but probably will eventually

Quidome: Oh, really and your at place 3 with that?

Quidome: Amazing...

dbdr: I'm still experimenting at this point

dbdr: I think only top 2 have decent bots

Astrobytes: You minimax dbdr?

aCat: hmm, what game?

dbdr: game is pretty young

dbdr: yes

Quidome: 2-ply with only gold eval, that's easy

aCat: pegs?

Astrobytes: I was thinking of some kind of MCTS for fun

Quidome: Tulips and Daisies

aCat: ouh, I idn't read the rules even

dbdr: EricSMSO said he had trouble with MCTS

Quidome: OK, the top 2 does minimax with more eval then?

Astrobytes: oh really? What was the issue?

dbdr: he would know better

Astrobytes: If tric trac is at the top Quidome then you know there's some kind of minimax variant that can be done :)

dbdr: trictrac only had a heuristic yesterday, but maybe he has a minimax now

Quidome: Is it his speciality?

Astrobytes: Only a heuristic?! Damn, god help us all when he gets his alphabeta out

Astrobytes: Yeah Quidome, he's really damn good with it

Quidome: with a good heuristic he will also manage to have a good eval

Astrobytes: ^

dbdr: as I said, maybe he has now

dbdr: he was below EricSMSO yesterday

Quidome: He is firmly in first position at the moment

Astrobytes: That's what makes me suspect he has it now. Could be wrong

jacek: well tric trac is always present at classic board games

Astrobytes: He really is a master of the minimax

Quidome: good to know :)

Astrobytes: With a name like tric trac you'd expect he'd be good at the board games eh

Quidome: I think i am gonna redo my bot that way

Quidome: just fooling around at the moment to understand the game

Astrobytes: Same. Plus I'm on painkillers for my back so not committing to any final code until I've reviewed it properly :P

Quidome: Does it hurt?

Quidome: sounds bad...

Astrobytes: Reviewing my code or my back?

Astrobytes: :D

Astrobytes: Both actually!

Quidome: :grin:

Astrobytes: Slipped a disc (herniated disc), bad lower back pain

Quidome: hm, not good

Quidome: Is tritrac on the chat ?

Astrobytes: No, it's pretty crap. But hey, could be worse

Astrobytes: Not right now, but when he's online he responds to pings

Quidome: How do you ping?

Astrobytes: Just by typing the username

Quidome: like this Astrobytes

Astrobytes: Yep! That's why we try not to ping people accidentally by separating letters, e.g, tric trac or Astrobyte s

Quidome: :)

MSmits: or Asstrobytes

Quidome: :joy:

Astrobytes: Shuddup Aladdin

MSmits: :P

Astrobytes: :D

MSmits: speeechleessss

Quidome: ok, i quit, tommorow another day

Quidome: see you guys

MSmits: sure

Astrobytes: Later Quidome

EricSMSO: Hey dbdr, my MCTS search was very weak. But I think it MY implementation that is bad.

Astrobytes: How so EricSMSO?

EricSMSO: Too slow, rollout limited to depth 8, but not enough samples to give something valuable

Astrobytes: Oh OK, so still worth exploring then

EricSMSO: Also avaluated all possible moves, but now in minmax, I try less moves

Astrobytes: Heavy rollouts better perhaps?

dbdr: ah, you are pruning now EricSMSO? or you just mean the cuts?

EricSMSO: Sorry I don't get what "heavy rollouts" are

dbdr: light rollout is pure random

Astrobytes: Rollouts with domain-specific knowledge, so guided by heuristics

dbdr: heavy would be favoring better moves, or avoiding bad ones

EricSMSO: @dbdr yes 1 I cut now, yes 2 heuristic rollout should do bettre

dbdr: for me cut means what alpha beta does, just gain speed without changing result. pruning means heuristic to not consider every possible moves, might miss a good one in theory

dbdr: just to clarify the terms

AntiSquid: everyone at 0% for 11-puzzle? wtf?

AntiSquid: was about to ask for advice nvm then

ZarthaxX: just copypaste the solution

AntiSquid: lol

struct: :rofl:

AntiSquid: you still at 0% ZarthaxX

struct: Still doesnt know how to c&p

AntiSquid: trying to figure shit out though

dbdr: I see plenty of ppl at 100%

Astrobytes: Pretty sure lots of people solved that, lb bug?

struct: me too

AntiSquid: something to do with finding correct cycles

dbdr: well, 7 ppl

Astrobytes: Only 7?

struct: This puzzle?

struct: https://www.codingame.com/training/hard/11-puzzle/solution

dbdr: from the ppl I follow

AntiSquid: yes

dbdr: there is no leaderboard for puzzles is there?

AntiSquid: no

Astrobytes: Ah ok yeah, thought it was an optim, hence the lb

AntiSquid: ah wait, if you click solutions it shows who solved it

Astrobytes: my bad

EricSMSO: dbdr how is it I can't play agains you in Tulips ? Is it because of Rust ?

struct: not who solved it

Astrobytes: Yes

struct: but who shared the solution

AntiSquid: ok that

AntiSquid: w/e

dbdr: EricSMSO timeout?

EricSMSO: yes

Astrobytes: It's the debug vs release mode thing

dbdr: yes. I could send a compiled version, especially in a multi

AntiSquid: problem is i can solve it, but the max move count is 50

dbdr: my bot is still weak anyways, so don't worry about me yet ;)

struct: There are some resources online explaining it anti

AntiSquid: time to train online on sliding puzzles i guess

AntiSquid: ya i've read some stuff, but you need to minimize turn count Q_Q

Astrobytes: A*?

YannT: I'm not sure what A* actually has got to do wiith that one...

Astrobytes: I've not done the puzzle, or looked at it (to be clear)

Astrobytes: Just seen some sliding puzzles done with A* before :D

YannT: I just looked at it and the hints say A*/Pathfinding

struct: I think its used to calculate distance to target

dbdr: just formulate the problem as a graph search

YannT: is that that always what you do anywa :p

YannT: iisn't*

AntiSquid: i have it in cycles, so i rotate a bunch of numbers and i know it results in "that many" moves

MSmits: when you solve this puzzle, make sure you hash visited states, then you should be fine

MSmits: also do it bfs style with a queue, not dfs... that could send you down a very deep hole

YannT: I can see the solution in my head (basically yeah, a graph search), just don't see how pathfinding factors into it

MSmits: well bfs could be considered pathfinding

MSmits: path in a graph

Astrobytes: Well, I think there are multiple solutions

dbdr: you know where you are, you know where you want to get

dbdr: find the path between the two

MSmits: you could indeed use A* with a heuristic that computes the difference between origin and goal state

YannT: hmm, and you consider distance to objective as what, the number of misplaced tiles?

AntiSquid: well it can if you do a row / column on the edge at a time to decrease the search space gradually ... basically you rotate a bunch of numbers in an area which means one of them gets to move somewhere

MSmits: you could even do the manhattan distance for the misplaced tiles

MSmits: not just the misplaced count

YannT: and since you'll need to "go back" to position some other tiles, you'd need A*

YannT: I guess I get it

AntiSquid: but my approach of one row / column at a time takes too many turns @_@

YannT: actually wait no

MSmits: A* can guarantee the shortest path, but only if you use a suitable heuristic

YannT: A* ouwldn't let you displace a properly placed tiles to make way for another in that case

MSmits: sure it would

YannT: not if you distance is correctness of puzzle

AntiSquid: if you A*, you A* for each individual number or what

MSmits: A* prefers moves that have a short distance, it does not disallow other moves

MSmits: otherwise you could not take a winding path in a maze either

YannT: I guess you're right

Astrobytes: is Manhattan fast enough for this one MSmits? Should be right?

YannT: I'm gonna try it it's interesting

Astrobytes: for h I mean

MSmits: well Astrobytes it's a loop over 12 numbers and for each you do the manhattan, takes some calculation, but complexity with other algorithms might be exponential so...

Astrobytes: Well I mean vs the hamming distance

MSmits: what was hamming again?

Astrobytes: The misplaced tiles

Astrobytes: in this case

MSmits: how is it different here, hamming and manhattan?

MSmits: ohh

MSmits: you count the number of tiles that are correct

MSmits: nah, that's not a good heuristic

MSmits: what if they are all incorrect

Astrobytes: Hamming is how many tiles are in the wrong place, manhattan is the distance/moves required

MSmits: how would they be guided to the right position?


MSmits: manhattan will do this

Astrobytes: yes

Astrobytes: I just rubberducked that

**MSmits is happy to be :duck:

Astrobytes: Might do this puzzle tomorrow, been a while since I did any

icecream17: EricSMSO! Your game has crashed!!!!

MSmits: oh noes!

icecream17: The game has crashed. Please contact the author and enclose the following error: http://chat.codingame.com/pastebin/95d0ec74-598d-4148-bdf6-cd093c1fa94b

Astrobytes: Call the police!

icecream17: https://www.codingame.com/share-replay/454847079

struct: 300 ms per turn

struct: damn

EricSMSO: I see. I allowed 300 ms per turn because I found it was necessary to have much time every turn. Usually games are very short but it seems it is not the case this time. This may happen when the two players are playing random and nobody wins. is this the case this time ? I cannot see anything in the replay, the screen is empty

struct: I think you should leave it as it is

icecream17: Final board configuartion: https://imgur.com/a/wadJ5GF

struct: a NN was needed to break the game

Astrobytes: screen empty on replay for me too

icecream17: my weights were all 0.5....

EricSMSO: Wow, it is really random. I prefer to prvilege thinking over random :sweat_smile:

icecream17: IDE code v arena code, its different

icecream17: I think my NN is much worse than the arena code....

EricSMSO: I would have loved to be able to give a global time amount to each player. Unfortunately this is not feasible at the present time, so I had to choose a time per turn

struct: I think that feature should be added tbh

Astrobytes: Add it to the wishlist

EricSMSO: +1

Astrobytes: :+1:

Nerchio: does anyone know if you can do something like this in lambda

Nerchio: im talking about java but maybe in other languages is similar

Nerchio: a -> a.production / fact.paths.get(a)

Nerchio: where fact is an object outside of lambda with a list of paths

Nerchio: it says null pointer exception but its not null not sure if you can do it

Astrobytes: I'm not a Java person but you may need to have fact as a parameter?

Astrobytes: So [guessing] like (a, fact) -> blahblah

Nerchio: hm you need interface for this in java

Nerchio: kind sucks

Nerchio: destroys the point of the lambda :D

MadKnight: Nerchio

MadKnight: if it says null pointer exception then your variable is null

Nerchio: its not i am testing it outside

Nerchio: of the lambda

Nerchio: but maybe lambda is angry that it could be null

Nerchio: and doesn't like it

MadKnight: does it compile ?

Nerchio: no

MadKnight: so it's a compile error ?

Nerchio: yeah

MadKnight: then show us the error

Nerchio: http://chat.codingame.com/pastebin/41be972f-e93d-446d-b51a-17f0f21cb420

MadKnight: this is a runtime error

MadKnight: it means your code compiled

Nerchio: ok :D

struct: MadKnight the java god

Nerchio: you're right

MadKnight: it's actually C# stuff

Nerchio: but that doesnt fix my problem :D

Astrobytes: JavaKnight

MadKnight: that does Nerchio

MadKnight: it means your lambda has access to this variable but this variable itself is null

MadKnight: u need to fix your variable Nerchio

Nerchio: oh i think i know what might be the problem then

Nerchio: yeah

Nerchio: thanks

Nerchio: :)

Astrobytes: Weirdo languages :P

Nerchio: so my list of distances from node to node doesn't have itself as a node

Nerchio: so if you try to find path to itself its null

Nerchio: i removed this possibility now and it doesnt error :)

Astrobytes: That would definitely do it

Astrobytes: MadSaviour

MadKnight: Astrodidn'thelp

Astrobytes: Hey MadKnight what you doing these days, don't see you much

Astrobytes: Astro'tried-but-gave-a-caveat

MadKnight: u couldn't tell that null reference exception means null reference runtime crash ?

Nerchio: hm i really just started programming for ocean of code so :p

Astrobytes: NullPointerException

Astrobytes: Anyway, my painkillers are clouding my brain, I don't trust any code I write now.

Astrobytes: Time for a movie

Astrobytes: gn all

struct: gn

icecream17: Uh-oh. In my submit i'm on battle 80, but battle 67 is still going on!

icecream17: Oh. Nevermind, it just took 67 moves

icecream17: *65

bdudek: Just done upgrade of Arduino project... I hate it, but it is the best for quick and dirty actions.

Nerchio: msmits

MSmits: hi

MSmits: sup Nerchio

Nerchio: i rewrote my factory logic in ghost in a cell and found you on my list of victims

Nerchio: haha :P

Nerchio: your 2 year old bot i mean :D

MSmits: oh cool

MSmits: grats

Zenoscave: thanks for the wins Nerchio

Zenoscave: ;)

ZarthaxX: lol

Nerchio: zenoscave lame!

Zenoscave: but you're improving fast

Nerchio: thanks!

Nerchio: you are writing the bot as well or just submitting to make my life miserable

Nerchio: xD

Zenoscave: I submitted a few days ago

Zenoscave: And a few seconds ago

Nerchio: we will see how legend push will go

Nerchio: so far my games vs boss aren't going so well

icecream17: =O I won 10/10 in twixtPP

icecream17: Interestingly I always lose against top 2

Default avatar.png Im_A_Rookie: Hi

Default avatar.png Im_A_Rookie: Im new and i suck

Default avatar.png Im_A_Rookie: in coding

Default avatar.png Im_A_Rookie: lol

emigr2k1: i am sorry

MadKnight: hi rookie

KiwiTae: Im_A_Rookie its ok we all were rookie when we were 10y old

KiwiTae: MadKnight hows your UE4?

MadKnight: nice

MadKnight: KiwiTae have u tried it ?

KiwiTae: yea i upgraded my custom editor to 4.24.2 recently

MadKnight: in 4.25 they added modeling tools

MadKnight: are u making a game now KiwiTae ?

KiwiTae: oh u checkout the beta?

MadKnight: no i read news

KiwiTae: MadKnight yes we start streaming preorders comming soon

MadKnight: streaming preorders ?

KiwiTae: we do live stream of the game

MadKnight: of u playing game ?

MadKnight: or making it ?

KiwiTae: of people playing it

KiwiTae: https://store.steampowered.com/app/1080490/Georifters/

MadKnight: are u gonna play it too ?

KiwiTae: I play it everyday

KiwiTae: hehe

MadKnight: why don't u code instead ?

MadKnight: fix it

KiwiTae: >,<

KiwiTae: I code too

KiwiTae: learning kotlin atm

MadKnight: are u liking it ?

KiwiTae: im too newit to judge but seems quite fun so far

MadKnight: what are u gonna use it for ?

KiwiTae: prototyping apps

MadKnight: what apps

MadKnight: and why just prototyping

struct: KiwiTae game is still not available is it?

MadKnight: he preordered it