Chat:World/2020-04-25
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?
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
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
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:
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
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
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 ...)
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?
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
JBM: 4 players control the ghosts
MSmits: i see two pacmans in the pic
JBM: first to get him actually wins
AntiSquid: isn't the CG reverse engineering puzzle a reverse pacman of sorts?
AntiSquid: and we just had ooc
AntiSquid: don't want more hidden info games
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
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: 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
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
Uljahn: b-but clashes don't teach you anything useful
ApenJulius: (just started out) whats the difference betweeen max and imax?
Uljahn: letter i?
AntiSquid: need more context @_@
ApenJulius: jsut kinda dont know why its imax and max
AntiSquid: how you name your variables is your choice
Uljahn: ah, i guess it's max element vs the index of a max element
ApenJulius: things starting to make sense
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?
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
IAmNoob: or if you want to make that the sum of divizors to be in O(n*log(n))
Uljahn: like valuing cocs by memory or time asymptotic complexity?
Uljahn: ah, i get it
Uljahn: that's what multis are all about i guess
Uljahn: ai bot programming
Uljahn: you're given strict time limits and memory bounds
Uljahn: then you compete :)
IAmNoob: i would like to see something like this in a clash
wlesavo: just try regular puzzles
wlesavo: there are quite a few you cant brute force
IAmNoob: yeah but i sad about comunity
IAmNoob: how we could make some
Uljahn: just don't take clashes seriously, they are good for having some fun
Uljahn: cheap and quick dopamine shot :relieved:
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
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
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
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
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
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?
AntiSquid: sadek11 and his 10 brothers
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
AntiSquid: idk, what would scotts call it?
AntiSquid: sadek no clash invites, not playing that @_@
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
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
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
Im_A_Rookie: Im new and i suck
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