2014年12月17日水曜日

最近作ったプログラムの話

今作ってるゲームの中で
「キーボードから数値を入力する」
という部分を作りたかったんですよ。

というわけで、いろいろ頑張った話です。



と言ってもそんなに頑張ってはないんですけど。

実際のところ、電卓形式で数値を入力させるなら、

1.キーボード入力待ち
2.キーボード入力を確認
3.現在の入力中の値を10倍
4.キーボードの入力値を加算

これに上限の処理を付けるだけじゃないですか。

実際はこれにバックスペースの機能を付加してみたんですが
これも入力中の値を10で割って小数点以下切捨てするだけじゃないですか。

これまた大した苦労じゃないんですね。

ただ、今回小数点を入れたかったんですよ。
この場合一つの方法としては

現在の小数点以下でのカーソル位置を記憶する
そしてキーボードから値が入力された時は10^nで入力値を割り
入力中の値に加算する

という感じでしょうか。

これだと、小数点以下の値の入力中として処理する内容は

小数点以下でのカーソル位置をずらす
キーボードからの入力値を10^nで割る

となります。
でも、今回私はその部分の処理を書くのがめんどくさかったので

小数点以下でのカーソル位置を記憶する
そしてキーボードからの値の入力は通常と同じように行い、
値を表示するタイミングで、10^nで入力中の値を割る

というようにしてみました。
こうすることで、小数点以下の値の入力中である場合の例外部分は

小数点以下でのカーソル位置をずらす

だけになるんです!
なんだかんだで正しい結果は得られましたし
私としてはちょっと意外なくらいでした。

たまに私って自分で作ったプログラムに驚かされていますww

0 件のコメント:

コメントを投稿