<   2005年 05月 ( 7 )   > この月の画像一覧

[CoveredCalc] 符号反転キー

符号反転キーを実装しました。
一般的な電卓で「+/-」と表記されているキー(ボタン)です。

まず、このキーの挙動を決定します。

通常、数字の入力後にこのキーを押すと、数字にマイナスが付きます。逆に、マイナスの数字が表示されている状態でこのキーを押すとマイナスが消えます。
これはまあそういうものだともともと思っていました。

次に、演算子の直後にこのキーを押した場合、例えば[1][2][+]という順番で入力したあとにこのキーを押すとどうなるのがいいんでしょう?つまり、[1][2][+][+/-][=]と入力したときの振る舞いです。
Windows の電卓や家にあった電卓で試してみましたら、挙動がいろいろ違うので参考にするのをやめました。
CoveredCalc では、[+/-]を押すと、現在表示されているものの符号が反転し、それが入力になることにします。
この場合は、[1][2][+](この時点で「12.」と表示)[+/-] で表示は「-12.」。続く [=] で「12 + (-12)」が計算されて表示が「0.」

それから、[1][+][2][=][+/-]と入力した場合。[1][+][2][=](この時点で表示は「3.」)[+/-](これにより表示は「-3.」)
例えばこのあとさらに [+][5][=] などと入力すると「-3 + 5」が計算されて「2.」になります。

今度はこのキーの後に数字を入力した場合は?
[1][2][+/-][3]など。この場合は「-123」になります。つまり [+/-] は [+] や [-] などの演算子とは動作が異なるということですね。([1][2][+][3]なら画面表示は「3」ですからね)

とまあ、こんなことを調べながら電卓コアエンジンに対する実装を終えました。
続いて、UI モジュールでも [+/-] ボタンを追加しました。キーボードでは「N」を押すことで入力できます。あと、Windows 版に限り「Shift+(テンキーの)-」と「F9」もこのキーに対応づけました。「F9」は Windows 標準電卓に合わせました。
それから、カバー定義ファイルにも [+/-] ボタンの記述を追加しました。このおかげでカバー定義ファイルのバージョンが "1.0" から "1.1" になるのですが、まだカバー読み込み部分を修正してません。これ修正しないと、"1.1" がはじかれてしまいますね。
さらに残っている作業として、カバーの作り方ドキュメントの更新、Adamsカバーに[+/-]ボタンを追加、があります。
ここまでできれば、とりあえず、Version 1.2.0 として公開しちゃおうかと思ってます。
あ、ちなみに、まだ BeOS では全く動作を(というかコンパイルすら)確認してません(汗
[PR]
by hironytic | 2005-05-30 16:59 | 開発状況

[CoveredCalc] 引き続き電卓エンジンを見直し中

イコールで計算結果が出たあとに(イコールでなくてもいいんですが)BackSpace を入力すると、表示されている計算結果を 1 文字削る動きにしました。
つまり、「3 × 5 =」と入力してディスプレイ部に「15.」と表示されたところで、BackSpace ボタンを押すと「1.」になります。さらにそのまま次の数字を入力できます。

それから、演算結果に小数部分が出てくる計算で、小数部分の最後に 0 が表示される不具合を見つけて修正しました。
上記 BugTrack の例では、浮動小数点数の誤差の影響もあるのですが、その部分は修正してません。
というわけで、小数を含む計算にはもしかすると誤差が出るかもしれません。(電卓としては最低ですね…)
基本的には計算するたびに有効桁数で丸めているはずですが。

ソース公開については前向きに検討中ですが、使用しているアイコンについては公開できない見通しです。
[PR]
by hironytic | 2005-05-23 15:17 | 開発状況

[CoveredCalc for BeOS] Enter キーと PPC 版

BeOS 版で [Enter] キーを押しても「=」が入力されないバグは修正しました。
単に条件判定を加えただけですが。
この修正は次のリリースに含まれます。

PPC 版のクロスコンパイル環境については初めて知りました。
興味深いんで一度試してみたいところではありますが、すんなりコンパイルが通りそうな気もしないのとバイナリができても自分では確認できないこと、さらに今後のバージョンアップ作業の手間を考えるとあまり乗り気はしません。
それよりはソースを公開して、できる人に好きに料理してもらう方がぼくとしては楽かなと考えてます。
…すでに無意味に複雑になっていて、恥ずかしいソースではありますが。
[PR]
by hironytic | 2005-05-12 09:59 | 開発状況

[CoveredCalc] 「=」キーの入力と PPC 版 (BeOS) について

KiMさんのところで「=」キーの入力と PPC 版について突っ込まれています。

なーんも考えずに、ただ「=」だから [=] というようにしたんですが、言われてみれば [Enter] キーで「=」というのが普通ですね。
というか、テンキーを使っていたら、[Enter] を押してしまいますよね。
テンキーの付いてないキーボードを使っていたので、そういうところが見えませんでした。一般的でないものを使うことのデメリットです。
修正は簡単だと思うので次のバージョンでは [Enter] でも反応するようにします。
キー入力についてはカスタマイズできるようにしたいと思っていて、それを実現するための仕掛けも作ってあるんですが、カスタマイズを実現させるのには時間がかかりそうなので。

PPC 版については、ビルド環境を持ってないので少なくともぼくからのバイナリリリースはできそうにないです。
作りかけの部分はまだ山ほどあるんですが、落ち着いてきたので、そろそろソース公開しようかな…。
もともとソース公開も考えて作っていたんですけど、いろいろ考えることがあって。
もうちょっと考えてみます。(単にだらだらしてるだけとも言う)


追記:自分でも気づいてなかったのですが、Windows 版では、[Enter] で「=」が入力できました。BeOS 版でその部分を実装するときに抜けてしまったみたいです。バグですね…。
[PR]
by hironytic | 2005-05-11 14:23 | 構想

[CoveredCalc] Version 1.1.1 リリース

予告通り Windows、BeOS、BeOS(Dano) の 3 つについて Version 1.1.1 をリリースしました。
今回のリリースでライセンスを一部変更しています。条件を 1 つ削除しました。

○ ホームページ上での転載の場合は、サポートホームページ(次の項に
  書いてあります)のいずれかへリンクを貼って紹介する形にしてください。
  こうすることでバージョンアップに自動的に対応できます。


最近のぼくの傾向から、サポートホームページのアドレスが変わらないとも言えないので、してくれるなら勝手にミラーしてくださいということにしました。
まあ、この条件自体、かなり昔に書いたものということもあるし。
[PR]
by hironytic | 2005-05-11 09:39

[CoveredCalc] バージョンアップの予定

warmgray mini で露見した前のカバーのくり抜きが残ってしまう不具合は修正しました。
一気に Version 1.1.1 のリリースまで行おうとしたのですが、そこまでは時間が取れませんでした。
Windows、BeOS、BeOS(Dano) の 3 種類もビルドする必要があり、それぞれのドキュメントも更新しなければならないので、修正・確認を合わせて 1 時間ちょいの作業時間ではムリがありました。

ということで、次に時間がとれたら 1.1.1 のリリースまで行う予定です。
なお、BeOS 版(NOT Dano版)ではカバーのくり抜きに対応していないのでこの不具合は発生しませんが、電卓エンジンの修正がいくつか反映されます。
[PR]
by hironytic | 2005-05-10 13:22 | 開発状況

[CoveredCalc] 電卓エンジン向上月間

現在リリースしている CoveredCalc は電卓エンジンの作り込みが甘いです。
さすがに簡単な演算で計算ミスがあったりはしない(と思っている)のですが、1年ほど前にも書いたようにちょっとイレギュラーっぽい入力をすると途端に納得のいかない結果になります。
演算子の直後にイコールを入力したときの挙動は、表示されているものが入力されたとみなすように修正しました。
演算子を続けて入力(例:「3 × +」)したときの挙動については、演算子を入力し直したことになるようにしました。(この例なら、「3 +」と入力したのと同じ)
他にも、イコールで計算結果が出たあとに BackSpace を入力すると表示された計算結果を 1 文字削るような動きにしたいというのがありますが、これはまだ修正できていません。

しばらく、電卓エンジンに手を入れて、このあたりの挙動を直そうと思っています。

…と考えていたところ、桝田道也さんのところで warmgray mini というカバーが新しく公開されました。
使ってみたら、CoveredCalc 本体のバグ発見!(;´Д`)
うわ。こっちのバグを急いで修正しなきゃ、ですね。
[PR]
by hironytic | 2005-05-09 17:54 | 開発状況