BlaiseEbuth: If you have friends, don't fight them.
Salted: Try insults first
Salted: start a private clash
eulerscheZahl: delete the default bot
Salted: or invite them
eulerscheZahl: the add your friend
eulerscheZahl: only works for top1000 and your own league+below
Salted: oh I didn't realize
eulerscheZahl: https://www.codingame.com/hackathon/sopra-steria-coding-challenge only 11h to wait
BlaiseEbuth: Yeah ! I wanna win the SOny air conditioner !
eulerscheZahl: 1st prize seems some gaming console. but i have no idea which one
eulerscheZahl: anyways, time to go to work (aka switch to the other PC)
MSmits: bye Euler
dbf: "All french developers" - it is difficult to move to France temporary to participate in hackathon because of restrictions :(
BlaiseEbuth: Moving to France will not make you french. Nom d'une baguette !
MSmits: yes, you have to be
MSmits: French in your heart
BlaiseEbuth: Complaining about anything is a good start.
MSmits: Then I must be a Frenchman born in a Dutch body
GhostOcter: pick me qiyana pls
Housso: are we going to have acces to the api once the hackathon starts???
darkhorse64: It's not an API. You read the inputs that describe the game state and you output commands to drive your bot, changing the game state. You do that in a continuous loop. I suggest that you look at the puzzle the descent (not a bot game) which works this way
Housso: oh ok i'm used to Halite format i did some puzzles so i should be ok then thanks for the info
Passifi: Good Morning Vietn... eh chat
kowodo: cool. Enjoy!
jacek: if its finished, you should have it in notifications
jacek: in the results
jacek: learn from best coders
N01S3: Hey, does anyone know where to start if I were to create a program that reads text on an image?
N01S3: Example, post screenshot on Discord and you get the text out of it
N01S3: Yeah I found that towardsdatascience blog post as well haha
jacek: look for OCR
Alshock: I threw up. Twice.
MrPapaya: wow obfuscated cpp code
MrPapaya: have never seen such thing
eulerscheZahl: https://www.codingame.com/hackathon/sopra-steria-coding-challenge contest starts in 3min
reCurse: Please don't be interesting I don't have time for this
Wontonimo: i was thinking the same
eulerscheZahl: not interesting
eulerscheZahl: i know someone who spoiled it to me :zipper_mouth:
eulerscheZahl: and it's a codebusters variation
eulerscheZahl: The Hunter: http://chat.codingame.com/pastebin/48ab6fa5-1ec5-4c20-88eb-6053504656ae
reCurse: Awesome, I can ignore, thanks
eulerscheZahl: seems that Sopra took the San Francisco 2442 game into consideration but then decided against
reCurse: Wonder why :thinking:
eulerscheZahl: didn't try but I think the contest reduces strategic depth compared to the real codebustes
Astrobytes: meh, codebusters again :/
eulerscheZahl: and no leagues so we can skip :D
reCurse: I'm fine with that
eulerscheZahl: me too
reCurse: Would rather spend my free time on ML anyway
eulerscheZahl: i might try topcoder marathon next week
eulerscheZahl: depends on the game
Astrobytes: you've really caught the ML bug reCurse :)
eulerscheZahl: do you think Onitama is doable with ML?
reCurse: It's all about landing that pod
reCurse: Sure, I'll get to it eventually
reCurse: I just think there's no point if I can't beat the simpler games
reCurse: Othello already made me realize a few weaknesses
eulerscheZahl: i don't want to pressure you, don't worry
reCurse: None taken
reCurse: I really think it's an interesting game
eulerscheZahl: just curious as you understand the topic better. and the cards might make it hard
reCurse: But it's easier to spot weaknesses on simpler games
eulerscheZahl: so many combinations
Astrobytes: Yeah, better to iron out bugs/weaknesses before tackling anything more complex
eulerscheZahl: games like othello and connect4 sound great for that
reCurse: Still dreaming of 5950x and rtx3080
reCurse: Yeah they are
eulerscheZahl: do we need a fundraising for reCurse?
Astrobytes: Simple ruleset means you can diagnose issues easier, it's not because you implemented some rule wrong, or it's a quirk of the game etc
reCurse: I don't need money
reCurse: I need a checkout that works
kovi: anyone tried mu0 nn?
reCurse: muzero sounds uninteresting if you can simulate the model perfectly
reCurse: Keep in mind deepmind never really cared about board games
reCurse: It's all about applying RL to models too complex to simulate
kovi: isnt the dynamic model adds a new dimension?
reCurse: What do you mean
kovi: not sure, i just want understand why it can be better than alpha0
reCurse: It's better when you cannot simulate the model
reCurse: Because it learns the model and then searches into it
reCurse: But if you already have the perfect model there's no point to learn it
kovi: oh, i c
reCurse: Ok addendum because I said something rather stupid, there is a point to learn it if you can make it much cheaper to simulate
reCurse: Complex physics have been made much cheaper with learned models
reCurse: None of that would apply to the kind of complexity we have on CG though
jacek: muzero CSB :drool:
reCurse: *complex* physics
jacek: connect4? it involves gravity
eulerscheZahl: not the jacek i was expecting
eulerscheZahl: fixed it for you: https://www.pinterest.com/prickly_boi/connect-4-memes/
jacek: do people actually see my memes links? :o
eulerscheZahl: you are like a MK in more funny
kovi: recurse: but if it is not boardgame...the freedom of "state" model can also be advantage
eulerscheZahl: sounds more like a RAIC thing than CG
reCurse: It could be, but I have trouble seeing it if it's not cheaper or impossible to compute otherwise
Astrobytes: Yeah, it would probably work for something like RAIC
reCurse: Not even sure for RAIC because it wouldn't yield enough fps to be useful I think
reCurse: Unless they somehow optimized their engine for it but I have my doubts
reCurse: I also think it's probably an order of magnitude more complex to make muzero work
kovi: my concern is stuffing more nn into cg codesize
reCurse: I need millions of simulations per second to make it useful
reCurse: At the risk of sounding like a broken record
kovi: and yeah, longer learning
reCurse: Code size. Is not. An issue.
Astrobytes: It's called a turntable these past 75 years or so euler... :P
jacek: let him enjoy his childhood once more
reCurse: What would be the modern equivalent? At the risk of sounding like a free spotify account?
reCurse: Oh I know. At the risk of sounding like a AT&T/Comcast/whatever connection
Astrobytes: Vinyl records are definitely still a thing.
Astrobytes: So broken record is fine.
reCurse: The point of those idioms is they were mainstream though
Astrobytes: Yeah. Still are for now... How much longer I'm not sure.
eulerscheZahl: reminds me of users thinking there's a hidden message in the CG reversing game
eulerscheZahl: and then sharing a screenshot of the TV test image
VizGhar: is this same as standard codebusters after getting all the rules?
eulerscheZahl: standard: each buster can do everything
eulerscheZahl: this contest: one hunter, one stunner, ...
eulerscheZahl: which further reduces your possible actions
VizGhar: yeah ok, haven't solved standard cb before
eulerscheZahl: go to the multiplayer arena, probably more fun than the contest
reCurse: Not clear to me whether this reduces strategy but shrug
eulerscheZahl: there will be less fighting for instance. as only 1 buster can stun
Astrobytes: Unless of course you wish to experience the competiti- no, 'fun' contest vibe :P
eulerscheZahl: hm, then again you have to time the stun better i guess
eulerscheZahl: i've decided i won't join the contest (i guess private ones can still be competitive)
wlesavo: what contest?
eulerscheZahl: feel free to prove me wrong
VizGhar: sorry for my jump into noversation, I was scrolled all the way up
eulerscheZahl: perfectly fine jump
eulerscheZahl: bitcoin is skyrocketing again
eulerscheZahl: might be a good time to sell on the other hand I barely have any left :(
jacek: wait for 100k usd
reCurse: I'm more concerned about ethereum skyrocketing tbh
reCurse: Though all cryptocurrencies are sort of linked
eulerscheZahl: because of your GPU?
reCurse: Cuck those flowns
kovi: fell 20-30% in a week....but doubled in 1-2 month
kovi: and we talk about writing nn to some boardgames instead of predicting crypto prices
jacek: linear eval is so last century
eulerscheZahl: do your weather forecast already kovi
reCurse: Can't predict the unpredictable
reCurse: Stupidity is predictable but its actual form isn't
eulerscheZahl: and then they are suddenly in the Capitol
karliso: reCurce Do you now use nn in uttt?
jacek: finally detronized karliso eh
Wontonimo: really? I was expecting your to say no
Wontonimo: kerliso: do you use NN?
karliso: No, I have no idea how to do nn. That is something I plan to study.
NASIRUDDIN: i need help
jacek: how to...
jacek: what help do you need
Wontonimo: can we have a competition to write a bot to respond with "how to ask a question"
NASIRUDDIN: with coding
NASIRUDDIN: how old are u
NASIRUDDIN: how old are u
reCurse: He likes ponies so I'd say anywhere between 7 and 12
jacek: about 30
NASIRUDDIN: i am 13
NASIRUDDIN: are u guys ar ekids
reCurse: There are so many red flags in that link
reCurse: Not clicking
eulerscheZahl: i just clicked it
eulerscheZahl: it has a pie chart
NASIRUDDIN: are u guys kids
reCurse: I also successfully trolled a troll
jacek: pinkie pie chart
NASIRUDDIN: hey guys
eulerscheZahl: most of us regular users are grown adults
NASIRUDDIN: so u adults too
Astrobytes: lol "he also likes ponies..." :rofl:
jacek: also? as in the person saying it likes ponies?
Wontonimo: thanks for the feedback about NN / nonNN guys. Considering you are holding the top 2 slots, it's very telling there are many ways of approaching uttt
NASIRUDDIN: are u guys are kids or adults
reCurse: The best way to approach uttt is to close the browser
Astrobytes: OK I accidentally inserted the 'also' from reCurse's secondary comment jacek.
reCurse: Ok you're starting to get on my nerves
NASIRUDDIN: u guys are adults
reCurse: Act like one
reCurse: If you must
Wontonimo: but if i close the browser i'll miss out on all the chatter ... (oh, discord)
NASIRUDDIN: u guys are not adults
NASIRUDDIN: u guys are gids
reCurse: Saved by struct
eulerscheZahl: i was sitting there like "who will get the kick first?"
reCurse: I don't kick
Astrobytes: Just ban.
Wontonimo: reCurse, i hear you prefer g++ over c++. Do you use a bash cat >> ./a << EOF ... EOF command to deploy g++ in CG ?
reCurse: I prefer a compiler over a language?
Wontonimo: yeah , i though it heard you say that a couple days ago
eulerscheZahl: makes no sense to me, you need both
Wontonimo: that you have a preference of compilier
reCurse: My preference is clang tbh
eulerscheZahl: never tried clang. what's better there? more telling error messages? better code optimizations?
jacek: who cares about compiler as long as it is the faster
reCurse: There's a lot of good things about clang, not sure where to start
reCurse: For CG the simplest reason is I get the same thing between windows and CG
reCurse: err, linux
eulerscheZahl: doesn't CG use g++?
Wontonimo: There's this youtuber. https://www.youtube.com/c/WhatsACreel who goes over assemble output of clang vs gnu vs ms compiliers. all produce very different levels of optimization under different situations
reCurse: Ah, true
Astrobytes: I like that creel guy
reCurse: Yeah of course
jacek: cereal guy?
reCurse: Though to be fair they're all relatively similar
reCurse: At this point
reCurse: Except msvc is terrible with intrinsics for some reason
reCurse: Like, garbage tier
Wontonimo: CG's is g++ 9.2.1 mode C++17 With the following libraries ‑lm, ‑lpthread, ‑ldl, ‑lcrypt
Wontonimo: but, you all already know that :)
reCurse: clang also has great diagnostic tools
reCurse: It's extremely well done overall
reCurse: Compared to the mess of gcc
reCurse: Just had to play catch up for years optimization wise
reCurse: But it's there now I think
reCurse: I think one of my favorite warnings is "wrong indentation" when you put 2 statements on the same line of a loop without braces
reCurse: One of those times where you're like, this compiler is a cool guy
kovi: wow Rémi Coulom described the application of the Monte Carlo method to game-tree search and coined the name Monte Carlo tree search
jacek: i use this al lthe time for (int i=0; i < 10; i++) cout << i << " "; cout << endl
RoboStac: g++ has that too (though I imagine it took it from clang)
reCurse: Oh you didn't know kovi? He's a big gun.
kovi: he really is
reCurse: Was a consultant for alphazero iirc
jacek: the Crazy_Remi eh
Astrobytes: Think he supervised the guy who came up with the alphazero stuff
Astrobytes: something like that
reCurse: Also came up with tons of stuff for mostly go
kovi: some of my ex-colleges work (eg. t1024) was active in gobang ai competitions
reCurse: Made Bayeselo for rating chess engines
kovi: but remi is definitely a level above
reCurse: CLOP for optimization, though I never got it to do anything good
reCurse: Had the strongest go engine for a while too I think?
Astrobytes: Yeah, Crazy Stones?
Astrobytes: Or Stone
1400179: Oh no you're right
1400179: My bad
Astrobytes: All good. Very impressive dude regardless.
jacek: but he didnt invent smitsimax nor jacekmax so he doesnt count
kovi: but smitsi is based on mcts
kovi: anyway...for d&b they are at same level :)
eulerscheZahl: but i have the suspicion that one worked harder on it than the other
kovi: coould probably win othello as well
jacek: but not :notebook: :soccer:
jacek: oh my
reCurse: I'm not smart I'm just good at pretending
reCurse: You're right, not always good at pretending
Astrobytes: From that statement I deduce you have found a bug.
Wontonimo: those who are good at pretending never admit at being good at pretending
Astrobytes: And some of those who think they are pretending are not (see imposter syndrome)
Wontonimo: (just plain imposter, no syndrome)
Wontonimo: speaking of imposters, I've gotta put my money where my mouth is and convert my uttt python code to c++. Thanks for all the inspiration (no /s)
Astrobytes: Nice. Plenty people around here willing to help if you have some questions as you go along
struct: games where you know all the cards but dont know what opponent draw are interesting for CG or no?
struct: You can still predict what card opponent is trying to play based on his previous actions
reCurse: That's heavily dependent on the game im
Astrobytes: Indeed. What did you have in mind struct?
struct: I agree, I also talked with astro, I might try to port it.
struct: Was thinking on porting amazons before it though, was thinking on making the starting position forced if I can find any balanced list like jacek did for othello
MSmits: struct, seems rather pointless with amazons to go through the trouble of forced starts
MSmits: doesn this have thousands of openings?
MSmits: I suggest you first try without the forced openings, let some people make a bot and see how varied the starts are
MSmits: if everyone starts the same way, then it might be necessary
struct: yes it has thousands
struct: but im not sure how good they are
MSmits: thats why you do testing. Code the game in such a way that you can easily add them later
MSmits: maybe I'll do a meta mcts to test, like i did with connect4
MSmits: though, not sure how painful this will be, with the enormous lists I will get inside the program
MSmits: lists like this i mean:
MSmits: they would be insanely long for amazons
struct: Ill check how big it is
struct: for first 2-4 turns
MSmits: and of course my tests would only be good if i can write a good bot. My cookie cutter searches dont work well in every game... i sucked at BT
Astrobytes: Yeah, as I said, I don't think it'll be necessary as I don't believe it's particularly bookable other than maybe a few bad moves.
1400179: Never a bad idea to make it as unbookable as possible
MSmits: well, in general you're right, but it's kind of a classic game. You don't want to veer too much away from it if it gives you zero or almost zero benefit
Astrobytes: Yeah. It's worth the experiment I guess but we have to test the original first.
MSmits: for chess it was a great decision to do it ofc
MSmits: the annoying thing about forced openings is also, that you have to be really sure they are balanced
MSmits: or at least balanced enough so that it doesnt matter
MSmits: well my csb overhaul was a bust, I converted to floats, got 10% sim increase, fixed some other weird stuff and then ended 10th. I think I float to 6 over time with submits from others
1400179: Converted to floats?
MSmits: yeah i had doubles, this was like my 2nd multi :P
Astrobytes: struct: 10 x !0 amazons right?
MSmits: i did br2k in floats, never bothered to go back to csb
MSmits: any increase wouldnt let me beat the NNs anyway, turns out i was right :P
MSmits: next thing i could do is avx, but thats a lot of work, i want to try code of the ring first
struct: First turn has 2176 possible moves
MSmits: probably divide by 8?
MSmits: cuz the board is square
struct: doubt its 8
MSmits: seems like 8 to me
MSmits: maybe 4
Astrobytes: oh nvm
MSmits: nah it has left right symmetry only
MSmits: so 2 =/
struct: yeah I thought it was 2, but im not very good at this stuff so I kept quiet
Astrobytes: Just port it already man
MSmits: and i talk a lot so all you gotta do is wait and i start to make sense eventually
1400179: Million monkeys theory?
MSmits: just 1 monkey that talks a lot
Astrobytes: Infinite Smits Theory
MSmits: makes sense
MSmits: btw, I now have 2 possibly 3 CG projects in my CS class
MSmits: people making a bot
MSmits: as their last years project
1400179: Can we strike a deal
1400179: If they shit up the chat you flunk them
Astrobytes: lol, Smits students (one at least) has a good track record
struct: Dutch people behave well
MSmits: If they cause problems I will tell them their grade lowerst 1 point every time i get another complaint. Will that do reCurse?
MSmits: these guys are pretty mature though
MSmits: 17-18 yrs old and very intelligent
Astrobytes: Your first (I think?) student in here was quite cool. Even asking when homework was due by pinging you in World chat :D
MSmits: i think most times it goes wrong it's a teacher dumping his entire class into CG while they barely know any coding
MSmits: Astrobytes yeah that was fun :P
MSmits: he said something like, i couldnt reach you through school medium and i knew you were here so...
Astrobytes: I forgot his name, but he did a contest? OR unofficial 'contest'
1400179: He knows where you slack off
Astrobytes: Maybe both
1400179: You have no escape
Astrobytes: And yeah lol
MSmits: right reCurse
MSmits: he did pacman
MSmits: ended high silver i think? maybe low gold
MSmits: top 20%
struct: Is it me, or does the middle line look thicker?
1400179: It is
Astrobytes: I don't remember tbh. thies joo? Was that him
1400179: Probably sitting on a pixel edge
1400179: You need to align it properly
MSmits: he's now doing game of drones
MSmits: as his project
Astrobytes: Oh cool
struct: I think I hve the same pixel problem on othllo
1400179: Yay 3d rasterization
MSmits: another guy is doing CSB
struct: If I make it fullscreen it fixes itself
Astrobytes: And the other one MSmits?
MSmits: she's doing some puzzles to find out whether she can code well enough for it, she's not sure
jacek: let them do :soccer: :imp:
MSmits: but she's good I think
Astrobytes: Well, hope she does. Good learning experience.
MSmits: yeah it is
struct: Interesting, the 2nd move can even have more legal moves than the 1st
MSmits: jacek, I would but it's probably too hard
Astrobytes: Also depends which puzzles she chooses to do
MSmits: struct makes sense, because you're not stuck against the border
MSmits: astro doing temperatures now I think
MSmits: isn't temperatures one of the easiest after onboarding?
struct: Yeah, I usually dont read anything about the games
Astrobytes: OK cool, make sure she doesn't get 'off the beaten track'
MSmits: maybe marslander 1 is easier
struct: Some people struggle on temperatures
struct: they are not aware of abs
jacek: they dont exercise?
MSmits: descent confused me at first
Astrobytes: shut up jacek :D
MSmits: because i wasnt used to the game loop
MSmits: so you have a loop within a loop
Astrobytes: Once used to the input stuff it's a case of doing it on paper first
MSmits: yeah, thats what i said as well, do it on paper first
Astrobytes: I mean |x| isn't that different from abs(x) is it
MSmits: I think for temperatures she made a negative list and a positive list, then sorted both. Seemed like a good apprach
Astrobytes: If you apply the correct constraints yep
MSmits: it's kinda hard to gauge if they're actually ready for it
MSmits: stuff on CG I mean
MSmits: some are so talented, they can dive in here on their own, never needing any help, but if they have barely coded before, how do i know?
Astrobytes: There're a lot of either mathematical theory or algorithmic puzzles so it can be a bit daunting depending on experience
MSmits: yeah you do have to be selective about the puzzles
Astrobytes: (and both together ofc :) )
MSmits: I came in here knowing more about math than about coding, so i sometimes forget that for most people its the other way around
1400179: Wasn't there a whole study about how to teach computer science that basically boiled down to nothing better than "some get it and some don't"?
MSmits: sometimes i do get the feeling it's like that reCurse
Astrobytes: Really? Interesting
MSmits: it's teachable to some degree
1400179: Gonna be a hard one to google I think though...
MSmits: might be similar to math and physics
MSmits: not sure if coding is even more like that maybe
Astrobytes: Coding is coding. Understanding the underlying theory is CS
Astrobytes: I know at least 2 people irl who work as a C# and Java developer who did degrees and never took a class in data structures and algorithms.
Astrobytes: (And one who's just an idiot)
1400179: Like I said gonna be a hard one to google, it's just a random memory from something I've randomly read years ago
therealbeef: I think everyone could learn it, but for many it will be so uncomfortably hard that they will give up
MSmits: therealbeef yeah that's a good point
1400179: Ohh maybe that one? https://dl.acm.org/doi/10.1145/2632320.2632354
Astrobytes: CS-wise, some people just see mathematics and instantly recoil
therealbeef: how to divide a problem into bits and solutions to standard problems and how to put solutions into code; it's all rules that you could learn
MSmits: it's hard to say when you have "learned" it though. At some point you need to be creative enough to use the tools well and solve problems. Not just understand what other people wrote
MSmits: you can learn the alphabet and write words, but writing a story is a different thing entirely
1400179: Yeah I think it's that one...
MSmits: cool, will read it
Astrobytes: Yes MSmits, great points.
therealbeef: when my wife did a minor in data science and had to learn python; it just didn't 'click' somehow, though she understood the theory behind functions and variables and classes
MSmits: yeah thats the same thing Angecide, or close enough
MSmits: I actually had a question about that in one of the tests i had to pass :P
MSmits: it was something like, think of an activity in the classroom and use Bloom to describe it, something like that
therealbeef: interestingly, she could understand code when reading it, but to create it was too hard
MSmits: I learned it mostly because I needed it to get something done
MSmits: like, write a script to turn a light on when i enter a room in my spaceship in space engineers.
MSmits: short programs to do something simple
MSmits: i think if you start like that and you're motivated, it helps a lot
Astrobytes: Yeah, there're definitely some who come from scripting games and such
struct: I started programming on Garrys mod
struct: You could program lua on there
MSmits: thats cool struct
MSmits: think you can use lua in minecraft as well?
Astrobytes: Haha I remember Garrys Mod
MSmits: I had one student learning lua that way
Astrobytes: Yeah, also that roblox crap
1400179: We have some serious crimes to answer for, not embedding better languages
MSmits: is lua a bad language reCurse?
MSmits: what would you have used instead?
Astrobytes: Hell yes. Have you ever used it?
1400179: Good question
MSmits: i never tried lua myself
Astrobytes: aCat loves it
1400179: Indexing starts at 1.
1400179: It is impossible to defend
MSmits: ok that settles that
MSmits: reminds me too much of vba
Astrobytes: And it's inexplicably used as a scripting language in many, many games
1400179: It's actually very explicable
1400179: It's incredibly easy to embed
Astrobytes: I was just about to type that
Astrobytes: Yes, it is
1400179: The real crime is to not have come up with something better to embed
1400179: But alternatives are rather lacking
MSmits: I remember people writing little tools in lua for browser games
MSmits: to calculate attacks and such
MSmits: probably just a consequence of them not knowing other langugaes
MSmits: because these were not embedded
1400179: That's very true
MSmits: at least all my RL friends do
1400179: Quite possibly bigger than lua given reach and scope
1400179: Lang itself is a bit better sure
1400179: But damage is far greater
MSmits: like not you
MSmits: it's hard to imagine I know :P
jacek: i thought of reinforcement language
1400179: RL in post-covid...
MSmits: ahh ok
MSmits: it's also Raidleader
MSmits: in mmorpg circles
MSmits: just to be complete
therealbeef: Hmm, the C++ assistant doesn't match the compiler. It complains about auto as function argument type, but compilation is ok
Astrobytes: Don't you people have IDEs!
Astrobytes: Just try to ignore it.
Astrobytes: Unless it's a real error. Good luck with that :P
MSmits: if I look at my C++ assistant, all the code is orange :(
MSmits: maybe should not put my opening book at the top....
struct: my intellisense breaks all the time too, dont worry
RoboStac: the trick is to have two sections of long unicode nonsense so the formatting fixes itself
therealbeef: the assistant also craps out when using too much template stuff, but that's understandable given the resources
Astrobytes: The assistant craps out if you look at it.
MSmits: template stuff i shard to compile?
MSmits: as in using more tiem?
MSmits: my typing sucks today
MSmits: I guess the assistant is good for small programs, but who would use c++ in a small program generally... I only ever use it on 500-1k line programs here
therealbeef: yes. i once build a tictactoe solver with template meta programming. took 1 minute to compile
MSmits: maybe you overengineered that :P
Astrobytes: I only tweak parameters and stuff when I use the CG IDE, unless as you say it's a puzzle or something, when I use Go or python or something (C++ too)
therealbeef: well, you get instant lookup of the solution at run time, so the payoff is amazing
struct: What is max time for compilation on CG?
MSmits: I once did a solver like that in python in the browser basically. It was actually a minimax, but it remembered all the results, so on the first move it solved the game
therealbeef: i understand CG has a 10 sec compile limit, otherwise c++ would be even more overpowered
struct: Depends on language right?
RoboStac: around 10 seconds
struct: CG still compiles everytime the bot plays a match right?
MSmits: thats really weird that that would be unclear
Astrobytes: Didn't they 'apparently' do something about that?
reCurse: It used to yes, but they did optimizations
reCurse: The state of which I'm not sure
MSmits: i guess you'll see when they update the compiler and old bots break
MSmits: if they break on the leaderboard as well, then apparently it's recompiled
reCurse: Not necessarily
MSmits: not sure if that ever even happens with c++. Aren't they big on backward compatibility?
reCurse: Definitely not gcc lol
MSmits: hm ok
RoboStac: only for fully defined code and it's very hard to not accidently hit implementation / undefined things
MSmits: ah I see
RoboStac: and even then more recent versions have started to break stuff
Astrobytes: Relevant forum post: https://www.codingame.com/forum/t/languages-update/1574/133
Astrobytes: (re compiled bot versions)
Astrobytes: There's another one I'm sure but I fail to find it.
struct: I think I recall thibaud saying its not stored
struct: But I can be wrong
MSmits: must be a lot of work keeping all these languages somewhat updated
reCurse: Without containerization :scream:
struct: Draws are imposible on amazons apparently
struct: Was trying to figure why my code had no check for that
reCurse: Best game feature
MSmits: only if the game is complex enough that bots don't sense the p1 or p2 advantage at the start
MSmits: it's not good in uttt :(
Astrobytes: Have you played Amazons?
MSmits: even if it does have draws
MSmits: i havent
MSmits: have you?
MSmits: if so, is it fun?
Astrobytes: Yes. And yes, it is.
Astrobytes: You can play it with just a chessboard
MSmits: with pawns i guess
Astrobytes: (obviously different size)
Astrobytes: Yeah, queens and pawns
MSmits: can humans make sense of the strategy to use in this game?
MSmits: In Othello this seems quite hard
reCurse: Is it
MSmits: well for me anyway
MSmits: i know its good to have corners and edges in othello
MSmits: but thats about it
jacek: because you simply never played othello
jacek: or at least at some amateur level
struct: Your mind is shaped for Yavalath
MSmits: it is :)
Astrobytes: heh heh
MSmits: no I am actually pretty good at yavalath. I could beat my own minimax bot sometimes at highest level
MSmits: possibly the book is in my head :P
reCurse: You've probably studied opening theory as much as a chess titled master
Wontonimo: yeah me - just implemented bitboard logic in c++ for the miniboards with win lookup using int
MSmits: for yavalath yeah reCurse
MSmits: so much staring at meta mcts
Astrobytes: This is why you need to make an informal paper and send it to the dude
Astrobytes: (not The Dude but the Yavalath dude)
MSmits: I might do that at some point
MSmits: yeah Cameron you mean
MSmits: Wontonimo gj
reCurse: Win lookup with an int? :scream:
MSmits: think you just made it worse :P
Wontonimo: oh haha
MSmits: not sure if it matters much whether you use int, uint, uint8_t or uint16_t. I generally go with the smallest type that fits and prefer unsigned
MSmits: for a small table like that, may not matter as much
Wontonimo: for sure
MSmits: i went all out with lookups for uttt, something i may change on my next rewrite
MSmits: I have a 18 bit lookup for the full board win
Wontonimo: oh, sorry, it is bool WIN[1<<9];
Wontonimo: with the index being an int
Wontonimo: i'm on crack obviously
Wontonimo: it's a 9 bit lookup
Astrobytes: And I misread your initial statement too, my bad
MSmits: you can even fit your entire win table in 8 uint64_ts
MSmits: 1 bit per board
Wontonimo: OH ! Thank you!
MSmits: it's win, or not, so it's a 1 bit thing
reCurse: But what about draws
MSmits: it';s a 1 player look up
MSmits: so no draws
reCurse: Won't someone think about the draws
Wontonimo: no draws. there's never draws in uttt
Wontonimo: righrt? i thought it was designed to always have a winner in uttt?
Wontonimo: do tell
struct: you can draw if you have same number of miniboards
MSmits: reCurse i think you're probably messing with us, but Wontonimo does a separate check for each player when they make a move, to see if they won. if not, then he checks if the board is full
struct: and neither player has 3 in a row
MSmits: so he needs 9 bit only
MSmits: for the board
Wontonimo: you can't have the same number of miniboards cuz there are 9, one will have at least 5 boards
MSmits: a board can draw Wontonimo
struct: to win a miniboard you must make 3 in a row
MSmits: I'll just look up a draw
reCurse: You either lookup or you don't...
reCurse: Why check for full board after lol
MSmits: what i mean is, if you store a board as 9 bit per player and then make a move as p1, you check if it's a win for that player
MSmits: if not, then you check if the board is full, and if so , it;s a draw
MSmits: looking up a draw, requires a combined p1p2 state
MSmits: thats an expensive lookup, cache-wise
MSmits: it's 2^18 combinations instead of 2^9. Or 3^9 if you do a ternary lookup
reCurse: 5kb lookup, should stay in cache easily
MSmits: what is 5kb?
Wontonimo: okay, i must have misread. I thought the rules for no-draw also applied to the miniboards.
Astrobytes: 0.000005 GB
Astrobytes: MSmits :P
MSmits: 2^18 lookup is not 5kb
MSmits: if you use ints, then it's 1 Mb
MSmits: I tend to use 2 bit to make it more compact
MSmits: stil 250 kb roughly
reCurse: 3^9*2 bits
MSmits: might have made a calc error there, but not 5kb :P
MSmits: ohh like that
MSmits: well that's actually what i would do yes, but it requires you use ternary
MSmits: operations on a ternary board are expensive
reCurse: Adding and subtracting is expensive?
Astrobytes: But just for lookups it isn't. I swear you said this yourself MSmits
MSmits: well you'd look up a from either a small array of powers of 3, or you do the powers themselvs
MSmits: it's not Astrobytes, but you still have to do some operations
struct: cache gain might be better though
MSmits: I have actually no idea what the overhead is of a small array of 9 powers of 3
Astrobytes: Yeah but negligible cost in the grand scheme of things if I understood it all correctly before
Kemeros: Hello! When do puzzles of the week end?
MSmits: might be, the exact results of tests I did are a little fuzzy
MSmits: the different ways of encoding the board in uttt were all in the same ballpark, each with pros and cons
reCurse: Anyway my point was if you're going to hit the cache might as well hit it all the way
MSmits: yeah if it's an isolated change, but it never is with uttt. It's always a balance between lookups and calculation. Not all lookups are worth it
MSmits: afaik karlis o still uses a 512 lookup for wins
Astrobytes: I'll save further commentary for when I finally work on UTTT in 10 years.
MSmits: lol, you mean after I have rewritten it another 5 times :P
MSmits: nah, 1 more, just 1 more time
jacek: uttt will be written in quantum lang by then
Astrobytes: No. When I am finally bored enough to write something for it.
reCurse: As long as you rewrite it poorly
MSmits: I only do poorly reCurse
reCurse: tbf I've tried so many approaches I forgot if what I'm babbling about was the best or not
MSmits: yeah we even exchanged pms about this a few times
MSmits: you normall dont do that
reCurse: Easier to do when you ended up with better lol
reCurse: Don't care about that crap anymore
MSmits: will you ever try to write a normal search bot again or are you just gonna do networks from now on?
reCurse: Only for contests
MSmits: ah ok
Astrobytes: +1 and will you attempt Yavalath with your new pipeline?
MSmits: I dont recommend it no, that will be frustrating
reCurse: I'm already having trouble with othello
Astrobytes: Due to the difficulties Robo had with it?
reCurse: Not sure why
MSmits: robo has a great yavalath bot
MSmits: definitely the best bot
MSmits: but, you know...
Astrobytes: Books right
MSmits: if you look at the amount of effort people put into their yavalath.. this is a really strong field
jacek: if i can do othello, why cant you?
MSmits: yeah book
Wontonimo: well, mishandling draws is probably why my python implementation failed to achieve greatness (as much as python with its slowness can)
MSmits: its actually smaller than oware and othello, my yavalath book
MSmits: jacek you did ntuples i think?
MSmits: incorporates far more domain knowledge
MSmits: that gives you an edge. That's not to say reCurse cant beat that, but it's harder
jacek: ntuples + frontiers and mobility
reCurse: There's something wrong but I'm not sure what
reCurse: It gives high winning eval on a proven loss 10k nodes away
jacek: multiple moves backpropagation error?
reCurse: It's weird...
reCurse: Nothing is impossible but I did check multiple times
Astrobytes: you're not counting pieces surely
jacek: how do you deal with passes
reCurse: 2 moves
MSmits: ohhh passes
MSmits: mmh ok
Astrobytes: yeah could be pass moves
reCurse: I don't do implicit signing stuff
reCurse: It's always checking against player
reCurse: I mean it's the same search with 10k nodes that gives proven loss
reCurse: But initial eval is like 70% win
reCurse: Shouldn't happen
MSmits: it's fairly typical for mcts to do this and both jacek and Robo had this problem on BT, where it would give a high eval score, then it plummeted and they lost
reCurse: But I had zero such issues on BT
RoboStac: don't you need to lose to have this issue?
jacek: i resubmited and i think i have more issues with it
MSmits: yeah i have no clue why or how, just pointing it out
jacek: around 60, it even gives eval 1.0
jacek: but its losing
MSmits: might be that NN is not trained well for the late game?
MSmits: those states arent visited much maybe
reCurse: Robostac :P
jacek: it was trained from endgames first
reCurse: I have the feeling I'll end up spending way more time on othello than I wanted to...
jacek: but also i had some issues with weights and encoding this time, i dont know why
MSmits: reCurse maybe wait till struct does his forced opening thing?
reCurse: I don't really care about the result
reCurse: But it shouldn't give such wrong evals on what should be simple
MSmits: ah ok, you just want to experiment
reCurse: Weird bugs with no explanation kills me
Astrobytes: Active learning MSmits :)
MSmits: reCurse that sounds like what every good coder can't abide
MSmits: I never had a bug i did not end up fixing
jacek: he says loss, then ... then loss again :v https://www.codingame.com/share-replay/523515444
MSmits: I can't stop searching
Astrobytes: No sht :D
MSmits: i know why that is
MSmits: you did something thats outside my solved area
MSmits: so i resolved it
MSmits: i think thats what it is anyway
MSmits: yea they are lookups
reCurse: I wonder if you can do adversarial training to output a troll eval that's hard to detect
MSmits: like jacek one time printed book on every move :P
Astrobytes: Someone else did too (in othello at leasT)
MSmits: if you mean old john, that :poop: is real :)
Astrobytes: A while ago
Astrobytes: Not old john
MSmits: ah ok
Astrobytes: Anyway, out for tonight, gn all
jacek: oh my
MSmits: we need to stop shortening things
MSmits: jacek can't handle
jacek: AutomatonNN whats that
AutomatonNN: eulerscheZahl is there a way to see a lot of problems with the same code you dont need to consider t
MSmits: ohnoes, now you woke him up AutomatonNN
AutomatonNN: hey madknight, what do you mean by that in the contest?
MSmits: let;s get the whole gang in here AutomatonNN
reCurse: Stop the spaaam
MSmits: it worked
MSmits: I wonder how long i can put off learning to write my own NN's
MSmits: put it off for a year so far
reCurse: Do you enjoy unexplainable pain
MSmits: I highly doubt you would find counterbooking players on various board games less painful
reCurse: Or maybe satanic rituals
reCurse: English I would say
reCurse: I answered the way it could
MSmits: then you know Englsh
MSmits: Chenalator, learn C# next
MSmits: C# is easy to learn and a lot faster than python on CG
MSmits: fastest would be c++, but C# is easier I think
MSmits: and quite sufficient for most games
reCurse: You're assuming a lot out of that question
MSmits: I guesstimate
reCurse: Maybe it was the best for clash? The best to do web? Who knows?
reCurse: The true purpose lost in the chaos of time
MSmits: so... dont use C# for clash
MSmits: unles you enjoy very explainable pain
reCurse: ...or angelic rituals?
MSmits: or that
struct: Just dont do clashes would be more suitable answer
MSmits: I had students in my classroom cyberslacking today
MSmits: doing CG clashes!
MSmits: normally students play stupid games when cyberslacking, at least clashes are a step up from that
reCurse: Citation needed
MSmits: dont understand that phrase
MSmits: does that mean it needs proof?
MSmits: my point is, for people who still need to get some familiarity with syntax and understanding coding problems clashes are better than racing a car on a track in your browser :P
reCurse: What if the development of gaming interests contributes to learning C# to do a game in Unity
MSmits: yeah that would be great. I could also say that the guy who keeps playing online chess in my classroom is trying to develop an appreciation for AI :)
MSmits: I actually played a match againt him today and it was a draw =/ I was 12 points up and then he infinite checked me
struct: Ok I cant understand this pixi stuff
reCurse: You should have resigned instead
reCurse: He deserves the win
MSmits: I suppose
struct: I drew the lines with line instead of having overlaping lines with rectangles
struct: and still have the same problem
struct: on middle
MSmits: yeah i should have resigned
reCurse: It's probably not the primitive you use but the rasterization
reCurse: Try aligning with +0.5 or -0.5 maybe
MSmits: he already beat me once playing uttt on the whiteboard when he was player 2 :P
MSmits: and i was using teccles
struct: will try, thanks
MSmits: so i was basically playing perfectly for 10 turns or more because of teccles and he still won
reCurse: That's what happens with random rollouts
MSmits: i even said beforehand, are you sure you dont want to be p1, i have a serious advantage
struct: He probably stole your book
struct: These optical illussions
reCurse: Stop using programmer colors
reCurse: Oh wait I was thinking of something else nvm
MSmits: struct do you mean like in D&B?
reCurse: If D&B then my comment applies
MSmits: i recently noticed those illusions when someone mentioned it
struct: nah, it just looked like the white cell was passing the boarder
struct: Which is impossible
kavandoctor: are there bots in coc?
Mr.Ma: This account is a CodinGame bot for Clash of Code.
Discover why we added it and how it works here: https://www.codingame.com/blog/clash-of-code-time-has-come-for-clash/