Weather Typing ネットランキングを仮公開。やっぱりランキングがあると面白い,ということでネットランキングを作ってみた。

詳しくはWeather Typingのページを見てもらうとして,ここでは技術的なことを。

登録方法としては,CGI を使ってみた。専用のアップローダーが Hi-HO の Web サーバにつないでデータを送信する,といった感じ。

一応利点としては,

  • 自動的にアップしてくれるからユーザー,管理者共に楽。
  • CGI ならば Hi-HO で可能。

で,欠点は,

  • 自動的にアップしてしまうから,陰でユーザー情報を送信しているかも知れないという不安がどうしてもある(だろう)。
  • ユーザー数が多くなると,Hi-HO に負担を掛ける。

というのがある。一応送信している情報は,タイピング情報と IP アドレスだけなので安心して欲しい,というしかない。ネットワークに流れる情報を全て監視するソフトとかあれば確認できるかも。

Weather Typing 開発版。

  • ウィンドウのサイズが微妙にずれていて,拡大・縮小するようになっていた。これを直したので,ウィンドウモードでは多少早くなった & 見やすくなったと思う。
  • FPS の表示を 10 回計測毎の平均値に変更。
  • ハイスコアデータを大幅に変更。今までのハイスコアは消えるが,今後ネットランキングをするようになったら,このデータで参加できるようにしようと思う。(但しまだ開発中なので,また変更するかも知れません。)

Denasu System ページ全体をリニューアル。とりあえず今の私にはこれが限界。一応前の状態より幾分良くなったはず。

GANGAS – Type Well Fanさんから Weather Typing を紹介してもらいました。ありがとうございます(ってこんなところに書いても誰も気付かないけど)。ここのサイトは,私が今ほぼ毎日やっている「タイプウェル」というタイピングソフトのページですが,参加者のレベルが高すぎてなかなかついていけません。頑張らねば。


参考までに私が普段プレーしているタイピングソフトについて。

The Typing of The Dead PC 版(ゾンビ打)
少し前に学校のマシンで毎日やっていたソフト。学校ではやりにくい状態になったのと自宅のメビウスでは起動しないために,現在は休止中。言うまでもないのですが,Weather Typing はこのソフトの影響をかなり受けています。
タイプウェル
英語のタイピング練習のために始めたソフト。現在はこればっかりやってます。
美佳のタイプトレーナ
これも英語のタイピング練習のために始めたソフト。英語の文章を長々と打ち込めるのがよいです。
Weather Typing
一応。近頃は周りの人が対戦しようと言ってこないので 1 人で練習中。

あとは市場調査と銘打って適当にネットでタイピングゲームを探してきてはプレイしてますが,なかなかずっとやり続けてるソフトはないですね。

Pha-jtd さんとの話し合いの結果,ウェブサイトをもう少し派手に改装することに決定。というか今が地味すぎなのだが。

とここに書いておけばあきらめずにやるかな,ってことで。

サポート掲示板を公開。Denasu System 開発ソフトに関して語り合う場所,ということだが,果たして一般の人からの書き込みはあるのだろうか。実は掲示板に関しては,昔に作って 2 年ぐらいそれなりにやっていたが,最後まで身内しか発言しなかったので,閉鎖したという経歴があるのだ。

まあ盛り上がるまでは気長に Pha-jtd 氏と Weather Typing のことを話していこうと思う。

もちろんこの日記への意見や感想等も歓迎なので,気が向いたら書き込んでやって下さい。

Weather Typing1.2 をアップ。もう少し機能追加する予定だったが,諸事情により忙しくなっているので今までの分をアップし,しばらく凍結。多分 7 月になったらまた作り始める,と思う。


K.F 氏に,IE で Alt+(右,左)を押すと前のページ,次のページへ行けるというのを教えてもらう。これは便利。ちなみに BackSpace は何故か知っていた。

ファイルダイアログ。最初のディレクトリがカレントディレクトリの時とそうでないときがある。これは,*.bmp 等のフィルタをかけてある場合,実際に *.bmp のファイルがある場合はカレントディレクトリ,ない場合はそれ以外になるらしい。

CFileDialog::m_ofn::lpstrInitialDir にディレクトリを指定すればそのディレクトリで表示される。

Weather Typing 1.11 をアップ。「ん」と「っ」が連続している問題の修正のみ。今後は新機能をどんどん追加していくので,次の正式バージョンアップはかなり先になると思う。

Pha-jtd 氏の家にて Weather Typing をコンパイルしてみる。しかし,ワークスペースが開けず,VC が落ちてしまう。で,「サービスパックは?」と聞くと,なんだか分からない仕草をしていた。つまりサービスパックを入れていなかったわけだが,本人曰く,「サービスパックなんていうのがあることを教えてくれていたら入れてたのに。そんな当たり前のこと誰も教えてくれなかったからぁ。」ということで,Pha-jtd 氏の手元にずっとあった C マガ付属のサービスパックを入れ,無事にワークスペースが開けた。

「絶対他に知らない人いるよ」という Pha-jtd 氏の言葉を受け,ここに書いてみた。


Weather Typing。「ん」と「っ」が連続しているとき,ローマ字がおかしくなるバグを発見。修正し,開発版においておく。まあ付属のワードにはそんなのは出てこないので発見する人はあまりいないと思う。

#ちなみに TOD ワードを打ち込んだものを試していて発見した。


Weather Typing。一回 Pha-jtd 氏に Win95 での動作を確認してもらって「Win95 対応」としたのだが,Pha-jtd 氏の家にて対戦を試してみると動作しない。Pha-jtd 氏のマシンのせいなのかなんかのか分からないが,とりあえずもう 1 度非対応ということにしておく。

Weather Typing。背景・ワードを Pha-jtd 氏にちょっと変更してもらい,これまでの変更・修正を含めたVer1.1を公開。

Weather Typing。ワードを打ち終わったとき,両方同時に打ち終わると,両方とも点数が入る,仕様だったのだが,そうなっていなかった。のでそうなるように修正。まあこのせいで最後に出る完了ワード数が 10/20 vs 13/20 のように全員足すと合計を越えてしまうのだが,仕方がない。一応これで全プレイヤーが同条件になった。

というところでそろそろ新たに変更した点も含めて安定化してきたので,ver1.1 に正式バージョンアップしようと思う。後はタイピングスピードが各プレイヤーで同じ値になるようにしたら,公開する予定。

ほとんど毎日デバッグにつきあってくれている Pja-jtd 氏に感謝。


フリーソフトのページによくあるご質問を公開。とりあえず DLL をダウンロードできるようにしておいた。

Weather Typing の変更点をまとめて。

タイピングスピード測定だが,単位は(ローマ字)/(分)。つまり 1 分間にどれだけアルファベットを打ったか,としている。ちなみに私の場合正確性を 97~98% くらいに心がけたときで 430 くらいだった。

この速度,ローカルマシン上で計算しているので,相手に表示される数値と自分に表示される数値は異なる。さらに,遅延が大きいと一瞬でたくさんの文字が送られるため,恐るべき高速度になったり,逆に全然文字が送られてこなくて恐るべき低速度になったりする。将来的にはローカルで測定したスピードを他の相手に送るようにしようかと思っているが,今のところ電話回線を用いた対戦では信用できない。


現在の正式版では,

  • 相手が文字列を打ち終わる
  • 自分は文字列の途中で次の文字列へ問題が進んでしまった

場合,前の文字列での入力が次の文字列に持ち越されてしまい,その文字が偶然次の文字列の最初の文字と重なってしまうと,ミス入力になってしまう。

これは,LAN 対戦のような遅延の少ない環境だと,次の文字列を打ってしまったことが自分で分かるのでまだいい。しかし,遅延が大きい場合は,画面上は先行入力で打ち終わっているのに,実際には打ち終わってなく,入力が次の問題に持ち越されるので何故ミスになったか分からなくなる,ということになってしまう。(分かりにくくてすみません)

そのため,現在は

  • 次の問題へ行ったときに,その時点で先行入力を完了し送信待ちになっている文字を破棄する
  • 問題の最初で一定時間の待ち時間を用意し,その間は入力ができないようにする

という処理を行い,回避することにした(現在の開発版)。


ハンデ機能については,ハンデを指定したプレイヤーは最初に一定時間入力ができなくなる,という感じにしてある。基本的にはハンデ 1 に対し 0.4 秒くらいのハンデタイムになっていて,問題が短いと短く,問題が長いと長く,というようになっている。


Alt+Tab については,Win98(フルスクリーンモード)+ DirectX(Input?)では何故か Alt+Tab でのタスク切り替えができなかったので自分で最小化するようにした。Win2000 では問題なく Alt+Tab が効くし,Win98 でもウィンドウモードでは効くので,何故 Win98 フルスクリーンモードだけ効かないのかは分からない。

Weather Typing。得点が最大点を上回った際,プログレスバーがはみだしていた。最初はちゃんとやってあったが,いろいろあってこうなってしまっていた。修正。

Weather Typing。最後のランキングで,ミスが 1~2 回の場合,正確性 100% と表示される。これは printf が浮動小数点数を丸めているかららしい。一応修正。

BGM ファイルを置いてある場合,Type.wav もしくは Miss.wav がないと,BGM が止まってしまう。原因は,IDirectMusicPerformance8::StopEx を行ったとき,セグメントが NULL の場合に全てのセグメントの再生が止まってしまうためらしい(ドキュメントには書いてないので,おそらく NULL を渡してはいけないはず)。修正。

ネットワーク対戦タイピングソフト Weather Typing をアップ。

近頃ずっと「ネットワーク対戦タイピングソフト Weather Typing」というのを作っていた。一応完成のめどが立ったので予定だけアップしてみた。

ネットワーク対戦タイピングソフト Weather Typing

このソフトは,当初,電話回線を使ってタイピング対戦は可能なのか,という興味から作り始めたものだが,意外によくできたので完成させてしまった。

VC。F8 で選択(Shift)をロック,アンロックできることを発見。ってこれはどうでもいいか。

DirectPlay8 を使ってみる。DirectPlay4 とはえらく違ってていやな感じだが,なんとかセッションの作成までやってみた。で,たまたま電話回線(というかモデムか?)を使用中に立ち上げてみると,Windows 全体がフリーズした。何もできなくなる。DirectX8 SDK サンプルをやってみてもフリーズする。

どこでダメなのか調べてみると,EnumServiceProviders のところで,モデム関連を調べていて落ちている模様。そこで,レジストリエディタでモデムその他 TCP/IP 以外の設定を全削除してやってみたところ,うまくいった。なんなんでしょうか。


VC。アウトプットウィンドウにエラーが表示されているときに F4,Shift+F4 を押すと次々に該当場所へ移動できる(分かりづらい)ことを発見。

乱数。srand を使って乱数を初期化していたが,いつも同じ系列になる。原因は,乱数を初期化する方と使う方が別のスレッドであったため(だと思う…)。

Dena’s Image,Pha-jtd 氏の助言により,

  • サポートされてないファイルを開いたときに落ちるバグを修正
  • 「画像サイズにウィンドウを合わせる」メニューを追加

バイト先の MK 氏に触発され,Dena’s Image の最新版を公開。このソフト,いきなり MDI 化したらバグが出まくってたため公開は見送っていたのだが,氏から「減色すると落ちるよ」という指摘を頂いたため,急いでバグを直し,公開してみた。MK 氏にはこの場を借りてお礼を申し上げたい。

あとくまのおえかきアルバムで,アルバムファイルを開くときに BMP を開くと落ちるという指摘を頂いた。で,修正しようと思ったら,当時のソースの一部は既に新たなソースに生まれ変わっていて,コンパイルすら出来ない状態になっていた。ので,当分このままかも。

XML4C を使って XML を出力することを試みる。が,XMLPlatformUtils::Initialize で,「XML4C Panic Error」というエラーで終了してしまう。で,トレースしてみると,エラーコード U_FILE_ACCESS_ERROR というエラーを返している。

結局,Unicode 変換用データベース icudata.dll がない,ということだった。何か,VC のデバッグ用作業ディレクトリに入れといただけじゃダメで実行ファイルのあるディレクトリに置かないと認識してくれなかった。まあいいや。

早いものでもう 2 月も終わりになりますが,って日記何も書いてないなぁ。卒論が終わってからずーっと PC 版 The Typing Of The Dead やっててプログラミングはほとんどやってなかったせいなわけで。ま,いいか。

再び Y 氏から教えてもらった Tips(というか仕様だけど)。Excel でグラフを描いていて,線の点(?)の種類が少ないよう,と私がだだをこねていると,「背景をなしにするとバツとか出るよ」とのこと。Excel のグラフの線のプロパティから背景をなしにすると白抜きの丸とかバツとかが表示された。ちなみに背景を黒とかにすると黒い丸とかが出てくる。

Y 氏から教えてもらった Tips。DOS プロンプトでコピーアンドペーストをするにはシステムメニューから選ぶというのは有名(?)だが,文字列を選択して右クリックすることでもコピーができるという。ちなみに Enter でもよい。

TeX。今までグラフ等を Excel から bmp にして印刷していたが,どうも汚い。ネットでいろいろ情報を集めたところ,Excel からポストスクリプト対応のプリンタドライバでファイルに出力することで直接 eps ファイルにできるらしい。実際にやってみるとかなり綺麗に出力できた。

TeX。DVIOUT から大学のプリンタに印刷をするが,BMP の画像が真っ白だったり真っ黒だったりする。はっぱさんに相談すると BMP の色とか言われたので見てみると,BMP の色数がフルカラーだった。これをグレースケール(というか 256)にすると無事印刷された。

VC++ MFC で作ったアプリケーション。Form View でコントロールをはると,Ctrl+C などのショートカットを何故か受け付けてくれない。以下のように自分でメッセージをとばして一応解決はした。

void CXXXView::OnEditCopy() 
{
    GetFocus()->PostMessage(WM_COPY);
}

TeX。コンパイル時に

Too Many unprocessed float

というエラーが出る。これはフロートイメージが多すぎるからだが,適当なところで

clearpage

を入れれば解決する。

TV チューナー & キャプチャ Logotec「オー!舞画 TV(USB)」を買ってみる。早速配線して表示させてみると,動画はまあまあ見られるレベルだったが,音が音にならない。でふと DirectSound の設定を見ると

DirectSound(emulate)

となっていた。普段使っている PC カードのサウンドカード(というか MIDI カード)が DirectSound に対応していなかったようだ。本体から直接音を出したら問題なく聴けるようになった。

キャプチャ機能については,キャプチャ中は再生が追いついてない感じがするが,録画したものはちゃんとできていた。と思う。あんまり試してないけど。