これ以外にも細かい修正をすることがあります。
skyscraper777さん、切り番報告ありがとうございました。報告があってから一ヶ月も放置していて大変申し訳ありません。
一応、切り番報告のシステムを入れてあるのですが、実質的にほとんど機能していなかったためチェックを怠っておりました。何とかしなければと思っているところです。
今回更新した取る一手将棋が最近のはまりものです。この将棋は取る一手を相手に強制できるので、詰みそうもないところから少ない駒数で詰んでしまうのが魅力です。
現在私は、取る一手将棋は先手必勝ではないかと予想しています。そのため有力な手段が今回書いた▲9六歩▲4八銀▲9五歩のセットです。これは非常に有力で、今のところこれに対抗できる後手の作戦は一つしか思いついていません。とはいえ、その一つがつぶせなければ先手必勝とはいえないわけで、やはり実戦が大切だなと思っているところです。
普通の将棋でもこんなふうに深く読めればいいんですけどね(^^;。
Kifu for Java ではそんなふうに直接コピー&ペーストすればいいのですが、勝田将棋盤ではそういうわけにはいきません。Kifu for Java と違って、
<param name="1" value="7776">
というような形式で書かれているからです。ちなみにこれは1手目に7七にある駒を7六に動かすという意味です。
はじめは気合いを入れて頭の中で並べたりもしたのですが、私の頭では序盤をすぎる頃にはもう盤面がわからなくなるので、あきらめてよそのページに移ったりしていました。そのころちょうど別の思惑もあってJavaScriptを勉強することになり、文字列変換を扱う題材としてちょうどいいのはと思ったのが、このコンバータを制作したきっかけだったのです。
このように全くの個人的な動機で制作したスクリプトでしたが、一応完成してみると欲がでるもので、機能が欠けている面が気になりました。特に不便に思われたのが、ES将棋盤に対応していないことです。勝田将棋盤とES将棋盤はデータ構造が似ているので、理論的には両方に対応するのは難しくないはずです。しかし現実には、微妙な仕様の違いが壁となって、当初は思うように対応できませんでした。
実は現在のコンバータはES将棋盤に部分的に対応しています。ただあまりにも制限事項が多いので、裏機能としてあります。「超適当」の「超」がとれる頃にはある程度まともに対応できていることでしょう。いつになるかはわかりませんが(^^;。
どういうわけだか知りませんが、私のパソコンはJavaの立ち上がりが非常に遅いです。しかも立ち上がったら立ち上がったで、いろいろ操作していると、「不正な処理が発生したのでプログラムを強制終了します。」というメッセージがいきなり出たり、ブラウザがフリーズしてしまったりします。そこで将棋倶楽部24に行くときを除いて、ブラウザでJavaの設定をオフにしています。こうしていると、うっかりJavaのあるページを開いてしまってもパソコンが重くなることなく、精神的に快適なネットサーフィンをできます。
しかし、そのために困ることもあります。8月29日にもちょこっと書きましたが、ほとんどのサイトではJavaをオフにしている人への配慮がないため、Javaを使った動く将棋盤があってもどんな棋譜なのかわからないのです。動く将棋盤は何種類かありますが、そのうちKifu for Javaは比較的容易に対処できます。右クリック→「ソースの表示」としてソースを見て、
<PARAM NAME=KIFU VALUE="sample.kif">
のような行を見つけ、URLをタイプインしてkifファイルを直接開き、コピー&ペーストでKifu for Windowsに読み込ませれば、あとは棋譜をさくさくと閲覧することができます。読むと面倒な手順に見えますが、Javaでも棋譜を読み込んだりするのに時間がかかることを思うと、それほどの手間ではありません。矢印ボタンを連打してもちゃんと反応してくれますし、いくつ棋譜を見てもフリーズしたりしませんし、気になる変化があれば自分で並べることもできますし、精神的にはこちらのやり方の方が私にとってはずっと快適です。(つづく)
勝田将棋盤を使うとき、Javaに対応していない環境の人にどう配慮するかは難しい問題です。8月2日に書いたようにJavaが使えない人に対して「Javaが利用できる環境ではここに勝田将棋盤が表示されます。」というメッセージを表示するのは最低限必要だと思いますが、そう表示されたからといって見えないものが見えるようになるわけではない環境の人もいるのです。そこで、もう少し踏み込んだ対処を考えてみます。
ブラウザ上で勝田将棋盤が見られないならば、それに代わるものを提供すれば一応の解決になります。代わるものというと、確実なのはやはりテキストの棋譜でしょう。Kifu for Windows/Macを使える人ならば、柿木形式の棋譜があればコピー&ペーストで並べてみることができます。そこで、次のように勝田将棋盤と柿木形式の棋譜を一緒に置いておくという解決策が考えられます。
<applet code="ksbp2.class" width="450" height="340">
<param name="1" value="7776">
<param name="2" value="3334">
<param name="3" value="7968">
<param name="4" value="2288*">
<param name="end" value="まで4手で後手の勝ち">
Javaが利用できる環境では<em>ここに勝田将棋盤が表示されます</em>。
<pre># ---- Kifu for Windows V5.06 棋譜ファイル ----
手合割:平手
手数----指手---------消費時間--
1 7六歩(77) ( 0:03/00:00:03)
2 3四歩(33) ( 0:00/00:00:00)
3 6八銀(79) ( 0:01/00:00:04)
4 8八角成(22) ( 0:02/00:00:02)
5 投了 ( 0:01/00:00:05)
まで4手で後手の勝ち</pre>
</applet>
このようにしておけば、Javaの使える通常の閲覧者は普通と変わらずに見られるのに対し、Javaの使えない人は「Javaが利用できる環境では…」というメッセージとともに柿木形式の棋譜が見え、気が向けばコピー&ペーストで利用できるようになります。
ただ、このような配慮があっても、Javaの起動途中のエラーで勝田将棋盤が動かない場合や、InternetExplorerでセキュリティの設定を中途半端にしている場合などには、棋譜は出力されません。棋譜を勝田将棋盤の外に書いておいた方がより確実に棋譜を伝えることができます。ただしその場合には、通常のJavaの利用できる閲覧者にとって勝田将棋盤と柿木形式の棋譜の両方が見えることになります。
ふと冷静になってみると、こんな配慮をしているページは見たことがないというのが現実だったりするわけですが。
"
、&
、<
、>
、
、&#十進数;
、&#x十六進数;
が使えます。OSやブラウザの種類によって挙動が変わるのではというのが最も不安です。おかしい動作をするようでしたらご報告いただけると大変ありがたいです。
これで機能面ではほぼ当初目指していたことが完成した気分です。次の課題は、読み込みの正確性の向上、軽量化、高速化です。
読み込みの正確性の向上は最大の課題です。柿木形式→勝田将棋盤コンバータを使って作られたページなら、ほぼ正確にkif化できますが、それとhtml的に等価な記述でも読みとれなくなってしまう書き方が現在の方式では多数存在します。そのためには、現在の超適当な読みとりの正確性を高めなくてはなりません。コードの量としてはそれほど変わらないのではないかと思いますが、書くのに時間がかかりそうです。
軽量化・高速化も大きな課題です。現在のスクリプトは機能拡張性を考慮してだいぶ無駄なことをしているため、その部分をそぎ落とせばかなりの減量が可能だと思います。機能を限定した軽量版コンバータを作るのもいいかもしれませんね。
8月1日に202号(http://www.hoops.ne.jp/~k-suwa/)が閉鎖になりました。管理人のKeyさんが長文で内容のある日記を毎日書かれていて、その人柄ともあいまってカウンタのよく回る人気ページでした。個人運営の将棋サイトで10万ヒットを超えるというのは、普通では考えられないですよね。
閉鎖の理由は「もはや更新する内容が思いつかない現状では、サイトを維持する理由が管理人の中で見つからないからです。
」とのことでした。今までの更新の熱意を考えると、何もしないという状況は自分にとって許し難いのでしょう。その気持ちはよくわかります。しかし、それを踏まえた上で言いたいことがあります。
たくさんの人が訪れて人気があったのは掲示板がにぎわっていたためということもありますが、やはり最大の理由はコンテンツに魅力があったからでしょう。だとすれば、特に更新していなくとも、新たに訪れた人にとってお気に入りに入れたくなるようなページになるのではないでしょうか。特に速報性が重視されるような内容ではないのですから。
このようにこだわるのは、202号がネット上の将棋界にとって特別な位置を占めていたからです。というのも、202号のリンク集(http://homepage2.nifty.com/202key/shogilink/)は将棋界最大(ではないかもしれませんがそれに近い)だったからです。そのように皆が利用するコンテンツになるとこれはもう一個人のものというよりも皆の共有物だなあ、と思ってしまうのは法律的には正しくないわけですが、そんな感覚が私の中にあるのは否定できません。放置されていてもいいから残しておいてほしかったというのが正直な気持ちです。
サイト運営者の皆様、やる気がなくなることもあるでしょうが、そんなときでも閉鎖ではなくて休止くらいにとどめておいて下さいね。そのページを読みたいと思っている人は必ずいます。
だから、私のサイトが更新がほとんどなくても良いと主張しているわけではありませんが(笑)。
6月30日に書いたように、勝田将棋盤を設置する際にはJavaをオフにしている人が迷わないような配慮が求められます。将棋盤が表示されない場合でも、本来はここに将棋盤を表示したいのだということをわかってもらうために、Javaがオフのときだけ将棋盤が表示されない旨を記した文章を表示させるというのが最も簡単な対策でしょう。例えば、将棋倶楽部24の道場ページをJavaをオフにして開くと、「ご使用のブラウザはJavaに対応していません。そのため将棋道場が表示されません。」
というメッセージが表示されます。
これを実現するのはとても簡単です。Javaをオフ時に表示させたい文章を、</applet>の直前に挿入するだけです。タグを使うことも可能です。例えば次のようにすると、Javaがオンのときには普通に勝田将棋盤が表示され、オフのときには「Javaが利用できる環境ではここに勝田将棋盤が表示されます。」のように表示されることになります。
<applet code="ksbp2.class" width="450" height="340">
<param name="1" value="7776">
<param name="2" value="3334">
<param name="3" value="7968">
<param name="4" value="2288*">
<param name="end" value="まで4手で後手の勝ち">
Javaが利用できる環境では<em>ここに勝田将棋盤が表示されます</em>。
</applet>
こうしておけば、Javaをオフにしている人でも将棋盤の存在を見落とすことがなくなり、興味があればJavaをオンにして棋譜を眺めることができるようになります。
このサイトで現在行っている対応はこれだけです。しかし、これでは本当にJavaを利用できない環境の人にとって、棋譜を見ることができない状況にかわりはありません。もう少し踏み込んだ対応が必要なのではないか、ということをまた今度書こうと思います。
更新ペースがだいぶ落ちています。他のことにエネルギーを使っていたからというのが一番大きな理由で、そのことに関しては言い訳にもなりませんが、もう一つ理由といえそうなものがあります。
持将棋考あたりからだいぶ顕著になってきた傾向として、一つのコンテンツを作るのに時間がかかるという問題がでてきました。いろいろなことを調べて、問題を頭の中でまとめて、疑問があればまた調べて、それを文章にまとめていくという作業は、時間がかかります。うまく適当なところで切り上げてまとめられるといいのですが、話題がどんどん大きくなっていくのを止められなくなってしまうことがままあって、そうなると時間がたってモチベーションが下がりそのままお蔵入りという経過をたどる羽目になったりします。
今は棋譜と著作権に関してメモ的なものを書いているのですが、できるだけ早く公開できるようにうまく区切りをつけたいと思っています。
ウェブページに将棋盤面の画像を設置するだけでも悩みは尽きないわけですが、動く将棋盤を設置するということになると問題は一層複雑になります。Rocky-and-Hopperさんがまとめて下さったように、何人もの方がフリーの動く将棋盤プログラムを作って下さっているのですが、「もずいろ」では勝田将棋盤をメインに使用しています。そこで、ここでは勝田将棋盤に絞って話を進めたいと思います。(Kifu for JavaやES将棋盤でも話はほとんど変わりません。)
勝田将棋盤はJavaAppletです。JavaAppletは過去セキュリティの穴になってきたことが何度もあるため、通常ではオフにしている方も多いのではないかと思います。例えば、InternetExplorerであれば、将棋倶楽部24のようなよく訪れるサイトだけを「信頼済みサイト」に登録して、それ以外の「制限付きサイト」ではJavaの起動を禁止するといった設定はメジャーです。そのため、勝田将棋盤を設置する際にはJavaをオフにしている人が迷わないような配慮が求められます。
特に何も配慮がないときは、Javaをオフにしている人が勝田将棋盤のページを見ようとすると、将棋盤があるはずの部分がそっくり抜け落ちて表示されます。(そのとき、InternetExplorerでは「このページは意図したように表示されない可能性があります。」とか何とか書いてある小窓が出てきます。)そのため、訪れた人はどこに何があるのかわからない状態になってしまいます。このような困った事態を避ける手だてはいくつか考えられますが、それは今度書くことにします。
私も普段はJavaをオフにしている一人なのですが、その理由はセキュリティ以外にもあります。おそらくウイルス対策ソフトとの関連だと思うのですが、私のパソコンではJavaが立ち上がるのが異様に遅いのです。また立ち上がったら立ち上がったで、フリーズしたりブラウザが強制終了してしまったりといったことがしばしばです。そうなると、また時間をかけて立ち上げ直さなければならないので、いらいらも倍増するという仕組みです。やはりソフトはすべからく軽快に動いてほしいものですね。
ホームページを移転するという作業は面倒なものです。単にデータを移すだけならそれほどの手間ではありませんが、それまでに訪れて下さっていた方々を迷わせないためにも、各方面に移転のお知らせを迅速にして回らなければならないからです。今回移転されたNezugentaのfunfun roomは、前に利用していたサーバが突然つながらなくなったために急な移転を余儀なくされたのです。
このような事態を避けるには、プロバイダの提供するスペースなどの有料サービスがいいのですが、無料サービスであれば基盤のしっかりしている大手サービスを利用するというのが無難な選択肢です。例えば、Yahoo!ジオシティーズとか、私も利用しているCOOL ONLINEなどが代表格といえるでしょう。しかし、その場合にはcgiが自由に使えないなどページ作成の上でいくらかの制約を受けることになります。
ある程度ホームページの運営に慣れてくると、誰しももう少し高度なことをやってみたいと考えるようになるものです。そこで目に止まるのがYahoo!ジオシティーズなどよりもっと大きな自由度を認めているサービスです。例えば、老舗のiswebをはじめ、XREA.COMやSKIPUP NETWORKなど最近どんどん増加する傾向にあります。このようなサービスでは、自前のcgi設置を認めるなどユーザに高い自由度を与えているのですが、その代償がいくつかあります。iswebは、他の無料スペースに比べて広告が多いですし、XREA.COMは限られた時期にしか会員を募集していせん。また、SKIPUP NETWORKはそのようなことがないかわりに自由度はそれほど高くありません。
どうしてそのような代償が必要なのでしょうか。ユーザに自由度を与えるということは、一部のユーザがとてつもなく重いcgiを走らせたり、エラーが出て暴走するようなスクリプトをテストもせずにサーバにアップロードするかもしれないということです。したがって、そのようなサーバは落ちる危険性が高いということになります。もし、cgiを認めないサーバと同じように運営したとすると、サーバは頻繁に重くなってとても不便なサービスとなってしまうでしょう。実際そのような例はよくあります。
詰将棋パラダイスのホームページで利用しているさんのページコムがずっとダウンしています。(サービスのトップページは生きていますが、ユーザページにはつながりません。)もう2週間以上になるでしょうか。http://www.3nopage.com/~tryed/にアクセスすると何か見えるのでよくわからないのですが、ずっと利用不可能な状態のようです。こうなってもすぐに移転するのが難しいというのがホームページ運営の悩みと言えましょう。