Jump to content

15 puzzle game: Difference between revisions

1-bad
(1-bad)
Line 4,298:
[https://easylang.online/apps/15-puzzle.html Run it]
 
<syntaxhighlight lang="text">background# 43215 Puzzle
#
background 432
textsize 13
len f[] 16
func draw . .
clear
for i range= 1 to 16
h = f[i]
if h < 16
x = (i - 1) mod 4 * 24 + 3
y = (i - 1) div 4 * 24 + 3
color 210
move x y
rect 22 22
move x + 4 y + 56
if h < 10
move x + 6 y + 56
.
color 885
Line 4,323 ⟶ 4,325:
func init . .
done = 0
for i range= 1 to 16
f[i] = i + 1
.
# shuffle
for i = 1415 downto 12
r = random (i + 1)
swap f[r] f[i]
.
# make it solvable
inv = 0
for i range= 1 to 15
for j range= 1 to i - 1
if f[j] > f[i]
inv += 1
Line 4,341 ⟶ 4,343:
.
if inv mod 2 <> 0
swap f[01] f[12]
.
textsize 12
Line 4,349 ⟶ 4,351:
c = mouse_x div 25
r = mouse_y div 25
i = r * 4 + c + 1
if c > 0 and f[i - 1] = 16
swap f[i] f[i - 1]
Line 4,361 ⟶ 4,363:
call draw
done = 1
for i range= 1 to 15
if f[i] > f[i + 1]
done = 0
2,083

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.