2001年5月のエントリ

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 フルスクリーンモードだけ効かないのかは分からない。