Now the only problem is when a number lands precisely on the boundary.
Main←{ 𝕊 orig:
•Show orig
cur←orig
- JumpFwd←{(1⊸⌽)⌾(((1+|𝕨)⊸↑)∘((⊑𝕩⊐𝕨)⊸⌽)) 𝕩}
- Jump←{𝕨≥0 ? 𝕨 JumpFwd 𝕩; ⌽ 𝕨 JumpFwd ⌽𝕩}
+ #JumpFwd←{(1⊸⌽)⌾(((1+|𝕨)⊸↑)∘((⊑𝕩⊐𝕨)⊸⌽)) 𝕩}
+ #Jump←{𝕨≥0 ? 𝕨 JumpFwd 𝕩; ⌽ 𝕨 JumpFwd ⌽𝕩}
+ Jump←{
+ from ← ⊑𝕩⊐𝕨
+ to ← (¯1+≠𝕩)|𝕨+from
+ len ← to-from
+ •Show from‿to‿len
+ •Show ((1+|len)⊸↑∘((to⌊from)⊸↓)) 𝕩
+ ((×len)⊸⌽) ⌾ ((1+|len)⊸↑∘((to⌊from)⊸↓)) 𝕩
+ }
{
•Show cur ↩ 𝕩 Jump cur
}¨orig