From CG community
Jump to navigation Jump to search

Default avatar.png AhiezerRamirez: :grinning:

Default avatar.png chokemedaddy: kinky

Default avatar.png Celtis24: how can we fight friends?

BlaiseEbuth: If you have friends, don't fight them.

Salted: Try insults first

Default avatar.png Celtis24: yes obvl... but games you know

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

Default avatar.png Celtis24: thanks

eulerscheZahl: only 11h to wait

BlaiseEbuth: Yeah ! I wanna win the SOny air conditioner !

MSmits: morning

eulerscheZahl: 1st prize seems some gaming console. but i have no idea which one

eulerscheZahl: morning

BlaiseEbuth: morning

eulerscheZahl: anyways, time to go to work (aka switch to the other PC)

eulerscheZahl: bye

MSmits: bye Euler

BlaiseEbuth: o/

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 !

BlaiseEbuth: :p

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

BlaiseEbuth: ^^

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

Default avatar.png MuhammadMehediHasan: :D

Default avatar.png MuhammadMehediHasan: anyone here?

kowodo: yep

BlaiseEbuth: No

Default avatar.png MuhammadMehediHasan: lol

Default avatar.png MuhammadMehediHasan: 🤣I am new here

kowodo: cool. Enjoy!

Default avatar.png vinacal: How i can see again my code in "clash of code"

jacek: if its finished, you should have it in notifications

Default avatar.png ShinobiCode: Hi everyone. How can I see how other's solutions to puzzles that I have also solved? I need to see if I'm the only one using a 2d array to solve porcupine fever.

jacek: in the results

jacek: learn from best coders

Default avatar.png ShinobiCode: Just found it. Thanks!

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

Default avatar.png Hogachaka: openCV + pyTesseract :)

N01S3: Yeah I found that towardsdatascience blog post as well haha

Default avatar.png PIRT: hi

jacek: look for OCR

Default avatar.png Thiccboi69430fgd: Hi

Default avatar.png Thiccboi69430fgd: Does anyone know C++

Default avatar.png Thiccboi69430fgd: ?

Default avatar.png Thiccboi69430fgd:

Alshock: I threw up. Twice.

VizGhar: o.O

MrPapaya: wow obfuscated cpp code

MrPapaya: have never seen such thing

Default avatar.png EvilCocktail_62b1: How about Easy OCR?

Default avatar.png EvilCocktail_62b1:

Kitkat260: sup

eulerscheZahl: 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:

1400179: Ah

eulerscheZahl: and it's a codebusters variation

eulerscheZahl: The Hunter:

Default avatar.png Zead456: how to be good programmer?

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

Astrobytes: Yup.

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 :)

reCurse: Yeah

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

reCurse: Sure

eulerscheZahl: not the jacek i was expecting

eulerscheZahl: fixed it for you:

jacek: do people actually see my memes links? :o

Astrobytes: Yes.

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.

eulerscheZahl: :grammophone:

Astrobytes: It's called a turntable these past 75 years or so euler... :P

jacek: let him enjoy his childhood once more

Astrobytes: :D

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: no

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

VizGhar: #not5percent

eulerscheZahl: go to the multiplayer arena, probably more fun than the contest

VizGhar: :thumbsup:

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

reCurse: 9/10

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: Yeah

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?

reCurse: Yes

jacek: finally detronized karliso eh

Wontonimo: really? I was expecting your to say no

Wontonimo: cool

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

Astrobytes: Epic.


NASIRUDDIN: how old are u

reCurse: He likes ponies so I'd say anywhere between 7 and 12

jacek: about 30





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

reCurse: Behave

NASIRUDDIN: u guys are adults

reCurse: Yes

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.

Default avatar.png isimkullanmiyorum: Hello

reCurse: Hi

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

Wontonimo: thanks

eulerscheZahl: never tried clang. what's better there? more telling error messages? better code optimizations?

reCurse: Hmm

jacek: who cares about compiler as long as it is the faster

jacek: st

reCurse: Wrong

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. 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?

Astrobytes: ...

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

jacek: gobang?

kovi: but remi is definitely a level above

reCurse: CLOP for optimization, though I never got it to do anything good

reCurse: etc

reCurse: Had the strongest go engine for a while too I think?

Astrobytes: Yeah, Crazy Stones?

Astrobytes: Or Stone

1400179: CrazyGo

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:

Default avatar.png Iachaudray: How are yall so smart

Default avatar.png Iachaudray: iIhave to search up your guys' abbreviations lol

jacek: oh my

reCurse: I'm not smart I'm just good at pretending

Astrobytes: Lies!

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)

jacek: :tada:

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

reCurse: o

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?

Astrobytes: *10

struct: yes

1400179: Whoa

MSmits: i did br2k in floats, never bothered to go back to csb

Astrobytes: Cool.

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: lol

jacek: unique?

struct: No

MSmits: probably divide by 8?

MSmits: cuz the board is square

struct: doubt its 8

MSmits: seems like 8 to me

MSmits: hmm

MSmits: maybe 4

Astrobytes: 8?

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

Astrobytes: *have

MSmits: If they cause problems I will tell them their grade lowerst 1 point every time i get another complaint. Will that do reCurse?

1400179: Sure

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

Astrobytes: ^

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

MSmits: yes

1400179: Probably sitting on a pixel edge

1400179: You need to align it properly

struct: thanks

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

jacek: descent

MSmits: sure

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

MSmits: brb

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.

Default avatar.png Angecide: reCurse u have a link to that study?

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?

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

Default avatar.png Angecide: reminds me of the different stages of Bloom's taxonomy

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

jacek: colobot?

MSmits: is lua a bad language reCurse?

1400179: Yes.

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: Inexplicably...

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

MSmits: many people call javascript a crime too

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

jacek: RL?

MSmits: real-life

jacek: oh

MSmits: like not you

MSmits: it's hard to imagine I know :P

jacek: i thought of reinforcement language

1400179: RL in post-covid...

jacek: learning*

jacek: ><

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: :D

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

Astrobytes: heh

MSmits: lol

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?

reCurse: Unclear

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: ?

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:

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:

Astrobytes: ^

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.

MSmits: cool

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

MSmits: sure

jacek: or at least at some amateur level

struct: Your mind is shaped for Yavalath

MSmits: it is :)

Astrobytes: heh heh

reCurse: *book

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[512]

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

Astrobytes: Yep

MSmits: Wontonimo gj

reCurse: Win lookup with an int? :scream:

Wontonimo: long

Wontonimo: sorry

MSmits: think you just made it worse :P

Wontonimo: oh haha

struct: :door:

Astrobytes: uint...

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

reCurse: wat

Wontonimo: righrt? i thought it was designed to always have a winner in uttt?

struct: no

Wontonimo: wha?

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

struct: no

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: :P

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

reCurse: And?

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: :'(

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?

reCurse: No

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?

RoboStac: :)

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: sure

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

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

MSmits: gn!

reCurse: nn

Wontonimo: gn

jacek: nn?

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: lol

MSmits: let;s get the whole gang in here AutomatonNN

jacek: oO

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

Default avatar.png Chenalator: what is the best language to learn

reCurse: English I would say

Default avatar.png Chenalator: Code wise

MSmits: morse

reCurse: I answered the way it could

Default avatar.png Chenalator: I only know python

Default avatar.png Chenalator: Thanks

MSmits: then you know Englsh

Default avatar.png Chenalator: Nvm then

Default avatar.png Chenalator: Have a good day chaps

MSmits: Chenalator, learn C# next

reCurse: !howtoaskaquestion

Default avatar.png Chenalator: What is C# used for?

MSmits: C# is easy to learn and a lot faster than python on CG

Default avatar.png Chenalator: ok thanks


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: yeah

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

Default avatar.png Chenalator: :heart_eyes:

MSmits: true

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

reCurse: Spoilers

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: ...

reCurse: Citation needed

MSmits: dont understand that phrase

MSmits: does that mean it needs proof?

reCurse: Sure


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: /troll-stretch

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 :)

reCurse: lol

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

reCurse: oof

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

MSmits: lol

struct: He probably stole your book

MSmits: :)

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

MSmits: tunneling

Default avatar.png Rodrigo_the_coder: nonononono

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: