Solve triangle solitaire puzzle: Difference between revisions

Line 375:
solution$ = ""
#
func try_move pos dir . .
if brd$[pos] = "●" and brd$[pos + dir] = "●" and brd$[pos + 2 * dir] = "·"
brd$[pos] = "·"
brd$[pos + dir] = "·"
brd$[pos + 2 * dir] = "●"
.
.
func undo_move pos dir . .
brd$[pos] = "●"
brd$[pos + dir] = "●"
brd$[pos + 2 * dir] = "·"
.
func solve . solved .
for pos range len brd$[]
if brd$[pos] = "●"
npegs += 1
for dir in [ -13 -11 2 13 11 -2 ]
callif try_movebrd$[pos + dir] = "●" and brd$[pos + 2 * dir] = "·"
if brd$[pos] = "·"
brd$[pos + dir] = "·"
brd$[pos + 2 * dir] = "●"
call solve solved
callbrd$[pos] undo_move pos= dir"●"
brd$[pos + dir] = "·"
if brd$[pos] = "●" and brd$[pos + dir] = "●" and brd$[pos + 2 * dir] = "·"
if solved = 1
break 2
Line 400 ⟶ 393:
.
.
npegs += 1
.
.
1,995

edits