16 puzzle game: Difference between revisions

m
m (→‎{{header|Wren}}: Minor tidy)
 
(3 intermediate revisions by one other user not shown)
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
 
void local fn buildWndinit
window 1,,(0,0,340,340)
int x
Line 220:
button _restrt,,,@"Redo", (270,270,50,50),,NSBezelStyleTexturedSquare
button _help ,,,@"Help", (270, 20,50,50),,NSBezelStyleTexturedSquare
for rx = 1 to 16
end fn
winBoard += chr$(rx)
 
void local fn init
int r
for r = 1 to 16
winBoard += chr$(r)
next
board = winBoard
fn buildWnd
end fn
 
Line 245 ⟶ 240:
 
void local fn move( tag as int )
int tr, rd, rc = (tag mod 10)
select tag / 10
case _left_up : rc*d = +4
case _up_right : d = -1 : trc *= board[rc]4
mid$(board, rc-3, 4) = mid$(board, rc-2, 3) + mid$(board,rc -3,1)
case _right_down : rc*d = -4 : rc += 12
case else mid$(board, rc-3, 4): d = mid$(board,+1 : rc, 1) + mid$(board,= rc * 4 - 3, 3)
case _up : t = board[rc]
for r = rc to 12 step 4
board[r] = board[r+4]
next
board[r] = t
case _down : t = board[rc]
t = board[rc+12]
for r = rc + 12 to 5 step -4
board[r] = board[r-4]
next
board[r] = t
end select
for r = rc to 12rc + 2 * d step 4d
swap board[r] =, board[r+4d]
next
if board == winBoard then window 1, @"!!! YOU WON !!!" : text,,fn colorRed
fn drawBoard
Line 302 ⟶ 289:
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
Line 2,146 ⟶ 2,133:
{{libheader|Wren-ioutil}}
{{libheader|Wren-str}}
<syntaxhighlight lang="ecmascriptwren">import "random" for Random
import "./iterate" for Stepped
import "./fmt" for Fmt
import "./ioutil" for Input
import "./str" for Str
 
var rand = Random.new()
9,476

edits