Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Command: tr '.@' '12' <input | dc -fdc-p2.dc
- # line x y -> line x y
- [
- _3R
- r dF0* 3R d3R+ # roll=150*y+x x y line
- d Sr 1 r:g # push roll on r; grid(roll) = 1
- 3R
- ] s@
- [d] sd
- 0 Sr # Register stack r sentinel
- 2 ? # line y=2
- [
- #[line: ]np
- 0 r # line x=0 y
- [
- A~ # chr line x y
- 2=@ # record @ (2); line x y
- r1+r # line x++ y
- d0<X
- ] dsXx *+
- 1+ # y++
- ? z1<Y
- ] dsYx s.
- [ ;g 3R+r ] s+
- Lr # roll
- [
- 0r # roll count
- d F1+ l+x
- d F0+ l+x
- d E9+ l+x
- d 1+ l+x
- d 1- l+x
- d E9- l+x
- d F0- l+x
- d F1- l+x
- d3R d3R :n # neigh(roll)=count; count roll
- 4>d # dup roll if (count < 4)
- s.
- Lr d0<L
- ] dsLx +
- [Part 1: ]n zps.
- # count neigh roll -> count neigh roll neigh
- [ rd _4Rr ] sP
- [ d;n 1- d3=P r:n ] s-
- [
- lp 1+ sp # roll ...
- d F1+ l-x
- d F0+ l-x
- d E9+ l-x
- d 1+ l-x
- d 1- l-x
- d E9- l-x
- d F0- l-x
- F1- l-x
- z0<M
- ] dsMx
- [Part 2: ]n lpp
Advertisement
Add Comment
Please, Sign In to add comment