思考があらぬ方向に行って思いついた謎コード
思考があらぬ方向に行って思いついた謎コード
// subroutine maze randomize lb = *LBottom, *lb1, *lb2, *lb3, *lb4 msg = "bottom", "*1", "*2", "*3", "*4" cntPtns = length(lb) goto *LStepMaze // Enter Maze *lb1 mes msg(1) : gosub *LStepMaze : return *lb2 mes msg(2) : gosub *LStepMaze : return *lb3 mes msg(3) : gosub *LStepMaze : return *lb4 mes msg(4) : gosub *LStepMaze : return *LBottom mes msg(0) assert // 停止 return *LStepMaze wait 10 // wait 必須 : 停止しない可能性もなくはない goto lb( (rnd(12) + 1) * 13 \ cntPtns ) // @ 参照: http://goo.gl/xUPHk // @ 「リターン先が静的にわからない」状況を簡単に考えようと思った。今は反省している。 // @ よく考えたら、リターン先は普通わからないものだった。サブルーチンと呼び出し元は一般的に一体一対応じゃないのだ。 // mes で出力された文字列を見ると戻り先がわかる。 // @ これは「サブルーチンを監視する」方法の一例