Skip to content

Commit 259c48a

Browse files
committed
fixed a bug which reveals unopened cells when you fail a chord
1 parent f9df9cd commit 259c48a

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
*.o
33
*.S
44
lib
5+
main

main.bz

+19
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,23 @@ fn tryChord(cell[][] grid, int x, int y) bool {
652652
if flagged != c.number ret true
653653
let bool safe = true
654654

655+
for i from -1 until 2 {
656+
for j from -1 until 2 {
657+
if i == 0 and j == 0 continue
658+
if x + i < 0 or x + i >= grid.len continue
659+
if y + j < 0 or y + j >= grid[0].len continue
660+
if grid[x+i][y+j].flag continue
661+
662+
if grid[x+i][y+j].mine {
663+
# Opens that single cell with mine
664+
recursivelyOpen(grid, x+i, y+j, true)
665+
mut safe = false
666+
}
667+
}
668+
}
669+
670+
if !safe ret safe
671+
655672
for i from -1 until 2 {
656673
for j from -1 until 2 {
657674
if i == 0 and j == 0 continue
@@ -660,6 +677,8 @@ fn tryChord(cell[][] grid, int x, int y) bool {
660677
if grid[x+i][y+j].flag continue
661678

662679
let bool result = recursivelyOpen(grid, x+i, y+j, true)
680+
681+
# Technically useless, but gonna leave it in
663682
if !result mut safe = false
664683
}
665684
}

0 commit comments

Comments
 (0)