AbundantPuddle: I have faith in you.
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: but not against me dbdr
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
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
Illedan: Knew it was something
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: new Random(42); => new Random();
jacek: the heuristic is deterministic
jacek: so rhymy
Illedan: And I won the first match
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!
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
Allis: There's no drawing on CG, right?
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
jrke: dbdr fixed bug?
dbdr: still not perfect
dbdr: hey, Marchete joined :)
jrke: hey marchete welcome to wood 1
dbdr: we are all doomed!
jrke: 2 ongoing submission by illedan and marchete
Illedan: Marchete going for Int.Min score and get -1 to get Int.Max
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
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));
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: https://i.snipboard.io/EwKuWV.jpg It's not Illedan who should be paranoid
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
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: 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: 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
TheSpiffiest: for eternity:
form + database + pdf
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 ??
dbdr: jrke: rust is faster in submission, that might explain it
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
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
darkhorse64: One by one ?
darkhorse64: I push chars on my editor, 8 bits by 8 bits. It's faster
dbdr: push bits on a stack?
TheSpiffiest: That's a good solution
darkhorse64: Team work
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
jacek: rust is meh in ide
dbdr: trust rust or go bust
dbdr: you must
dbdr: just trust rust or go bust you must
dbdr: does that count as a haiku?
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
dbdr: just realized rust might be interesting in Japan
jacek: thats lacist
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
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"
dbdr: what did you eat last night JBM?
Uljahn: middle-term memory
TheSpiffiest: try to code in rust to make all my code robust error go adjust
dbdr: OK you're clear then ;)
dbdr: (apart from the "meat is murder" part ;) )
darkhorse64: Haiku on Rust or Rust on Haiku
dbdr: why not both?
darkhorse64: Just saw there is a new beta. Will we see a first release 20 years after BeOS demise
darkhorse64: Too long for 5/7/5. Golf it
dbdr: JBM: nice one!
dbdr: that code C plus plussed? just leave that dust with disgust in rust we must trust
darkhorse64: CG, the only place where people debate with poems
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?
jacek: make puzzles :?
jrke: d&b is getting interesting now
jrke: can srand() take float?
Uljahn: there should be discussion tab or forum topic with tips, hints and common mistakes
Uljahn: nah, solo puzzles from practice section
Mawkey: How come the C# language assist is not activating for me?
Mirak42: Me too ...
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
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
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: (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: https://www.codingame.com/share-replay/484113827 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
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
MSmits: let me find one, sec
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
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
MSmits: that sort of thing should all be heuristics
MSmits: shouldn't let the search handle it, waste of calculation time
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
MSmits: list, set, dictionary, those are the important collections
MSmits: google them if you forget syntax
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: 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...
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: 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
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
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
dbdr: but that's also true of 4 loops
dbdr: (even more, as we said)
MSmits: what i mean is, 3-chains are exceptions in the group of chains
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: 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: 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
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: 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: 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: 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
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
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: 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
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
MSmits: communal gathering places
MSmits: yeah that works
MSmits: and you get std as a bonus
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
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: 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
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: yeah, I guess they buy 100 and sell 1, just depends on the margin
Marchete: especially short ones, I've heard someone bought a 3 char domain just to win a damn codegolf puzzle :rofl:
dbdr: it was first cheap though
MSmits: are there 2 char domains?
MSmits: or 1?
dbdr: 1 + 2 tld + the dot
MSmits: aa.com = 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: 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
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: 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
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
Marchete: :eye: :eye: :eye: :eye: :eye: :eye:
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: 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: 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,
Marchete: tons of tourism business...
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
dbdr: yes, I think partly because articles/books often speak about things to play as humans
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: but that part is not the hard part
MSmits: to win at uttt, you need to be able to win at ttt.
MSmits: well bad example, you cant win ttt :P
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
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: 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: 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
MSmits: it's the chinese paper right?
Marchete: like real money?
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: PLAYING SIMPLE LOONY DOTS AND BOXES ENDGAMES OPTIMALLY.
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
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
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
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?
Farma12: class Point(np.ndarray): http://chat.codingame.com/pastebin/caf9cfce-af7c-466d-b56b-2cf9a0edaea9
Farma12: class Racer(Point): http://chat.codingame.com/pastebin/230239d5-10ed-405d-8404-978963642d2b
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.
Zenoscave: does euler have a Post Morten for GitC
Zenoscave: I can't find it but I recall reading one