Solve triangle solitaire puzzle: Difference between revisions

m
Line 375:
solution$ = ""
#
func try_move pos dir . res .
res = 0
if brd$[pos] = "●" and brd$[pos + dir] = "●" and brd$[pos + 2 * dir] = "·"
brd$[pos] = "·"
brd$[pos + dir] = "·"
brd$[pos + 2 * dir] = "●"
res = 1
.
.
Line 389 ⟶ 387:
brd$[pos + 2 * dir] = "·"
.
func solve . ressolved .
for pos range len brd$[]
if brd$[pos] = "●"
for dir in [ -13 -11 2 13 11 -2 ]
call try_move pos dir moved
if movedbrd$[pos] = 1"·"
call solve solved
call undo_move pos dir
Line 402 ⟶ 400:
.
.
n_teesnpegs += 1
.
.
if solved = 1 or n_teesnpegs = 1
res = 0
if solved = 1 or n_tees = 1
solution$ = str_join brd$[] & solution$
ressolved = 1
.
.
call solve resh
print solution$
</lang>
1,985

edits