From CG community
Jump to navigation Jump to search

Default avatar.png Raghuveer: ok

Default avatar.png midoooo: how to avoid clashs with code size

Default avatar.png midoooo: ??

danabanana: isn't it fun? it kind of pushes you to make the least possible number of lines but still having correct answer

LelouchVC2: It's terrible

LelouchVC2: In the end you have a mess that would get you fired if you submitted anywhere

LelouchVC2: Shortest mode gets you barely working code that probably relies on something it shouldnt

Default avatar.png Rikkuss: *$

caubeloatchoat24: Mode game is ramdom right?

Default avatar.png TheEvilPencilCase_690d:

Default avatar.png TheEvilPencilCase_690d: am i way off??

Default avatar.png TheEvilPencilCase_690d:

Default avatar.png BioAuntie_51e0: can someone please help me here i am kind off in the dark:sweat_smile:

Uljahn: Automaton2000: teach me how to code

Automaton2000: how do you not have a lot of points

danabanana: @evilpencilcase: you have to be careful of setting lowest temp. 0 > negative numbers. also why did you have a hardcoded t > -3? your code should be able to process any values

Default avatar.png KrasserTyp: hello guys

Default avatar.png KrasserTyp: hows it goin

Default avatar.png KrasserTyp: you in work?

Default avatar.png Ninii: heyyy

Default avatar.png KrasserTyp: hellloo

Default avatar.png KrasserTyp: u grill?

Default avatar.png KrasserTyp: come private chat

AntiSquid: get your own grill, stop begging for others to share theirs KrasserTyp

Default avatar.png KrasserTyp: so u own this grill?

Astrobytes: Is it a George Foreman?

Default avatar.png KrasserTyp: no weber

Astrobytes: Ah I see

Astrobytes: Gas or charcoal?

Default avatar.png KrasserTyp: good for cooking raw meat

Default avatar.png KrasserTyp: gas

Astrobytes: Meh. Wanted charcoal. Oh well.

Default avatar.png tanmaycodernovice: lol

Default avatar.png KrasserTyp: hows your cat

Default avatar.png KrasserTyp: @astrobytes

Default avatar.png Ninii: :cat:

Uljahn: :cat:

Default avatar.png KrasserTyp: :cat:

Astrobytes: :smile_cat:

Default avatar.png KrasserTyp: soooo hows your cat doing

Default avatar.png mlllll: :smile_cat:

Astrobytes: Great, thanks.

Default avatar.png KrasserTyp: nice, good to hear

Default avatar.png KrasserTyp: pretty cute cat you got there

jacek: :3

Default avatar.png Forres: guys what do u think about starting coding at 21 and studying electrical engineering 3rd class. Before this year i didnt know anything about coding and may i be programmer in 1.5 year if i study hard ?

JeanMax: you can be a programmer right now

JeanMax: go!

Uljahn: you mean studying electrical engineering and computer science at the same time or what?

Default avatar.png Forres: nope just studying electrical engineering but i wanna be a programmer

Uljahn: why don't you quit EE and concentrate on programming then?

Default avatar.png Forres: because i always fnished it

Default avatar.png Forres: already"

Uljahn: ah, i see

Uljahn: then yes, study hard and become programmer, nothing wrong with it, im electrical engineer myself :)

Uljahn: also programming for me is more like a hobby so i study in a relaxed way

Default avatar.png Forres: thanks a lot , also which programs does an electrical engineer need in electrical and electronic workplaces

Uljahn: it depends i guess, but matlab/simulink and labview are good to know

Default avatar.png Forres: Thank you so much!

Scarfield: This site is great for programming in general, but if you want to learn languages for EE there are probably much better suited sites out there :)

eulerscheZahl: from my own time as a student i would add pspice to the list

sirsatan: is it similar to LTSpice ?

Hjax: im sorry Astrobytes ive failed you

Scarfield: there is still time, but you have succesfully joined the cat cluv

Scarfield: club *

Hjax: i have!

Hjax: and hes wearing a bow tie

Scarfield: he sure is :D

Scarfield: gotta look nice for a picture

Scarfield: his curly ears kinda looks like horns :p

Astrobytes: Oh hey Hjax, well maybe today then ;)

Astrobytes: I'm loving his bow tie, handsome lil guy he is

Hjax: black cats are so hard to take pictures of

Hjax: thats probably the best picture ill ever get of him

Astrobytes: Yeah, my other cat's black, kinda blends into most photos

Hjax: i didnt quite finish my rust bot last night

Hjax: finally got into a fight with the borrow checker

Hjax: i resubmitted a few times to see if i could bring the boss down

Hjax: and i had the most unfortunate submit ever

Hjax: above 70% against the boss and snef

struct: Boss strength increases per submit

Hjax: 28-0 against bearded whale

Hjax: and like, 20% against field 3

Astrobytes: lol, not good

Astrobytes: Ah the Rust ownership stuff, kinda what stops me from learning it if I'm honest :D

Hjax: i wonder what field 3 is doing

Hjax: i consistently lose to him

Astrobytes: Not sure, his english is pretty bad so he doesn't talk too much

Hjax: time to learn japanese

eulerscheZahl: what languages do you speak beside english?

eulerscheZahl: don't say python

Hjax: please refer to my country for origin for the answer to that question

Scarfield: hi AsthrelloBots

Hjax: dumb american that only speaks english :D

eulerscheZahl: broken spanish?

eulerscheZahl: i see :D

Hjax: i took french in high school, i was terrible at it

Astrobytes: Hi Scarfumble

eulerscheZahl: for European standards i'm horrible at languages too: only German and English

Scarfield: whats your rollout count for othello? :)

eulerscheZahl: and Latin, forgot parts of it again

Astrobytes: My rollout count? I'm not using MCTS

Hjax: bbl

Scarfield: vir pudens non contra ventum mingit - wise man does not pee up against the wind

Scarfield: oh i though you did MCTS

Astrobytes: dulce et decorum est, pro patria mori

Astrobytes: -,

eulerscheZahl: it's sweet and ? to die for your country

Astrobytes: Nah, a/b here

Astrobytes: fitting eulerscheZahl

Astrobytes: I didn't take Latin but I know that from the Wilfred Owen poem

eulerscheZahl: oh, decorum means the same as dulce

eulerscheZahl: a Hendiadioyn

eulerscheZahl: and of course i misspelled it: Hendiadyoin

Scarfield: oh, now i know what you are talking about :p

Default avatar.png BaP: hello

Scarfield: hi

Astrobytes: Damn, I haven't heard that word since school

Default avatar.png BaP: i'm newbie

eulerscheZahl: i'm not talking about my own patriotism obviously :D

Scarfield: über Alles :p

eulerscheZahl: wanted to take the basic class in Latin but there was none offered at my school

eulerscheZahl: so i took the advanced class to avoid German and English in my final exams

eulerscheZahl: I hate creative writing

Astrobytes: They dropped everything except German and French at my school a year or so before I got there. Used to offer ancient/modern Greek, Latin, Spanish

Astrobytes: My uncle used to be fluent in ancient Greek, he was planning to be an archaeologist

Astrobytes: Then at uni, his roommate turned out to be gay, so he quit, moved to London and joined the police :P

eulerscheZahl: what a weird reason to quit university :D

Astrobytes: He's massively homophobic and racist, that's why he joined the Met police :D

eulerscheZahl: run or you get infected

eulerscheZahl: but the racist joining the police makes me sad

MisterStiff: fun fact, i got 96 in my college OOP class but i can barely do a codingame challenge

Astrobytes: He's a nasty piece of work tbh, don't have many dealings with him thankfully

MisterStiff: am i alone here?

Astrobytes: Break out your problem solving skills ;)


eulerscheZahl: your OOP class is all about theory. get your hands dirty ;)

MisterStiff: nono, its all practice

Astrobytes: Scarfield - on point!

MisterStiff: we never really looked at theory, he just told us what he wanted and we had to get the end result

Scarfield: to accurate sadly

Scarfield: too *

Astrobytes: yup

Astrobytes: Oh I got my MRI scan results today

Astrobytes: I have multiple fractures in my spine

Scarfield: :o

MisterStiff: bruh what hapenned

MisterStiff: happened*

Astrobytes: It's usually caused by osteoporosis, but at 37 years of age I'm a bit young for that

Astrobytes: So need to have blood tests, then a bone density scan

eulerscheZahl: damn, doesn't sound good

MisterStiff: yikes

eulerscheZahl: at least you know the reason for the pain now

Astrobytes: No, it certainly does not. But yeah euler, it's a relief to know there's something to work towards and it's not a complete mystery

Astrobytes: In other news, I got a few thousand back in tax. Not all bad :grin:

eulerscheZahl: any plans with the money?

Astrobytes: Nah, just save as much as I can. Doing less work currently due to the back issue so nice to have some extra on hand

ZarthaxX: Astrobytes since when do you have those fractures? D: sounds so sad

Astrobytes: Well the pain started in February, but some fractures are older, and some are newer, so it's an ongoing thing

Scarfield: :/ any idea how you have made those fractures?

ZarthaxX: but those happened like passively?

Astrobytes: And I've got quite a high pain tolerance so I wouldn't necessarily know

ZarthaxX: without doing excercise, just normal movement?

Astrobytes: Yeah

ZarthaxX: sheez

Astrobytes: Could be any number of things, I won't speculate for now

Astrobytes: Just wait for tests and scans to rule out or confirm a few things

eulerscheZahl: what's the ETA for doing these tests?

Astrobytes: Blood tests Thursday, should have results early next week. Bone density scan I'm not sure, gotta go to Glasgow for it, and there's a backlog because of the virus

Default avatar.png rak1507: You live in scotland?

Astrobytes: I do indeed

Default avatar.png rak1507: Same

Astrobytes: I'm Falkirk area

Default avatar.png rak1507: I'm in edinburgh

Astrobytes: Nice to see a fellow Scot on here, don't see too many

Default avatar.png rak1507: yeah

Default avatar.png rak1507: Is there a way to golf n%4==1 in python by any chance?

MisterStiff: how long have yall been coding? I just finished my 1st year of college in CS

struct: n%4>0

LeBaoHoang8A4: Whut?

Default avatar.png rak1507: no

Default avatar.png rak1507: n%4 can be 2 or 3 as well

struct: ah right

struct: I dont think so then

OiYouYeahYou: Is there a way to turn off the code hints?

struct: grats Hjax

Hjax: not guaranteed yet

Hjax: but this submit is crushing the boss

struct: it is

Hjax: and positive against field 3

Hjax: which is very important

struct: still mcts?

Hjax: yes

Hjax: i made my rollouts smarter

Hjax: slightly slower too

Hjax: but smarter

Astrobytes: oh looking good there man :+1:

Hjax: im ready to lose every single game in wood 1

Hjax: maybe a tea pot will timeout vs me

darkhorse64: Sorry, I fixed my timeouts

Hjax: darn

Hjax: now time for the massive losing streak!

Hjax: will i win a game

darkhorse64: Against me sure

Hjax: hey i won one!

Hjax: woooo

Astrobytes: You'll defo win a few

Hjax: my bot seems like its good against the other mcts bots

Hjax: and bad vs the minimax ones

Astrobytes: It can beat me sometimes

struct: I wonder if someone will make mcts work here

struct: I mean to get to top

MSmits: later struct, later :)

Astrobytes: :grin:

MSmits: finishing off a meta mcts for oware, it's a lot of work, once thats done I'll try othello

Hjax: i cant wait to lose to you MSmits

MSmits: everything that works with minimax should be at least workable with EPT mcts, if not necessarily better

Astrobytes: That's my bet too

struct: hmm this lose is strange dbdr


Hjax: yeah that involves an evaluation function though

MSmits: yeah

Hjax: which i havent bothered to write yet lol

MSmits: thats why i think it will probably work

tomatoes: :laughing:

MSmits: you need one here for sure

Hjax: yeah ill get one eventually

Hjax: speed is more important to me right now


tomatoes: something similar :thinking:

Hjax: now i get to lose to the cool kids

struct: I guess if you are left with 1 piece so early

struct: its insta loss

struct: doesnt matter where you move

struct: But is strange your bot said 0.14 after your move

struct: and jace k was sure of loss

MSmits: from what i read you need to evaluate patterns on the boar

MSmits: it's gonna be challenging to make that fast hjax

Hjax: well i just want my mcts to be fast first

Hjax: before i worry about eval

MSmits: do you mean the sim mostly?

MSmits: or are you worrying about backprop and uct and such?

Hjax: everything, although i think i do spend most of my time in the body of my rollout function

Hjax: im only getting about 7k rollouts on move 2 right now

MSmits: well i wouldnt spend too much time optimizing randomly rolling out if you're going to end up using EPT

Hjax: which doesnt seem very good

MSmits: random rollout is very game specific

Hjax: my rollouts arent completely random anymore

MSmits: you dont learn that much from optimizing it I think, aside from some general bit tricks and such

MSmits: ah ok

ameybhavsar24: join clash

MSmits: pdep/pext is going to be necessary here for good eval

MSmits: so you can check specific parts of the board

Hjax: yeah java doesnt have pdep

MSmits: C# neither

MSmits: i have a function that does it, but horribly slow

MSmits: only use it for meta mcts in non-bottleneck situations

Hjax: its also useful to mask off the nth move from my movegen while doing random rollouts

MSmits: right yeah that sort of thing

MSmits: anyway, train arriving, ttyl!

Hjax: ive been trying to port to rust, but im not used to rust yet

Hjax: so im not quite done

Hjax: cya

MSmits: you're a bit rusty on rust

Hjax: har har

struct: 16% win rate

struct: And its still only 80 matches played :(

struct: even with 10 players

Hjax: in wood 2 i was pushing 90% winrates

Hjax: now i just get owned

darkhorse64: Don't swim with sharks when you are a small fish

darkhorse64: btw, I am still dead last

Hjax: :(

Hjax: i am very close to being dead last

Hjax: ill try EPT tonight

Hjax: although i want to solve my rust issues

Astrobytes: In this league we measure success in terms of points above darkhorse64 :P

darkhorse64: :grinning:

Hjax: im hoping dbdr will show up today so i bug him about rust things

Hjax: so i can*

Hjax: my win against you is funny Astrobytes

Hjax: your eval gets pretty high and then suddenly tanks

Astrobytes: Yeah it's all over when you grab top lefft corner lol

Hjax: so when you do EPT, you do like, a 5 move rollout and then eval at the end right?

tomatoes: yes

Astrobytes: Yeah

Hjax: is that better than just doing the hybrid mcts where you replace the rollout with a low depth minimax search?

Hjax: the minimax search seems like it would be strictly better

Hjax: i guess its probably a bit slower

tomatoes: top 5 all have minimax i think

Hjax: yeah but they arent doing UCT are they?

Hjax: i thought they were all doing normal a/b things

Astrobytes: I guess what you might lose in speed with the MCTS/mm hybrid you gain in accuracy

Astrobytes: Never actually tried it

Hjax: the papers i see on EPT MCTS are saying that the eval function doesnt have to be particularly good to be a huge improvement over full random playouts

Astrobytes: In terms of top 5, dbd r is using ProbCut, others just TTs and books afaik

struct: still no NN :(

Hjax: which is interesting

Hjax: probcut is some like, fancy linear regression thing right? to estimate the higher depth searches with the lower depth results

Astrobytes: Yeah, pretty cool

Hjax: is it just used for move ordering?

Hjax: moves that the equation says will be good on this iteration go first?

Astrobytes: More about pruning afaik

Astrobytes: I mean so's move ordering but you know what I mean

struct: Multi-Prob cut is mentioned in the wiki of othello

Hjax: oh you actually use it to compute alpha and beta

Astrobytes: Yeah, iterative deepening on the lower depth searches and different stats and params for different stages

Hjax: thats very fancy

Astrobytes: ( referring to multi prob cut)

Astrobytes: Yes, and it's highly effective apparently

Hjax: i follow computer chess a bit, theres so many techniques

Hjax: stockfish is an incredible piece of software engineering, its so fine tuned

Astrobytes: One could easily get lost down that rabbit hole, it's crazy. In a good way

Astrobytes: Yeah, you're not wrong there

joshihsoj: hello nitekat

joshihsoj: nitekat

jacek: sometimes better eval is worse in mcts

jacek: at least that was the case with my bot in oware

jacek: or, more likely, the better eval was 'tuned' for minimax than mcts

Astrobytes: Yeah, I had to tune my eval slightly differently when I switched to the MCTS in oware

dbdr: Hijax, I'm here

Hjax: hi there

Hjax: so the thing i got stuck on is really stupid

Hjax: i have vector of Nodes, and i want my function to return the one with the max uct value

dbdr: (thanks struct, that does look like a bug)

Hjax: but rust doesnt know that theres anything in my vector of nodes

Hjax: and theres no null type obviously

Hjax: so i feel like i have to use optional

dbdr: wouldn't a visit count solve this as well?

Hjax: but when i use optional, the borrow checker blew up saying that the method can only return an immutable reference

dbdr: I don't think Option would be a problem, but I also don't think it's needed

Hjax: how would i do it without option?

dbdr: plain nodes, with a visit count

Hjax: i have a vector of nodes, each of them has a visit count

Hjax: im trying to select the one that maximizes uct

Hjax: i dont think i follow what youre saying

dbdr: me neither :D

dbdr: first, do you have one big array/vec, or one for each set of sibblings?

Hjax: each node has a vec of children

dbdr: ok, that's slower I think, but it can work

Hjax: whats the faster way?

dbdr: one array

Hjax: one array containing every node?

dbdr: yes

Hjax: how do you know where your children are?

dbdr: indexes

Astrobytes: Index + child count

Astrobytes: same in C++

Hjax: so each node stores the index of its first child

Hjax: and offsets?

dbdr: you cab keep them contiguous

dbdr: can

Hjax: can i? those children have children

dbdr: there are several ways to do it of course

dbdr: sure, they have the index of their first child

dbdr: which can be a special value if they are not expanded yet

Hjax: oh i thought you were saying there was a way to do it without keeping the index of your first child

Hjax: which i found confusing

dbdr: no, both Astrobytes and me mentioned indexes :)

Hjax: i wonder how big of a speedup this is

dbdr: by contiguous, I mean the children between themselves

Hjax: ah yeah

Hjax: well thats useful to know, i didnt consider doing it that way

Astrobytes: This is what we were meaning wrt a node pool before

Hjax: i wrote my search without giving it a ton of thought

Hjax: when i tried to add a node pool, i just preallocated an array of nodes, and replaced all "new Node()"s with NODE_POOL[index++]

Hjax: which didnt work very well

dbdr: in Java?

Hjax: yes lol

Hjax: ok so assuming i fix that, im not sure that i know how to write a selection method without a null type

dbdr: Java is different, because you can't have an array of nodes

dbdr: only an array of references to nodes

Hjax: yes thats true

Astrobytes: Ohhh yes indeed

dbdr: loop over your children, find the max, return its index

Hjax: oh

Hjax: ok it just clicked

Hjax: i get it now

Hjax: i should never be passing around Nodes, just ints

dbdr: yes

jacek: or moves

dbdr: this is part of what is new when coming from GC languages

dbdr: you have more control

jacek: and more ways to screw up

Hjax: yeah, definitely a learning curve

dbdr: not in rust :)

Hjax: too used to java and python holding my hand

dbdr: the compiler is your friend

Hjax: the compiler telling you why you screwed up is definitely preferable to having to ask valgrind why you screwed up

Astrobytes: :D

Hjax: although valgrind is a great tool

Hjax: not needing it is better

dbdr: it also only finds validations that do happen while it is running, right?

dbdr: not those that might happen in certain case but you don't have a test for it yet

Hjax: yes, it tells you about memory leaks, and can tell you what went wrong when the program crashes

Hjax: but you have to be able to cause the crash first

dbdr: so your first failure is in production

Hjax: yeah, i like the design principles of rust

Hjax: i just need to learn it

Hjax: my move gen / make / rollout functions all work fine

Hjax: just need to do the search

Hjax: but i was apparently trying to write it too java

Hjax: java-esque*

Hjax: which is why i got stuck

dbdr: that's normal

dbdr: it's not the easiest thing to start with a MCTS ;)

Hjax: i watched my java bot run in visualvm

Hjax: it consumes memory very quickly

Hjax: so do you combine your bitboard class and mcts node class into a single class?

Hjax: right now my node has a bitboard instance

Hjax: othello bitboards are pretty tiny, two u64s and a boolean

dbdr: I'm not using MCTS in othello

Hjax: right, but in general would you combine them? if you were doing mcts?

jacek: you mean to hold game state in node instead of move?

tomatoes: both ways are viable. or store state, or make moves during selection

darkhorse64: Irt's a tradeoff, less nodes in your pool but faster selection (which consumes nodes faster)

Hjax: yeah i hold a game state rather than a move in my node

Astrobytes: Yeah there's no real right or wrong way, game/situation/implementation dependent

Hjax: a move is only half the size of a board

Hjax: i guess a move can be a byte if i want it to be really small

darkhorse64: If you are fast enough, you can consume nodes faster than you reuse them. Strange things happens then

Hjax: 1 << move

Astrobytes: Welcome to the world of Really Fun Bugs.

Hjax: oh boy

darkhorse64: I had that problem in Bandas

Hjax: i was thinking the node pool thing makes tree reuse really hard

Hjax: because its hard to know what nodes are safe to reuse

Hjax: and which ones got moved into your new tree

darkhorse64: It makes it free and easy

Hjax: what? how

Hjax: unless your pool is big enough that you never need to reuse nodes for the entire game

Hjax: then yes its free and easy

darkhorse64: set your mcts root to the last node played. when your index grows too large, reset it to zero

tomatoes: this is where smaller node size coming in

Hjax: yes, but how do you guarantee the index doesnt overrun a node thats still in the tree?

struct: Hjax a move is not half the size

Hjax: in the next search

Hjax: i corrected that a move can be a byte with a bitshift struct

Hjax: a naive move is half the size

Astrobytes: And reset the parent of your new root

struct: ah I se

Hjax: i dont see how you dont have some live nodes at the beginning of your array

jacek: wtf happened here

Hjax: that ruin your day when you reset the index

tomatoes: owned

struct: yeah jacek, dbd r has similar replay vs tomatoes

Astrobytes: Serious pwnage

jacek: i remember in very beginning i had similar thing against trict when he was top and i was bottom

darkhorse64: Hjax: you cannot guarantee that if you consume nodes faster than you free them. In practice, it works not too bad

Astrobytes: If your node array is big enough, and you're reusing the tree then you should be fine Hjax

Hjax: are you just gambling that you dont run over an important node

Astrobytes: *should*

Hjax: seems spooky

Astrobytes: You'll know if you do

Hjax: lol

Hjax: if the mcts got lucky, it could have built the line that was ended up being played very early on

Hjax: and then your root is early in the array

Hjax: and you run it over

Hjax: and explode

Hjax: so the idea is that if your pool is big enough, thats very unlikely?

darkhorse64: If you think hard enough, you will realize that all nodes allocated before your root node will never be accessed and that they are before your root node in the pool

Hjax: yes, but theres also nodes after my root node that are off the tree too

tomatoes: only push new nodes, no overwrite

darkhorse64: they are after in the pool

Hjax: yes, if theres too many dead nodes after my root

Hjax: i blow up and die

tomatoes: no, i had ~1.5m nodes in the end

darkhorse64: The next move will get you back many of these dead nodes

Hjax: yes, but what if i need those nodes right now

Hjax: my pool was too small then?

Hjax: gtg

Hjax: be back in a bit

darkhorse64: You cannot. Time for pencil and paper.

jacek: and soccer

darkhorse64: :wink:

Astrobytes: Always advertising

Astrobytes: I can't stand the word 'soccer'

darkhorse64: Did I say something goofy ?

struct: Hjax unless you do like me and expand every rollout I dont think you will have problems

Astrobytes: No darkhorse64, you just reminded jacek to advertise his Paper Soccer multi

jacek: now youre advertising it

AbundantPuddle: Paper Football?

Astrobytes: I always prefer 'football' over 'soccer' because you kick the ball with your feet.

AbundantPuddle: In America, we throw footballs with our hands.

Astrobytes: Yeah I know, I know

AbundantPuddle: :joy:

Astrobytes: We do it too, but different. Rugby.

AbundantPuddle: We have rugby here as well. Just not as prevalent as football.

Astrobytes: I used to follow American football wayyyy back when I was a kid. I was a Bears fan for some reason.

Astrobytes: Used to have to stay up real late, or get up real early to watch it though.

Hjax: ok i wasnt gone for as long as i thought i would be

Hjax: i didnt consider that people in other countries would pay attention to american football

AbundantPuddle: Lol. I never got the whole sports fanatics thing. Like sports are okay to watch to pass the time I guess, but people go crazy. Watching sports makes me feel lazy. I'd rather be playing them. But American football is an insanely profitable business.

Astrobytes: Rugby's great though. London's a nice place to watch international rugby, all the French, English, Scots, Kiwis etc all together in one pub. Great atmosphere

Astrobytes: No I don't follow sports any more, other than watching some rugby a few times a year

AbundantPuddle: That's cool. That's something I can get behind, bringing people of different cultures together under a similar passion.

Astrobytes: 'soccer' is the same, just businesses to float on the market

Astrobytes: Yeah, it's much a much friendlier atmosphere than watching football/soccer with rival supporters in the building

AbundantPuddle: Everybody else in the world should just change their football terminology to soccer. And instead of American Football, you can just call it football.

AbundantPuddle: :joy:

Astrobytes: lol, shuddup :P

AbundantPuddle: Yeah, I don't know why we have to be difficult and different. I completely agree. It's weird we named the sport where you kick the ball soccer, and named the sport where you throw the ball football, especially when the rest of the world already had football, and it was our soccer.

AbundantPuddle: We just like to piss off the rest of the world I guess. We're pretty good at it.

Astrobytes: It's a very American thing to do I guess (in the general case) :shrug:

Astrobytes: 'American'

AbundantPuddle: Murica!

Astrobytes: The English do the same sort of thing, the superiority complex

AbundantPuddle: I guess it's good we're not the only ones. England and us can share the hate then.

Hjax: the americans and brits are in a contest to see who can have the most bizarre political landscape

Astrobytes: You know it

Hjax: its quite the show of one-upmanship

AbundantPuddle: I think our current country leaders can attest to that.

Astrobytes: You guys really had it for a while but we caught up pretty swiftly

AbundantPuddle: Lmao

AbundantPuddle: I don't know much about U.K. politics, but whenever I found out about Boris Johnson, he really seemed like the UK equivalent of Trump.

Hjax: i just dont understand why he cant comb his hair

AbundantPuddle: Although not as discriminatory.

Astrobytes: Well, they share some traits, but Johnson is nowhere near as thick. He's relatively smart.

AbundantPuddle: He really does strike me as a "special" person. Especially when he wears his helmet.

Astrobytes: Oh, that.

AbundantPuddle: I believe it for sure. Trump is a complete moron.

Astrobytes: An idiot up front is just what you need to get stuff done behind the scenes right

eulerscheZahl: he just got bored from winning that much, as he announced on his previous election rally

AbundantPuddle: I do think he is more hated than he deserves, however. I think a lot of people hate him for the wrong reasons because the politics in this country are so messed up right now, but he is an idiot for sure.

Astrobytes: afk, bbs

AbundantPuddle: But yeah, sorry about discussing politics. The world is a craphole and we're all going to die someday. Lol.

Hjax: its nice to have so many smart people here to talk to btw, i really appreciate the advice :)

AbundantPuddle: By the way, I think the server compilation is broken. It's not running my code correctly.

AbundantPuddle: :joy:

Hjax: struct you here

AbundantPuddle: Yeah, the user base on this site is top-notch.

struct: yea

Hjax: what does the default ai do

Hjax: random legal moves?

Astrobytes: back, sorry, medicine break

struct: its the same as wood 2 bosss

struct: I think

Astrobytes: Isn't the default AI the last boss?

Hjax: oh is it

Hjax: i didnt know that

AbundantPuddle: Sure. "Medicine"

Astrobytes: No it was medicine.

Hjax: i just lost to it, and i was like, please dont be random

Hjax: please be skilled

Astrobytes: lol

AbundantPuddle: Aw, that's no fun.

Hjax: well im glad its the boss lol

Astrobytes: Hey you don't wanna test against a dumb AI right

AbundantPuddle: Well that depends on what the stakes are.

struct: When I want to test vs dumb AI I test vs myself

AbundantPuddle: If it were world domination, I would definitely prefer a dumb AI.

Astrobytes: lol

Astrobytes: yeah fair

Astrobytes: We test vs darkhorse64 struct :P

AbundantPuddle: Is that considered cyber-bullying?

AbundantPuddle: :joy:

Astrobytes: As soon as he fixes his bot, I know he's gonna make sure he destroys me :D

AbundantPuddle: Lmao

ProfessionalScrewUp: Hey..uhhh...anyone know if there's a bot uprising going on?

Hjax: how so ProfessionalScrewUp

ProfessionalScrewUp: I swear there are more bots in CoC...

ProfessionalScrewUp: ..or maybe I'm just that bad

Astrobytes: The number varies depending on the number of available human participants

ProfessionalScrewUp: Hmmm

Astrobytes: But there aren't any extra ones overall no

Hjax: yeah if theres enough humans in the lobby, the bots clear out

ProfessionalScrewUp: Ahhhh

Astrobytes: Dammit, I might change my variable to 'pices' over 'pieces' since I type it so damn often

jacek: does that piece you off?

Astrobytes: :grin:

Astrobytes: Not bad jacek, not bad

Hjax: so does anyone have a plan to dethrone dbdr

Hjax: or is he just the kind of othello now

Hjax: king*

jacek: because i let him

Astrobytes: I think jacek has ideas. Smits is gonna come along soon with something. And I have a feeling tric is gonna come back with a bang

Hjax: ah so kind

Hjax: smits is always scary

jacek: poor foxy though, his 90s algo got rekt

Astrobytes: He updated it a bit tho

Astrobytes: So not pure 90s algo

jacek: no wonder. some advancements in ai happened since 90s

jacek: ;v

Astrobytes: lol

Hjax: he just had an old othello implementation sitting around and uploaded it?

Astrobytes: Yeah, was his first ever big C project or something along those lines

Astrobytes: *game-playing project

Astrobytes: Early 90s

Hjax: early 90s? its older than me

Astrobytes: Wrecked everyone initially

struct: its from 1990

Hjax: 6 years older than me

Astrobytes: There ya go

Astrobytes: I was 8 and still mucking about with my Atari 1040

Hjax: wow a whopping 1mb of ram

Astrobytes: My Amiga 1200 a couple years later had 2. So there :P

Hjax: im spoiled by modern computers

Hjax: my parents desktop computer growing up had 256 mb, my first laptop had 8 gb

Hjax: i actually learned python on a jailbroken ipod touch, because i didnt have a laptop yet

Astrobytes: Nice. Well, you use what you gotta use right

Astrobytes: We had a 486, then a Pentium, donno how much RAM, I was still very attached to my Amiga (got the 8mb RAM upgrade eventually)

jacek: how many mcts nodes would you fit there

Astrobytes: Not many. But it still amazes me how much performance they managed to squeeze out of limited hardware from back in the day. And still do in embedded sector. People should pay more attention to resource usage

Hjax: or you can bury your hardware under 14 layers of abstraction and complain about how slow it is

Astrobytes: Quite!

Hjax: ill learn to write performant things sooner or later, othello is a good first step

Hjax: i dont think my performance is /terrible/ but it could be a lot better

Default avatar.png 360hazzy: hey guys

Hjax: hello

Astrobytes: Dude, you implemented your MCTS, got it up and running, got it faster, got it smarter - take your time

Astrobytes: Hi

struct: I dont want to see java bot on top league

struct: Submit the rust bot

Astrobytes: lmao, you have Been Told.

struct: either that or new boss :)

Astrobytes: lol

Hjax: time to get rank 1 with rust

Hjax: er

Hjax: java*

Hjax: to make struct mad

Astrobytes: Top league consisting of dbdr

Hjax: i did want to get wood 1 with java before switching at least

Hjax: to prove i could

Hjax: so im glad i succeeded

Astrobytes: Yup, and wasn't a bad submit all things considered

Hjax: i messed up the wood 2 rankings with my constant submitting lol

Astrobytes: Meh. It's up to everyone else to fix their rank now eh

Hjax: i dropped snef below coffee cup and field 3

Astrobytes: Oof. Even a resubmit would put him back up tho.

Astrobytes: Probably

Hjax: over the last day or two, the boss lost like 3 points, and coffee and field gained like 3 points

Astrobytes: Boss was pushed pretty high even before you started submitting right?

Astrobytes: Like 35+ points iirc

Hjax: yeah

Hjax: side effect of small leagues i guess

Hjax: not a lot of people promoting, so the boss gains points

Astrobytes: Same in underactive multis

Hjax: i had to drag it down a lot

Default avatar.png OndrejBakan:

tomatoes: list comprehensions

Uljahn: is it for code golf or what kind of "optimizing"?

eulerscheZahl: oh, i optimized for speed

eulerscheZahl: def x(n,m):

Default avatar.png OndrejBakan: I mean for code length.

eulerscheZahl: s =, not s -= ...

tomatoes: sum(i for i in range(n) if not all([i % 3, i % 5, i % 7])) :thinking:

Default avatar.png OndrejBakan: print(sum([i for i in range(n) if i % 3 == 0 or i % 5 == 0 or i % 7 == 0]))

Default avatar.png OndrejBakan: Oh, I see. :D Thank you. I am just a script kiddie (as you can see), but I love CodinGame. :D

eulerscheZahl: sum(i for i in range(n) if not (i%3)*(i%5)*(i%7))

eulerscheZahl: ==0 would be even shorter than "not"

eulerscheZahl: sum(i for i in range(n)if(i%3)*(i%5)*(i%7)==0)

tomatoes: <1

eulerscheZahl: right

eulerscheZahl: did we win the clash?

Uljahn: :trophy:

struct: ruby would beat it sorry :(

Hjax: ever see the code golf page on stackoverflow

Hjax: people will get like, 5 byte solutions using these weird golfing languages

Astrobytes: It's a strange hobby to me those golfing langs but whatever floats their boats I guess

Hjax: agreed

Default avatar.png OndrejBakan: euler, we didn't I already submitted my code before asking :D

Astrobytes: Did they win the post-clash clash then?

struct: p`tail -1`.split.inject(0){|s,i|(i=i.to_i)%3&i%5&i%7<1?s+i:s}

struct: my best try

Astrobytes: trictrac do you have anything incoming for Othello?

trictrac: not yet I am working on eval

Astrobytes: Have you considered ProbCut/MultiProbCut?

trictrac: I have a kind of probcut but not sure that's the "real" one

Astrobytes: dbd r is using it quite effectively, not sure if regular probcut or multi though

Astrobytes: Interesting technique, I hadn't come across it before

trictrac: I will have a detailled look, thank you

Astrobytes: You're welcome (I think?! ;) )

Hjax: oh no, youre making him stronger :P

Astrobytes: All about tough competition ;)

Astrobytes: The tougher the opposition, the more you can improve

Astrobytes: I have a lot of improving to do :grin:

Hjax: usually the opposition is the guy in the mirror who is trying to figure out rusts borrow checker

Hjax: do you do any local testing?

Astrobytes: I thought you'd sorted this part out?

Astrobytes: Not currently, but I'm planning to

Hjax: well, ive sorted out my first fight with the borrow checker

Hjax: there will be more

Hjax: ive been meaning to see how to compile a ref for brutaltester

Hjax: i think you just insert some main class into the ref and build it

Astrobytes: Been a while since I used it, there's a line or two needs changing or something if it's not already compatible, can't remember fully

Hjax: the problem with search games is testing is super slow

Astrobytes: The main class for the ref is just to run locally no? Not for brutaltester

Astrobytes: As in run a game

Hjax: i think brutaltester supplies a main class that you need to insert into the ref

Hjax: to get it to talk to brutaltester

Astrobytes: Can't remember tbh, don't mind me

Astrobytes: lo

Astrobytes: l

Astrobytes: Think there's some info in the forums regarding this

Astrobytes: Not sure if the doc has been updated on github with the required changes or not

Hjax: the github doc talks about inserting a CommandLineInterface class into the ref

Hjax: not sure if thats accurate


Hjax: yeah that looks like what the brutaltester repo was saying

Astrobytes: Yep, seems to still be the case

Hjax: ive considered getting a more powerful cpu for codingame tests

Hjax: that may be going off the deep end though

Astrobytes: lol, dedication

Hjax: i already have a pretty powerful desktop, 6 core 12 thread

LelouchVC2: What are you using now?

Hjax: which can run 2 or 3 games concurrently

Hjax: my processor is an 8700k

Hjax: but imagine the testing on a 16 core 32 thread machine

LelouchVC2: and you want something even more powerful?!

Hjax: it would be beautiful

LelouchVC2: Doesn't seem to me it would make the difference.

Hjax: why not?

Hjax: can run 3x as many games

LelouchVC2: Those are more for servers with heavy loads rather than one heavy loud

Hjax: yeah but im running many games in parallel

LelouchVC2: for servers with many heavy loads*

Hjax: not one by one

LelouchVC2: Why?

Hjax: because its faster?

Hjax: and i want to run 1000s of games

LelouchVC2: why are u running multiple games?

struct: Dont use the referee of othello, its not very fast

Hjax: :(

Astrobytes: Only 4 cores and 8 threads here

Hjax: guess ill write my own othello engine using my bitboard lol

struct: you can, I just did not think of performance

Astrobytes: Actually using your own is a lot better

struct: ^

Hjax: removes the IO i guess?

Astrobytes: Not just for this but any multi you wanna do locally

Astrobytes: You can optimise it to hell and back

Hjax: lol

Hjax: some games speed doesnt really matter

Hjax: UTG was super fast anyway

Hjax: because my bot only took a couple ms to make a move

Astrobytes: Depends how many games you need to run

LelouchVC2: I think the performance gain may disappoint you

Hjax: i usually run 1000 or so

Astrobytes: For a statistically significant outcome that is

Hjax: during contests ill let tests run overnight

Hjax: doing 50k games or whatever

Astrobytes: Just don't do that in summer

tomatoes: a lot

Astrobytes: Well, I guess you probably have a great cooling system so ;)

tomatoes: i'm doing 100 with swap and then arena time

LelouchVC2: everytime u cum, u save it

LelouchVC2: and use it as liquid cooling

Hjax: ...

Astrobytes: ...

LelouchVC2: Are we not open minded inventors?

Hjax: we are not 7th grade trolls

LelouchVC2: old >~>

Astrobytes: Old eh

LelouchVC2: Once u pass 7th grade, ur old

Astrobytes: I am 37

LelouchVC2: You're practically dead according to Hjax

Hjax: ?

LelouchVC2: an 8th grade troll is fine, but those pesky 7th grade trolls

LelouchVC2: !

Hjax: 37 isnt old

Astrobytes: It's 'mature'

Hjax: especially when it comes to a site like this, where experience helps a lot

LelouchVC2: might be taking things too literally and seriously

Astrobytes: You know I only do this as a hobby Hjax? I'm technically a biologist

Hjax: i didnt know that!

Hjax: im a software engineer, and then i go home and write more code

Astrobytes: Yeah, I'm assistant manager at my local wildlife conservation centre and I do pharmaceutical regulatory work in my other time

Astrobytes: And then I code

Astrobytes: Where do you work Hjax? Well, as in what kind of company that is

Hjax: its a contractor, makes submarines

Astrobytes: Oh nice. You'll get along with the Thales guys on here then eh :D

Hjax: ah neat, they are apparently the 8th largest defense contractor

Hjax: i work for the 6th largest, so pretty comparable

struct: time to write submarine physics game

Astrobytes: Nice! Get learning your optimisations so you can beat them :P

Astrobytes: lol struct

Hjax: OOC was a submarine game

Hjax: but i didnt like it very much

Astrobytes: It was nicer than the pacman game

Astrobytes: (imo)

Hjax: i put a lot of effort into the pacman game

Hjax: and just ended up annoyed

Astrobytes: I wasn't keen on either tbh, but I was quite 'medicated' for the duration

struct: When I see fog I quit

struct: On OOC I can understand

Hjax: i can deal with reasonable amounts of fog

Astrobytes: Maybe I'll revisit them when I'm more bored than when I finally feel the need to do UTTT

Hjax: but both OOC and pacman had absurd amounts

Hjax: i really enjoyed the unofficial pr2 contest

Astrobytes: At least OOC was actually about that though, it was pointless for pacman

Astrobytes: Yeah I only put a few hours in to PR2 but I wouldn't have done it otherwise, will definitely revisit it

struct: I think it's very hard to balance games with fog

Hjax: my bot was basically just "run munkres and win"

struct: I think best fog game is WW

Hjax: but it was still fun to make

Astrobytes: lol I forgot about that being built into python

Hjax: yep!

Astrobytes: I need to improve my WW

Hjax: usually for contests i spend the first day doing python, just messing around with the inputs

Hjax: and then port to java

Hjax: but i felt no need to use java for pr2

struct: my ww is just eval available moves

Hjax: python was perfect

struct: So depth 0.5 :p

Hjax: im surprised there arent many python on the leaderboard in pr2

Hjax: free munkres makes it pretty easy to get a strong bot

Hjax: only 4 python in the top 50, and im the highest rated

Astrobytes: Only 4?!

Hjax: shocking right?

Astrobytes: I guess a lot of people didn't realise the benefit of HA

Astrobytes: Munkres/whatevs

Hjax: so many names lol

AntiSquid: the others are python wrapped in C++

Hjax: ?

Astrobytes: I hadn't come across it until euler's PM for whatever contest it was.. CoIF?

Astrobytes: He's trolling ;)

Hjax: ah

Hjax: theres someone in the top 5 with js

Astrobytes: Like recurs e's 'python' bot in CSB

AntiSquid: HA ?

Hjax: hungarian algo

AntiSquid: ah

Astrobytes: How's things squiddo

AntiSquid: just living life ... time passes

Astrobytes: Ain't that the truth

AntiSquid: trying to avoid the news to no avail, it's like the world gets crazier every day and some online "friend" find the need to share me some outrageous news

Hjax: i realized not too long ago how much current events was stressing me out

Hjax: i exposed myself to less news and felt way better

Astrobytes: I've stopped reading the news every morning now

Astrobytes: Yep

Astrobytes: Still catch up with it all at some point but don't make it a daily thing

Astrobytes: How's your ML journey progressing AntiSquid?

AntiSquid: sorry, i think your previous discussion was more interesting

AntiSquid: oh well it's a long road

Astrobytes: You doing Halite?

AntiSquid: i can play with notebooks and do some basic guesses, but that doesn't count as much

AntiSquid: no

AntiSquid: i do the more traditional kaggle stuff

Astrobytes: Hey it's a start eh

Astrobytes: Even just the analysis part is something to get good at

AntiSquid: it's what videos recommend, other who rank high were saying what they'd do if they had to start from scratch: get into doing stuff and experiment until you learn

AntiSquid: so instead of going through massive amounts of theory i go through notebooks and then read theory only as much as i need to understand the notebooks on kaggle

AntiSquid: this advice is most valid for the math part

Astrobytes: Yeah that makes sense I guess

Astrobytes: You don't just get overloaded and give up at least

AntiSquid: kaggle is more about analyzing than just pure straight up ML

AntiSquid: also i find this video like perfect introduction to data science: just use what you need and what works :p

AntiSquid: basically like CG contests, if just basic if-else wins use that

Astrobytes: Hey, us biologists are natural data scientists, we just get the bioinformatics guys to do the work for us

Astrobytes: But yeah, definitely use what you need and don't overcomplicate, it applies to many fields

AntiSquid: contests are messy on kaggle

AntiSquid: might get a bronze medal and it's not even because i fiddled with the parameters of a notebook :/

AntiSquid: i mean i didn't even find good magic numbers

Astrobytes: I wouldn't bother too much about achievements for now, as you say, just learning is enough

AntiSquid: well harder to work on something that isn't active at the moment

AntiSquid: as opposed to something people discuss and release new ideas frequently

Astrobytes: Your main goal right now is learning so it's not a huge issue. There are probably more useful communities elsewhere if you wanna discuss stuff, I heard Kaggle isn't great for that

AntiSquid: who said that?

AntiSquid: i mean whenever someone shares a new notebook there's a discussion on it and then someone takes that notebook improves on it or modifies it, shares the new version and then there's new discussion ...

Astrobytes: Dunno, some people said the community was a little averse to being helpful at times (hey, I don't know what they asked - could've been bullshit, I'm happy to have a fresh opinion)

Astrobytes: Well, that seems pretty cool

AntiSquid: winwin was struggling with submitting a notebook, i kept trying to give him directions, not sure if you meant him

Astrobytes: Maybe some people didn't get the concept

Astrobytes: No no, I think he got it in the end no?

AntiSquid: the UI is a bit confusing

AntiSquid: idk, i have to ask

AntiSquid: hopefully

AntiSquid: maybe it depends what you ask

AntiSquid: people there expect you to try and google some of the basics first

AntiSquid: maybe it's comparable to asking here how to implement tracking the game state?

AntiSquid: or even something more basic

Astrobytes: Yeah, that's why I disclaimered by saying I donno what they asked :P

AntiSquid: most interesting part about kaggle is how people combine models

AntiSquid: can't really do that on CG due to time constraints ... but imagine combining MCTS + GA + meanmax + whatever and then taking an average or a percentage of each prediction to use in the final answer

Astrobytes: I'll forgive your 'meanmax' there, but yeah, it's quite something when you have unlimited time to be able to use all these approaches

AntiSquid: minimax

AntiSquid: :D

Astrobytes: Way too much CG for you, /ban :P

AntiSquid: too much kaggle maybe or too long break from CG type of challenges

Astrobytes: GA to tune your minimax eval param coeffs, minimax as 'eval' in your MCTS

AntiSquid: didn't even follow the halite subforum to see what people there are doing, but last i checked they had weak halite bots

Astrobytes: I've not looked recently, too much going on atm

Astrobytes: Just CGing for now, it's comfortable :)

Hjax: kaggle halite is a disappointment imo

AntiSquid: it is from our perspective, not sure it's the same for a kaggle regular, it might be a fresh interesting concept to them

Astrobytes: Just doesn't seem like the right platform as opposed to how it was before. I'd been looking forward to participate in it's old format.

Astrobytes: But AntiSquid is right I guess

AntiSquid: aicrowd since the actual ML centered contest website, not kaggle which is more about analyzing data, but got into too much trouble, submitted some random modified starter code for aicrowd and dropped it for now

AntiSquid: aicrowd seems to be *

Astrobytes: Ah right, I see the difference even at a cursory glance

AntiSquid: that train challenge was won by C++ wrapped in python last year, now they changed the way they give out the prizes for this year's (hardly modified) version:

AntiSquid: The top three teams in the final round which use a reinforcement learning approach for their winning submission will be awarded one travel grant each.

AntiSquid: for aicrowd

Astrobytes: I'm out, painkillers getting the better of me. Catch you guys later

Hjax: cya

AntiSquid: gn8 Astrobytes

BenjaminUrquhart: I have been summoned by a necropost on one of my forum posts

BenjaminUrquhart: hi

Default avatar.png sb613: hi

tiwariji264: hi

kdhakal: plz share code

Default avatar.png sb613: For which puzzle?

tiwariji264: Your task it to print a grid of width w and height h made out of periods ('.'). Every coordinate on the grid that is inside the rectangle, which has two opposite corners (x1, y1) and (x2, y2), should be a plus sign ('+') instead of a period. The upper-left corner has the coordinate (0, 0).

tiwariji264: Your task it to print a grid of width w and height h made out of periods ('.'). Every coordinate on the grid that is inside the rectangle, which has two opposite corners (x1, y1) and (x2, y2), should be a plus sign ('+') instead of a period. The upper-left corner has the coordinate (0, 0).