if (superpacman = 0) then
Pic.Draw (picBlinky1, xBlinky - 10, yBlinky - 10, picMerge)
if (dirBlinky1 = 1) then
Pic.Draw (picBlinky3, xBlinky - 5, yBlinky + 1, picMerge)
elsif (dirBlinky1 = 2) then
Pic.Draw (picBlinky4, xBlinky - 5, yBlinky + 1, picMerge)
elsif (dirBlinky1 = 3) then
Pic.Draw (picBlinky5, xBlinky - 5, yBlinky + 1, picMerge)
elsif (dirBlinky1 = 4) then
Pic.Draw (picBlinky6, xBlinky - 5, yBlinky + 1, picMerge)
end if
else
Pic.Draw (picBlinky2, xBlinky - 10, yBlinky - 10, picMerge)
end if
if (dirBlinky1 = 1) and (findTile (xBlinky, yBlinky + 10) > 2) then
dirBlinky1 := Rand.Int (1, 4)
elsif (dirBlinky1 = 2) and (findTile (xBlinky + 10, yBlinky) > 2) then
dirBlinky1 := Rand.Int (1, 4)
elsif (dirBlinky1 = 3) and (findTile (xBlinky, yBlinky - 10) > 2) then
dirBlinky1 := Rand.Int (1, 4)
elsif (dirBlinky1 = 4) and (findTile (xBlinky - 10, yBlinky) > 2) then
dirBlinky1 := Rand.Int (1, 4)
elsif (dirBlinky1 = 5) then
dirBlinky1 := Rand.Int (1, 4)
end if
dirBlinky2 := false
if (disBlinky = 0) and (dirBlinky2 = false) then
if (dirBlinky1 = 1) and (findTile (xBlinky + 20, yBlinky) <= 2) or (findTile (xBlinky + 20, yBlinky) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 2
else
dirBlinky1 := 1
end if
dirBlinky2 := true
disBlinky := 0
elsif (dirBlinky1 = 1) and (findTile (xBlinky - 20, yBlinky) <= 2) or (findTile (xBlinky - 20, yBlinky) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 4
else
dirBlinky1 := 1
end if
dirBlinky2 := true
disBlinky := 0
elsif (dirBlinky1 = 2) and (findTile (xBlinky, yBlinky + 20) <= 2) or (findTile (xBlinky, yBlinky + 20) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 1
else
dirBlinky1 := 2
end if
dirBlinky2 := true
disBlinky := 0
elsif (dirBlinky1 = 2) and (findTile (xBlinky, yBlinky - 20) <= 2) or (findTile (xBlinky, yBlinky - 20) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 3
else
dirBlinky1 := 2
end if
dirBlinky2 := true
disBlinky := 0
elsif (dirBlinky1 = 3) and (findTile (xBlinky + 20, yBlinky) <= 2) or (findTile (xBlinky + 20, yBlinky) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 2
else
dirBlinky1 := 3
end if
dirBlinky2 := true
disBlinky := 0
elsif (dirBlinky1 = 3) and (findTile (xBlinky - 20, yBlinky) <= 2) or (findTile (xBlinky - 20, yBlinky) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 4
else
dirBlinky1 := 3
end if
dirBlinky2 := true
disBlinky := 0
elsif (dirBlinky1 = 4) and (findTile (xBlinky, yBlinky + 20) <= 2) or (findTile (xBlinky, yBlinky + 20) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 1
else
dirBlinky1 := 4
end if
dirBlinky2 := true
disBlinky := 0
elsif (dirBlinky1 = 4) and (findTile (xBlinky, yBlinky - 20) <= 2) or (findTile (xBlinky, yBlinky - 20) = 12) then
dirBlinky1 := Rand.Int (1, 2)
if (dirBlinky1 = 2) then
dirBlinky1 := 3
else
dirBlinky1 := 4
end if
dirBlinky2 := true
disBlinky := 0
else
if (dirBlinky1 = 1) and (findTile (xBlinky, yBlinky + 10) > 2) then
dirBlinky1 := 5
elsif (dirBlinky1 = 2) and (findTile (xBlinky + 10, yBlinky) > 2) then
dirBlinky1 := 5
elsif (dirBlinky1 = 3) and (findTile (xBlinky, yBlinky - 10) > 2) then
dirBlinky1 := 5
elsif (dirBlinky1 = 4) and (findTile (xBlinky - 10, yBlinky) > 2) then
dirBlinky1 := 5
end if
end if
end if
if (yBlinky = 349) and (dirBlinky1 = 1) then
yBlinky := 70
elsif (xBlinky = 349) and (dirBlinky1 = 2) then
xBlinky := 30
elsif (yBlinky = 70) and (dirBlinky1 = 3) then
yBlinky := 349
elsif (xBlinky = 30) and (dirBlinky1 = 4) then
xBlinky := 349
end if
if (dirBlinky1 = 5) then
disBlinky := 0
dirBlinky2 := true
else
disBlinky := disBlinky + 1
end if
if (disBlinky >= 20) then
disBlinky := 0
end if
|