Chat:World/2020-06-15
LelouchVC2: @reCurse
LelouchVC2: Lets do clash :D
perseverent: can you reach legend in UTTT with minimax?
perseverent: I only heard of mcts bots there
perseverent: does minimax stand a chance?
AntiSquid: i see kaggle is more cultured than CG: https://www.kaggle.com/basu369victor/anime-with-stylegan/notebook
pb4: perseverent : yes
Key_Zhao: I start 2048 scores now :grimacing:
Dessert: Hello guy! I just start use this website. I just sstart learn coding.
LelouchVC2: Bot programming was fun since it was a big competition, but it's not really my thing :(
LelouchVC2: I'll check out code golf I guess
Astrobytes: Sure, not every category suits everyone :)
LelouchVC2: And not all black lives matter
LelouchVC2: Finally, someone who gets it
LelouchVC2: "Binary is good! But unary is much better!"
LelouchVC2: Said no one ever
Uljahn: 50 shades of unary, Automaton2000
Automaton2000: u will be able to reach legend in csb
LelouchVC2: If you use 0s and spaces in unary
LelouchVC2: Then it's basically binary
jacek: good for you
Kelaric: Start learning english kappa
struct: Hello
Astrobytes: Hi struct
struct: Othello already has more players than Yinsh :p
Astrobytes: lol yeah I saw that
struct: The rules are simple so I guess that is the main reason
Astrobytes: Probably, "simple to start, hard to master" right :P
LelouchVC2: Kinda like knowing when a woman is giving off the right signals or not
LelouchVC2: You dont wanna lean in and get slapped
proglath: salut
WINWINWIN: Hi proglath
daffie: what is the time contraint on the weekly
daffie: also I'm getting a strange error saying my code did not read all of the input, and it says this even for the default code provided for javascript
daffie: oh nvm that error I fixed
Hjax: i check on my pr2 bot, 151 straight games against siman
Hjax: holy submits batman
eulerscheZahl: congrats
struct: just get 100% win rate vs him
struct: than you will be 1st
eulerscheZahl: meanwhile i only have 30 matches in my history
jrke: hey i wanna ask that boardsize is always same
struct: yes
eulerscheZahl: board size on which game?
Astrobytes: On Othello? Yes
jrke: othello
struct: I saw him submiting on othello
jrke: :)
Hjax: i should write a postmortem i guess
Hjax: my bot is basically just munkres though
eulerscheZahl: that's fully optional
eulerscheZahl: not even some Kuhn in it?
Hjax: lol
Hjax: i probably could have ranked a bit higher if i had fixed an issue with my assignment
struct: Is the contest over'
Hjax: right now i assign 1 pod per target
struct: ?
Hjax: yeah its over
Hjax: but with 1 pod per target, the leftovers dont have anything useful to do
Hjax: i finished 7th on contest, 31st on multi, and 3rd on progression
Hjax: not too shabby
eulerscheZahl: contest ends in 2.5h
eulerscheZahl: but i know nothing about quantum computing, so i won't submit
eulerscheZahl: RIP random tshirt
Hjax: oh different contest?
eulerscheZahl: oh, which one were you talking about?
struct: pr2
eulerscheZahl: https://codeforces.com/blog/entry/77614
Hjax: yeah pr2 ended like 6 hours ago
jrke: i ended 19th unofficial rank
eulerscheZahl: the actual contest is next week. this is the practice round
jrke: On codeforces
struct: I didn't join pr2, I don't like hex grids
struct: :)
Astrobytes: :P
Hjax: are hex grids really any different from square grids?
Hjax: my bot doesnt even care what kind of grid its on, it would work fine on a square grid
Nerchio: i think they differ quite a bit you can't use a 2d array for it
struct: you cant?
Nerchio: i mean you can but you need transformations on it
Hjax: my silly python bot just used dictionaries to hold everything
Hjax: pr2 didnt seem very speed intensive, so python was fine
struct: I dont know how pr2 grid work though
struct: havent checked
struct: On yinsh I used 2d with transformation yeah
struct: on Yavalath I did a mess
Hjax: your initialization input was all of the tiles on the map and a list of their neighbors
Astrobytes: Just had adjacency list for PR2
Hjax: so i just stored that in a dict, easy lookups
Hjax: i still think its hilarious that python can just import munkres
Hjax: dont even have to implement it yourself
Nerchio: loool really :D
Nerchio: did you use it?
Hjax: yeah
Nerchio: nice!
Hjax: thats probably my bots only strength
eulerscheZahl: i had to copy from github when i needed it for code of ice and fire :(
eulerscheZahl: first try: too slow
eulerscheZahl: second try: lightning fast but giving incorrect results
Nerchio: you don't need to create a matrix for it or something?
eulerscheZahl: then i found a java code and ported it. that one did the job
Hjax: yeah my cost function is just distance - plat /distance
Hjax: i create a matrix of that cost for every pod with every target
Hjax: and throw it into scipy
Hjax: and boom, nice mappings
Nerchio: I need to try and implement this one day :D
Nerchio: atm I still don't get what you are mapping to what
eulerscheZahl: see https://forum.codingame.com/t/a-code-of-ice-fire-feedbacks-and-strategies/105722/18?u=eulerschezahl
eulerscheZahl: different game, same idea
eulerscheZahl: for PR2 i would create multiple imaginary nodes for each real node. reward dropping the more pods you move there
Hjax: @Nerchio i have a bunch of places i want to send pods to, and i want to send pods in the most efficient way possible
eulerscheZahl: as kuhn-munkres generates 1-1 matches
Hjax: munkres just calculates the most efficient mapping
Hjax: relatively quickly
Hjax: assuming you consider O(n^2) quick i guess
Jonathan_Skywalker: How to solve this in Python
Hjax: n^3*
Hjax: oh thats kind of clever eulerscheZahl, i want to try that now
Hjax: i didnt consider that
eulerscheZahl: i'm surprised, how did you handle it then?
Hjax: thats what i was saying earlier, i only send 1 pod per target
Nerchio: euler so just find X hexes, Y cells, calculate score/cost for them and thats it?
eulerscheZahl: oh
Nerchio: and make the matrix square
Hjax: my extra pods move towards the closest target to them
Hjax: which isnt great
eulerscheZahl: yeah, that's all you need Nerchio
Nerchio: that's... relatively simple ;p
eulerscheZahl: it is
eulerscheZahl: if you copy the actual algo and don't code it yourself
Nerchio: code of fire and ice is on my future to-do list :D
Nerchio: ice & fire xD
eulerscheZahl: that's where i copied it from
eulerscheZahl: comment in my code, thanks eulerscheZahl from the past
RyanTuplin: https://www.twitch.tv/ryantupo come join got 22 people playing clash XD
Nerchio: better not make the matrix too big xD
eulerscheZahl: yeah, O(n^3) has some limitations
Hjax: plenty fast enough for the biggest maps in PR2 though
eulerscheZahl: except if you go for the lightning fast but incorrect implementation that i found
Nerchio: lol
Astrobytes: lol, speed > correctness
eulerscheZahl: i guess scipy is more optimized than what i found
Nerchio: Hjax but how many cells did you calculate ? all of them for all pods?
Hjax: my targets are: any tile that ive seen but not visited, or any tile my opponent owns
Nerchio: I don't believe this :D
Nerchio: okay
Nerchio: makes sense
Nerchio: then Matrix isn't that big
Hjax: and i throw away useless tiles, dead ends with no platinum
eulerscheZahl: do you use symmetry in maps to find platinum faster?
Hjax: nope!
Nerchio: I would need this algorithm only for nearby tiles for my pods
Nerchio: not all of them
Nerchio: I also didn't use symmetry to find platinum faster
Hjax: my bot is pretty barebones, i intended to improve it over the weekend, but i got lazy
Hjax: its only about 200 lines of python
Nerchio: Im not sure how I would find symmetry on a hex map which hex corresponds to which
eulerscheZahl: the ID assignment is key here
struct: I think yavalath is a bit different
Nerchio: yeah euler I guess I would need to decode id assignments :D
Nerchio: which is something I am not a fan of
eulerscheZahl: http://chat.codingame.com/pastebin/dc338f3a-89a9-4dc9-84da-9666e00b688c
Nerchio: it would be possible to compute it too but my computer would explode probably
Hjax: man how many games have ID abuse
Nerchio: :D easy enough
eulerscheZahl: and
Hjax: unleash the geek all over again
eulerscheZahl: http://chat.codingame.com/pastebin/6afa86ab-c0ce-459e-83e9-aae8e739b38e
eulerscheZahl: i do a little more, e.g. check if my base is symmetric to opponent base. but it's really not that much
eulerscheZahl: and definitely helped me to climb some ranks
Nerchio: I just did
Nerchio: if my neighbours in distance X is less than his neighbours in distance X then my position is shit
Nerchio: it doesnt take platinum into account since there is fog of war
Nerchio: so not always true :D
eulerscheZahl: but a good estimate if you include you own + opponent base
eulerscheZahl: if gain > loss, it's worth it
Nerchio: I tried to judge the maps that are not worth playing out on one side
Nerchio: rushing in that case is better than trying to win
Hjax: oh i noticed you rushed me on some weird map Nerchio, i was wondering why
Hjax: your bot was just like, this map sucks
Nerchio: yep im not playing it :D
Hjax: i ran some tests, on the most unfair maps rank 900 beats rank 1
Hjax: kind of silly
Nerchio: yeah some maps were too broken
Nerchio: but i tried to turn these little-broken into wins against players outside of the very top
Nerchio: poor Illedan
Nerchio: https://www.codingame.com/replay/472469787
Hjax: lol
Hjax: my bot generally has pretty good rush defense
Hjax: it only messes up if it loses vision of the rush
Hjax: which i never got around to fixing
Nerchio: Neumann
Nerchio: https://www.codingame.com/share-replay/472468967
Nerchio: see its not a bad strategy :p
Hjax: yeah i like it
Hjax: i might copy it
Nerchio: you turn a probable loss into a sometimes win - sometimes draw - sometimes lose
Nerchio: thats a good trade :P
Hjax: yeah
Neumann: That's the equivalent of a 6-pool
Neumann: Shameful
Hjax: im not sure if you know or not Neumann, but nerchio is a very good zerg player
Neumann: I'm aware of that
Hjax: do you play starcraft too? :D
Neumann: Yup
struct: starcraft port when?
Hjax: we already have A* Craft
Hjax: what else could you ask for
Neumann: Not the same level tho
Hjax: im a gm toss player on the NA server, also cant hold a candle to him
Neumann: NA GM ? Like EU Plat ?
reCurse: Uh? I thought it was just a coincidence.
reCurse: So it's the actual Nerchio?
Hjax: yeah
struct: yes
Neumann: reCurse: y
reCurse: I remember watching your games a long time ago. Nice
struct: I saw him typing on a CG stream once with his twitch account
Hjax: i asked him during pacman when i saw him here
Hjax: @Neumann hey give me some credit, at least EU diamond
Hjax: :P
Neumann: jk ;)
Hjax: i have a few good wins against decent pro players, i beat TRUE in a clanwar once, thats my best achievement
Neumann: Clean
Hjax: not going to lie, i had some amount of pride in being the best starcraft player thats active on this site
Hjax: Nerchio took it away from me D:
Nerchio: rip your title Hjax :(
Hjax: youre too gosu
Nerchio: also winning with protoss is not very difficult Hjax
reCurse: :popcorn:
Hjax: oof
Neumann: Terran ftw
Uljahn: rush with Automaton2000s
Automaton2000: all test cases but when i want to have the same feeling
WINWINWIN: People are still focussing on PR2? I thought that it would be forgotten by now :P
Astrobytes: Just discussing their approaches 'post-contest' WINWINWIN
reCurse: Largely underrated game
Astrobytes: Yeah, I hadn't played it until thibpat's contest. 10/10 will go back to it.
WINWINWIN: Yes, was quite interesting but among the least participation
reCurse: It's not official so it's unrealistic to compare
WINWINWIN: I meant purely as a multi, onlt 1.7K participants vs the common 2.5K
reCurse: Wasn't it the second multi ever on CG?
reCurse: Not so bad
reCurse: Population back then was nothing like now
WINWINWIN: CSB first, then PR1 then PR2?
reCurse: Uh no.
WINWINWIN: If CSB wasnt the first, why the big hype around it?
reCurse: Because it's part of onboarding and it's successful in the "easy to grasp but hard to master" category
reCurse: I was also wrong, PCR, GOD and Tron preceder PR.
reCurse: *preceded
WINWINWIN: Understood, I checked it, CSB was pretty recent
Astrobytes: Was GoD first or Tron?
reCurse: Tron
Astrobytes: Ah right
WINWINWIN: Were you all on CG back then?
reCurse: No I joined around Hypersonic
Astrobytes: I wasn't, joined up in 2015 but didn't compete until Code Royale
reCurse: Well I actually joined before CB but I didn't even do multis back then. I just stumbled on CG because someone posted about CoC somewhere else.
reCurse: Thought it was kinda dumb but I liked the puzzles so I stayed
WINWINWIN: So you won a contest on your 4th attempt?? Wow!
Astrobytes: Yeah, I had no clue about the competitions or I would've tried to participate sooner. Was a busy period of my life though, didn't have much free time
reCurse: 5th attempt. The Accountant doesn't show for some reason
reCurse: Only shows when it's your own profile
reCurse: I'm guessing it's some stupid legal reason
WINWINWIN: Still.. amazing
reCurse: I'm just salty I didn't win FB :P
WINWINWIN: :D I saw the postmortem "Large lead" but Magus released his GA too late
Magus: in fact, pb4 discovered a massive bug in it's code after the contest
wlesavo: hm, i can see the accountant on your profile
Magus: something like it's AI during the contest can only pick an angle between 0 and 255
Magus: (instead of 0 to 359)
Magus: there's a big chance that i am just lucky
WINWINWIN: Probably that you may not need to turn around completely that often?
MostComplicatedUsername: Someone should make a blokus multi
MostComplicatedUsername: :D
daffie: whats tht
MostComplicatedUsername: blokus is a board game
Astrobytes: Just looks like really slow Tron
Nerchio: cant play accountant anymore?
struct: nope Nerchio
Nerchio: feelsbad
Nerchio: what was it about?
struct: https://www.youtube.com/watch?v=WecV6SlRgGQ
struct: Basicly enemies tried to collect data points
struct: The shot dealt damage based on distance
struct: closer = more damage
struct: If you are in N range from enemy you die
struct: Enemy moved to closest data point or to you? cant recall
struct: ok, always moved to closest data point
struct: you got score based on data points left
struct: Not sure if shots fired aftected score
reCurse: http://chat.codingame.com/pastebin/87127559-abcc-43e1-b9cb-3c885dbe841c
reCurse: Oops
reCurse: Anyway that's the bonus
reCurse: Data survival is 100 points and 10 points per kill
reCurse: Was pretty fun, I also ignored all the evils of optim games back then
eulerscheZahl: coding for validators instead of playing the actual game? or what evils?
reCurse: Yeah that
reCurse: Many contestants were just running a MC and spam submit
reCurse: Hope for the best
eulerscheZahl: that's mostly a CG exclusive problem
reCurse: Oh I know
reCurse: A*C solved it for a contest format
reCurse: Too bad they didn't do that for a $10k contest :P
eulerscheZahl: still too few validators for a stable ranking
eulerscheZahl: but so much better than TAC
struct: They should run hidden test cases at end of contest right?
reCurse: Yes that's what A*C did
struct: Were players warned of this?
eulerscheZahl: i even thought about semi-hardcoding (checking for transformations/rotations of known testcases and such)
reCurse: Only for hardcoding
eulerscheZahl: but didn't do it in the end
reCurse: T1024 extracted all validators, got DQed for it
eulerscheZahl: not correct reCurse
reCurse: ?
eulerscheZahl: he tested different random seeds
eulerscheZahl: if (datapoints.count == 12) seed = 241
eulerscheZahl: something like that
reCurse: Ok my memory failed me
reCurse: Still hardcoded against validators
reCurse: Just not as accurately
eulerscheZahl: optimizing the randomness. still solving online
struct: reCurs is your STC NN or no comment?
reCurse: Wouldn't you like to know
eulerscheZahl: i bet against NN
struct: Yeah :)
struct: I was think is not NN but wanted to be sure
eulerscheZahl: the top wasn't that strong for STC. i was 3rd without any kind of opponent prediction
reCurse: Ehh I beg to differ
eulerscheZahl: and a minimax-ish algo to it. that might already to the trick
reCurse: Was no cakewalk
eulerscheZahl: that impressive lead wasn't easy for sure
reCurse: Going even against top 3 was already quite some work
reCurse: Also probably hardest legend boss of CG
eulerscheZahl: i'd like to disagree
reCurse: On which part
struct: I also think it's the hardest, but I haven't played many
eulerscheZahl: on the other hand: i really struggled with UTTT and wondev woman legend. but league size says that they aren't that hard
eulerscheZahl: "hardest legend boss" part
reCurse: Ok
struct: for me UTTT boss was no problem
eulerscheZahl: by league size coders of the caribbean is a tough boss
reCurse: Size does not matter :P
reCurse: % maybe
reCurse: But even then
eulerscheZahl: PCR wasn't that hard
eulerscheZahl: still small legend
eulerscheZahl: let's just agree that Tron is an easy legend then ;)
reCurse: Sure
eulerscheZahl: at some point illedan struggled reaching STC legend, even complained about a boss boosted too much
eulerscheZahl: gave him my code. he cancelled the submit at 5 points above the boss :D
reCurse: Top 3 legend steamrolling the gold boss, what a surprise
eulerscheZahl: top4 :(
reCurse: rip
reCurse: Well back then :p
eulerscheZahl: and back then i had a worse bot. and in C#
reCurse: I dunno you need good sim and good heuristic. Usually it only requires a strong of either one.
reCurse: Like UTTT you just need an optimized vanilla MCTS
reCurse: Don't even need to care about understanding the game
reCurse: Not that there's anything to understand about UTTT
reCurse: And now saying UTTT 3 times I woke up MSmits
reCurse: fffff
Snef: lol
eulerscheZahl: self-play worked surprisingly well on STC for me. param tuning
reCurse: Well like you said opponent interaction is minimal
eulerscheZahl: UTTT turned into countering other players rather than playing the game at the very top i think
eulerscheZahl: adjusting opening books when losing doesn't sound that interesting to me
reCurse: It's the perfect case against no random in initial state
reCurse: It always ends in opening books
Snef: well if you don't have book you can't be countered right ?
eulerscheZahl: only if you have some randomness
reCurse: You don't need to be countered if you're rank 20
AntiSquid: in the "low ranks"
struct: Yeah, same happened on Yavalath
struct: same might happen on Othello
eulerscheZahl: "might"
struct: :(
reCurse: There's Othello now?
struct: yeah
eulerscheZahl: yes, since 2 or 3 days
eulerscheZahl: 3 approval votes, 1 refuse
AntiSquid: the 8x8
AntiSquid: who refused ?
Hjax: why would someone refuse it
Scarfield: 1 refused?
Hjax: it seemed really nice
reCurse: Didn't think I'd reach the point where I have more unstarted multis than started ones
reCurse: Yet here we are
AntiSquid: maybe graphics weren't sparkling
eulerscheZahl: https://www.codingame.com/contribute/view/5106941b8347f7341a4dbe2f39dabce52586
struct: Don't worry about the refusal, me and him talked
struct: and it's fne
Astrobytes: It was kind-of a temporary refusal, after some discussion we got the reasoning
struct: fine*
reCurse: Well Othello is definitely headed that path then
struct: also astro
reCurse: If I was doing Chess for instance, I'd just randomize from a known opening book.
Astrobytes: Which was nice actually
AntiSquid: but comment section shows other rejects
eulerscheZahl: you can write an X without refusing
Astrobytes: No, they're trolls
AntiSquid: ah :/
AntiSquid: i see
AntiSquid: that's not nice
reCurse: Like they do in TCEC
Hjax: TCEC is cool, it would be cool to have chess on this site, but computer chess is so overdone i feel
Hjax: so many strong open source programs
struct: So the game starts from a given position?
reCurse: It's more for the learning experience than coding really
Hjax: the game starts from a given intentionally unbalanced position, and the engines play both sides @struct
reCurse: Err
reCurse: *than competing really
reCurse: There might be some untapped ground in the 50ms/move domain
Astrobytes: Yeah, I find the board game stuff useful for learning
reCurse: Who knows
Hjax: chess is very draw heavy if you play even opening positions
struct: I was going to do shogi ("japanese chess") for the japanese players
struct: But I stopped
Astrobytes: Where are my Amazons :P
eulerscheZahl: did i distract you? :P
struct: I was doing amazons at the time euler
struct: I have prototype of amazons done
Astrobytes: :)
struct: But I don't want to overflow multis
struct: I will still release, but not as oftne
Astrobytes: What happened to 1 per week?
struct: I don't think it will be good
reCurse: You don't want to overflow multis?
AntiSquid: 1 multi every time you reach legend in a contest struct
reCurse: I mean...
struct: Yeah, there are plenty already
struct: only 3 are mine :(
eulerscheZahl: 1 multi per account
struct: I keep othello then
AntiSquid: struct i think it's fine to add more multis if they aren't all from the same genre and more varied (no hexagon after hexagon multi)
reCurse: No hexagon othello, reported
reCurse: Might have been a fun variation actually :P
Astrobytes: lol
AntiSquid: and how does the stone turning work on hexagon othello?
reCurse: Same way?
struct: well 6 directions
AntiSquid: nvm, overthinking it, would look weird though
struct: I should have kept othello on 24x24
Astrobytes: Dear god no
Scarfield: othelloTTT
reCurse: Why stop at 24 when you can go 48
struct: max turns :(
AntiSquid: what's wrong with 12x12 ?
struct: I think I kept 8x8 because I asked chat
jacek: because people wanted to easy bitboad stuff
NaelDEV: Hello World
Hjax: after some tweaks to my pr2 bot, its now top 20, wouldnt have changed my rank in the unofficial contest
Hjax: but im happy enough with it
Astrobytes: nice one Hjax
Hjax: we should do more of these unofficial contests, it was pretty fun
Hjax: definitely motivated me to try a multi i wouldnt have otherwise
Astrobytes: Yeah, I think they'll happen
Astrobytes: Same here, will defo go back to PR2, nice game
Hjax: i wonder how good my pr2 bot would be at pr1
Hjax: they are pretty similar right?
Astrobytes: Quite different
Astrobytes: You have to manage pod cost and stuff
Astrobytes: More than PR2, you have to issue buying orders
WINWINWIN: Buy is not as big an issue as the removal of fog of war
Astrobytes: For specific locations
Astrobytes: And there's 'viewer issues' I believe
WINWINWIN: The size is too low to understand anything
Astrobytes: Yeah, I'm saving it for when I get *really* bored
Astrobytes: WINWINWIN where is your Othello bot
WINWINWIN: Trying a minimax offline, will submit in a week :P
Astrobytes: Nice :)
WINWINWIN: Its my first attempt
Astrobytes: Oh ok, it's not too hard, you'll get it quickly enough. Incorporate a/b pruning once you get the algo
WINWINWIN: The simulation is just copy pasted from the referee, but I am trying it in python before an OOP to get it bug free
Astrobytes: It's CG, don't need to use OOP for everything :P
WINWINWIN: I meant an OOP lang like C/C++
Hjax: python is an OOP language
Astrobytes: ^
WINWINWIN: I refer to OOP langs as langs where classes and methods are mandatory :)
Hjax: then C isnt object oriented
Astrobytes: classes and methods are not mandatory in C/C++
WINWINWIN: methods are not mandatory?
swarupe: https://www.codingame.com/clashofcode/clash/1256846968509d5be6fb92f97be064a9e3ded97
Hjax: methods are, but classes arent
Hjax: you can just have free floating methods
Hjax: not very object oriented
WINWINWIN: I see, so that class Player that I used in PR2 was not necessary :)
Astrobytes: when I refer to methods and C++ I refer to member functions
darkhorse64: Hjax: for PR1, the ability to spawn pods change the strateegy. Will you write a PM for PR2 <?
Hjax: yeah ill write a PM
darkhorse64: Great, the old "Feedback" page is not very populated
Astrobytes: WINWINWIN if it helps you it's fine, it's just not mandatory ;)
WINWINWIN: :)
WINWINWIN: This is where Im studying the minimax
WINWINWIN: https://www.baeldung.com/java-minimax-algorithm
Astrobytes: darkhorse64 same for a lot of the older multis
WINWINWIN: Is it ok?
struct: WINWINWIN I haven't read it, but if you want one in video.
struct: I can link it
jacek: it doesnt have prune array :(
Astrobytes: :D
WINWINWIN: Can you send the video link?
struct: https://www.youtube.com/watch?v=l-hh51ncgDI
Astrobytes: I need Prune Array for my Othello GAimax
Astrobytes: Woo Sebastian with his accent :D
darkhorse64: Yeah, even PM from the top players are sometimes quite difficult to understand. Revisiting them will bring fresh ideas
Astrobytes: Indeed
WINWINWIN: struct is it possible to add the opponent`s move to the inputs?
Astrobytes: RE: Searches in general, I liked the MIT lectures with Patrick Winston WINWINWIN, this series: https://www.youtube.com/watch?v=STjW3eH0Cik
struct: What do you mean?
struct: Put the move in the minimax functioN?
WINWINWIN: No, I mean in the game input, give the opponents move?
Astrobytes: Why do you need opponents last move, you have the whole board?
struct: I wont do more changes sorry
struct: And you can easily check with an if
struct: what the move was
darkhorse64: Always same reason, reuse the search tree
WINWINWIN: Np struct, just thought that it's a more standard input
WINWINWIN: Anyway, I will work on it this week, and submit a working version by Saturday! :)
struct: good luck
Astrobytes: I'll hold you to your word on that WINWINWIN :P
WINWINWIN: :D
WINWINWIN: gn all
Astrobytes: gn, take it easy
darkhorse64: In Othello, when your opponent plays several moves in a row, it's a bit hard to guess their order.
struct: ah I see
eulerscheZahl: why would you need it? MCTS tree reuse?
jacek: thats a ntoher challenge
jacek: othello has very few moves, sometimes 1. tree reusing would be useful
darkhorse64: Yes. For the moment, I reset the tree. When you skip moves, things are bad for you
jacek: but well, when you skip moves youre screwed anyway
darkhorse64: ^
Astrobytes: yeah
struct: ok I open to discussion on this
struct: Do you really think it's needed?
jacek: that would be breaking change wouldnt it?
eulerscheZahl: not necessarily
struct: Would break current bots yes
eulerscheZahl: see vindinium. this game has 2 protocols
struct: How euler?
eulerscheZahl: read the statement
Astrobytes: EXPERT input etc
struct: I guess I can add a message in inputs
eulerscheZahl: If you output a debug message that contains "EXPERT_INPUT", you will get a list of opponent actions before the game input for every following turn.
struct: ok im gonna add this.
struct: I'll try to add it today
Astrobytes: Oh btw, off-topic, but I forgot to share the pleasant private message I received when I logged in this morning: https://imgur.com/a/vsrZ2HS
eulerscheZahl: :D
Astrobytes: I have no idea who that is, but I almost spat my coffee out laughing
eulerscheZahl: somehow the insult didnt work then
Astrobytes: Indeed. I should reply really. Not feeling troll-y enough though
struct: darkhorse64 if I add this, it wil only be available to read after your first output
struct: Is this fine?
jacek: no skipping moves happen at first move eh?
struct: yeah, but you need to add an if in default code
struct: if (turn > N) readInput()
darkhorse64: Yes, We should seen that before approval but I did not realized skip moves could be an issue. Otherwise, you could have implemented something like you do for Yinsh
darkhorse64: I already have a if (turn == 1)
struct: ok
reCurse: Should have kept some of the DMs I get after bans
Hjax: there was a starcraft player who cannon rushed every game, and kept a log of all of the rude things people said to him
Hjax: it was pretty entertaining
Astrobytes: lol, sounds like 90s GBR-1 behaviour
Hjax: reCurse are you pleased your pr2 bot survived the unofficial contest?
eulerscheZahl: i got this lovely DM once. started with "how are you?" - "fine and you?"
eulerscheZahl: then i got insulted, then wished me a nice day
Astrobytes: That was PayToWinGirl right?
eulerscheZahl: yes
reCurse: Only because I won't be distracted by going back to it :P
LelouchVC2: @reCurse
LelouchVC2: Lets play clash :)
reCurse: You want a ban I guess?
Hjax: bye LelouchVC2
eulerscheZahl: you are on thin ice
Astrobytes: byebye
LelouchVC2: *disappears into abyss*
eulerscheZahl: CG started working on an option to opt-out for invites. wonder how long it takes to implement
LelouchVC2: Probably forever
reCurse: Maybe if they said who I could spam him with invites for motivation
LelouchVC2: If we all spam reCurse with invites, we will boost our own social standing
eulerscheZahl: you will win a CG website without distracting chat
Hjax: the clash spam makes me envy you guys at the top of the global leaderboard less
reCurse: I get less of them since the new formula
reCurse: Silver lining
LelouchVC2: Let's change that!
eulerscheZahl: follows are more common than clash invites actually
eulerscheZahl: 9 new followers in the last week
LelouchVC2: :o
reCurse: I'm impressed how many bother with a useless feature
eulerscheZahl: following? you can send direct messages to offline users when they follow you. and filter the leaderboard
Hjax: the following leaderboard is pretty useful if you want to find someone quickly during a contest
reCurse: Ah didn't know about the DM thing
LelouchVC2: Some of these clashes are so stupid, who's accepting these?
eulerscheZahl: that's shown at the top
LelouchVC2: I meant it rhetorically
Hjax: i clash every once in a while, im not very good at the reverse ones
LelouchVC2: I mostly do clashes, only did 2-3 puzzles:((
Hjax: contests are my favorite, ive struggled to find motivation to play multis
eulerscheZahl: i'm mostly idling in the chat
Hjax: the unofficial contest helped
LelouchVC2: still salty over the broken pacman competition
Hjax: pacman was not fun
LelouchVC2: It was fun while I was dominating 😂
Hjax: i got frustrated and didnt work on my bot at all the last weekend
Astrobytes: LelouchVC2 it's not broken?
LelouchVC2: Astrobytes If i say broken then it's mother was also broken
Hjax: its just designed poorly, not being able to see around corners was so annoying
LelouchVC2: It give me dead pacs, no way around it
Astrobytes: Hated it. Just regular pacman with the RPS would've been fine.
eulerscheZahl: i liked pacman in general. fog of war wasn't necessary IMO
Astrobytes: RPS abilities that is
Hjax: pacman with no fog of war would have been fun
LelouchVC2: yea, abilities made it weird
Astrobytes: Well... there's an SDK... and... y'know... don't need to *call* it pacman....
Hjax: i wasnt a fan of OOC either, i gave up on it after an afternoon
reCurse: Without fog of war it would be too simple. Not saying fog of war was a good idea.
Astrobytes: Wasn't a huge fan either Hjax but the game had merit
LelouchVC2: Damn bro, mine was running on a simple algorithm. Didnt take long to code and was easy to expand
Hjax: yeah i wouldnt call OOC a poorly designed game, it just wasnt something i was interested in
reCurse: OOC was superb but hard to get into
LelouchVC2: I just wanted to crush opponents :((
reCurse: I mainly say that because it's original and favored different approaches
reCurse: Personal interest is another thing
Hjax: yeah maybe if i had stuck with it a bit longer i would have ended up enjoying it
Hjax: but i gave up pretty fast
Hjax: i think i like 10 day contests more than month long contests
LelouchVC2: If it's more than 1 day I'll probably forget about it
LelouchVC2: Stuck with pacman for 3 days i think before that retrded bug
Astrobytes: I thought the dead pacmen was an added feature?
LelouchVC2: in a later league
Astrobytes: So...?
LelouchVC2: when it would give u the way to determine if it was dead
LelouchVC2: not when u can't possibly know..
Hjax: sure, but you didnt need to know that to silver or whatever league started giving you that info
Hjax: literally a completely blind pellet gobbling bot could get to silver
struct: I have the update ready, but I can't seem to be able to update the contribution :(
eulerscheZahl: does the build not finish on the CG server?
LelouchVC2: I cant get to silver if my program gives commands to dead pacs ;)
struct: it stays stuck on "Please wait, we are building your project..."
LelouchVC2: hit the side of ur computer
LelouchVC2: usually works
eulerscheZahl: did you try waiting?
struct: yeah
LelouchVC2: IQ
Hjax: its easy to tell when your own pacs were dead, the issue was when your opponents pacs were dead
LelouchVC2: ?
Hjax: dead pacs arent visible to you
Hjax: so they wouldnt get sent during your turn input
LelouchVC2: tell that to the bug
eulerscheZahl: they changed that in silver
Astrobytes: It's your bug, not the game
LelouchVC2: its the game
Uljahn: :face_palm:
Hjax: i would wager the bug is in your bot, not the game, the game worked fine
Astrobytes: "Hover over my profile"
LelouchVC2: I did every error check possible, reverted to previous code that worked
LelouchVC2: i finally went through the shitty task of checking the input recieved
LelouchVC2: and there was the dead pac, lord and behold
eulerscheZahl: problem exists between chair and ceyboard?
LelouchVC2: problem exists between servers and C++
Astrobytes: *between computer and chair/char and computer
Astrobytes: *chair
LelouchVC2: prove me wrong
LelouchVC2: i can show code <3
eulerscheZahl: you can be wrong without us proving
Astrobytes: Don't show it to me, I'm not loading that game up again for a while
LelouchVC2: I could also be God without proving it
Hjax: i dont need to see your code to know youre wrong, my bot and everyone elses didnt crash before silver
Astrobytes: ^
LelouchVC2: Who here was coding in C++
Astrobytes: Me
LelouchVC2: When did u get to silver?
LelouchVC2: I joined late, i recall u joining silver before me
Astrobytes: Fuck knows, did I get to silver?
Astrobytes: Lemme check
LelouchVC2: okie
Astrobytes: I was on a lot of painkillers at the time
Scarfield: ALWAYS assume the error is on CG's side
LelouchVC2: sounds healthy
LelouchVC2: i assumed it was my dumb ass, but i cant do anything if the input i get is a dead pac
Scarfield: type "DEAD" ..
struct: Is 15 minutes a reasonable waiting time?
Astrobytes: Nope. Stayed in bronze. I gave up early-ish I believe
LelouchVC2: type: "DEAD" is in silver
eulerscheZahl: 15min is too long
struct: Guess I'll report it on discord
Hjax: type dead only helps you know if your opponents pacs are dead, you can tell if your own pacs are dead from the inputs without the dead type
struct: I also tried for a new contribution
struct: same happens
LelouchVC2: The inputs have the dead pacs..
Astrobytes: ffs
RoboStac: they didn't, or everyone would crash
LelouchVC2: funny
RoboStac: as they did when they got to silver
Hjax: yeah silver broke everyone for a while
Hjax: was kind of amusing
LelouchVC2: They fixeed the bug
LelouchVC2: i just ran my code, and it no longer calls dead pacs, i didn't touch it
LelouchVC2: So if i havent touched this code since dead pacs being called pissed me off
LelouchVC2: did my code magically rewrite itself
LelouchVC2: or did they fix the bug? ;)
LelouchVC2: I take silence to mean you've all been assassinated
RoboStac: you can see on github exactly what they changed and when
Astrobytes: RoboStac, any plans for Othello?
RoboStac: not atm
Astrobytes: Working on anything else interesting?
RoboStac: nah, mostly just playing actual games rather than coding
struct: darkhorse64 I have the code ready, I just need to be able to upload. The input will be given after the for loop of the board and will give all player previous actions that you did not get, you will also get passes
Astrobytes: heh, downtime is always good :)
darkhorse64: Great
Astrobytes: What flavour of MCTS darkhorse64?
darkhorse64: vanilla
Astrobytes: Really? Have you tried with EPT or any other domain-knowledge flavours?
LelouchVC2: damn, forgot about me real quick
darkhorse64: No, I am focusing on getting the fastest possible engine
Astrobytes: Fair play
darkhorse64: Eval will come after
Astrobytes: Do you know how deep tric and other alphabeta's go by any chance?
Astrobytes: Oh he's online, trictrac, what's your max depth?
darkhorse64: No idea. I see that usually tric trac finds the game outcome 2 to 4 plies before me
Astrobytes: He's got a helluva bot
darkhorse64: He is busy extending his lead
Astrobytes: So I see
trictrac: don't know really
trictrac: but I print WIN or LOSE when I see the end
struct: tric trac see what I typed to darkhorse, it might be usefull
struct: It's not uploaded yet.
Astrobytes: lol, this is still your alphabeta trictrac?
trictrac: yes
Astrobytes: Nice, very nice.
darkhorse64: 20 years refining the code
Astrobytes: :D
Astrobytes: He's a master for sure
trictrac: I am trying to do a best eval but it seems not so good
trictrac: against LeRenard
darkhorse64: He has a 30 years old bot
LelouchVC2: The classics never die
Astrobytes: *Modified 30 years bot
darkhorse64: distilled
Astrobytes: I still love that though. Epic code reuse.
LelouchVC2: If it's not in C++ it's not a real bot
Astrobytes: It's C++ and quit the trolling attempts, we're bigger trolls than you :P
LelouchVC2: I was trolling before u were born
Astrobytes: I see.
darkhorse64: I use C++ for auto, lambda and STL. That spares lots of typing. Almost never use inheritance for my bots. Some overloading for vector class
LelouchVC2: u made ur own vector class?
Astrobytes: The lambdas are great
Astrobytes: Ofc LelouchVC2, standard on here
darkhorse64: CG does not provide one
LelouchVC2: nice, i wrote my own map class
LelouchVC2: because CG only gave me std::map
darkhorse64: I don't mind you are wasting your time
LelouchVC2: :oo
Astrobytes: Lemme guess, std::map is bugged
LelouchVC2: definitely, i once tried to output the 10th element
LelouchVC2: and it threw and out of bounds error, like wtf?
Astrobytes: trolololol
struct: Should rewrite c++
Astrobytes: Any luck with the update yet struct, or still stuck?
struct: stuck
Astrobytes: damn
struct: Even on new contributions it gets stuck
struct: I posted on discord, but won't ping
Scarfield: othello update incomming?
Astrobytes: Yeah, too late for a ping
struct: Yes, I will give optional last actions made by opponent
Astrobytes: Yeah, no breaking changes though OthelloField
struct: Should have seen this before
struct: but oh well
Scarfield: uuh nice, considered asking for it, but thought nah, other games here doesnt either
Astrobytes: Never occurred to me tbh
struct: As it was said, it can be good for passes
Astrobytes: yep
Hjax: i think trictrac is about to dethrone lerenard in othello
Astrobytes: He was already first HJax
Hjax: oh was he?
Astrobytes: By a stretch yeah :D
Hjax: just trying to widen his 1st place margin?
Scarfield: he mentioned ealier his eval wasnt the best
Hjax: i dont win 100% of my games, bot sucks
Scarfield: xD
Astrobytes: I think he was 3 pts above previously?
darkhorse64: My last battles Games 225 to 240, trictrac-darkhorse64: 1-0
Scarfield: dont know, but no.1 for sure
Astrobytes: I don't know anything after today, my head is a mess of bitshifts
DaFish: for neuron in brain: neuron = 0
jacek: astro8bits
PkZ: Is anyone else getting network errors?
Astrobytes: Yes DaFish :D
Astrobytes: astro64 jacek, please
Scarfield: AstroFloat
Astrobytes: Doesn't really rhyme with any brain cells though ArmWield
Scarfield: True, let me play this small Fiddle CastroInt :p
DiL: @PkZ I also got network errors
Astrobytes: haha well played :D
Astrobytes: Are you MCTS as well jacek?
jacek: not yet
Astrobytes: How deep's your a/b?
jacek: 6-7 plies in middle game
Scarfield: bit boarding?
jacek: eeyup
Astrobytes: ofc
Astrobytes: I can get about 10 in middle game, but my eval is shit
Astrobytes: *up to 10
jacek: wanna see my eval?
jacek: https://pastebin.com/raw/AEwcLFGW
Astrobytes: Yeah don't hit me with myStones - hisStones
Scarfield: we dont want to see you evaluate no :p
Astrobytes: lel
Astrobytes: Yeah, at least he didn't show us his ejaculation function
DiL: are reverse mode clashes broken? I got networ errors when loading test...
Scarfield: its not recursive, but reciprocate
Astrobytes: That just means it's time to quit clashing and play multis DiL
Astrobytes: hahaha ScarFeel
DiL: Astrobytes is there a limit to clashes I can play?
JBM: how many *have* you played?
Scarfield: at some point you will get captchas afaik, but i dont think there is a limit
DiL: many!
Scarfield: many factorial :o
DiL: captchas is ok, I just got network errors...
Scarfield: apperently you are not alone with that currently, a few others have mentioned it :/
Astrobytes: Sorry DiL I was trolling :) Someone else was mentioning network errors for clashes earlier, might be a server issue
Astrobytes: AstroRecites strikes again
Scarfield: xD
DiL: ok, fine. time to stop playing clashes! thanks
Astrobytes: Puzzles are always waiting :)
jacek: just invite some toads to clashes
Scarfield: puzzles and multies are great DiL, if you havent checked them out yet, i can highly recommend it :)
jacek: :tada: https://www.codingame.com/replay/473003466
Scarfield: :muscle:
Hjax: i like how he just prints out LOSE when he sees the loss
jacek: and he saw that 4 plies before my did
Hjax: you still found the right moves though
Hjax: so its ok
Astrobytes: lol nice jacek
Hjax: it would be depressing if he printed LOSE, and then a few moves later he was printing WIN
Astrobytes: Or Smits-style - Turn 2: Solved I win
Scarfield: maybe he only prints LOSE if its a certain loss, but that would be sad yea
Hjax: lol
Hjax: smits beats you in book
Astrobytes: Not just book, depends on the game I guess. But he's bloody good at it!
Hjax: i havent played any true number crunchy games yet
jacek: but only in the opening
Hjax: i dont think im very good at them
jacek: number crunchy games?
Hjax: search heavy games
jacek: o
Hjax: i keep saying ill use one as an excuse to learn C++ or Rust
Hjax: but i have not yet done that
Astrobytes: Not just number crunching really
Astrobytes: Do it
Astrobytes: Honestly, the more knowledge the better if you ask me
struct: There are plenty of games for this
struct: But from all of them I would stay away from UTTT
Astrobytes: I've still not got around to it, it just seems repellent :D
struct: Yavalath bots are hard
struct: I mean top bots
Hjax: we should do yavalath as the next unofficial contest
Hjax: it would make structs year
Astrobytes: lol, 100 signups, 2 participants
struct: :D
struct: It would be hard to beat lot of top players
struct: MSmits spent months on it
struct: I mentioned him more, because he talked a lot about it
Astrobytes: Hm, Agade is online, Agade, what did you change in your NN recently for Oware?
struct: jace k also made an article on it https://www.codingame.com/playgrounds/46262/on-generating-opening-book-for-yavalath-mcts-bot
struct: Seems like I won't be able to update othello today
struct: I'll do it tomorrow
Astrobytes: Could be issues on their end, I'm sure they'll sort it out
struct: yeah, it's fine
jacek: sounds clashy
struct: What do you mean jacek?
struct: What is clashy?
Agade: I had some bugs in the learning but improvements on the MCTS side make the bulk of the ranking gain
jacek: clashes are having some problems too, no?
Agade: e.g. was not preserving tree from turn to turn
struct: ah, no idea
Astrobytes: Ah OK, yes, that's helpful indeed. Good work Agade :)
darkhorse64: struct, I don't know what others think but I would have broken the 22 existing bots without mercy. One more line in the inputs "previousMoves". To unbreak the bot, just read this new line. No more changes needed. Frankly, it's not a big deal
Astrobytes: Yeah, it's only 1 resubmit away
jacek: blame those who approved it
Astrobytes: shut it jacek :)
darkhorse64: I did not but I failed to see the problem so I think I am also to blame. Things went so fast that I did not have time to write a real bot
Astrobytes: But yeah, just one line change is not a big issue, just resubmit after
Astrobytes: No I didn't have a full bot either, I'd started but was more focused on whether the game was working properly
darkhorse64: It's not like we are in the middle of a contest with 5k players
Astrobytes: :)
Astrobytes: Either way, CG is not letting him update the game atm so we'll have to wait
jacek: yinsh curse?
Astrobytes: lol, hopefully not!
darkhorse64: Hence my post. After some thoughts, I believe it's better to have simple inputs rather than preserve compatibility at all costs
darkhorse64: When I was doing breakthrough, I had the same issues
Astrobytes: I've still not done BT, I promise I will soon
Astrobytes: Hey did anyone see the post on latest post in the Othello topic in the forum?
Astrobytes: I'm not sure I understand. I don't use the list of possible actions for a start.
Astrobytes: *see the latest post
darkhorse64: Soem believe that writing a bot is rand()%actionsCount
darkhorse64: *Some*
jacek: if you print the last possible action, youll print the same move for the same game
jacek: actually thats better than random in yinsh
Astrobytes: Yeah, that's how I test contributions or submit a basic bot so I can test and write a decent bot.
darkhorse64: For yinsh, output the longest action
Astrobytes: Yeah, something like that
jacek: the True AI
Astrobytes: I think I did some sorting based on something
Astrobytes: I need to write a proper Yinsh bot, I like that game a lot
Astrobytes: So many games
jacek: like not-rock football
Astrobytes: Yeah I'll get to paper soccer too :P
Astrobytes: Nice re-phrasing btw
Astrobytes: Do you think my forum response is OK?
darkhorse64: It is
Astrobytes: I mean, any non-stochastic algo versus anything hardcoded will be the same right? And any hardcodes are gonna be the same against a hardcode.
Astrobytes: thanks darkhorse64
darkhorse64: I have done some googling. There are huge opening and endgame books for Othello
Astrobytes: I saw a little bit about some databases earlier but not much (was heavily shifting bits) - useful in CG context?
darkhorse64: Fortunately, there are huge. Dump in CG context is not doable
Astrobytes: Hallelujah
Astrobytes: :D
Astrobytes: Could be some interesting stuff in there though
Astrobytes: I see, massive computer generated and also a bunch of human books too
darkhorse64: I have not much experience in the game but It seems you cannot lose in the first turns (like Y). So you must go deep
Astrobytes: Yes, it's a lot more open at the beginning
Astrobytes: Maybe I'll just use the human books and some ifs. True AI.
Astrobytes: Anyway, I'm out for tonight, gn/bn all
Hjax: ok i posted my PR2 post mortem
Hjax: tldr: munkres good algo
darkhorse64: For the scoring function, distance is distance to what ?
darkhorse64: Nice post, bt
darkhorse64: btw
Hjax: distance between the pod im scoring and the target
Hjax: its just a big 2d array
Hjax: all of my pods vs all of my targets
darkhorse64: so you are planning ahead (for several turns)
darkhorse64: ?
Hjax: i dont store the munkres results, but in theory the mapping doesnt change much
darkhorse64: I mean, you are not looking only to the nearest neighbours
Hjax: i am not
Hjax: i have a global list of targets that i assign my pods to
Hjax: the targets are just seen but not visited squares, and any square my opponent owns
Hjax: so munkres finds the most efficient mapping between all of my pods and all of those targets
darkhorse64: I think I got it: you remember tiles not visited or tiles owned by enemy even if you don't see them anymore
darkhorse64: Thanks
Hjax: yeah
Hankdane: They also have unordered_map.
Hankdane: Doh, replied to an earlier thread. :-/
Reksio: Hi all. I see that some puzzles ignore code speed. Do you know how should I know when it matters and when not as well as other criteria?
Pooshlmer: As far as I know, you find out when you timeout
Hankdane: Usually there are hints in the description.
Hankdane: I have yet to be surprised about seeing a timeout.
Reksio: so O(N) and similar requirements for speed and memory do not matter here much? Also usage of Linq (C#) vs not using it. Linq can often slow down the code.
Reksio: Also I honestly didn't know that looking at hints does not destroy your score.
Hankdane: Oh, I didn't mean the hints specifically, sorry. I meant the main description.
Hankdane: I haven't looked at hints, so dunno what it does to score.
Hankdane: If the problem is not speed related, code performance will not impact your score either way.
Hankdane: That's been my experience, at least.
Hankdane: What I meant by 'hint' is just to say it may not specifically say 'your code will time out if it is too slow,' but it will contain some kind of speed requirement.
Reksio: I hope they could bullet point in the future what is important to the solution and what's not. Speed, memory, code size after compilation, etc.
They may hint the same but I think that hints may not always be good as some requirements can over-complicate the code significantly. And if it happens that you mistook the hint you will spend long time on something you didn't need doing.
Reksio: But thanks for sharing your experience. Maybe I will visit forums for each puzzle before I try to solve them next time.
jvke: Does Clash of Code rate solutions by their efficiency as well as time completed? I finished 3rd in terms of time but ended up getting first
Pooshlmer: Two are fastest time, but "shortest code" looks for the smallest code size
jrke: Het jvke my id name is jrke :smiley:
jrke: *hey
Hjax: huh i just poked my pr2 bot a bit
Hjax: and now its rank 12
WINWINWIN: Anyone, when you are writing a minimax, it just needs to be a constant sum, not a zero sum right?
Hjax: what do you mean constant sum?