ホームページ目次前の話次の話

今日のプログラム作業量はマイナス2789行

2008年2月27日

今日は、久々に珍しい人間がやってきた。 「スタパブログに載っているよ」と言われたが、 「はて?スタパブログって何?」というので要領の得ない返事しかできなかった。

パソコン初心者は、もっと勉強しなくちゃということで、 Googleで調べてみた。 そして、悪戦苦闘の揚句、といっても1分くらいだっけ、掲載されていたページを見つけた。

2008年2月25日、ナンプレの良問題ページ

確かに、今は世界中が、ナンプレ(SUDOKU)の問題を解くのに狂っているようだ。 私のページにも、ナンプレの問題をそれなりに沢山のせている。 まあ、手作りではなく、コンピュータ支援だったり、100%自動で作ったものだ。 とても手作りする体力、気力はないので、自動生成をちょっと勉強して、作ったものだ。

最近は、問題の自動生成も公開している。 パズル作家より優れた問題を作れるようなサービスを無料提供している。 そのサイトは、「Puzzle Generator Japan」 である。

好きなだけ遊んでくれて結構。 これを使って問題を作って、パズル編集部に投稿するも結構。 ソースも公開されているので、さまざまな拡張も可能である。

こんなことを書こうとしたのではなかった。

今日は、1日、延々とパソコンに向い、プログラムに手を加えていた。 Javaのとても長〜い長〜いクラスファイル(5629行)に立ち向っていた。 この位長くなると、一体何をやっているのか、把握するのが困難だ。 このプログラムに手を入れて、何とかしなくてはならないのだ。

本当は、動きを全部調べて、同等の機能をもったものを作るというのが正しい判断だと思うが、 初心者は、諸般の事情とやらも考慮して、このプログラムに手を入れることになった。

5000行のクラスなど、到底私の脳力では不可能な世界だ。 何とかもっと小さいクラスに砕かなければということで、 もしかしたら、いやもしかしなくても、こちらが砕けてしまうかもと思いながら、 5000行のクラスファイルと闘った。

どこが砕くのに都合が良い場所か、簡単には分らない。 それに、5000行のクラスではあるが、すばらしいことに、現在動いている。 なんとか、この動きを、変更の毎に確認して作業を進める必要がある。 ちょっと失敗したら、ぐちゃくちゃになってしまいそうだ。

表示の部分とその他の部分を分けることはできないかと思って眺めたが、 それほど簡単ではなさそうだ。 それならば、表示の各部分別のクラスとして摘出できないだろうか、 まるで移植手術である。

分りやすそうな個所から、幾つかを取り出して、それから未使用のメソッドを どんどん消した。消しすぎて動かなくなる、今は使っていないが、 次の改良のために準備していたのかもしれないが、全部無視して消してしまった。

当然Eclipseを使っての作業だが、移植直後は、血が噴き出す。 それを確認し、どうすればエラーを消せるかを考えながら消す。 1つづつ消すのでは数が何百にもなり、どうしようもないときには、 変更を諦めるという手もあるのだが、そこは何とか姑息な手段はないかと考え、 誤魔化すためのメソッドを間に噛ませて急場しのぎをした。

その他、何をしたか、今日のことだが、よく憶えていない。 とにかく、あれこれ、いっぱい作業を行なったことだけは確かだ。

そうだ、別のクラスを作ってメソッドの移植を行なったりしたのだが、 そのとき面倒なのは、名前を何か考えないといけない。 もう、頭が爆発しそうだったので、Explosionというクラス名にした。 なお、偶然にも、爆発に関するメソッドであった。 結構危ないソフトであろうか。

さて、今日一日の成果であるが、5629行あった長大なクラスが、 2840行になった。2789行を消したり、摘出したことになる。 大昔、どこかでやっていた、『Cプログラミングの集中治療室』を思い出させる。

しかし、まだ2789行もあり、とうていパソコン初心者の脳力を越えている。 まだまだ何分割かしないといけない。先は長〜〜〜い。

さて、スタパブログからリンクされて、アクセスは一気に増え、 その昔、Yahooのトップページからリンクが貼られてパンクしたことを思い出し、 もしかしてまた不味いことが起きるかもと思って確認したら、ちょっぴりだけ増えていた。 まあ、枕を高くして寝て大丈夫だ。

美しいパズルとは

ナンプレ問題
自動生成


これで、今日から
貴方もパズル作家


稲葉のパズル研究室

Cパズル
プログラミング
〜再帰編〜


ホームページ目次前の話次の話