TDWTF Plays Minesweeper
-
Stats
96 mines 59 flags Seed 9a6f0d7b-da83-425b-ad69-0a1fdb8aa596Lockouts
SlackerD is locked out for 58 minutes, 32 seconds.
-
@error_bot flag d14 d15 d16
-
Stats
96 mines 62 flags Seed 9a6f0d7b-da83-425b-ad69-0a1fdb8aa596Lockouts
SlackerD is locked out for 58 minutes, 15 seconds.
-
@error_bot flag e14 e13 e11 e10 c18 b18
-
Stats
96 mines 68 flags Seed 9a6f0d7b-da83-425b-ad69-0a1fdb8aa596Lockouts
SlackerD is locked out for 57 minutes, 49 seconds.
-
@error_bot flag d20
-
Stats
96 mines 69 flags Seed 9a6f0d7b-da83-425b-ad69-0a1fdb8aa596Lockouts
SlackerD is locked out for 57 minutes, 31 seconds.
-
@error_bot solve
-
f7 mine probability: 28.57%
Âi5 mine probability: 28.57%
Âi6 mine probability: 28.57%
Âb8 mine probability: 33.33%
Âc8 mine probability: 33.33%
Âd8 mine probability: 33.33%
Âa9 mine probability: 42.86%
Âd9 mine probability: 42.86%
Âf9 mine probability: 42.86%
Âi4 mine probability: 42.86%
Âi7 mine probability: 42.86%
Âj1 mine probability: 47.62%
Âa19 mine probability: 50%
Âb19 mine probability: 50%
Âb20 mine probability: 50%
Âi2 mine probability: 52.38%
Âi3 mine probability: 52.38%
Âj2 mine probability: 52.38%
Âb9 mine probability: 57.14%
Âe9 mine probability: 57.14%
Âf8 mine probability: 57.14%
Âh7 mine probability: 57.14%
Â
-
@error_bot said in TDWTF Plays Minesweeper:
f7 mine probability: 28.57%
Âi5 mine probability: 28.57%
Âi6 mine probability: 28.57%
Âb8 mine probability: 33.33%
Âc8 mine probability: 33.33%
Âd8 mine probability: 33.33%
Âa9 mine probability: 42.86%
Âd9 mine probability: 42.86%
Âf9 mine probability: 42.86%
Âi4 mine probability: 42.86%
Âi7 mine probability: 42.86%
Âj1 mine probability: 47.62%
Âa19 mine probability: 50%
Âb19 mine probability: 50%
Âb20 mine probability: 50%
Âi2 mine probability: 52.38%
Âi3 mine probability: 52.38%
Âj2 mine probability: 52.38%
Âb9 mine probability: 57.14%
Âe9 mine probability: 57.14%
Âf8 mine probability: 57.14%
Âh7 mine probability: 57.14%
ÂThese numbers are bad. F7 and H7 are complementary; in any solution exactly one of those is a mine.
-
@PleegWat said in TDWTF Plays Minesweeper:
F7 and H7 are complementary; in any solution exactly one of those is a mine.
You're expecting them to sum to 100% then?
-
@error I would.
-
facts: [ '{ h7, i7 } = 1', '{ f8, f9 } = 1', '{ b8, c8, d8 } <= 1', '{ e9, f9 } = 1', '{ b8, b9, c8, d8, d9 } = 2', '{ d9, e9 } = 1', '{ b9, d9 } = 1', '{ b19, b20 } = 1', '{ a9, b9 } = 1', '{ i2, i3, i4, j2 } = 2', '{ j1, j2 } = 1', '{ f7, f8, h7 } >= 1', '{ f7, h7 } <= 1', '{ i4, i5, i6 } = 1', '{ a19, b19 } = 1', '{ i5, i6, i7 } = 1' ],
-
Fact reducer says one or fewer of them is a mine.
-
@PleegWat Based on G9, exactly one of F8 and F9 is a mine.
Based on G8, exactly two of F7, F8, F9, and H7 are mines.Subtracting out, exactly one of F7 and H7 is a mine.
There can not be any solutions where neither or both of those are mines.
-
These are the conditions the brute-forcer is solving with.
So the problem must be the fact reducer didn't find a fact you did.
-
@error said in TDWTF Plays Minesweeper:
Fact reducer says one or fewer of them is a mine.
Reversing: Assume F7 and H7 are both not mines.
Then based on G8 both F8 and F9 must be mines.
Which exceeds G9.
-
Considering there are 4*3*3 or so code paths for the fact reducer, it wouldn't surprise me to find one branch is incomplete.
-
This would be the "overlappingFacts" reducer... So that narrows it down...
-
@error_bot save state working
-
Game saved in slot
working
.
-
I'm going to trace all reducers that deal with those squares.
-
@error Does that fact list include inputs? My { F7, F8, F9, H7 } = 2 isn't in there. But { F7, F8, H7 } >= 1 is.
-
@PleegWat said in TDWTF Plays Minesweeper:
@error Does that fact list include inputs? My { F7, F8, F9, H7 } = 2 isn't in there. But { F7, F8, H7 } >= 1 is.
Fact list I shown is post-reduction.
I need to observe the reduction process.
Which is very noisy, but I have a function that lets me only print relevant deductions.
-
2019-11-27T14:42:42.668 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { facts: [ '{ h7, i7 } = 1', '{ f8, f9 } = 1', '{ e9, f9 } = 1', '{ b8, b9, c8, d8, d9 } = 2', '{ d9, e9 } = 1', '{ b9, d9 } = 1', '{ f7, f8, f9, h7 } = 2', '{ b19, b20 } = 1', '{ a9, b9 } = 1', '{ i2, i3, i4, j2 } = 2', '{ j1, j2 } = 1', '{ f6, f7, f8, g6, h6, h7 } = 2', '{ i4, i5, i6 } = 1', '{ a19, b19 } = 1', '{ i5, i6, i7 } = 1' ] } 2019-11-27T14:42:42.700 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'subsetFacts', both: '{ f8, f9 }', difference: '{ f7, h7 }', fact1: '{ f7, f8, f9, h7 } = 2', fact2: '{ f8, f9 } = 1', oldFacts: [], newFacts: [ '{ f7, h7 } <= 1' ] // this seems bad } 2019-11-27T14:42:42.710 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'overlappingFacts', both: '{ f7, f8, h7 }', difference: '{ f6, f9, g6, h6 }', fact1: '{ f7, f8, f9, h7 } = 2', fact2: '{ f6, f7, f8, g6, h6, h7 } = 2', oldFacts: [ '{ f7, f8, f9, h7 } = 2', '{ f6, f7, f8, g6, h6, h7 } = 2' ], newFacts: [ '{ f9 } <= 1', '{ f7, f8, h7 } >= 1' ] }
-
@error_bot solve
-
b8 mine probability: 33.33%
Âc8 mine probability: 33.33%
Âd8 mine probability: 33.33%
Âf7 mine probability: 33.33%
Âi4 mine probability: 33.33%
Âi5 mine probability: 33.33%
Âi6 mine probability: 33.33%
Âi7 mine probability: 33.33%
Âj1 mine probability: 44.44%
Âa9 mine probability: 50%
Âa19 mine probability: 50%
Âb9 mine probability: 50%
Âb19 mine probability: 50%
Âb20 mine probability: 50%
Âd9 mine probability: 50%
Âe9 mine probability: 50%
Âf8 mine probability: 50%
Âf9 mine probability: 50%
Âi2 mine probability: 55.56%
Âi3 mine probability: 55.56%
Âj2 mine probability: 55.56%
Âh7 mine probability: 66.67%
Â
-
Well, now f7 + h7 == 100% at least.
-
@error I'm not seeing any obvious problems now. The only similar state I'm seeing in this board state right now is {b8, c8, d8} which was right all along.
Anyway I've been liking the idea of a mine on h7 all along.
@error_bot flag h7
-
Stats
96 mines 70 flags Seed 9a6f0d7b-da83-425b-ad69-0a1fdb8aa596Lockouts
SlackerD is locked out for 34 minutes, 5 seconds.
-
@error_bot solve
I'm expecting reveals on f7 and i4
-
@error said in TDWTF Plays Minesweeper:
oldFacts: [ '{ f7, f8, f9, h7 } = 2', '{ f6, f7, f8, g6, h6, h7 } = 2' ],
newFacts: [ '{ f9 } <= 1', '{ f7, f8, h7 } >= 1' ]This is bad too... It's discarding information about h6, f6, f6 here (they're in the old rules but not the new rules).
-
@error_bot solve
-
Shit.
2019-11-27T14:52:45.820 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'sameFacts', fact1: '{ b9, d9 } = 0', fact2: '{ b9, d9 } = 1', contradiction: 'conflicting eq' }
-
@error_bot save state repro
-
Game saved in slot
repro
.
-
2019-11-27T14:54:01.793 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { facts: [ '{ f8, f9 } = 1', '{ e9, f9 } = 1', '{ b8, b9, c8, d8, d9 } = 2', '{ d9, e9 } = 1', '{ f7, f8, f9 } = 1', '{ f6, f7, f8, g6, h6 } = 1', '{ b9, d9 } = 1', '{ b19, b20 } = 1', '{ a9, b9 } = 1', '{ i2, i3, i4, j2 } = 2', '{ j1, j2 } = 1', '{ i4, i5, i6 } = 1', '{ i5, i6 } = 1', '{ a19, b19 } = 1', '{ h6, i6 } = 1' ] } 2019-11-27T14:54:01.818 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'subsetFacts', both: '{ b9, d9 }', difference: '{ b8, c8, d8 }', fact1: '{ b8, b9, c8, d8, d9 } = 2', fact2: '{ b9, d9 } = 1', oldFacts: [], newFacts: [ '{ b8, c8, d8 } = 1', '{ b9, d9 } = 0' ] } 2019-11-27T14:54:01.834 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'subsetFacts', both: '{ b8, c8, d8 }', difference: '{ b9, d9 }', fact1: '{ b8, b9, c8, d8, d9 } = 2', fact2: '{ b8, c8, d8 } = 1', oldFacts: [], newFacts: [ '{ b9, d9 } = 1', '{ b8, c8, d8 } = 0' ] } 2019-11-27T14:54:01.889 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'overlappingFacts', both: '{ b9 }', difference: '{ a9, d9 }', fact1: '{ b9, d9 } = 0', fact2: '{ a9, b9 } = 1', oldFacts: [ '{ b9, d9 } = 0', '{ a9, b9 } = 1' ], newFacts: [ '{ b9 } = 0', '{ a9 } = 1' ] } 2019-11-27T14:54:01.893 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'overlappingFacts', both: '{ d9 }', difference: '{ b9, e9 }', fact1: '{ b9, d9 } = 0', fact2: '{ d9, e9 } = 1', oldFacts: [ '{ b9, d9 } = 0', '{ d9, e9 } = 1' ], newFacts: [ '{ d9 } = 0', '{ e9 } = 1' ] } 2019-11-27T14:54:01.896 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'sameFacts', fact1: '{ b9, d9 } = 0', fact2: '{ b9, d9 } = 1', contradiction: 'conflicting eq' }
-
@error said in TDWTF Plays Minesweeper:
operation: 'subsetFacts',
both: '{ b9, d9 }',
difference: '{ b8, c8, d8 }',
fact1: '{ b8, b9, c8, d8, d9 } = 2',
fact2: '{ b9, d9 } = 1',
oldFacts: [],
newFacts: [ '{ b8, c8, d8 } = 1', '{ b9, d9 } = 0' ]
-
@error Why is there only one difference in your output? Shouldn't there be both a
fact1 - fact2
and afact2 - fact1
difference?
-
@PleegWat Actually, not in this rule, since it's subset not overlap.
-
@error_bot solve
-
reveal f7 i4
Âb9 mine probability: 25%
Âe9 mine probability: 25%
Âf6 mine probability: 25%
Âf8 mine probability: 25%
Âg6 mine probability: 25%
Âh6 mine probability: 25%
Âi5 mine probability: 25%
Âb8 mine probability: 33.33%
Âc8 mine probability: 33.33%
Âd8 mine probability: 33.33%
Âj1 mine probability: 33.33%
Âa19 mine probability: 50%
Âb19 mine probability: 50%
Âb20 mine probability: 50%
Âi2 mine probability: 66.67%
Âi3 mine probability: 66.67%
Âj2 mine probability: 66.67%
Âa9 mine probability: 75%
Âd9 mine probability: 75%
Âf9 mine probability: 75%
Âi6 mine probability: 75%
Â
-
Professor?
-
@error said in TDWTF Plays Minesweeper:
oldFacts: [ '{ b9, d9 } = 0', '{ d9, e9 } = 1' ],
newFacts: [ '{ d9 } = 0', '{ e9 } = 1' ]Again with throwing away useful info.
-
@error Output looks plausible.
-
@error_bot solve
-
reveal f7 i4
Âb9 mine probability: 25%
Âe9 mine probability: 25%
Âf6 mine probability: 25%
Âf8 mine probability: 25%
Âg6 mine probability: 25%
Âh6 mine probability: 25%
Âi5 mine probability: 25%
Âb8 mine probability: 33.33%
Âc8 mine probability: 33.33%
Âd8 mine probability: 33.33%
Âj1 mine probability: 33.33%
Âa19 mine probability: 50%
Âb19 mine probability: 50%
Âb20 mine probability: 50%
Âi2 mine probability: 66.67%
Âi3 mine probability: 66.67%
Âj2 mine probability: 66.67%
Âa9 mine probability: 75%
Âd9 mine probability: 75%
Âf9 mine probability: 75%
Âi6 mine probability: 75%
Â
-
@error said in TDWTF Plays Minesweeper:
@error said in TDWTF Plays Minesweeper:
oldFacts: [ '{ b9, d9 } = 0', '{ d9, e9 } = 1' ],
newFacts: [ '{ d9 } = 0', '{ e9 } = 1' ]Again with throwing away useful info.
{b9, d9} = 0
should just be split into{b9} = 0
and{d9} = 0
, IMO.
-
@PleegWat said in TDWTF Plays Minesweeper:
{b9, d9} = 0 should just be split into {b9} = 0 and {d9} = 0, IMO.
There's a separate
simplify
reducer.This thing has a lot of moving parts.
-
@error said in TDWTF Plays Minesweeper:
2019-11-27T14:54:01.834 INFO modules/minesweeper C:\Users\error\Documents\src\error-bot\dist\webpack:\src\util.ts:126 { operation: 'subsetFacts', both: '{ b8, c8, d8 }', difference: '{ b9, d9 }', fact1: '{ b8, b9, c8, d8, d9 } = 2', fact2: '{ b8, c8, d8 } = 1', oldFacts: [], newFacts: [ '{ b9, d9 } = 1', '{ b8, c8, d8 } = 0' ] }
This is old, but my expectation for strict subset is that the superset is dropped, the subset retained, and the difference added.