15 puzzle game: Difference between revisions
Content deleted Content added
Line 1,735:
<lang easyprog.online>len f[] 16
subr initvars
time0# = time▼
subr draw▼
.
func draw . .
color 353
move 0 0
Line 1,758 ⟶ 1,761:
.
.
for i range 16
f[i] = i + 1
.
# shuffle
for i = 14 downto 1
r = random (i + 1)
swap f[r] f[i]
.
# make it solvable
inv = 0
for i range 15
Line 1,777 ⟶ 1,783:
swap f[0] f[1]
.
▲ time0# = time
▲ fin = 0
textsize 12
call draw
.
func move_tile . .
.▼
.
on mouse_down
if
call init
else
call move_tile
▲ c = round (mouse_x / 25 - 0.5)
▲ r = round (mouse_y / 25 - 0.5)
▲ i = r * 4 + c
▲ if c > 0 and f[i - 1] = 16
▲ swap f[i] f[i - 1]
▲ elif r > 0 and f[i - 4] = 16
▲ swap f[i] f[i - 4]
▲ elif r < 3 and f[i + 4] = 16
▲ swap f[i] f[i + 4]
▲ elif c < 3 and f[i + 1] = 16
▲ swap f[i] f[i + 1]
▲ .
▲ call draw
▲ fin = 1
▲ for i range 15
▲ if f[i] > f[i + 1]
▲ fin = 0
▲ .
▲ .
▲ if fin = 1
▲ color 242
▲ move 0 0
▲ rect 100 100
▲ textsize 10
▲ color 797
▲ move 5 10
▲ text "Well done!"
▲ move 5 25
▲ text "Time: " & round (time - time0#)
▲ .
.
.
|