Solve triangle solitaire puzzle: Difference between revisions
Content added Content deleted
Line 375: | Line 375: | ||
solution$ = "" |
solution$ = "" |
||
# |
# |
||
func try_move pos dir . |
func try_move pos dir . . |
||
res = 0 |
|||
if brd$[pos] = "●" and brd$[pos + dir] = "●" and brd$[pos + 2 * dir] = "·" |
if brd$[pos] = "●" and brd$[pos + dir] = "●" and brd$[pos + 2 * dir] = "·" |
||
brd$[pos] = "·" |
brd$[pos] = "·" |
||
brd$[pos + dir] = "·" |
brd$[pos + dir] = "·" |
||
brd$[pos + 2 * dir] = "●" |
brd$[pos + 2 * dir] = "●" |
||
res = 1 |
|||
. |
. |
||
. |
. |
||
Line 389: | Line 387: | ||
brd$[pos + 2 * dir] = "·" |
brd$[pos + 2 * dir] = "·" |
||
. |
. |
||
func solve . |
func solve . solved . |
||
for pos range len brd$[] |
for pos range len brd$[] |
||
if brd$[pos] = "●" |
if brd$[pos] = "●" |
||
for dir in [ -13 -11 2 13 11 -2 ] |
for dir in [ -13 -11 2 13 11 -2 ] |
||
call try_move pos dir |
call try_move pos dir |
||
if |
if brd$[pos] = "·" |
||
call solve solved |
call solve solved |
||
call undo_move pos dir |
call undo_move pos dir |
||
Line 402: | Line 400: | ||
. |
. |
||
. |
. |
||
npegs += 1 |
|||
. |
. |
||
. |
. |
||
⚫ | |||
res = 0 |
|||
⚫ | |||
solution$ = str_join brd$[] & solution$ |
solution$ = str_join brd$[] & solution$ |
||
solved = 1 |
|||
. |
. |
||
. |
. |
||
call solve |
call solve h |
||
print solution$ |
print solution$ |
||
</lang> |
</lang> |