16 puzzle game: Difference between revisions

Line 192:
<syntaxhighlight lang="future basic">
begin enum
_new = 1
_restrt
_help
_end
_down = 1
_right
_up
_left
_new = 1100
_restrt
_help
_end
end enum
str63 board, startPos, winBoard
Line 245:
 
void local fn move( tag as int )
int t, r, rc = (tag mod 10)
select tag / 10
case _left : rc*=4
Line 251:
case _right : rc*=4
mid$(board, rc-3, 4) = mid$(board, rc, 1) + mid$(board, rc - 3, 3)
case _up : t = board[rc]
for r = rc to 12 step 4
swap board[r] =, board[r+4]
next
case board[r] = t_down
case _down : t = board[rc]
t = board[rc+12]
for r = rc + 12 to 5 step -4
swap board[r] =, board[r-4]
next
board[r] = t
end select
if board == winBoard then window 1, @"!!! YOU WON !!!" : text,,fn colorRed
Line 302 ⟶ 299:
void local fn doDialog(ev as long, tag as long)
select ev
case _btnClick : if tag >< _end_new then fn move( tag ) else fn ask( tag )
case _windowWillClose : end
end select
68

edits