すべってアイスバーン

http://indi.s58.xrea.com/icebarn/sc/m0.html
、、、ということで、いままで作っていたスクリプト
ほとんどマスに何かを配置する系だったので、リンク系のスクリプトも作ってみようとしたわけです。
で、今それなりにニコリで載っていておそらくパソコン上で解けないものといったら
アイスバーンくらいしかなかったのでそれを作ろうと思ったのですが、、
 
とりあえず、JavaAppletを使おうとしまして。
リンク系だとドラッグしてがーって線を引けないとだるそうですが、
JavaScriptでドラッグやろうとしたらめんどくさくなりそうな気がしましたので。
 
ただ、iAppliとかでJavaを触ったことはあったのですが
JavaAppletはほとんどまじめに作ったことがなかったのでそれなりに大変でした。
まず、描画系を作らなきゃいけなかったので、その分だけでスクリプトの行数の3割くらいを占めていたりします。
残りのうち3割くらいがクリックした時の状態変化、あとの2割が正答判定で1.5割が初期化の処理で、、という感じで。
 
最初につくった線をドラッグで引く仕様は、なんか変なところに線が引かれまくって、
ちょうどnikoli.comのスリザーリンクのスリリンお試し問題みたくなっちゃってます。
枝分かれしたところに線が書かれまくってしまうみたいな。
×はその仕様でもいい感じだったので×はそれで、線はマスからマスに移動した時に描画するように変更。
テストで黒マスとかをドラッグで配置するのを作ったのですが、それの何倍もめんどくさい感じでした。。
まぁ、1回作っちゃえばたぶん使い回しが効くのですけどね。何に使いまわすかは分からないですが。。
 
また、正答判定についても、おそらくループ&交差無しだとだいぶ楽だったと思うのですが、
アイスバーンの仕様がやたらとめんどくさかったです。
矢印の向きチェックについても、1回処理が抜けていたのをアップしてから発見したりとか。。
 
ちなみに、いちおう例によってエディタもつくったのですが、それも難しかったですね、、
同時に矢印とアイスバーンの編集するとややこしそうですし。
で、アイスバーン&IN/OUTと矢印の編集で別々にした仕様にしたわけです。