ネタ元 → 電卓アプリの状態遷移図
オブジェクト指向してない電卓のつくりかた
アクアさんとこにあった状態遷移図を表にするとこーなる↓
電卓基本動作の状態遷移表
|
初期状態 |
数値入力状態 |
数式作成状態 |
計算結果表示状態 |
数字入力 |
なにかする →数値入力状態 |
なにかする →数値入力状態 |
なにかする →数値入力状態 |
なにかする →数値入力状態 |
演算子入力 |
なにかする →初期状態 |
なにかする →数式作成状態 |
なにかする →数式作成状態 |
なにかする →数式作成状態 |
'='入力 |
なにかする →初期状態 |
なにかする →計算結果表示状態 |
なにかする →計算結果表示状態 |
なにかする →計算結果表示状態 |
'C'入力 |
なにかする →初期状態 |
なにかする →初期状態 |
なにかする →初期状態 |
なにかする →初期状態 |
読み方はわかるよね、たとえば左上隅のマスは:
「初期状態で数字入力されたらなにかして数値入力状態に遷移せよ」ってことね。
つまり、状態遷移は
(状態、事象、動作、遷移) の集合です。
もっといえば、「なんかする」と「次の状態」を要素とする
二次元配列 状態遷移表[状態数][事象数] で表現できます。
試験にでるよー でねーよ
各マスの「なんかする」をテケトーに実装し、
状態を初期状態にセットして準備完了。
あとはボタンが押されるたんびに:
事象 = ボタンに割り当てられたデキゴト;
状態遷移表[状態][事象].なんかする();
状態 = 状態遷移表[状態][事象].次の状態;
↑これを繰り返せば電卓なんかあっちゅーまに動きますぶっちゃけ。
あとはほんのちょっとのヒマと「いぢわるスタヂオ2005」と
しょっきんぐぴんくまを用意すれば電卓祭りの神輿が担げます。
お祭りワショーイ