优化目标: 16行393步
想比16行385步方案,通过优化执行顺序,省掉了计数器初始化时减1的操作
-- HUMAN RESOURCE MACHINE PROGRAM -- JUMP b a: COPYFROM 19 OUTBOX b: INBOX COPYTO 15 COPYFROM 14 COPYTO 19 COPYTO 18 JUMP d sum: BUMPUP 19 counter: BUMPUP 18 d: COPYFROM [18] JUMPZ a SUB 15 JUMPZ sum JUMP counter
用于INBOX中ABCX数量都是固定的情况(游戏中A=4, B=5, C=2, X=3),
优化掉一个 BUMPUP 18,由于无论找没找到,计数器18都会+1,因此在 COPYFROM [18] 之前就将计数器加一,这样就要求计数器初始化时为 -1。另外 先INBOX在初始化计数器,能省4步
-- HUMAN RESOURCE MACHINE PROGRAM -- JUMP b a: COPYFROM 19 OUTBOX b: INBOX COPYTO 15 COPYFROM 14 COPYTO 19 BUMPDN 19 COPYTO 18 e: BUMPUP 19 d: BUMPUP 18 COPYFROM [18] JUMPZ a SUB 15 JUMPZ e JUMP d
-- HUMAN RESOURCE MACHINE PROGRAM -- JUMP b a: COPYFROM 19 OUTBOX b: COPYFROM 14 COPYTO 19 COPYTO 18 INBOX COPYTO 15 c: d: COPYFROM [18] JUMPZ a SUB 15 JUMPZ e BUMPUP 18 JUMP c e: BUMPUP 19 BUMPUP 18 JUMP d