From CG community
Jump to navigation Jump to search

AbundantPuddle: I have faith in you.

AbundantPuddle: :pray_tone2:

Default avatar.png c0nc4c: lmao Vietnamese

RainbowMan: :nose_tone5: network error

jrke: dbdr why :(

dbdr: jrke, why what?

jrke: you thrashed my bot decreased my points :

jrke: np i will work on it

dbdr: you're #1 now :D

jrke: just for few seconds from now

dbdr: not sure, I'm losing some matches

dbdr: I fixed a bug, but probably have another one

Marchete: what game?

dbdr: even lost against darkhorse64

jrke: d&b

jrke: but not against me dbdr

dbdr: &d&r

dbdr: true

Marchete: d&b&d&r

dbdr: game custom-made for me ;)

dbdr: dots and boxes and dashes and railroads

Marchete: I dislike inputs and outputs in D&B

jrke: i think tric trac bot have adaptive nature according to opponent moves :thinking:

Marchete: like A1? wth is that?

dbdr: Marchete, indeed, it's a bit tricky at first

Marchete: A1 T = A2 B

dbdr: but not that hard to convert to whatever you prefer

Marchete: (╯°□°)╯︵ ┻━┻

dbdr: just preprocess the input

Marchete: I know

dbdr: do you have auggestion for a better notation?

dbdr: there, jrke still #1 ;)

jrke: your bot is better than me my bot is better than tric trac and tric trac bot is better than you what is this :smiley:

Marchete: people that start arrays or indexes at 0 should be tortured until they stop doing it

Marchete: at 1

Marchete: I mean, sorry

dbdr: lua ftw

dbdr: whole language forces 1-based arrays

dbdr: don't go near lua then Marchete :)

Allis: Explicit iteration is so primitive anyway.

jrke: dbdr whats your current strategy

dbdr: Allis: iteration is not the only thing you can do with arrays

dbdr: jrke: not big change, still minimax, just fixed a bug

dbdr: and don't worry too much about my current behaviour, pretty clear there's still a bug

jrke: but how can you defeat me in too many matches if you have bug??

dbdr: you have zero bugs?

jrke: no,but i didn't discovered them

dbdr: ^

darkhorse64: Losing against my bot is a kind of achievement

dbdr: yes, I'm proud of it :D

jrke: yeah dbdr lost one against dbdr

fschuetz04: @Allis Can you please share your CoC code? Would be awesome

Allis: @fschuetz04 Shared the one where you got me by a character with a very clever approach.

darkhorse64: I have not invested much time in it but it seems that there are quite powerful heuristics in the game: I mean, long term ones

darkhorse64: I wonder what is the right data structure for D&B, two bitboards for the edges ? Fast but how to deal with chains ? Half winged edges for the chains ? Looks big and slow for searching

dbdr: half winged?

Illedan: Damn, I feel targeted in DB -.-

Marchete: Illedan :eyes:

dbdr: we'll all conspiring against you Illedan

jacek: ohai

Illedan: Knew it was something

Illedan: :thinking:

dbdr: please don't visit #IlledanConspiracy

dbdr: that's where we coordinate

dbdr: ok, you can now

darkhorse64: Half winged edge is a topological data structure for representing a mesh

Marchete: sh*t he caught us!

jacek: for now d&b seems very meta

jacek: you can make perfect bot for strong player and lose to others

dbdr: interesting, darkhorse64. ever heard of it before

Marchete: Yeah I can't think on a good data structure for D&B

dbdr: jacek, isn't it because many bots are deterministic?

Illedan: Random INC

dbdr: or almost deter

Illedan: Sorry

Illedan: new Random(42); => new Random();

Illedan: BOOM

jacek: eeyup

jacek: the heuristic is deterministic

Illedan: Lol

jacek: so rhymy

Illedan: And I won the first match

Illedan: haha

Illedan: My 42 seed was always losing vs dbdr

darkhorse64: Because it has topology information, you can count polygon edges, move to another polygon, follow a chain of edges

dbdr: of course, Illedan, I always optimize against 42

dbdr: that seed is canonical

Marchete: 42 doesn't mean anything...

dbdr: ^ sacrilege!

Marchete: :D

dbdr: 42 means everything

dbdr: if only you know how to interpret it

jacek: does CG/trueskill support score-bounded wins?

Allis: How do you mean?

dbdr: TS only use WDL info, not match scores

jacek: i.e. in tournament othello, if there is draws in winning/losing, the disc score it used for ties settling

dbdr: no

jacek: meh

Allis: There's no drawing on CG, right?

Default avatar.png JBM: can happen

dbdr: a game can do that by playing two rounds

Allis: And competitors will share the same rank?

dbdr: so the game writer can do it, jacek

jacek: so i am safe in d&b assuming game ends with score 25

jacek: after that moves are rather random

dbdr: yes

jrke: dbdr fixed bug?

dbdr: yes

dbdr: still not perfect

jrke: oh

dbdr: hey, Marchete joined :)

Illedan: :scream:

jrke: hey marchete welcome to wood 1

dbdr: we are all doomed!

dbdr: doooooomed...

Default avatar.png fabulus: rawan share code pls

jrke: 2 ongoing submission by illedan and marchete

Illedan: Marchete going for Int.Min score and get -1 to get Int.Max

Marchete: nah,

Marchete: it's still broken

Illedan: I added a new IF

Marchete: like fixed depth minimax

Marchete: so it crashes

Illedan: Saw 1 replay. Didn't work

Illedan: Oh well

Marchete: also I need to recheck the data structure

Illedan: Anyway, I'm off. Bye

Marchete: bye

dbdr: Illedan it worked, you made me drop

jrke: but made you first again :stuck_out_tongue:

darkhorse64: make dbdr great again

jrke: how can i generate different random no. each time in c++

jacek: how do you generate the same random number now? o.O

darkhorse64: change your seed according to current time


darkhorse64: imho, it's a bad thing, you'll never be able to reproduce a bug

darkhorse64: determinism (as winning all games) is a good thing

jacek: srand(uint64_t(&main) ^ time(NULL));

dbdr: lol

darkhorse64: srand(time(NULL)) ?

jacek: though i dont use rand() for random

darkhorse64: xorshift for me

jrke: jacek then what you use for random int


dbdr: It's not Illedan who should be paranoid

Default avatar.png Kalam132: does anyone here uses machine learning for some game?

jrke: dbdr whats the maximum time your bot is using per turn

dbdr: 50 ms

jacek: machine learning for eval parameters optimization

jrke: i think coders strike back and oware abapa also kalam132

Marchete: there are D&B puzzles around there? not for 7x7 but for other sizes, kind of chess puzzles "white wins"

Marchete: are there*

darkhorse64: There is a book on D&B with problems and lots of interesting resources (hint, hint, ...)

TheSpiffiest: Ha. Just catching up. Was thinking for the game of the week brackets. Return random true/false

TheSpiffiest: with enough submissions it should pass

darkhorse64: The Dots and Boxes Game: Sophisticated Child's Play

darkhorse64: Solve the puzzle. You will spend less time submitting

Marchete: I know, but I can't find it yet

dbdr: 1 chance over 2^N to get it right randomly

TheSpiffiest: Yep

darkhorse64: 1 chance on 1 to fail because of captcha

dbdr: and there are many problems per testcase, no?

darkhorse64: Update your antivirus and look for the pdf

dbdr: so N is large

TheSpiffiest: Does submitting something a billion times look somehow automated?

dbdr: billion is probably not enough

dbdr: glhf

dbdr: N=30 needs a billion

TheSpiffiest: that's what the test cases are for extended adition

TheSpiffiest: building a tree to search

dbdr: there are several problems per testcase

jacek: you can still narrow the search space

jacek: try to solve at least some cases

dbdr: solve it all => 1/1 :)

darkhorse64: My solution is 65 lines C++. Come on !

TheSpiffiest: For the brackets game of the week?

darkhorse64: Yes

Default avatar.png JBM: but is it worth that much?

darkhorse64: Actually, it works for both edition. Yes, it's too long

TheSpiffiest: That's awesome. I've been doing this for 20 years and I'm just getting back into the complicated bits. Mostly I do enterprise stuff

Default avatar.png JBM: you've been solving brackets for 20 years?!

TheSpiffiest: for eternity:

   form + database + pdf 

Default avatar.png JBM: my, my, and I thought I had a boring job

dbdr: show us your one-liner, JBM :)

jrke: dbdr why is this i can defeat you various time when im player 2 in ide but when im submiiting i loose all ??

Default avatar.png JBM: i don't remember

TheSpiffiest: lol

Default avatar.png JBM: is this the one you can regex out?

dbdr: jrke: rust is faster in submission, that might explain it

jrke: means

dbdr: you do win sometimes in submission too, though

darkhorse64: Bot hiding

Marchete: "My solution is 65 lines C++. Come on !" I thought you were talking about D&B :D

dbdr: :D

TheSpiffiest: darkhorse64 - so what algorithm did you use? Curious.

darkhorse64: My D&B is 55

dbdr: JBM, what's your job?

darkhorse64: Deceptively simple. I make sure brackets match by storing depth

Default avatar.png JBM: i push bits

darkhorse64: One by one ?

Default avatar.png JBM: hand-pushed

Default avatar.png JBM: with <3

Default avatar.png JBM: quality made in the EU

darkhorse64: I push chars on my editor, 8 bits by 8 bits. It's faster

Default avatar.png JBM: not as much opportunity for <3

dbdr: push bits on a stack?

TheSpiffiest: That's a good solution

Default avatar.png JBM: i don't know where they go

dbdr: /dev/null

Default avatar.png JBM: i'm only in charge of the pushing part

darkhorse64: Team work

Default avatar.png JBM: possibly

TheSpiffiest: I discovered I will work on a problem for a week without asking for help, then with a hint it should have taken an hour or two... trying to change that.


jrke: dbdr means we can't trust rust in local ide?

darkhorse64: A week for a CG puzzle is too much. If you get stuck after a few hours, you need help. But it's definitely a good thing to be on your own for some time

Default avatar.png JBM: depends on the puzzle i'd say :)

jacek: rust is meh in ide

dbdr: trust rust or go bust

dbdr: you must

Default avatar.png JBM: trust rust you must lest you bust?

dbdr: just trust rust or go bust you must

dbdr: does that count as a haiku?

Default avatar.png JBM: no

darkhorse64: Don't want to start another level debate, I'd say you get faster with more experience

jrke: you must trust rust or just bust :stuck_out_tongue:

dbdr: damn, still got to work on my poem

darkhorse64: Haiku is a three liner

dbdr: just trust rust or go bust you must

jacek: rust leads to lust

Default avatar.png JBM: ...then we'll talk verse metric

Default avatar.png JBM: i had 5/7/5 in head, but i've been out of that game for VERY long

dbdr: just realized rust might be interesting in Japan

jacek: thats lacist

dbdr: :D

dbdr: "I love rust" :D

jrke: will work later bye

jrke: going to do school homework :nerd:

dbdr: 3/3/2 haikus are too long anyways

Uljahn: tankas are even longer

dbdr: :no_mouth:

Uljahn: "Haiku poetry is composed of 5–7–5 syllables with three lines, while Tanka is composed of 5–7–5–7–7 with five lines"

Default avatar.png JBM: \o/ long-term memory

dbdr: what did you eat last night JBM?

Default avatar.png JBM: errr what's that got to do with anything

Uljahn: middle-term memory

TheSpiffiest: try to code in rust to make all my code robust error go adjust

Default avatar.png JBM: (tournedos sauce roquefort)


dbdr: OK you're clear then ;)

Default avatar.png JBM: whew

dbdr: (apart from the "meat is murder" part ;) )

darkhorse64: Haiku on Rust or Rust on Haiku

darkhorse64: ?

dbdr: why not both?

darkhorse64: Just saw there is a new beta. Will we see a first release 20 years after BeOS demise

darkhorse64: ?

Default avatar.png JBM: you must code in rust futures and pasts borrow stuff just lust to adjust

darkhorse64: Too long for 5/7/5. Golf it

Default avatar.png JBM: pass

dbdr: JBM: nice one!

Default avatar.png JBM: :bow:

Default avatar.png MyoThuraWin: hi my name is myothurawin i am from myanmar

dbdr: that code C plus plussed? just leave that dust with disgust in rust we must trust

Y0MO: hi

darkhorse64: CG, the only place where people debate with poems

darkhorse64: :heart_eyes:

Alshock: if someone were to do a haiku in Ruby, I guess it would take 3 chars

darkhorse64: MCTS or Minimax ? Throw them to the dust bin ! Write a NN instead !

Alshock: Do we ever actually "write a NN though?

Alshock: doesn't it write itself more than we do?

jacek: we design NN. NN fills itself

jacek: the question is. do we write a NN, or an NN?

Default avatar.png adisher: I am a newbie here. Looking to improve my coding skills in Python specifically. What would you say to me as a welcome message please?

jacek: make puzzles :?

Default avatar.png JBM: as in: "solve" them

Default avatar.png JBM: don't write them just yet

jrke: d&b is getting interesting now

Default avatar.png Alisher_Kamolov: hello

jrke: can srand() take float?

Default avatar.png BouncySludge: hi :P kindda just found this out lol

Default avatar.png adisher: any tips other than the description available in puzzles?

Uljahn: there should be discussion tab or forum topic with tips, hints and common mistakes

Default avatar.png adisher: yeah just exploring it now, thanks

Default avatar.png PUCIT: Guys, you all are talking about what kind of puzzles , that you all are playing at same time ?

Uljahn: nah, solo puzzles from practice section

Mawkey: How come the C# language assist is not activating for me?

Mirak42: Me too ...

FLQ4: goodluck

vrabosh: in: 'ыыы (Hello|Hi) ввв (les amis|coders), вввё' out: [('Hello', 'Hi'), ('les amis', 'coders')] re.findall(r'?????', txt), plz:)

dbdr: Illedan, you're welcome

dbdr: take your screenshot ;)

MSmits: I get the feeling I'll be very late to the D&B party

MSmits: the math is pretty difficult

MSmits: to code that is

Queuebee: is there no code formatting in chat?

Queuebee: ``` test ```

MSmits: just make pastebin links I guess

Queuebee: good one!

dbdr: MSmits: you might also go straight to #1 when you get something working

MSmits: well there will be stages so probably not

MSmits: I'm working on a solver that calculates the end game value when you run out of places to put lines without giving away boxes

MSmits: loony endgames as they are called

MSmits: that means you solve halfway through the game without even having a search

darkhorse64: I wonder if there is no way to go full heuristics: from what I understand, you need to make chains and when comes the time to score there known ways to keep control. It seems that the number of possible moves can be greatly reduced

MSmits: if and when I get that working, I'll try to get it into a search

MSmits: so the first working bot will be a random bot that plays perfectly in end game

dbdr: loony is not that. it's when you give the choice to the opponent

MSmits: a loony move you mean

dbdr: yes

MSmits: a loony end game means every move is a loony move

darkhorse64: Yeah, endgames look pretty deterministic

MSmits: and that happens when you can not do a safe move

MSmits: all end games are loony end games

MSmits: basically

dbdr: is it a loony move to finish the last chain?

MSmits: it's like this

MSmits: you have the controller and the player forced to open chains

dbdr: that name does not sound right to me

MSmits: the player who is forced to open, does a loony move

dbdr: because it's not loony

dbdr: right, the opening move of a chain is loony

dbdr: not every move :)

MSmits: thats semantics, they still call the whole game after this point a loony endgame

MSmits: in the papers that is

dbdr: who is "they"

MSmits: every paper I read about it

dbdr: also, semantics is "meaning". I think it's misused here

MSmits: about 5 papers and half of Elwyns book

dbdr: OK

dbdr: (not just here, I've seen many people misuse that word)

MSmits: they distinguish simple loony end games and arbitrary loony end games

MSmits: yeah i guess you're right

MSmits: simple loony end games = just chains and loops

MSmits: no complex objects

MSmits: I am sure i can write a solver for those

MSmits: the other end games are more difficult

MSmits: frame 57 = simple loony endgame

dbdr: are there other kinds of endgames?

MSmits: yes, thats when 3 chains connect to 1 cell

MSmits: or loops and chains

MSmits: complex objects

dbdr: ok

MSmits: if you floodfill an object like that, there will be multiple parts to it

MSmits: watching some games between top 3 players, many mistakes are made in the endgame that dont even require search to find

dbdr: example?

MSmits: let me find one, sec

dbdr: thx

dbdr: in my bot too? ;)


MSmits: frame 61

MSmits: you play a half-hearted handout

MSmits: hmm no sec

MSmits: he does

MSmits: he should have separated the two cells

MSmits: forcing you to take both

MSmits: instead he gives you the choice to keep control

MSmits: or take them both

dbdr: yes, he does

MSmits: so thats one example,

MSmits: let me find more

dbdr: and I choose not to take it :)

MSmits: yeah, so you benefited from the choice

MSmits: even if you took it, it was a bad move, more choices is always better

dbdr: yes

MSmits: didn't find any more in the last 4 games i checked. I do remember finding one yesterday when you or jrke didn't take a free box that was offered

MSmits: free boxes should always be taken, otherwise the opponent will just take them

dbdr: yes. for the right definition of "free"

MSmits: free as in it's not a long chain where you can do a double dealing move

MSmits: it's just a short chain requiring 1 line to finish

MSmits: 1 or 2 boxes

MSmits: so no matter what, you're going to have to open something else

MSmits: might as well take the boxes first

dbdr: sure

MSmits: that sort of thing should all be heuristics

MSmits: shouldn't let the search handle it, waste of calculation time

Default avatar.png flameblast12: how can i make an empty array in python?

dbdr: yes, be kind of CG servers, and take no chance

MSmits: right :) But also, if you write a solver and can solve by frame 55 or so, it means you can solve by frame 45 if you add a search

MSmits: but easier said than done, because of the arbitrary end games... I'll just try to finish the simple solver first

MSmits: I'll have random bot + simple solver, see if i can get into top 10 with that

MSmits: flameblast12 an array is a list

MSmits: I think it's a = []

MSmits: then a.append("whateva") to add something

Default avatar.png flameblast12: thanks

MSmits: list, set, dictionary, those are the important collections

MSmits: google them if you forget syntax

Default avatar.png flameblast12: yeah

Default avatar.png flameblast12: im completely new to programming

MSmits: python is a good place to start and easy puzzles give good motivation

MSmits: if you find them all too hard, you should probably do a basic python course first


dbdr: this is an interesting case where I have the control but lose

dbdr: too many small chains and loops

MSmits: hmm let me see if i can find a mistake during the end game

MSmits: yes

MSmits: hmm no, nvm

MSmits: the hard part is 3-chains

MSmits: they mess things up

dbdr: because of the -1 in score?

dbdr: a 4 loop is -4...

MSmits: yeah

dbdr: so much worse

MSmits: I dont mean 3 chains are worse

MSmits: I mean the math formulas are dependent on the amount of 3 chains

MSmits: specifically

MSmits: they are a special case

MSmits: you lost because you gave away all the 4 loops

dbdr: if I didn't I would lose control

MSmits: yeah, it's hard to figure out if your bot made a mistake in this, but sometimes giving up control is better

dbdr: right

MSmits: this is also not a simple loony endgame

MSmits: some objects are complex

dbdr: what's special about 3 chains?

dbdr: they are long

MSmits: they are the only chains that give negative points

dbdr: right

MSmits: so too many of them and it is bad to keep control

MSmits: there's special cases for 0, 1 and 2 and up

Default avatar.png flameblast12: how can i post a replay?

dbdr: but that's also true of 4 loops

Default avatar.png flameblast12: or my code

MSmits: yes

dbdr: (even more, as we said)

MSmits: what i mean is, 3-chains are exceptions in the group of chains

dbdr: right

Default avatar.png Memo12334: :eyes:

MSmits: depending on how many you have, sometimes its better to play a loop first and sometimes a chain

MSmits: I can't explain exactly why... the proofs are pretty complicated even though the resulting rules aren't

MSmits: 1 and 2 chains are easy

MSmits: you just always play the smalles first

MSmits: in fact, the papers dont even count them as part of the loony endgame

MSmits: dbdr, I think If you had kept the first 4 loop for yourself (all 4 boxes) you would have wom

MSmits: won

MSmits: because then jrke would have had to give both other 4 loops to you to keep control just to get the last chain

MSmits: hmm no the chain is longer than the 12 boxes

MSmits: so thats not it

MSmits: as controller, you give away 12 boxes to get the 14 at the end. If you gave away control 1 step earlier (the 4 chain), you would have been in the same position

MSmits: I think I got it, not 100% sure though:

MSmits: at frame 64, you keep control on the 3-chain, sacrificing 2 points

MSmits: (dbdr)

MSmits: if you had given up control, I think you would have won

MSmits: the controlled value of the rest of the game is exactly 0

dbdr: nice :)

MSmits: this is actually one of those cases where 3 chains are important

MSmits: because there are 2

Marchete: so this week was "fun", my project at work was cancelled, and police came to my house looking for me

Marchete: :cop_tone3:

norbi97: woah, that surely sounds fun to me

MSmits: what'd you steal?

MSmits: was the project cancelled because you stole stuff?

MSmits: I'm just riffin'

Marchete: :D

Marchete: totally unrelated events that happened with like 4 hours difference...

Marchete: project cancelled because it will be another new one replacing the current one, and I'll be transfered to that new one

MSmits: that's not unrelated unless they were beyond the orbit of jupiter, thats obviously a time-like connection

Marchete: and the police notified me about my old car, that I needed to move it

MSmits: huh

MSmits: did you forget you have that car and left it somewhere?

Marchete: no, because of the pandemic the car was parked for 3+ months, and the battery died

MSmits: ohh

MSmits: but why did it need to be moved?

Marchete: so I was lazy to move it, but police convinced me reaaaally fast

MSmits: oh it was parked somewhere it shouldnt

Marchete: to avoid being declared as abandoned

MSmits: right

Marchete: it was correctly parked, but you can't park a vehicle forever in the same place

MSmits: well, I left my train somewhere for like 3 months and it was fine

Marchete: it seems that after N weeks you need to move it

Marchete: yeah, trains are easy to park

MSmits: :)

Marchete: nodoby notices them

MSmits: my wife had to do a corona test this week and I couldnt go to work

MSmits: because of a family member that did something less than wise

Marchete: my wife did it 2 weeks ago, negative

MSmits: yeah also negative here

Marchete: she had like really mild symptoms

MSmits: same

MSmits: I think I also caught it, but my symptoms were so mild I wasnt even sure

MSmits: I slept a bit more and had sore throat for 1 day

Marchete: if I caught it, it was before all the fuzz, around february

MSmits: had a test scheduled just in case but i cancelled it after my wife's was negative and I never got sick

Marchete: how's going at work?

Marchete: less teachers/student ratio?

MSmits: it's going ok, it's a bit frustrating that i want to use a mask but I really can't

Marchete: here they seem a bit clueless

MSmits: all students

MSmits: no reductions

MSmits: the best thing they did was implement a rule that students arent allowed in the hallways when teachers switch classes

dbdr: MSmits, go all Steven Hawking-style ;)

Marchete: I don't get it, in Netherlands you are like "f*ck that"

Marchete: f*ck old people, die!

Marchete: yet you had less problems than here...

MSmits: Marchete we have a really low infection rate currently

MSmits: no, we had a real lockdown also

MSmits: schools stopped completely

Marchete: we had a damn prison lockdown

Marchete: like going once each 2 weeks to groceries

MSmits: well the extra bit you had was not very effective i think

Marchete: and nothing more

dbdr: people could not just walk out of prison anymore?

Marchete: for 3 months...

MSmits: the most important things are not to go to bars/restaurants and not visit relatives, work from home

MSmits: not going for a walk outside is pointless

MSmits: grocery store barely causes any infection

Marchete: I think it was more about who took the virus (older == harder to beat), and maybe the mutation virus or smth

MSmits: the most important factor is the moment you go into lockdown

Marchete: I don't understand how Italy, Spain, France and UK hit so hard

dbdr: I don't know, you touch stuff at the store

Marchete: but not on some other countries

MSmits: if you do it early, then you only have to do enough to get the reproduction rate below 1

MSmits: if you do it too late, then the damage is done

MSmits: dbdr the effect is pretty minimal

MSmits: mostly it's live interaction

MSmits: come too close, share breath etc.

Marchete: too close, then finland is safe :D

dbdr: :D

MSmits: why finland?

dbdr: cultural norms

dbdr: less touching, more distance between people

MSmits: Marchete Italy was too late with the lockdown, so was the UK

Marchete: here at southern countries we are more effusive

dbdr: compared to south europe eg.

Marchete: if that's a word in English

Marchete: have you seen a nordic bus stop?

MSmits: hmm I think it's mostly what happens within families. In some countries it's customary to all eat together, 10 people at once, or do it several times a week

MSmits: churches are bad when it comes to covid also

MSmits: countries with more church-going will have more infections.

Marchete: that and southern people emancipates later

dbdr: more than night clubs?

Marchete: for economic reasons, mainly

MSmits: nightclubs are bad, but most people dont go there, in many places everyone goes to church

MSmits: or mosque or whatever

dbdr: right

MSmits: communal gathering places

Marchete: orgies?

MSmits: yeah that works

MSmits: and you get std as a bonus

Marchete: :)

dbdr: what I heard recently is, young people are less careful, and then they spread it to their parents/grandparents

Marchete: you save time, it's more efficient

MSmits: dbdr thats true

MSmits: but that's basically a constant across countries

dbdr: right

MSmits: well young people visiting old ones isnt

MSmits: so the countries where they eat together....

dbdr: so may factors

MSmits: population density also matters

Marchete: metro == a lot of cases

MSmits: I think Sweden mostly got away with what they did because of this

Marchete: prove me wrong

MSmits: even though they had lots of deaths, it would have been 10x worse in my country if we had no lockdown

dbdr: yes. for instance sweden's stats are not bad in average, but they are bad compared to similar nordic countries

MSmits: other nordic countries had lockdowns

Marchete: viking gods need sacrifices

dbdr: and much lower stats

MSmits: exactly

MSmits: lockdowns do work very well

MSmits: but the trick is how to get back to normal. Do it slowly and watch for early signs. Many times it failed

Marchete: stupidity beats lockdown, rock, paper, scissors and spok

MSmits: like in the US

Marchete: and we are surrounded

MSmits: you forget Lizard

MSmits: or do you have a lizardless rps?

Marchete: stupidity already beaten it

MSmits: o ok

MSmits: the cold viruses that are out now are a real problem

MSmits: if you catch one, do you go to work even if you test negative?

MSmits: you might get 2-3 days extra work in

MSmits: but the guy you infect needs to stay home for a corona test

MSmits: and you may infect more than one

dbdr: we need to make an optim out of this

MSmits: lol right

Marchete: I love remote working

MSmits: I doubt that it's a good idea to go to work with a cold virus anyway, except when it's nearly gone.

Marchete: so peaceful, no annoying people talking loud

MSmits: you dont do great work and you extend the duration of the disease

Marchete: no football related chit chat that I don't f*cking care

MSmits: same Marchete

MSmits: though in my case, part of my job is the actual people :P


MSmits: nice

Marchete: IT crowd, one of the best series ever

MSmits: I think that's mostly true for people who are in IT or similar

MSmits: otherwise it's just a good series


dbdr: for sale, only 4K USD :D

MSmits: do people make a lot of money selling URLS?

MSmits: I guess you need to get lucky

dbdr: sometimes

dbdr: yeah, I guess they buy 100 and sell 1, just depends on the margin

MSmits: right

Marchete: especially short ones, I've heard someone bought a 3 char domain just to win a damn codegolf puzzle :rofl:

dbdr: :innocent:

dbdr: it was first cheap though

dbdr: *dirt

MSmits: are there 2 char domains?

MSmits: or 1?

dbdr: 1 + 2 tld + the dot

MSmits: = american airlines

Marchete: I didn't found a cheapo 3 char one, so I ended 2nd...

AntiSquid: ah we talking about the virus? honestly if it was as deadly as the media likes to exaggerate to click-bait people and generate panic, then we would have lost more people than during the 1st world war

dbdr: I gave a couple of dollars to the island of Palau :)

dbdr: MSmits: to make it cheap, use a non-ascii 1 char

MSmits: AntiSquid the deadliness is not the point though, it never was

dbdr: there is an almost infinite number of those

MSmits: it's the capacity for getting people into the hospital

Marchete: it is on older people

dbdr: so no high price

MSmits: Marchete not even for older people

Marchete: yeah, because of capacity

AntiSquid: MSmits did you visit any hospitals recently?

MSmits: more older people go to the hospital and become chronically ill for the rest of their lives from this virus than die

MSmits: it wrecks your body

AntiSquid: a lot of people died on ventilators

AntiSquid: it wrecked their lungs

MSmits: right

MSmits: and if they didnt die it still wrecked them

AntiSquid: there's a huge overreaction .

MSmits: and most didnt

MSmits: why is it an overreaction

MSmits: in Italy, people died because they couldnt get care

MSmits: the lockdowns prevented that from happening in most other countries, excepting Spain

AntiSquid: uhm, actually a person i know wasn't put on ventilator because of another medical condition. he is alive, others put on ventilators died

dbdr: it's also tricky. if hard measures are taken and they work, you can then say it was overreaction

MSmits: exactly dbdr

dbdr: AntiSquid: nice annecdote

AntiSquid: true story

dbdr: anecdotes do not prove a point

dbdr: truth is not the question

AntiSquid: actually, not trying to prove it, just saying it as it is

dbdr: statistical significance is

MSmits: they have plenty of statistics on this, they did put people on ventilators too easily at first, but in many case it still is necessary. If you dont get air, you die

dbdr: sure, it can happen

AntiSquid: yes how many people died, look at stats

dbdr: the human body is super complex

MSmits: AntiSquid again, the death rate is completely unimportant

AntiSquid: all the protesters would be dead by now

MSmits: it's the damage to people who survive and the deathrate that you have without any care

Marchete: UK people is weird, destroying 5G towers because of the covid :)

MSmits: that deathrate is actually pretty significant

AntiSquid: the ventilators are part of causes the damage

Marchete: is like wha?

dbdr: there are a few weirdos everywhere

MSmits: that's the same effect as flat earth

dbdr: happened in germany too I think

MSmits: wrong corner of Youtube

AntiSquid: not adjusting them is another issue, but ya there was massive overreaction

Marchete: there is no overreaction as soon as hospital are at capacity

MSmits: and that nearly happened in many countries and happend in some

dbdr: Marchete: it's a good example of "correlation does not prove causation"

AntiSquid: do you work in a hospital? wards are mostly empty

MSmits: if it "nearly" happens, you definitely did not overreact

Marchete: the ventilators and such is a problem, but I think doctors now they know how to handle citokine storm better

MSmits: they are now AntiSquid

MSmits: but they werent before

AntiSquid: nice comparing me to a flat earther when you don't have any idea about the situation

AntiSquid: MSmits

MSmits: in my country they were nearly full

MSmits: we had to expand a lot

MSmits: AntiSquid we are not

MSmits: the 5G thing

MSmits: i was referring to

dbdr: nice asserting someone has no idea

dbdr: when it's clearly not the case

AntiSquid: then where do you get your facts from

AntiSquid: because it's not aligned with reality

MSmits: the 5G conspiracy theories are similar to flat earth, anti-vaccers etc.

Marchete: well, you work at an hospital, so we must listen you more

dbdr: tell us the truth, and your sources AntiSquid

Marchete: but I'm on the cautionary side

Marchete: like a new computer virus

Marchete: better take all precautions

Marchete: until you are completely, totally and 99.999% sure

MSmits: AntiSquid it's very regionally dependent, but states usually need to make country-wide decisions

AntiSquid: i didn't mention 5G, but that's random even for a conspiracy

MSmits: your hospital can be in a quiet region

AntiSquid: no that's not it

MSmits: in our country, the south was overrun by the virus and people where transported north

MSmits: to get care

MSmits: so thats serious

AntiSquid: ok lookup newly built emergency hospitals

Marchete: even here we had like 3 hot areas, the rest of the country was nice

AntiSquid: many empty now

MSmits: of course

MSmits: thats the nature of exponential growth

MSmits: you need to prepare and you're almost always going to overprepare

dbdr: or underprepare

MSmits: well if you do it right, you overprepare

dbdr: and get blamed in both cases

MSmits: exactly

MSmits: it's like with vaccines

MSmits: they are making millions of them even before they even know they work

Marchete: and then you'll have a lot of captain hindsight

MSmits: because once they are done testing, they need to be able to use them immediately


AntiSquid: it's not captain hindsight when it's going on for months ...

AntiSquid: it's still happening


AntiSquid: i get it inside hospitals you take measures to protect the patient

AntiSquid: s

MSmits: it doesn't matter, you can get infected everywhere. People bring the virus into the hospital even with the best measures. If you have less infected people outside of the hospital, there's less chance of the virus coming in. Same with nursing homes

MSmits: protecting the entire country = protecting nursing homes

Marchete: btw talking about dots and boxes, someone have sample inputs on a file?

dbdr: Marchete: nice one. more concise :)

AntiSquid: same with seasonal flu

MSmits: but the seasonal flu is far less infectious

Marchete: I can export them, but I'm lazy

Marchete: and rusty af

AntiSquid: it kills elderly too

MSmits: at a far lower rate also

MSmits: 5-10x lower

MSmits: and does less damage when they survive

dbdr: Marchete: bash, echo >&2

AntiSquid: the virus doesn't do as much damage as the measures

Marchete: but I meant a whole game

Marchete: nvm I'll do it in C#

Marchete: I'm having some issues with my data structures

MSmits: without any care, corona is probably 5 times more deadly. Also without lockdowns, you probably get a 10-100 times more cases. So you can get 100-1000 times more death without lockdowns, but you never see this, because there are lockdowns

Marchete: I need Visual Studio

Illedan: :wave:

Marchete: :eye: :eye: :eye: :eye: :eye: :eye:

Marchete: shhh

MSmits: the virus does more damage than the measures, because even without a lockdown, you're going to have a lockdown, you're just going to have it later, with many more sick. There's always a point where the country is overrun

MSmits: if you dont do anything

MSmits: (excepting low pop density countries with generally careful people like Sweden)

AntiSquid: disagree with some of the stuff you said, enjoy the lockdown

MSmits: we dont have a lockdown

MSmits: we had one and it worked

AntiSquid: you as in your country?

MSmits: country

MSmits: bars/restaurants were closed

MSmits: school was closed close to summer

AntiSquid: afaik it wasn't as big of a lockdown as other ones

MSmits: no gatherings

MSmits: no visiting family

AntiSquid: i mean less restrictions overall

MSmits: like what?

MSmits: I think it was pretty much the same as in France

AntiSquid: mask enforcement for example

dbdr: no visiting family was a law?

MSmits: by the time it was clear how much masks helped, we had already beaten it mostly, but yeah

dbdr: you can only visit random strangers :)

MSmits: yes dbdr

MSmits: lol

MSmits: we didnt visit relatives for 2 months or so

MSmits: masks are mostly helpful for when you cant socially distance

MSmits: but the lockdown was such that you had to socially distance everywhere

MSmits: masks were and still are, mandatory in public transport

MSmits: people complain about the economic damage to bars, restaurants and similar, but when people switched to online shopping there were loads and loads of companies going bankrupt. Sometimes you lose your job due to societal changes. It's crap, but it helps if you have a good safety net in your country. We do... mostly

Marchete: we are going bankrupt

AntiSquid: by lockdown i meant, there are still travel restrictions, it's not as tight as it used to be, but certain countries you can't visit,

dbdr: Spain?

Marchete: tons of tourism business...

Marchete: yeah

MSmits: AntiSquid thats true, and it changes every week

AntiSquid: weird bit is some countries you cant visit and those you can visit each other, so ..... eh whatever

MSmits: oh right, countries dependent on tourism, thats harsh

dbdr: yeah, Spain has highest tourism per capita

MSmits: AntiSquid they are making it up as they go, it's not easy to do :)

MSmits: or to coordinate

MSmits: I'm happy I got to go on vacation in my own country in the summer, just at the corona low point

MSmits: it came back a bit after young people got stupid

MSmits: illegal parties etc.

dbdr: UK decided quanrantine for people coming from France, so France did the same, because they said the situation is similar in both countries

AntiSquid: but part of the way the politicians are reacting to it is retroactive based on media caused panic and to appease the crowds

MSmits: i agree AntiSquid

dbdr: it's true, these things are not purely rational

MSmits: I actually think that is why our schools opened completely all at once

MSmits: It would have been better to do it like Belgium, open at half capacity first (every other week)

MSmits: political pressure was on opening schools completely

MSmits: even while corona is on the rise

AntiSquid: anyway sorry for derailing chat into this further, pointless rambling regardless

MSmits: I'm ok with it, it's our daily reality after all

MSmits: have to discuss it sometimes

MSmits: but we could go back to D&B :)

dbdr: MSmits, it's part of the plot to delay your bot ;)

MSmits: lol, I am doing that very well all on my own. This math stuff is hard

MSmits: well hard to put into code that is

MSmits: it's deceptively har

MSmits: d

dbdr: yes, I think partly because articles/books often speak about things to play as humans

MSmits: yeah

dbdr: not always relevant to writing a bot

MSmits: also they refer a lot to nimstring/nimdots

MSmits: which is about keeping control

MSmits: but that assumes it's always best to keep control

MSmits: nim doesnt have score, just the last one to move wins

MSmits: or loses, depending on the definition

dbdr: it's because it's a subproblem

dbdr: so it's useful

dbdr: there is the construction for this

MSmits: yes, but it seems that very good D&B players almost always run into situations where losing control might be best

dbdr: to be able to solve D&B in the general case, you need to be able to solve nimstring

MSmits: true

MSmits: but that part is not the hard part

MSmits: to win at uttt, you need to be able to win at ttt.

dbdr: :D

MSmits: well bad example, you cant win ttt :P

dbdr: lol

dbdr: therefore, you can't win at uttt

dbdr: which might be true if the game is solvable as a draw too

MSmits: yea yeah :facepalm:

MSmits: it's either a draw or a win for p1

dbdr: it cannot be p2?

MSmits: no, because having more cells you own is always better than having less

MSmits: and p1 has the full choice

MSmits: you can use the strategy stealing argument

MSmits: anything p2 can do, p1 can do also, and more

MSmits: it's like this

MSmits: say you start in center

MSmits: and p2 plays corner of center board

MSmits: then you might also have started in corner of center board

dbdr: p2 could have two winning first moves

MSmits: hmm how

dbdr: why not?

MSmits: but why two?

dbdr: more than one

dbdr: it's not just 'prevent them from playing their move"

MSmits: I'm confused though, say p1 starts center

MSmits: is there anything p2 can do, that makes for a better situation than the same situation as p1 starting there

dbdr: but yes, I think it makes sense that with one more you are ahead. just not sure how to formally prove it

MSmits: ok my point is this:

MSmits: 100 000 000

MSmits: is always better than

MSmits: 200 010 000

dbdr: yes, I see your point

MSmits: it's a bit unfair though, I've simulated millions of games and it's extremely hard to find even a game where p2 is guaranteed to draw

MSmits: so a guaranteed win seems unimaginable to me

MSmits: the game is very skewed

MSmits: if you do random sims it's around 70-30%, with heuristics on the part of p1, it becomes 90-10% very quickly

Marchete: it seems that the game is more graph oriented than bitwise oriented

dbdr: d&b

MSmits: hmm how do you mean

MSmits: oh D&B

Marchete: you mean UTTT?

MSmits: we were talking about uttt yes

Marchete: pffft, that's so pre-covid

dbdr: I was talking about botg

MSmits: yeah

MSmits: I use bitboards for D&B for now, but only because that way i can fit the gamestate on the nodes

MSmits: for minimax thats pointless

MSmits: unless you have a persistent tree somehow

darkhorse64: Has anyone found this paper "using heuristic solver to optimize monte carlo tree search in dots-and-boxes" ?

MSmits: yeah

MSmits: oh you mean a downloadable

Marchete: all literature goes around chains, cycles and stuff

MSmits: it's useless darkhorse, i actually paid for that one

Marchete: paid?

MSmits: it's the chinese paper right?

Marchete: like real money?

MSmits: yep

darkhorse64: Yeo

darkhorse64: yes

Marchete: like for a CG game?

MSmits: it's 5 pages, has very little information i could use

MSmits: yeah i was too curious, the title was exactly what i needed

darkhorse64: Title seemed very promising

MSmits: it's crappy, there's free papers that are more usefukl

MSmits: not about mcts mostly

MSmits: but the math

Marchete: "papers", promising title with near zero proven info

jacek: such dedidaction

jacek: to pay for paper for a game

Marchete: most of them are some crappy pseudocode and some winrate graphs

MSmits: first time i ever did that though :)

Marchete: that can be anything because you can't prove it

MSmits: none of the useful ones on D&B i found even had pseudo code

MSmits: they are all math

MSmits: i found one with what i think was Perl code

MSmits: but wasnt too useful

jacek: perl code isnt useful

darkhorse64: Other than the book (whick looks quite hard to implement), have you found valuable info ?

Marchete: perl? I can understand python, but perl?

MSmits: darkhorse64 yes, rules for solving end games

Marchete: it's like trying to do an AlphaZero bot with Pascal

Marchete: and 5x5, no?

MSmits: if you google simple loony endgames, you will find the paper

MSmits: 5x5 is mostly what you find yes, but the rules are more general


MSmits: Combinatorial Game Theory: The Dots-and-Boxes Game

MSmits: those two are the best

MSmits: darkhorse64 i also found a pdf of Elwyns book, but wasnt too useful i found

MSmits: mostly an introduction to playing the game, it lacks the advanced solving mechanisms you find in those other 2 papers

Marchete: I think I need to use width = 8 instead of 7

darkhorse64: I read these but, as you said, there are more useful for human players because you have to evaluate when to apply. You have to think in patterns

MSmits: I use width 8 for my bitboard

MSmits: darkhorse64 using those papers, you can solve any loony engame at around frame 50-60

MSmits: simple i mean

MSmits: many of them are simple

MSmits: and many are not

MSmits: but you can brute force those I suspect

MSmits: using knowledge from simple ones

MSmits: imagine a mcts rollout

MSmits: you rollout, to frame 50-60, then solve and backpropagate

darkhorse64: It leaves you with a large branching factor at the start but maybe you can prune a lot ( trying to make chains for instance)

MSmits: trying to make chains is not so useful

MSmits: because you make them for yourself as well as for your opponent

dbdr: yeah, it's neutral

jacek: neural

MSmits: darkhorse64 there is a rule about counting long chains, you could do something with that maybe

Marchete: what's a loony endgame?

Marchete: looney tunes?

MSmits: like, the starting player needs an even number and the other player needs an odd number

darkhorse64: Yeah, this is why the heuristic solver seemed so appealing. Maybe I should play some online games.

MSmits: or reverse


Marchete: ahh, the even/odd chains

MSmits: simple loony endgame frame 57

darkhorse64: I know that rule. Hard to implement with bit boards

Marchete: yeah I'm trying that

MSmits: loony means the first one to play has to open a chain and the second can finish it completely or double deal it

MSmits: the second one is the controller

MSmits: because he can decide to keep control or cede it

MSmits: (btw that replay is played by dumb bots)

MSmits: I use the replay to test my chain counting and such

MSmits: it's cool to have seeded random, I can just change the seed a bit, get a different game and test it more

darkhorse64: gotta go for now

MSmits: kk ttyl

Marchete: :S


C0d1ng_Anub: wrong test cases

MSmits: you cant share your IDE. You can link the puzzle from the puzzle page

MSmits: also, if your puzzle fails it almost 100% certain that the bug is in your program, not in the test case

jacek: impossibru

Default avatar.png Farma12: hi guys, short stupid question: python3: I have a class which inherits from numpy.ndarray, where I check if the inputarray is of lenght 2. How can I replace the values of itself in the childclass?

Default avatar.png Farma12: class Point(np.ndarray):

Default avatar.png Farma12: this is my first inheritant

Default avatar.png Farma12: class Racer(Point):

Default avatar.png Farma12: this is my Racer class. I want to update x and y and replace the values in the np.ndarray in the function update(self, x,y...)

Default avatar.png Farma12: is there a way to do it?

Putnam3145: add APL to the language list to evolve the code golf meta

Allis: Add Whitespace and only count visible characters.

Allis: Am 100% serious.

Default avatar.png JBM: Whitespace was created specifically so *that* never happened

Default avatar.png JBM: I recall Perl has a module to convert your code to interpretable whitespace

Default avatar.png JBM: We should lobby to get that in too, probably easier than to add a new language

Default avatar.png JBM: Especially one for which nobody wants to write the stubs generation grammar

Zenoscave: does euler have a Post Morten for GitC

Zenoscave: I can't find it but I recall reading one