たまにはマクロネタ。
もしかしたらリリース直後にバグ報告が行われているのかもしれませんが。
でも、仮にされていたとしても、TTY時代のニフティの会議室で行われて
いるだけでしょうから、ここに書いてもあながち無駄でもないかと。
NaruTo さんの vztower.def ですが、カードがないところの位置を移動元と
して入力すると「動かすカードがありません」とエラーメッセージを出して
くれます。ところが、ここの判別にバグがありました。
具体的には、
#^#F &o(g)
というコードでカードの有無を判定しています。ところが、場の一番上の行、
「A」の位置にカードがなくても、きちんとカードがないという判定をしてく
れないことがあります。というか、ほとんどの場合はきちんと判定できない
はずです。
ただ、移動元として「A」を入力しても、移動先が場の別の行であって、そち
らの方に他のカードがある場合は、正しいシーケンスにならないという事を
きちんと判別してくれるので、実害はありません。ところが、移動先がトッ
プの場合、シーケンスには絶対にならないため、無条件で移動できてしまい
ます。すると、たとえばカードのない「A」を「2」に動かした場合、なにが
起こるかというと、「2」の位置に「A」が動いてしまうのです。そしてそれ
以降、「2」の位置には「A」があるということで、「2」を使えなくなってし
まうのです。そして、「2」の位置にある「A」を動かす事はできません。
一応、「A」は継続して使う事ができますが、「A」は場であるため、なにも
ない場におけるものはキングしかないため、使い勝手はよくありません。
一方、トップはどんなカードでもおけるのですが、ここがひとつ使えなくな
ってしまうと、残りの状態にもよりますが、大抵はクリアがおぼつかなくな
ります。
解決策は簡単で、画面上端にカーソルを移動するところで、同時に行の左端
にも移動するようにしてやるだけです。
私も過去3年以上、ほとんど毎日、1日に数回、いや数十回とこのマクロを
起動していたのですが、今までこのバグを発現させるような操作をした事が
なくて気が付きませんでした。